{"version":3,"file":"browser-bundle.js","mappings":"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cAAoB,CAChC,YAAkB,UAAgB,CAAC,IACnC,UAAgB,CAAC,KAChBpqF,WACHqqF,oBAAqB,oBACrB7W,qBAAsB,oBACtBuW,sBAAuB,oBACvBC,yBAA0B,oBAC1BtB,oCAAqC,oBACrCC,mCAAoC,oBACpCC,wBAAyB,qBAG3B,YChZM0B,GAAgB,EACpBrY,aACAh1D,UACA+pE,yBACAC,2BACAC,+BACAC,0BACAC,iCACAC,gBACAC,gBACAC,+BACAC,iCACAC,6BACAC,uBACAC,cACAC,cACAC,qBACAC,iBACAC,iBACAC,wBACAC,uBACAC,gBACAC,uBACAC,eACAC,eACAC,sBACAC,mBACAC,mBACAC,0BACAjV,uBACA4Q,yBACAC,4BACAc,yBACAC,4BACAS,uBACAC,0BACAI,0BACAC,6BACAE,wBACAC,2BACAK,4BACAC,+BACA+C,gBACAC,gBACAC,uBACAR,yBACAC,4BACAa,eACAC,eACAC,sBACAN,wBACAC,2BACAtB,sCACAC,qCACAC,+BAEA,MAAM3U,GAAYxkF,IAAapH,KAAYA,EAAMilC,UAAU2mD,YACrD7+B,GAAS3lD,IAAapH,KAAYA,EAAMilC,UAAU8nB,UAElD,MAAEn2B,IAAU,KAElB,OACE,kBAAC,MAAD,CAAK33B,UACH,GAAG2sF,IAAa,2CACb7+B,GAAS,yBAA2B,iCACpCn2B,GAAQ,MAAQA,IAAS,KAAO,iBAAmB,eAGrDgzD,EAAWgG,aAAe5yB,GAAYC,WACrC,kBAAC,GAAD,CACE2sB,aACAh1D,UACA+pE,yBACAC,2BACAC,+BACAC,0BACAC,iCACAC,gBACAC,gBACAC,+BACAC,iCACAC,6BACAC,uBACAC,cACAC,cACAC,qBACAC,iBACAC,iBACAC,wBACAC,uBACAC,gBACAC,uBACAC,eACAC,eACAC,sBACAC,mBACAC,mBACAC,0BACAjV,uBACA4Q,yBACAC,4BACAc,yBACAC,4BACAS,uBACAC,0BACAI,0BACAC,6BACAE,wBACAC,2BACAK,4BACAC,+BACA8B,sCACAC,qCACAC,6BAGH3W,EAAWgG,aAAe5yB,GAAYE,QACrC,kBAAC,GAAD,CACE0sB,aACA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","sources":["F24://F24/webpack/runtime/load script?","F24://F24/webpack/runtime/css loading?","F24://F24/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js?","F24://F24/./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js?","F24://F24/./node_modules/@babel/runtime/helpers/esm/extends.js?","F24://F24/./node_modules/resolve-pathname/esm/resolve-pathname.js?","F24://F24/./node_modules/tiny-invariant/dist/esm/tiny-invariant.js?","F24://F24/./node_modules/history/esm/history.js?","F24://F24/./node_modules/mini-create-react-context/dist/esm/index.js?","F24://F24/./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js?","F24://F24/./node_modules/react-router/esm/react-router.js?","F24://F24/./node_modules/react-router-dom/esm/react-router-dom.js?","F24://F24/./node_modules/react-redux/es/components/Context.js?","F24://F24/./node_modules/react-redux/es/utils/batch.js?","F24://F24/./node_modules/react-redux/es/utils/Subscription.js?","F24://F24/./node_modules/react-redux/es/components/Provider.js?","F24://F24/./node_modules/react-redux/es/utils/useIsomorphicLayoutEffect.js?","F24://F24/./node_modules/react-redux/es/components/connectAdvanced.js?","F24://F24/./node_modules/react-redux/es/utils/shallowEqual.js?","F24://F24/./node_modules/redux/es/redux.js?","F24://F24/./node_modules/react-redux/es/connect/wrapMapToProps.js?","F24://F24/./node_modules/react-redux/es/connect/mergeProps.js?","F24://F24/./node_modules/react-redux/es/connect/selectorFactory.js?","F24://F24/./node_modules/react-redux/es/connect/connect.js?","F24://F24/./node_modules/react-redux/es/hooks/useReduxContext.js?","F24://F24/./node_modules/react-redux/es/hooks/useStore.js?","F24://F24/./node_modules/react-redux/es/hooks/useDispatch.js?","F24://F24/./node_modules/react-redux/es/hooks/useSelector.js?","F24://F24/./node_modules/react-redux/es/index.js?","F24://F24/./node_modules/framework-plugins/models/constants.js?","F24://F24/./node_modules/framework-ui-components/Components/ConsoleLogger/ConsoleLog.js?","F24://F24/./node_modules/framework-plugins/utils/log.js?","F24://F24/./node_modules/framework-plugins/models/windowData.js?","F24://F24/./node_modules/framework-plugins/utils/navigation.js?","F24://F24/./node_modules/framework-plugins/models/caller.js?","F24://F24/./node_modules/framework-plugins/models/config.js?","F24://F24/./node_modules/framework-plugins/models/messages.js?","F24://F24/./node_modules/framework-ui-components/Components/Utils/baseComponentHelper.js?","F24://F24/./node_modules/framework-ui-components/Components/ConsoleLogger/index.js?","F24://F24/./node_modules/framework-ui-components/utils/log.js?","F24://F24/./node_modules/framework-ui-components/Components/EventoServer/connectionError.js?","F24://F24/./node_modules/framework-ui-components/Components/WebRequest/WebRequest.js?","F24://F24/./node_modules/framework-ui-components/Components/WebRequest/index.js?","F24://F24/./node_modules/framework-plugins/models/forward.js?","F24://F24/./node_modules/framework-plugins/models/clickOut.js?","F24://F24/./node_modules/framework-plugins/index.js?","F24://F24/./node_modules/@aspnet/signalr/dist/esm/Errors.js?","F24://F24/./node_modules/@aspnet/signalr/dist/esm/ILogger.js?","F24://F24/./node_modules/@aspnet/signalr/dist/esm/HttpClient.js?","F24://F24/./node_modules/@aspnet/signalr/dist/esm/XhrHttpClient.js?","F24://F24/./node_modules/@aspnet/signalr/dist/esm/DefaultHttpClient.js?","F24://F24/./node_modules/@aspnet/signalr/dist/esm/TextMessageFormat.js?","F24://F24/./node_modules/@aspnet/signalr/dist/esm/Loggers.js?","F24://F24/./node_modules/@aspnet/signalr/dist/esm/Utils.js?","F24://F24/./node_modules/@aspnet/signalr/dist/esm/IHubProtocol.js?","F24://F24/./node_modules/@aspnet/signalr/dist/esm/HandshakeProtocol.js?","F24://F24/./node_modules/@aspnet/signalr/dist/esm/HubConnection.js?","F24://F24/./node_modules/@aspnet/signalr/dist/esm/ITransport.js?","F24://F24/./node_modules/@aspnet/signalr/dist/esm/AbortController.js?","F24://F24/./node_modules/@aspnet/signalr/dist/esm/LongPollingTransport.js?","F24://F24/./node_modules/@aspnet/signalr/dist/esm/ServerSentEventsTransport.js?","F24://F24/./node_modules/@aspnet/signalr/dist/esm/WebSocketTransport.js?","F24://F24/./node_modules/@aspnet/signalr/dist/esm/HttpConnection.js?","F24://F24/./node_modules/@aspnet/signalr/dist/esm/JsonHubProtocol.js?","F24://F24/./node_modules/@aspnet/signalr/dist/esm/HubConnectionBuilder.js?","F24://F24/./node_modules/framework-ui-components/Components/EventoServer/index.js?","F24://F24/./node_modules/framework-ui-components/Components/EventoServer/EventAggregator.js?","F24://F24/./node_modules/framework-ui-components/Components/EventoServer/Utils.js?","F24://F24/./node_modules/framework-ui-components/Components/Snackbar/SnackbarUtils.jsx?","F24://F24/./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js?","F24://F24/./node_modules/react-transition-group/esm/TransitionGroupContext.js?","F24://F24/./node_modules/react-transition-group/esm/utils/ChildMapping.js?","F24://F24/./node_modules/react-transition-group/esm/TransitionGroup.js?","F24://F24/./node_modules/dom-helpers/esm/removeClass.js?","F24://F24/./node_modules/react-transition-group/esm/Transition.js?","F24://F24/./node_modules/react-transition-group/esm/CSSTransition.js?","F24://F24/./node_modules/dom-helpers/esm/addClass.js?","F24://F24/./node_modules/dom-helpers/esm/hasClass.js?","F24://F24/./node_modules/framework-ui-components/Components/Icons/Icon.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Icons/ErroreIcon.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Badge/Badge.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Badge/index.js?","F24://F24/./node_modules/framework-ui-components/Components/Spinner/Spinner.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Spinner/index.js?","F24://F24/./node_modules/framework-ui-components/Components/Tabs/Tab.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Tabs/Tabs.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Tabs/index.js?","F24://F24/./node_modules/framework-ui-components/Components/Icons/SuccessoIcon.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Utils/debouncer.js?","F24://F24/./node_modules/framework-ui-components/Components/Hooks/useMouseOver.js?","F24://F24/./node_modules/framework-ui-components/Components/PopOver/PopOver.jsx?","F24://F24/./node_modules/framework-ui-components/Components/PopOver/index.js?","F24://F24/./node_modules/framework-ui-components/Components/Hooks/useForwardRefOrRef.js?","F24://F24/./node_modules/framework-ui-components/Components/Button/Button.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Button/index.js?","F24://F24/./node_modules/framework-ui-components/Components/Snackbar/HeaderOperazione.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Snackbar/HeaderMassiva.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Table/HeaderColumn.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Table/HeaderRow.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Table/Header.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Table/BodyCell.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Table/BodyRow.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Table/Body.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Table/Footer.jsx?","F24://F24/./node_modules/framework-ui-components/utils/react.js?","F24://F24/./node_modules/framework-ui-components/Components/Utils/table.js?","F24://F24/./node_modules/framework-ui-components/Components/Table/Table.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Table/index.js?","F24://F24/./node_modules/framework-ui-components/Components/Formatter/formatter-date.js?","F24://F24/./node_modules/framework-ui-components/Components/Formatter/formatter-hour.js?","F24://F24/./node_modules/framework-ui-components/Components/Utils/getElementType.js?","F24://F24/./node_modules/framework-ui-components/Components/Formatter/Formatter.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Formatter/index.js?","F24://F24/./node_modules/framework-ui-components/Components/Snackbar/TabellaOperazioneSincrona.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Icons/DownIcon.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Icons/UpIcon.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Progress/Progress.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Progress/index.js?","F24://F24/./node_modules/framework-ui-components/Components/Snackbar/DettaglioOperazioneMassiva.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Utils/doesNodeContainClick.js?","F24://F24/./node_modules/framework-ui-components/Components/Snackbar/SnackbarElement.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Snackbar/Snackbar.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Snackbar/SnackbarWrapper.js?","F24://F24/./node_modules/framework-ui-components/Components/Snackbar/index.jsx?","F24://F24/./node_modules/framework-taskforce/utils/log.js?","F24://F24/./node_modules/framework-taskforce/utils/store.js?","F24://F24/./node_modules/framework-taskforce/utils/navigation.js?","F24://F24/./node_modules/framework-taskforce/utils/object.js?","F24://F24/./node_modules/framework-taskforce/utils/qsParams.js?","F24://F24/./node_modules/framework-ui-components/utils/const.js?","F24://F24/./node_modules/framework-ui-components/Components/Icons/CollapseIcon.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Icons/ExpandIcon.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Card/Card.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Card/index.js?","F24://F24/./node_modules/framework-ui-components/Components/Heading/Heading.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Heading/index.js?","F24://F24/./node_modules/framework-taskforce/components/PaginaErrore.jsx?","F24://F24/./node_modules/redux-thunk/es/index.js?","F24://F24/./node_modules/framework-taskforce/actions/utente.js?","F24://F24/./node_modules/framework-taskforce/actions/appParams.js?","F24://F24/./node_modules/framework-plugins/hooks/usePluginReducer.js?","F24://F24/./node_modules/framework-ui-components/Components/ModalContext/ModalContext.js?","F24://F24/./node_modules/framework-ui-components/Components/Hooks/useDebouncedFunc.js?","F24://F24/./node_modules/framework-plugins/hooks/useEventListener.js?","F24://F24/./node_modules/framework-plugins/hooks/usePluginHandler.js?","F24://F24/./node_modules/framework-plugins/components/children/PluginDialogSize/PluginDialogSize.jsx?","F24://F24/./node_modules/framework-ui-components/Components/LocationProvider/LocationProvider.jsx?","F24://F24/./node_modules/framework-plugins/components/children/PluginLocationProvider/PluginLocationProvider.jsx?","F24://F24/./node_modules/framework-plugins/components/children/PluginApp/PluginApp.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Hooks/useRegisteredFunctions.js?","F24://F24/./node_modules/framework-plugins/hooks/usePluginAppChild.js?","F24://F24/./node_modules/framework-plugins/components/children/PluginRouter/PluginRouter.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Application/Body.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Application/Header.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Application/Application.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Application/index.js?","F24://F24/./node_modules/framework-ui-components/Components/Image/Image.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Image/index.js?","F24://F24/./node_modules/framework-ui-components/Components/Tour/Tour.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Tour/index.js?","F24://F24/./node_modules/framework-ui-components/Components/V2/ViewportProvider/ViewportContext.js?","F24://F24/./node_modules/framework-ui-components/Components/V2/Hooks/useViewport.js?","F24://F24/./node_modules/framework-ui-components/Components/ErrorPages/ErrorPage404Background.jsx?","F24://F24/./node_modules/framework-ui-components/Components/V2/Button/Button.jsx?","F24://F24/./node_modules/framework-ui-components/Components/V2/Hooks/useRunningState.js?","F24://F24/./node_modules/framework-ui-components/Components/V2/Hooks/useChildrenWithText.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Icons/ShipIcon.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Icons/Logo.jsx?","F24://F24/./node_modules/framework-ui-components/Components/ErrorPages/ErrorPage404.jsx?","F24://F24/./node_modules/framework-ui-components/Components/ErrorPages/ErrorPage.jsx?","F24://F24/./node_modules/framework-ui-components/Components/ErrorPages/Locked.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Utils/numeriHelper.js?","F24://F24/./node_modules/framework-taskforce/utils/format.js?","F24://F24/./node_modules/framework-taskforce/components/AuthorizedApp.jsx?","F24://F24/./node_modules/framework-taskforce/hooks/useCheckServizi.js?","F24://F24/./node_modules/framework-taskforce/models/StatoAttivazioneServizio.js?","F24://F24/./App/components/icons/custom/OminoDisperato.jsx?","F24://F24/./App/ContenutoPaginaDiSospensione.jsx?","F24://F24/./node_modules/framework-taskforce/utils/date.js?","F24://F24/./node_modules/framework-ui-components/Components/Modal/hooks.jsx?","F24://F24/./node_modules/framework-ui-components/Components/V2/Modals/Modal/ModalContext.jsx?","F24://F24/./node_modules/framework-ui-components/Components/V2/Modals/Modal/useModalContext.js?","F24://F24/./node_modules/framework-ui-components/Components/V2/Modals/Modal/Header.jsx?","F24://F24/./node_modules/framework-ui-components/Components/V2/Modals/Modal/Body.jsx?","F24://F24/./node_modules/framework-ui-components/Components/V2/Modals/Modal/Footer.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Utils/formHelpers.js?","F24://F24/./node_modules/framework-ui-components/Components/Form/FormContext.js?","F24://F24/./node_modules/framework-ui-components/Components/Form/withForm.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Hooks/useForm.js?","F24://F24/./node_modules/framework-ui-components/Components/Hooks/useActivation.js?","F24://F24/./node_modules/framework-ui-components/Components/Checkbox/Checkbox.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Checkbox/index.js?","F24://F24/./node_modules/framework-ui-components/utils/js.js?","F24://F24/./node_modules/framework-ui-components/utils/storage.js?","F24://F24/./node_modules/framework-ui-components/Components/DontShowAgain/DontShowAgain.jsx?","F24://F24/./node_modules/framework-ui-components/Components/DontShowAgain/useDontShowAgainMessageRead.js?","F24://F24/./node_modules/framework-ui-components/Components/Hooks/useMountedRef.js?","F24://F24/./node_modules/framework-ui-components/Components/ModalContext/useModalContext.js?","F24://F24/./node_modules/framework-ui-components/Components/Icons/DeleteIcon.jsx?","F24://F24/./node_modules/framework-ui-components/Components/V2/Modals/Modal/CloseModalButton.jsx?","F24://F24/./node_modules/framework-ui-components/Components/V2/Modals/Modal/Item.jsx?","F24://F24/./node_modules/framework-ui-components/Components/V2/Modals/Modal/utils.js?","F24://F24/./node_modules/framework-ui-components/Components/V2/Modals/Modal/GenericItem.jsx?","F24://F24/./node_modules/framework-ui-components/Components/V2/Modals/Modal/ConfirmItem.jsx?","F24://F24/./node_modules/framework-ui-components/Components/GoogleIcons/Filled/FeedbackIcon.jsx?","F24://F24/./node_modules/framework-ui-components/Components/GoogleIcons/Filled/QuestionAnswerIcon.jsx?","F24://F24/./node_modules/framework-ui-components/Components/GoogleIcons/Filled/ThumbUpIcon.jsx?","F24://F24/./node_modules/framework-ui-components/Components/GoogleIcons/Filled/ReportIcon.jsx?","F24://F24/./node_modules/framework-ui-components/Components/V2/Modals/FeedbackModal/FeedbackPanel.jsx?","F24://F24/./node_modules/framework-ui-components/Components/V2/Modals/Modal/FeedbackItem.jsx?","F24://F24/./node_modules/framework-ui-components/Components/V2/Modals/Modal/Modal.jsx?","F24://F24/./node_modules/framework-ui-components/Components/V2/Hooks/useComponentTimeout.js?","F24://F24/./node_modules/framework-ui-components/Components/V2/Modals/FeedbackModal/FeedbackModal.jsx?","F24://F24/./node_modules/framework-taskforce/models/segnalazioni.js?","F24://F24/./node_modules/framework-ui-components/Components/Hooks/useSignalR.js?","F24://F24/./node_modules/framework-plugins/utils/const.js?","F24://F24/./node_modules/framework-plugins/components/parent/IFrame/IFrameModalizer.jsx?","F24://F24/./node_modules/framework-plugins/components/parent/IFrame/useFocus.jsx?","F24://F24/./node_modules/framework-plugins/hooks/usePluginAppViewport.js?","F24://F24/./node_modules/framework-plugins/components/parent/IFrame/useForwardMessageToParent.jsx?","F24://F24/./node_modules/framework-plugins/components/parent/IFrame/useCallForward.jsx?","F24://F24/./node_modules/framework-plugins/components/parent/IFrame/useClickOutside.jsx?","F24://F24/./node_modules/framework-plugins/components/parent/IFrame/useRootLocation.jsx?","F24://F24/./node_modules/framework-plugins/components/parent/IFrame/IFrame.jsx?","F24://F24/./node_modules/framework-plugins/components/parent/IFrame/useRoutingHandler.jsx?","F24://F24/./node_modules/framework-plugins/utils/version.js?","F24://F24/./node_modules/framework-plugins/components/parent/IFrame/useIFrameInDialog.jsx?","F24://F24/./node_modules/framework-plugins/components/parent/IFrame/useViewportResolutionSender.jsx?","F24://F24/./node_modules/framework-plugins/components/parent/IFrame/useGotoExternal.jsx?","F24://F24/./node_modules/framework-plugins/components/parent/IFrame/useIFrameLoader.jsx?","F24://F24/./node_modules/framework-plugins/components/parent/IFrame/index.js?","F24://F24/./node_modules/framework-plugins/components/parent/ModalIFrame/ModalIFrame.jsx?","F24://F24/./node_modules/framework-plugins/components/parent/ModalIFrame/index.js?","F24://F24/./App/apis/deleghe.js?","F24://F24/./node_modules/framework-ui-components/Components/Grid/Row.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Grid/Column.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Grid/Grid.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Grid/index.js?","F24://F24/./node_modules/framework-ui-components/Components/V2/ViewportProvider/util.js?","F24://F24/./node_modules/framework-ui-components/Components/V2/ViewportProvider/ViewportProvider.jsx?","F24://F24/./node_modules/framework-ui-components/Components/ErrorPages/Surprise.jsx?","F24://F24/./node_modules/framework-ui-components/Components/ErrorPages/UnexpectedErrorPage.jsx?","F24://F24/./node_modules/framework-ui-components/Components/ErrorBoundary/ErrorBoundary.jsx?","F24://F24/./node_modules/framework-ui-components/Components/ErrorBoundary/index.js?","F24://F24/./node_modules/framework-ui-components/Components/Sidebar/Body.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Sidebar/Item.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Sidebar/ItemWrapper.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Sidebar/SidebarContext.js?","F24://F24/./node_modules/framework-ui-components/Components/Sidebar/Menu.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Sidebar/Submenu.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Sidebar/Sidebar.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Sidebar/index.js?","F24://F24/./node_modules/framework-ui-components/Components/Icons/BusinessContactIcon.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Icons/ListIcon.jsx?","F24://F24/./node_modules/framework-ui-components/Components/GoogleIcons/Filled/HomeIcon.jsx?","F24://F24/./App/components/icons/google/PoliceIcon.jsx?","F24://F24/./App/components/icons/google/SupervisorIcon.jsx?","F24://F24/./App/components/icons/google/EventIcon.jsx?","F24://F24/./App/components/SideBarF24.jsx?","F24://F24/./App/components/PageWrapper.jsx?","F24://F24/./node_modules/framework-ui-components/Components/V2/Breadcrumbs/Breadcrumbs.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Utils/documentUtils.js?","F24://F24/./node_modules/framework-ui-components/Components/Icons/ToolbarBackIcon.jsx?","F24://F24/./node_modules/framework-ui-components/Components/V2/Toolbar/BreadcrumbsBand.jsx?","F24://F24/./node_modules/framework-ui-components/Components/V2/DropdownList/DropdownList.jsx?","F24://F24/./node_modules/framework-ui-components/Components/GoogleIcons/Outlined/NavigateNextIcon.jsx?","F24://F24/./node_modules/framework-ui-components/Components/GoogleIcons/Outlined/NavigateBeforeIcon.jsx?","F24://F24/./node_modules/framework-ui-components/Components/V2/DropdownButton/DropdownMenu.jsx?","F24://F24/./node_modules/framework-ui-components/Components/V2/DropdownButton/DropdownButton.jsx?","F24://F24/./node_modules/framework-ui-components/Components/V2/Hooks/useMenuOpenState.js?","F24://F24/./node_modules/framework-ui-components/Components/V2/Toolbar/Toolbar.jsx?","F24://F24/./node_modules/framework-ui-components/Components/V2/Toolbar/Divider.jsx?","F24://F24/./App/utils/urls.js?","F24://F24/./App/models/urls.js?","F24://F24/./App/areas/listaContribuenti/riepilogoContribuente/ToolbarDiProva.jsx?","F24://F24/./App/actions/soggetto.js?","F24://F24/./App/apis/contribuente.js?","F24://F24/./node_modules/framework-ui-components/Components/Form/Form.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Form/index.js?","F24://F24/./node_modules/framework-ui-components/Components/Validation/index.js?","F24://F24/./node_modules/framework-ui-components/Components/Restriction/Restriction.js?","F24://F24/./node_modules/framework-ui-components/Components/Restriction/index.js?","F24://F24/./node_modules/framework-ui-components/Components/Tooltip/Tooltip.jsx?","F24://F24/./node_modules/framework-ui-components/Components/EllipsisText/EllipsisText.jsx?","F24://F24/./node_modules/framework-ui-components/Components/EllipsisText/index.js?","F24://F24/./node_modules/framework-ui-components/Components/Hooks/useValidations.js?","F24://F24/./node_modules/framework-ui-components/Components/Validation/ValidationViewer.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Utils/stringHelper.js?","F24://F24/./node_modules/framework-ui-components/Components/Input/Input.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Input/index.js?","F24://F24/./App/components/TemplateGrid/utils.js?","F24://F24/./App/components/TemplateGrid/TemplateGrid.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Icons/PanelAlarmIcon.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Icons/PanelWarningIcon.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Icons/PanelSuccessIcon.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Icons/PanelInfoIcon.jsx?","F24://F24/./node_modules/framework-ui-components/Components/V2/Panel/Panel.jsx?","F24://F24/./App/components/custom/SegnalazioniViewer.jsx?","F24://F24/./App/areas/dettaglioDelega/ModaleModificaUtilizzoTributo.jsx?","F24://F24/./App/models/delega.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Highlighter/Highlighter.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Highlighter/index.js?","F24://F24/./node_modules/framework-ui-components/Components/Icons/SearchIcon.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Utils/nodeHelpers.js?","F24://F24/./node_modules/framework-ui-components/Components/AutoComplete/SearchListProvider.js?","F24://F24/./node_modules/framework-ui-components/Components/AutoComplete/AutoComplete.jsx?","F24://F24/./node_modules/framework-ui-components/Components/AutoComplete/index.js?","F24://F24/./node_modules/framework-ui-components/Components/GoogleIcons/Outlined/AddIcon.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Stepper/State.js?","F24://F24/./node_modules/framework-ui-components/Components/Stepper/Step.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Stepper/StepItem.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Stepper/Stepper.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Stepper/index.js?","F24://F24/./App/models/anagrafica.js?","F24://F24/./App/apis/anagrafiche.js?","F24://F24/./App/areas/dettaglioDelega/coobbligato/nuovoCoobbligato/SezioneSedeLegale.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Radio/Radio.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Radio/useRadioFormChecked.js?","F24://F24/./node_modules/framework-ui-components/Components/Radio/index.js?","F24://F24/./node_modules/framework-ui-components/Components/Icons/CalendarIcon.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Utils/dateHelper.js?","F24://F24/./node_modules/framework-ui-components/Components/Icons/BackIcon.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Icons/ForwardIcon.jsx?","F24://F24/./node_modules/framework-ui-components/Components/DatePicker/DateComponentChooser.jsx?","F24://F24/./node_modules/framework-ui-components/Components/DatePicker/DatePicker.jsx?","F24://F24/./node_modules/framework-ui-components/Components/DatePicker/index.js?","F24://F24/./App/areas/dettaglioDelega/coobbligato/nuovoCoobbligato/SezioneDatiAnagraficiConTipo.jsx?","F24://F24/./App/areas/dettaglioDelega/coobbligato/nuovoCoobbligato/SezioneResidenza.jsx?","F24://F24/./App/components/custom/CheckboxTitle.jsx?","F24://F24/./App/areas/dettaglioDelega/coobbligato/nuovoCoobbligato/NuovoCoobbligato.jsx?","F24://F24/./App/areas/dettaglioDelega/coobbligato/ModaleCoobbligato.jsx?","F24://F24/./node_modules/framework-ui-components/Components/GoogleIcons/Outlined/RemoveIcon.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Textblock/Textblock.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Textblock/index.js?","F24://F24/./App/components/custom/LabelValueDetail.jsx?","F24://F24/./App/components/icons/google/AddCircleOutlineIcon.jsx?","F24://F24/./App/components/custom/LabelOnly.jsx?","F24://F24/./App/areas/dettaglioDelega/sezioneVersamento/ModaleVersamento.jsx?","F24://F24/./node_modules/framework-ui-components/Components/V2/Modals/ConfirmModal/ConfirmModal.jsx?","F24://F24/./App/components/icons/ConfirmImage.jsx?","F24://F24/./App/components/ModaleConfermaEliminazione.jsx?","F24://F24/./App/apis/intermediari.js?","F24://F24/./App/utils/format.js?","F24://F24/./App/areas/listaContribuenti/riepilogoContribuente/listaDeleghe/tabella/presentate/ModaleDichiaraPagata.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Icons/InfoesIcon.jsx?","F24://F24/./node_modules/framework-ui-components/Components/InfoTooltip/InfoTooltip.jsx?","F24://F24/./node_modules/framework-ui-components/Components/InfoTooltip/index.js?","F24://F24/./node_modules/framework-ui-components/Components/Link/Link.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Link/index.js?","F24://F24/./node_modules/framework-ui-components/Components/GoogleIcons/Outlined/CloseIcon.jsx?","F24://F24/./node_modules/framework-ui-components/Components/V2/Tooltip/TooltipContent.jsx?","F24://F24/./node_modules/framework-ui-components/Components/V2/Tooltip/Tooltip.jsx?","F24://F24/./node_modules/framework-ui-components/Components/V2/Hooks/useTooltipHoverWithDelay.jsx?","F24://F24/./node_modules/framework-ui-components/Components/V2/Layout/Container.jsx?","F24://F24/./node_modules/framework-ui-components/Components/V2/Layout/Box.jsx?","F24://F24/./node_modules/framework-ui-components/Components/V2/Layout/index.js?","F24://F24/./node_modules/framework-ui-components/Components/V2/Layout/ElasticSeparator.jsx?","F24://F24/./node_modules/framework-ui-components/Components/GoogleIcons/Outlined/InfoIcon.jsx?","F24://F24/./node_modules/framework-ui-components/Components/GoogleIcons/Outlined/LayersIcon.jsx?","F24://F24/./node_modules/framework-ui-components/Components/GoogleIcons/Outlined/DesignServiceIcon.jsx?","F24://F24/./node_modules/framework-ui-components/Components/GoogleIcons/Outlined/MoreVertIcon.jsx?","F24://F24/./node_modules/framework-ui-components/Components/GoogleIcons/Outlined/SendIcon.jsx?","F24://F24/./node_modules/framework-taskforce/utils/file.js?","F24://F24/./node_modules/framework-ui-components/Components/GoogleIcons/Outlined/DeleteIcon.jsx?","F24://F24/./node_modules/framework-ui-components/Components/GoogleIcons/Outlined/DoneIcon.jsx?","F24://F24/./node_modules/framework-ui-components/Components/GoogleIcons/Outlined/CreditCardIcon.jsx?","F24://F24/./App/components/icons/google/PrinterIcon.jsx?","F24://F24/./App/apis/tributi.js?","F24://F24/./App/models/tributi.js?","F24://F24/./App/components/icons/google/UndoIcon.jsx?","F24://F24/./App/components/icons/google/VerifiedIcon.jsx?","F24://F24/./App/components/icons/google/CreditScoreIcon.jsx?","F24://F24/./App/components/EtichetteDelega.jsx?","F24://F24/./App/components/ModaleAiutaci.jsx?","F24://F24/./App/areas/listaContribuenti/riepilogoContribuente/listaDeleghe/tabella/complete/ModaleRischiDiPagareDueVolte.jsx?","F24://F24/./App/components/icons/google/SendCancelledIcon.jsx?","F24://F24/./App/apis/file.js?","F24://F24/./App/components/icons/google/ArrowBackIcon.jsx?","F24://F24/./node_modules/framework-ui-components/Components/GoogleIcons/Outlined/DescriptionIcon.jsx?","F24://F24/./App/components/note/NoteInit.js?","F24://F24/./App/apis/note.js?","F24://F24/./App/components/note/Note.jsx?","F24://F24/./node_modules/framework-ui-components/Components/V2/DrawAttention/DrawAttention.jsx?","F24://F24/./node_modules/framework-taskforce/utils/text.js?","F24://F24/./App/components/custom/NewAccordion.jsx?","F24://F24/./App/utils/validations.js?","F24://F24/./App/areas/creazioneTributo/erario/FieldsColonnaMultiuso.jsx?","F24://F24/./App/areas/creazioneTributo/erario/SezioneErarioDebito.jsx?","F24://F24/./App/areas/creazioneTributo/regioni/FieldsColonnaMultiuso.jsx?","F24://F24/./App/areas/creazioneTributo/regioni/SezioneRegioniDebito.jsx?","F24://F24/./App/areas/creazioneTributo/inail/SezioneInail.jsx?","F24://F24/./App/models/sezioneCrediti.js?","F24://F24/./App/areas/creazioneTributo/altriEnti/SezioneAltriEnti.jsx?","F24://F24/./App/areas/creazioneTributo/altriEnti/FieldsColonnaMultiuso.jsx?","F24://F24/./App/areas/creazioneTributo/inps/SezioneInps.jsx?","F24://F24/./App/areas/creazioneTributo/inps/FieldsColonnaMultiuso.jsx?","F24://F24/./App/areas/creazioneTributo/regioni/SezioneRegioniCredito.jsx?","F24://F24/./App/areas/creazioneTributo/tributiLocali/FieldsColonnaMultiusoEnte.jsx?","F24://F24/./App/areas/creazioneTributo/tributiLocali/FieldsColonnaMultiuso.jsx?","F24://F24/./App/areas/creazioneTributo/tributiLocali/SezioneTributiLocaliCredito.jsx?","F24://F24/./App/areas/creazioneTributo/tributiLocali/SezioneTributiLocaliDebito.jsx?","F24://F24/./App/areas/creazioneTributo/erario/SezioneErarioCredito.jsx?","F24://F24/./App/areas/creazioneTributo/acciseMonopoli/SezioneAcciseMonopoliDebito.jsx?","F24://F24/./App/areas/creazioneTributo/elide/SezioneElideDebito.jsx?","F24://F24/./App/areas/creazioneTributo/ModaleCreazione.jsx?","F24://F24/./App/components/icons/custom/InvioTelematicoIconSmall.jsx?","F24://F24/./App/areas/dettaglioDelega/RiepilogoDelega.jsx?","F24://F24/./node_modules/framework-ui-components/Components/IconBadge/IconBadge.jsx?","F24://F24/./node_modules/framework-ui-components/Components/GoogleIcons/Outlined/EditIcon.jsx?","F24://F24/./node_modules/framework-ui-components/Components/V2/Table/SelectionContext.js?","F24://F24/./node_modules/framework-ui-components/utils/publisher.js?","F24://F24/./node_modules/framework-ui-components/Components/V2/Table/ExpandedContext.js?","F24://F24/./node_modules/framework-ui-components/Components/V2/Table/Head/ColumnGroup.jsx?","F24://F24/./node_modules/framework-ui-components/Components/V2/Table/Head/Column.jsx?","F24://F24/./node_modules/framework-ui-components/Components/V2/Table/Head/HeaderColumnGroup.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Icons/ArrowUp.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Icons/ArrowDown.jsx?","F24://F24/./node_modules/framework-ui-components/Components/V2/Table/Head/HeaderColumn.jsx?","F24://F24/./node_modules/framework-ui-components/Components/V2/Table/useSelectionContext.jsx?","F24://F24/./node_modules/framework-ui-components/Components/V2/Table/Head/CheckboxHeaderColumn.jsx?","F24://F24/./node_modules/framework-ui-components/Components/V2/Table/Head/SelectionHeaderColumn.jsx?","F24://F24/./node_modules/framework-ui-components/Components/V2/Table/Head/HeaderPlaceholderColumn.jsx?","F24://F24/./node_modules/framework-ui-components/Components/V2/Table/Head/useTableColumns.jsx?","F24://F24/./node_modules/framework-ui-components/Components/V2/Table/Head/Head.jsx?","F24://F24/./node_modules/framework-ui-components/Components/V2/Table/Body/Body.jsx?","F24://F24/./node_modules/framework-ui-components/Components/V2/Table/Body/CheckboxCell.jsx?","F24://F24/./node_modules/framework-ui-components/Components/V2/Table/Body/TableRowContext.js?","F24://F24/./node_modules/framework-ui-components/Components/V2/Table/Body/Row.jsx?","F24://F24/./node_modules/framework-ui-components/Components/V2/Table/Body/Cell.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Icons/BadgeAlarmIcon.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Icons/BadgeWarningIcon.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Icons/BadgeSuccessIcon.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Icons/BadgeInfoIcon.jsx?","F24://F24/./node_modules/framework-ui-components/Components/V2/Panel/MiniPanel.jsx?","F24://F24/./node_modules/framework-ui-components/Components/V2/Table/SelectionPanel.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Icons/MaximizeIcon.jsx?","F24://F24/./node_modules/framework-ui-components/Components/V2/Table/Body/useTableRowContext.jsx?","F24://F24/./node_modules/framework-ui-components/Components/V2/Table/Body/ExpandButton.jsx?","F24://F24/./node_modules/framework-ui-components/Components/V2/Scrollbar/ScrollbarContext.js?","F24://F24/./node_modules/framework-ui-components/Components/V2/Table/Table.jsx?","F24://F24/./node_modules/framework-ui-components/Components/V2/Scrollbar/useScrollbarListener.jsx?","F24://F24/./node_modules/framework-ui-components/Components/V2/Scrollbar/useComponentWithScroolbar.jsx?","F24://F24/./node_modules/framework-ui-components/Components/V2/Table/useTableSelectionState.jsx?","F24://F24/./App/areas/dettaglioDelega/sezioneErario/SezioneErario.jsx?","F24://F24/./App/areas/dettaglioDelega/sezioneTributiLocali/SezioneTributiLocali.jsx?","F24://F24/./App/areas/dettaglioDelega/sezioneInps/SezioneInps.jsx?","F24://F24/./App/areas/dettaglioDelega/sezioneRegioni/SezioneRegioni.jsx?","F24://F24/./App/areas/dettaglioDelega/sezioneInail/SezioneInail.jsx?","F24://F24/./App/areas/dettaglioDelega/sezioneAltriEnti/SezioneAltriEnti.jsx?","F24://F24/./App/areas/dettaglioDelega/TipoDelegaOrdinario.jsx?","F24://F24/./App/areas/dettaglioDelega/sezioneAccise/SezioneAccise.jsx?","F24://F24/./App/areas/dettaglioDelega/TipoDelegaAccise.jsx?","F24://F24/./App/areas/dettaglioDelega/sezioneElide/SezioneElide.jsx?","F24://F24/./App/areas/dettaglioDelega/TipoDelegaElide.jsx?","F24://F24/./App/areas/dettaglioDelega/SezioniDelega.jsx?","F24://F24/./App/components/ModaleLoading.jsx?","F24://F24/./App/actions/presentazioneDeleghe.js?","F24://F24/./App/areas/listaContribuenti/dettaglioContribuente/sezioneDatiAnagrafici/modaleDatiAnagrafici/ModaleDatiAnagrafica.jsx?","F24://F24/./node_modules/framework-ui-components/Components/V2/ButtonGroup/ButtonGroup.jsx?","F24://F24/./node_modules/framework-ui-components/Components/ImportantRadio/ImportantRadio.jsx?","F24://F24/./node_modules/framework-ui-components/Components/ImportantRadio/index.js?","F24://F24/./App/components/icons/custom/NovitaRibbon.jsx?","F24://F24/./App/components/icons/material/PagamentoDigitale.jsx?","F24://F24/./App/components/icons/material/FileTelematico.jsx?","F24://F24/./App/components/icons/material/StampaCartacea.jsx?","F24://F24/./App/components/icons/material/StampaCartacea copy.jsx?","F24://F24/./App/components/modalePresentaDelega/StepSceltaModalita.jsx?","F24://F24/./App/components/icons/material/FileTContrib.jsx?","F24://F24/./App/components/icons/material/FileTInterm.jsx?","F24://F24/./App/components/icons/material/InvioTelematico.jsx?","F24://F24/./App/components/icons/material/FileTContribDisabled.jsx?","F24://F24/./App/components/icons/material/FileTIntermDisabled.jsx?","F24://F24/./App/components/icons/material/InvioTelematicoDisabled.jsx?","F24://F24/./App/components/modalePresentaDelega/StepSceltaTipoFileTelematico.jsx?","F24://F24/./App/components/custom/ConfirmItem.jsx?","F24://F24/./App/apis/studio.js?","F24://F24/./App/components/modalePresentaDelega/StepPresentazioneFileTelematicoContribuente.jsx?","F24://F24/./App/components/modalePresentaDelega/StepPresentazioneFileTelematicoIntermediario.jsx?","F24://F24/./App/components/icons/material/Cbi.jsx?","F24://F24/./App/components/icons/material/CbiDisabled.jsx?","F24://F24/./App/components/icons/material/PagoF24.jsx?","F24://F24/./App/components/icons/material/PagoF24Disabled.jsx?","F24://F24/./App/components/icons/material/CgnPos.jsx?","F24://F24/./App/components/icons/material/CgnPosDisabled.jsx?","F24://F24/./App/components/modalePresentaDelega/StepSceltaTipoPagamentoDigitale.jsx?","F24://F24/./App/components/modalePresentaDelega/StepPresentazioneCBI.jsx?","F24://F24/./App/apis/pagoF24.js?","F24://F24/./App/models/f24.js?","F24://F24/./App/components/modalePresentaDelega/pagoF24/ConfermaEmailPagoF24.jsx?","F24://F24/./App/components/modalePresentaDelega/pagoF24/DatiUtenteUfficioPerMail.jsx?","F24://F24/./node_modules/framework-ui-components/Components/GoogleIcons/Outlined/FileDownloadIcon.jsx?","F24://F24/./App/components/YoutubeEmbed.jsx?","F24://F24/./App/components/modalePresentaDelega/pagoF24/AccettazionePagoF24.jsx?","F24://F24/./App/areas/listaContribuenti/creazioneContribuente/SezioneResidenza.jsx?","F24://F24/./App/areas/listaContribuenti/creazioneContribuente/SezioneSedeLegale.jsx?","F24://F24/./App/components/modalePresentaDelega/pagoF24/CompletaContribuente.jsx?","F24://F24/./App/components/modalePresentaDelega/StepPresentazioneInvioTelematico.jsx?","F24://F24/./App/components/modalePresentaDelega/pagoF24/DatiUtenteUfficioPerMailPos.jsx?","F24://F24/./App/components/modalePresentaDelega/ModalePresentaDelega.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Select/Option.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Select/Divider.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Select/Select.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Select/index.js?","F24://F24/./App/areas/listaContribuenti/dettaglioContribuente/sezioneIndirizzi/modificaIndirizzo/ModaleIndirizzo.jsx?","F24://F24/./App/areas/dettaglioDelega/DettaglioDelega.jsx?","F24://F24/./App/routes/DettaglioDelegaFromScadenziarioRoute.jsx?","F24://F24/./App/areas/listaContribuenti/ToolbarSpecifica.jsx?","F24://F24/./node_modules/framework-ui-components/Components/GoogleIcons/Outlined/SearchIcon.jsx?","F24://F24/./App/apis/home.js?","F24://F24/./App/apis/anagraficaContribuente.js?","F24://F24/./App/areas/listaContribuenti/creazioneContribuente/SezioneDatiAnagraficiPersonaFisica.jsx?","F24://F24/./App/areas/listaContribuenti/creazioneContribuente/SezioneDatiAnagraficiPersonaGiuridica.jsx?","F24://F24/./App/areas/listaContribuenti/creazioneContribuente/ModaleCreazioneContribuente.jsx?","F24://F24/./node_modules/framework-ui-components/Components/V2/FieldControlled/SelectField/Item.jsx?","F24://F24/./node_modules/framework-ui-components/Components/V2/Hooks/useComponentId.jsx?","F24://F24/./node_modules/framework-ui-components/Components/V2/FieldControlled/common.jsx?","F24://F24/./node_modules/framework-ui-components/Components/V2/FieldControlled/FormFieldFrame/FormFieldFrame.jsx?","F24://F24/./node_modules/framework-ui-components/Components/V2/FieldControlled/shared.js?","F24://F24/./node_modules/framework-ui-components/Components/V2/FieldControlled/classUtilities.js?","F24://F24/./node_modules/framework-ui-components/Components/V2/FieldControlled/TextField/TextField.jsx?","F24://F24/./node_modules/framework-ui-components/Components/V2/FieldControlled/TextField/useRestrictions.js?","F24://F24/./node_modules/framework-ui-components/Components/V2/Hooks/useRefWithSelectionRange.js?","F24://F24/./node_modules/framework-ui-components/Components/GoogleIcons/Outlined/ExpandMoreIcon.jsx?","F24://F24/./node_modules/framework-ui-components/Components/GoogleIcons/Outlined/ExpandLessIcon.jsx?","F24://F24/./node_modules/framework-ui-components/Components/V2/FieldControlled/SelectField/listUtils.js?","F24://F24/./node_modules/framework-ui-components/Components/V2/FieldControlled/SelectField/List.jsx?","F24://F24/./node_modules/framework-ui-components/Components/V2/FieldControlled/SelectField/useKeepElementVisible.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Utils/events.js?","F24://F24/./node_modules/framework-ui-components/Components/V2/FieldControlled/SelectField/SelectField.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Hooks/useOnClickOutside.js?","F24://F24/./node_modules/framework-ui-components/Components/V2/FieldControlled/SelectField/useCurrentListItem.jsx?","F24://F24/./App/components/custom/ComboBox/useComboboxItems.jsx?","F24://F24/./node_modules/framework-ui-components/Components/V2/Form/FormContext.jsx?","F24://F24/./node_modules/framework-ui-components/Components/V2/Field/Input/useComponentStateWithValidations.js?","F24://F24/./App/components/custom/ComboBox/useControlledByValue.jsx?","F24://F24/./App/components/custom/ComboBox/useCombobox.jsx?","F24://F24/./App/components/custom/ComboBox/CustomCombobox.jsx?","F24://F24/./App/components/custom/ComboBox/useSelectFirstItemOnBlur.jsx?","F24://F24/./App/components/home/CercaConVaiAllaLista.jsx?","F24://F24/./node_modules/framework-ui-components/Components/GoogleIcons/Outlined/OpenInNewIcon.jsx?","F24://F24/./App/components/icons/custom/OminoDioBono.jsx?","F24://F24/./App/components/icons/custom/SignorinaCheSpostaF24.jsx?","F24://F24/./App/components/icons/custom/SvegliaIcon.jsx?","F24://F24/./App/components/home/ListaAnniIntelligente.jsx?","F24://F24/./App/components/TourScadenzario.jsx?","F24://F24/./App/components/home/BlocchettoBottomScadenzario.jsx?","F24://F24/./App/components/icons/custom/SignorinaClessidra.jsx?","F24://F24/./App/components/home/BlocchettoBottomPresentazione.jsx?","F24://F24/./App/components/icons/custom/SignorinaFelice.jsx?","F24://F24/./App/components/home/BlocchettoBottomScartate.jsx?","F24://F24/./App/components/home/SituazioneTributiDeleghe.jsx?","F24://F24/./node_modules/framework-taskforce/components/SegnalazioniViewer.jsx?","F24://F24/./node_modules/framework-ui-components/Components/V2/FieldControlled/CheckboxField/CheckboxField.jsx?","F24://F24/./App/components/qr/ModaleSceltaStampaConQr.jsx?","F24://F24/./App/components/home/ServiziDiPresentazione.jsx?","F24://F24/./App/areas/home/Home.jsx?","F24://F24/./App/routes/HomeRoute.jsx?","F24://F24/./node_modules/framework-ui-components/Components/V2/Hooks/usePagination.js?","F24://F24/./node_modules/framework-ui-components/Components/V2/Pagination/Pagination.jsx?","F24://F24/./node_modules/framework-ui-components/Components/V2/ODataTable/Column.jsx?","F24://F24/./node_modules/framework-ui-components/Components/V2/ODataTable/TableContext.js?","F24://F24/./node_modules/framework-ui-components/Components/V2/ODataTable/ColumnGroup.jsx?","F24://F24/./node_modules/framework-ui-components/Components/V2/ODataTable/useTableColumns.jsx?","F24://F24/./node_modules/framework-ui-components/Components/V2/ODataTable/Head.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Utils/odata.js?","F24://F24/./node_modules/framework-ui-components/Components/Icons/FilterIcon.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Utils/queryServiceStrategy/QueryOptions.js?","F24://F24/./node_modules/framework-ui-components/Components/Tag/Tag.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Tag/index.js?","F24://F24/./node_modules/framework-ui-components/Components/V2/Filter/SelectedFilters.jsx?","F24://F24/./node_modules/framework-ui-components/Components/V2/Filter/FiltersGroupContext.js?","F24://F24/./node_modules/framework-ui-components/Components/V2/Filter/AdvancedFilters.jsx?","F24://F24/./node_modules/framework-ui-components/Components/V2/Filter/FilterContext.js?","F24://F24/./node_modules/framework-ui-components/Components/V2/Filter/useFilterContext.jsx?","F24://F24/./node_modules/framework-ui-components/Components/V2/Filter/components/InputFilter.jsx?","F24://F24/./node_modules/framework-ui-components/Components/V2/Filter/ExpandedFilters.jsx?","F24://F24/./node_modules/framework-ui-components/Components/V2/Filter/components/DatePickerFilter.jsx?","F24://F24/./node_modules/framework-ui-components/Components/V2/Filter/components/DateRangeFilter.jsx?","F24://F24/./node_modules/framework-ui-components/Components/V2/Filter/components/InputRangeFilter.jsx?","F24://F24/./node_modules/framework-ui-components/Components/V2/Filter/components/SelectFilter.jsx?","F24://F24/./node_modules/framework-ui-components/Components/V2/Filter/components/AutocompleteFilter.jsx?","F24://F24/./node_modules/framework-ui-components/Components/V2/Filter/components/useSetFilterInfo.jsx?","F24://F24/./node_modules/framework-ui-components/Components/V2/Filter/components/RadiosFilter.jsx?","F24://F24/./node_modules/framework-ui-components/Components/V2/Filter/components/CheckboxesFilter.jsx?","F24://F24/./node_modules/framework-ui-components/Components/V2/Filter/Filter.jsx?","F24://F24/./node_modules/framework-ui-components/Components/V2/Hooks/useToggleState.js?","F24://F24/./node_modules/framework-ui-components/Components/V2/ODataTable/Filter.jsx?","F24://F24/./node_modules/framework-ui-components/Components/V2/ODataTable/useODataDataState.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Utils/queryServiceStrategy/ODataServiceStrategy.js?","F24://F24/./node_modules/framework-ui-components/Components/Utils/QueryOptions.js?","F24://F24/./node_modules/framework-ui-components/Components/Utils/queryServiceStrategy/OData2ServiceStrategy.js?","F24://F24/./node_modules/framework-ui-components/Components/V2/ODataTable/useODataLoaderState.jsx?","F24://F24/./node_modules/framework-ui-components/Components/V2/Hooks/useODataState.jsx?","F24://F24/./node_modules/framework-ui-components/Components/V2/ODataTable/useODataLoader.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Utils/ODataLoader.js?","F24://F24/./node_modules/framework-ui-components/Components/V2/ODataTable/ODataTable.jsx?","F24://F24/./node_modules/framework-ui-components/Components/V2/Hooks/useTableItemsSelection.jsx?","F24://F24/./App/areas/listaContribuenti/tabella/RigaContribuente.jsx?","F24://F24/./App/areas/listaContribuenti/tabella/TabellaContribuenti.jsx?","F24://F24/./App/components/filtri/FiltroTesto.jsx?","F24://F24/./App/areas/listaContribuenti/ListaContribuenti.jsx?","F24://F24/./App/routes/ListaContribuentiRoute.jsx?","F24://F24/./App/components/filtri/FiltroBackoffice.jsx?","F24://F24/./App/apis/configurazione.js?","F24://F24/./App/areas/backoffice/ListaContribuentiBackoffice.jsx?","F24://F24/./App/routes/ListaContribuentiOperatoreBackofficeRoute.jsx?","F24://F24/./App/components/icons/CalendarioIcon.jsx?","F24://F24/./App/areas/creazioneDelega/Step1Scadenza.jsx?","F24://F24/./App/areas/creazioneDelega/Step2Elaborazione.jsx?","F24://F24/./App/actions/creazioneDeleghe.js?","F24://F24/./App/areas/creazioneDelega/ModaleCreazione.jsx?","F24://F24/./App/components/icons/google/BuildIcon.jsx?","F24://F24/./App/apis/debitiGestioneScadenza.js?","F24://F24/./App/components/icons/google/RestoreIcon.jsx?","F24://F24/./App/components/custom/V2TableExpandedCell.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Icons/MinimizeIcon.jsx?","F24://F24/./App/components/custom/V2TableMinimizeButton.jsx?","F24://F24/./App/components/icons/google/LockIcon.jsx?","F24://F24/./App/components/icons/google/LockOpenIcon.jsx?","F24://F24/./App/areas/listaContribuenti/riepilogoContribuente/listaTributi/tabella/expanded/RitornaColonna3.jsx?","F24://F24/./App/areas/listaContribuenti/riepilogoContribuente/listaTributi/tabella/expanded/RitornaColonneSezioneAccise.jsx?","F24://F24/./App/areas/listaContribuenti/riepilogoContribuente/listaTributi/tabella/expanded/RitornaColonneSezioneAltriEntiPrevidenziali.jsx?","F24://F24/./App/areas/listaContribuenti/riepilogoContribuente/listaTributi/tabella/expanded/RitornaColonneSezioneElide.jsx?","F24://F24/./App/areas/listaContribuenti/riepilogoContribuente/listaTributi/tabella/expanded/RitornaColonneSezioneErario.jsx?","F24://F24/./App/areas/listaContribuenti/riepilogoContribuente/listaTributi/tabella/expanded/RitornaColonneSezioneInail.jsx?","F24://F24/./App/areas/listaContribuenti/riepilogoContribuente/listaTributi/tabella/expanded/RitornaColonneSezioneInps.jsx?","F24://F24/./App/areas/listaContribuenti/riepilogoContribuente/listaTributi/tabella/expanded/RitornaColonneSezioneRegioni.jsx?","F24://F24/./App/areas/listaContribuenti/riepilogoContribuente/listaTributi/tabella/expanded/RitornaColonneSezioneTributiLocali.jsx?","F24://F24/./App/areas/listaContribuenti/riepilogoContribuente/listaTributi/tabella/expanded/RitornaElementoPerDettaglioDebitoColonnaEspansa.jsx?","F24://F24/./App/areas/listaContribuenti/riepilogoContribuente/listaTributi/tabella/RigaDebitiSoggettoExpanded.jsx?","F24://F24/./App/utils/customHooks/usePrevious.jsx?","F24://F24/./App/components/custom/NoButtonExpandRow.jsx?","F24://F24/./App/apis/tributiPerScadenza.js?","F24://F24/./App/components/icons/google/BalanceIcon.jsx?","F24://F24/./node_modules/framework-ui-components/Components/GoogleIcons/Outlined/ImportIcon.jsx?","F24://F24/./App/areas/listaContribuenti/riepilogoContribuente/listaTributi/tabella/RigaCreditiSoggettoExpanded.jsx?","F24://F24/./App/areas/listaContribuenti/riepilogoContribuente/listaTributi/tabella/RigaTributiSoggetto.jsx?","F24://F24/./App/components/icons/custom/BalanceDownIcon.jsx?","F24://F24/./App/components/icons/custom/BalanceDownGreyIcon.jsx?","F24://F24/./App/components/icons/custom/BalanceRightIcon.jsx?","F24://F24/./App/components/icons/custom/BalanceRightGreyIcon.jsx?","F24://F24/./App/components/icons/google/DateRangeIcon.jsx?","F24://F24/./App/areas/gestisciScadenzaDebito/SceltaGestione.jsx?","F24://F24/./App/areas/gestisciScadenzaDebito/GestisciScadenzaDebitoIvaFields.jsx?","F24://F24/./App/areas/gestisciScadenzaDebito/AnteprimaRateizzazione.jsx?","F24://F24/./App/areas/gestisciScadenzaDebito/CreditiCompatibiliCompensazione.jsx?","F24://F24/./App/areas/gestisciScadenzaDebito/ModaleGestisciScadenzaDebitoIva.jsx?","F24://F24/./App/areas/listaContribuenti/riepilogoContribuente/listaTributi/compensazioneManuale/ModaleCompensazioneManuale.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Panel/Panel.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Panel/index.js?","F24://F24/./App/areas/gestisciScadenzaDebito/GestisciScadenzaFields.jsx?","F24://F24/./App/areas/gestisciScadenzaDebito/ModaleGestisciScadenzaDebito.jsx?","F24://F24/./App/areas/listaContribuenti/riepilogoContribuente/listaTributi/tabella/TabellaTributiSoggetto.jsx?","F24://F24/./App/areas/listaContribuenti/riepilogoContribuente/listaTributi/bottoni/BottoniGestioneSingola.jsx?","F24://F24/./App/areas/listaContribuenti/riepilogoContribuente/listaTributi/bottoni/BottoniGestioneMassiva.jsx?","F24://F24/./node_modules/framework-ui-components/Components/GoogleIcons/Outlined/EuroSymbolIcon.jsx?","F24://F24/./App/apis/dirittoCamerale.js?","F24://F24/./App/areas/listaContribuenti/riepilogoContribuente/listaTributi/dirittoCamerale/UnitaLocali.jsx?","F24://F24/./App/areas/listaContribuenti/riepilogoContribuente/listaTributi/dirittoCamerale/AntreprimaCalcolo.jsx?","F24://F24/./App/areas/listaContribuenti/riepilogoContribuente/listaTributi/dirittoCamerale/ModaleCalcoloTributoDirittoCamerale.jsx?","F24://F24/./node_modules/framework-ui-components/Components/RadioGroup/RadioGroupContext.js?","F24://F24/./node_modules/framework-ui-components/Components/RadioGroup/MessageIcon.jsx?","F24://F24/./node_modules/framework-ui-components/Components/RadioGroup/RadioItem.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Hooks/useFormValidation.js?","F24://F24/./node_modules/framework-ui-components/Components/RadioGroup/RadioGroup.jsx?","F24://F24/./node_modules/framework-ui-components/Components/RadioGroup/index.js?","F24://F24/./App/areas/listaContribuenti/riepilogoContribuente/listaTributi/rateInps/AnteprimaRateInps.jsx?","F24://F24/./App/areas/listaContribuenti/riepilogoContribuente/listaTributi/rateInps/ModaleCalcoloRateInps.jsx?","F24://F24/./App/components/ElencoAnni.jsx?","F24://F24/./App/areas/listaContribuenti/riepilogoContribuente/listaTributi/TabListaTributi.jsx?","F24://F24/./node_modules/framework-ui-components/Components/GoogleIcons/Outlined/NoteDoneIcon.jsx?","F24://F24/./App/areas/listaContribuenti/riepilogoContribuente/listaDeleghe/tabella/complete/RigaDelegheCompleteSoggetto.jsx?","F24://F24/./App/areas/listaContribuenti/riepilogoContribuente/listaDeleghe/tabella/complete/RigaDelegheCompleteSoggettoSmall.jsx?","F24://F24/./App/areas/listaContribuenti/riepilogoContribuente/listaDeleghe/tabella/complete/TabellaDelegheCompleteSoggetto.jsx?","F24://F24/./App/areas/listaContribuenti/riepilogoContribuente/listaDeleghe/tabella/complete/RigaDelegheCompleteSoggettoOdataTableHead.jsx?","F24://F24/./App/areas/listaContribuenti/riepilogoContribuente/listaDeleghe/tabella/complete/RigaDelegheCompleteSoggettoOdataTableHeadSmall.jsx?","F24://F24/./App/areas/listaContribuenti/riepilogoContribuente/listaDeleghe/tabella/inLavorazione/RigaDelegheInLavorazioneSoggetto.jsx?","F24://F24/./App/areas/listaContribuenti/riepilogoContribuente/listaDeleghe/tabella/inLavorazione/RigaDelegheInLavorazioneSoggettoSmall.jsx?","F24://F24/./App/areas/listaContribuenti/riepilogoContribuente/listaDeleghe/tabella/inLavorazione/TabellaDelegheInLavorazioneSoggetto.jsx?","F24://F24/./App/areas/listaContribuenti/riepilogoContribuente/listaDeleghe/tabella/inLavorazione/RigaDelegheInLavorazioneSoggettoOdataTableHead.jsx?","F24://F24/./App/areas/listaContribuenti/riepilogoContribuente/listaDeleghe/tabella/inLavorazione/RigaDelegheInLavorazioneSoggettoOdataTableHeadSmall.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Icons/ExternalIcon.jsx?","F24://F24/./App/areas/listaContribuenti/riepilogoContribuente/listaDeleghe/tabella/presentate/RigaExpanded.jsx?","F24://F24/./App/areas/listaContribuenti/riepilogoContribuente/listaDeleghe/tabella/presentate/RigaDeleghePresentateSoggetto.jsx?","F24://F24/./App/areas/listaContribuenti/riepilogoContribuente/listaDeleghe/tabella/presentate/RigaDeleghePresentateSoggettoSmall.jsx?","F24://F24/./App/areas/listaContribuenti/riepilogoContribuente/listaDeleghe/tabella/presentate/TabellaDeleghePresentateSoggetto.jsx?","F24://F24/./App/areas/listaContribuenti/riepilogoContribuente/listaDeleghe/tabella/presentate/RigaDeleghePresentateSoggettoOdataTableHead.jsx?","F24://F24/./App/areas/listaContribuenti/riepilogoContribuente/listaDeleghe/tabella/presentate/RigaDeleghePresentateSoggettoOdataTableHeadSmall.jsx?","F24://F24/./App/areas/listaContribuenti/riepilogoContribuente/listaDeleghe/TabListaDeleghe.jsx?","F24://F24/./App/areas/listaContribuenti/riepilogoContribuente/listaDeleghe/modalePresentaDelegheMassivamente/StepTelematicoIntermediario.jsx?","F24://F24/./App/areas/listaContribuenti/riepilogoContribuente/listaDeleghe/modalePresentaDelegheMassivamente/StepTelematicoInvioTelematico.jsx?","F24://F24/./App/areas/listaContribuenti/riepilogoContribuente/listaDeleghe/modalePresentaDelegheMassivamente/ModalePresentaDelegaMassivamente.jsx?","F24://F24/./App/areas/listaContribuenti/riepilogoContribuente/bottoni/BottoniPresentazioneSingola.jsx?","F24://F24/./App/areas/listaContribuenti/riepilogoContribuente/bottoni/BottoniPresentazioneMassiva.jsx?","F24://F24/./App/components/icons/google/LaptopIcon.jsx?","F24://F24/./App/components/icons/custom/InvioTelematicoIconGreySmall.jsx?","F24://F24/./App/components/icons/google/SendBlackIcon.jsx?","F24://F24/./App/areas/gestisciScadenzaDebito/massiva/StepInformazioniCompensazione.jsx?","F24://F24/./App/areas/gestisciScadenzaDebito/massiva/StepRisultatoCompensazione.jsx?","F24://F24/./App/areas/gestisciScadenzaDebito/massiva/StepRisultatoGestione.jsx?","F24://F24/./App/areas/gestisciScadenzaDebito/massiva/ModaleGestisciScadenzaMassivamente.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Icons/PlusIcon.jsx?","F24://F24/./App/components/icons/google/GavelIcon.jsx?","F24://F24/./App/components/custom/TableDetail.jsx?","F24://F24/./App/areas/listaContribuenti/riepilogoContribuente/schermataScadenze/RigaTributiPerScadenzaExpanded.jsx?","F24://F24/./App/areas/listaContribuenti/riepilogoContribuente/schermataScadenze/RigaTributiPerScadenza.jsx?","F24://F24/./App/areas/listaContribuenti/riepilogoContribuente/schermataScadenze/TabellaTributiPerScadenza.jsx?","F24://F24/./node_modules/framework-ui-components/Components/GoogleIcons/Outlined/ReceiptIcon.jsx?","F24://F24/./App/components/icons/google/PercentIcon.jsx?","F24://F24/./App/areas/listaContribuenti/riepilogoContribuente/schermataScadenze/modaleRavvedimento/ModaleRavvedimento.jsx?","F24://F24/./App/areas/listaContribuenti/riepilogoContribuente/schermataScadenze/modaleSpostaScadenza/SpostaScadenzaFields.jsx?","F24://F24/./App/areas/listaContribuenti/riepilogoContribuente/schermataScadenze/modaleSpostaScadenza/ModaleSpostaScadenza.jsx?","F24://F24/./App/areas/listaContribuenti/riepilogoContribuente/listaTributi/creazioneDelegaDaTributi/Step1Scadenza.jsx?","F24://F24/./App/areas/listaContribuenti/riepilogoContribuente/listaTributi/creazioneDelegaDaTributi/Step2Elaborazione.jsx?","F24://F24/./App/areas/listaContribuenti/riepilogoContribuente/listaTributi/creazioneDelegaDaTributi/Step1Compensazione.jsx?","F24://F24/./App/areas/listaContribuenti/riepilogoContribuente/listaTributi/creazioneDelegaDaTributi/ModaleCreazioneDeleghePerTributi.jsx?","F24://F24/./App/areas/listaContribuenti/riepilogoContribuente/schermataScadenze/ListaScadenze.jsx?","F24://F24/./App/areas/listaContribuenti/riepilogoContribuente/schermataScadenze/TabTributiPerScadenza.jsx?","F24://F24/./node_modules/framework-ui-components/Components/GoogleIcons/Outlined/InsertDriveIcon.jsx?","F24://F24/./App/components/icons/google/TocIcon.jsx?","F24://F24/./App/components/icons/google/PersonIcon.jsx?","F24://F24/./App/areas/listaContribuenti/riepilogoContribuente/TabsMenu.jsx?","F24://F24/./App/areas/listaContribuenti/riepilogoContribuente/RiepilogoContribuente.jsx?","F24://F24/./App/areas/listaContribuenti/riepilogoContribuente/RiepilogoContribuenteFromScadenzario.jsx?","F24://F24/./App/routes/RiepilogoContribuenteFromScadenzarioRoute.jsx?","F24://F24/./App/areas/listaContribuenti/riepilogoContribuente/RiepilogoContribuenteFromHome.jsx?","F24://F24/./App/routes/RiepilogoContribuenteFromHomeRoute.jsx?","F24://F24/./node_modules/framework-ui-components/Components/GoogleIcons/Outlined/ArrowForwardIcon.jsx?","F24://F24/./App/areas/scadenzario/RigaContribuenteScadenzario.jsx?","F24://F24/./App/areas/scadenzario/TabellaContribuentiScadenzario.jsx?","F24://F24/./App/apis/scadenzario.js?","F24://F24/./App/areas/scadenzario/ListaScadenze.jsx?","F24://F24/./App/areas/scadenzario/TabScadenzario.jsx?","F24://F24/./App/areas/scadenzario/PaginaScadenzario.jsx?","F24://F24/./App/routes/PaginaScadenzarioRoute.jsx?","F24://F24/./App/areas/listaContribuenti/dettaglioContribuente/HeaderSezione.jsx?","F24://F24/./App/areas/listaContribuenti/dettaglioContribuente/sezioneDatiAnagrafici/BottoniDatiAnagrafici.jsx?","F24://F24/./App/components/Modalizer.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Icons/SaveIcon.jsx?","F24://F24/./App/components/FormFooter.jsx?","F24://F24/./App/areas/listaContribuenti/dettaglioContribuente/sezioneDatiAnagrafici/DatiAnagraficiPersonaFisicaFields.jsx?","F24://F24/./App/areas/listaContribuenti/dettaglioContribuente/sezioneIndirizzi/SezioneIndirizzi.jsx?","F24://F24/./App/areas/listaContribuenti/dettaglioContribuente/sezioneRecapiti/SezioneRecapiti.jsx?","F24://F24/./App/areas/listaContribuenti/dettaglioContribuente/sezioneContiCorrente/SezioneContiCorrente.jsx?","F24://F24/./App/areas/listaContribuenti/dettaglioContribuente/sezioneCodiceSia/SezioneCodiceSia.jsx?","F24://F24/./App/models/contribuente.js?","F24://F24/./App/areas/listaContribuenti/dettaglioContribuente/sezioneEsoneroISA/SezioneEsoneroISA.jsx?","F24://F24/./App/areas/listaContribuenti/dettaglioContribuente/sezioneCodiceSia/modaleCodiceSia/ModaleCodiceSia.jsx?","F24://F24/./App/areas/listaContribuenti/dettaglioContribuente/sezioneEsoneroISA/modaleEsoneroISA/ModaleEsoneroISA.jsx?","F24://F24/./App/areas/listaContribuenti/dettaglioContribuente/sezioneRecapiti/modaleRecapito/ModaleRecapito.jsx?","F24://F24/./App/areas/listaContribuenti/dettaglioContribuente/sezioneDatiAnagrafici/DatiAnagraficiPersonaGiuridicaFields.jsx?","F24://F24/./App/areas/listaContribuenti/dettaglioContribuente/sezioneRappresentanti/SezioneRappresentanti.jsx?","F24://F24/./App/areas/listaContribuenti/dettaglioContribuente/sezioneRappresentanti/modaleRappresentante/SezioneSedeLegale.jsx?","F24://F24/./App/areas/listaContribuenti/dettaglioContribuente/sezioneRappresentanti/modaleRappresentante/SezioneDatiAnagraficiConTipo.jsx?","F24://F24/./App/areas/listaContribuenti/dettaglioContribuente/sezioneRappresentanti/modaleRappresentante/SezioneResidenza.jsx?","F24://F24/./App/areas/listaContribuenti/dettaglioContribuente/sezioneRappresentanti/modaleRappresentante/ModaleRappresentante.jsx?","F24://F24/./App/areas/listaContribuenti/dettaglioContribuente/sezioneDatiDichiarativi/SezioneDatiDichiarativi.jsx?","F24://F24/./App/areas/listaContribuenti/dettaglioContribuente/sezioneDatiDichiarativi/modaleDatiDichiarativi/ModaleDatiDichiarativi.jsx?","F24://F24/./App/components/ModaleContoCorrente.jsx?","F24://F24/./App/areas/listaContribuenti/dettaglioContribuente/DettaglioContribuente.jsx?","F24://F24/./App/areas/listaContribuenti/dettaglioContribuente/PaginaDettaglioContribuente.jsx?","F24://F24/./App/routes/PaginaDettaglioContribuenteRoute.jsx?","F24://F24/./App/areas/listaContribuenti/massivita/listaDeleghe/tabella/presentate/ModaleDichiaraPagata.jsx?","F24://F24/./App/areas/listaContribuenti/massivita/listaDeleghe/tabella/complete/ModaleRischiDiPagareDueVolte.jsx?","F24://F24/./App/areas/listaContribuenti/massivita/listaDeleghe/tabella/complete/RigaDelegheCompleteSoggetto.jsx?","F24://F24/./App/areas/listaContribuenti/massivita/listaDeleghe/tabella/complete/TabellaDelegheCompleteSoggetto.jsx?","F24://F24/./App/areas/listaContribuenti/massivita/listaDeleghe/tabella/inLavorazione/RigaDelegheInLavorazioneSoggetto.jsx?","F24://F24/./App/areas/listaContribuenti/massivita/listaDeleghe/tabella/inLavorazione/TabellaDelegheInLavorazioneSoggetto.jsx?","F24://F24/./App/areas/listaContribuenti/massivita/listaDeleghe/tabella/presentate/RigaExpanded.jsx?","F24://F24/./App/areas/listaContribuenti/massivita/listaDeleghe/tabella/presentate/RigaDeleghePresentateSoggetto.jsx?","F24://F24/./App/areas/listaContribuenti/massivita/listaDeleghe/tabella/presentate/TabellaDeleghePresentateSoggetto.jsx?","F24://F24/./App/areas/listaContribuenti/massivita/listaDeleghe/TabListaDeleghe.jsx?","F24://F24/./App/areas/listaContribuenti/massivita/listaDeleghe/debitiDaInserireInDelega/RigaDebitiDaInserireInDelega.jsx?","F24://F24/./App/areas/listaContribuenti/massivita/listaDeleghe/debitiDaInserireInDelega/TabellaDebitiDaInserireInDelega.jsx?","F24://F24/./App/areas/listaContribuenti/massivita/listaDeleghe/debitiDaInserireInDelega/TabDebitiDaInserireInDelega.jsx?","F24://F24/./App/areas/listaContribuenti/massivita/listaDeleghe/debitiDaInserireInDelega/creazioneDelegaMultiContribuente/Step2Elaborazione.jsx?","F24://F24/./App/areas/listaContribuenti/massivita/listaDeleghe/debitiDaInserireInDelega/creazioneDelegaMultiContribuente/Step1Compensazione.jsx?","F24://F24/./App/areas/listaContribuenti/massivita/listaDeleghe/debitiDaInserireInDelega/creazioneDelegaMultiContribuente/ModaleCreazioneDeleghePerTributi.jsx?","F24://F24/./App/areas/listaContribuenti/massivita/DelegheMassive.jsx?","F24://F24/./App/areas/listaContribuenti/massivita/PaginaTutteLeDeleghe.jsx?","F24://F24/./App/routes/PaginaTutteLeDelegheRoute.jsx?","F24://F24/./App/routes/DettaglioDelegaFromMassiveRoute.jsx?","F24://F24/./App/routes/RiepilogoContribuenteRoute.jsx?","F24://F24/./App/routes/DettaglioDelegaRoute.jsx?","F24://F24/./App/areas/intermediari/ToolbarSpecifica.jsx?","F24://F24/./App/areas/intermediari/tabella/RigaIntermediario.jsx?","F24://F24/./App/areas/intermediari/tabella/TabellaIntermediari.jsx?","F24://F24/./App/areas/anagrafiche/creazione/SezioneDatiAnagraficiPersonaFisica.jsx?","F24://F24/./App/areas/anagrafiche/creazione/SezioneSedeLegale.jsx?","F24://F24/./App/areas/anagrafiche/creazione/SezioneDatiAnagraficiPersonaGiuridica.jsx?","F24://F24/./App/areas/anagrafiche/creazione/SezioneResidenza.jsx?","F24://F24/./App/actions/intermediari.js?","F24://F24/./App/areas/intermediari/creazione/ModaleCreazioneIntermediario.jsx?","F24://F24/./App/areas/intermediari/ListaIntermediari.jsx?","F24://F24/./App/routes/ListaIntermediariRoute.jsx?","F24://F24/./App/areas/backoffice/ListaIntermediariBackoffice.jsx?","F24://F24/./App/routes/ListaIntermediariBackofficeRoute.jsx?","F24://F24/./App/areas/anagrafiche/dettaglio/sezioneDatiAnagrafici/BottoniDatiAnagrafici.jsx?","F24://F24/./App/areas/anagrafiche/dettaglio/sezioneDatiAnagrafici/DatiAnagraficiPersonaFisicaFields.jsx?","F24://F24/./App/areas/anagrafiche/dettaglio/sezioneDatiAnagrafici/DatiAnagraficiPersonaGiuridicaFields.jsx?","F24://F24/./App/areas/anagrafiche/dettaglio/sezioneIndirizzi/SezioneIndirizzi.jsx?","F24://F24/./App/areas/anagrafiche/dettaglio/sezioneRecapiti/SezioneRecapiti.jsx?","F24://F24/./App/areas/anagrafiche/dettaglio/sezioneContiCorrente/SezioneContiCorrente.jsx?","F24://F24/./App/areas/anagrafiche/dettaglio/sezioneIndirizzi/modificaIndirizzo/ModaleIndirizzo.jsx?","F24://F24/./App/areas/anagrafiche/dettaglio/sezioneRecapiti/modaleRecapito/ModaleRecapito.jsx?","F24://F24/./App/areas/anagrafiche/dettaglio/sezioneDatiAnagrafici/modaleDatiAnagrafici/ModaleDatiAnagrafica.jsx?","F24://F24/./App/areas/intermediari/dettaglio/PaginaDettaglio.jsx?","F24://F24/./App/routes/PaginaDettaglioIntermediarioRoute.jsx?","F24://F24/./App/areas/dettaglioDelega/DettaglioDelegaIntermediario.jsx?","F24://F24/./App/routes/DettaglioDelegaIntermediarioRoute.jsx?","F24://F24/./App/areas/plugins/accettazionePagoF24/AccettazionePagoF24.jsx?","F24://F24/./App/routes/AccettazionePagoF24Route.jsx?","F24://F24/./App/areas/plugins/creazioneContribuente/CreazioneContribuente.jsx?","F24://F24/./App/routes/CreazioneContribuenteRoute.jsx?","F24://F24/./App/areas/plugins/creazioneContribuente/CreazioneContribuenteCgnPos.jsx?","F24://F24/./App/routes/CreazioneContribuenteCgnPosRoute.jsx?","F24://F24/./App/areas/plugins/datiUtenteUfficio/DatiUtenteUfficioPerMail.jsx?","F24://F24/./App/routes/DatiUtenteUfficioPerMailRoute.jsx?","F24://F24/./App/areas/plugins/confermaEmail/ConfermaEmailPagoF24.jsx?","F24://F24/./App/routes/ConfermaEmailPagoF24Route.jsx?","F24://F24/./App/areas/plugins/importazioneTributiPiuCreaDeleghe/ImportaTributi.jsx?","F24://F24/./App/routes/ImportaTributiRoute.jsx?","F24://F24/./App/components/Wizard/WizardNavigation.jsx?","F24://F24/./App/apis/cgnPos.js?","F24://F24/./App/components/Wizard/WizardContext.js?","F24://F24/./node_modules/framework-ui-components/Components/V2/Field/Input/useControlledByValue.jsx?","F24://F24/./node_modules/framework-ui-components/Components/V2/Field/Input/Input.jsx?","F24://F24/./node_modules/framework-ui-components/Components/V2/Field/Input/useControlledTextByValue.jsx?","F24://F24/./node_modules/framework-ui-components/Components/V2/Field/Input/useInputConfirmValue.jsx?","F24://F24/./node_modules/framework-ui-components/Components/V2/Field/Input/InputMail.jsx?","F24://F24/./node_modules/framework-ui-components/Components/GoogleIcons/Outlined/BackupIcon.jsx?","F24://F24/./node_modules/framework-ui-components/Components/V2/Field/SingleFileUpload/useFileUpload.jsx?","F24://F24/./node_modules/framework-ui-components/Components/V2/Field/SingleFileUpload/SingleFileUploadEmpty.jsx?","F24://F24/./node_modules/framework-ui-components/Components/V2/Field/SingleFileUpload/useFileUploadDragAndDrop.js?","F24://F24/./node_modules/framework-ui-components/Components/V2/Field/SingleFileUpload/SingleFileUpload.jsx?","F24://F24/./node_modules/framework-ui-components/Components/GoogleIcons/Outlined/ErrorIcon.jsx?","F24://F24/./App/components/Wizard/UploadDocumento.jsx?","F24://F24/./App/components/custom/InputGroup.jsx?","F24://F24/./node_modules/framework-ui-components/Components/GoogleIcons/Outlined/HelpIcon.jsx?","F24://F24/./App/components/icons/AssistenteInlineIcon.jsx?","F24://F24/./App/components/AssistenteButton.jsx?","F24://F24/./App/components/Wizard/Firma.jsx?","F24://F24/./App/components/Wizard/Wizard.jsx?","F24://F24/./App/areas/virtualPos/ContrattoPos.jsx?","F24://F24/./App/routes/ContrattoPosRoute.jsx?","F24://F24/./App/areas/virtualPos/WizardQr.jsx?","F24://F24/./App/areas/virtualPos/AssociaPos.jsx?","F24://F24/./App/routes/AssociaPosRoute.jsx?","F24://F24/./App/areas/plugins/datiUtenteUfficio/DatiUtenteUfficioPerMailCgnPos.jsx?","F24://F24/./App/routes/DatiUtenteUfficioPerMailCgnPosRoute.jsx?","F24://F24/./App/areas/plugins/importazioneTributiPiuCreaDeleghe/ImportaTributiCgnPos.jsx?","F24://F24/./App/routes/ImportaTributiCgnPosRoute.jsx?","F24://F24/./node_modules/framework-ui-components/Components/V2/FieldControlled/RadioField/RadioField.jsx?","F24://F24/./App/areas/plugins/pubblicita/PubblicitaAttivazionePagoF24.jsx?","F24://F24/./App/apis/statistiche.js?","F24://F24/./App/routes/PubblicitaPagoF24Route.jsx?","F24://F24/./App/Router.jsx?","F24://F24/./App/models/validation.js?","F24://F24/./App/models/restriction.js?","F24://F24/./node_modules/framework-ui-components/Components/Dropdown/DropdownItem.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Dropdown/SubMenuItem.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Dropdown/Dropdown.jsx?","F24://F24/./node_modules/framework-ui-components/Components/Dropdown/index.js?","F24://F24/./node_modules/framework-ui-components/Components/NavDropdown/NavDropdown.jsx?","F24://F24/./node_modules/framework-ui-components/Components/NavDropdown/index.js?","F24://F24/./node_modules/framework-ui-components/Components/GoogleIcons/Outlined/MeetingRoom.jsx?","F24://F24/./node_modules/framework-ui-components/Components/V2/MenuUtente/MenuUfficiItems.jsx?","F24://F24/./node_modules/framework-ui-components/Components/V2/MenuUtente/MenuUffici.jsx?","F24://F24/./node_modules/framework-ui-components/Components/GoogleIcons/Outlined/PermIdentityIcon.jsx?","F24://F24/./node_modules/framework-ui-components/Components/GoogleIcons/Outlined/ExportIcon.jsx?","F24://F24/./node_modules/framework-ui-components/Components/V2/MenuUtente/MenuUtente.jsx?","F24://F24/./App/components/ServiziEsterni.jsx?","F24://F24/./App/utils/customHooks/useCaricamentoServiziEsterni.jsx?","F24://F24/./App/utils/analytics.js?","F24://F24/./App/components/icons/LogoCgn.jsx?","F24://F24/./App/App.jsx?","F24://F24/./node_modules/framework-taskforce/reducers/utente.js?","F24://F24/./App/reducers/soggetto.js?","F24://F24/./App/reducers/intermediari.js?","F24://F24/./App/reducers/creazioneDeleghe.js?","F24://F24/./App/reducers/presentazioneDeleghe.js?","F24://F24/./App/reducers/datiDaServizioEsterno.js?","F24://F24/./App/index.jsx?","F24://F24/./node_modules/framework-taskforce/store/createStore.js?","F24://F24/./App/reducers/combineReducers.js?","F24://F24/./node_modules/framework-taskforce/reducers/appParams.js?","F24://F24/./node_modules/Assistente/index.js?","F24://F24/./node_modules/GeCo/index.js?","F24://F24/./node_modules/Home/index.js?","F24://F24/./node_modules/axios/index.js?","F24://F24/./node_modules/axios/lib/adapters/xhr.js?","F24://F24/./node_modules/axios/lib/axios.js?","F24://F24/./node_modules/axios/lib/cancel/Cancel.js?","F24://F24/./node_modules/axios/lib/cancel/CancelToken.js?","F24://F24/./node_modules/axios/lib/cancel/isCancel.js?","F24://F24/./node_modules/axios/lib/core/Axios.js?","F24://F24/./node_modules/axios/lib/core/InterceptorManager.js?","F24://F24/./node_modules/axios/lib/core/buildFullPath.js?","F24://F24/./node_modules/axios/lib/core/createError.js?","F24://F24/./node_modules/axios/lib/core/dispatchRequest.js?","F24://F24/./node_modules/axios/lib/core/enhanceError.js?","F24://F24/./node_modules/axios/lib/core/mergeConfig.js?","F24://F24/./node_modules/axios/lib/core/settle.js?","F24://F24/./node_modules/axios/lib/core/transformData.js?","F24://F24/./node_modules/axios/lib/defaults.js?","F24://F24/./node_modules/axios/lib/helpers/bind.js?","F24://F24/./node_modules/axios/lib/helpers/buildURL.js?","F24://F24/./node_modules/axios/lib/helpers/combineURLs.js?","F24://F24/./node_modules/axios/lib/helpers/cookies.js?","F24://F24/./node_modules/axios/lib/helpers/isAbsoluteURL.js?","F24://F24/./node_modules/axios/lib/helpers/isAxiosError.js?","F24://F24/./node_modules/axios/lib/helpers/isURLSameOrigin.js?","F24://F24/./node_modules/axios/lib/helpers/normalizeHeaderName.js?","F24://F24/./node_modules/axios/lib/helpers/parseHeaders.js?","F24://F24/./node_modules/axios/lib/helpers/spread.js?","F24://F24/./node_modules/axios/lib/utils.js?","F24://F24/./node_modules/classnames/index.js?","F24://F24/./node_modules/debug/src/browser.js?","F24://F24/./node_modules/debug/src/common.js?","F24://F24/./node_modules/file-saver/dist/FileSaver.min.js?","F24://F24/./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js?","F24://F24/./node_modules/invariant/browser.js?","F24://F24/./node_modules/ms/index.js?","F24://F24/./node_modules/object-assign/index.js?","F24://F24/./node_modules/path-to-regexp/index.js?","F24://F24/./node_modules/path-to-regexp/node_modules/isarray/index.js?","F24://F24/./node_modules/path/path.js?","F24://F24/./node_modules/process/browser.js?","F24://F24/./node_modules/prop-types/checkPropTypes.js?","F24://F24/./node_modules/prop-types/factoryWithThrowingShims.js?","F24://F24/./node_modules/prop-types/index.js?","F24://F24/./node_modules/prop-types/lib/ReactPropTypesSecret.js?","F24://F24/./node_modules/react-dom/cjs/react-dom.production.min.js?","F24://F24/./node_modules/react-dom/index.js?","F24://F24/./node_modules/react-is/cjs/react-is.production.min.js?","F24://F24/./node_modules/react-is/index.js?","F24://F24/./node_modules/react/cjs/react.production.min.js?","F24://F24/./node_modules/react/index.js?","F24://F24/./node_modules/scheduler/cjs/scheduler.production.min.js?","F24://F24/./node_modules/scheduler/index.js?","F24://F24/./node_modules/symbol-observable/es/index.js?","F24://F24/./node_modules/symbol-observable/es/ponyfill.js?","F24://F24/./node_modules/util/node_modules/inherits/inherits_browser.js?","F24://F24/./node_modules/util/support/isBufferBrowser.js?","F24://F24/./node_modules/util/util.js?","F24://F24/webpack/bootstrap?","F24://F24/webpack/runtime/compat get default export?","F24://F24/webpack/runtime/define property getters?","F24://F24/webpack/runtime/ensure chunk?","F24://F24/webpack/runtime/get javascript chunk filename?","F24://F24/webpack/runtime/get mini-css chunk filename?","F24://F24/webpack/runtime/global?","F24://F24/webpack/runtime/harmony module decorator?","F24://F24/webpack/runtime/hasOwnProperty shorthand?","F24://F24/webpack/runtime/make namespace object?","F24://F24/webpack/runtime/publicPath?","F24://F24/webpack/runtime/jsonp chunk loading?","F24://F24/webpack/startup?"],"sourcesContent":["var inProgress = {};\nvar dataWebpackPrefix = \"F24:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\t;\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","var createStylesheet = (chunkId, fullhref, resolve, reject) => {\n\tvar linkTag = document.createElement(\"link\");\n\n\tlinkTag.rel = \"stylesheet\";\n\tlinkTag.type = \"text/css\";\n\tvar onLinkComplete = (event) => {\n\t\t// avoid mem leaks.\n\t\tlinkTag.onerror = linkTag.onload = null;\n\t\tif (event.type === 'load') {\n\t\t\tresolve();\n\t\t} else {\n\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\tvar realHref = event && event.target && event.target.href || fullhref;\n\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + realHref + \")\");\n\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n\t\t\terr.type = errorType;\n\t\t\terr.request = realHref;\n\t\t\tlinkTag.parentNode.removeChild(linkTag)\n\t\t\treject(err);\n\t\t}\n\t}\n\tlinkTag.onerror = linkTag.onload = onLinkComplete;\n\tlinkTag.href = fullhref;\n\n\tdocument.head.appendChild(linkTag);\n\treturn linkTag;\n};\nvar findStylesheet = (href, fullhref) => {\n\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n\tfor(var i = 0; i < existingLinkTags.length; i++) {\n\t\tvar tag = existingLinkTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return tag;\n\t}\n\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n\tfor(var i = 0; i < existingStyleTags.length; i++) {\n\t\tvar tag = existingStyleTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\");\n\t\tif(dataHref === href || dataHref === fullhref) return tag;\n\t}\n};\nvar loadStylesheet = (chunkId) => {\n\treturn new Promise((resolve, reject) => {\n\t\tvar href = __webpack_require__.miniCssF(chunkId);\n\t\tvar fullhref = __webpack_require__.p + href;\n\t\tif(findStylesheet(href, fullhref)) return resolve();\n\t\tcreateStylesheet(chunkId, fullhref, resolve, reject);\n\t});\n}\n// object to store loaded CSS chunks\nvar installedCssChunks = {\n\t296: 0\n};\n\n__webpack_require__.f.miniCss = (chunkId, promises) => {\n\tvar cssChunks = {\"492\":1};\n\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n\t\tpromises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(() => {\n\t\t\tinstalledCssChunks[chunkId] = 0;\n\t\t}, (e) => {\n\t\t\tdelete installedCssChunks[chunkId];\n\t\t\tthrow e;\n\t\t}));\n\t}\n};\n\n// no hmr","function _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, _setPrototypeOf(t, e);\n}\nexport { _setPrototypeOf as default };","import setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _inheritsLoose(t, o) {\n t.prototype = Object.create(o.prototype), t.prototype.constructor = t, setPrototypeOf(t, o);\n}\nexport { _inheritsLoose as default };","function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends as default };","function isAbsolute(pathname) {\n return pathname.charAt(0) === '/';\n}\n\n// About 1.5x faster than the two-arg version of Array#splice()\nfunction spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {\n list[i] = list[k];\n }\n\n list.pop();\n}\n\n// This implementation is based heavily on node's url.parse\nfunction resolvePathname(to, from) {\n if (from === undefined) from = '';\n\n var toParts = (to && to.split('/')) || [];\n var fromParts = (from && from.split('/')) || [];\n\n var isToAbs = to && isAbsolute(to);\n var isFromAbs = from && isAbsolute(from);\n var mustEndAbs = isToAbs || isFromAbs;\n\n if (to && isAbsolute(to)) {\n // to is absolute\n fromParts = toParts;\n } else if (toParts.length) {\n // to is relative, drop the filename\n fromParts.pop();\n fromParts = fromParts.concat(toParts);\n }\n\n if (!fromParts.length) return '/';\n\n var hasTrailingSlash;\n if (fromParts.length) {\n var last = fromParts[fromParts.length - 1];\n hasTrailingSlash = last === '.' || last === '..' || last === '';\n } else {\n hasTrailingSlash = false;\n }\n\n var up = 0;\n for (var i = fromParts.length; i >= 0; i--) {\n var part = fromParts[i];\n\n if (part === '.') {\n spliceOne(fromParts, i);\n } else if (part === '..') {\n spliceOne(fromParts, i);\n up++;\n } else if (up) {\n spliceOne(fromParts, i);\n up--;\n }\n }\n\n if (!mustEndAbs) for (; up--; up) fromParts.unshift('..');\n\n if (\n mustEndAbs &&\n fromParts[0] !== '' &&\n (!fromParts[0] || !isAbsolute(fromParts[0]))\n )\n fromParts.unshift('');\n\n var result = fromParts.join('/');\n\n if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';\n\n return result;\n}\n\nexport default resolvePathname;\n","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n var provided = typeof message === 'function' ? message() : message;\n var value = provided ? \"\".concat(prefix, \": \").concat(provided) : prefix;\n throw new Error(value);\n}\n\nexport { invariant as default };\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport resolvePathname from 'resolve-pathname';\nimport valueEqual from 'value-equal';\nimport warning from 'tiny-warning';\nimport invariant from 'tiny-invariant';\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === '/' ? path : '/' + path;\n}\nfunction stripLeadingSlash(path) {\n return path.charAt(0) === '/' ? path.substr(1) : path;\n}\nfunction hasBasename(path, prefix) {\n return path.toLowerCase().indexOf(prefix.toLowerCase()) === 0 && '/?#'.indexOf(path.charAt(prefix.length)) !== -1;\n}\nfunction stripBasename(path, prefix) {\n return hasBasename(path, prefix) ? path.substr(prefix.length) : path;\n}\nfunction stripTrailingSlash(path) {\n return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\n}\nfunction parsePath(path) {\n var pathname = path || '/';\n var search = '';\n var hash = '';\n var hashIndex = pathname.indexOf('#');\n\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === '?' ? '' : search,\n hash: hash === '#' ? '' : hash\n };\n}\nfunction createPath(location) {\n var pathname = location.pathname,\n search = location.search,\n hash = location.hash;\n var path = pathname || '/';\n if (search && search !== '?') path += search.charAt(0) === '?' ? search : \"?\" + search;\n if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : \"#\" + hash;\n return path;\n}\n\nfunction createLocation(path, state, key, currentLocation) {\n var location;\n\n if (typeof path === 'string') {\n // Two-arg form: push(path, state)\n location = parsePath(path);\n location.state = state;\n } else {\n // One-arg form: push(location)\n location = _extends({}, path);\n if (location.pathname === undefined) location.pathname = '';\n\n if (location.search) {\n if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n } else {\n location.search = '';\n }\n\n if (location.hash) {\n if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n } else {\n location.hash = '';\n }\n\n if (state !== undefined && location.state === undefined) location.state = state;\n }\n\n try {\n location.pathname = decodeURI(location.pathname);\n } catch (e) {\n if (e instanceof URIError) {\n throw new URIError('Pathname \"' + location.pathname + '\" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');\n } else {\n throw e;\n }\n }\n\n if (key) location.key = key;\n\n if (currentLocation) {\n // Resolve incomplete/relative pathname relative to current location.\n if (!location.pathname) {\n location.pathname = currentLocation.pathname;\n } else if (location.pathname.charAt(0) !== '/') {\n location.pathname = resolvePathname(location.pathname, currentLocation.pathname);\n }\n } else {\n // When there is no prior location and pathname is empty, set it to /\n if (!location.pathname) {\n location.pathname = '/';\n }\n }\n\n return location;\n}\nfunction locationsAreEqual(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && valueEqual(a.state, b.state);\n}\n\nfunction createTransitionManager() {\n var prompt = null;\n\n function setPrompt(nextPrompt) {\n process.env.NODE_ENV !== \"production\" ? warning(prompt == null, 'A history supports only one prompt at a time') : void 0;\n prompt = nextPrompt;\n return function () {\n if (prompt === nextPrompt) prompt = null;\n };\n }\n\n function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n // TODO: If another transition starts while we're still confirming\n // the previous one, we may end up in a weird state. Figure out the\n // best way to handle this.\n if (prompt != null) {\n var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n if (typeof result === 'string') {\n if (typeof getUserConfirmation === 'function') {\n getUserConfirmation(result, callback);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'A history needs a getUserConfirmation function in order to use a prompt message') : void 0;\n callback(true);\n }\n } else {\n // Return false from a transition hook to cancel the transition.\n callback(result !== false);\n }\n } else {\n callback(true);\n }\n }\n\n var listeners = [];\n\n function appendListener(fn) {\n var isActive = true;\n\n function listener() {\n if (isActive) fn.apply(void 0, arguments);\n }\n\n listeners.push(listener);\n return function () {\n isActive = false;\n listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n }\n\n function notifyListeners() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n listeners.forEach(function (listener) {\n return listener.apply(void 0, args);\n });\n }\n\n return {\n setPrompt: setPrompt,\n confirmTransitionTo: confirmTransitionTo,\n appendListener: appendListener,\n notifyListeners: notifyListeners\n };\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction getConfirmation(message, callback) {\n callback(window.confirm(message)); // eslint-disable-line no-alert\n}\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\n\nfunction supportsHistory() {\n var ua = window.navigator.userAgent;\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n return window.history && 'pushState' in window.history;\n}\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\n\nfunction supportsPopStateOnHashChange() {\n return window.navigator.userAgent.indexOf('Trident') === -1;\n}\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\n\nfunction supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n}\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\n\nfunction isExtraneousPopstateEvent(event) {\n return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n}\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nfunction getHistoryState() {\n try {\n return window.history.state || {};\n } catch (e) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/ReactTraining/history/pull/289\n return {};\n }\n}\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\n\n\nfunction createBrowserHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Browser history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canUseHistory = supportsHistory();\n var needsHashChangeListener = !supportsPopStateOnHashChange();\n var _props = props,\n _props$forceRefresh = _props.forceRefresh,\n forceRefresh = _props$forceRefresh === void 0 ? false : _props$forceRefresh,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n\n function getDOMLocation(historyState) {\n var _ref = historyState || {},\n key = _ref.key,\n state = _ref.state;\n\n var _window$location = window.location,\n pathname = _window$location.pathname,\n search = _window$location.search,\n hash = _window$location.hash;\n var path = pathname + search + hash;\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path, state, key);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function handlePopState(event) {\n // Ignore extraneous popstate events in WebKit.\n if (isExtraneousPopstateEvent(event)) return;\n handlePop(getDOMLocation(event.state));\n }\n\n function handleHashChange() {\n handlePop(getDOMLocation(getHistoryState()));\n }\n\n var forceNextPop = false;\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of keys we've seen in sessionStorage.\n // Instead, we just default to 0 for keys we don't know.\n\n var toIndex = allKeys.indexOf(toLocation.key);\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allKeys.indexOf(fromLocation.key);\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n }\n\n var initialLocation = getDOMLocation(getHistoryState());\n var allKeys = [initialLocation.key]; // Public interface\n\n function createHref(location) {\n return basename + createPath(location);\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.pushState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.href = href;\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n var nextKeys = allKeys.slice(0, prevIndex + 1);\n nextKeys.push(location.key);\n allKeys = nextKeys;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history') : void 0;\n window.location.href = href;\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.replaceState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.replace(href);\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history') : void 0;\n window.location.replace(href);\n }\n });\n }\n\n function go(n) {\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.addEventListener(HashChangeEvent, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.removeEventListener(HashChangeEvent, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nvar HashChangeEvent$1 = 'hashchange';\nvar HashPathCoders = {\n hashbang: {\n encodePath: function encodePath(path) {\n return path.charAt(0) === '!' ? path : '!/' + stripLeadingSlash(path);\n },\n decodePath: function decodePath(path) {\n return path.charAt(0) === '!' ? path.substr(1) : path;\n }\n },\n noslash: {\n encodePath: stripLeadingSlash,\n decodePath: addLeadingSlash\n },\n slash: {\n encodePath: addLeadingSlash,\n decodePath: addLeadingSlash\n }\n};\n\nfunction stripHash(url) {\n var hashIndex = url.indexOf('#');\n return hashIndex === -1 ? url : url.slice(0, hashIndex);\n}\n\nfunction getHashPath() {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var hashIndex = href.indexOf('#');\n return hashIndex === -1 ? '' : href.substring(hashIndex + 1);\n}\n\nfunction pushHashPath(path) {\n window.location.hash = path;\n}\n\nfunction replaceHashPath(path) {\n window.location.replace(stripHash(window.location.href) + '#' + path);\n}\n\nfunction createHashHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Hash history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canGoWithoutReload = supportsGoWithoutReloadUsingHash();\n var _props = props,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$hashType = _props.hashType,\n hashType = _props$hashType === void 0 ? 'slash' : _props$hashType;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n var _HashPathCoders$hashT = HashPathCoders[hashType],\n encodePath = _HashPathCoders$hashT.encodePath,\n decodePath = _HashPathCoders$hashT.decodePath;\n\n function getDOMLocation() {\n var path = decodePath(getHashPath());\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n var forceNextPop = false;\n var ignorePath = null;\n\n function locationsAreEqual$$1(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash;\n }\n\n function handleHashChange() {\n var path = getHashPath();\n var encodedPath = encodePath(path);\n\n if (path !== encodedPath) {\n // Ensure we always have a properly-encoded hash.\n replaceHashPath(encodedPath);\n } else {\n var location = getDOMLocation();\n var prevLocation = history.location;\n if (!forceNextPop && locationsAreEqual$$1(prevLocation, location)) return; // A hashchange doesn't always == location change.\n\n if (ignorePath === createPath(location)) return; // Ignore this change; we already setState in push/replace.\n\n ignorePath = null;\n handlePop(location);\n }\n }\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of paths we've seen in sessionStorage.\n // Instead, we just default to 0 for paths we don't know.\n\n var toIndex = allPaths.lastIndexOf(createPath(toLocation));\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allPaths.lastIndexOf(createPath(fromLocation));\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n } // Ensure the hash is encoded properly before doing anything else.\n\n\n var path = getHashPath();\n var encodedPath = encodePath(path);\n if (path !== encodedPath) replaceHashPath(encodedPath);\n var initialLocation = getDOMLocation();\n var allPaths = [createPath(initialLocation)]; // Public interface\n\n function createHref(location) {\n var baseTag = document.querySelector('base');\n var href = '';\n\n if (baseTag && baseTag.getAttribute('href')) {\n href = stripHash(window.location.href);\n }\n\n return href + '#' + encodePath(basename + createPath(location));\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot push state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a PUSH, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n pushHashPath(encodedPath);\n var prevIndex = allPaths.lastIndexOf(createPath(history.location));\n var nextPaths = allPaths.slice(0, prevIndex + 1);\n nextPaths.push(path);\n allPaths = nextPaths;\n setState({\n action: action,\n location: location\n });\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack') : void 0;\n setState();\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot replace state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a REPLACE, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n replaceHashPath(encodedPath);\n }\n\n var prevIndex = allPaths.indexOf(createPath(history.location));\n if (prevIndex !== -1) allPaths[prevIndex] = path;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n process.env.NODE_ENV !== \"production\" ? warning(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser') : void 0;\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(HashChangeEvent$1, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(HashChangeEvent$1, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nfunction clamp(n, lowerBound, upperBound) {\n return Math.min(Math.max(n, lowerBound), upperBound);\n}\n/**\n * Creates a history object that stores locations in memory.\n */\n\n\nfunction createMemoryHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n var _props = props,\n getUserConfirmation = _props.getUserConfirmation,\n _props$initialEntries = _props.initialEntries,\n initialEntries = _props$initialEntries === void 0 ? ['/'] : _props$initialEntries,\n _props$initialIndex = _props.initialIndex,\n initialIndex = _props$initialIndex === void 0 ? 0 : _props$initialIndex,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = history.entries.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var index = clamp(initialIndex, 0, initialEntries.length - 1);\n var entries = initialEntries.map(function (entry) {\n return typeof entry === 'string' ? createLocation(entry, undefined, createKey()) : createLocation(entry, undefined, entry.key || createKey());\n }); // Public interface\n\n var createHref = createPath;\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var prevIndex = history.index;\n var nextIndex = prevIndex + 1;\n var nextEntries = history.entries.slice(0);\n\n if (nextEntries.length > nextIndex) {\n nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n } else {\n nextEntries.push(location);\n }\n\n setState({\n action: action,\n location: location,\n index: nextIndex,\n entries: nextEntries\n });\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n history.entries[history.index] = location;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n var action = 'POP';\n var location = history.entries[nextIndex];\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location,\n index: nextIndex\n });\n } else {\n // Mimic the behavior of DOM histories by\n // causing a render after a cancelled POP.\n setState();\n }\n });\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n function canGo(n) {\n var nextIndex = history.index + n;\n return nextIndex >= 0 && nextIndex < history.entries.length;\n }\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n return transitionManager.setPrompt(prompt);\n }\n\n function listen(listener) {\n return transitionManager.appendListener(listener);\n }\n\n var history = {\n length: entries.length,\n action: 'POP',\n location: entries[index],\n index: index,\n entries: entries,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n canGo: canGo,\n block: block,\n listen: listen\n };\n return history;\n}\n\nexport { createBrowserHistory, createHashHistory, createMemoryHistory, createLocation, locationsAreEqual, parsePath, createPath };\n","import React, { Component } from 'react';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport PropTypes from 'prop-types';\nimport warning from 'tiny-warning';\n\nvar MAX_SIGNED_31_BIT_INT = 1073741823;\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : {};\n\nfunction getUniqueId() {\n var key = '__global_unique_id__';\n return commonjsGlobal[key] = (commonjsGlobal[key] || 0) + 1;\n}\n\nfunction objectIs(x, y) {\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\n\nfunction createEventEmitter(value) {\n var handlers = [];\n return {\n on: function on(handler) {\n handlers.push(handler);\n },\n off: function off(handler) {\n handlers = handlers.filter(function (h) {\n return h !== handler;\n });\n },\n get: function get() {\n return value;\n },\n set: function set(newValue, changedBits) {\n value = newValue;\n handlers.forEach(function (handler) {\n return handler(value, changedBits);\n });\n }\n };\n}\n\nfunction onlyChild(children) {\n return Array.isArray(children) ? children[0] : children;\n}\n\nfunction createReactContext(defaultValue, calculateChangedBits) {\n var _Provider$childContex, _Consumer$contextType;\n\n var contextProp = '__create-react-context-' + getUniqueId() + '__';\n\n var Provider = /*#__PURE__*/function (_Component) {\n _inheritsLoose(Provider, _Component);\n\n function Provider() {\n var _this;\n\n _this = _Component.apply(this, arguments) || this;\n _this.emitter = createEventEmitter(_this.props.value);\n return _this;\n }\n\n var _proto = Provider.prototype;\n\n _proto.getChildContext = function getChildContext() {\n var _ref;\n\n return _ref = {}, _ref[contextProp] = this.emitter, _ref;\n };\n\n _proto.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n if (this.props.value !== nextProps.value) {\n var oldValue = this.props.value;\n var newValue = nextProps.value;\n var changedBits;\n\n if (objectIs(oldValue, newValue)) {\n changedBits = 0;\n } else {\n changedBits = typeof calculateChangedBits === 'function' ? calculateChangedBits(oldValue, newValue) : MAX_SIGNED_31_BIT_INT;\n\n if (process.env.NODE_ENV !== 'production') {\n warning((changedBits & MAX_SIGNED_31_BIT_INT) === changedBits, 'calculateChangedBits: Expected the return value to be a ' + '31-bit integer. Instead received: ' + changedBits);\n }\n\n changedBits |= 0;\n\n if (changedBits !== 0) {\n this.emitter.set(nextProps.value, changedBits);\n }\n }\n }\n };\n\n _proto.render = function render() {\n return this.props.children;\n };\n\n return Provider;\n }(Component);\n\n Provider.childContextTypes = (_Provider$childContex = {}, _Provider$childContex[contextProp] = PropTypes.object.isRequired, _Provider$childContex);\n\n var Consumer = /*#__PURE__*/function (_Component2) {\n _inheritsLoose(Consumer, _Component2);\n\n function Consumer() {\n var _this2;\n\n _this2 = _Component2.apply(this, arguments) || this;\n _this2.state = {\n value: _this2.getValue()\n };\n\n _this2.onUpdate = function (newValue, changedBits) {\n var observedBits = _this2.observedBits | 0;\n\n if ((observedBits & changedBits) !== 0) {\n _this2.setState({\n value: _this2.getValue()\n });\n }\n };\n\n return _this2;\n }\n\n var _proto2 = Consumer.prototype;\n\n _proto2.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n var observedBits = nextProps.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;\n };\n\n _proto2.componentDidMount = function componentDidMount() {\n if (this.context[contextProp]) {\n this.context[contextProp].on(this.onUpdate);\n }\n\n var observedBits = this.props.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;\n };\n\n _proto2.componentWillUnmount = function componentWillUnmount() {\n if (this.context[contextProp]) {\n this.context[contextProp].off(this.onUpdate);\n }\n };\n\n _proto2.getValue = function getValue() {\n if (this.context[contextProp]) {\n return this.context[contextProp].get();\n } else {\n return defaultValue;\n }\n };\n\n _proto2.render = function render() {\n return onlyChild(this.props.children)(this.state.value);\n };\n\n return Consumer;\n }(Component);\n\n Consumer.contextTypes = (_Consumer$contextType = {}, _Consumer$contextType[contextProp] = PropTypes.object, _Consumer$contextType);\n return {\n Provider: Provider,\n Consumer: Consumer\n };\n}\n\nvar index = React.createContext || createReactContext;\n\nexport default index;\n","function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (-1 !== e.indexOf(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nexport { _objectWithoutPropertiesLoose as default };","import _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { createMemoryHistory, createLocation, locationsAreEqual, createPath } from 'history';\nimport warning from 'tiny-warning';\nimport createContext from 'mini-create-react-context';\nimport invariant from 'tiny-invariant';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport pathToRegexp from 'path-to-regexp';\nimport { isValidElementType } from 'react-is';\nimport _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose';\nimport hoistStatics from 'hoist-non-react-statics';\n\n// TODO: Replace with React.createContext once we can assume React 16+\n\nvar createNamedContext = function createNamedContext(name) {\n var context = createContext();\n context.displayName = name;\n return context;\n};\n\nvar context =\n/*#__PURE__*/\ncreateNamedContext(\"Router\");\n\n/**\n * The public API for putting history on context.\n */\n\nvar Router =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(Router, _React$Component);\n\n Router.computeRootMatch = function computeRootMatch(pathname) {\n return {\n path: \"/\",\n url: \"/\",\n params: {},\n isExact: pathname === \"/\"\n };\n };\n\n function Router(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this;\n _this.state = {\n location: props.history.location\n }; // This is a bit of a hack. We have to start listening for location\n // changes here in the constructor in case there are any s\n // on the initial render. If there are, they will replace/push when\n // they mount and since cDM fires in children before parents, we may\n // get a new location before the is mounted.\n\n _this._isMounted = false;\n _this._pendingLocation = null;\n\n if (!props.staticContext) {\n _this.unlisten = props.history.listen(function (location) {\n if (_this._isMounted) {\n _this.setState({\n location: location\n });\n } else {\n _this._pendingLocation = location;\n }\n });\n }\n\n return _this;\n }\n\n var _proto = Router.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this._isMounted = true;\n\n if (this._pendingLocation) {\n this.setState({\n location: this._pendingLocation\n });\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this.unlisten) this.unlisten();\n };\n\n _proto.render = function render() {\n return React.createElement(context.Provider, {\n children: this.props.children || null,\n value: {\n history: this.props.history,\n location: this.state.location,\n match: Router.computeRootMatch(this.state.location.pathname),\n staticContext: this.props.staticContext\n }\n });\n };\n\n return Router;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n Router.propTypes = {\n children: PropTypes.node,\n history: PropTypes.object.isRequired,\n staticContext: PropTypes.object\n };\n\n Router.prototype.componentDidUpdate = function (prevProps) {\n process.env.NODE_ENV !== \"production\" ? warning(prevProps.history === this.props.history, \"You cannot change \") : void 0;\n };\n}\n\n/**\n * The public API for a that stores location in memory.\n */\n\nvar MemoryRouter =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(MemoryRouter, _React$Component);\n\n function MemoryRouter() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.history = createMemoryHistory(_this.props);\n return _this;\n }\n\n var _proto = MemoryRouter.prototype;\n\n _proto.render = function render() {\n return React.createElement(Router, {\n history: this.history,\n children: this.props.children\n });\n };\n\n return MemoryRouter;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n MemoryRouter.propTypes = {\n initialEntries: PropTypes.array,\n initialIndex: PropTypes.number,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number,\n children: PropTypes.node\n };\n\n MemoryRouter.prototype.componentDidMount = function () {\n process.env.NODE_ENV !== \"production\" ? warning(!this.props.history, \" ignores the history prop. To use a custom history, \" + \"use `import { Router }` instead of `import { MemoryRouter as Router }`.\") : void 0;\n };\n}\n\nvar Lifecycle =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(Lifecycle, _React$Component);\n\n function Lifecycle() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = Lifecycle.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n if (this.props.onMount) this.props.onMount.call(this, this);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n if (this.props.onUpdate) this.props.onUpdate.call(this, this, prevProps);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this.props.onUnmount) this.props.onUnmount.call(this, this);\n };\n\n _proto.render = function render() {\n return null;\n };\n\n return Lifecycle;\n}(React.Component);\n\n/**\n * The public API for prompting the user before navigating away from a screen.\n */\n\nfunction Prompt(_ref) {\n var message = _ref.message,\n _ref$when = _ref.when,\n when = _ref$when === void 0 ? true : _ref$when;\n return React.createElement(context.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use outside a \") : invariant(false) : void 0;\n if (!when || context.staticContext) return null;\n var method = context.history.block;\n return React.createElement(Lifecycle, {\n onMount: function onMount(self) {\n self.release = method(message);\n },\n onUpdate: function onUpdate(self, prevProps) {\n if (prevProps.message !== message) {\n self.release();\n self.release = method(message);\n }\n },\n onUnmount: function onUnmount(self) {\n self.release();\n },\n message: message\n });\n });\n}\n\nif (process.env.NODE_ENV !== \"production\") {\n var messageType = PropTypes.oneOfType([PropTypes.func, PropTypes.string]);\n Prompt.propTypes = {\n when: PropTypes.bool,\n message: messageType.isRequired\n };\n}\n\nvar cache = {};\nvar cacheLimit = 10000;\nvar cacheCount = 0;\n\nfunction compilePath(path) {\n if (cache[path]) return cache[path];\n var generator = pathToRegexp.compile(path);\n\n if (cacheCount < cacheLimit) {\n cache[path] = generator;\n cacheCount++;\n }\n\n return generator;\n}\n/**\n * Public API for generating a URL pathname from a path and parameters.\n */\n\n\nfunction generatePath(path, params) {\n if (path === void 0) {\n path = \"/\";\n }\n\n if (params === void 0) {\n params = {};\n }\n\n return path === \"/\" ? path : compilePath(path)(params, {\n pretty: true\n });\n}\n\n/**\n * The public API for navigating programmatically with a component.\n */\n\nfunction Redirect(_ref) {\n var computedMatch = _ref.computedMatch,\n to = _ref.to,\n _ref$push = _ref.push,\n push = _ref$push === void 0 ? false : _ref$push;\n return React.createElement(context.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use outside a \") : invariant(false) : void 0;\n var history = context.history,\n staticContext = context.staticContext;\n var method = push ? history.push : history.replace;\n var location = createLocation(computedMatch ? typeof to === \"string\" ? generatePath(to, computedMatch.params) : _extends({}, to, {\n pathname: generatePath(to.pathname, computedMatch.params)\n }) : to); // When rendering in a static context,\n // set the new location immediately.\n\n if (staticContext) {\n method(location);\n return null;\n }\n\n return React.createElement(Lifecycle, {\n onMount: function onMount() {\n method(location);\n },\n onUpdate: function onUpdate(self, prevProps) {\n var prevLocation = createLocation(prevProps.to);\n\n if (!locationsAreEqual(prevLocation, _extends({}, location, {\n key: prevLocation.key\n }))) {\n method(location);\n }\n },\n to: to\n });\n });\n}\n\nif (process.env.NODE_ENV !== \"production\") {\n Redirect.propTypes = {\n push: PropTypes.bool,\n from: PropTypes.string,\n to: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired\n };\n}\n\nvar cache$1 = {};\nvar cacheLimit$1 = 10000;\nvar cacheCount$1 = 0;\n\nfunction compilePath$1(path, options) {\n var cacheKey = \"\" + options.end + options.strict + options.sensitive;\n var pathCache = cache$1[cacheKey] || (cache$1[cacheKey] = {});\n if (pathCache[path]) return pathCache[path];\n var keys = [];\n var regexp = pathToRegexp(path, keys, options);\n var result = {\n regexp: regexp,\n keys: keys\n };\n\n if (cacheCount$1 < cacheLimit$1) {\n pathCache[path] = result;\n cacheCount$1++;\n }\n\n return result;\n}\n/**\n * Public API for matching a URL pathname to a path.\n */\n\n\nfunction matchPath(pathname, options) {\n if (options === void 0) {\n options = {};\n }\n\n if (typeof options === \"string\" || Array.isArray(options)) {\n options = {\n path: options\n };\n }\n\n var _options = options,\n path = _options.path,\n _options$exact = _options.exact,\n exact = _options$exact === void 0 ? false : _options$exact,\n _options$strict = _options.strict,\n strict = _options$strict === void 0 ? false : _options$strict,\n _options$sensitive = _options.sensitive,\n sensitive = _options$sensitive === void 0 ? false : _options$sensitive;\n var paths = [].concat(path);\n return paths.reduce(function (matched, path) {\n if (!path && path !== \"\") return null;\n if (matched) return matched;\n\n var _compilePath = compilePath$1(path, {\n end: exact,\n strict: strict,\n sensitive: sensitive\n }),\n regexp = _compilePath.regexp,\n keys = _compilePath.keys;\n\n var match = regexp.exec(pathname);\n if (!match) return null;\n var url = match[0],\n values = match.slice(1);\n var isExact = pathname === url;\n if (exact && !isExact) return null;\n return {\n path: path,\n // the path used to match\n url: path === \"/\" && url === \"\" ? \"/\" : url,\n // the matched portion of the URL\n isExact: isExact,\n // whether or not we matched exactly\n params: keys.reduce(function (memo, key, index) {\n memo[key.name] = values[index];\n return memo;\n }, {})\n };\n }, null);\n}\n\nfunction isEmptyChildren(children) {\n return React.Children.count(children) === 0;\n}\n\nfunction evalChildrenDev(children, props, path) {\n var value = children(props);\n process.env.NODE_ENV !== \"production\" ? warning(value !== undefined, \"You returned `undefined` from the `children` function of \" + (\", but you \") + \"should have returned a React element or `null`\") : void 0;\n return value || null;\n}\n/**\n * The public API for matching a single path and rendering.\n */\n\n\nvar Route =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(Route, _React$Component);\n\n function Route() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = Route.prototype;\n\n _proto.render = function render() {\n var _this = this;\n\n return React.createElement(context.Consumer, null, function (context$1) {\n !context$1 ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use outside a \") : invariant(false) : void 0;\n var location = _this.props.location || context$1.location;\n var match = _this.props.computedMatch ? _this.props.computedMatch // already computed the match for us\n : _this.props.path ? matchPath(location.pathname, _this.props) : context$1.match;\n\n var props = _extends({}, context$1, {\n location: location,\n match: match\n });\n\n var _this$props = _this.props,\n children = _this$props.children,\n component = _this$props.component,\n render = _this$props.render; // Preact uses an empty array as children by\n // default, so use null if that's the case.\n\n if (Array.isArray(children) && children.length === 0) {\n children = null;\n }\n\n return React.createElement(context.Provider, {\n value: props\n }, props.match ? children ? typeof children === \"function\" ? process.env.NODE_ENV !== \"production\" ? evalChildrenDev(children, props, _this.props.path) : children(props) : children : component ? React.createElement(component, props) : render ? render(props) : null : typeof children === \"function\" ? process.env.NODE_ENV !== \"production\" ? evalChildrenDev(children, props, _this.props.path) : children(props) : null);\n });\n };\n\n return Route;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n Route.propTypes = {\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n component: function component(props, propName) {\n if (props[propName] && !isValidElementType(props[propName])) {\n return new Error(\"Invalid prop 'component' supplied to 'Route': the prop is not a valid React component\");\n }\n },\n exact: PropTypes.bool,\n location: PropTypes.object,\n path: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]),\n render: PropTypes.func,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool\n };\n\n Route.prototype.componentDidMount = function () {\n process.env.NODE_ENV !== \"production\" ? warning(!(this.props.children && !isEmptyChildren(this.props.children) && this.props.component), \"You should not use and in the same route; will be ignored\") : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!(this.props.children && !isEmptyChildren(this.props.children) && this.props.render), \"You should not use and in the same route; will be ignored\") : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!(this.props.component && this.props.render), \"You should not use and in the same route; will be ignored\") : void 0;\n };\n\n Route.prototype.componentDidUpdate = function (prevProps) {\n process.env.NODE_ENV !== \"production\" ? warning(!(this.props.location && !prevProps.location), ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.') : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!(!this.props.location && prevProps.location), ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.') : void 0;\n };\n}\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === \"/\" ? path : \"/\" + path;\n}\n\nfunction addBasename(basename, location) {\n if (!basename) return location;\n return _extends({}, location, {\n pathname: addLeadingSlash(basename) + location.pathname\n });\n}\n\nfunction stripBasename(basename, location) {\n if (!basename) return location;\n var base = addLeadingSlash(basename);\n if (location.pathname.indexOf(base) !== 0) return location;\n return _extends({}, location, {\n pathname: location.pathname.substr(base.length)\n });\n}\n\nfunction createURL(location) {\n return typeof location === \"string\" ? location : createPath(location);\n}\n\nfunction staticHandler(methodName) {\n return function () {\n process.env.NODE_ENV !== \"production\" ? invariant(false, \"You cannot %s with \", methodName) : invariant(false) ;\n };\n}\n\nfunction noop() {}\n/**\n * The public top-level API for a \"static\" , so-called because it\n * can't actually change the current location. Instead, it just records\n * location changes in a context object. Useful mainly in testing and\n * server-rendering scenarios.\n */\n\n\nvar StaticRouter =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(StaticRouter, _React$Component);\n\n function StaticRouter() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n\n _this.handlePush = function (location) {\n return _this.navigateTo(location, \"PUSH\");\n };\n\n _this.handleReplace = function (location) {\n return _this.navigateTo(location, \"REPLACE\");\n };\n\n _this.handleListen = function () {\n return noop;\n };\n\n _this.handleBlock = function () {\n return noop;\n };\n\n return _this;\n }\n\n var _proto = StaticRouter.prototype;\n\n _proto.navigateTo = function navigateTo(location, action) {\n var _this$props = this.props,\n _this$props$basename = _this$props.basename,\n basename = _this$props$basename === void 0 ? \"\" : _this$props$basename,\n _this$props$context = _this$props.context,\n context = _this$props$context === void 0 ? {} : _this$props$context;\n context.action = action;\n context.location = addBasename(basename, createLocation(location));\n context.url = createURL(context.location);\n };\n\n _proto.render = function render() {\n var _this$props2 = this.props,\n _this$props2$basename = _this$props2.basename,\n basename = _this$props2$basename === void 0 ? \"\" : _this$props2$basename,\n _this$props2$context = _this$props2.context,\n context = _this$props2$context === void 0 ? {} : _this$props2$context,\n _this$props2$location = _this$props2.location,\n location = _this$props2$location === void 0 ? \"/\" : _this$props2$location,\n rest = _objectWithoutPropertiesLoose(_this$props2, [\"basename\", \"context\", \"location\"]);\n\n var history = {\n createHref: function createHref(path) {\n return addLeadingSlash(basename + createURL(path));\n },\n action: \"POP\",\n location: stripBasename(basename, createLocation(location)),\n push: this.handlePush,\n replace: this.handleReplace,\n go: staticHandler(\"go\"),\n goBack: staticHandler(\"goBack\"),\n goForward: staticHandler(\"goForward\"),\n listen: this.handleListen,\n block: this.handleBlock\n };\n return React.createElement(Router, _extends({}, rest, {\n history: history,\n staticContext: context\n }));\n };\n\n return StaticRouter;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n StaticRouter.propTypes = {\n basename: PropTypes.string,\n context: PropTypes.object,\n location: PropTypes.oneOfType([PropTypes.string, PropTypes.object])\n };\n\n StaticRouter.prototype.componentDidMount = function () {\n process.env.NODE_ENV !== \"production\" ? warning(!this.props.history, \" ignores the history prop. To use a custom history, \" + \"use `import { Router }` instead of `import { StaticRouter as Router }`.\") : void 0;\n };\n}\n\n/**\n * The public API for rendering the first that matches.\n */\n\nvar Switch =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(Switch, _React$Component);\n\n function Switch() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = Switch.prototype;\n\n _proto.render = function render() {\n var _this = this;\n\n return React.createElement(context.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use outside a \") : invariant(false) : void 0;\n var location = _this.props.location || context.location;\n var element, match; // We use React.Children.forEach instead of React.Children.toArray().find()\n // here because toArray adds keys to all child elements and we do not want\n // to trigger an unmount/remount for two s that render the same\n // component at different URLs.\n\n React.Children.forEach(_this.props.children, function (child) {\n if (match == null && React.isValidElement(child)) {\n element = child;\n var path = child.props.path || child.props.from;\n match = path ? matchPath(location.pathname, _extends({}, child.props, {\n path: path\n })) : context.match;\n }\n });\n return match ? React.cloneElement(element, {\n location: location,\n computedMatch: match\n }) : null;\n });\n };\n\n return Switch;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n Switch.propTypes = {\n children: PropTypes.node,\n location: PropTypes.object\n };\n\n Switch.prototype.componentDidUpdate = function (prevProps) {\n process.env.NODE_ENV !== \"production\" ? warning(!(this.props.location && !prevProps.location), ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.') : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!(!this.props.location && prevProps.location), ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.') : void 0;\n };\n}\n\n/**\n * A public higher-order component to access the imperative API\n */\n\nfunction withRouter(Component) {\n var displayName = \"withRouter(\" + (Component.displayName || Component.name) + \")\";\n\n var C = function C(props) {\n var wrappedComponentRef = props.wrappedComponentRef,\n remainingProps = _objectWithoutPropertiesLoose(props, [\"wrappedComponentRef\"]);\n\n return React.createElement(context.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use <\" + displayName + \" /> outside a \") : invariant(false) : void 0;\n return React.createElement(Component, _extends({}, remainingProps, context, {\n ref: wrappedComponentRef\n }));\n });\n };\n\n C.displayName = displayName;\n C.WrappedComponent = Component;\n\n if (process.env.NODE_ENV !== \"production\") {\n C.propTypes = {\n wrappedComponentRef: PropTypes.oneOfType([PropTypes.string, PropTypes.func, PropTypes.object])\n };\n }\n\n return hoistStatics(C, Component);\n}\n\nvar useContext = React.useContext;\nfunction useHistory() {\n if (process.env.NODE_ENV !== \"production\") {\n !(typeof useContext === \"function\") ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You must use React >= 16.8 in order to use useHistory()\") : invariant(false) : void 0;\n }\n\n return useContext(context).history;\n}\nfunction useLocation() {\n if (process.env.NODE_ENV !== \"production\") {\n !(typeof useContext === \"function\") ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You must use React >= 16.8 in order to use useLocation()\") : invariant(false) : void 0;\n }\n\n return useContext(context).location;\n}\nfunction useParams() {\n if (process.env.NODE_ENV !== \"production\") {\n !(typeof useContext === \"function\") ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You must use React >= 16.8 in order to use useParams()\") : invariant(false) : void 0;\n }\n\n var match = useContext(context).match;\n return match ? match.params : {};\n}\nfunction useRouteMatch(path) {\n if (process.env.NODE_ENV !== \"production\") {\n !(typeof useContext === \"function\") ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You must use React >= 16.8 in order to use useRouteMatch()\") : invariant(false) : void 0;\n }\n\n return path ? matchPath(useLocation().pathname, path) : useContext(context).match;\n}\n\nif (process.env.NODE_ENV !== \"production\") {\n if (typeof window !== \"undefined\") {\n var global = window;\n var key = \"__react_router_build__\";\n var buildNames = {\n cjs: \"CommonJS\",\n esm: \"ES modules\",\n umd: \"UMD\"\n };\n\n if (global[key] && global[key] !== \"esm\") {\n var initialBuildName = buildNames[global[key]];\n var secondaryBuildName = buildNames[\"esm\"]; // TODO: Add link to article that explains in detail how to avoid\n // loading 2 different builds.\n\n throw new Error(\"You are loading the \" + secondaryBuildName + \" build of React Router \" + (\"on a page that is already running the \" + initialBuildName + \" \") + \"build, so things won't work right.\");\n }\n\n global[key] = \"esm\";\n }\n}\n\nexport { MemoryRouter, Prompt, Redirect, Route, Router, StaticRouter, Switch, context as __RouterContext, generatePath, matchPath, useHistory, useLocation, useParams, useRouteMatch, withRouter };\n//# sourceMappingURL=react-router.js.map\n","import { Router, __RouterContext, matchPath } from 'react-router';\nexport * from 'react-router';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport React from 'react';\nimport { createBrowserHistory, createHashHistory, createLocation } from 'history';\nimport PropTypes from 'prop-types';\nimport warning from 'tiny-warning';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose';\nimport invariant from 'tiny-invariant';\n\n/**\n * The public API for a that uses HTML5 history.\n */\n\nvar BrowserRouter =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(BrowserRouter, _React$Component);\n\n function BrowserRouter() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.history = createBrowserHistory(_this.props);\n return _this;\n }\n\n var _proto = BrowserRouter.prototype;\n\n _proto.render = function render() {\n return React.createElement(Router, {\n history: this.history,\n children: this.props.children\n });\n };\n\n return BrowserRouter;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n BrowserRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n forceRefresh: PropTypes.bool,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number\n };\n\n BrowserRouter.prototype.componentDidMount = function () {\n process.env.NODE_ENV !== \"production\" ? warning(!this.props.history, \" ignores the history prop. To use a custom history, \" + \"use `import { Router }` instead of `import { BrowserRouter as Router }`.\") : void 0;\n };\n}\n\n/**\n * The public API for a that uses window.location.hash.\n */\n\nvar HashRouter =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(HashRouter, _React$Component);\n\n function HashRouter() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.history = createHashHistory(_this.props);\n return _this;\n }\n\n var _proto = HashRouter.prototype;\n\n _proto.render = function render() {\n return React.createElement(Router, {\n history: this.history,\n children: this.props.children\n });\n };\n\n return HashRouter;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n HashRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n getUserConfirmation: PropTypes.func,\n hashType: PropTypes.oneOf([\"hashbang\", \"noslash\", \"slash\"])\n };\n\n HashRouter.prototype.componentDidMount = function () {\n process.env.NODE_ENV !== \"production\" ? warning(!this.props.history, \" ignores the history prop. To use a custom history, \" + \"use `import { Router }` instead of `import { HashRouter as Router }`.\") : void 0;\n };\n}\n\nvar resolveToLocation = function resolveToLocation(to, currentLocation) {\n return typeof to === \"function\" ? to(currentLocation) : to;\n};\nvar normalizeToLocation = function normalizeToLocation(to, currentLocation) {\n return typeof to === \"string\" ? createLocation(to, null, null, currentLocation) : to;\n};\n\nvar forwardRefShim = function forwardRefShim(C) {\n return C;\n};\n\nvar forwardRef = React.forwardRef;\n\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nvar LinkAnchor = forwardRef(function (_ref, forwardedRef) {\n var innerRef = _ref.innerRef,\n navigate = _ref.navigate,\n _onClick = _ref.onClick,\n rest = _objectWithoutPropertiesLoose(_ref, [\"innerRef\", \"navigate\", \"onClick\"]);\n\n var target = rest.target;\n\n var props = _extends({}, rest, {\n onClick: function onClick(event) {\n try {\n if (_onClick) _onClick(event);\n } catch (ex) {\n event.preventDefault();\n throw ex;\n }\n\n if (!event.defaultPrevented && // onClick prevented default\n event.button === 0 && ( // ignore everything but left clicks\n !target || target === \"_self\") && // let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // ignore clicks with modifier keys\n ) {\n event.preventDefault();\n navigate();\n }\n }\n }); // React 15 compat\n\n\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.ref = innerRef;\n }\n\n return React.createElement(\"a\", props);\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n LinkAnchor.displayName = \"LinkAnchor\";\n}\n/**\n * The public API for rendering a history-aware .\n */\n\n\nvar Link = forwardRef(function (_ref2, forwardedRef) {\n var _ref2$component = _ref2.component,\n component = _ref2$component === void 0 ? LinkAnchor : _ref2$component,\n replace = _ref2.replace,\n to = _ref2.to,\n innerRef = _ref2.innerRef,\n rest = _objectWithoutPropertiesLoose(_ref2, [\"component\", \"replace\", \"to\", \"innerRef\"]);\n\n return React.createElement(__RouterContext.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use outside a \") : invariant(false) : void 0;\n var history = context.history;\n var location = normalizeToLocation(resolveToLocation(to, context.location), context.location);\n var href = location ? history.createHref(location) : \"\";\n\n var props = _extends({}, rest, {\n href: href,\n navigate: function navigate() {\n var location = resolveToLocation(to, context.location);\n var method = replace ? history.replace : history.push;\n method(location);\n }\n }); // React 15 compat\n\n\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return React.createElement(component, props);\n });\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n var toType = PropTypes.oneOfType([PropTypes.string, PropTypes.object, PropTypes.func]);\n var refType = PropTypes.oneOfType([PropTypes.string, PropTypes.func, PropTypes.shape({\n current: PropTypes.any\n })]);\n Link.displayName = \"Link\";\n Link.propTypes = {\n innerRef: refType,\n onClick: PropTypes.func,\n replace: PropTypes.bool,\n target: PropTypes.string,\n to: toType.isRequired\n };\n}\n\nvar forwardRefShim$1 = function forwardRefShim(C) {\n return C;\n};\n\nvar forwardRef$1 = React.forwardRef;\n\nif (typeof forwardRef$1 === \"undefined\") {\n forwardRef$1 = forwardRefShim$1;\n}\n\nfunction joinClassnames() {\n for (var _len = arguments.length, classnames = new Array(_len), _key = 0; _key < _len; _key++) {\n classnames[_key] = arguments[_key];\n }\n\n return classnames.filter(function (i) {\n return i;\n }).join(\" \");\n}\n/**\n * A wrapper that knows if it's \"active\" or not.\n */\n\n\nvar NavLink = forwardRef$1(function (_ref, forwardedRef) {\n var _ref$ariaCurrent = _ref[\"aria-current\"],\n ariaCurrent = _ref$ariaCurrent === void 0 ? \"page\" : _ref$ariaCurrent,\n _ref$activeClassName = _ref.activeClassName,\n activeClassName = _ref$activeClassName === void 0 ? \"active\" : _ref$activeClassName,\n activeStyle = _ref.activeStyle,\n classNameProp = _ref.className,\n exact = _ref.exact,\n isActiveProp = _ref.isActive,\n locationProp = _ref.location,\n strict = _ref.strict,\n styleProp = _ref.style,\n to = _ref.to,\n innerRef = _ref.innerRef,\n rest = _objectWithoutPropertiesLoose(_ref, [\"aria-current\", \"activeClassName\", \"activeStyle\", \"className\", \"exact\", \"isActive\", \"location\", \"strict\", \"style\", \"to\", \"innerRef\"]);\n\n return React.createElement(__RouterContext.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use outside a \") : invariant(false) : void 0;\n var currentLocation = locationProp || context.location;\n var toLocation = normalizeToLocation(resolveToLocation(to, currentLocation), currentLocation);\n var path = toLocation.pathname; // Regex taken from: https://github.com/pillarjs/path-to-regexp/blob/master/index.js#L202\n\n var escapedPath = path && path.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\");\n var match = escapedPath ? matchPath(currentLocation.pathname, {\n path: escapedPath,\n exact: exact,\n strict: strict\n }) : null;\n var isActive = !!(isActiveProp ? isActiveProp(match, currentLocation) : match);\n var className = isActive ? joinClassnames(classNameProp, activeClassName) : classNameProp;\n var style = isActive ? _extends({}, styleProp, {}, activeStyle) : styleProp;\n\n var props = _extends({\n \"aria-current\": isActive && ariaCurrent || null,\n className: className,\n style: style,\n to: toLocation\n }, rest); // React 15 compat\n\n\n if (forwardRefShim$1 !== forwardRef$1) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return React.createElement(Link, props);\n });\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n NavLink.displayName = \"NavLink\";\n var ariaCurrentType = PropTypes.oneOf([\"page\", \"step\", \"location\", \"date\", \"time\", \"true\"]);\n NavLink.propTypes = _extends({}, Link.propTypes, {\n \"aria-current\": ariaCurrentType,\n activeClassName: PropTypes.string,\n activeStyle: PropTypes.object,\n className: PropTypes.string,\n exact: PropTypes.bool,\n isActive: PropTypes.func,\n location: PropTypes.object,\n strict: PropTypes.bool,\n style: PropTypes.object\n });\n}\n\nexport { BrowserRouter, HashRouter, Link, NavLink };\n//# sourceMappingURL=react-router-dom.js.map\n","import React from 'react';\nexport var ReactReduxContext = React.createContext(null);\nexport default ReactReduxContext;","// Default to a dummy \"batch\" implementation that just runs the callback\nfunction defaultNoopBatch(callback) {\n callback();\n}\n\nvar batch = defaultNoopBatch; // Allow injecting another batching function later\n\nexport var setBatch = function setBatch(newBatch) {\n return batch = newBatch;\n}; // Supply a getter just to skip dealing with ESM bindings\n\nexport var getBatch = function getBatch() {\n return batch;\n};","import { getBatch } from './batch'; // encapsulates the subscription logic for connecting a component to the redux store, as\n// well as nesting subscriptions of descendant components, so that we can ensure the\n// ancestor components re-render before descendants\n\nvar CLEARED = null;\nvar nullListeners = {\n notify: function notify() {}\n};\n\nfunction createListenerCollection() {\n var batch = getBatch(); // the current/next pattern is copied from redux's createStore code.\n // TODO: refactor+expose that code to be reusable here?\n\n var current = [];\n var next = [];\n return {\n clear: function clear() {\n next = CLEARED;\n current = CLEARED;\n },\n notify: function notify() {\n var listeners = current = next;\n batch(function () {\n for (var i = 0; i < listeners.length; i++) {\n listeners[i]();\n }\n });\n },\n get: function get() {\n return next;\n },\n subscribe: function subscribe(listener) {\n var isSubscribed = true;\n if (next === current) next = current.slice();\n next.push(listener);\n return function unsubscribe() {\n if (!isSubscribed || current === CLEARED) return;\n isSubscribed = false;\n if (next === current) next = current.slice();\n next.splice(next.indexOf(listener), 1);\n };\n }\n };\n}\n\nvar Subscription =\n/*#__PURE__*/\nfunction () {\n function Subscription(store, parentSub) {\n this.store = store;\n this.parentSub = parentSub;\n this.unsubscribe = null;\n this.listeners = nullListeners;\n this.handleChangeWrapper = this.handleChangeWrapper.bind(this);\n }\n\n var _proto = Subscription.prototype;\n\n _proto.addNestedSub = function addNestedSub(listener) {\n this.trySubscribe();\n return this.listeners.subscribe(listener);\n };\n\n _proto.notifyNestedSubs = function notifyNestedSubs() {\n this.listeners.notify();\n };\n\n _proto.handleChangeWrapper = function handleChangeWrapper() {\n if (this.onStateChange) {\n this.onStateChange();\n }\n };\n\n _proto.isSubscribed = function isSubscribed() {\n return Boolean(this.unsubscribe);\n };\n\n _proto.trySubscribe = function trySubscribe() {\n if (!this.unsubscribe) {\n this.unsubscribe = this.parentSub ? this.parentSub.addNestedSub(this.handleChangeWrapper) : this.store.subscribe(this.handleChangeWrapper);\n this.listeners = createListenerCollection();\n }\n };\n\n _proto.tryUnsubscribe = function tryUnsubscribe() {\n if (this.unsubscribe) {\n this.unsubscribe();\n this.unsubscribe = null;\n this.listeners.clear();\n this.listeners = nullListeners;\n }\n };\n\n return Subscription;\n}();\n\nexport { Subscription as default };","import React, { useMemo, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { ReactReduxContext } from './Context';\nimport Subscription from '../utils/Subscription';\n\nfunction Provider(_ref) {\n var store = _ref.store,\n context = _ref.context,\n children = _ref.children;\n var contextValue = useMemo(function () {\n var subscription = new Subscription(store);\n subscription.onStateChange = subscription.notifyNestedSubs;\n return {\n store: store,\n subscription: subscription\n };\n }, [store]);\n var previousState = useMemo(function () {\n return store.getState();\n }, [store]);\n useEffect(function () {\n var subscription = contextValue.subscription;\n subscription.trySubscribe();\n\n if (previousState !== store.getState()) {\n subscription.notifyNestedSubs();\n }\n\n return function () {\n subscription.tryUnsubscribe();\n subscription.onStateChange = null;\n };\n }, [contextValue, previousState]);\n var Context = context || ReactReduxContext;\n return React.createElement(Context.Provider, {\n value: contextValue\n }, children);\n}\n\nProvider.propTypes = {\n store: PropTypes.shape({\n subscribe: PropTypes.func.isRequired,\n dispatch: PropTypes.func.isRequired,\n getState: PropTypes.func.isRequired\n }),\n context: PropTypes.object,\n children: PropTypes.any\n};\nexport default Provider;","import { useEffect, useLayoutEffect } from 'react'; // React currently throws a warning when using useLayoutEffect on the server.\n// To get around it, we can conditionally useEffect on the server (no-op) and\n// useLayoutEffect in the browser. We need useLayoutEffect to ensure the store\n// subscription callback always has the selector from the latest render commit\n// available, otherwise a store update may happen between render and the effect,\n// which may cause missed updates; we also must ensure the store subscription\n// is created synchronously, otherwise a store update may occur before the\n// subscription is created and an inconsistent state may be observed\n\nvar isHopefullyDomEnvironment = typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined';\nexport var useIsomorphicLayoutEffect = isHopefullyDomEnvironment ? useLayoutEffect : useEffect;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport hoistStatics from 'hoist-non-react-statics';\nimport invariant from 'invariant';\nimport React, { useContext, useMemo, useRef, useReducer } from 'react';\nimport { isValidElementType, isContextConsumer } from 'react-is';\nimport Subscription from '../utils/Subscription';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';\nimport { ReactReduxContext } from './Context'; // Define some constant arrays just to avoid re-creating these\n\nvar EMPTY_ARRAY = [];\nvar NO_SUBSCRIPTION_ARRAY = [null, null];\n\nvar stringifyComponent = function stringifyComponent(Comp) {\n try {\n return JSON.stringify(Comp);\n } catch (err) {\n return String(Comp);\n }\n};\n\nfunction storeStateUpdatesReducer(state, action) {\n var updateCount = state[1];\n return [action.payload, updateCount + 1];\n}\n\nvar initStateUpdates = function initStateUpdates() {\n return [null, 0];\n};\n\nexport default function connectAdvanced(\n/*\r\n selectorFactory is a func that is responsible for returning the selector function used to\r\n compute new props from state, props, and dispatch. For example:\r\n export default connectAdvanced((dispatch, options) => (state, props) => ({\r\n thing: state.things[props.thingId],\r\n saveThing: fields => dispatch(actionCreators.saveThing(props.thingId, fields)),\r\n }))(YourComponent)\r\n Access to dispatch is provided to the factory so selectorFactories can bind actionCreators\r\n outside of their selector as an optimization. Options passed to connectAdvanced are passed to\r\n the selectorFactory, along with displayName and WrappedComponent, as the second argument.\r\n Note that selectorFactory is responsible for all caching/memoization of inbound and outbound\r\n props. Do not use connectAdvanced directly without memoizing results between calls to your\r\n selector, otherwise the Connect component will re-render on every state or props change.\r\n*/\nselectorFactory, // options object:\n_ref) {\n if (_ref === void 0) {\n _ref = {};\n }\n\n var _ref2 = _ref,\n _ref2$getDisplayName = _ref2.getDisplayName,\n getDisplayName = _ref2$getDisplayName === void 0 ? function (name) {\n return \"ConnectAdvanced(\" + name + \")\";\n } : _ref2$getDisplayName,\n _ref2$methodName = _ref2.methodName,\n methodName = _ref2$methodName === void 0 ? 'connectAdvanced' : _ref2$methodName,\n _ref2$renderCountProp = _ref2.renderCountProp,\n renderCountProp = _ref2$renderCountProp === void 0 ? undefined : _ref2$renderCountProp,\n _ref2$shouldHandleSta = _ref2.shouldHandleStateChanges,\n shouldHandleStateChanges = _ref2$shouldHandleSta === void 0 ? true : _ref2$shouldHandleSta,\n _ref2$storeKey = _ref2.storeKey,\n storeKey = _ref2$storeKey === void 0 ? 'store' : _ref2$storeKey,\n _ref2$withRef = _ref2.withRef,\n withRef = _ref2$withRef === void 0 ? false : _ref2$withRef,\n _ref2$forwardRef = _ref2.forwardRef,\n forwardRef = _ref2$forwardRef === void 0 ? false : _ref2$forwardRef,\n _ref2$context = _ref2.context,\n context = _ref2$context === void 0 ? ReactReduxContext : _ref2$context,\n connectOptions = _objectWithoutPropertiesLoose(_ref2, [\"getDisplayName\", \"methodName\", \"renderCountProp\", \"shouldHandleStateChanges\", \"storeKey\", \"withRef\", \"forwardRef\", \"context\"]);\n\n invariant(renderCountProp === undefined, \"renderCountProp is removed. render counting is built into the latest React Dev Tools profiling extension\");\n invariant(!withRef, 'withRef is removed. To access the wrapped instance, use a ref on the connected component');\n var customStoreWarningMessage = 'To use a custom Redux store for specific components, create a custom React context with ' + \"React.createContext(), and pass the context object to React Redux's Provider and specific components\" + ' like: . ' + 'You may also pass a {context : MyContext} option to connect';\n invariant(storeKey === 'store', 'storeKey has been removed and does not do anything. ' + customStoreWarningMessage);\n var Context = context;\n return function wrapWithConnect(WrappedComponent) {\n if (process.env.NODE_ENV !== 'production') {\n invariant(isValidElementType(WrappedComponent), \"You must pass a component to the function returned by \" + (methodName + \". Instead received \" + stringifyComponent(WrappedComponent)));\n }\n\n var wrappedComponentName = WrappedComponent.displayName || WrappedComponent.name || 'Component';\n var displayName = getDisplayName(wrappedComponentName);\n\n var selectorFactoryOptions = _extends({}, connectOptions, {\n getDisplayName: getDisplayName,\n methodName: methodName,\n renderCountProp: renderCountProp,\n shouldHandleStateChanges: shouldHandleStateChanges,\n storeKey: storeKey,\n displayName: displayName,\n wrappedComponentName: wrappedComponentName,\n WrappedComponent: WrappedComponent\n });\n\n var pure = connectOptions.pure;\n\n function createChildSelector(store) {\n return selectorFactory(store.dispatch, selectorFactoryOptions);\n } // If we aren't running in \"pure\" mode, we don't want to memoize values.\n // To avoid conditionally calling hooks, we fall back to a tiny wrapper\n // that just executes the given callback immediately.\n\n\n var usePureOnlyMemo = pure ? useMemo : function (callback) {\n return callback();\n };\n\n function ConnectFunction(props) {\n var _useMemo = useMemo(function () {\n // Distinguish between actual \"data\" props that were passed to the wrapper component,\n // and values needed to control behavior (forwarded refs, alternate context instances).\n // To maintain the wrapperProps object reference, memoize this destructuring.\n var forwardedRef = props.forwardedRef,\n wrapperProps = _objectWithoutPropertiesLoose(props, [\"forwardedRef\"]);\n\n return [props.context, forwardedRef, wrapperProps];\n }, [props]),\n propsContext = _useMemo[0],\n forwardedRef = _useMemo[1],\n wrapperProps = _useMemo[2];\n\n var ContextToUse = useMemo(function () {\n // Users may optionally pass in a custom context instance to use instead of our ReactReduxContext.\n // Memoize the check that determines which context instance we should use.\n return propsContext && propsContext.Consumer && isContextConsumer(React.createElement(propsContext.Consumer, null)) ? propsContext : Context;\n }, [propsContext, Context]); // Retrieve the store and ancestor subscription via context, if available\n\n var contextValue = useContext(ContextToUse); // The store _must_ exist as either a prop or in context.\n // We'll check to see if it _looks_ like a Redux store first.\n // This allows us to pass through a `store` prop that is just a plain value.\n\n var didStoreComeFromProps = Boolean(props.store) && Boolean(props.store.getState) && Boolean(props.store.dispatch);\n var didStoreComeFromContext = Boolean(contextValue) && Boolean(contextValue.store);\n invariant(didStoreComeFromProps || didStoreComeFromContext, \"Could not find \\\"store\\\" in the context of \" + (\"\\\"\" + displayName + \"\\\". Either wrap the root component in a , \") + \"or pass a custom React context provider to and the corresponding \" + (\"React context consumer to \" + displayName + \" in connect options.\")); // Based on the previous check, one of these must be true\n\n var store = didStoreComeFromProps ? props.store : contextValue.store;\n var childPropsSelector = useMemo(function () {\n // The child props selector needs the store reference as an input.\n // Re-create this selector whenever the store changes.\n return createChildSelector(store);\n }, [store]);\n\n var _useMemo2 = useMemo(function () {\n if (!shouldHandleStateChanges) return NO_SUBSCRIPTION_ARRAY; // This Subscription's source should match where store came from: props vs. context. A component\n // connected to the store via props shouldn't use subscription from context, or vice versa.\n\n var subscription = new Subscription(store, didStoreComeFromProps ? null : contextValue.subscription); // `notifyNestedSubs` is duplicated to handle the case where the component is unmounted in\n // the middle of the notification loop, where `subscription` will then be null. This can\n // probably be avoided if Subscription's listeners logic is changed to not call listeners\n // that have been unsubscribed in the middle of the notification loop.\n\n var notifyNestedSubs = subscription.notifyNestedSubs.bind(subscription);\n return [subscription, notifyNestedSubs];\n }, [store, didStoreComeFromProps, contextValue]),\n subscription = _useMemo2[0],\n notifyNestedSubs = _useMemo2[1]; // Determine what {store, subscription} value should be put into nested context, if necessary,\n // and memoize that value to avoid unnecessary context updates.\n\n\n var overriddenContextValue = useMemo(function () {\n if (didStoreComeFromProps) {\n // This component is directly subscribed to a store from props.\n // We don't want descendants reading from this store - pass down whatever\n // the existing context value is from the nearest connected ancestor.\n return contextValue;\n } // Otherwise, put this component's subscription instance into context, so that\n // connected descendants won't update until after this component is done\n\n\n return _extends({}, contextValue, {\n subscription: subscription\n });\n }, [didStoreComeFromProps, contextValue, subscription]); // We need to force this wrapper component to re-render whenever a Redux store update\n // causes a change to the calculated child component props (or we caught an error in mapState)\n\n var _useReducer = useReducer(storeStateUpdatesReducer, EMPTY_ARRAY, initStateUpdates),\n _useReducer$ = _useReducer[0],\n previousStateUpdateResult = _useReducer$[0],\n forceComponentUpdateDispatch = _useReducer[1]; // Propagate any mapState/mapDispatch errors upwards\n\n\n if (previousStateUpdateResult && previousStateUpdateResult.error) {\n throw previousStateUpdateResult.error;\n } // Set up refs to coordinate values between the subscription effect and the render logic\n\n\n var lastChildProps = useRef();\n var lastWrapperProps = useRef(wrapperProps);\n var childPropsFromStoreUpdate = useRef();\n var renderIsScheduled = useRef(false);\n var actualChildProps = usePureOnlyMemo(function () {\n // Tricky logic here:\n // - This render may have been triggered by a Redux store update that produced new child props\n // - However, we may have gotten new wrapper props after that\n // If we have new child props, and the same wrapper props, we know we should use the new child props as-is.\n // But, if we have new wrapper props, those might change the child props, so we have to recalculate things.\n // So, we'll use the child props from store update only if the wrapper props are the same as last time.\n if (childPropsFromStoreUpdate.current && wrapperProps === lastWrapperProps.current) {\n return childPropsFromStoreUpdate.current;\n } // TODO We're reading the store directly in render() here. Bad idea?\n // This will likely cause Bad Things (TM) to happen in Concurrent Mode.\n // Note that we do this because on renders _not_ caused by store updates, we need the latest store state\n // to determine what the child props should be.\n\n\n return childPropsSelector(store.getState(), wrapperProps);\n }, [store, previousStateUpdateResult, wrapperProps]); // We need this to execute synchronously every time we re-render. However, React warns\n // about useLayoutEffect in SSR, so we try to detect environment and fall back to\n // just useEffect instead to avoid the warning, since neither will run anyway.\n\n useIsomorphicLayoutEffect(function () {\n // We want to capture the wrapper props and child props we used for later comparisons\n lastWrapperProps.current = wrapperProps;\n lastChildProps.current = actualChildProps;\n renderIsScheduled.current = false; // If the render was from a store update, clear out that reference and cascade the subscriber update\n\n if (childPropsFromStoreUpdate.current) {\n childPropsFromStoreUpdate.current = null;\n notifyNestedSubs();\n }\n }); // Our re-subscribe logic only runs when the store/subscription setup changes\n\n useIsomorphicLayoutEffect(function () {\n // If we're not subscribed to the store, nothing to do here\n if (!shouldHandleStateChanges) return; // Capture values for checking if and when this component unmounts\n\n var didUnsubscribe = false;\n var lastThrownError = null; // We'll run this callback every time a store subscription update propagates to this component\n\n var checkForUpdates = function checkForUpdates() {\n if (didUnsubscribe) {\n // Don't run stale listeners.\n // Redux doesn't guarantee unsubscriptions happen until next dispatch.\n return;\n }\n\n var latestStoreState = store.getState();\n var newChildProps, error;\n\n try {\n // Actually run the selector with the most recent store state and wrapper props\n // to determine what the child props should be\n newChildProps = childPropsSelector(latestStoreState, lastWrapperProps.current);\n } catch (e) {\n error = e;\n lastThrownError = e;\n }\n\n if (!error) {\n lastThrownError = null;\n } // If the child props haven't changed, nothing to do here - cascade the subscription update\n\n\n if (newChildProps === lastChildProps.current) {\n if (!renderIsScheduled.current) {\n notifyNestedSubs();\n }\n } else {\n // Save references to the new child props. Note that we track the \"child props from store update\"\n // as a ref instead of a useState/useReducer because we need a way to determine if that value has\n // been processed. If this went into useState/useReducer, we couldn't clear out the value without\n // forcing another re-render, which we don't want.\n lastChildProps.current = newChildProps;\n childPropsFromStoreUpdate.current = newChildProps;\n renderIsScheduled.current = true; // If the child props _did_ change (or we caught an error), this wrapper component needs to re-render\n\n forceComponentUpdateDispatch({\n type: 'STORE_UPDATED',\n payload: {\n error: error\n }\n });\n }\n }; // Actually subscribe to the nearest connected ancestor (or store)\n\n\n subscription.onStateChange = checkForUpdates;\n subscription.trySubscribe(); // Pull data from the store after first render in case the store has\n // changed since we began.\n\n checkForUpdates();\n\n var unsubscribeWrapper = function unsubscribeWrapper() {\n didUnsubscribe = true;\n subscription.tryUnsubscribe();\n subscription.onStateChange = null;\n\n if (lastThrownError) {\n // It's possible that we caught an error due to a bad mapState function, but the\n // parent re-rendered without this component and we're about to unmount.\n // This shouldn't happen as long as we do top-down subscriptions correctly, but\n // if we ever do those wrong, this throw will surface the error in our tests.\n // In that case, throw the error from here so it doesn't get lost.\n throw lastThrownError;\n }\n };\n\n return unsubscribeWrapper;\n }, [store, subscription, childPropsSelector]); // Now that all that's done, we can finally try to actually render the child component.\n // We memoize the elements for the rendered child component as an optimization.\n\n var renderedWrappedComponent = useMemo(function () {\n return React.createElement(WrappedComponent, _extends({}, actualChildProps, {\n ref: forwardedRef\n }));\n }, [forwardedRef, WrappedComponent, actualChildProps]); // If React sees the exact same element reference as last time, it bails out of re-rendering\n // that child, same as if it was wrapped in React.memo() or returned false from shouldComponentUpdate.\n\n var renderedChild = useMemo(function () {\n if (shouldHandleStateChanges) {\n // If this component is subscribed to store updates, we need to pass its own\n // subscription instance down to our descendants. That means rendering the same\n // Context instance, and putting a different value into the context.\n return React.createElement(ContextToUse.Provider, {\n value: overriddenContextValue\n }, renderedWrappedComponent);\n }\n\n return renderedWrappedComponent;\n }, [ContextToUse, renderedWrappedComponent, overriddenContextValue]);\n return renderedChild;\n } // If we're in \"pure\" mode, ensure our wrapper component only re-renders when incoming props have changed.\n\n\n var Connect = pure ? React.memo(ConnectFunction) : ConnectFunction;\n Connect.WrappedComponent = WrappedComponent;\n Connect.displayName = displayName;\n\n if (forwardRef) {\n var forwarded = React.forwardRef(function forwardConnectRef(props, ref) {\n return React.createElement(Connect, _extends({}, props, {\n forwardedRef: ref\n }));\n });\n forwarded.displayName = displayName;\n forwarded.WrappedComponent = WrappedComponent;\n return hoistStatics(forwarded, WrappedComponent);\n }\n\n return hoistStatics(Connect, WrappedComponent);\n };\n}","var hasOwn = Object.prototype.hasOwnProperty;\n\nfunction is(x, y) {\n if (x === y) {\n return x !== 0 || y !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\n\nexport default function shallowEqual(objA, objB) {\n if (is(objA, objB)) return true;\n\n if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n if (keysA.length !== keysB.length) return false;\n\n for (var i = 0; i < keysA.length; i++) {\n if (!hasOwn.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n\n return true;\n}","import $$observable from 'symbol-observable';\n\n/**\n * These are private action types reserved by Redux.\n * For any unknown actions, you must return the current state.\n * If the current state is undefined, you must return the initial state.\n * Do not reference these action types directly in your code.\n */\nvar randomString = function randomString() {\n return Math.random().toString(36).substring(7).split('').join('.');\n};\n\nvar ActionTypes = {\n INIT: \"@@redux/INIT\" + randomString(),\n REPLACE: \"@@redux/REPLACE\" + randomString(),\n PROBE_UNKNOWN_ACTION: function PROBE_UNKNOWN_ACTION() {\n return \"@@redux/PROBE_UNKNOWN_ACTION\" + randomString();\n }\n};\n\n/**\n * @param {any} obj The object to inspect.\n * @returns {boolean} True if the argument appears to be a plain object.\n */\nfunction isPlainObject(obj) {\n if (typeof obj !== 'object' || obj === null) return false;\n var proto = obj;\n\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n\n return Object.getPrototypeOf(obj) === proto;\n}\n\n/**\n * Creates a Redux store that holds the state tree.\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} [enhancer] The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\n\nfunction createStore(reducer, preloadedState, enhancer) {\n var _ref2;\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'function' || typeof enhancer === 'function' && typeof arguments[3] === 'function') {\n throw new Error('It looks like you are passing several store enhancers to ' + 'createStore(). This is not supported. Instead, compose them ' + 'together to a single function.');\n }\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {\n enhancer = preloadedState;\n preloadedState = undefined;\n }\n\n if (typeof enhancer !== 'undefined') {\n if (typeof enhancer !== 'function') {\n throw new Error('Expected the enhancer to be a function.');\n }\n\n return enhancer(createStore)(reducer, preloadedState);\n }\n\n if (typeof reducer !== 'function') {\n throw new Error('Expected the reducer to be a function.');\n }\n\n var currentReducer = reducer;\n var currentState = preloadedState;\n var currentListeners = [];\n var nextListeners = currentListeners;\n var isDispatching = false;\n /**\n * This makes a shallow copy of currentListeners so we can use\n * nextListeners as a temporary list while dispatching.\n *\n * This prevents any bugs around consumers calling\n * subscribe/unsubscribe in the middle of a dispatch.\n */\n\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = currentListeners.slice();\n }\n }\n /**\n * Reads the state tree managed by the store.\n *\n * @returns {any} The current state tree of your application.\n */\n\n\n function getState() {\n if (isDispatching) {\n throw new Error('You may not call store.getState() while the reducer is executing. ' + 'The reducer has already received the state as an argument. ' + 'Pass it down from the top reducer instead of reading it from the store.');\n }\n\n return currentState;\n }\n /**\n * Adds a change listener. It will be called any time an action is dispatched,\n * and some part of the state tree may potentially have changed. You may then\n * call `getState()` to read the current state tree inside the callback.\n *\n * You may call `dispatch()` from a change listener, with the following\n * caveats:\n *\n * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n * If you subscribe or unsubscribe while the listeners are being invoked, this\n * will not have any effect on the `dispatch()` that is currently in progress.\n * However, the next `dispatch()` call, whether nested or not, will use a more\n * recent snapshot of the subscription list.\n *\n * 2. The listener should not expect to see all state changes, as the state\n * might have been updated multiple times during a nested `dispatch()` before\n * the listener is called. It is, however, guaranteed that all subscribers\n * registered before the `dispatch()` started will be called with the latest\n * state by the time it exits.\n *\n * @param {Function} listener A callback to be invoked on every dispatch.\n * @returns {Function} A function to remove this change listener.\n */\n\n\n function subscribe(listener) {\n if (typeof listener !== 'function') {\n throw new Error('Expected the listener to be a function.');\n }\n\n if (isDispatching) {\n throw new Error('You may not call store.subscribe() while the reducer is executing. ' + 'If you would like to be notified after the store has been updated, subscribe from a ' + 'component and invoke store.getState() in the callback to access the latest state. ' + 'See https://redux.js.org/api-reference/store#subscribelistener for more details.');\n }\n\n var isSubscribed = true;\n ensureCanMutateNextListeners();\n nextListeners.push(listener);\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n\n if (isDispatching) {\n throw new Error('You may not unsubscribe from a store listener while the reducer is executing. ' + 'See https://redux.js.org/api-reference/store#subscribelistener for more details.');\n }\n\n isSubscribed = false;\n ensureCanMutateNextListeners();\n var index = nextListeners.indexOf(listener);\n nextListeners.splice(index, 1);\n currentListeners = null;\n };\n }\n /**\n * Dispatches an action. It is the only way to trigger a state change.\n *\n * The `reducer` function, used to create the store, will be called with the\n * current state tree and the given `action`. Its return value will\n * be considered the **next** state of the tree, and the change listeners\n * will be notified.\n *\n * The base implementation only supports plain object actions. If you want to\n * dispatch a Promise, an Observable, a thunk, or something else, you need to\n * wrap your store creating function into the corresponding middleware. For\n * example, see the documentation for the `redux-thunk` package. Even the\n * middleware will eventually dispatch plain object actions using this method.\n *\n * @param {Object} action A plain object representing “what changed”. It is\n * a good idea to keep actions serializable so you can record and replay user\n * sessions, or use the time travelling `redux-devtools`. An action must have\n * a `type` property which may not be `undefined`. It is a good idea to use\n * string constants for action types.\n *\n * @returns {Object} For convenience, the same action object you dispatched.\n *\n * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n * return something else (for example, a Promise you can await).\n */\n\n\n function dispatch(action) {\n if (!isPlainObject(action)) {\n throw new Error('Actions must be plain objects. ' + 'Use custom middleware for async actions.');\n }\n\n if (typeof action.type === 'undefined') {\n throw new Error('Actions may not have an undefined \"type\" property. ' + 'Have you misspelled a constant?');\n }\n\n if (isDispatching) {\n throw new Error('Reducers may not dispatch actions.');\n }\n\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n\n var listeners = currentListeners = nextListeners;\n\n for (var i = 0; i < listeners.length; i++) {\n var listener = listeners[i];\n listener();\n }\n\n return action;\n }\n /**\n * Replaces the reducer currently used by the store to calculate the state.\n *\n * You might need this if your app implements code splitting and you want to\n * load some of the reducers dynamically. You might also need this if you\n * implement a hot reloading mechanism for Redux.\n *\n * @param {Function} nextReducer The reducer for the store to use instead.\n * @returns {void}\n */\n\n\n function replaceReducer(nextReducer) {\n if (typeof nextReducer !== 'function') {\n throw new Error('Expected the nextReducer to be a function.');\n }\n\n currentReducer = nextReducer; // This action has a similiar effect to ActionTypes.INIT.\n // Any reducers that existed in both the new and old rootReducer\n // will receive the previous state. This effectively populates\n // the new state tree with any relevant data from the old one.\n\n dispatch({\n type: ActionTypes.REPLACE\n });\n }\n /**\n * Interoperability point for observable/reactive libraries.\n * @returns {observable} A minimal observable of state changes.\n * For more information, see the observable proposal:\n * https://github.com/tc39/proposal-observable\n */\n\n\n function observable() {\n var _ref;\n\n var outerSubscribe = subscribe;\n return _ref = {\n /**\n * The minimal observable subscription method.\n * @param {Object} observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns {subscription} An object with an `unsubscribe` method that can\n * be used to unsubscribe the observable from the store, and prevent further\n * emission of values from the observable.\n */\n subscribe: function subscribe(observer) {\n if (typeof observer !== 'object' || observer === null) {\n throw new TypeError('Expected the observer to be an object.');\n }\n\n function observeState() {\n if (observer.next) {\n observer.next(getState());\n }\n }\n\n observeState();\n var unsubscribe = outerSubscribe(observeState);\n return {\n unsubscribe: unsubscribe\n };\n }\n }, _ref[$$observable] = function () {\n return this;\n }, _ref;\n } // When a store is created, an \"INIT\" action is dispatched so that every\n // reducer returns their initial state. This effectively populates\n // the initial state tree.\n\n\n dispatch({\n type: ActionTypes.INIT\n });\n return _ref2 = {\n dispatch: dispatch,\n subscribe: subscribe,\n getState: getState,\n replaceReducer: replaceReducer\n }, _ref2[$$observable] = observable, _ref2;\n}\n\n/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\nfunction warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\n\n\n try {\n // This error was thrown as a convenience so that if you enable\n // \"break on all exceptions\" in your console,\n // it would pause the execution at this line.\n throw new Error(message);\n } catch (e) {} // eslint-disable-line no-empty\n\n}\n\nfunction getUndefinedStateErrorMessage(key, action) {\n var actionType = action && action.type;\n var actionDescription = actionType && \"action \\\"\" + String(actionType) + \"\\\"\" || 'an action';\n return \"Given \" + actionDescription + \", reducer \\\"\" + key + \"\\\" returned undefined. \" + \"To ignore an action, you must explicitly return the previous state. \" + \"If you want this reducer to hold no value, you can return null instead of undefined.\";\n}\n\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n var reducerKeys = Object.keys(reducers);\n var argumentName = action && action.type === ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';\n\n if (reducerKeys.length === 0) {\n return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n }\n\n if (!isPlainObject(inputState)) {\n return \"The \" + argumentName + \" has unexpected type of \\\"\" + {}.toString.call(inputState).match(/\\s([a-z|A-Z]+)/)[1] + \"\\\". Expected argument to be an object with the following \" + (\"keys: \\\"\" + reducerKeys.join('\", \"') + \"\\\"\");\n }\n\n var unexpectedKeys = Object.keys(inputState).filter(function (key) {\n return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key];\n });\n unexpectedKeys.forEach(function (key) {\n unexpectedKeyCache[key] = true;\n });\n if (action && action.type === ActionTypes.REPLACE) return;\n\n if (unexpectedKeys.length > 0) {\n return \"Unexpected \" + (unexpectedKeys.length > 1 ? 'keys' : 'key') + \" \" + (\"\\\"\" + unexpectedKeys.join('\", \"') + \"\\\" found in \" + argumentName + \". \") + \"Expected to find one of the known reducer keys instead: \" + (\"\\\"\" + reducerKeys.join('\", \"') + \"\\\". Unexpected keys will be ignored.\");\n }\n}\n\nfunction assertReducerShape(reducers) {\n Object.keys(reducers).forEach(function (key) {\n var reducer = reducers[key];\n var initialState = reducer(undefined, {\n type: ActionTypes.INIT\n });\n\n if (typeof initialState === 'undefined') {\n throw new Error(\"Reducer \\\"\" + key + \"\\\" returned undefined during initialization. \" + \"If the state passed to the reducer is undefined, you must \" + \"explicitly return the initial state. The initial state may \" + \"not be undefined. If you don't want to set a value for this reducer, \" + \"you can use null instead of undefined.\");\n }\n\n if (typeof reducer(undefined, {\n type: ActionTypes.PROBE_UNKNOWN_ACTION()\n }) === 'undefined') {\n throw new Error(\"Reducer \\\"\" + key + \"\\\" returned undefined when probed with a random type. \" + (\"Don't try to handle \" + ActionTypes.INIT + \" or other actions in \\\"redux/*\\\" \") + \"namespace. They are considered private. Instead, you must return the \" + \"current state for any unknown actions, unless it is undefined, \" + \"in which case you must return the initial state, regardless of the \" + \"action type. The initial state may not be undefined, but can be null.\");\n }\n });\n}\n/**\n * Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * @param {Object} reducers An object whose values correspond to different\n * reducer functions that need to be combined into one. One handy way to obtain\n * it is to use ES6 `import * as reducers` syntax. The reducers may never return\n * undefined for any action. Instead, they should return their initial state\n * if the state passed to them was undefined, and the current state for any\n * unrecognized action.\n *\n * @returns {Function} A reducer function that invokes every reducer inside the\n * passed object, and builds a state object with the same shape.\n */\n\n\nfunction combineReducers(reducers) {\n var reducerKeys = Object.keys(reducers);\n var finalReducers = {};\n\n for (var i = 0; i < reducerKeys.length; i++) {\n var key = reducerKeys[i];\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof reducers[key] === 'undefined') {\n warning(\"No reducer provided for key \\\"\" + key + \"\\\"\");\n }\n }\n\n if (typeof reducers[key] === 'function') {\n finalReducers[key] = reducers[key];\n }\n }\n\n var finalReducerKeys = Object.keys(finalReducers); // This is used to make sure we don't warn about the same\n // keys multiple times.\n\n var unexpectedKeyCache;\n\n if (process.env.NODE_ENV !== 'production') {\n unexpectedKeyCache = {};\n }\n\n var shapeAssertionError;\n\n try {\n assertReducerShape(finalReducers);\n } catch (e) {\n shapeAssertionError = e;\n }\n\n return function combination(state, action) {\n if (state === void 0) {\n state = {};\n }\n\n if (shapeAssertionError) {\n throw shapeAssertionError;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n\n if (warningMessage) {\n warning(warningMessage);\n }\n }\n\n var hasChanged = false;\n var nextState = {};\n\n for (var _i = 0; _i < finalReducerKeys.length; _i++) {\n var _key = finalReducerKeys[_i];\n var reducer = finalReducers[_key];\n var previousStateForKey = state[_key];\n var nextStateForKey = reducer(previousStateForKey, action);\n\n if (typeof nextStateForKey === 'undefined') {\n var errorMessage = getUndefinedStateErrorMessage(_key, action);\n throw new Error(errorMessage);\n }\n\n nextState[_key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n\n hasChanged = hasChanged || finalReducerKeys.length !== Object.keys(state).length;\n return hasChanged ? nextState : state;\n };\n}\n\nfunction bindActionCreator(actionCreator, dispatch) {\n return function () {\n return dispatch(actionCreator.apply(this, arguments));\n };\n}\n/**\n * Turns an object whose values are action creators, into an object with the\n * same keys, but with every function wrapped into a `dispatch` call so they\n * may be invoked directly. This is just a convenience method, as you can call\n * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.\n *\n * For convenience, you can also pass an action creator as the first argument,\n * and get a dispatch wrapped function in return.\n *\n * @param {Function|Object} actionCreators An object whose values are action\n * creator functions. One handy way to obtain it is to use ES6 `import * as`\n * syntax. You may also pass a single function.\n *\n * @param {Function} dispatch The `dispatch` function available on your Redux\n * store.\n *\n * @returns {Function|Object} The object mimicking the original object, but with\n * every action creator wrapped into the `dispatch` call. If you passed a\n * function as `actionCreators`, the return value will also be a single\n * function.\n */\n\n\nfunction bindActionCreators(actionCreators, dispatch) {\n if (typeof actionCreators === 'function') {\n return bindActionCreator(actionCreators, dispatch);\n }\n\n if (typeof actionCreators !== 'object' || actionCreators === null) {\n throw new Error(\"bindActionCreators expected an object or a function, instead received \" + (actionCreators === null ? 'null' : typeof actionCreators) + \". \" + \"Did you write \\\"import ActionCreators from\\\" instead of \\\"import * as ActionCreators from\\\"?\");\n }\n\n var boundActionCreators = {};\n\n for (var key in actionCreators) {\n var actionCreator = actionCreators[key];\n\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n }\n }\n\n return boundActionCreators;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n keys.push.apply(keys, Object.getOwnPropertySymbols(object));\n }\n\n if (enumerableOnly) keys = keys.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(source, true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(source).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\n/**\n * Composes single-argument functions from right to left. The rightmost\n * function can take multiple arguments as it provides the signature for\n * the resulting composite function.\n *\n * @param {...Function} funcs The functions to compose.\n * @returns {Function} A function obtained by composing the argument functions\n * from right to left. For example, compose(f, g, h) is identical to doing\n * (...args) => f(g(h(...args))).\n */\nfunction compose() {\n for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n if (funcs.length === 0) {\n return function (arg) {\n return arg;\n };\n }\n\n if (funcs.length === 1) {\n return funcs[0];\n }\n\n return funcs.reduce(function (a, b) {\n return function () {\n return a(b.apply(void 0, arguments));\n };\n });\n}\n\n/**\n * Creates a store enhancer that applies middleware to the dispatch method\n * of the Redux store. This is handy for a variety of tasks, such as expressing\n * asynchronous actions in a concise manner, or logging every action payload.\n *\n * See `redux-thunk` package as an example of the Redux middleware.\n *\n * Because middleware is potentially asynchronous, this should be the first\n * store enhancer in the composition chain.\n *\n * Note that each middleware will be given the `dispatch` and `getState` functions\n * as named arguments.\n *\n * @param {...Function} middlewares The middleware chain to be applied.\n * @returns {Function} A store enhancer applying the middleware.\n */\n\nfunction applyMiddleware() {\n for (var _len = arguments.length, middlewares = new Array(_len), _key = 0; _key < _len; _key++) {\n middlewares[_key] = arguments[_key];\n }\n\n return function (createStore) {\n return function () {\n var store = createStore.apply(void 0, arguments);\n\n var _dispatch = function dispatch() {\n throw new Error('Dispatching while constructing your middleware is not allowed. ' + 'Other middleware would not be applied to this dispatch.');\n };\n\n var middlewareAPI = {\n getState: store.getState,\n dispatch: function dispatch() {\n return _dispatch.apply(void 0, arguments);\n }\n };\n var chain = middlewares.map(function (middleware) {\n return middleware(middlewareAPI);\n });\n _dispatch = compose.apply(void 0, chain)(store.dispatch);\n return _objectSpread2({}, store, {\n dispatch: _dispatch\n });\n };\n };\n}\n\n/*\n * This is a dummy function to check if the function name has been altered by minification.\n * If the function has been minified and NODE_ENV !== 'production', warn the user.\n */\n\nfunction isCrushed() {}\n\nif (process.env.NODE_ENV !== 'production' && typeof isCrushed.name === 'string' && isCrushed.name !== 'isCrushed') {\n warning('You are currently using minified code outside of NODE_ENV === \"production\". ' + 'This means that you are running a slower development build of Redux. ' + 'You can use loose-envify (https://github.com/zertosh/loose-envify) for browserify ' + 'or setting mode to production in webpack (https://webpack.js.org/concepts/mode/) ' + 'to ensure you have the correct code for your production build.');\n}\n\nexport { ActionTypes as __DO_NOT_USE__ActionTypes, applyMiddleware, bindActionCreators, combineReducers, compose, createStore };\n","import verifyPlainObject from '../utils/verifyPlainObject';\nexport function wrapMapToPropsConstant(getConstant) {\n return function initConstantSelector(dispatch, options) {\n var constant = getConstant(dispatch, options);\n\n function constantSelector() {\n return constant;\n }\n\n constantSelector.dependsOnOwnProps = false;\n return constantSelector;\n };\n} // dependsOnOwnProps is used by createMapToPropsProxy to determine whether to pass props as args\n// to the mapToProps function being wrapped. It is also used by makePurePropsSelector to determine\n// whether mapToProps needs to be invoked when props have changed.\n//\n// A length of one signals that mapToProps does not depend on props from the parent component.\n// A length of zero is assumed to mean mapToProps is getting args via arguments or ...args and\n// therefore not reporting its length accurately..\n\nexport function getDependsOnOwnProps(mapToProps) {\n return mapToProps.dependsOnOwnProps !== null && mapToProps.dependsOnOwnProps !== undefined ? Boolean(mapToProps.dependsOnOwnProps) : mapToProps.length !== 1;\n} // Used by whenMapStateToPropsIsFunction and whenMapDispatchToPropsIsFunction,\n// this function wraps mapToProps in a proxy function which does several things:\n//\n// * Detects whether the mapToProps function being called depends on props, which\n// is used by selectorFactory to decide if it should reinvoke on props changes.\n//\n// * On first call, handles mapToProps if returns another function, and treats that\n// new function as the true mapToProps for subsequent calls.\n//\n// * On first call, verifies the first result is a plain object, in order to warn\n// the developer that their mapToProps function is not returning a valid result.\n//\n\nexport function wrapMapToPropsFunc(mapToProps, methodName) {\n return function initProxySelector(dispatch, _ref) {\n var displayName = _ref.displayName;\n\n var proxy = function mapToPropsProxy(stateOrDispatch, ownProps) {\n return proxy.dependsOnOwnProps ? proxy.mapToProps(stateOrDispatch, ownProps) : proxy.mapToProps(stateOrDispatch);\n }; // allow detectFactoryAndVerify to get ownProps\n\n\n proxy.dependsOnOwnProps = true;\n\n proxy.mapToProps = function detectFactoryAndVerify(stateOrDispatch, ownProps) {\n proxy.mapToProps = mapToProps;\n proxy.dependsOnOwnProps = getDependsOnOwnProps(mapToProps);\n var props = proxy(stateOrDispatch, ownProps);\n\n if (typeof props === 'function') {\n proxy.mapToProps = props;\n proxy.dependsOnOwnProps = getDependsOnOwnProps(props);\n props = proxy(stateOrDispatch, ownProps);\n }\n\n if (process.env.NODE_ENV !== 'production') verifyPlainObject(props, displayName, methodName);\n return props;\n };\n\n return proxy;\n };\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport verifyPlainObject from '../utils/verifyPlainObject';\nexport function defaultMergeProps(stateProps, dispatchProps, ownProps) {\n return _extends({}, ownProps, {}, stateProps, {}, dispatchProps);\n}\nexport function wrapMergePropsFunc(mergeProps) {\n return function initMergePropsProxy(dispatch, _ref) {\n var displayName = _ref.displayName,\n pure = _ref.pure,\n areMergedPropsEqual = _ref.areMergedPropsEqual;\n var hasRunOnce = false;\n var mergedProps;\n return function mergePropsProxy(stateProps, dispatchProps, ownProps) {\n var nextMergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n\n if (hasRunOnce) {\n if (!pure || !areMergedPropsEqual(nextMergedProps, mergedProps)) mergedProps = nextMergedProps;\n } else {\n hasRunOnce = true;\n mergedProps = nextMergedProps;\n if (process.env.NODE_ENV !== 'production') verifyPlainObject(mergedProps, displayName, 'mergeProps');\n }\n\n return mergedProps;\n };\n };\n}\nexport function whenMergePropsIsFunction(mergeProps) {\n return typeof mergeProps === 'function' ? wrapMergePropsFunc(mergeProps) : undefined;\n}\nexport function whenMergePropsIsOmitted(mergeProps) {\n return !mergeProps ? function () {\n return defaultMergeProps;\n } : undefined;\n}\nexport default [whenMergePropsIsFunction, whenMergePropsIsOmitted];","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport verifySubselectors from './verifySubselectors';\nexport function impureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch) {\n return function impureFinalPropsSelector(state, ownProps) {\n return mergeProps(mapStateToProps(state, ownProps), mapDispatchToProps(dispatch, ownProps), ownProps);\n };\n}\nexport function pureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, _ref) {\n var areStatesEqual = _ref.areStatesEqual,\n areOwnPropsEqual = _ref.areOwnPropsEqual,\n areStatePropsEqual = _ref.areStatePropsEqual;\n var hasRunAtLeastOnce = false;\n var state;\n var ownProps;\n var stateProps;\n var dispatchProps;\n var mergedProps;\n\n function handleFirstCall(firstState, firstOwnProps) {\n state = firstState;\n ownProps = firstOwnProps;\n stateProps = mapStateToProps(state, ownProps);\n dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n hasRunAtLeastOnce = true;\n return mergedProps;\n }\n\n function handleNewPropsAndNewState() {\n stateProps = mapStateToProps(state, ownProps);\n if (mapDispatchToProps.dependsOnOwnProps) dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n\n function handleNewProps() {\n if (mapStateToProps.dependsOnOwnProps) stateProps = mapStateToProps(state, ownProps);\n if (mapDispatchToProps.dependsOnOwnProps) dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n\n function handleNewState() {\n var nextStateProps = mapStateToProps(state, ownProps);\n var statePropsChanged = !areStatePropsEqual(nextStateProps, stateProps);\n stateProps = nextStateProps;\n if (statePropsChanged) mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n\n function handleSubsequentCalls(nextState, nextOwnProps) {\n var propsChanged = !areOwnPropsEqual(nextOwnProps, ownProps);\n var stateChanged = !areStatesEqual(nextState, state);\n state = nextState;\n ownProps = nextOwnProps;\n if (propsChanged && stateChanged) return handleNewPropsAndNewState();\n if (propsChanged) return handleNewProps();\n if (stateChanged) return handleNewState();\n return mergedProps;\n }\n\n return function pureFinalPropsSelector(nextState, nextOwnProps) {\n return hasRunAtLeastOnce ? handleSubsequentCalls(nextState, nextOwnProps) : handleFirstCall(nextState, nextOwnProps);\n };\n} // TODO: Add more comments\n// If pure is true, the selector returned by selectorFactory will memoize its results,\n// allowing connectAdvanced's shouldComponentUpdate to return false if final\n// props have not changed. If false, the selector will always return a new\n// object and shouldComponentUpdate will always return true.\n\nexport default function finalPropsSelectorFactory(dispatch, _ref2) {\n var initMapStateToProps = _ref2.initMapStateToProps,\n initMapDispatchToProps = _ref2.initMapDispatchToProps,\n initMergeProps = _ref2.initMergeProps,\n options = _objectWithoutPropertiesLoose(_ref2, [\"initMapStateToProps\", \"initMapDispatchToProps\", \"initMergeProps\"]);\n\n var mapStateToProps = initMapStateToProps(dispatch, options);\n var mapDispatchToProps = initMapDispatchToProps(dispatch, options);\n var mergeProps = initMergeProps(dispatch, options);\n\n if (process.env.NODE_ENV !== 'production') {\n verifySubselectors(mapStateToProps, mapDispatchToProps, mergeProps, options.displayName);\n }\n\n var selectorFactory = options.pure ? pureFinalPropsSelectorFactory : impureFinalPropsSelectorFactory;\n return selectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, options);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport connectAdvanced from '../components/connectAdvanced';\nimport shallowEqual from '../utils/shallowEqual';\nimport defaultMapDispatchToPropsFactories from './mapDispatchToProps';\nimport defaultMapStateToPropsFactories from './mapStateToProps';\nimport defaultMergePropsFactories from './mergeProps';\nimport defaultSelectorFactory from './selectorFactory';\n/*\r\n connect is a facade over connectAdvanced. It turns its args into a compatible\r\n selectorFactory, which has the signature:\r\n\r\n (dispatch, options) => (nextState, nextOwnProps) => nextFinalProps\r\n \r\n connect passes its args to connectAdvanced as options, which will in turn pass them to\r\n selectorFactory each time a Connect component instance is instantiated or hot reloaded.\r\n\r\n selectorFactory returns a final props selector from its mapStateToProps,\r\n mapStateToPropsFactories, mapDispatchToProps, mapDispatchToPropsFactories, mergeProps,\r\n mergePropsFactories, and pure args.\r\n\r\n The resulting final props selector is called by the Connect component instance whenever\r\n it receives new props or store state.\r\n */\n\nfunction match(arg, factories, name) {\n for (var i = factories.length - 1; i >= 0; i--) {\n var result = factories[i](arg);\n if (result) return result;\n }\n\n return function (dispatch, options) {\n throw new Error(\"Invalid value of type \" + typeof arg + \" for \" + name + \" argument when connecting component \" + options.wrappedComponentName + \".\");\n };\n}\n\nfunction strictEqual(a, b) {\n return a === b;\n} // createConnect with default args builds the 'official' connect behavior. Calling it with\n// different options opens up some testing and extensibility scenarios\n\n\nexport function createConnect(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$connectHOC = _ref.connectHOC,\n connectHOC = _ref$connectHOC === void 0 ? connectAdvanced : _ref$connectHOC,\n _ref$mapStateToPropsF = _ref.mapStateToPropsFactories,\n mapStateToPropsFactories = _ref$mapStateToPropsF === void 0 ? defaultMapStateToPropsFactories : _ref$mapStateToPropsF,\n _ref$mapDispatchToPro = _ref.mapDispatchToPropsFactories,\n mapDispatchToPropsFactories = _ref$mapDispatchToPro === void 0 ? defaultMapDispatchToPropsFactories : _ref$mapDispatchToPro,\n _ref$mergePropsFactor = _ref.mergePropsFactories,\n mergePropsFactories = _ref$mergePropsFactor === void 0 ? defaultMergePropsFactories : _ref$mergePropsFactor,\n _ref$selectorFactory = _ref.selectorFactory,\n selectorFactory = _ref$selectorFactory === void 0 ? defaultSelectorFactory : _ref$selectorFactory;\n\n return function connect(mapStateToProps, mapDispatchToProps, mergeProps, _ref2) {\n if (_ref2 === void 0) {\n _ref2 = {};\n }\n\n var _ref3 = _ref2,\n _ref3$pure = _ref3.pure,\n pure = _ref3$pure === void 0 ? true : _ref3$pure,\n _ref3$areStatesEqual = _ref3.areStatesEqual,\n areStatesEqual = _ref3$areStatesEqual === void 0 ? strictEqual : _ref3$areStatesEqual,\n _ref3$areOwnPropsEqua = _ref3.areOwnPropsEqual,\n areOwnPropsEqual = _ref3$areOwnPropsEqua === void 0 ? shallowEqual : _ref3$areOwnPropsEqua,\n _ref3$areStatePropsEq = _ref3.areStatePropsEqual,\n areStatePropsEqual = _ref3$areStatePropsEq === void 0 ? shallowEqual : _ref3$areStatePropsEq,\n _ref3$areMergedPropsE = _ref3.areMergedPropsEqual,\n areMergedPropsEqual = _ref3$areMergedPropsE === void 0 ? shallowEqual : _ref3$areMergedPropsE,\n extraOptions = _objectWithoutPropertiesLoose(_ref3, [\"pure\", \"areStatesEqual\", \"areOwnPropsEqual\", \"areStatePropsEqual\", \"areMergedPropsEqual\"]);\n\n var initMapStateToProps = match(mapStateToProps, mapStateToPropsFactories, 'mapStateToProps');\n var initMapDispatchToProps = match(mapDispatchToProps, mapDispatchToPropsFactories, 'mapDispatchToProps');\n var initMergeProps = match(mergeProps, mergePropsFactories, 'mergeProps');\n return connectHOC(selectorFactory, _extends({\n // used in error messages\n methodName: 'connect',\n // used to compute Connect's displayName from the wrapped component's displayName.\n getDisplayName: function getDisplayName(name) {\n return \"Connect(\" + name + \")\";\n },\n // if mapStateToProps is falsy, the Connect component doesn't subscribe to store state changes\n shouldHandleStateChanges: Boolean(mapStateToProps),\n // passed through to selectorFactory\n initMapStateToProps: initMapStateToProps,\n initMapDispatchToProps: initMapDispatchToProps,\n initMergeProps: initMergeProps,\n pure: pure,\n areStatesEqual: areStatesEqual,\n areOwnPropsEqual: areOwnPropsEqual,\n areStatePropsEqual: areStatePropsEqual,\n areMergedPropsEqual: areMergedPropsEqual\n }, extraOptions));\n };\n}\nexport default createConnect();","import { useContext } from 'react';\nimport invariant from 'invariant';\nimport { ReactReduxContext } from '../components/Context';\n/**\r\n * A hook to access the value of the `ReactReduxContext`. This is a low-level\r\n * hook that you should usually not need to call directly.\r\n *\r\n * @returns {any} the value of the `ReactReduxContext`\r\n *\r\n * @example\r\n *\r\n * import React from 'react'\r\n * import { useReduxContext } from 'react-redux'\r\n *\r\n * export const CounterComponent = ({ value }) => {\r\n * const { store } = useReduxContext()\r\n * return
{store.getState()}
\r\n * }\r\n */\n\nexport function useReduxContext() {\n var contextValue = useContext(ReactReduxContext);\n invariant(contextValue, 'could not find react-redux context value; please ensure the component is wrapped in a ');\n return contextValue;\n}","import { useContext } from 'react';\nimport { ReactReduxContext } from '../components/Context';\nimport { useReduxContext as useDefaultReduxContext } from './useReduxContext';\n/**\r\n * Hook factory, which creates a `useStore` hook bound to a given context.\r\n *\r\n * @param {Function} [context=ReactReduxContext] Context passed to your ``.\r\n * @returns {Function} A `useStore` hook bound to the specified context.\r\n */\n\nexport function createStoreHook(context) {\n if (context === void 0) {\n context = ReactReduxContext;\n }\n\n var useReduxContext = context === ReactReduxContext ? useDefaultReduxContext : function () {\n return useContext(context);\n };\n return function useStore() {\n var _useReduxContext = useReduxContext(),\n store = _useReduxContext.store;\n\n return store;\n };\n}\n/**\r\n * A hook to access the redux store.\r\n *\r\n * @returns {any} the redux store\r\n *\r\n * @example\r\n *\r\n * import React from 'react'\r\n * import { useStore } from 'react-redux'\r\n *\r\n * export const ExampleComponent = () => {\r\n * const store = useStore()\r\n * return
{store.getState()}
\r\n * }\r\n */\n\nexport var useStore = createStoreHook();","import { ReactReduxContext } from '../components/Context';\nimport { useStore as useDefaultStore, createStoreHook } from './useStore';\n/**\r\n * Hook factory, which creates a `useDispatch` hook bound to a given context.\r\n *\r\n * @param {Function} [context=ReactReduxContext] Context passed to your ``.\r\n * @returns {Function} A `useDispatch` hook bound to the specified context.\r\n */\n\nexport function createDispatchHook(context) {\n if (context === void 0) {\n context = ReactReduxContext;\n }\n\n var useStore = context === ReactReduxContext ? useDefaultStore : createStoreHook(context);\n return function useDispatch() {\n var store = useStore();\n return store.dispatch;\n };\n}\n/**\r\n * A hook to access the redux `dispatch` function.\r\n *\r\n * @returns {any|function} redux store's `dispatch` function\r\n *\r\n * @example\r\n *\r\n * import React, { useCallback } from 'react'\r\n * import { useDispatch } from 'react-redux'\r\n *\r\n * export const CounterComponent = ({ value }) => {\r\n * const dispatch = useDispatch()\r\n * const increaseCounter = useCallback(() => dispatch({ type: 'increase-counter' }), [])\r\n * return (\r\n *
\r\n * {value}\r\n * \r\n *
\r\n * )\r\n * }\r\n */\n\nexport var useDispatch = createDispatchHook();","import { useReducer, useRef, useMemo, useContext } from 'react';\nimport invariant from 'invariant';\nimport { useReduxContext as useDefaultReduxContext } from './useReduxContext';\nimport Subscription from '../utils/Subscription';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';\nimport { ReactReduxContext } from '../components/Context';\n\nvar refEquality = function refEquality(a, b) {\n return a === b;\n};\n\nfunction useSelectorWithStoreAndSubscription(selector, equalityFn, store, contextSub) {\n var _useReducer = useReducer(function (s) {\n return s + 1;\n }, 0),\n forceRender = _useReducer[1];\n\n var subscription = useMemo(function () {\n return new Subscription(store, contextSub);\n }, [store, contextSub]);\n var latestSubscriptionCallbackError = useRef();\n var latestSelector = useRef();\n var latestSelectedState = useRef();\n var selectedState;\n\n try {\n if (selector !== latestSelector.current || latestSubscriptionCallbackError.current) {\n selectedState = selector(store.getState());\n } else {\n selectedState = latestSelectedState.current;\n }\n } catch (err) {\n var errorMessage = \"An error occurred while selecting the store state: \" + err.message + \".\";\n\n if (latestSubscriptionCallbackError.current) {\n errorMessage += \"\\nThe error may be correlated with this previous error:\\n\" + latestSubscriptionCallbackError.current.stack + \"\\n\\nOriginal stack trace:\";\n }\n\n throw new Error(errorMessage);\n }\n\n useIsomorphicLayoutEffect(function () {\n latestSelector.current = selector;\n latestSelectedState.current = selectedState;\n latestSubscriptionCallbackError.current = undefined;\n });\n useIsomorphicLayoutEffect(function () {\n function checkForUpdates() {\n try {\n var newSelectedState = latestSelector.current(store.getState());\n\n if (equalityFn(newSelectedState, latestSelectedState.current)) {\n return;\n }\n\n latestSelectedState.current = newSelectedState;\n } catch (err) {\n // we ignore all errors here, since when the component\n // is re-rendered, the selectors are called again, and\n // will throw again, if neither props nor store state\n // changed\n latestSubscriptionCallbackError.current = err;\n }\n\n forceRender({});\n }\n\n subscription.onStateChange = checkForUpdates;\n subscription.trySubscribe();\n checkForUpdates();\n return function () {\n return subscription.tryUnsubscribe();\n };\n }, [store, subscription]);\n return selectedState;\n}\n/**\r\n * Hook factory, which creates a `useSelector` hook bound to a given context.\r\n *\r\n * @param {Function} [context=ReactReduxContext] Context passed to your ``.\r\n * @returns {Function} A `useSelector` hook bound to the specified context.\r\n */\n\n\nexport function createSelectorHook(context) {\n if (context === void 0) {\n context = ReactReduxContext;\n }\n\n var useReduxContext = context === ReactReduxContext ? useDefaultReduxContext : function () {\n return useContext(context);\n };\n return function useSelector(selector, equalityFn) {\n if (equalityFn === void 0) {\n equalityFn = refEquality;\n }\n\n invariant(selector, \"You must pass a selector to useSelectors\");\n\n var _useReduxContext = useReduxContext(),\n store = _useReduxContext.store,\n contextSub = _useReduxContext.subscription;\n\n return useSelectorWithStoreAndSubscription(selector, equalityFn, store, contextSub);\n };\n}\n/**\r\n * A hook to access the redux store's state. This hook takes a selector function\r\n * as an argument. The selector is called with the store state.\r\n *\r\n * This hook takes an optional equality comparison function as the second parameter\r\n * that allows you to customize the way the selected state is compared to determine\r\n * whether the component needs to be re-rendered.\r\n *\r\n * @param {Function} selector the selector function\r\n * @param {Function=} equalityFn the function that will be used to determine equality\r\n *\r\n * @returns {any} the selected state\r\n *\r\n * @example\r\n *\r\n * import React from 'react'\r\n * import { useSelector } from 'react-redux'\r\n *\r\n * export const CounterComponent = () => {\r\n * const counter = useSelector(state => state.counter)\r\n * return
{counter}
\r\n * }\r\n */\n\nexport var useSelector = createSelectorHook();","import Provider from './components/Provider';\nimport connectAdvanced from './components/connectAdvanced';\nimport { ReactReduxContext } from './components/Context';\nimport connect from './connect/connect';\nimport { useDispatch, createDispatchHook } from './hooks/useDispatch';\nimport { useSelector, createSelectorHook } from './hooks/useSelector';\nimport { useStore, createStoreHook } from './hooks/useStore';\nimport { setBatch } from './utils/batch';\nimport { unstable_batchedUpdates as batch } from './utils/reactBatchedUpdates';\nimport shallowEqual from './utils/shallowEqual';\nsetBatch(batch);\nexport { Provider, connectAdvanced, ReactReduxContext, connect, batch, useDispatch, createDispatchHook, useSelector, createSelectorHook, useStore, createStoreHook, shallowEqual };","/**\r\n * Costanti utilizzate dall'applicazione parent che ospita altre applicazioni\r\n * attraverso iframe, per dialogare/condividere informazioni\r\n */\r\n\r\nconst PluginMessageTypes = {\r\n // messaggio mandato al parent per confermare il caricamento dell'iframe\r\n LOADED: 'loaded',\r\n // messaggio per iframe per fargli forzare il reload ad un certo url\r\n RELOAD: 'reload',\r\n // messaggio per l'iframe che comunica il cambiamento di ufficio\r\n CHANGE_OFFICE: 'change_office',\r\n // messaggio per il parent con il quale l'iframe comunica il cambiamento di hash\r\n CHANGE_HASH: 'change_hash',\r\n // messaggio per il parent con il quale l'iframe comunica il cambiamento di hash (nuova versione)\r\n CHANGE_HASH2: 'change_hash2',\r\n // messaggio utilizzato per inoltrare eventi signalR\r\n SERVER_EVENT: 'server_event',\r\n // messaggio mandato al parent per indicare l'evento di focus all'interno dell'iframe\r\n FOCUS: 'focus',\r\n // messaggio mandato al parent per indicare la dimensione del dialog mostrato nell'iframe\r\n DIALOG_SIZE: 'dialog_size',\r\n // messaggio mandato al parent per indicare l'evento \"OK\"\r\n DIALOG_OK: 'dialog_ok',\r\n // messaggio mandato al parent per indicare l'evento \"CANCEL\"\r\n DIALOG_CANCEL: 'dialog_cancel',\r\n // messaggio per navigare ad uno specifico hash al di fuori dell'iframe\r\n GOTO_EXTERNAL_HASH: 'goto_external_hash',\r\n // messaggio per navigare ad uno specifico url al di fuori dell'iframe\r\n GOTO_EXTERNAL_URL: 'goto_external_url',\r\n // messaggio per il parent per chiedere una chiamata api al backend di parent\r\n CALL_FORWARD: 'call_forward',\r\n // messaggio per l'iframe che ritorna al mittente la response della richiesta fatta\r\n CALL_FORWARD_RESPONSE: 'call_forward_resp',\r\n // messaggio inviato dal child al parent per simulare la presenza di un modale\r\n MODALIZER: 'modalizer',\r\n // messaggio inviato dal parent verso il child per indicare che si sta cliccando durante una modalizzazione\r\n MODALIZER_CLICK: 'modalizer_click',\r\n // messaggio per il parent per riattivare l'evento di click outside temporaneamente\r\n // bloccato dal child\r\n CLICK_OUTSIDE_RESTORE: 'click_outside_restore',\r\n // messaggio inviato dal parent al child se passati degli extraParams.\r\n // Verrà inviato subito dopo l'avvenuto caricamento del child\r\n EXTRA_PARAMS: 'extra_params',\r\n // messaggio per il figlio mandato dal padre quando cambia la resolution\r\n SET_RESOLUTION: 'set_resolution',\r\n // messaggio per chiedere ai parent l'url del browser\r\n GET_ROOT_LOCATION: 'get_root_location',\r\n};\r\n\r\n// parametro inviato in querystring all'iframe per indicargli la chiamata dal parent\r\nconst ParentCallerUrlParam = 'parentCaller';\r\n\r\n// className che identifica un IFrame\r\nconst IFrameClassName = 'fw-plugins-iframe';\r\n\r\nconst PluginCallsTypes = {\r\n // chiamata scambiata tra parent e application per capire se il child è impegnato\r\n // in una operazione\r\n IS_CLICKABLE_OUTSIDE: 'is_clickable_outside',\r\n};\r\n\r\n// parametro inviato in querystring dal ModalIFrame al child per indicargli la gestione del resize\r\nconst ParentModalCaller = 'parentModalCaller';\r\n\r\n// parametro inviato in querystring dal parent per definire la sua risoluzione.\r\nconst ParentResolution = 'parentResolution';\r\nexport {\r\n PluginMessageTypes,\r\n ParentCallerUrlParam,\r\n PluginCallsTypes,\r\n IFrameClassName,\r\n ParentModalCaller,\r\n ParentResolution,\r\n};\r\n","import Debug from 'debug';\r\n\r\nconst LogLevel = {\r\n none: '-',\r\n all: '*',\r\n error: 'error',\r\n info: 'info',\r\n debug: 'debug',\r\n warning: 'warning',\r\n};\r\n\r\nclass Log {\r\n constructor(workspace = '') {\r\n this.workspace = `${workspace}-`;\r\n }\r\n\r\n init = (level) => {\r\n let namespaces = Debug.disable();\r\n const newEnable = `${this.workspace}${level}`;\r\n if (namespaces) {\r\n namespaces = namespaces.split(',').filter((lev) => !lev.startsWith(this.workspace));\r\n }\r\n Debug.enable(namespaces ? `${namespaces},${newEnable}` : newEnable);\r\n };\r\n\r\n error = (...args) => {\r\n Debug(this.workspace + LogLevel.error)(...args);\r\n };\r\n\r\n info = (...args) => {\r\n Debug(this.workspace + LogLevel.info)(...args);\r\n };\r\n\r\n debug = (...args) => {\r\n Debug(this.workspace + LogLevel.debug)(...args);\r\n };\r\n\r\n warn = (...args) => {\r\n Debug(this.workspace + LogLevel.warning)(...args);\r\n };\r\n}\r\n\r\nLog.LogLevel = LogLevel;\r\n\r\nexport default Log;\r\n","import { ConsoleLogger } from 'framework-ui-components';\r\n\r\nconst Log = new ConsoleLogger('FW-PLUGINS');\r\nLog.init(process.env.NODE_ENV !== 'production' ? ConsoleLogger.LogLevel.all : ConsoleLogger.LogLevel.none);\r\n\r\nexport default Log;\r\n","const initWindowConfig = () => {\r\n if (!window.fwplugins) {\r\n window.fwplugins = {\r\n listeners: {}, receivers: {}, configs: {}, callerParams: {},\r\n };\r\n }\r\n};\r\n\r\n/**\r\n * Funzione che ritorna il valore calledByParent salvato tra le variabili windows\r\n */\r\nconst getWindowCalledByParent = () => window.fwplugins && window.fwplugins.calledByParent;\r\n\r\n/**\r\n * Funzione che scrive il valore calledByParent tra le variabili windows\r\n */\r\nconst setWindowCalledByParent = (calledByParent) => {\r\n initWindowConfig();\r\n window.fwplugins.calledByParent = calledByParent;\r\n};\r\n\r\n/**\r\n * Funzione che ritorna il valore dei parametri passati dal chiamante salvato tra le variabili windows\r\n */\r\nconst getWindowCallerParams = () => window.fwplugins && window.fwplugins.callerParams;\r\n\r\n/**\r\n * Funzione che scrive il valore dei parametri passati dal chiamante tra le variabili windows\r\n */\r\nconst setWindowCallerParams = (callerParams) => {\r\n initWindowConfig();\r\n window.fwplugins.callerParams = callerParams;\r\n};\r\n\r\n/**\r\n * Funzione che ritorna il valore configs salvato tra le variabili windows\r\n * @param {*} name\r\n * @returns valore dello specifico config\r\n */\r\nconst getWindowConfig = (name) => window.fwplugins && window.fwplugins.configs && window.fwplugins.configs[name];\r\n\r\n/**\r\n * Funzione che scrive il valore configs tra le variabili windows\r\n * @param {*} name\r\n * @param {*} value\r\n */\r\nconst setWindowConfig = (name, value) => {\r\n initWindowConfig();\r\n window.fwplugins.configs[name] = value;\r\n};\r\n\r\n/**\r\n * Metodo che consente la registrazione di un evento window solo se non è\r\n * già stato registrato per questo window\r\n * @param {*} type\r\n * @param {*} listener\r\n * @param {*} options\r\n * @param {string=} eventContext contesto di utilizzo dell'evento\r\n */\r\nconst addWindowEventListener = (type, listener, options, eventContext = '') => {\r\n initWindowConfig();\r\n if (!window.fwplugins.listeners[type + eventContext]) {\r\n window.addEventListener(type, listener, options);\r\n window.fwplugins.listeners[type + eventContext] = 1;\r\n } else {\r\n window.fwplugins.listeners[type + eventContext] += 1;\r\n }\r\n};\r\n\r\n/**\r\n * Metodo per gestire la rimozione dell'evento da window qual'ora sia\r\n * stato più volte registrato\r\n * @param {*} type\r\n * @param {*} listener\r\n * @param {*} options\r\n * @param {string=} eventContext contesto di utilizzo dell'evento\r\n */\r\nconst removeWindowEventListener = (type, listener, options, eventContext = '') => {\r\n initWindowConfig();\r\n if (window.fwplugins.listeners[type + eventContext] === undefined) {\r\n window.fwplugins.listeners[type + eventContext] = 0;\r\n } else if (window.fwplugins.listeners[type + eventContext] === 1) {\r\n window.removeEventListener(type, listener, options);\r\n window.fwplugins.listeners[type + eventContext] = 0;\r\n } else {\r\n window.fwplugins.listeners[type + eventContext] -= 1;\r\n }\r\n};\r\n\r\nconst getWindowReceiverData = (idReceiver, dataName) => {\r\n initWindowConfig();\r\n if (!window.fwplugins.receivers[idReceiver]) {\r\n window.fwplugins.receivers[idReceiver] = { };\r\n }\r\n return window.fwplugins.receivers[idReceiver][dataName];\r\n};\r\n\r\nconst setWindowReceiverData = (idReceiver, dataName, dataValue) => {\r\n initWindowConfig();\r\n if (!window.fwplugins.receivers[idReceiver]) {\r\n window.fwplugins.receivers[idReceiver] = { };\r\n }\r\n window.fwplugins.receivers[idReceiver][dataName] = dataValue;\r\n};\r\n\r\nexport {\r\n getWindowCalledByParent,\r\n setWindowCalledByParent,\r\n addWindowEventListener,\r\n removeWindowEventListener,\r\n getWindowReceiverData,\r\n setWindowReceiverData,\r\n getWindowConfig,\r\n setWindowConfig,\r\n getWindowCallerParams,\r\n setWindowCallerParams,\r\n};\r\n","/**\r\n * Cambio di location\r\n * @param {*} url\r\n */\r\nconst setLocation = (url) => {\r\n window.location = url;\r\n};\r\n\r\n/**\r\n * Funzione che rimuove il \"#\" dall'hash passato in input\r\n * @param {*} hash\r\n * @returns hash cleaned\r\n */\r\nconst getHashCleaned = (hash) => (hash ? hash.replace('#', '') : hash);\r\n\r\n/**\r\n * Cambio di hash\r\n * @param {*} hash\r\n * @param {*} replaceHistory\r\n */\r\nconst setLocationHash = (hash, replaceHistory = true) => {\r\n if (getHashCleaned(window.location.hash) === getHashCleaned(hash)) return;\r\n const queryPos = window.location.hash ? window.location.hash.indexOf('?') : -1;\r\n const query = queryPos > 0 ? window.location.hash.substring(queryPos) : '';\r\n window.location.hash = hash + query;\r\n if (replaceHistory) {\r\n window.history.replaceState({}, document.title, hash + query);\r\n }\r\n};\r\n\r\n/**\r\n * Funzione che ritorna i parametri querystring della location\r\n * corrente\r\n */\r\nconst getUrlParams = () => {\r\n const params = {};\r\n if (window.location && window.location.href) {\r\n window.location.href.replace(\r\n /[?&]+([^=&]+)=([^&]*)/gi,\r\n (m, key, value) => { params[key] = value; },\r\n );\r\n }\r\n return params;\r\n};\r\n\r\n/**\r\n * Funzione che serializza i parametri dall'oggetto passato in input filtrando gli undefined\r\n * @param {*} srcParams\r\n */\r\nconst getQueryParamsFromObject = (srcParams) => (srcParams ? `&${Object.keys(srcParams)\r\n .filter((p) => srcParams[p] !== undefined)\r\n .map((k) => `${encodeURIComponent(k)}=${encodeURIComponent(srcParams[k])}`).join('&')}` : '');\r\n\r\nexport {\r\n setLocation,\r\n setLocationHash,\r\n getUrlParams,\r\n getQueryParamsFromObject,\r\n getHashCleaned,\r\n};\r\n","import { ParentCallerUrlParam, IFrameClassName } from './constants';\r\nimport Log from '../utils/log';\r\nimport {\r\n getWindowCalledByParent, setWindowCalledByParent, setWindowCallerParams, getWindowCallerParams,\r\n} from './windowData';\r\nimport { getUrlParams } from '../utils/navigation';\r\n\r\n/**\r\n * Funzione che restituisce l'elenco dei parametri che vengono passati via querystring dal\r\n * chiamante. I paramentri saranno incrementali, quindi se viene cambiato l'url e\r\n * aggiunti parametri, verranno aggiunti a quelli già presenti\r\n */\r\nconst getCallerParams = () => {\r\n const urlParams = getUrlParams();\r\n // solo se presenti alcuni parametri vedo di salvarli e integrarli agli esistenti\r\n if (urlParams && Object.keys(urlParams).length > 0) {\r\n const callerParams = { ...getWindowCallerParams(), ...urlParams };\r\n setWindowCallerParams(callerParams);\r\n return callerParams;\r\n }\r\n return getWindowCallerParams();\r\n};\r\n\r\nlet callerExtraParams = null;\r\n\r\n/**\r\n * Funzione che ritorna la struttura di extraparams eventualmente passata dal partent chiamante\r\n */\r\nconst getCallerExtraParams = () => callerExtraParams;\r\n\r\n/**\r\n * Metodo utilizzato per impostare gli extraparams eventualmente passati\r\n * @param {*} extraParams\r\n */\r\nconst setCallerExtraParams = (extraParams) => {\r\n callerExtraParams = extraParams;\r\n};\r\n\r\n/**\r\n * Funzione che restituisce l'id del parente che sta chiamando\r\n * l'appliazione, direttamente dai parametri querystring\r\n */\r\nconst getCallerParentIdFromParams = () => {\r\n const urlParams = getUrlParams();\r\n return urlParams[ParentCallerUrlParam];\r\n};\r\n\r\n/**\r\n * Funzione che restituisce l'id del parent che sta chiamando\r\n * l'applicazione dal valore in window o dai parametri\r\n */\r\nconst getCallerParentId = () => (getWindowCalledByParent() !== undefined ? getWindowCalledByParent() : getCallerParentIdFromParams()) || null;\r\n\r\n/**\r\n * Metodo utilizzato dalle applicazioni per impostare una\r\n * variabile globale che informa se l'applicazione è stata\r\n * caricata da un parent\r\n */\r\nconst setCalledByParent = () => {\r\n // se viene invocato più volte questo metodo viene preservata la prima impostazione\r\n // visto che il parentId non dovrebbe cambiare nel tempo\r\n if (getWindowCalledByParent() !== undefined) {\r\n Log.warn('ParentId già impostato');\r\n return;\r\n }\r\n setWindowCalledByParent(getCallerParentIdFromParams() || false);\r\n};\r\n\r\n/**\r\n * Funzione che indica se l'applicazione è stata\r\n * caricata da un parent\r\n */\r\nconst isCalledByParent = () => !!getWindowCalledByParent() || false;\r\n\r\n/**\r\n * Funzione che verifica l'esistenza di un iframe visualizzato\r\n */\r\nconst isPresentIFrame = () => document.getElementsByClassName(IFrameClassName).length > 0;\r\n\r\nexport {\r\n getCallerParams,\r\n getCallerExtraParams,\r\n setCallerExtraParams,\r\n setCalledByParent,\r\n isCalledByParent,\r\n getCallerParentId,\r\n isPresentIFrame,\r\n};\r\n","/**\r\n * Libreria utilizzata per impostare i file js di configurazione caricati da\r\n * una app parent e utilizzati ad esempio per avere dalle varie app l'elenco delle\r\n * attività da dover gestire per ogni row di dati mantenuti sul parent e relativi\r\n * alla stessa app\r\n */\r\n\r\nimport { getWindowConfig, setWindowConfig } from './windowData';\r\n\r\n/**\r\n * Valore temporaneo utilizzato dal parent per capire\r\n * se una configurazione è stata caricata\r\n */\r\nconst LoadingConfig = 'loadingConfig...';\r\nconst LoadedCallbacks = '_callbacks';\r\n\r\nconst ConfigActionType = {\r\n MODAL: 0,\r\n COMMAND: 1,\r\n};\r\n\r\n/**\r\n * Metodo utilizzato dalle app per predisporre il file\r\n * di configurazione da inviare al parent che lo richiede\r\n * @param {string} name - nome dell'applicazione di riferimento\r\n * @param {object} config - configurazione\r\n */\r\nconst createConfig = (name, config) => {\r\n setWindowConfig(name, config);\r\n};\r\n\r\n/**\r\n * Funzione utilizzata per impostare una azione che farà\r\n * aprire un modale al parent con un determinato url\r\n * @param {string} label - etichetta che dasboard dovrà mostrare in corrispondenza di questa azione\r\n * @param {string} url\r\n */\r\nconst setActionModal = (label, url) => ({\r\n type: ConfigActionType.MODAL,\r\n label,\r\n url,\r\n});\r\n\r\n/**\r\n * Funzione utilizzata per impostare una azione che dovrà\r\n * far inoltrare al parent una azione identificata con un determinato url\r\n * @param {string} label - etichetta che dasboard dovrà mostrare in corrispondenza di questa azione\r\n * @param {string} url\r\n */\r\nconst setActionCommand = (label, url) => ({\r\n type: ConfigActionType.COMMAND,\r\n label,\r\n url,\r\n});\r\n\r\n/**\r\n * Funzione utilizzata per estrarre l'etichetta dal comando\r\n * impostato\r\n * @param {object} action - azione\r\n */\r\nconst getActionLabel = (action) => action.label;\r\n\r\n/**\r\n * Funzione utilizzata per estrarre il tipo dal comando\r\n * impostato\r\n * @param {object} action - azione\r\n */\r\nconst getActionType = (action) => action.type;\r\n\r\n/**\r\n * Funzione utilizzata per estrarre l'url dal comando\r\n * impostato\r\n * @param {object} action - azione\r\n */\r\nconst getActionUrl = (action) => action.url;\r\n\r\n/**\r\n * Metodo utilizzato dal parent per caricare il file di\r\n * configurazione di una determinata applicazione\r\n * @param {string} name - nome dell'applicazione di riferimento\r\n * @param {string} urlApp - url dell'applicazione da utilizzare per scaricare il file\r\n * @param {func} afterLoaded - callback chiamata dopo il caricamento del file\r\n */\r\nconst loadConfigScript = (name, urlApp, afterLoaded = null) => {\r\n const config = getWindowConfig(name);\r\n if (config) {\r\n if (afterLoaded) {\r\n if (config === LoadingConfig) {\r\n getWindowConfig(name + LoadedCallbacks).push(afterLoaded);\r\n } else afterLoaded();\r\n }\r\n return;\r\n }\r\n setWindowConfig(name, LoadingConfig);\r\n // creo la lista delle funzioni di callback\r\n setWindowConfig(name + LoadedCallbacks, afterLoaded ? [afterLoaded] : []);\r\n const e = document.createElement('script');\r\n e.type = 'text/javascript';\r\n e.src = `${urlApp}/App/dist/browser-config.js`;\r\n e.async = false;\r\n e.defer = false;\r\n e.onload = () => {\r\n // chiamo tutti i callback dei caricamenti richiesti\r\n getWindowConfig(name + LoadedCallbacks).forEach((callback) => callback());\r\n setWindowConfig(name + LoadedCallbacks, null);\r\n };\r\n const h = document.getElementsByTagName('head')[0];\r\n h.insertBefore(e, h.lastChild);\r\n};\r\n\r\n/**\r\n * Funzione che verifica se è stato caricato la sezione\r\n * di configurazione di una specifica applicazione\r\n * @param {string} name - nome dell'applicazione di riferimento\r\n */\r\nconst isLoadedConfig = (name) => {\r\n const conf = getWindowConfig(name);\r\n return (conf && conf !== LoadingConfig) || false;\r\n};\r\n\r\n/**\r\n * Funzione utilizzata per generare un uuid univoco\r\n */\r\nconst getUUID = () => Math.random().toString(16).slice(2);\r\n\r\nexport {\r\n LoadedCallbacks, // only for test\r\n createConfig,\r\n setActionModal,\r\n setActionCommand,\r\n loadConfigScript,\r\n isLoadedConfig,\r\n getActionLabel,\r\n getActionType,\r\n getActionUrl,\r\n ConfigActionType,\r\n getUUID,\r\n};\r\n","import { PluginMessageTypes } from './constants';\r\nimport {\r\n setCalledByParent, isCalledByParent, getCallerParentId, setCallerExtraParams,\r\n} from './caller';\r\nimport Log from '../utils/log';\r\nimport { getUUID } from './config';\r\nimport { getWindowReceiverData, setWindowReceiverData } from './windowData';\r\nimport packageInfo from '../package.json';\r\n\r\n/**\r\n * Libreria che consente di far comunicare il parent e le applicazioni\r\n * caricate negli iframe\r\n */\r\n\r\nconst pluginsVersion = packageInfo.version;\r\n\r\n// identificativo dei messaggi riconosciuti dal framework (export solo per test)\r\nexport const ID_PLUGIN_MSGS = 'FW-PLUGINS-MSGS';\r\n\r\n// numero massimo di ultimi uid dei messaggi memorizzati\r\nconst NUM_MAX_LAST_MSG_ID = 10;\r\n\r\n// oggetti mantenuti nella sezione windows del receiver\r\nconst CALLBACK_REGS = 'regs';\r\nconst LAST_MESSAGES = 'lastMessages';\r\n\r\n/**\r\n * Classe che gestisce le comunicazioni\r\n */\r\nexport class PluginMessages {\r\n constructor() {\r\n this.config = {\r\n initialized: false,\r\n IdReceiver: null, // identificativo del ricevente\r\n };\r\n\r\n this.isOnLastMessages = (uuid) => {\r\n // per i vecchi messaggi dove uuid non esiste\r\n // non gestisco questa funzionalità\r\n if (!uuid) return false;\r\n const lastMessages = getWindowReceiverData(this.config.idReceiver, LAST_MESSAGES);\r\n const isOnLast = lastMessages.includes(uuid);\r\n if (!isOnLast) {\r\n lastMessages.push(uuid);\r\n if (lastMessages.length > NUM_MAX_LAST_MSG_ID) {\r\n lastMessages.shift();\r\n }\r\n }\r\n return isOnLast;\r\n };\r\n\r\n this.handleMessage = (event) => {\r\n if (event.data && event.data.id === ID_PLUGIN_MSGS\r\n // scarto i messaggi che sono stati generati o inoltrati dal receiver corrente\r\n && event.data.origin !== this.config.idReceiver\r\n && event.data.initial !== this.config.idReceiver\r\n && !this.isOnLastMessages(event.data.uuid)) {\r\n if (event.data.destination && event.data.destination !== this.config.idReceiver) {\r\n // evento non destinato al receiver corrente\r\n // se presente un parent allora inoltro l'evento\r\n if (isCalledByParent()) {\r\n // se non è arrivato dallo stesso parent\r\n if (event.data.origin !== getCallerParentId()) {\r\n // lo inoltro al padre\r\n this.forwardMessageToParent(event.data);\r\n }\r\n }\r\n // inoltro l'evento ai figli\r\n this.forwardMessageToChilds(event.data);\r\n return;\r\n }\r\n Log.debug(`Messaggio inviato da \"${event.data.origin}\" a \"${this.config.idReceiver}\" [${event.data.type}]`, event);\r\n const regs = getWindowReceiverData(this.config.idReceiver, CALLBACK_REGS);\r\n regs.forEach((reg) => {\r\n reg.callback(event.data, reg.context);\r\n });\r\n // gestione extra-params\r\n if (event.data.type === PluginMessageTypes.EXTRA_PARAMS) {\r\n setCallerExtraParams(event.data.payload);\r\n }\r\n }\r\n };\r\n\r\n this.configTest = () => {\r\n if (!this.config.initialized) {\r\n throw new TypeError('PluginMessages non ancora configurato');\r\n }\r\n };\r\n\r\n this.formatMessage = (type, payload, destination = null) => {\r\n this.configTest();\r\n return {\r\n uuid: getUUID(), // message uuid\r\n id: ID_PLUGIN_MSGS, // identificativo dei messaggi del framework\r\n initial: this.config.idReceiver, // il primo creatore del messaggio\r\n initialVersion: pluginsVersion, // versione del primo creatore del messaggio\r\n origin: this.config.idReceiver, // mittente del messaggio\r\n originVersion: pluginsVersion, // versione del mittente del messaggio\r\n destination,\r\n type,\r\n payload,\r\n };\r\n };\r\n\r\n this.formatForwardMessage = (message) => {\r\n this.configTest();\r\n return {\r\n uuid: message.uuid || getUUID(), // se non esiste (vecchio formato lo inserisco)\r\n id: ID_PLUGIN_MSGS, // identificativo dei messaggi del framework\r\n initial: message.initial || message.origin, // il primo creatore del messaggio (origin nel caso di vecchi formati)\r\n origin: this.config.idReceiver, // mittente del messaggio\r\n originVersion: pluginsVersion, // versione del mittente del messaggio\r\n destination: message.destination,\r\n type: message.type,\r\n payload: message.payload,\r\n };\r\n };\r\n\r\n this.getIdReceiver = () => {\r\n this.configTest();\r\n return this.config.idReceiver;\r\n };\r\n }\r\n\r\n /**\r\n * Metodo utilizzato dal parent e dalle app per inizializzare la libreria\r\n * @param {string} idReceiver - identificativo univoco dell'applicativo\r\n */\r\n init = (idReceiver) => {\r\n if (this.config.initialized) {\r\n Log.warn(`PluginMessages già configurato per ${idReceiver} (con ${this.config.idReceiver})`);\r\n return;\r\n }\r\n // settings configurations\r\n this.config.idReceiver = idReceiver;\r\n setWindowReceiverData(idReceiver, CALLBACK_REGS, []);\r\n setWindowReceiverData(idReceiver, LAST_MESSAGES, []);\r\n this.config.initialized = true;\r\n // settaggio attributo callerParent\r\n setCalledByParent();\r\n // invio messaggio per segnalare l'avvenuto caricamento\r\n if (isCalledByParent()) this.postMessageToParent(PluginMessageTypes.LOADED);\r\n // configurazione eventi\r\n if (window.addEventListener) {\r\n window.addEventListener('message', this.handleMessage);\r\n } else {\r\n window.attachEvent('onmessage', this.handleMessage);\r\n }\r\n };\r\n\r\n /**\r\n * Metodo utilizzato dal parent per inviare messaggi\r\n * all'applicativo caricato nell'iframe (con idDestination\r\n * verrà inoltrato l'evento ad un solo specifico applicativo)\r\n * @param {string} type - tipologia del messaggio\r\n * @param {object} payload - messaggio\r\n * @param {string} idDestination - [opzionale] eventuale identificativo del destinatario\r\n */\r\n postMessageToChilds = (type, payload, idDestination = null) => {\r\n this.configTest();\r\n const iframes = document.getElementsByTagName('iframe');\r\n for (let i = 0; i < iframes.length; i += 1) {\r\n iframes[i].contentWindow.postMessage(this.formatMessage(type, payload, idDestination), '*');\r\n }\r\n };\r\n\r\n /**\r\n * Metodo utilizzato per forwardare un messaggio ricevuto verso i childs\r\n * @param {*} message\r\n */\r\n forwardMessageToChilds = (message) => {\r\n this.configTest();\r\n const iframes = document.getElementsByTagName('iframe');\r\n for (let i = 0; i < iframes.length; i += 1) {\r\n iframes[i].contentWindow.postMessage(this.formatForwardMessage(message), '*');\r\n }\r\n };\r\n\r\n /**\r\n * Metodo utilizzato dal parent per inoltrare eventi signalR\r\n * all'applicativo caricato nell'iframe (con idDestination\r\n * verrà inoltrato l'evento ad un solo specifico applicativo)\r\n * @param {string} eventName - nome dell'evento signalR\r\n * @param {object} event - evento signalR da inoltrare\r\n * @param {string} idDestination - [opzionale] eventuale identificativo del destinatario\r\n */\r\n forwardEventoServerToChilds = (eventName, event, idDestination = null) => {\r\n this.postMessageToChilds(\r\n PluginMessageTypes.SERVER_EVENT,\r\n { eventName, event },\r\n idDestination,\r\n );\r\n };\r\n\r\n /**\r\n * Metodo utilizzato dagli applicativi nell'iframe per\r\n * inviare messaggi al parent\r\n * @param {string} type - tipologia del messaggio\r\n * @param {object} payload - messaggio\r\n * @param {string} idDestination - [opzionale] eventuale identificativo del destinatario\r\n */\r\n postMessageToParent = (type, payload, idDestination = null) => {\r\n this.configTest();\r\n window.parent.postMessage(this.formatMessage(type, payload, idDestination), '*');\r\n };\r\n\r\n /**\r\n * Metodo utilizzato per effettuare un forward al parent di un messaggio ricevuto\r\n * @param {*} message\r\n */\r\n forwardMessageToParent = (message) => {\r\n this.configTest();\r\n window.parent.postMessage(this.formatForwardMessage(message), '*');\r\n };\r\n\r\n /**\r\n * Metodo utilizzato dall'applicativo per inoltrare eventi signalR\r\n * al parent\r\n * @param {string} eventName - nome dell'evento signalR\r\n * @param {object} event - evento signalR da inoltrare\r\n */\r\n forwardEventoServerToParent = (eventName, event) => {\r\n this.postMessageToParent(\r\n PluginMessageTypes.SERVER_EVENT,\r\n { eventName, event },\r\n );\r\n };\r\n\r\n /**\r\n * Metodo per la sottoscrizione alla ricezione dei messaggi\r\n */\r\n subscribe = (callback, context = null) => {\r\n this.configTest();\r\n if (!callback || typeof callback !== 'function') {\r\n throw new TypeError('PluginMessages: Obbligatoria funzione callback per subscribe');\r\n }\r\n const regs = getWindowReceiverData(this.config.idReceiver, CALLBACK_REGS);\r\n regs.push({ callback, context });\r\n return this;\r\n };\r\n\r\n /**\r\n * Metodo utilizzato per rimuovere la sottoscrizione qui sopra descritta\r\n */\r\n unsubscribe = (callback) => {\r\n this.configTest();\r\n if (!callback || typeof callback !== 'function') {\r\n throw new TypeError('PluginMessages: Obbligatoria funzione callback per unsubscribe');\r\n }\r\n const regs = getWindowReceiverData(this.config.idReceiver, CALLBACK_REGS);\r\n for (let i = 0; i < regs.length; i += 1) {\r\n if (regs[i].callback === callback) {\r\n regs.splice(i, 1);\r\n return this;\r\n }\r\n }\r\n return this;\r\n };\r\n}\r\n\r\nconst EventoServer = new PluginMessages();\r\n\r\nexport default EventoServer;\r\n","const getTitle = (title, validations) => {\r\n let newTitle = title;\r\n if (validations && validations.indexOf('required') !== -1) {\r\n if (title.indexOf('*') === -1) {\r\n newTitle = `${title} *`;\r\n }\r\n }\r\n return newTitle;\r\n};\r\n\r\n/**\r\n * Funzione per generare guid random (necessaria per creare nomi univoci per gli input per fermare\r\n * l'autocomplete di chrome (https://gist.github.com/jed/982883)\r\n * @param {f} a\r\n */\r\nfunction b(\r\n a, // placeholder\r\n) {\r\n /* eslint-disable no-bitwise */\r\n return a // if the placeholder was passed, return\r\n ? ( // a random number from 0 to 15\r\n a // unless b is 8,\r\n ^ Math.random() // in which case\r\n * 16 // a random number from\r\n >> a / 4 // 8 to 11\r\n ).toString(16) // in hexadecimal\r\n : ( // or otherwise a concatenated string:\r\n [1e7] // 10000000 +\r\n + -1e3 // -1000 +\r\n + -4e3 // -4000 +\r\n + -8e3 // -80000000 +\r\n + -1e11 // -100000000000,\r\n ).replace( // replacing\r\n /[018]/g, // zeroes, ones, and eights with\r\n b, // random hex digits\r\n );\r\n /* eslint-enable */\r\n}\r\n\r\nconst getRandomId = () => b();\r\n\r\n/**\r\n * Calcola il valore di presentazione.\r\n */\r\nclass Presentation {\r\n constructor({ readOnly }) {\r\n this.readOnly = readOnly;\r\n }\r\n\r\n format(value) {\r\n if ((!value || value.length === 0) && this.readOnly) return '-';\r\n return value;\r\n }\r\n\r\n parse(text) {\r\n if (text === '-' && this.readOnly) return '';\r\n return text;\r\n }\r\n}\r\n\r\nexport {\r\n getTitle,\r\n getRandomId,\r\n Presentation,\r\n};\r\n","import ConsoleLog from './ConsoleLog';\r\n\r\nexport default ConsoleLog;\r\n","import Logger from '../Components/ConsoleLogger';\r\nimport { isProduction } from '../Components/Utils/environment';\r\n\r\nconst Log = new Logger('FW-UI-COMPONENTS');\r\nLog.init(!isProduction() ? Logger.LogLevel.all : Logger.LogLevel.none);\r\n\r\nexport default Log;\r\n","// eslint-disable-next-line no-console\r\nlet connectionErrorCallback = (errorMessage) => console.error(errorMessage);\r\n\r\nexport function notifyConnectionError(errorMessage) {\r\n connectionErrorCallback && connectionErrorCallback(errorMessage);\r\n}\r\n\r\nexport function setConnectionErrorCallback(callback) {\r\n connectionErrorCallback = callback;\r\n}\r\n","import axios from 'axios';\r\nimport Log from '../../utils/log';\r\nimport { notifyConnectionError, setConnectionErrorCallback } from '../EventoServer/connectionError';\r\nimport { isProduction } from '../Utils/environment';\r\n\r\nconst log = (method, url, data, parameters) => {\r\n if (!isProduction() && !window.FW_TESTING) {\r\n Log.debug({\r\n WebRequest: `${method} ${url}`,\r\n Payload: data,\r\n Parameters: parameters,\r\n });\r\n }\r\n};\r\n\r\nlet failedCalls = 0;\r\n\r\n/**\r\n * registro un interecettore per gli errori di rete\r\n * in modo da avere una notifica di fallimento significativa se\r\n * falliscono almeno due chiamate per motivi di rete\r\n * @param {*} err\r\n * @returns {Promise}\r\n */\r\nexport function axiosErrorInterceptor(err) {\r\n // niente risposta e non è un erroe axios deve essere un errore di rete\r\n // niente connessione o chiamate bloccate\r\n if (!!err.isAxiosError && !err.response && !err.status) {\r\n failedCalls += 1;\r\n\r\n if (failedCalls > 1) {\r\n notifyConnectionError('La comunicazione con il server è fallita. Verificare di non avere antivirus che blocchino le connessioni o problemi con la rete.');\r\n }\r\n }\r\n return Promise.reject(err);\r\n}\r\naxios.interceptors.response.use(null, axiosErrorInterceptor);\r\n\r\n/**\r\n * Permette di trasformare un oggetto in una serie di parametri passati in querystring.\r\n * @param {object} parameters un oggetto javascript che specifica i parametri da passare in querystring\r\n * (per semplicità verrà anche eseguito l'encoding dei parametri passati prima di essere aggiunti in querystring)\r\n * @returns {string} url parameters\r\n */\r\nconst concatenateParameters = (parameters) => {\r\n const parametersList = [];\r\n\r\n for (const paramName in parameters) {\r\n if ({}.hasOwnProperty.call(parameters, paramName)) {\r\n const values = Array.isArray(parameters[paramName]) ? parameters[paramName] : [parameters[paramName]];\r\n for (let n = 0; n < values.length; n += 1) {\r\n parametersList.push(`${encodeURI(paramName)}=${values[n] == null ? '' : encodeURI(values[n])}`);\r\n }\r\n }\r\n }\r\n return parametersList.join('&');\r\n};\r\n\r\n/**\r\n * Permette di eseguire una chiamata AJAX in GET richiedendo la risposta in formato JSON.\r\n * Il risultato di questa chiamata è una Promise sulla richiesta perciò sarà possibile concatenare una azione mediante il metodo then.\r\n * @param {string} url l'url dell'endpoint da chiamare\r\n * @param {object} parameters un oggetto javascript che specifica i parametri da passare in querystring\r\n * (per semplicità verrà anche eseguito l'encoding dei parametri passati prima di essere aggiunti in querystring)\r\n * @param {boolean | undefined} enableCredentialWithCors I flag nella chiamata cors e withCredentials vengono automaticamente\r\n * impostati se l'url comincia con http. Questo parametro permette di forzare l'uso o meno di quei flag\r\n * @param {boolean=} [allResponse=false] se impostato a true (di default è false) fa ritornare alla funzione\r\n * l'intera response restituita dalla promise e non solamente la parte data\r\n * @returns {Promise}\r\n */\r\nconst get = (url, parameters, enableCredentialWithCors, allResponse = false) => {\r\n let cors = url.indexOf('http://') === 0 || url.indexOf('https://') === 0;\r\n\r\n if (enableCredentialWithCors != null) {\r\n cors = enableCredentialWithCors;\r\n }\r\n\r\n log('GET', url, '{}', parameters);\r\n\r\n return axios({\r\n method: 'get',\r\n params: parameters || {},\r\n type: 'json',\r\n url,\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n contentType: 'application/json',\r\n withCredentials: cors,\r\n })\r\n .then((response) => (allResponse ? response : response.data));\r\n};\r\n\r\n/**\r\n * Permette di eseguire una chiamata AJAX di tipo POST e accetta come parametri.\r\n * Il risultato di questa chiamata è una Promise sulla richiesta perciò sarà possibile concatenare una azione mediante il metodo then.\r\n * @param {string} url l'url dell'endpoint da chiamare\r\n * @param {object} data l'oggetto da passare nel corpo della chiamata POST\r\n * @param {object} parameters un oggetto javascript che specifica i parametri da passare in querystring\r\n * (per semplicità verrà anche eseguito l'encoding dei parametri passati prima di essere aggiunti in querystring)\r\n * @param {boolean | undefined} enableCredentialWithCors I flag nella chiamata cors e withCredentials vengono automaticamente impostati se\r\n * l'url comincia con http. Questo parametro permette di forzare l'uso o meno di quei flag\r\n * @param {boolean=} [allResponse=false] se impostato a true (di default è false) fa ritornare alla funzione\r\n * l'intera response restituita dalla promise e non solamente la parte data\r\n * @returns {Promise}\r\n */\r\nconst post = (url, data, parameters, enableCredentialWithCors, allResponse = false) => {\r\n let cors = url.indexOf('http://') === 0 || url.indexOf('https://') === 0;\r\n\r\n if (enableCredentialWithCors != null) {\r\n cors = enableCredentialWithCors;\r\n }\r\n\r\n log('POST', url, data, parameters);\r\n\r\n return axios({\r\n method: 'post',\r\n params: parameters || {},\r\n type: 'json',\r\n url,\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n data: JSON.stringify(data),\r\n contentType: 'application/json',\r\n withCredentials: cors,\r\n })\r\n .then((response) => (allResponse ? response : response.data));\r\n};\r\n\r\n/**\r\n * Permette di eseguire una chiamata AJAX di tipo POST per inviare un file e accetta come parametri .\r\n * @param {string} url l'url dell'endpoint da chiamare\r\n * @param {object} formData il FormData da passare nel corpo della chiamata POST\r\n * @param {boolean | undefined} enableCors I flag nella chiamata cors e withCredentials vengono automaticamente impostati se l'url comincia con http.\r\n * Questo parametro permette di forzare l'uso o meno di quei flag\r\n * @param {func} onUploadProgress callback per seguire la progressione dell'upload (evento axios)\r\n * @param {func} onDownloadProgress callback per seguire la progressione del download (evento axios)\r\n * @returns {Promise}\r\n */\r\nconst postFile = (url, formData, enableCredentialWithCors, onUploadProgress, onDownloadProgress) => {\r\n let cors = url.indexOf('http://') === 0 || url.indexOf('https://') === 0;\r\n\r\n if (enableCredentialWithCors != null) {\r\n cors = enableCredentialWithCors;\r\n }\r\n\r\n return axios({\r\n method: 'post',\r\n processData: false,\r\n type: 'json',\r\n url,\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n data: formData,\r\n withCredentials: cors,\r\n // `onUploadProgress` allows handling of progress events for uploads\r\n onUploadProgress(progressEvent) {\r\n // Do whatever you want with the native progress event\r\n onUploadProgress && onUploadProgress(progressEvent);\r\n },\r\n // `onDownloadProgress` allows handling of progress events for downloads\r\n onDownloadProgress(progressEvent) {\r\n // Do whatever you want with the native progress event\r\n onDownloadProgress && onDownloadProgress(progressEvent);\r\n },\r\n });\r\n};\r\n\r\n/**\r\n * Permette di eseguire una chiamata AJAX in GET richiedendo un file:.\r\n * Il risultato di questa chiamata è una Promise sulla richiesta perciò sarà possibile concatenare una azione mediante il metodo then.\r\n * @param {string} url l'url dell'endpoint da chiamare\r\n * @param {object} params un oggetto javascript che specifica i parametri da passare in querystring\r\n * (per semplicità verrà anche eseguito l'encoding dei parametri passati prima di essere aggiunti in querystring)\r\n * @param {boolean | undefined} enableCredentialWithCors I flag nella chiamata cors e withCredentials vengono automaticamente\r\n * impostati se l'url comincia con http. Questo parametro permette di forzare l'uso o meno di quei flag\r\n * @param {boolean=} [allResponse=false] se impostato a true (di default è false) fa ritornare alla funzione\r\n * l'intera response restituita dalla promise e non solamente la parte data\r\n * @returns {Promise}\r\n */\r\nconst getFile = (url, params, enableCredentialWithCors, allResponse = false) => {\r\n const cors = enableCredentialWithCors != null ? enableCredentialWithCors : (url.indexOf('http://') === 0 || url.indexOf('https://') === 0);\r\n return axios({\r\n method: 'get',\r\n params: params || {},\r\n responseType: 'blob',\r\n url,\r\n withCredentials: cors,\r\n })\r\n .then((response) => (allResponse ? response : response.data));\r\n};\r\n\r\n/**\r\n * Funzione che ritorna il nome del file letto in GET.\r\n * @param {object} response response completa della chiamata getFile con il parametro allResponse=true.\r\n * @returns {string} file name\r\n */\r\nconst getFileNameFromGetFileResponse = (response) => {\r\n if (!response || !response.headers || !response.headers['content-disposition']) return null;\r\n const regex = /filename[^;=\\n]*=(?:(\\\\?['\"])(.*?)\\1|(?:[^\\s]+'.*?')?([^;\\n]*))/i;\r\n const matches = regex.exec(response.headers['content-disposition']);\r\n let filename = null;\r\n const matched = matches != null && (matches[3] || matches[2]);\r\n if (matched) {\r\n filename = matched.replace(/['\"]/g, '');\r\n }\r\n return filename ? decodeURI(filename) : null;\r\n};\r\n\r\n/**\r\n * Metodo per impostare un header da passare a tutte le chiamate fatte con WebRequest.\r\n * @param {string} name nome dell'header da impostare\r\n * @param {string} value valore da impostare\r\n */\r\nconst setDefaultHeader = (name, value) => {\r\n axios.defaults.headers.common[name] = value;\r\n};\r\n\r\nconst api = {\r\n concatenateParameters,\r\n getFileNameFromGetFileResponse,\r\n get,\r\n post,\r\n getFile,\r\n postFile,\r\n setDefaultHeader,\r\n setConnectionErrorCallback,\r\n};\r\n\r\nexport default api;\r\n","import WebRequest from './WebRequest';\r\n\r\nexport default WebRequest;\r\n","import { getRandomId } from 'framework-ui-components/Components/Utils/baseComponentHelper';\r\nimport { WebRequest } from 'framework-ui-components';\r\nimport { PluginMessageTypes } from './constants';\r\nimport MessagesPlugin from './messages';\r\nimport Log from '../utils/log';\r\n\r\n// timeout massimo di chiamata verso parent\r\nconst TimeoutMaxMs = 5000;\r\n\r\nconst FORWARD_GET = 'GET';\r\n\r\n// elenco delle sotto-tipologie gestite come call forward\r\nconst CallForwardTypes = [\r\n FORWARD_GET,\r\n];\r\n\r\n/**\r\n * Promise per effettuare una chiamata in promise del parent da una applicazione\r\n * caricata in un iframe\r\n * @param {string} type - tipologia della chiamata (GET, POST)\r\n * @param {string} uri - identificativo della chiamata\r\n * @param {object} params - [opzionale] parametri eventuali di chiamata\r\n * @param {number} timeoutLimit - [opzionale - default 5000] limite di attesa per\r\n * una eventuale risposta (ms)\r\n */\r\nconst callParent = (type, uri, params, timeoutLimit = TimeoutMaxMs) => new Promise((resolve, reject) => {\r\n const callId = getRandomId();\r\n let timeoutID;\r\n const checkResponse = (message) => {\r\n if (message.type === PluginMessageTypes.CALL_FORWARD_RESPONSE\r\n && message.payload && message.payload.callId === callId) {\r\n clearTimeout(timeoutID);\r\n MessagesPlugin.unsubscribe(checkResponse);\r\n resolve(message.payload.response);\r\n }\r\n };\r\n MessagesPlugin.subscribe(checkResponse);\r\n MessagesPlugin.postMessageToParent(\r\n PluginMessageTypes.CALL_FORWARD,\r\n {\r\n type,\r\n callId,\r\n uri,\r\n params,\r\n },\r\n );\r\n timeoutID = setTimeout(() => {\r\n MessagesPlugin.unsubscribe(checkResponse);\r\n reject(new Error('timed out!'));\r\n }, timeoutLimit);\r\n});\r\n\r\n/**\r\n * Promise per effettuare una chiamata in promise dell'applicazione\r\n * da parte del parent\r\n * @param {string} type - tipologia della chiamata (GET, POST)\r\n * @param {string} uri - identificativo della chiamata\r\n * @param {object} params - [opzionale] parametri eventuali di chiamata\r\n * @param {string} idDestination - [opzionale] eventuale identificativo del destinatari\r\n * @param {number} timeoutLimit - [opzionale - default 5000] limite di attesa per\r\n * una eventuale risposta (ms)\r\n */\r\nconst callChild = (type, uri, params, idDestination = null, timeoutLimit = TimeoutMaxMs) => new Promise((resolve, reject) => {\r\n const callId = getRandomId();\r\n let timeoutID;\r\n const checkResponse = (message) => {\r\n if (message.type === PluginMessageTypes.CALL_FORWARD_RESPONSE\r\n && message.payload && message.payload.callId === callId) {\r\n clearTimeout(timeoutID);\r\n MessagesPlugin.unsubscribe(checkResponse);\r\n resolve(message.payload.response);\r\n }\r\n };\r\n MessagesPlugin.subscribe(checkResponse);\r\n MessagesPlugin.postMessageToChilds(\r\n PluginMessageTypes.CALL_FORWARD,\r\n {\r\n type,\r\n callId,\r\n uri,\r\n params,\r\n },\r\n idDestination,\r\n );\r\n timeoutID = setTimeout(() => {\r\n MessagesPlugin.unsubscribe(checkResponse);\r\n reject(new Error('timed out!'));\r\n }, timeoutLimit);\r\n});\r\n\r\nconst callAndResponse = (type, url, params, callId, forwardFunc) => {\r\n if (type === FORWARD_GET) {\r\n WebRequest.get(url, params).then((response) => {\r\n forwardFunc(\r\n PluginMessageTypes.CALL_FORWARD_RESPONSE,\r\n { callId, response },\r\n );\r\n });\r\n } else {\r\n Log.warn('Tipo chiamata forward non riconosciuta');\r\n }\r\n};\r\n\r\nconst callAndResponseToChild = (type, url, params, callId) => {\r\n callAndResponse(type, url, params, callId, MessagesPlugin.postMessageToChilds);\r\n};\r\n\r\nconst callAndResponseToParent = (type, url, params, callId) => {\r\n callAndResponse(type, url, params, callId, MessagesPlugin.postMessageToParent);\r\n};\r\n\r\nexport {\r\n CallForwardTypes,\r\n callParent,\r\n callChild,\r\n callAndResponseToChild,\r\n callAndResponseToParent,\r\n};\r\n","import { getRandomId } from 'framework-ui-components/Components/Utils/baseComponentHelper';\r\nimport { callChild } from './forward';\r\nimport { PluginCallsTypes } from './constants';\r\nimport Log from '../utils/log';\r\nimport { isPresentIFrame } from './caller';\r\n\r\nconst EventOriginCheck = 'fw-plugins-clickOut-event';\r\n\r\nlet lastObjectOutside = null;\r\nlet lastEventOutsideId;\r\n\r\n/** Metodo che tiene in sospeso un evento e lo sblocca in base al\r\n * risultato dell'evento IS_CLICKABLE_OUTSIDE del child */\r\nconst eventFilter = (event) => {\r\n if (isPresentIFrame() && event.originCheck !== EventOriginCheck) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n lastObjectOutside = event;\r\n lastEventOutsideId = getRandomId();\r\n callChild(PluginCallsTypes.IS_CLICKABLE_OUTSIDE, null, lastEventOutsideId)\r\n .then((isClickableOutside) => {\r\n if (isClickableOutside) {\r\n eventFilterOk(event);\r\n }\r\n })\r\n .catch(() => {\r\n Log.error(`Non sembra sia gestita la chiamata \"${PluginCallsTypes.IS_CLICKABLE_OUTSIDE}\"`);\r\n eventFilterOk(event);\r\n });\r\n return true;\r\n }\r\n return false;\r\n};\r\n\r\n/** riattivazione di un evento precedentemente stoppato */\r\nconst eventFilterOk = (event) => {\r\n const originaEvent = new event.constructor(event.type, event);\r\n originaEvent.originCheck = EventOriginCheck;\r\n const origEvent = (event.path && event.path[0]) || event.explicitOriginalTarget || event.srcElement;\r\n origEvent.dispatchEvent(originaEvent);\r\n};\r\n\r\nconst functFilter = (funct) => {\r\n if (isPresentIFrame()) {\r\n lastObjectOutside = funct;\r\n lastEventOutsideId = getRandomId();\r\n callChild(PluginCallsTypes.IS_CLICKABLE_OUTSIDE, null, lastEventOutsideId)\r\n .then((isClickableOutside) => {\r\n if (isClickableOutside) {\r\n funct();\r\n }\r\n })\r\n .catch(() => {\r\n Log.error(`Non sembra sia gestita la chiamata \"${PluginCallsTypes.IS_CLICKABLE_OUTSIDE}\"`);\r\n funct();\r\n });\r\n } else {\r\n funct();\r\n }\r\n};\r\n\r\n/** se il child manda un messaggio di restore dell'evento/function allora viene verificato\r\n * che l'id dello stesso corrisponda all'ultimo e in questo caso si riattiva\r\n * nel parent */\r\nconst restoreLastOutside = (lastEventId) => {\r\n if (lastObjectOutside && lastEventOutsideId === lastEventId) {\r\n if (typeof lastObjectOutside === 'function') {\r\n lastObjectOutside();\r\n } else {\r\n eventFilterOk(lastObjectOutside);\r\n }\r\n lastObjectOutside = null;\r\n }\r\n};\r\n\r\nexport {\r\n EventOriginCheck,\r\n eventFilter,\r\n functFilter,\r\n restoreLastOutside,\r\n};\r\n","import FwPlugins from './models/messages';\r\nimport {\r\n isCalledByParent, getCallerParentId, isPresentIFrame, getCallerParams, getCallerExtraParams,\r\n} from './models/caller';\r\nimport { callParent, callChild } from './models/forward';\r\nimport { PluginMessageTypes } from './models/constants';\r\nimport { eventFilter, functFilter } from './models/clickOut';\r\n\r\n// componenti per parent\r\nexport { default as IFrame } from './components/parent/IFrame';\r\nexport { default as ModalIFrame } from './components/parent/ModalIFrame';\r\nexport { default as DrawerIFrame } from './components/parent/DrawerIFrame';\r\n// componenti per children\r\nexport { default as PluginApp } from './components/children/PluginApp/PluginApp';\r\nexport { default as PluginRouter } from './components/children/PluginRouter/PluginRouter';\r\n// hooks\r\nexport { default as usePluginReducer } from './hooks/usePluginReducer';\r\nexport { default as usePluginAppChild } from './hooks/usePluginAppChild';\r\nexport { default as usePluginAppViewport } from './hooks/usePluginAppViewport';\r\n\r\nFwPlugins.isCalledByParent = isCalledByParent;\r\nFwPlugins.getCallerParentId = getCallerParentId;\r\nFwPlugins.callParent = callParent;\r\nFwPlugins.callChild = callChild;\r\nFwPlugins.PluginMessageTypes = PluginMessageTypes;\r\nFwPlugins.getCallerParams = getCallerParams;\r\nFwPlugins.getCallerExtraParams = getCallerExtraParams;\r\nFwPlugins.clickOutEventFilter = eventFilter;\r\nFwPlugins.clickOutFunctionFilter = functFilter;\r\nFwPlugins.isPresentIFrame = isPresentIFrame;\r\n\r\nexport default FwPlugins;\r\n","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/** Error thrown when an HTTP request fails. */\r\nvar HttpError = /** @class */ (function (_super) {\r\n __extends(HttpError, _super);\r\n /** Constructs a new instance of {@link @aspnet/signalr.HttpError}.\r\n *\r\n * @param {string} errorMessage A descriptive error message.\r\n * @param {number} statusCode The HTTP status code represented by this error.\r\n */\r\n function HttpError(errorMessage, statusCode) {\r\n var _newTarget = this.constructor;\r\n var _this = this;\r\n var trueProto = _newTarget.prototype;\r\n _this = _super.call(this, errorMessage) || this;\r\n _this.statusCode = statusCode;\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n _this.__proto__ = trueProto;\r\n return _this;\r\n }\r\n return HttpError;\r\n}(Error));\r\nexport { HttpError };\r\n/** Error thrown when a timeout elapses. */\r\nvar TimeoutError = /** @class */ (function (_super) {\r\n __extends(TimeoutError, _super);\r\n /** Constructs a new instance of {@link @aspnet/signalr.TimeoutError}.\r\n *\r\n * @param {string} errorMessage A descriptive error message.\r\n */\r\n function TimeoutError(errorMessage) {\r\n var _newTarget = this.constructor;\r\n if (errorMessage === void 0) { errorMessage = \"A timeout occurred.\"; }\r\n var _this = this;\r\n var trueProto = _newTarget.prototype;\r\n _this = _super.call(this, errorMessage) || this;\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n _this.__proto__ = trueProto;\r\n return _this;\r\n }\r\n return TimeoutError;\r\n}(Error));\r\nexport { TimeoutError };\r\n/** Error thrown when an action is aborted. */\r\nvar AbortError = /** @class */ (function (_super) {\r\n __extends(AbortError, _super);\r\n /** Constructs a new instance of {@link AbortError}.\r\n *\r\n * @param {string} errorMessage A descriptive error message.\r\n */\r\n function AbortError(errorMessage) {\r\n var _newTarget = this.constructor;\r\n if (errorMessage === void 0) { errorMessage = \"An abort occurred.\"; }\r\n var _this = this;\r\n var trueProto = _newTarget.prototype;\r\n _this = _super.call(this, errorMessage) || this;\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n _this.__proto__ = trueProto;\r\n return _this;\r\n }\r\n return AbortError;\r\n}(Error));\r\nexport { AbortError };\r\n//# sourceMappingURL=Errors.js.map","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\n// These values are designed to match the ASP.NET Log Levels since that's the pattern we're emulating here.\r\n/** Indicates the severity of a log message.\r\n *\r\n * Log Levels are ordered in increasing severity. So `Debug` is more severe than `Trace`, etc.\r\n */\r\nexport var LogLevel;\r\n(function (LogLevel) {\r\n /** Log level for very low severity diagnostic messages. */\r\n LogLevel[LogLevel[\"Trace\"] = 0] = \"Trace\";\r\n /** Log level for low severity diagnostic messages. */\r\n LogLevel[LogLevel[\"Debug\"] = 1] = \"Debug\";\r\n /** Log level for informational diagnostic messages. */\r\n LogLevel[LogLevel[\"Information\"] = 2] = \"Information\";\r\n /** Log level for diagnostic messages that indicate a non-fatal problem. */\r\n LogLevel[LogLevel[\"Warning\"] = 3] = \"Warning\";\r\n /** Log level for diagnostic messages that indicate a failure in the current operation. */\r\n LogLevel[LogLevel[\"Error\"] = 4] = \"Error\";\r\n /** Log level for diagnostic messages that indicate a failure that will terminate the entire application. */\r\n LogLevel[LogLevel[\"Critical\"] = 5] = \"Critical\";\r\n /** The highest possible log level. Used when configuring logging to indicate that no log messages should be emitted. */\r\n LogLevel[LogLevel[\"None\"] = 6] = \"None\";\r\n})(LogLevel || (LogLevel = {}));\r\n//# sourceMappingURL=ILogger.js.map","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\nvar __assign = (this && this.__assign) || Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n};\r\n/** Represents an HTTP response. */\r\nvar HttpResponse = /** @class */ (function () {\r\n function HttpResponse(statusCode, statusText, content) {\r\n this.statusCode = statusCode;\r\n this.statusText = statusText;\r\n this.content = content;\r\n }\r\n return HttpResponse;\r\n}());\r\nexport { HttpResponse };\r\n/** Abstraction over an HTTP client.\r\n *\r\n * This class provides an abstraction over an HTTP client so that a different implementation can be provided on different platforms.\r\n */\r\nvar HttpClient = /** @class */ (function () {\r\n function HttpClient() {\r\n }\r\n HttpClient.prototype.get = function (url, options) {\r\n return this.send(__assign({}, options, { method: \"GET\", url: url }));\r\n };\r\n HttpClient.prototype.post = function (url, options) {\r\n return this.send(__assign({}, options, { method: \"POST\", url: url }));\r\n };\r\n HttpClient.prototype.delete = function (url, options) {\r\n return this.send(__assign({}, options, { method: \"DELETE\", url: url }));\r\n };\r\n /** Gets all cookies that apply to the specified URL.\r\n *\r\n * @param url The URL that the cookies are valid for.\r\n * @returns {string} A string containing all the key-value cookie pairs for the specified URL.\r\n */\r\n // @ts-ignore\r\n HttpClient.prototype.getCookieString = function (url) {\r\n return \"\";\r\n };\r\n return HttpClient;\r\n}());\r\nexport { HttpClient };\r\n//# sourceMappingURL=HttpClient.js.map","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nimport { AbortError, HttpError, TimeoutError } from \"./Errors\";\r\nimport { HttpClient, HttpResponse } from \"./HttpClient\";\r\nimport { LogLevel } from \"./ILogger\";\r\nvar XhrHttpClient = /** @class */ (function (_super) {\r\n __extends(XhrHttpClient, _super);\r\n function XhrHttpClient(logger) {\r\n var _this = _super.call(this) || this;\r\n _this.logger = logger;\r\n return _this;\r\n }\r\n /** @inheritDoc */\r\n XhrHttpClient.prototype.send = function (request) {\r\n var _this = this;\r\n // Check that abort was not signaled before calling send\r\n if (request.abortSignal && request.abortSignal.aborted) {\r\n return Promise.reject(new AbortError());\r\n }\r\n if (!request.method) {\r\n return Promise.reject(new Error(\"No method defined.\"));\r\n }\r\n if (!request.url) {\r\n return Promise.reject(new Error(\"No url defined.\"));\r\n }\r\n return new Promise(function (resolve, reject) {\r\n var xhr = new XMLHttpRequest();\r\n xhr.open(request.method, request.url, true);\r\n xhr.withCredentials = true;\r\n xhr.setRequestHeader(\"X-Requested-With\", \"XMLHttpRequest\");\r\n // Explicitly setting the Content-Type header for React Native on Android platform.\r\n xhr.setRequestHeader(\"Content-Type\", \"text/plain;charset=UTF-8\");\r\n var headers = request.headers;\r\n if (headers) {\r\n Object.keys(headers)\r\n .forEach(function (header) {\r\n xhr.setRequestHeader(header, headers[header]);\r\n });\r\n }\r\n if (request.responseType) {\r\n xhr.responseType = request.responseType;\r\n }\r\n if (request.abortSignal) {\r\n request.abortSignal.onabort = function () {\r\n xhr.abort();\r\n reject(new AbortError());\r\n };\r\n }\r\n if (request.timeout) {\r\n xhr.timeout = request.timeout;\r\n }\r\n xhr.onload = function () {\r\n if (request.abortSignal) {\r\n request.abortSignal.onabort = null;\r\n }\r\n if (xhr.status >= 200 && xhr.status < 300) {\r\n resolve(new HttpResponse(xhr.status, xhr.statusText, xhr.response || xhr.responseText));\r\n }\r\n else {\r\n reject(new HttpError(xhr.statusText, xhr.status));\r\n }\r\n };\r\n xhr.onerror = function () {\r\n _this.logger.log(LogLevel.Warning, \"Error from HTTP request. \" + xhr.status + \": \" + xhr.statusText + \".\");\r\n reject(new HttpError(xhr.statusText, xhr.status));\r\n };\r\n xhr.ontimeout = function () {\r\n _this.logger.log(LogLevel.Warning, \"Timeout from HTTP request.\");\r\n reject(new TimeoutError());\r\n };\r\n xhr.send(request.content || \"\");\r\n });\r\n };\r\n return XhrHttpClient;\r\n}(HttpClient));\r\nexport { XhrHttpClient };\r\n//# sourceMappingURL=XhrHttpClient.js.map","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nimport { AbortError } from \"./Errors\";\r\nimport { HttpClient } from \"./HttpClient\";\r\nimport { XhrHttpClient } from \"./XhrHttpClient\";\r\nvar nodeHttpClientModule;\r\nif (typeof XMLHttpRequest === \"undefined\") {\r\n // In order to ignore the dynamic require in webpack builds we need to do this magic\r\n // @ts-ignore: TS doesn't know about these names\r\n var requireFunc = typeof __webpack_require__ === \"function\" ? __non_webpack_require__ : require;\r\n nodeHttpClientModule = requireFunc(\"./NodeHttpClient\");\r\n}\r\n/** Default implementation of {@link @aspnet/signalr.HttpClient}. */\r\nvar DefaultHttpClient = /** @class */ (function (_super) {\r\n __extends(DefaultHttpClient, _super);\r\n /** Creates a new instance of the {@link @aspnet/signalr.DefaultHttpClient}, using the provided {@link @aspnet/signalr.ILogger} to log messages. */\r\n function DefaultHttpClient(logger) {\r\n var _this = _super.call(this) || this;\r\n if (typeof XMLHttpRequest !== \"undefined\") {\r\n _this.httpClient = new XhrHttpClient(logger);\r\n }\r\n else if (typeof nodeHttpClientModule !== \"undefined\") {\r\n _this.httpClient = new nodeHttpClientModule.NodeHttpClient(logger);\r\n }\r\n else {\r\n throw new Error(\"No HttpClient could be created.\");\r\n }\r\n return _this;\r\n }\r\n /** @inheritDoc */\r\n DefaultHttpClient.prototype.send = function (request) {\r\n // Check that abort was not signaled before calling send\r\n if (request.abortSignal && request.abortSignal.aborted) {\r\n return Promise.reject(new AbortError());\r\n }\r\n if (!request.method) {\r\n return Promise.reject(new Error(\"No method defined.\"));\r\n }\r\n if (!request.url) {\r\n return Promise.reject(new Error(\"No url defined.\"));\r\n }\r\n return this.httpClient.send(request);\r\n };\r\n DefaultHttpClient.prototype.getCookieString = function (url) {\r\n return this.httpClient.getCookieString(url);\r\n };\r\n return DefaultHttpClient;\r\n}(HttpClient));\r\nexport { DefaultHttpClient };\r\n//# sourceMappingURL=DefaultHttpClient.js.map","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\n// Not exported from index\r\n/** @private */\r\nvar TextMessageFormat = /** @class */ (function () {\r\n function TextMessageFormat() {\r\n }\r\n TextMessageFormat.write = function (output) {\r\n return \"\" + output + TextMessageFormat.RecordSeparator;\r\n };\r\n TextMessageFormat.parse = function (input) {\r\n if (input[input.length - 1] !== TextMessageFormat.RecordSeparator) {\r\n throw new Error(\"Message is incomplete.\");\r\n }\r\n var messages = input.split(TextMessageFormat.RecordSeparator);\r\n messages.pop();\r\n return messages;\r\n };\r\n TextMessageFormat.RecordSeparatorCode = 0x1e;\r\n TextMessageFormat.RecordSeparator = String.fromCharCode(TextMessageFormat.RecordSeparatorCode);\r\n return TextMessageFormat;\r\n}());\r\nexport { TextMessageFormat };\r\n//# sourceMappingURL=TextMessageFormat.js.map","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\n/** A logger that does nothing when log messages are sent to it. */\r\nvar NullLogger = /** @class */ (function () {\r\n function NullLogger() {\r\n }\r\n /** @inheritDoc */\r\n // tslint:disable-next-line\r\n NullLogger.prototype.log = function (_logLevel, _message) {\r\n };\r\n /** The singleton instance of the {@link @aspnet/signalr.NullLogger}. */\r\n NullLogger.instance = new NullLogger();\r\n return NullLogger;\r\n}());\r\nexport { NullLogger };\r\n//# sourceMappingURL=Loggers.js.map","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __generator = (this && this.__generator) || function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n};\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { NullLogger } from \"./Loggers\";\r\n/** @private */\r\nvar Arg = /** @class */ (function () {\r\n function Arg() {\r\n }\r\n Arg.isRequired = function (val, name) {\r\n if (val === null || val === undefined) {\r\n throw new Error(\"The '\" + name + \"' argument is required.\");\r\n }\r\n };\r\n Arg.isIn = function (val, values, name) {\r\n // TypeScript enums have keys for **both** the name and the value of each enum member on the type itself.\r\n if (!(val in values)) {\r\n throw new Error(\"Unknown \" + name + \" value: \" + val + \".\");\r\n }\r\n };\r\n return Arg;\r\n}());\r\nexport { Arg };\r\n/** @private */\r\nexport function getDataDetail(data, includeContent) {\r\n var detail = \"\";\r\n if (isArrayBuffer(data)) {\r\n detail = \"Binary data of length \" + data.byteLength;\r\n if (includeContent) {\r\n detail += \". Content: '\" + formatArrayBuffer(data) + \"'\";\r\n }\r\n }\r\n else if (typeof data === \"string\") {\r\n detail = \"String data of length \" + data.length;\r\n if (includeContent) {\r\n detail += \". Content: '\" + data + \"'\";\r\n }\r\n }\r\n return detail;\r\n}\r\n/** @private */\r\nexport function formatArrayBuffer(data) {\r\n var view = new Uint8Array(data);\r\n // Uint8Array.map only supports returning another Uint8Array?\r\n var str = \"\";\r\n view.forEach(function (num) {\r\n var pad = num < 16 ? \"0\" : \"\";\r\n str += \"0x\" + pad + num.toString(16) + \" \";\r\n });\r\n // Trim of trailing space.\r\n return str.substr(0, str.length - 1);\r\n}\r\n// Also in signalr-protocol-msgpack/Utils.ts\r\n/** @private */\r\nexport function isArrayBuffer(val) {\r\n return val && typeof ArrayBuffer !== \"undefined\" &&\r\n (val instanceof ArrayBuffer ||\r\n // Sometimes we get an ArrayBuffer that doesn't satisfy instanceof\r\n (val.constructor && val.constructor.name === \"ArrayBuffer\"));\r\n}\r\n/** @private */\r\nexport function sendMessage(logger, transportName, httpClient, url, accessTokenFactory, content, logMessageContent) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var _a, headers, token, responseType, response;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n if (!accessTokenFactory) return [3 /*break*/, 2];\r\n return [4 /*yield*/, accessTokenFactory()];\r\n case 1:\r\n token = _b.sent();\r\n if (token) {\r\n headers = (_a = {},\r\n _a[\"Authorization\"] = \"Bearer \" + token,\r\n _a);\r\n }\r\n _b.label = 2;\r\n case 2:\r\n logger.log(LogLevel.Trace, \"(\" + transportName + \" transport) sending data. \" + getDataDetail(content, logMessageContent) + \".\");\r\n responseType = isArrayBuffer(content) ? \"arraybuffer\" : \"text\";\r\n return [4 /*yield*/, httpClient.post(url, {\r\n content: content,\r\n headers: headers,\r\n responseType: responseType,\r\n })];\r\n case 3:\r\n response = _b.sent();\r\n logger.log(LogLevel.Trace, \"(\" + transportName + \" transport) request complete. Response status: \" + response.statusCode + \".\");\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n}\r\n/** @private */\r\nexport function createLogger(logger) {\r\n if (logger === undefined) {\r\n return new ConsoleLogger(LogLevel.Information);\r\n }\r\n if (logger === null) {\r\n return NullLogger.instance;\r\n }\r\n if (logger.log) {\r\n return logger;\r\n }\r\n return new ConsoleLogger(logger);\r\n}\r\n/** @private */\r\nvar Subject = /** @class */ (function () {\r\n function Subject(cancelCallback) {\r\n this.observers = [];\r\n this.cancelCallback = cancelCallback;\r\n }\r\n Subject.prototype.next = function (item) {\r\n for (var _i = 0, _a = this.observers; _i < _a.length; _i++) {\r\n var observer = _a[_i];\r\n observer.next(item);\r\n }\r\n };\r\n Subject.prototype.error = function (err) {\r\n for (var _i = 0, _a = this.observers; _i < _a.length; _i++) {\r\n var observer = _a[_i];\r\n if (observer.error) {\r\n observer.error(err);\r\n }\r\n }\r\n };\r\n Subject.prototype.complete = function () {\r\n for (var _i = 0, _a = this.observers; _i < _a.length; _i++) {\r\n var observer = _a[_i];\r\n if (observer.complete) {\r\n observer.complete();\r\n }\r\n }\r\n };\r\n Subject.prototype.subscribe = function (observer) {\r\n this.observers.push(observer);\r\n return new SubjectSubscription(this, observer);\r\n };\r\n return Subject;\r\n}());\r\nexport { Subject };\r\n/** @private */\r\nvar SubjectSubscription = /** @class */ (function () {\r\n function SubjectSubscription(subject, observer) {\r\n this.subject = subject;\r\n this.observer = observer;\r\n }\r\n SubjectSubscription.prototype.dispose = function () {\r\n var index = this.subject.observers.indexOf(this.observer);\r\n if (index > -1) {\r\n this.subject.observers.splice(index, 1);\r\n }\r\n if (this.subject.observers.length === 0) {\r\n this.subject.cancelCallback().catch(function (_) { });\r\n }\r\n };\r\n return SubjectSubscription;\r\n}());\r\nexport { SubjectSubscription };\r\n/** @private */\r\nvar ConsoleLogger = /** @class */ (function () {\r\n function ConsoleLogger(minimumLogLevel) {\r\n this.minimumLogLevel = minimumLogLevel;\r\n }\r\n ConsoleLogger.prototype.log = function (logLevel, message) {\r\n if (logLevel >= this.minimumLogLevel) {\r\n switch (logLevel) {\r\n case LogLevel.Critical:\r\n case LogLevel.Error:\r\n console.error(\"[\" + new Date().toISOString() + \"] \" + LogLevel[logLevel] + \": \" + message);\r\n break;\r\n case LogLevel.Warning:\r\n console.warn(\"[\" + new Date().toISOString() + \"] \" + LogLevel[logLevel] + \": \" + message);\r\n break;\r\n case LogLevel.Information:\r\n console.info(\"[\" + new Date().toISOString() + \"] \" + LogLevel[logLevel] + \": \" + message);\r\n break;\r\n default:\r\n // console.debug only goes to attached debuggers in Node, so we use console.log for Trace and Debug\r\n console.log(\"[\" + new Date().toISOString() + \"] \" + LogLevel[logLevel] + \": \" + message);\r\n break;\r\n }\r\n }\r\n };\r\n return ConsoleLogger;\r\n}());\r\nexport { ConsoleLogger };\r\n//# sourceMappingURL=Utils.js.map","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\n/** Defines the type of a Hub Message. */\r\nexport var MessageType;\r\n(function (MessageType) {\r\n /** Indicates the message is an Invocation message and implements the {@link @aspnet/signalr.InvocationMessage} interface. */\r\n MessageType[MessageType[\"Invocation\"] = 1] = \"Invocation\";\r\n /** Indicates the message is a StreamItem message and implements the {@link @aspnet/signalr.StreamItemMessage} interface. */\r\n MessageType[MessageType[\"StreamItem\"] = 2] = \"StreamItem\";\r\n /** Indicates the message is a Completion message and implements the {@link @aspnet/signalr.CompletionMessage} interface. */\r\n MessageType[MessageType[\"Completion\"] = 3] = \"Completion\";\r\n /** Indicates the message is a Stream Invocation message and implements the {@link @aspnet/signalr.StreamInvocationMessage} interface. */\r\n MessageType[MessageType[\"StreamInvocation\"] = 4] = \"StreamInvocation\";\r\n /** Indicates the message is a Cancel Invocation message and implements the {@link @aspnet/signalr.CancelInvocationMessage} interface. */\r\n MessageType[MessageType[\"CancelInvocation\"] = 5] = \"CancelInvocation\";\r\n /** Indicates the message is a Ping message and implements the {@link @aspnet/signalr.PingMessage} interface. */\r\n MessageType[MessageType[\"Ping\"] = 6] = \"Ping\";\r\n /** Indicates the message is a Close message and implements the {@link @aspnet/signalr.CloseMessage} interface. */\r\n MessageType[MessageType[\"Close\"] = 7] = \"Close\";\r\n})(MessageType || (MessageType = {}));\r\n//# sourceMappingURL=IHubProtocol.js.map","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\nimport { TextMessageFormat } from \"./TextMessageFormat\";\r\nimport { isArrayBuffer } from \"./Utils\";\r\n/** @private */\r\nvar HandshakeProtocol = /** @class */ (function () {\r\n function HandshakeProtocol() {\r\n }\r\n // Handshake request is always JSON\r\n HandshakeProtocol.prototype.writeHandshakeRequest = function (handshakeRequest) {\r\n return TextMessageFormat.write(JSON.stringify(handshakeRequest));\r\n };\r\n HandshakeProtocol.prototype.parseHandshakeResponse = function (data) {\r\n var responseMessage;\r\n var messageData;\r\n var remainingData;\r\n if (isArrayBuffer(data) || (typeof Buffer !== \"undefined\" && data instanceof Buffer)) {\r\n // Format is binary but still need to read JSON text from handshake response\r\n var binaryData = new Uint8Array(data);\r\n var separatorIndex = binaryData.indexOf(TextMessageFormat.RecordSeparatorCode);\r\n if (separatorIndex === -1) {\r\n throw new Error(\"Message is incomplete.\");\r\n }\r\n // content before separator is handshake response\r\n // optional content after is additional messages\r\n var responseLength = separatorIndex + 1;\r\n messageData = String.fromCharCode.apply(null, binaryData.slice(0, responseLength));\r\n remainingData = (binaryData.byteLength > responseLength) ? binaryData.slice(responseLength).buffer : null;\r\n }\r\n else {\r\n var textData = data;\r\n var separatorIndex = textData.indexOf(TextMessageFormat.RecordSeparator);\r\n if (separatorIndex === -1) {\r\n throw new Error(\"Message is incomplete.\");\r\n }\r\n // content before separator is handshake response\r\n // optional content after is additional messages\r\n var responseLength = separatorIndex + 1;\r\n messageData = textData.substring(0, responseLength);\r\n remainingData = (textData.length > responseLength) ? textData.substring(responseLength) : null;\r\n }\r\n // At this point we should have just the single handshake message\r\n var messages = TextMessageFormat.parse(messageData);\r\n var response = JSON.parse(messages[0]);\r\n if (response.type) {\r\n throw new Error(\"Expected a handshake response from the server.\");\r\n }\r\n responseMessage = response;\r\n // multiple messages could have arrived with handshake\r\n // return additional data to be parsed as usual, or null if all parsed\r\n return [remainingData, responseMessage];\r\n };\r\n return HandshakeProtocol;\r\n}());\r\nexport { HandshakeProtocol };\r\n//# sourceMappingURL=HandshakeProtocol.js.map","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __generator = (this && this.__generator) || function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n};\r\nimport { HandshakeProtocol } from \"./HandshakeProtocol\";\r\nimport { MessageType } from \"./IHubProtocol\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { Arg, Subject } from \"./Utils\";\r\nvar DEFAULT_TIMEOUT_IN_MS = 30 * 1000;\r\nvar DEFAULT_PING_INTERVAL_IN_MS = 15 * 1000;\r\n/** Describes the current state of the {@link HubConnection} to the server. */\r\nexport var HubConnectionState;\r\n(function (HubConnectionState) {\r\n /** The hub connection is disconnected. */\r\n HubConnectionState[HubConnectionState[\"Disconnected\"] = 0] = \"Disconnected\";\r\n /** The hub connection is connected. */\r\n HubConnectionState[HubConnectionState[\"Connected\"] = 1] = \"Connected\";\r\n})(HubConnectionState || (HubConnectionState = {}));\r\n/** Represents a connection to a SignalR Hub. */\r\nvar HubConnection = /** @class */ (function () {\r\n function HubConnection(connection, logger, protocol) {\r\n var _this = this;\r\n Arg.isRequired(connection, \"connection\");\r\n Arg.isRequired(logger, \"logger\");\r\n Arg.isRequired(protocol, \"protocol\");\r\n this.serverTimeoutInMilliseconds = DEFAULT_TIMEOUT_IN_MS;\r\n this.keepAliveIntervalInMilliseconds = DEFAULT_PING_INTERVAL_IN_MS;\r\n this.logger = logger;\r\n this.protocol = protocol;\r\n this.connection = connection;\r\n this.handshakeProtocol = new HandshakeProtocol();\r\n this.connection.onreceive = function (data) { return _this.processIncomingData(data); };\r\n this.connection.onclose = function (error) { return _this.connectionClosed(error); };\r\n this.callbacks = {};\r\n this.methods = {};\r\n this.closedCallbacks = [];\r\n this.id = 0;\r\n this.receivedHandshakeResponse = false;\r\n this.connectionState = HubConnectionState.Disconnected;\r\n this.cachedPingMessage = this.protocol.writeMessage({ type: MessageType.Ping });\r\n }\r\n /** @internal */\r\n // Using a public static factory method means we can have a private constructor and an _internal_\r\n // create method that can be used by HubConnectionBuilder. An \"internal\" constructor would just\r\n // be stripped away and the '.d.ts' file would have no constructor, which is interpreted as a\r\n // public parameter-less constructor.\r\n HubConnection.create = function (connection, logger, protocol) {\r\n return new HubConnection(connection, logger, protocol);\r\n };\r\n Object.defineProperty(HubConnection.prototype, \"state\", {\r\n /** Indicates the state of the {@link HubConnection} to the server. */\r\n get: function () {\r\n return this.connectionState;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /** Starts the connection.\r\n *\r\n * @returns {Promise} A Promise that resolves when the connection has been successfully established, or rejects with an error.\r\n */\r\n HubConnection.prototype.start = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var handshakeRequest, handshakePromise;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n handshakeRequest = {\r\n protocol: this.protocol.name,\r\n version: this.protocol.version,\r\n };\r\n this.logger.log(LogLevel.Debug, \"Starting HubConnection.\");\r\n this.receivedHandshakeResponse = false;\r\n handshakePromise = new Promise(function (resolve, reject) {\r\n _this.handshakeResolver = resolve;\r\n _this.handshakeRejecter = reject;\r\n });\r\n return [4 /*yield*/, this.connection.start(this.protocol.transferFormat)];\r\n case 1:\r\n _a.sent();\r\n this.logger.log(LogLevel.Debug, \"Sending handshake request.\");\r\n return [4 /*yield*/, this.sendMessage(this.handshakeProtocol.writeHandshakeRequest(handshakeRequest))];\r\n case 2:\r\n _a.sent();\r\n this.logger.log(LogLevel.Information, \"Using HubProtocol '\" + this.protocol.name + \"'.\");\r\n // defensively cleanup timeout in case we receive a message from the server before we finish start\r\n this.cleanupTimeout();\r\n this.resetTimeoutPeriod();\r\n this.resetKeepAliveInterval();\r\n // Wait for the handshake to complete before marking connection as connected\r\n return [4 /*yield*/, handshakePromise];\r\n case 3:\r\n // Wait for the handshake to complete before marking connection as connected\r\n _a.sent();\r\n this.connectionState = HubConnectionState.Connected;\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /** Stops the connection.\r\n *\r\n * @returns {Promise} A Promise that resolves when the connection has been successfully terminated, or rejects with an error.\r\n */\r\n HubConnection.prototype.stop = function () {\r\n this.logger.log(LogLevel.Debug, \"Stopping HubConnection.\");\r\n this.cleanupTimeout();\r\n this.cleanupPingTimer();\r\n return this.connection.stop();\r\n };\r\n /** Invokes a streaming hub method on the server using the specified name and arguments.\r\n *\r\n * @typeparam T The type of the items returned by the server.\r\n * @param {string} methodName The name of the server method to invoke.\r\n * @param {any[]} args The arguments used to invoke the server method.\r\n * @returns {IStreamResult} An object that yields results from the server as they are received.\r\n */\r\n HubConnection.prototype.stream = function (methodName) {\r\n var _this = this;\r\n var args = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n args[_i - 1] = arguments[_i];\r\n }\r\n var invocationDescriptor = this.createStreamInvocation(methodName, args);\r\n var subject = new Subject(function () {\r\n var cancelInvocation = _this.createCancelInvocation(invocationDescriptor.invocationId);\r\n var cancelMessage = _this.protocol.writeMessage(cancelInvocation);\r\n delete _this.callbacks[invocationDescriptor.invocationId];\r\n return _this.sendMessage(cancelMessage);\r\n });\r\n this.callbacks[invocationDescriptor.invocationId] = function (invocationEvent, error) {\r\n if (error) {\r\n subject.error(error);\r\n return;\r\n }\r\n else if (invocationEvent) {\r\n // invocationEvent will not be null when an error is not passed to the callback\r\n if (invocationEvent.type === MessageType.Completion) {\r\n if (invocationEvent.error) {\r\n subject.error(new Error(invocationEvent.error));\r\n }\r\n else {\r\n subject.complete();\r\n }\r\n }\r\n else {\r\n subject.next((invocationEvent.item));\r\n }\r\n }\r\n };\r\n var message = this.protocol.writeMessage(invocationDescriptor);\r\n this.sendMessage(message)\r\n .catch(function (e) {\r\n subject.error(e);\r\n delete _this.callbacks[invocationDescriptor.invocationId];\r\n });\r\n return subject;\r\n };\r\n HubConnection.prototype.sendMessage = function (message) {\r\n this.resetKeepAliveInterval();\r\n return this.connection.send(message);\r\n };\r\n /** Invokes a hub method on the server using the specified name and arguments. Does not wait for a response from the receiver.\r\n *\r\n * The Promise returned by this method resolves when the client has sent the invocation to the server. The server may still\r\n * be processing the invocation.\r\n *\r\n * @param {string} methodName The name of the server method to invoke.\r\n * @param {any[]} args The arguments used to invoke the server method.\r\n * @returns {Promise} A Promise that resolves when the invocation has been successfully sent, or rejects with an error.\r\n */\r\n HubConnection.prototype.send = function (methodName) {\r\n var args = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n args[_i - 1] = arguments[_i];\r\n }\r\n var invocationDescriptor = this.createInvocation(methodName, args, true);\r\n var message = this.protocol.writeMessage(invocationDescriptor);\r\n return this.sendMessage(message);\r\n };\r\n /** Invokes a hub method on the server using the specified name and arguments.\r\n *\r\n * The Promise returned by this method resolves when the server indicates it has finished invoking the method. When the promise\r\n * resolves, the server has finished invoking the method. If the server method returns a result, it is produced as the result of\r\n * resolving the Promise.\r\n *\r\n * @typeparam T The expected return type.\r\n * @param {string} methodName The name of the server method to invoke.\r\n * @param {any[]} args The arguments used to invoke the server method.\r\n * @returns {Promise} A Promise that resolves with the result of the server method (if any), or rejects with an error.\r\n */\r\n HubConnection.prototype.invoke = function (methodName) {\r\n var _this = this;\r\n var args = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n args[_i - 1] = arguments[_i];\r\n }\r\n var invocationDescriptor = this.createInvocation(methodName, args, false);\r\n var p = new Promise(function (resolve, reject) {\r\n // invocationId will always have a value for a non-blocking invocation\r\n _this.callbacks[invocationDescriptor.invocationId] = function (invocationEvent, error) {\r\n if (error) {\r\n reject(error);\r\n return;\r\n }\r\n else if (invocationEvent) {\r\n // invocationEvent will not be null when an error is not passed to the callback\r\n if (invocationEvent.type === MessageType.Completion) {\r\n if (invocationEvent.error) {\r\n reject(new Error(invocationEvent.error));\r\n }\r\n else {\r\n resolve(invocationEvent.result);\r\n }\r\n }\r\n else {\r\n reject(new Error(\"Unexpected message type: \" + invocationEvent.type));\r\n }\r\n }\r\n };\r\n var message = _this.protocol.writeMessage(invocationDescriptor);\r\n _this.sendMessage(message)\r\n .catch(function (e) {\r\n reject(e);\r\n // invocationId will always have a value for a non-blocking invocation\r\n delete _this.callbacks[invocationDescriptor.invocationId];\r\n });\r\n });\r\n return p;\r\n };\r\n /** Registers a handler that will be invoked when the hub method with the specified method name is invoked.\r\n *\r\n * @param {string} methodName The name of the hub method to define.\r\n * @param {Function} newMethod The handler that will be raised when the hub method is invoked.\r\n */\r\n HubConnection.prototype.on = function (methodName, newMethod) {\r\n if (!methodName || !newMethod) {\r\n return;\r\n }\r\n methodName = methodName.toLowerCase();\r\n if (!this.methods[methodName]) {\r\n this.methods[methodName] = [];\r\n }\r\n // Preventing adding the same handler multiple times.\r\n if (this.methods[methodName].indexOf(newMethod) !== -1) {\r\n return;\r\n }\r\n this.methods[methodName].push(newMethod);\r\n };\r\n HubConnection.prototype.off = function (methodName, method) {\r\n if (!methodName) {\r\n return;\r\n }\r\n methodName = methodName.toLowerCase();\r\n var handlers = this.methods[methodName];\r\n if (!handlers) {\r\n return;\r\n }\r\n if (method) {\r\n var removeIdx = handlers.indexOf(method);\r\n if (removeIdx !== -1) {\r\n handlers.splice(removeIdx, 1);\r\n if (handlers.length === 0) {\r\n delete this.methods[methodName];\r\n }\r\n }\r\n }\r\n else {\r\n delete this.methods[methodName];\r\n }\r\n };\r\n /** Registers a handler that will be invoked when the connection is closed.\r\n *\r\n * @param {Function} callback The handler that will be invoked when the connection is closed. Optionally receives a single argument containing the error that caused the connection to close (if any).\r\n */\r\n HubConnection.prototype.onclose = function (callback) {\r\n if (callback) {\r\n this.closedCallbacks.push(callback);\r\n }\r\n };\r\n HubConnection.prototype.processIncomingData = function (data) {\r\n this.cleanupTimeout();\r\n if (!this.receivedHandshakeResponse) {\r\n data = this.processHandshakeResponse(data);\r\n this.receivedHandshakeResponse = true;\r\n }\r\n // Data may have all been read when processing handshake response\r\n if (data) {\r\n // Parse the messages\r\n var messages = this.protocol.parseMessages(data, this.logger);\r\n for (var _i = 0, messages_1 = messages; _i < messages_1.length; _i++) {\r\n var message = messages_1[_i];\r\n switch (message.type) {\r\n case MessageType.Invocation:\r\n this.invokeClientMethod(message);\r\n break;\r\n case MessageType.StreamItem:\r\n case MessageType.Completion:\r\n var callback = this.callbacks[message.invocationId];\r\n if (callback != null) {\r\n if (message.type === MessageType.Completion) {\r\n delete this.callbacks[message.invocationId];\r\n }\r\n callback(message);\r\n }\r\n break;\r\n case MessageType.Ping:\r\n // Don't care about pings\r\n break;\r\n case MessageType.Close:\r\n this.logger.log(LogLevel.Information, \"Close message received from server.\");\r\n // We don't want to wait on the stop itself.\r\n // tslint:disable-next-line:no-floating-promises\r\n this.connection.stop(message.error ? new Error(\"Server returned an error on close: \" + message.error) : undefined);\r\n break;\r\n default:\r\n this.logger.log(LogLevel.Warning, \"Invalid message type: \" + message.type + \".\");\r\n break;\r\n }\r\n }\r\n }\r\n this.resetTimeoutPeriod();\r\n };\r\n HubConnection.prototype.processHandshakeResponse = function (data) {\r\n var _a;\r\n var responseMessage;\r\n var remainingData;\r\n try {\r\n _a = this.handshakeProtocol.parseHandshakeResponse(data), remainingData = _a[0], responseMessage = _a[1];\r\n }\r\n catch (e) {\r\n var message = \"Error parsing handshake response: \" + e;\r\n this.logger.log(LogLevel.Error, message);\r\n var error = new Error(message);\r\n // We don't want to wait on the stop itself.\r\n // tslint:disable-next-line:no-floating-promises\r\n this.connection.stop(error);\r\n this.handshakeRejecter(error);\r\n throw error;\r\n }\r\n if (responseMessage.error) {\r\n var message = \"Server returned handshake error: \" + responseMessage.error;\r\n this.logger.log(LogLevel.Error, message);\r\n this.handshakeRejecter(message);\r\n // We don't want to wait on the stop itself.\r\n // tslint:disable-next-line:no-floating-promises\r\n this.connection.stop(new Error(message));\r\n throw new Error(message);\r\n }\r\n else {\r\n this.logger.log(LogLevel.Debug, \"Server handshake complete.\");\r\n }\r\n this.handshakeResolver();\r\n return remainingData;\r\n };\r\n HubConnection.prototype.resetKeepAliveInterval = function () {\r\n var _this = this;\r\n this.cleanupPingTimer();\r\n this.pingServerHandle = setTimeout(function () { return __awaiter(_this, void 0, void 0, function () {\r\n var _a;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n if (!(this.connectionState === HubConnectionState.Connected)) return [3 /*break*/, 4];\r\n _b.label = 1;\r\n case 1:\r\n _b.trys.push([1, 3, , 4]);\r\n return [4 /*yield*/, this.sendMessage(this.cachedPingMessage)];\r\n case 2:\r\n _b.sent();\r\n return [3 /*break*/, 4];\r\n case 3:\r\n _a = _b.sent();\r\n // We don't care about the error. It should be seen elsewhere in the client.\r\n // The connection is probably in a bad or closed state now, cleanup the timer so it stops triggering\r\n this.cleanupPingTimer();\r\n return [3 /*break*/, 4];\r\n case 4: return [2 /*return*/];\r\n }\r\n });\r\n }); }, this.keepAliveIntervalInMilliseconds);\r\n };\r\n HubConnection.prototype.resetTimeoutPeriod = function () {\r\n var _this = this;\r\n if (!this.connection.features || !this.connection.features.inherentKeepAlive) {\r\n // Set the timeout timer\r\n this.timeoutHandle = setTimeout(function () { return _this.serverTimeout(); }, this.serverTimeoutInMilliseconds);\r\n }\r\n };\r\n HubConnection.prototype.serverTimeout = function () {\r\n // The server hasn't talked to us in a while. It doesn't like us anymore ... :(\r\n // Terminate the connection, but we don't need to wait on the promise.\r\n // tslint:disable-next-line:no-floating-promises\r\n this.connection.stop(new Error(\"Server timeout elapsed without receiving a message from the server.\"));\r\n };\r\n HubConnection.prototype.invokeClientMethod = function (invocationMessage) {\r\n var _this = this;\r\n var methods = this.methods[invocationMessage.target.toLowerCase()];\r\n if (methods) {\r\n methods.forEach(function (m) { return m.apply(_this, invocationMessage.arguments); });\r\n if (invocationMessage.invocationId) {\r\n // This is not supported in v1. So we return an error to avoid blocking the server waiting for the response.\r\n var message = \"Server requested a response, which is not supported in this version of the client.\";\r\n this.logger.log(LogLevel.Error, message);\r\n // We don't need to wait on this Promise.\r\n // tslint:disable-next-line:no-floating-promises\r\n this.connection.stop(new Error(message));\r\n }\r\n }\r\n else {\r\n this.logger.log(LogLevel.Warning, \"No client method with the name '\" + invocationMessage.target + \"' found.\");\r\n }\r\n };\r\n HubConnection.prototype.connectionClosed = function (error) {\r\n var _this = this;\r\n var callbacks = this.callbacks;\r\n this.callbacks = {};\r\n this.connectionState = HubConnectionState.Disconnected;\r\n // if handshake is in progress start will be waiting for the handshake promise, so we complete it\r\n // if it has already completed this should just noop\r\n if (this.handshakeRejecter) {\r\n this.handshakeRejecter(error);\r\n }\r\n Object.keys(callbacks)\r\n .forEach(function (key) {\r\n var callback = callbacks[key];\r\n callback(null, error ? error : new Error(\"Invocation canceled due to connection being closed.\"));\r\n });\r\n this.cleanupTimeout();\r\n this.cleanupPingTimer();\r\n this.closedCallbacks.forEach(function (c) { return c.apply(_this, [error]); });\r\n };\r\n HubConnection.prototype.cleanupPingTimer = function () {\r\n if (this.pingServerHandle) {\r\n clearTimeout(this.pingServerHandle);\r\n }\r\n };\r\n HubConnection.prototype.cleanupTimeout = function () {\r\n if (this.timeoutHandle) {\r\n clearTimeout(this.timeoutHandle);\r\n }\r\n };\r\n HubConnection.prototype.createInvocation = function (methodName, args, nonblocking) {\r\n if (nonblocking) {\r\n return {\r\n arguments: args,\r\n target: methodName,\r\n type: MessageType.Invocation,\r\n };\r\n }\r\n else {\r\n var id = this.id;\r\n this.id++;\r\n return {\r\n arguments: args,\r\n invocationId: id.toString(),\r\n target: methodName,\r\n type: MessageType.Invocation,\r\n };\r\n }\r\n };\r\n HubConnection.prototype.createStreamInvocation = function (methodName, args) {\r\n var id = this.id;\r\n this.id++;\r\n return {\r\n arguments: args,\r\n invocationId: id.toString(),\r\n target: methodName,\r\n type: MessageType.StreamInvocation,\r\n };\r\n };\r\n HubConnection.prototype.createCancelInvocation = function (id) {\r\n return {\r\n invocationId: id,\r\n type: MessageType.CancelInvocation,\r\n };\r\n };\r\n return HubConnection;\r\n}());\r\nexport { HubConnection };\r\n//# sourceMappingURL=HubConnection.js.map","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\n// This will be treated as a bit flag in the future, so we keep it using power-of-two values.\r\n/** Specifies a specific HTTP transport type. */\r\nexport var HttpTransportType;\r\n(function (HttpTransportType) {\r\n /** Specifies no transport preference. */\r\n HttpTransportType[HttpTransportType[\"None\"] = 0] = \"None\";\r\n /** Specifies the WebSockets transport. */\r\n HttpTransportType[HttpTransportType[\"WebSockets\"] = 1] = \"WebSockets\";\r\n /** Specifies the Server-Sent Events transport. */\r\n HttpTransportType[HttpTransportType[\"ServerSentEvents\"] = 2] = \"ServerSentEvents\";\r\n /** Specifies the Long Polling transport. */\r\n HttpTransportType[HttpTransportType[\"LongPolling\"] = 4] = \"LongPolling\";\r\n})(HttpTransportType || (HttpTransportType = {}));\r\n/** Specifies the transfer format for a connection. */\r\nexport var TransferFormat;\r\n(function (TransferFormat) {\r\n /** Specifies that only text data will be transmitted over the connection. */\r\n TransferFormat[TransferFormat[\"Text\"] = 1] = \"Text\";\r\n /** Specifies that binary data will be transmitted over the connection. */\r\n TransferFormat[TransferFormat[\"Binary\"] = 2] = \"Binary\";\r\n})(TransferFormat || (TransferFormat = {}));\r\n//# sourceMappingURL=ITransport.js.map","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\n// Rough polyfill of https://developer.mozilla.org/en-US/docs/Web/API/AbortController\r\n// We don't actually ever use the API being polyfilled, we always use the polyfill because\r\n// it's a very new API right now.\r\n// Not exported from index.\r\n/** @private */\r\nvar AbortController = /** @class */ (function () {\r\n function AbortController() {\r\n this.isAborted = false;\r\n this.onabort = null;\r\n }\r\n AbortController.prototype.abort = function () {\r\n if (!this.isAborted) {\r\n this.isAborted = true;\r\n if (this.onabort) {\r\n this.onabort();\r\n }\r\n }\r\n };\r\n Object.defineProperty(AbortController.prototype, \"signal\", {\r\n get: function () {\r\n return this;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(AbortController.prototype, \"aborted\", {\r\n get: function () {\r\n return this.isAborted;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return AbortController;\r\n}());\r\nexport { AbortController };\r\n//# sourceMappingURL=AbortController.js.map","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __generator = (this && this.__generator) || function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n};\r\nimport { AbortController } from \"./AbortController\";\r\nimport { HttpError, TimeoutError } from \"./Errors\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { TransferFormat } from \"./ITransport\";\r\nimport { Arg, getDataDetail, sendMessage } from \"./Utils\";\r\n// Not exported from 'index', this type is internal.\r\n/** @private */\r\nvar LongPollingTransport = /** @class */ (function () {\r\n function LongPollingTransport(httpClient, accessTokenFactory, logger, logMessageContent) {\r\n this.httpClient = httpClient;\r\n this.accessTokenFactory = accessTokenFactory;\r\n this.logger = logger;\r\n this.pollAbort = new AbortController();\r\n this.logMessageContent = logMessageContent;\r\n this.running = false;\r\n this.onreceive = null;\r\n this.onclose = null;\r\n }\r\n Object.defineProperty(LongPollingTransport.prototype, \"pollAborted\", {\r\n // This is an internal type, not exported from 'index' so this is really just internal.\r\n get: function () {\r\n return this.pollAbort.aborted;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n LongPollingTransport.prototype.connect = function (url, transferFormat) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var pollOptions, token, pollUrl, response;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n Arg.isRequired(url, \"url\");\r\n Arg.isRequired(transferFormat, \"transferFormat\");\r\n Arg.isIn(transferFormat, TransferFormat, \"transferFormat\");\r\n this.url = url;\r\n this.logger.log(LogLevel.Trace, \"(LongPolling transport) Connecting.\");\r\n // Allow binary format on Node and Browsers that support binary content (indicated by the presence of responseType property)\r\n if (transferFormat === TransferFormat.Binary &&\r\n (typeof XMLHttpRequest !== \"undefined\" && typeof new XMLHttpRequest().responseType !== \"string\")) {\r\n throw new Error(\"Binary protocols over XmlHttpRequest not implementing advanced features are not supported.\");\r\n }\r\n pollOptions = {\r\n abortSignal: this.pollAbort.signal,\r\n headers: {},\r\n timeout: 100000,\r\n };\r\n if (transferFormat === TransferFormat.Binary) {\r\n pollOptions.responseType = \"arraybuffer\";\r\n }\r\n return [4 /*yield*/, this.getAccessToken()];\r\n case 1:\r\n token = _a.sent();\r\n this.updateHeaderToken(pollOptions, token);\r\n pollUrl = url + \"&_=\" + Date.now();\r\n this.logger.log(LogLevel.Trace, \"(LongPolling transport) polling: \" + pollUrl + \".\");\r\n return [4 /*yield*/, this.httpClient.get(pollUrl, pollOptions)];\r\n case 2:\r\n response = _a.sent();\r\n if (response.statusCode !== 200) {\r\n this.logger.log(LogLevel.Error, \"(LongPolling transport) Unexpected response code: \" + response.statusCode + \".\");\r\n // Mark running as false so that the poll immediately ends and runs the close logic\r\n this.closeError = new HttpError(response.statusText || \"\", response.statusCode);\r\n this.running = false;\r\n }\r\n else {\r\n this.running = true;\r\n }\r\n this.receiving = this.poll(this.url, pollOptions);\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n LongPollingTransport.prototype.getAccessToken = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n if (!this.accessTokenFactory) return [3 /*break*/, 2];\r\n return [4 /*yield*/, this.accessTokenFactory()];\r\n case 1: return [2 /*return*/, _a.sent()];\r\n case 2: return [2 /*return*/, null];\r\n }\r\n });\r\n });\r\n };\r\n LongPollingTransport.prototype.updateHeaderToken = function (request, token) {\r\n if (!request.headers) {\r\n request.headers = {};\r\n }\r\n if (token) {\r\n // tslint:disable-next-line:no-string-literal\r\n request.headers[\"Authorization\"] = \"Bearer \" + token;\r\n return;\r\n }\r\n // tslint:disable-next-line:no-string-literal\r\n if (request.headers[\"Authorization\"]) {\r\n // tslint:disable-next-line:no-string-literal\r\n delete request.headers[\"Authorization\"];\r\n }\r\n };\r\n LongPollingTransport.prototype.poll = function (url, pollOptions) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var token, pollUrl, response, e_1;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n _a.trys.push([0, , 8, 9]);\r\n _a.label = 1;\r\n case 1:\r\n if (!this.running) return [3 /*break*/, 7];\r\n return [4 /*yield*/, this.getAccessToken()];\r\n case 2:\r\n token = _a.sent();\r\n this.updateHeaderToken(pollOptions, token);\r\n _a.label = 3;\r\n case 3:\r\n _a.trys.push([3, 5, , 6]);\r\n pollUrl = url + \"&_=\" + Date.now();\r\n this.logger.log(LogLevel.Trace, \"(LongPolling transport) polling: \" + pollUrl + \".\");\r\n return [4 /*yield*/, this.httpClient.get(pollUrl, pollOptions)];\r\n case 4:\r\n response = _a.sent();\r\n if (response.statusCode === 204) {\r\n this.logger.log(LogLevel.Information, \"(LongPolling transport) Poll terminated by server.\");\r\n this.running = false;\r\n }\r\n else if (response.statusCode !== 200) {\r\n this.logger.log(LogLevel.Error, \"(LongPolling transport) Unexpected response code: \" + response.statusCode + \".\");\r\n // Unexpected status code\r\n this.closeError = new HttpError(response.statusText || \"\", response.statusCode);\r\n this.running = false;\r\n }\r\n else {\r\n // Process the response\r\n if (response.content) {\r\n this.logger.log(LogLevel.Trace, \"(LongPolling transport) data received. \" + getDataDetail(response.content, this.logMessageContent) + \".\");\r\n if (this.onreceive) {\r\n this.onreceive(response.content);\r\n }\r\n }\r\n else {\r\n // This is another way timeout manifest.\r\n this.logger.log(LogLevel.Trace, \"(LongPolling transport) Poll timed out, reissuing.\");\r\n }\r\n }\r\n return [3 /*break*/, 6];\r\n case 5:\r\n e_1 = _a.sent();\r\n if (!this.running) {\r\n // Log but disregard errors that occur after stopping\r\n this.logger.log(LogLevel.Trace, \"(LongPolling transport) Poll errored after shutdown: \" + e_1.message);\r\n }\r\n else {\r\n if (e_1 instanceof TimeoutError) {\r\n // Ignore timeouts and reissue the poll.\r\n this.logger.log(LogLevel.Trace, \"(LongPolling transport) Poll timed out, reissuing.\");\r\n }\r\n else {\r\n // Close the connection with the error as the result.\r\n this.closeError = e_1;\r\n this.running = false;\r\n }\r\n }\r\n return [3 /*break*/, 6];\r\n case 6: return [3 /*break*/, 1];\r\n case 7: return [3 /*break*/, 9];\r\n case 8:\r\n this.logger.log(LogLevel.Trace, \"(LongPolling transport) Polling complete.\");\r\n // We will reach here with pollAborted==false when the server returned a response causing the transport to stop.\r\n // If pollAborted==true then client initiated the stop and the stop method will raise the close event after DELETE is sent.\r\n if (!this.pollAborted) {\r\n this.raiseOnClose();\r\n }\r\n return [7 /*endfinally*/];\r\n case 9: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n LongPollingTransport.prototype.send = function (data) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n if (!this.running) {\r\n return [2 /*return*/, Promise.reject(new Error(\"Cannot send until the transport is connected\"))];\r\n }\r\n return [2 /*return*/, sendMessage(this.logger, \"LongPolling\", this.httpClient, this.url, this.accessTokenFactory, data, this.logMessageContent)];\r\n });\r\n });\r\n };\r\n LongPollingTransport.prototype.stop = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var deleteOptions, token;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.logger.log(LogLevel.Trace, \"(LongPolling transport) Stopping polling.\");\r\n // Tell receiving loop to stop, abort any current request, and then wait for it to finish\r\n this.running = false;\r\n this.pollAbort.abort();\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, , 5, 6]);\r\n return [4 /*yield*/, this.receiving];\r\n case 2:\r\n _a.sent();\r\n // Send DELETE to clean up long polling on the server\r\n this.logger.log(LogLevel.Trace, \"(LongPolling transport) sending DELETE request to \" + this.url + \".\");\r\n deleteOptions = {\r\n headers: {},\r\n };\r\n return [4 /*yield*/, this.getAccessToken()];\r\n case 3:\r\n token = _a.sent();\r\n this.updateHeaderToken(deleteOptions, token);\r\n return [4 /*yield*/, this.httpClient.delete(this.url, deleteOptions)];\r\n case 4:\r\n _a.sent();\r\n this.logger.log(LogLevel.Trace, \"(LongPolling transport) DELETE request sent.\");\r\n return [3 /*break*/, 6];\r\n case 5:\r\n this.logger.log(LogLevel.Trace, \"(LongPolling transport) Stop finished.\");\r\n // Raise close event here instead of in polling\r\n // It needs to happen after the DELETE request is sent\r\n this.raiseOnClose();\r\n return [7 /*endfinally*/];\r\n case 6: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n LongPollingTransport.prototype.raiseOnClose = function () {\r\n if (this.onclose) {\r\n var logMessage = \"(LongPolling transport) Firing onclose event.\";\r\n if (this.closeError) {\r\n logMessage += \" Error: \" + this.closeError;\r\n }\r\n this.logger.log(LogLevel.Trace, logMessage);\r\n this.onclose(this.closeError);\r\n }\r\n };\r\n return LongPollingTransport;\r\n}());\r\nexport { LongPollingTransport };\r\n//# sourceMappingURL=LongPollingTransport.js.map","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __generator = (this && this.__generator) || function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n};\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { TransferFormat } from \"./ITransport\";\r\nimport { Arg, getDataDetail, sendMessage } from \"./Utils\";\r\n/** @private */\r\nvar ServerSentEventsTransport = /** @class */ (function () {\r\n function ServerSentEventsTransport(httpClient, accessTokenFactory, logger, logMessageContent, eventSourceConstructor) {\r\n this.httpClient = httpClient;\r\n this.accessTokenFactory = accessTokenFactory;\r\n this.logger = logger;\r\n this.logMessageContent = logMessageContent;\r\n this.eventSourceConstructor = eventSourceConstructor;\r\n this.onreceive = null;\r\n this.onclose = null;\r\n }\r\n ServerSentEventsTransport.prototype.connect = function (url, transferFormat) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var token;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n Arg.isRequired(url, \"url\");\r\n Arg.isRequired(transferFormat, \"transferFormat\");\r\n Arg.isIn(transferFormat, TransferFormat, \"transferFormat\");\r\n this.logger.log(LogLevel.Trace, \"(SSE transport) Connecting.\");\r\n // set url before accessTokenFactory because this.url is only for send and we set the auth header instead of the query string for send\r\n this.url = url;\r\n if (!this.accessTokenFactory) return [3 /*break*/, 2];\r\n return [4 /*yield*/, this.accessTokenFactory()];\r\n case 1:\r\n token = _a.sent();\r\n if (token) {\r\n url += (url.indexOf(\"?\") < 0 ? \"?\" : \"&\") + (\"access_token=\" + encodeURIComponent(token));\r\n }\r\n _a.label = 2;\r\n case 2: return [2 /*return*/, new Promise(function (resolve, reject) {\r\n var opened = false;\r\n if (transferFormat !== TransferFormat.Text) {\r\n reject(new Error(\"The Server-Sent Events transport only supports the 'Text' transfer format\"));\r\n return;\r\n }\r\n var eventSource;\r\n if (typeof window !== \"undefined\") {\r\n eventSource = new _this.eventSourceConstructor(url, { withCredentials: true });\r\n }\r\n else {\r\n // Non-browser passes cookies via the dictionary\r\n var cookies = _this.httpClient.getCookieString(url);\r\n eventSource = new _this.eventSourceConstructor(url, { withCredentials: true, headers: { Cookie: cookies } });\r\n }\r\n try {\r\n eventSource.onmessage = function (e) {\r\n if (_this.onreceive) {\r\n try {\r\n _this.logger.log(LogLevel.Trace, \"(SSE transport) data received. \" + getDataDetail(e.data, _this.logMessageContent) + \".\");\r\n _this.onreceive(e.data);\r\n }\r\n catch (error) {\r\n _this.close(error);\r\n return;\r\n }\r\n }\r\n };\r\n eventSource.onerror = function (e) {\r\n var error = new Error(e.data || \"Error occurred\");\r\n if (opened) {\r\n _this.close(error);\r\n }\r\n else {\r\n reject(error);\r\n }\r\n };\r\n eventSource.onopen = function () {\r\n _this.logger.log(LogLevel.Information, \"SSE connected to \" + _this.url);\r\n _this.eventSource = eventSource;\r\n opened = true;\r\n resolve();\r\n };\r\n }\r\n catch (e) {\r\n reject(e);\r\n return;\r\n }\r\n })];\r\n }\r\n });\r\n });\r\n };\r\n ServerSentEventsTransport.prototype.send = function (data) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n if (!this.eventSource) {\r\n return [2 /*return*/, Promise.reject(new Error(\"Cannot send until the transport is connected\"))];\r\n }\r\n return [2 /*return*/, sendMessage(this.logger, \"SSE\", this.httpClient, this.url, this.accessTokenFactory, data, this.logMessageContent)];\r\n });\r\n });\r\n };\r\n ServerSentEventsTransport.prototype.stop = function () {\r\n this.close();\r\n return Promise.resolve();\r\n };\r\n ServerSentEventsTransport.prototype.close = function (e) {\r\n if (this.eventSource) {\r\n this.eventSource.close();\r\n this.eventSource = undefined;\r\n if (this.onclose) {\r\n this.onclose(e);\r\n }\r\n }\r\n };\r\n return ServerSentEventsTransport;\r\n}());\r\nexport { ServerSentEventsTransport };\r\n//# sourceMappingURL=ServerSentEventsTransport.js.map","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __generator = (this && this.__generator) || function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n};\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { TransferFormat } from \"./ITransport\";\r\nimport { Arg, getDataDetail } from \"./Utils\";\r\n/** @private */\r\nvar WebSocketTransport = /** @class */ (function () {\r\n function WebSocketTransport(httpClient, accessTokenFactory, logger, logMessageContent, webSocketConstructor) {\r\n this.logger = logger;\r\n this.accessTokenFactory = accessTokenFactory;\r\n this.logMessageContent = logMessageContent;\r\n this.webSocketConstructor = webSocketConstructor;\r\n this.httpClient = httpClient;\r\n this.onreceive = null;\r\n this.onclose = null;\r\n }\r\n WebSocketTransport.prototype.connect = function (url, transferFormat) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var token;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n Arg.isRequired(url, \"url\");\r\n Arg.isRequired(transferFormat, \"transferFormat\");\r\n Arg.isIn(transferFormat, TransferFormat, \"transferFormat\");\r\n this.logger.log(LogLevel.Trace, \"(WebSockets transport) Connecting.\");\r\n if (!this.accessTokenFactory) return [3 /*break*/, 2];\r\n return [4 /*yield*/, this.accessTokenFactory()];\r\n case 1:\r\n token = _a.sent();\r\n if (token) {\r\n url += (url.indexOf(\"?\") < 0 ? \"?\" : \"&\") + (\"access_token=\" + encodeURIComponent(token));\r\n }\r\n _a.label = 2;\r\n case 2: return [2 /*return*/, new Promise(function (resolve, reject) {\r\n url = url.replace(/^http/, \"ws\");\r\n var webSocket;\r\n var cookies = _this.httpClient.getCookieString(url);\r\n if (typeof window === \"undefined\" && cookies) {\r\n // Only pass cookies when in non-browser environments\r\n webSocket = new _this.webSocketConstructor(url, undefined, {\r\n headers: {\r\n Cookie: \"\" + cookies,\r\n },\r\n });\r\n }\r\n if (!webSocket) {\r\n // Chrome is not happy with passing 'undefined' as protocol\r\n webSocket = new _this.webSocketConstructor(url);\r\n }\r\n if (transferFormat === TransferFormat.Binary) {\r\n webSocket.binaryType = \"arraybuffer\";\r\n }\r\n // tslint:disable-next-line:variable-name\r\n webSocket.onopen = function (_event) {\r\n _this.logger.log(LogLevel.Information, \"WebSocket connected to \" + url + \".\");\r\n _this.webSocket = webSocket;\r\n resolve();\r\n };\r\n webSocket.onerror = function (event) {\r\n var error = null;\r\n // ErrorEvent is a browser only type we need to check if the type exists before using it\r\n if (typeof ErrorEvent !== \"undefined\" && event instanceof ErrorEvent) {\r\n error = event.error;\r\n }\r\n reject(error);\r\n };\r\n webSocket.onmessage = function (message) {\r\n _this.logger.log(LogLevel.Trace, \"(WebSockets transport) data received. \" + getDataDetail(message.data, _this.logMessageContent) + \".\");\r\n if (_this.onreceive) {\r\n _this.onreceive(message.data);\r\n }\r\n };\r\n webSocket.onclose = function (event) { return _this.close(event); };\r\n })];\r\n }\r\n });\r\n });\r\n };\r\n WebSocketTransport.prototype.send = function (data) {\r\n if (this.webSocket && this.webSocket.readyState === this.webSocketConstructor.OPEN) {\r\n this.logger.log(LogLevel.Trace, \"(WebSockets transport) sending data. \" + getDataDetail(data, this.logMessageContent) + \".\");\r\n this.webSocket.send(data);\r\n return Promise.resolve();\r\n }\r\n return Promise.reject(\"WebSocket is not in the OPEN state\");\r\n };\r\n WebSocketTransport.prototype.stop = function () {\r\n if (this.webSocket) {\r\n // Clear websocket handlers because we are considering the socket closed now\r\n this.webSocket.onclose = function () { };\r\n this.webSocket.onmessage = function () { };\r\n this.webSocket.onerror = function () { };\r\n this.webSocket.close();\r\n this.webSocket = undefined;\r\n // Manually invoke onclose callback inline so we know the HttpConnection was closed properly before returning\r\n // This also solves an issue where websocket.onclose could take 18+ seconds to trigger during network disconnects\r\n this.close(undefined);\r\n }\r\n return Promise.resolve();\r\n };\r\n WebSocketTransport.prototype.close = function (event) {\r\n // webSocket will be null if the transport did not start successfully\r\n this.logger.log(LogLevel.Trace, \"(WebSockets transport) socket closed.\");\r\n if (this.onclose) {\r\n if (event && (event.wasClean === false || event.code !== 1000)) {\r\n this.onclose(new Error(\"WebSocket closed with status code: \" + event.code + \" (\" + event.reason + \").\"));\r\n }\r\n else {\r\n this.onclose();\r\n }\r\n }\r\n };\r\n return WebSocketTransport;\r\n}());\r\nexport { WebSocketTransport };\r\n//# sourceMappingURL=WebSocketTransport.js.map","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __generator = (this && this.__generator) || function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n};\r\nimport { DefaultHttpClient } from \"./DefaultHttpClient\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { HttpTransportType, TransferFormat } from \"./ITransport\";\r\nimport { LongPollingTransport } from \"./LongPollingTransport\";\r\nimport { ServerSentEventsTransport } from \"./ServerSentEventsTransport\";\r\nimport { Arg, createLogger } from \"./Utils\";\r\nimport { WebSocketTransport } from \"./WebSocketTransport\";\r\nvar MAX_REDIRECTS = 100;\r\nvar WebSocketModule = null;\r\nvar EventSourceModule = null;\r\nif (typeof window === \"undefined\" && typeof require !== \"undefined\") {\r\n // In order to ignore the dynamic require in webpack builds we need to do this magic\r\n // @ts-ignore: TS doesn't know about these names\r\n var requireFunc = typeof __webpack_require__ === \"function\" ? __non_webpack_require__ : require;\r\n WebSocketModule = requireFunc(\"ws\");\r\n EventSourceModule = requireFunc(\"eventsource\");\r\n}\r\n/** @private */\r\nvar HttpConnection = /** @class */ (function () {\r\n function HttpConnection(url, options) {\r\n if (options === void 0) { options = {}; }\r\n this.features = {};\r\n Arg.isRequired(url, \"url\");\r\n this.logger = createLogger(options.logger);\r\n this.baseUrl = this.resolveUrl(url);\r\n options = options || {};\r\n options.logMessageContent = options.logMessageContent || false;\r\n var isNode = typeof window === \"undefined\";\r\n if (!isNode && typeof WebSocket !== \"undefined\" && !options.WebSocket) {\r\n options.WebSocket = WebSocket;\r\n }\r\n else if (isNode && !options.WebSocket) {\r\n if (WebSocketModule) {\r\n options.WebSocket = WebSocketModule;\r\n }\r\n }\r\n if (!isNode && typeof EventSource !== \"undefined\" && !options.EventSource) {\r\n options.EventSource = EventSource;\r\n }\r\n else if (isNode && !options.EventSource) {\r\n if (typeof EventSourceModule !== \"undefined\") {\r\n options.EventSource = EventSourceModule;\r\n }\r\n }\r\n this.httpClient = options.httpClient || new DefaultHttpClient(this.logger);\r\n this.connectionState = 2 /* Disconnected */;\r\n this.options = options;\r\n this.onreceive = null;\r\n this.onclose = null;\r\n }\r\n HttpConnection.prototype.start = function (transferFormat) {\r\n transferFormat = transferFormat || TransferFormat.Binary;\r\n Arg.isIn(transferFormat, TransferFormat, \"transferFormat\");\r\n this.logger.log(LogLevel.Debug, \"Starting connection with transfer format '\" + TransferFormat[transferFormat] + \"'.\");\r\n if (this.connectionState !== 2 /* Disconnected */) {\r\n return Promise.reject(new Error(\"Cannot start a connection that is not in the 'Disconnected' state.\"));\r\n }\r\n this.connectionState = 0 /* Connecting */;\r\n this.startPromise = this.startInternal(transferFormat);\r\n return this.startPromise;\r\n };\r\n HttpConnection.prototype.send = function (data) {\r\n if (this.connectionState !== 1 /* Connected */) {\r\n throw new Error(\"Cannot send data if the connection is not in the 'Connected' State.\");\r\n }\r\n // Transport will not be null if state is connected\r\n return this.transport.send(data);\r\n };\r\n HttpConnection.prototype.stop = function (error) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var e_1;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.connectionState = 2 /* Disconnected */;\r\n // Set error as soon as possible otherwise there is a race between\r\n // the transport closing and providing an error and the error from a close message\r\n // We would prefer the close message error.\r\n this.stopError = error;\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 3, , 4]);\r\n return [4 /*yield*/, this.startPromise];\r\n case 2:\r\n _a.sent();\r\n return [3 /*break*/, 4];\r\n case 3:\r\n e_1 = _a.sent();\r\n return [3 /*break*/, 4];\r\n case 4:\r\n if (!this.transport) return [3 /*break*/, 6];\r\n return [4 /*yield*/, this.transport.stop()];\r\n case 5:\r\n _a.sent();\r\n this.transport = undefined;\r\n _a.label = 6;\r\n case 6: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n HttpConnection.prototype.startInternal = function (transferFormat) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var url, negotiateResponse, redirects, _loop_1, this_1, state_1, e_2;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n url = this.baseUrl;\r\n this.accessTokenFactory = this.options.accessTokenFactory;\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 12, , 13]);\r\n if (!this.options.skipNegotiation) return [3 /*break*/, 5];\r\n if (!(this.options.transport === HttpTransportType.WebSockets)) return [3 /*break*/, 3];\r\n // No need to add a connection ID in this case\r\n this.transport = this.constructTransport(HttpTransportType.WebSockets);\r\n // We should just call connect directly in this case.\r\n // No fallback or negotiate in this case.\r\n return [4 /*yield*/, this.transport.connect(url, transferFormat)];\r\n case 2:\r\n // We should just call connect directly in this case.\r\n // No fallback or negotiate in this case.\r\n _a.sent();\r\n return [3 /*break*/, 4];\r\n case 3: throw Error(\"Negotiation can only be skipped when using the WebSocket transport directly.\");\r\n case 4: return [3 /*break*/, 11];\r\n case 5:\r\n negotiateResponse = null;\r\n redirects = 0;\r\n _loop_1 = function () {\r\n var accessToken_1;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this_1.getNegotiationResponse(url)];\r\n case 1:\r\n negotiateResponse = _a.sent();\r\n // the user tries to stop the connection when it is being started\r\n if (this_1.connectionState === 2 /* Disconnected */) {\r\n return [2 /*return*/, { value: void 0 }];\r\n }\r\n if (negotiateResponse.error) {\r\n throw Error(negotiateResponse.error);\r\n }\r\n if (negotiateResponse.ProtocolVersion) {\r\n throw Error(\"Detected a connection attempt to an ASP.NET SignalR Server. This client only supports connecting to an ASP.NET Core SignalR Server. See https://aka.ms/signalr-core-differences for details.\");\r\n }\r\n if (negotiateResponse.url) {\r\n url = negotiateResponse.url;\r\n }\r\n if (negotiateResponse.accessToken) {\r\n accessToken_1 = negotiateResponse.accessToken;\r\n this_1.accessTokenFactory = function () { return accessToken_1; };\r\n }\r\n redirects++;\r\n return [2 /*return*/];\r\n }\r\n });\r\n };\r\n this_1 = this;\r\n _a.label = 6;\r\n case 6: return [5 /*yield**/, _loop_1()];\r\n case 7:\r\n state_1 = _a.sent();\r\n if (typeof state_1 === \"object\")\r\n return [2 /*return*/, state_1.value];\r\n _a.label = 8;\r\n case 8:\r\n if (negotiateResponse.url && redirects < MAX_REDIRECTS) return [3 /*break*/, 6];\r\n _a.label = 9;\r\n case 9:\r\n if (redirects === MAX_REDIRECTS && negotiateResponse.url) {\r\n throw Error(\"Negotiate redirection limit exceeded.\");\r\n }\r\n return [4 /*yield*/, this.createTransport(url, this.options.transport, negotiateResponse, transferFormat)];\r\n case 10:\r\n _a.sent();\r\n _a.label = 11;\r\n case 11:\r\n if (this.transport instanceof LongPollingTransport) {\r\n this.features.inherentKeepAlive = true;\r\n }\r\n this.transport.onreceive = this.onreceive;\r\n this.transport.onclose = function (e) { return _this.stopConnection(e); };\r\n // only change the state if we were connecting to not overwrite\r\n // the state if the connection is already marked as Disconnected\r\n this.changeState(0 /* Connecting */, 1 /* Connected */);\r\n return [3 /*break*/, 13];\r\n case 12:\r\n e_2 = _a.sent();\r\n this.logger.log(LogLevel.Error, \"Failed to start the connection: \" + e_2);\r\n this.connectionState = 2 /* Disconnected */;\r\n this.transport = undefined;\r\n throw e_2;\r\n case 13: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n HttpConnection.prototype.getNegotiationResponse = function (url) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var _a, headers, token, negotiateUrl, response, e_3;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n if (!this.accessTokenFactory) return [3 /*break*/, 2];\r\n return [4 /*yield*/, this.accessTokenFactory()];\r\n case 1:\r\n token = _b.sent();\r\n if (token) {\r\n headers = (_a = {},\r\n _a[\"Authorization\"] = \"Bearer \" + token,\r\n _a);\r\n }\r\n _b.label = 2;\r\n case 2:\r\n negotiateUrl = this.resolveNegotiateUrl(url);\r\n this.logger.log(LogLevel.Debug, \"Sending negotiation request: \" + negotiateUrl + \".\");\r\n _b.label = 3;\r\n case 3:\r\n _b.trys.push([3, 5, , 6]);\r\n return [4 /*yield*/, this.httpClient.post(negotiateUrl, {\r\n content: \"\",\r\n headers: headers,\r\n })];\r\n case 4:\r\n response = _b.sent();\r\n if (response.statusCode !== 200) {\r\n throw Error(\"Unexpected status code returned from negotiate \" + response.statusCode);\r\n }\r\n return [2 /*return*/, JSON.parse(response.content)];\r\n case 5:\r\n e_3 = _b.sent();\r\n this.logger.log(LogLevel.Error, \"Failed to complete negotiation with the server: \" + e_3);\r\n throw e_3;\r\n case 6: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n HttpConnection.prototype.createConnectUrl = function (url, connectionId) {\r\n if (!connectionId) {\r\n return url;\r\n }\r\n return url + (url.indexOf(\"?\") === -1 ? \"?\" : \"&\") + (\"id=\" + connectionId);\r\n };\r\n HttpConnection.prototype.createTransport = function (url, requestedTransport, negotiateResponse, requestedTransferFormat) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var connectUrl, transports, _i, transports_1, endpoint, transport, ex_1;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n connectUrl = this.createConnectUrl(url, negotiateResponse.connectionId);\r\n if (!this.isITransport(requestedTransport)) return [3 /*break*/, 2];\r\n this.logger.log(LogLevel.Debug, \"Connection was provided an instance of ITransport, using that directly.\");\r\n this.transport = requestedTransport;\r\n return [4 /*yield*/, this.transport.connect(connectUrl, requestedTransferFormat)];\r\n case 1:\r\n _a.sent();\r\n // only change the state if we were connecting to not overwrite\r\n // the state if the connection is already marked as Disconnected\r\n this.changeState(0 /* Connecting */, 1 /* Connected */);\r\n return [2 /*return*/];\r\n case 2:\r\n transports = negotiateResponse.availableTransports || [];\r\n _i = 0, transports_1 = transports;\r\n _a.label = 3;\r\n case 3:\r\n if (!(_i < transports_1.length)) return [3 /*break*/, 9];\r\n endpoint = transports_1[_i];\r\n this.connectionState = 0 /* Connecting */;\r\n transport = this.resolveTransport(endpoint, requestedTransport, requestedTransferFormat);\r\n if (!(typeof transport === \"number\")) return [3 /*break*/, 8];\r\n this.transport = this.constructTransport(transport);\r\n if (!!negotiateResponse.connectionId) return [3 /*break*/, 5];\r\n return [4 /*yield*/, this.getNegotiationResponse(url)];\r\n case 4:\r\n negotiateResponse = _a.sent();\r\n connectUrl = this.createConnectUrl(url, negotiateResponse.connectionId);\r\n _a.label = 5;\r\n case 5:\r\n _a.trys.push([5, 7, , 8]);\r\n return [4 /*yield*/, this.transport.connect(connectUrl, requestedTransferFormat)];\r\n case 6:\r\n _a.sent();\r\n this.changeState(0 /* Connecting */, 1 /* Connected */);\r\n return [2 /*return*/];\r\n case 7:\r\n ex_1 = _a.sent();\r\n this.logger.log(LogLevel.Error, \"Failed to start the transport '\" + HttpTransportType[transport] + \"': \" + ex_1);\r\n this.connectionState = 2 /* Disconnected */;\r\n negotiateResponse.connectionId = undefined;\r\n return [3 /*break*/, 8];\r\n case 8:\r\n _i++;\r\n return [3 /*break*/, 3];\r\n case 9: throw new Error(\"Unable to initialize any of the available transports.\");\r\n }\r\n });\r\n });\r\n };\r\n HttpConnection.prototype.constructTransport = function (transport) {\r\n switch (transport) {\r\n case HttpTransportType.WebSockets:\r\n if (!this.options.WebSocket) {\r\n throw new Error(\"'WebSocket' is not supported in your environment.\");\r\n }\r\n return new WebSocketTransport(this.httpClient, this.accessTokenFactory, this.logger, this.options.logMessageContent || false, this.options.WebSocket);\r\n case HttpTransportType.ServerSentEvents:\r\n if (!this.options.EventSource) {\r\n throw new Error(\"'EventSource' is not supported in your environment.\");\r\n }\r\n return new ServerSentEventsTransport(this.httpClient, this.accessTokenFactory, this.logger, this.options.logMessageContent || false, this.options.EventSource);\r\n case HttpTransportType.LongPolling:\r\n return new LongPollingTransport(this.httpClient, this.accessTokenFactory, this.logger, this.options.logMessageContent || false);\r\n default:\r\n throw new Error(\"Unknown transport: \" + transport + \".\");\r\n }\r\n };\r\n HttpConnection.prototype.resolveTransport = function (endpoint, requestedTransport, requestedTransferFormat) {\r\n var transport = HttpTransportType[endpoint.transport];\r\n if (transport === null || transport === undefined) {\r\n this.logger.log(LogLevel.Debug, \"Skipping transport '\" + endpoint.transport + \"' because it is not supported by this client.\");\r\n }\r\n else {\r\n var transferFormats = endpoint.transferFormats.map(function (s) { return TransferFormat[s]; });\r\n if (transportMatches(requestedTransport, transport)) {\r\n if (transferFormats.indexOf(requestedTransferFormat) >= 0) {\r\n if ((transport === HttpTransportType.WebSockets && !this.options.WebSocket) ||\r\n (transport === HttpTransportType.ServerSentEvents && !this.options.EventSource)) {\r\n this.logger.log(LogLevel.Debug, \"Skipping transport '\" + HttpTransportType[transport] + \"' because it is not supported in your environment.'\");\r\n }\r\n else {\r\n this.logger.log(LogLevel.Debug, \"Selecting transport '\" + HttpTransportType[transport] + \"'.\");\r\n return transport;\r\n }\r\n }\r\n else {\r\n this.logger.log(LogLevel.Debug, \"Skipping transport '\" + HttpTransportType[transport] + \"' because it does not support the requested transfer format '\" + TransferFormat[requestedTransferFormat] + \"'.\");\r\n }\r\n }\r\n else {\r\n this.logger.log(LogLevel.Debug, \"Skipping transport '\" + HttpTransportType[transport] + \"' because it was disabled by the client.\");\r\n }\r\n }\r\n return null;\r\n };\r\n HttpConnection.prototype.isITransport = function (transport) {\r\n return transport && typeof (transport) === \"object\" && \"connect\" in transport;\r\n };\r\n HttpConnection.prototype.changeState = function (from, to) {\r\n if (this.connectionState === from) {\r\n this.connectionState = to;\r\n return true;\r\n }\r\n return false;\r\n };\r\n HttpConnection.prototype.stopConnection = function (error) {\r\n this.transport = undefined;\r\n // If we have a stopError, it takes precedence over the error from the transport\r\n error = this.stopError || error;\r\n if (error) {\r\n this.logger.log(LogLevel.Error, \"Connection disconnected with error '\" + error + \"'.\");\r\n }\r\n else {\r\n this.logger.log(LogLevel.Information, \"Connection disconnected.\");\r\n }\r\n this.connectionState = 2 /* Disconnected */;\r\n if (this.onclose) {\r\n this.onclose(error);\r\n }\r\n };\r\n HttpConnection.prototype.resolveUrl = function (url) {\r\n // startsWith is not supported in IE\r\n if (url.lastIndexOf(\"https://\", 0) === 0 || url.lastIndexOf(\"http://\", 0) === 0) {\r\n return url;\r\n }\r\n if (typeof window === \"undefined\" || !window || !window.document) {\r\n throw new Error(\"Cannot resolve '\" + url + \"'.\");\r\n }\r\n // Setting the url to the href propery of an anchor tag handles normalization\r\n // for us. There are 3 main cases.\r\n // 1. Relative path normalization e.g \"b\" -> \"http://localhost:5000/a/b\"\r\n // 2. Absolute path normalization e.g \"/a/b\" -> \"http://localhost:5000/a/b\"\r\n // 3. Networkpath reference normalization e.g \"//localhost:5000/a/b\" -> \"http://localhost:5000/a/b\"\r\n var aTag = window.document.createElement(\"a\");\r\n aTag.href = url;\r\n this.logger.log(LogLevel.Information, \"Normalizing '\" + url + \"' to '\" + aTag.href + \"'.\");\r\n return aTag.href;\r\n };\r\n HttpConnection.prototype.resolveNegotiateUrl = function (url) {\r\n var index = url.indexOf(\"?\");\r\n var negotiateUrl = url.substring(0, index === -1 ? url.length : index);\r\n if (negotiateUrl[negotiateUrl.length - 1] !== \"/\") {\r\n negotiateUrl += \"/\";\r\n }\r\n negotiateUrl += \"negotiate\";\r\n negotiateUrl += index === -1 ? \"\" : url.substring(index);\r\n return negotiateUrl;\r\n };\r\n return HttpConnection;\r\n}());\r\nexport { HttpConnection };\r\nfunction transportMatches(requestedTransport, actualTransport) {\r\n return !requestedTransport || ((actualTransport & requestedTransport) !== 0);\r\n}\r\n//# sourceMappingURL=HttpConnection.js.map","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\nimport { MessageType } from \"./IHubProtocol\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { TransferFormat } from \"./ITransport\";\r\nimport { NullLogger } from \"./Loggers\";\r\nimport { TextMessageFormat } from \"./TextMessageFormat\";\r\nvar JSON_HUB_PROTOCOL_NAME = \"json\";\r\n/** Implements the JSON Hub Protocol. */\r\nvar JsonHubProtocol = /** @class */ (function () {\r\n function JsonHubProtocol() {\r\n /** @inheritDoc */\r\n this.name = JSON_HUB_PROTOCOL_NAME;\r\n /** @inheritDoc */\r\n this.version = 1;\r\n /** @inheritDoc */\r\n this.transferFormat = TransferFormat.Text;\r\n }\r\n /** Creates an array of {@link @aspnet/signalr.HubMessage} objects from the specified serialized representation.\r\n *\r\n * @param {string} input A string containing the serialized representation.\r\n * @param {ILogger} logger A logger that will be used to log messages that occur during parsing.\r\n */\r\n JsonHubProtocol.prototype.parseMessages = function (input, logger) {\r\n // The interface does allow \"ArrayBuffer\" to be passed in, but this implementation does not. So let's throw a useful error.\r\n if (typeof input !== \"string\") {\r\n throw new Error(\"Invalid input for JSON hub protocol. Expected a string.\");\r\n }\r\n if (!input) {\r\n return [];\r\n }\r\n if (logger === null) {\r\n logger = NullLogger.instance;\r\n }\r\n // Parse the messages\r\n var messages = TextMessageFormat.parse(input);\r\n var hubMessages = [];\r\n for (var _i = 0, messages_1 = messages; _i < messages_1.length; _i++) {\r\n var message = messages_1[_i];\r\n var parsedMessage = JSON.parse(message);\r\n if (typeof parsedMessage.type !== \"number\") {\r\n throw new Error(\"Invalid payload.\");\r\n }\r\n switch (parsedMessage.type) {\r\n case MessageType.Invocation:\r\n this.isInvocationMessage(parsedMessage);\r\n break;\r\n case MessageType.StreamItem:\r\n this.isStreamItemMessage(parsedMessage);\r\n break;\r\n case MessageType.Completion:\r\n this.isCompletionMessage(parsedMessage);\r\n break;\r\n case MessageType.Ping:\r\n // Single value, no need to validate\r\n break;\r\n case MessageType.Close:\r\n // All optional values, no need to validate\r\n break;\r\n default:\r\n // Future protocol changes can add message types, old clients can ignore them\r\n logger.log(LogLevel.Information, \"Unknown message type '\" + parsedMessage.type + \"' ignored.\");\r\n continue;\r\n }\r\n hubMessages.push(parsedMessage);\r\n }\r\n return hubMessages;\r\n };\r\n /** Writes the specified {@link @aspnet/signalr.HubMessage} to a string and returns it.\r\n *\r\n * @param {HubMessage} message The message to write.\r\n * @returns {string} A string containing the serialized representation of the message.\r\n */\r\n JsonHubProtocol.prototype.writeMessage = function (message) {\r\n return TextMessageFormat.write(JSON.stringify(message));\r\n };\r\n JsonHubProtocol.prototype.isInvocationMessage = function (message) {\r\n this.assertNotEmptyString(message.target, \"Invalid payload for Invocation message.\");\r\n if (message.invocationId !== undefined) {\r\n this.assertNotEmptyString(message.invocationId, \"Invalid payload for Invocation message.\");\r\n }\r\n };\r\n JsonHubProtocol.prototype.isStreamItemMessage = function (message) {\r\n this.assertNotEmptyString(message.invocationId, \"Invalid payload for StreamItem message.\");\r\n if (message.item === undefined) {\r\n throw new Error(\"Invalid payload for StreamItem message.\");\r\n }\r\n };\r\n JsonHubProtocol.prototype.isCompletionMessage = function (message) {\r\n if (message.result && message.error) {\r\n throw new Error(\"Invalid payload for Completion message.\");\r\n }\r\n if (!message.result && message.error) {\r\n this.assertNotEmptyString(message.error, \"Invalid payload for Completion message.\");\r\n }\r\n this.assertNotEmptyString(message.invocationId, \"Invalid payload for Completion message.\");\r\n };\r\n JsonHubProtocol.prototype.assertNotEmptyString = function (value, errorMessage) {\r\n if (typeof value !== \"string\" || value === \"\") {\r\n throw new Error(errorMessage);\r\n }\r\n };\r\n return JsonHubProtocol;\r\n}());\r\nexport { JsonHubProtocol };\r\n//# sourceMappingURL=JsonHubProtocol.js.map","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\nimport { HttpConnection } from \"./HttpConnection\";\r\nimport { HubConnection } from \"./HubConnection\";\r\nimport { JsonHubProtocol } from \"./JsonHubProtocol\";\r\nimport { NullLogger } from \"./Loggers\";\r\nimport { Arg, ConsoleLogger } from \"./Utils\";\r\n/** A builder for configuring {@link @aspnet/signalr.HubConnection} instances. */\r\nvar HubConnectionBuilder = /** @class */ (function () {\r\n function HubConnectionBuilder() {\r\n }\r\n HubConnectionBuilder.prototype.configureLogging = function (logging) {\r\n Arg.isRequired(logging, \"logging\");\r\n if (isLogger(logging)) {\r\n this.logger = logging;\r\n }\r\n else {\r\n this.logger = new ConsoleLogger(logging);\r\n }\r\n return this;\r\n };\r\n HubConnectionBuilder.prototype.withUrl = function (url, transportTypeOrOptions) {\r\n Arg.isRequired(url, \"url\");\r\n this.url = url;\r\n // Flow-typing knows where it's at. Since HttpTransportType is a number and IHttpConnectionOptions is guaranteed\r\n // to be an object, we know (as does TypeScript) this comparison is all we need to figure out which overload was called.\r\n if (typeof transportTypeOrOptions === \"object\") {\r\n this.httpConnectionOptions = transportTypeOrOptions;\r\n }\r\n else {\r\n this.httpConnectionOptions = {\r\n transport: transportTypeOrOptions,\r\n };\r\n }\r\n return this;\r\n };\r\n /** Configures the {@link @aspnet/signalr.HubConnection} to use the specified Hub Protocol.\r\n *\r\n * @param {IHubProtocol} protocol The {@link @aspnet/signalr.IHubProtocol} implementation to use.\r\n */\r\n HubConnectionBuilder.prototype.withHubProtocol = function (protocol) {\r\n Arg.isRequired(protocol, \"protocol\");\r\n this.protocol = protocol;\r\n return this;\r\n };\r\n /** Creates a {@link @aspnet/signalr.HubConnection} from the configuration options specified in this builder.\r\n *\r\n * @returns {HubConnection} The configured {@link @aspnet/signalr.HubConnection}.\r\n */\r\n HubConnectionBuilder.prototype.build = function () {\r\n // If httpConnectionOptions has a logger, use it. Otherwise, override it with the one\r\n // provided to configureLogger\r\n var httpConnectionOptions = this.httpConnectionOptions || {};\r\n // If it's 'null', the user **explicitly** asked for null, don't mess with it.\r\n if (httpConnectionOptions.logger === undefined) {\r\n // If our logger is undefined or null, that's OK, the HttpConnection constructor will handle it.\r\n httpConnectionOptions.logger = this.logger;\r\n }\r\n // Now create the connection\r\n if (!this.url) {\r\n throw new Error(\"The 'HubConnectionBuilder.withUrl' method must be called before building the connection.\");\r\n }\r\n var connection = new HttpConnection(this.url, httpConnectionOptions);\r\n return HubConnection.create(connection, this.logger || NullLogger.instance, this.protocol || new JsonHubProtocol());\r\n };\r\n return HubConnectionBuilder;\r\n}());\r\nexport { HubConnectionBuilder };\r\nfunction isLogger(logger) {\r\n return logger.log !== undefined;\r\n}\r\n//# sourceMappingURL=HubConnectionBuilder.js.map","import { HubConnectionBuilder, LogLevel } from '@aspnet/signalr';\r\nimport EventAggregator from './EventAggregator';\r\nimport { concatSlash } from './Utils';\r\nimport Log from '../../utils/log';\r\nimport { notifyConnectionError, setConnectionErrorCallback } from './connectionError';\r\n\r\nconst Aggregator = new EventAggregator();\r\n\r\nlet connection = null;\r\n\r\nexport const disconnettiSignalR = () => {\r\n if (connection) connection.stop();\r\n};\r\n\r\nlet tentativi = 0;\r\n\r\nconst avviaConnessione = (con) => {\r\n if (tentativi > 20) {\r\n // eslint-disable-next-line max-len\r\n notifyConnectionError('Non è stato possibile creare una connessione permanente con il server. Verificare di non avere antivirus che blocchino le connessioni o problemi con la rete.');\r\n tentativi = 0;\r\n }\r\n\r\n // / random delay prima della connessione per evitare riconnessioni in massa\r\n const delay = Math.floor(Math.random() * 2 * tentativi);\r\n\r\n setTimeout(() => {\r\n con\r\n .start()\r\n .catch((err) => Log.error(err.toString()));\r\n }, delay * 1000);\r\n\r\n tentativi += 1;\r\n};\r\n\r\n/**\r\n * Avvia connessione.\r\n * @param {string=} idUtente Identificativo utente passato poi all'Hub in query string\r\n * @param {string=} url Url per la connessione ad un Hub SignalR\r\n * @param {string=} accessToken AccessToken utilizzato per l'autenticazione con il server.\r\n * Se specificato il livello di log viene alzato da Information a Warning.\r\n * Vedere https://docs.microsoft.com/it-it/aspnet/core/signalr/security?view=aspnetcore-2.1#access-token-logging\r\n * @param {string=} gruppi eventuale parametro per specificare il gruppo di appartenenza.\r\n */\r\nexport const connettiSignalR = (idUtente = undefined, url = undefined, accessToken = undefined, gruppi = undefined) => {\r\n let pathName = window.location.pathname;\r\n pathName = pathName.length > 1 ? pathName : '';\r\n let connUrl = concatSlash(url || pathName);\r\n connUrl = `${connUrl}notifications${gruppi ? `?gruppi=${gruppi}` : ''}`;\r\n if (accessToken) {\r\n connection = new HubConnectionBuilder()\r\n .withUrl(connUrl, { accessTokenFactory: () => accessToken })\r\n .configureLogging(LogLevel.Warning)\r\n .build();\r\n } else {\r\n connection = new HubConnectionBuilder()\r\n .withUrl(connUrl)\r\n .configureLogging(LogLevel.Information)\r\n .build();\r\n }\r\n if (idUtente) {\r\n connection.qs = { UserId: idUtente };\r\n }\r\n connection.on('Notify', (evt, data) => {\r\n Aggregator.pubblica(evt, data);\r\n });\r\n connection.onclose(() => avviaConnessione(connection));\r\n avviaConnessione(connection);\r\n};\r\n\r\nAggregator.connettiSignalR = connettiSignalR;\r\nAggregator.disconnettiSignalR = disconnettiSignalR;\r\nAggregator.setConnectionErrorCallback = setConnectionErrorCallback;\r\n\r\nexport default Aggregator;\r\n","class EventAggregator {\r\n events = {};\r\n\r\n // #### registra\r\n // Registra un evento ( passato come stringa o costruttore) specificando\r\n // la callback da invocare ad ogni sua emissione ed un opzionale\r\n // contesto di esecuzione per la callback\r\n subscribe = (event, callback, ctx) => {\r\n const eventName = this.getEventName(event);\r\n if (this.events[eventName] === undefined) {\r\n this.events[eventName] = [];\r\n }\r\n\r\n this.events[eventName] = this.events[eventName].concat([{ callback, context: ctx }]);\r\n\r\n return this;\r\n };\r\n\r\n // #### disdici\r\n // Disdici la registrazione ad un evento di una callback in\r\n // modo tale che successive emissioni dell'evento non\r\n // ne causino l'invocazione\r\n unsubscribe = (event, callback, ctx) => {\r\n const eventName = this.getEventName(event);\r\n\r\n let i = 0;\r\n for (i = 0; i < this.events[eventName].length; i += 1) {\r\n if (this.events[eventName][i].callback === callback) {\r\n this.events[eventName].splice(i, 1);\r\n return this;\r\n }\r\n }\r\n\r\n return this;\r\n };\r\n\r\n // #### pubblica\r\n // Pubblica un evento sull'aggregatore eventi e scatena\r\n // tutte le funzioni che si sono registrate per l'evento\r\n // passato come parametro\r\n pubblica = (event, ...args) => {\r\n const eventName = this.getEventName(event);\r\n let params = args;\r\n\r\n if (event !== eventName) {\r\n params = Array.prototype.slice.apply(params);\r\n params.unshift(eventName);\r\n }\r\n\r\n let i = 0;\r\n if (this.events[eventName] !== undefined) {\r\n for (i = 0; i < this.events[eventName].length; i += 1) {\r\n this.events[eventName][i].callback\r\n .call(this.events[eventName][i].context || this, params[0]);\r\n }\r\n }\r\n\r\n return this;\r\n };\r\n\r\n // #### _nomeEvento\r\n // Helper utilizzato per recuperare il nome di un evento analizzandolo\r\n // eslint-disable-next-line class-methods-use-this\r\n getEventName = (event) => {\r\n if (typeof (event) === 'string') {\r\n return event;\r\n }\r\n if (typeof (event) === 'function') {\r\n return event.name;\r\n }\r\n return event.constructor.name;\r\n };\r\n}\r\n\r\nexport default EventAggregator;\r\n","export function concatSlash(string) {\r\n let result = string;\r\n if (result && !result.endsWith('/')) {\r\n result += '/';\r\n }\r\n return result;\r\n}\r\n\r\n\r\nclass UrlNormalizer {\r\n properties = {\r\n endsWithSlash: undefined,\r\n }\r\n\r\n context = {\r\n not: false,\r\n }\r\n\r\n apply(url) {\r\n if (typeof url !== 'string') return url;\r\n let normalized = url;\r\n\r\n if (this.properties.endsWithSlash !== undefined) {\r\n if (this.properties.endsWithSlash && !normalized.endsWith('/')) normalized += '/';\r\n if (!this.properties.endsWithSlash && normalized.endsWith('/')) {\r\n normalized = normalized.substring(0, normalized.length - 1);\r\n }\r\n }\r\n\r\n return normalized;\r\n }\r\n\r\n endsWithSlash() {\r\n this.properties.endsWithSlash = !this.context.not;\r\n this.context.not = false;\r\n return this;\r\n }\r\n\r\n not() {\r\n this.context.not = true;\r\n return this;\r\n }\r\n}\r\n\r\n/**\r\n * Può \"normalizzare\" un url applicando alcune trasformazioni.\r\n * @see UrlNormalizer\r\n * @example\r\n * normalizer().endsWithSlash().apply('http://pratiche.uat1.cgn.it/')\r\n * normalizer().not().endsWithSlash().apply('http://pratiche.uat1.cgn.it/')\r\n */\r\nexport function normalizer() {\r\n return new UrlNormalizer();\r\n}\r\n","export const Types = {\r\n SUCCESS: 0,\r\n ERROR: 1,\r\n WARNING: 2,\r\n MASSIVA: 3,\r\n};\r\n\r\nexport const Timeout = {\r\n SUCCESS: 5000,\r\n ERROR: 10000,\r\n WARNING: 5000,\r\n MASSIVA: 5000,\r\n};\r\n\r\nexport const StatoOperazione = {\r\n PENDING: 0,\r\n COMPLETED: 1,\r\n};\r\n\r\nexport const MAX_TEXT_LENGTH = 77;\r\n\r\nexport const PENDING_OPERATION = 'Elaborazione in corso...';\r\n\r\nexport const COMPLETED_OPERATION = 'Elaborazione terminata';\r\n","function _assertThisInitialized(e) {\n if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return e;\n}\nexport { _assertThisInitialized as default };","import React from 'react';\nexport default React.createContext(null);","import { Children, cloneElement, isValidElement } from 'react';\n/**\n * Given `this.props.children`, return an object mapping key to child.\n *\n * @param {*} children `this.props.children`\n * @return {object} Mapping of key to child\n */\n\nexport function getChildMapping(children, mapFn) {\n var mapper = function mapper(child) {\n return mapFn && isValidElement(child) ? mapFn(child) : child;\n };\n\n var result = Object.create(null);\n if (children) Children.map(children, function (c) {\n return c;\n }).forEach(function (child) {\n // run the map function here instead so that the key is the computed one\n result[child.key] = mapper(child);\n });\n return result;\n}\n/**\n * When you're adding or removing children some may be added or removed in the\n * same render pass. We want to show *both* since we want to simultaneously\n * animate elements in and out. This function takes a previous set of keys\n * and a new set of keys and merges them with its best guess of the correct\n * ordering. In the future we may expose some of the utilities in\n * ReactMultiChild to make this easy, but for now React itself does not\n * directly have this concept of the union of prevChildren and nextChildren\n * so we implement it here.\n *\n * @param {object} prev prev children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @param {object} next next children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @return {object} a key set that contains all keys in `prev` and all keys\n * in `next` in a reasonable order.\n */\n\nexport function mergeChildMappings(prev, next) {\n prev = prev || {};\n next = next || {};\n\n function getValueForKey(key) {\n return key in next ? next[key] : prev[key];\n } // For each key of `next`, the list of keys to insert before that key in\n // the combined list\n\n\n var nextKeysPending = Object.create(null);\n var pendingKeys = [];\n\n for (var prevKey in prev) {\n if (prevKey in next) {\n if (pendingKeys.length) {\n nextKeysPending[prevKey] = pendingKeys;\n pendingKeys = [];\n }\n } else {\n pendingKeys.push(prevKey);\n }\n }\n\n var i;\n var childMapping = {};\n\n for (var nextKey in next) {\n if (nextKeysPending[nextKey]) {\n for (i = 0; i < nextKeysPending[nextKey].length; i++) {\n var pendingNextKey = nextKeysPending[nextKey][i];\n childMapping[nextKeysPending[nextKey][i]] = getValueForKey(pendingNextKey);\n }\n }\n\n childMapping[nextKey] = getValueForKey(nextKey);\n } // Finally, add the keys which didn't appear before any key in `next`\n\n\n for (i = 0; i < pendingKeys.length; i++) {\n childMapping[pendingKeys[i]] = getValueForKey(pendingKeys[i]);\n }\n\n return childMapping;\n}\n\nfunction getProp(child, prop, props) {\n return props[prop] != null ? props[prop] : child.props[prop];\n}\n\nexport function getInitialChildMapping(props, onExited) {\n return getChildMapping(props.children, function (child) {\n return cloneElement(child, {\n onExited: onExited.bind(null, child),\n in: true,\n appear: getProp(child, 'appear', props),\n enter: getProp(child, 'enter', props),\n exit: getProp(child, 'exit', props)\n });\n });\n}\nexport function getNextChildMapping(nextProps, prevChildMapping, onExited) {\n var nextChildMapping = getChildMapping(nextProps.children);\n var children = mergeChildMappings(prevChildMapping, nextChildMapping);\n Object.keys(children).forEach(function (key) {\n var child = children[key];\n if (!isValidElement(child)) return;\n var hasPrev = key in prevChildMapping;\n var hasNext = key in nextChildMapping;\n var prevChild = prevChildMapping[key];\n var isLeaving = isValidElement(prevChild) && !prevChild.props.in; // item is new (entering)\n\n if (hasNext && (!hasPrev || isLeaving)) {\n // console.log('entering', key)\n children[key] = cloneElement(child, {\n onExited: onExited.bind(null, child),\n in: true,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n } else if (!hasNext && hasPrev && !isLeaving) {\n // item is old (exiting)\n // console.log('leaving', key)\n children[key] = cloneElement(child, {\n in: false\n });\n } else if (hasNext && hasPrev && isValidElement(prevChild)) {\n // item hasn't changed transition states\n // copy over the last transition props;\n // console.log('unchanged', key)\n children[key] = cloneElement(child, {\n onExited: onExited.bind(null, child),\n in: prevChild.props.in,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n }\n });\n return children;\n}","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport TransitionGroupContext from './TransitionGroupContext';\nimport { getChildMapping, getInitialChildMapping, getNextChildMapping } from './utils/ChildMapping';\n\nvar values = Object.values || function (obj) {\n return Object.keys(obj).map(function (k) {\n return obj[k];\n });\n};\n\nvar defaultProps = {\n component: 'div',\n childFactory: function childFactory(child) {\n return child;\n }\n /**\n * The `` component manages a set of transition components\n * (`` and ``) in a list. Like with the transition\n * components, `` is a state machine for managing the mounting\n * and unmounting of components over time.\n *\n * Consider the example below. As items are removed or added to the TodoList the\n * `in` prop is toggled automatically by the ``.\n *\n * Note that `` does not define any animation behavior!\n * Exactly _how_ a list item animates is up to the individual transition\n * component. This means you can mix and match animations across different list\n * items.\n */\n\n};\n\nvar TransitionGroup =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(TransitionGroup, _React$Component);\n\n function TransitionGroup(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n\n var handleExited = _this.handleExited.bind(_assertThisInitialized(_assertThisInitialized(_this))); // Initial children should all be entering, dependent on appear\n\n\n _this.state = {\n contextValue: {\n isMounting: true\n },\n handleExited: handleExited,\n firstRender: true\n };\n return _this;\n }\n\n var _proto = TransitionGroup.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.mounted = true;\n this.setState({\n contextValue: {\n isMounting: false\n }\n });\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.mounted = false;\n };\n\n TransitionGroup.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, _ref) {\n var prevChildMapping = _ref.children,\n handleExited = _ref.handleExited,\n firstRender = _ref.firstRender;\n return {\n children: firstRender ? getInitialChildMapping(nextProps, handleExited) : getNextChildMapping(nextProps, prevChildMapping, handleExited),\n firstRender: false\n };\n };\n\n _proto.handleExited = function handleExited(child, node) {\n var currentChildMapping = getChildMapping(this.props.children);\n if (child.key in currentChildMapping) return;\n\n if (child.props.onExited) {\n child.props.onExited(node);\n }\n\n if (this.mounted) {\n this.setState(function (state) {\n var children = _extends({}, state.children);\n\n delete children[child.key];\n return {\n children: children\n };\n });\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n Component = _this$props.component,\n childFactory = _this$props.childFactory,\n props = _objectWithoutPropertiesLoose(_this$props, [\"component\", \"childFactory\"]);\n\n var contextValue = this.state.contextValue;\n var children = values(this.state.children).map(childFactory);\n delete props.appear;\n delete props.enter;\n delete props.exit;\n\n if (Component === null) {\n return React.createElement(TransitionGroupContext.Provider, {\n value: contextValue\n }, children);\n }\n\n return React.createElement(TransitionGroupContext.Provider, {\n value: contextValue\n }, React.createElement(Component, props, children));\n };\n\n return TransitionGroup;\n}(React.Component);\n\nTransitionGroup.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * `` renders a `
` by default. You can change this\n * behavior by providing a `component` prop.\n * If you use React v16+ and would like to avoid a wrapping `
` element\n * you can pass in `component={null}`. This is useful if the wrapping div\n * borks your css styles.\n */\n component: PropTypes.any,\n\n /**\n * A set of `` components, that are toggled `in` and out as they\n * leave. the `` will inject specific transition props, so\n * remember to spread them through if you are wrapping the `` as\n * with our `` example.\n *\n * While this component is meant for multiple `Transition` or `CSSTransition`\n * children, sometimes you may want to have a single transition child with\n * content that you want to be transitioned out and in when you change it\n * (e.g. routes, images etc.) In that case you can change the `key` prop of\n * the transition child as you change its content, this will cause\n * `TransitionGroup` to transition the child out and back in.\n */\n children: PropTypes.node,\n\n /**\n * A convenience prop that enables or disables appear animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n appear: PropTypes.bool,\n\n /**\n * A convenience prop that enables or disables enter animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * A convenience prop that enables or disables exit animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * You may need to apply reactive updates to a child as it is exiting.\n * This is generally done by using `cloneElement` however in the case of an exiting\n * child the element has already been removed and not accessible to the consumer.\n *\n * If you do need to update a child as it leaves you can provide a `childFactory`\n * to wrap every child, even the ones that are leaving.\n *\n * @type Function(child: ReactElement) -> ReactElement\n */\n childFactory: PropTypes.func\n} : {};\nTransitionGroup.defaultProps = defaultProps;\nexport default TransitionGroup;","function replaceClassName(origClass, classToRemove) {\n return origClass.replace(new RegExp(\"(^|\\\\s)\" + classToRemove + \"(?:\\\\s|$)\", 'g'), '$1').replace(/\\s+/g, ' ').replace(/^\\s*|\\s*$/g, '');\n}\n/**\n * Removes a CSS class from a given element.\n * \n * @param element the element\n * @param className the CSS class name\n */\n\n\nexport default function removeClass(element, className) {\n if (element.classList) {\n element.classList.remove(className);\n } else if (typeof element.className === 'string') {\n element.className = replaceClassName(element.className, className);\n } else {\n element.setAttribute('class', replaceClassName(element.className && element.className.baseVal || '', className));\n }\n}","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport config from './config';\nimport { timeoutsShape } from './utils/PropTypes';\nimport TransitionGroupContext from './TransitionGroupContext';\nexport var UNMOUNTED = 'unmounted';\nexport var EXITED = 'exited';\nexport var ENTERING = 'entering';\nexport var ENTERED = 'entered';\nexport var EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * ---\n *\n * **Note**: `Transition` is a platform-agnostic base component. If you're using\n * transitions in CSS, you'll probably want to use\n * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)\n * instead. It inherits all the features of `Transition`, but contains\n * additional features necessary to play nice with CSS transitions (hence the\n * name of the component).\n *\n * ---\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the\n * components. It's up to you to give meaning and effect to those states. For\n * example we can add styles to a component when it enters or exits:\n *\n * ```jsx\n * import { Transition } from 'react-transition-group';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n * transition: `opacity ${duration}ms ease-in-out`,\n * opacity: 0,\n * }\n *\n * const transitionStyles = {\n * entering: { opacity: 1 },\n * entered: { opacity: 1 },\n * exiting: { opacity: 0 },\n * exited: { opacity: 0 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n * \n * {state => (\n *
\n * I'm a fade Transition!\n *
\n * )}\n *
\n * );\n * ```\n *\n * There are 4 main states a Transition can be in:\n * - `'entering'`\n * - `'entered'`\n * - `'exiting'`\n * - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component\n * begins the \"Enter\" stage. During this stage, the component will shift from\n * its current transition state, to `'entering'` for the duration of the\n * transition and then to the `'entered'` stage once it's complete. Let's take\n * the following example (we'll use the\n * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
\n * \n * {state => (\n * // ...\n * )}\n * \n * \n *
\n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nvar Transition =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n }; // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n\n\n var _proto = Transition.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n var node = ReactDOM.findDOMNode(this);\n\n if (nextStatus === ENTERING) {\n this.performEnter(node, mounting);\n } else {\n this.performExit(node);\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(node, mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context ? this.context.isMounting : mounting;\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter || config.disabled) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(node);\n });\n return;\n }\n\n this.props.onEnter(node, appearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(node, appearing);\n\n _this2.onTransitionEnd(node, enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(node, appearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit(node) {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts(); // no exit animation skip right to EXITED\n\n if (!exit || config.disabled) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(node);\n });\n return;\n }\n\n this.props.onExit(node);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(node);\n\n _this3.onTransitionEnd(node, timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(node);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(node, timeout, handler) {\n this.setNextCallback(handler);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n this.props.addEndListener(node, this.nextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\"]); // filter props for Transtition\n\n\n delete childProps.in;\n delete childProps.mountOnEnter;\n delete childProps.unmountOnExit;\n delete childProps.appear;\n delete childProps.enter;\n delete childProps.exit;\n delete childProps.timeout;\n delete childProps.addEndListener;\n delete childProps.onEnter;\n delete childProps.onEntering;\n delete childProps.onEntered;\n delete childProps.onExit;\n delete childProps.onExiting;\n delete childProps.onExited;\n\n if (typeof children === 'function') {\n // allows for nested Transitions\n return React.createElement(TransitionGroupContext.Provider, {\n value: null\n }, children(status, childProps));\n }\n\n var child = React.Children.only(children);\n return (// allows for nested Transitions\n React.createElement(TransitionGroupContext.Provider, {\n value: null\n }, React.cloneElement(child, childProps))\n );\n };\n\n return Transition;\n}(React.Component);\n\nTransition.contextType = TransitionGroupContext;\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * A `function` child can be used instead of a React element. This function is\n * called with the current transition status (`'entering'`, `'entered'`,\n * `'exiting'`, `'exited'`), which can be used to apply context\n * specific props to a component.\n *\n * ```jsx\n * \n * {state => (\n * \n * )}\n * \n * ```\n */\n children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n /**\n * Show the component; triggers the enter or exit states\n */\n in: PropTypes.bool,\n\n /**\n * By default the child component is mounted immediately along with\n * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n */\n mountOnEnter: PropTypes.bool,\n\n /**\n * By default the child component stays mounted after it reaches the `'exited'` state.\n * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n */\n unmountOnExit: PropTypes.bool,\n\n /**\n * Normally a component is not transitioned if it is shown when the\n * `` component mounts. If you want to transition on the first\n * mount set `appear` to `true`, and the component will transition in as soon\n * as the `` mounts.\n *\n * > **Note**: there are no special appear states like `appearing`/`appeared`, this prop\n * > only adds an additional enter transition. However, in the\n * > `` component that first enter transition does result in\n * > additional `.appear-*` classes, that way you can choose to style it\n * > differently.\n */\n appear: PropTypes.bool,\n\n /**\n * Enable or disable enter transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * Enable or disable exit transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * The duration of the transition, in milliseconds.\n * Required unless `addEndListener` is provided.\n *\n * You may specify a single timeout for all transitions:\n *\n * ```jsx\n * timeout={500}\n * ```\n *\n * or individually:\n *\n * ```jsx\n * timeout={{\n * appear: 500,\n * enter: 300,\n * exit: 500,\n * }}\n * ```\n *\n * - `appear` defaults to the value of `enter`\n * - `enter` defaults to `0`\n * - `exit` defaults to `0`\n *\n * @type {number | { enter?: number, exit?: number, appear?: number }}\n */\n timeout: function timeout(props) {\n var pt = timeoutsShape;\n if (!props.addEndListener) pt = pt.isRequired;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return pt.apply(void 0, [props].concat(args));\n },\n\n /**\n * Add a custom transition end trigger. Called with the transitioning\n * DOM node and a `done` callback. Allows for more fine grained transition end\n * logic. **Note:** Timeouts are still used as a fallback if provided.\n *\n * ```jsx\n * addEndListener={(node, done) => {\n * // use the css transitionend event to mark the finish of a transition\n * node.addEventListener('transitionend', done, false);\n * }}\n * ```\n */\n addEndListener: PropTypes.func,\n\n /**\n * Callback fired before the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEnter: PropTypes.func,\n\n /**\n * Callback fired after the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * Callback fired after the \"entered\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired before the \"exiting\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired after the \"exiting\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExiting: PropTypes.func,\n\n /**\n * Callback fired after the \"exited\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExited: PropTypes.func // Name the function so it is clearer in the documentation\n\n} : {};\n\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = 0;\nTransition.EXITED = 1;\nTransition.ENTERING = 2;\nTransition.ENTERED = 3;\nTransition.EXITING = 4;\nexport default Transition;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport addOneClass from 'dom-helpers/addClass';\nimport removeOneClass from 'dom-helpers/removeClass';\nimport React from 'react';\nimport Transition from './Transition';\nimport { classNamesShape } from './utils/PropTypes';\n\nvar _addClass = function addClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return addOneClass(node, c);\n });\n};\n\nvar removeClass = function removeClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return removeOneClass(node, c);\n });\n};\n/**\n * A transition component inspired by the excellent\n * [ng-animate](http://www.nganimate.org/) library, you should use it if you're\n * using CSS transitions or animations. It's built upon the\n * [`Transition`](https://reactcommunity.org/react-transition-group/transition)\n * component, so it inherits all of its props.\n *\n * `CSSTransition` applies a pair of class names during the `appear`, `enter`,\n * and `exit` states of the transition. The first class is applied and then a\n * second `*-active` class in order to activate the CSS transition. After the\n * transition, matching `*-done` class names are applied to persist the\n * transition state.\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
\n * \n *
\n * {\"I'll receive my-node-* classes\"}\n *
\n *
\n * \n *
\n * );\n * }\n * ```\n *\n * When the `in` prop is set to `true`, the child component will first receive\n * the class `example-enter`, then the `example-enter-active` will be added in\n * the next tick. `CSSTransition` [forces a\n * reflow](https://github.com/reactjs/react-transition-group/blob/5007303e729a74be66a21c3e2205e4916821524b/src/CSSTransition.js#L208-L215)\n * between before adding the `example-enter-active`. This is an important trick\n * because it allows us to transition between `example-enter` and\n * `example-enter-active` even though they were added immediately one after\n * another. Most notably, this is what makes it possible for us to animate\n * _appearance_.\n *\n * ```css\n * .my-node-enter {\n * opacity: 0;\n * }\n * .my-node-enter-active {\n * opacity: 1;\n * transition: opacity 200ms;\n * }\n * .my-node-exit {\n * opacity: 1;\n * }\n * .my-node-exit-active {\n * opacity: 0;\n * transition: opacity 200ms;\n * }\n * ```\n *\n * `*-active` classes represent which styles you want to animate **to**.\n *\n * **Note**: If you're using the\n * [`appear`](http://reactcommunity.org/react-transition-group/transition#Transition-prop-appear)\n * prop, make sure to define styles for `.appear-*` classes as well.\n */\n\n\nvar CSSTransition =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(CSSTransition, _React$Component);\n\n function CSSTransition() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.appliedClasses = {\n appear: {},\n enter: {},\n exit: {}\n };\n\n _this.onEnter = function (node, appearing) {\n _this.removeClasses(node, 'exit');\n\n _this.addClass(node, appearing ? 'appear' : 'enter', 'base');\n\n if (_this.props.onEnter) {\n _this.props.onEnter(node, appearing);\n }\n };\n\n _this.onEntering = function (node, appearing) {\n var type = appearing ? 'appear' : 'enter';\n\n _this.addClass(node, type, 'active');\n\n if (_this.props.onEntering) {\n _this.props.onEntering(node, appearing);\n }\n };\n\n _this.onEntered = function (node, appearing) {\n var type = appearing ? 'appear' : 'enter';\n\n _this.removeClasses(node, type);\n\n _this.addClass(node, type, 'done');\n\n if (_this.props.onEntered) {\n _this.props.onEntered(node, appearing);\n }\n };\n\n _this.onExit = function (node) {\n _this.removeClasses(node, 'appear');\n\n _this.removeClasses(node, 'enter');\n\n _this.addClass(node, 'exit', 'base');\n\n if (_this.props.onExit) {\n _this.props.onExit(node);\n }\n };\n\n _this.onExiting = function (node) {\n _this.addClass(node, 'exit', 'active');\n\n if (_this.props.onExiting) {\n _this.props.onExiting(node);\n }\n };\n\n _this.onExited = function (node) {\n _this.removeClasses(node, 'exit');\n\n _this.addClass(node, 'exit', 'done');\n\n if (_this.props.onExited) {\n _this.props.onExited(node);\n }\n };\n\n _this.getClassNames = function (type) {\n var classNames = _this.props.classNames;\n var isStringClassNames = typeof classNames === 'string';\n var prefix = isStringClassNames && classNames ? classNames + \"-\" : '';\n var baseClassName = isStringClassNames ? \"\" + prefix + type : classNames[type];\n var activeClassName = isStringClassNames ? baseClassName + \"-active\" : classNames[type + \"Active\"];\n var doneClassName = isStringClassNames ? baseClassName + \"-done\" : classNames[type + \"Done\"];\n return {\n baseClassName: baseClassName,\n activeClassName: activeClassName,\n doneClassName: doneClassName\n };\n };\n\n return _this;\n }\n\n var _proto = CSSTransition.prototype;\n\n _proto.addClass = function addClass(node, type, phase) {\n var className = this.getClassNames(type)[phase + \"ClassName\"];\n\n if (type === 'appear' && phase === 'done') {\n className += \" \" + this.getClassNames('enter').doneClassName;\n } // This is for to force a repaint,\n // which is necessary in order to transition styles when adding a class name.\n\n\n if (phase === 'active') {\n /* eslint-disable no-unused-expressions */\n node && node.scrollTop;\n }\n\n this.appliedClasses[type][phase] = className;\n\n _addClass(node, className);\n };\n\n _proto.removeClasses = function removeClasses(node, type) {\n var _this$appliedClasses$ = this.appliedClasses[type],\n baseClassName = _this$appliedClasses$.base,\n activeClassName = _this$appliedClasses$.active,\n doneClassName = _this$appliedClasses$.done;\n this.appliedClasses[type] = {};\n\n if (baseClassName) {\n removeClass(node, baseClassName);\n }\n\n if (activeClassName) {\n removeClass(node, activeClassName);\n }\n\n if (doneClassName) {\n removeClass(node, doneClassName);\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n _ = _this$props.classNames,\n props = _objectWithoutPropertiesLoose(_this$props, [\"classNames\"]);\n\n return React.createElement(Transition, _extends({}, props, {\n onEnter: this.onEnter,\n onEntered: this.onEntered,\n onEntering: this.onEntering,\n onExit: this.onExit,\n onExiting: this.onExiting,\n onExited: this.onExited\n }));\n };\n\n return CSSTransition;\n}(React.Component);\n\nCSSTransition.defaultProps = {\n classNames: ''\n};\nCSSTransition.propTypes = process.env.NODE_ENV !== \"production\" ? _extends({}, Transition.propTypes, {\n /**\n * The animation classNames applied to the component as it appears, enters,\n * exits or has finished the transition. A single name can be provided and it\n * will be suffixed for each stage: e.g.\n *\n * `classNames=\"fade\"` applies `fade-appear`, `fade-appear-active`,\n * `fade-appear-done`, `fade-enter`, `fade-enter-active`, `fade-enter-done`,\n * `fade-exit`, `fade-exit-active`, and `fade-exit-done`.\n *\n * **Note**: `fade-appear-done` and `fade-enter-done` will _both_ be applied.\n * This allows you to define different behavior for when appearing is done and\n * when regular entering is done, using selectors like\n * `.fade-enter-done:not(.fade-appear-done)`. For example, you could apply an\n * epic entrance animation when element first appears in the DOM using\n * [Animate.css](https://daneden.github.io/animate.css/). Otherwise you can\n * simply use `fade-enter-done` for defining both cases.\n *\n * Each individual classNames can also be specified independently like:\n *\n * ```js\n * classNames={{\n * appear: 'my-appear',\n * appearActive: 'my-active-appear',\n * appearDone: 'my-done-appear',\n * enter: 'my-enter',\n * enterActive: 'my-active-enter',\n * enterDone: 'my-done-enter',\n * exit: 'my-exit',\n * exitActive: 'my-active-exit',\n * exitDone: 'my-done-exit',\n * }}\n * ```\n *\n * If you want to set these classes using CSS Modules:\n *\n * ```js\n * import styles from './styles.css';\n * ```\n *\n * you might want to use camelCase in your CSS file, that way could simply\n * spread them instead of listing them one by one:\n *\n * ```js\n * classNames={{ ...styles }}\n * ```\n *\n * @type {string | {\n * appear?: string,\n * appearActive?: string,\n * appearDone?: string,\n * enter?: string,\n * enterActive?: string,\n * enterDone?: string,\n * exit?: string,\n * exitActive?: string,\n * exitDone?: string,\n * }}\n */\n classNames: classNamesShape,\n\n /**\n * A `` callback fired immediately after the 'enter' or 'appear' class is\n * applied.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEnter: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'enter-active' or\n * 'appear-active' class is applied.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'enter' or\n * 'appear' classes are **removed** and the `done` class is added to the DOM node.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntered: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit' class is\n * applied.\n *\n * @type Function(node: HtmlElement)\n */\n onExit: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit-active' is applied.\n *\n * @type Function(node: HtmlElement)\n */\n onExiting: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit' classes\n * are **removed** and the `exit-done` class is added to the DOM node.\n *\n * @type Function(node: HtmlElement)\n */\n onExited: PropTypes.func\n}) : {};\nexport default CSSTransition;","import hasClass from './hasClass';\n/**\n * Adds a CSS class to a given element.\n * \n * @param element the element\n * @param className the CSS class name\n */\n\nexport default function addClass(element, className) {\n if (element.classList) element.classList.add(className);else if (!hasClass(element, className)) if (typeof element.className === 'string') element.className = element.className + \" \" + className;else element.setAttribute('class', (element.className && element.className.baseVal || '') + \" \" + className);\n}","/**\n * Checks if a given element has a CSS class.\n * \n * @param element the element\n * @param className the CSS class name\n */\nexport default function hasClass(element, className) {\n if (element.classList) return !!className && element.classList.contains(className);\n return (\" \" + (element.className.baseVal || element.className) + \" \").indexOf(\" \" + className + \" \") !== -1;\n}","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classname from 'classnames';\r\n\r\nfunction getTestIdByDisplayName(displayName) {\r\n return displayName && displayName.replace('Icon', '-icon').toLowerCase();\r\n}\r\n\r\nconst Icon = (path, customViewBox, displayName) => {\r\n const BaseIcon = (props) => {\r\n const {\r\n className, inverted, selected, small, viewBox, ...others\r\n } = props;\r\n const classes = classname(\r\n 'icon',\r\n {\r\n 'icon--inverted': inverted,\r\n 'icon--small': small,\r\n 'icon--selected': selected,\r\n },\r\n className,\r\n );\r\n\r\n return (\r\n \r\n {path}\r\n \r\n );\r\n };\r\n\r\n BaseIcon.propTypes = {\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n /** Inverte i colori dell'icona */\r\n inverted: PropTypes.bool,\r\n /** Applica lo stile selected */\r\n selected: PropTypes.bool,\r\n /** Riduce la dimensione dell'icona */\r\n small: PropTypes.bool,\r\n /** Viewbox personalizzato */\r\n viewBox: PropTypes.string,\r\n };\r\n\r\n BaseIcon.defaultProps = {\r\n className: '',\r\n inverted: false,\r\n selected: false,\r\n small: false,\r\n viewBox: '',\r\n };\r\n\r\n BaseIcon.displayName = displayName;\r\n\r\n return BaseIcon;\r\n};\r\n\r\nexport default Icon;\r\n","import React from 'react';\r\nimport Icon from './Icon';\r\n\r\nexport default Icon(\r\n \r\n \r\n \r\n \r\n \r\n , '0 0 24 24', 'ErroreIcon',\r\n);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\n\r\n/**\r\nComponente che visualizza un badge con il suo stato. I children ammessi devono rappresentare solo testo.\r\n\r\nVedi [Design System di CGN - Badge](https://zeroheight.com/1b5e94371/p/501a37-badge/b/17c27a)\r\n */\r\nconst Badge = ({\r\n children, className, info, alarm, warning, positive, success, safe, outline, ...others\r\n}) => (\r\n \r\n {children}\r\n \r\n);\r\n\r\nBadge.defaultProps = {\r\n alarm: false,\r\n children: null,\r\n className: '',\r\n info: false,\r\n positive: false,\r\n success: false,\r\n warning: false,\r\n safe: false,\r\n outline: false,\r\n};\r\n\r\nBadge.propTypes = {\r\n /** Contenuto da renderizzare all'interno del componente */\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node,\r\n ]),\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n /** Assegna lo stile testuale al badge */\r\n alarm: PropTypes.bool,\r\n /** Assegna lo stile info al badge */\r\n info: PropTypes.bool,\r\n /**\r\nAssegna lo stile success al badge (per compatibilità)\r\n\r\n@deprecated\r\n */\r\n positive: PropTypes.bool,\r\n /** Assegna lo stile success al badge */\r\n success: PropTypes.bool,\r\n /** Assegna lo stile safe al badge */\r\n safe: PropTypes.bool,\r\n /** Assegna lo stile warning al badge */\r\n warning: PropTypes.bool,\r\n /** Assegna lo stile outline al badge. */\r\n outline: PropTypes.bool,\r\n};\r\n\r\nexport default Badge;\r\n","import Badge from './Badge';\r\n\r\nexport default Badge;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\n\r\n/**\r\nIl componente rappresenta un indicatore di occupato dando all'utente l'informazione che un'operazione è in corso.\r\n\r\nVedi [Design System di CGN - Gestire le attese](https://zeroheight.com/1b5e94371/p/54e1de-gestire-le-attese)\r\n */\r\nconst Spinner = ({\r\n center, small, inverted, large,\r\n}) => {\r\n const classes = cns(\r\n 'spinner',\r\n {\r\n 'spinner--small': small,\r\n 'spinner--large': large,\r\n 'spinner--inverted': inverted,\r\n 'spinner--centered': center,\r\n },\r\n );\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nSpinner.propTypes = {\r\n /** Indica se centrare lo spinner */\r\n center: PropTypes.bool,\r\n /** Inverte i colori dello spinner */\r\n inverted: PropTypes.bool,\r\n /** Disegna uno spinner più grande */\r\n large: PropTypes.bool,\r\n /** Disegna uno spinner più piccolo */\r\n small: PropTypes.bool,\r\n};\r\n\r\nSpinner.defaultProps = {\r\n center: false,\r\n inverted: false,\r\n large: false,\r\n small: false,\r\n};\r\n\r\nexport default Spinner;\r\n","import Spinner from './Spinner';\r\n\r\nexport default Spinner;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nconst Tab = ({\r\n action, children, disabled, title, badge,\r\n}) =>
{children}
;\r\n\r\nTab.propTypes = {\r\n /** Action da renderizzare nel tab */\r\n action: PropTypes.node,\r\n /** Badge da renderizzare nel tab */\r\n badge: PropTypes.node,\r\n /** Contenuto da renderizzare all'interno del componente */\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node,\r\n ]),\r\n /** Indica se il componente è disabilitato */\r\n disabled: PropTypes.bool,\r\n /** Titolo da visualizzare nell'intestazione del tab */\r\n title: PropTypes.oneOfType([PropTypes.string, PropTypes.node]).isRequired,\r\n};\r\n\r\nTab.defaultProps = {\r\n action: null,\r\n badge: null,\r\n children: null,\r\n disabled: false,\r\n};\r\n\r\nexport default Tab;\r\n","import React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\nimport Tab from './Tab';\r\nimport { deprecatedUsage } from '../Utils/devUtils';\r\n\r\n/**\r\nI tabs sono normalmente posizionati al di sopra del contenuto, e le loro label danno sempre indicazione di cosa si trova al loro interno.\r\n\r\nInserirli sempre una riga orizzontale.\r\n\r\nEvidenziare il tab che mostra il contenuto.\r\n\r\nCreare una gerarchia nei diversi tabs.\r\n\r\nIl contenuto del tab deve essere posizionato al di sotto e vicino per creare una relazione fra i due.\r\n */\r\nclass Tabs extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n let storedIndex = null;\r\n if (props.store) {\r\n const datiStore = this.caricaStorage();\r\n if (datiStore) {\r\n storedIndex = datiStore.currentIndex;\r\n }\r\n }\r\n\r\n this.state = {\r\n index: storedIndex || props.initialIndex || props.index || 0,\r\n indexFromStore: !!storedIndex,\r\n };\r\n\r\n if (window.MutationObserver) {\r\n this.observer = new window.MutationObserver(this.aggiorna);\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n // se l'index è stato impostato dallo store allora richiamo la callback onSelect\r\n const { indexFromStore, index } = this.state;\r\n const { onSelect } = this.props;\r\n if (indexFromStore && onSelect && index) {\r\n onSelect(index);\r\n }\r\n }\r\n\r\n UNSAFE_componentWillReceiveProps(nextProps) {\r\n const { index } = this.props;\r\n\r\n deprecatedUsage(this, !nextProps.spaced, 'framework-ui-components.Tabs.spaced');\r\n\r\n if (nextProps.index !== index) {\r\n this.setState({ index: nextProps.index });\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n if (this.observer) {\r\n this.observer.disconnect();\r\n }\r\n }\r\n\r\n caricaStorage = () => {\r\n if (window.sessionStorage) {\r\n const { store } = this.props;\r\n const dati = window.sessionStorage.getItem(store);\r\n if (!dati) {\r\n return null;\r\n }\r\n return JSON.parse(dati);\r\n }\r\n return null;\r\n };\r\n\r\n salvaStorage = (dati) => {\r\n if (window.sessionStorage) {\r\n const { store } = this.props;\r\n window.sessionStorage.setItem(store, JSON.stringify(dati));\r\n }\r\n };\r\n\r\n aggiorna = () => {\r\n const { children } = this.props;\r\n const { index } = this.state;\r\n\r\n const tabs = React.Children.toArray(children).filter((child) => child).length;\r\n if ((index + 1) > tabs) {\r\n // Se elimino tab elezionato scalo la selezione al precedente\r\n this.seleziona(index - 1);\r\n }\r\n };\r\n\r\n seleziona = (indice) => {\r\n const { index, onSelect, children } = this.props;\r\n\r\n if (index == null) {\r\n // Se tab da selezionare è disabilitato scalo al tab precedente\r\n if (React.Children.toArray(children)[indice].props.disabled) {\r\n this.seleziona(indice - 1);\r\n } else {\r\n this.setState({ index: indice });\r\n }\r\n }\r\n const { store } = this.props;\r\n if (store) {\r\n this.salvaStorage({\r\n currentIndex: indice,\r\n });\r\n }\r\n onSelect && onSelect(indice);\r\n };\r\n\r\n static Tab = Tab;\r\n\r\n render() {\r\n const {\r\n action,\r\n className,\r\n children,\r\n index,\r\n vertical, spaced,\r\n } = this.props;\r\n const {\r\n index: sIndex,\r\n } = this.state;\r\n\r\n if (this.refTabs != null && !this.listener && window.MutationObserver) {\r\n this.listener = true;\r\n this.observer.observe(this.refTabs, {\r\n attributes: true,\r\n childList: true,\r\n subtree: true,\r\n });\r\n }\r\n\r\n const classes = cns(\r\n 'tabs',\r\n {\r\n 'tabs--vertical': vertical,\r\n 'tabs--spaced': spaced,\r\n },\r\n className,\r\n );\r\n\r\n const actionClasses = cns(\r\n 'tabs__action',\r\n {\r\n 'tabs__action--vertical': vertical,\r\n },\r\n );\r\n\r\n const indexesClasses = cns(\r\n 'tabs__indexes',\r\n {\r\n 'tabs__index--underlined': !vertical,\r\n },\r\n );\r\n\r\n return (\r\n
\r\n { this.refTabs = r; }}\r\n >\r\n {React.Children.map(React.Children.toArray(children), (tab, i) => {\r\n const tabClasses = cns(\r\n 'tabs__index',\r\n {\r\n 'tabs__index--selected': i === (index || sIndex),\r\n 'tabs__index--disabled': tab.props.disabled,\r\n },\r\n );\r\n\r\n return (\r\n !tab.props.disabled && this.seleziona(i)}\r\n role=\"presentation\"\r\n >\r\n
\r\n {tab.props.title}\r\n {tab.props.badge &&
{tab.props.badge}
}\r\n
\r\n {tab.props.action &&
{tab.props.action}
}\r\n
\r\n );\r\n })}\r\n {action && (\r\n
\r\n {action}\r\n
\r\n )}\r\n
\r\n {React.Children.toArray(children)[(index || sIndex)]}\r\n
\r\n );\r\n }\r\n}\r\n\r\nTabs.propTypes = {\r\n /** Action da renderizzare alla fine dei tabs */\r\n action: PropTypes.node,\r\n /** Contenuto da renderizzare all'interno del componente */\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node,\r\n ]),\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n /** Indica l'indice dell'elemento da selezionare,\r\n * sia all'inizializzazione del componente, sia all'update di questa proprietà */\r\n index: PropTypes.number,\r\n /** Indica l'indice dell'elemento da selezionare all'inizializzazione del componente */\r\n initialIndex: PropTypes.number,\r\n /**\r\n * Funzione di callback che verrà chiamata all'update del tab selezionato:\r\n * ```\r\n * onSelect(index)\r\n * ```\r\n * dove:\r\n * * *index*: indice del tab selezionato\r\n */\r\n onSelect: PropTypes.func,\r\n /** Indica se lo scorrimento dei tab passa in verticale */\r\n vertical: PropTypes.bool,\r\n /**\r\n * Nome dell'oggetto salvato nello storage del browser\r\n */\r\n store: PropTypes.string,\r\n /**\r\nIndica se l'area centrale deve essere più distanziata dalle tabs.\r\n\r\n_NOTA: La proprietà è stata introdotta nella versione 1.8.23_\r\n_con default `false` per mantenere compatibilità._\r\n_Nella versione 1.9.0 verrà eliminata ed il componente si comporterà come `spaced=true`._\r\n */\r\n spaced: PropTypes.bool,\r\n};\r\n\r\nTabs.defaultProps = {\r\n action: null,\r\n children: null,\r\n className: '',\r\n index: null,\r\n initialIndex: 0,\r\n onSelect: null,\r\n vertical: false,\r\n store: null,\r\n spaced: false,\r\n};\r\n\r\nexport default Tabs;\r\n","import Tabs from './Tabs';\r\n\r\nexport default Tabs;\r\n","import React from 'react';\r\nimport Icon from './Icon';\r\n\r\nexport default Icon(\r\n , '0 0 24 24', 'SuccessoIcon',\r\n);\r\n","export default function debounce(func, threshold, execAsap) {\r\n let timeout;\r\n\r\n return function debounced(...args) {\r\n const obj = this;\r\n const delayed = () => {\r\n if (!execAsap) { func.apply(obj, args); }\r\n timeout = null;\r\n };\r\n if (timeout) {\r\n clearTimeout(timeout);\r\n }\r\n if (execAsap) {\r\n func.apply(obj, args);\r\n }\r\n timeout = setTimeout(delayed, threshold || 100);\r\n };\r\n}\r\n","import { useState, useCallback, useRef } from 'react';\r\n\r\nimport debounce from '../Utils/debouncer';\r\n\r\n/**\r\n * Hook handles mouse over state and calls the onMouseOver and onMouseOut callbacks.\r\n * @param {func} onMouseOverCB\r\n * @param {func} onMouseOutCB\r\n */\r\nfunction useMouseOver(onMouseOverCB, onMouseOutCB) {\r\n const [mouseOver, setMouseOver] = useState(false);\r\n const callbackRef = useRef(debounce((over, setOver, onOverCB, onOutCB) => {\r\n if (over && onOverCB) onOverCB();\r\n if (!over && onOutCB) onOutCB();\r\n setOver(over);\r\n }, 200));\r\n\r\n const onMouseOver = useCallback(() => {\r\n callbackRef.current(true, setMouseOver, onMouseOverCB, undefined);\r\n }, [onMouseOverCB]);\r\n\r\n const onMouseOut = useCallback(() => {\r\n callbackRef.current(false, setMouseOver, undefined, onMouseOutCB);\r\n }, [onMouseOutCB]);\r\n\r\n return [mouseOver, onMouseOver, onMouseOut];\r\n}\r\n\r\nexport default useMouseOver;\r\n","import React, { useEffect } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\nimport useMouseOver from '../Hooks/useMouseOver';\r\n\r\n/**\r\nComponente che mostra un messaggio all'hover.\r\n\r\n__DEPRECATO: utilizzare `V2/Tooltip`__\r\n\r\n */\r\nconst PopOver = ({\r\n children, content, className, left,\r\n right, top, timeout,\r\n}) => {\r\n const [mostraInfo, onMouseOver, onMouseOut] = useMouseOver();\r\n\r\n useEffect(() => {\r\n let timeoutId;\r\n if (mostraInfo && timeout > 1000) {\r\n timeoutId = setTimeout(onMouseOut, timeout);\r\n }\r\n return () => timeoutId && clearTimeout(timeoutId);\r\n }, [mostraInfo, onMouseOut, timeout]);\r\n\r\n const classes = cns(\r\n 'popover',\r\n {\r\n 'popover--left': left,\r\n 'popover--top': top,\r\n 'popover--right': right,\r\n 'popover--bottom': !right && !top && !left,\r\n },\r\n className,\r\n );\r\n return (\r\n \r\n
\r\n {mostraInfo && content && (\r\n
\r\n
{content}
\r\n
\r\n )}\r\n \r\n {children}\r\n
\r\n
\r\n );\r\n};\r\n\r\nPopOver.propTypes = {\r\n /** Contenuto da renderizzare all'interno del componente */\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node,\r\n ]),\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n /** Il contenuto da mostrare */\r\n content: PropTypes.node,\r\n /** Mostra il popover a sinistra */\r\n left: PropTypes.bool,\r\n /** Mostra il popover a destra */\r\n right: PropTypes.bool,\r\n /** Mostra il popover sopra */\r\n top: PropTypes.bool,\r\n /** Timeout oltre al quale il popup sparisce anche senza un evento di uscita */\r\n timeout: PropTypes.number,\r\n};\r\n\r\nPopOver.defaultProps = {\r\n children: null,\r\n className: '',\r\n content: null,\r\n left: false,\r\n right: false,\r\n top: false,\r\n timeout: undefined,\r\n};\r\n\r\nexport default PopOver;\r\n","import PopOver from './PopOver';\r\n\r\nexport default PopOver;\r\n","import { useRef } from 'react';\r\n\r\n/**\r\n * Custom hook per utilizzare la forwardRef se definita o una ref locale al componente.\r\n */\r\nfunction useForwardRefOrRef(forwardedRef) {\r\n const ref = useRef();\r\n return forwardedRef || ref;\r\n}\r\n\r\nexport default useForwardRefOrRef;\r\n","import React, {\r\n useState, useEffect, useCallback, useRef, useMemo, forwardRef,\r\n} from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\nimport Spinner from '../Spinner';\r\nimport PopOver from '../PopOver';\r\nimport useForwardRefOrRef from '../Hooks/useForwardRefOrRef';\r\n\r\nconst Button = forwardRef(({\r\n children,\r\n className,\r\n flat,\r\n floating,\r\n icon,\r\n primary,\r\n text,\r\n big,\r\n disabled,\r\n loading,\r\n selected,\r\n tooltip,\r\n onClick,\r\n ...others\r\n}, ref) => {\r\n const classes = useMemo(() => cns(\r\n 'button',\r\n {\r\n 'button--primary': primary,\r\n 'button--text': text,\r\n 'button--flat': flat,\r\n 'button--floating': floating,\r\n 'button--big': big,\r\n 'button--icon': icon,\r\n 'button--standard': !flat && !floating && !icon,\r\n selected,\r\n },\r\n className,\r\n ), [big, className, flat, floating, icon, primary, selected, text]);\r\n\r\n const refButton = useForwardRefOrRef(ref);\r\n const [disabledInternal, setDisabled] = useState(disabled);\r\n const [running, setRunning] = useState(loading);\r\n\r\n useEffect(() => setDisabled(disabled), [disabled]);\r\n useEffect(() => setRunning(loading), [loading]);\r\n\r\n const onClickInternal = useCallback((e) => {\r\n if (disabledInternal || running || !onClick) {\r\n return;\r\n }\r\n refButton.current.blur();\r\n const res = onClick(e);\r\n if (res && (res.always || res.then)) {\r\n setDisabled(true);\r\n setRunning(true);\r\n if (res.always) {\r\n res.always(() => {\r\n setDisabled(false);\r\n setRunning(false);\r\n });\r\n } else {\r\n res.then(() => {\r\n setDisabled(false);\r\n setRunning(false);\r\n });\r\n }\r\n }\r\n }, [disabledInternal, onClick, refButton, running]);\r\n\r\n return (\r\n (floating || icon) && tooltip\r\n ? (\r\n \r\n \r\n {children}\r\n {running && }\r\n \r\n \r\n )\r\n : (\r\n \r\n {children}\r\n {running && }\r\n \r\n )\r\n );\r\n});\r\n\r\nButton.propTypes = {\r\n /** Assegna lo stile big al bottone */\r\n big: PropTypes.bool,\r\n /** Contenuto da renderizzare all'interno del componente */\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node,\r\n ]),\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n /** Indica se il componente è disabilitato */\r\n disabled: PropTypes.bool,\r\n /** Assegna lo stile flat al bottone */\r\n flat: PropTypes.bool,\r\n /** Assegna lo stile floating al bottone */\r\n floating: PropTypes.bool,\r\n /** Assegna lo stile icona al bottone */\r\n icon: PropTypes.bool,\r\n /** Indica se il pulsante è in caricamento */\r\n loading: PropTypes.bool,\r\n /**\r\nCallback invocata al click sul componente (se viene passata una promise\r\nallora viene attesa l'esecuzione con uno spinner):\r\n```\r\n onClick(event)\r\n```\r\ndove:\r\n* *evento*: evento scatenante\r\n\r\nSe la callback ritorna una Promise, viene abilitata la gestione dello stato disposed\r\n(disposed = true alla partenza, e disposed = false al then)\r\n\r\nNOTA: Non viene invocata se sono a true le prop *disabled* oppure *loading*\r\n */\r\n onClick: PropTypes.func,\r\n /** Indica se il bottone è primario */\r\n primary: PropTypes.bool,\r\n /** Assegna lo stile selected al bottone */\r\n selected: PropTypes.bool,\r\n /** Assegna lo stile testuale al bottone */\r\n text: PropTypes.bool,\r\n /** Testo informativo visualizzato al hover del componente */\r\n tooltip: PropTypes.string,\r\n};\r\n\r\nButton.defaultProps = {\r\n big: false,\r\n children: null,\r\n className: '',\r\n disabled: false,\r\n flat: false,\r\n floating: false,\r\n icon: false,\r\n loading: false,\r\n onClick: null,\r\n primary: false,\r\n selected: false,\r\n text: false,\r\n tooltip: '',\r\n};\r\n\r\nexport default Button;\r\n","import Button from './Button';\r\n\r\nexport default Button;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport Badge from '../Badge';\r\nimport { Types, MAX_TEXT_LENGTH, StatoOperazione } from './SnackbarUtils';\r\nimport ErroreIcon from '../Icons/ErroreIcon';\r\nimport SuccessoIcon from '../Icons/SuccessoIcon';\r\nimport Spinner from '../Spinner';\r\nimport Button from '../Button';\r\n\r\nconst printActionText = (operazione) => {\r\n if (operazione.type === Types.MASSIVA\r\n || (operazione.type === Types.ERROR\r\n && (operazione.message.length > MAX_TEXT_LENGTH\r\n || Array.isArray(operazione.message)))) {\r\n return 'VEDI';\r\n }\r\n return 'OK';\r\n};\r\n\r\nconst multipleMessages = (operazione) => Array.isArray(operazione.message)\r\n && operazione.message.length > 1;\r\n\r\nconst printOperationHeaderMessage = (operazione) => {\r\n if (operazione.type === Types.MASSIVA) {\r\n if (operazione.stato === StatoOperazione.PENDING) {\r\n return 'Elaborazione in corso...';\r\n }\r\n if (operazione.stato === StatoOperazione.COMPLETED) {\r\n return 'Elaborazione terminata';\r\n }\r\n } else {\r\n if (Array.isArray(operazione.message)) {\r\n return `${operazione.message[0]}...`;\r\n }\r\n return operazione.message;\r\n }\r\n\r\n return null;\r\n};\r\n\r\nexport const printIconFromType = (operazione) => {\r\n if (operazione.type === Types.ERROR) {\r\n return ;\r\n }\r\n if (operazione.type === Types.SUCCESS) {\r\n return ;\r\n }\r\n if (operazione.type === Types.WARNING) {\r\n return ;\r\n }\r\n if (operazione.type === Types.MASSIVA\r\n && !(operazione.stato === StatoOperazione.COMPLETED)) {\r\n return ;\r\n }\r\n if (operazione.type === Types.MASSIVA && operazione.stato === StatoOperazione.COMPLETED) {\r\n if (operazione.errori.length === 0) {\r\n return ;\r\n }\r\n return ;\r\n }\r\n return null;\r\n};\r\n\r\nconst HeaderOperazione = ({\r\n className, expanded, operazione, onOperazioneBtnClick,\r\n}) => (\r\n
\r\n
\r\n {printIconFromType(operazione)}\r\n
\r\n

{printOperationHeaderMessage(operazione)}

\r\n {!expanded && multipleMessages(operazione) && (\r\n \r\n {operazione.message.length}\r\n\r\n \r\n )}\r\n
\r\n {((operazione.type === Types.MASSIVA)\r\n || (operazione.type === Types.ERROR && operazione.confirm)) && (\r\n onOperazioneBtnClick(e, operazione)}\r\n primary\r\n text\r\n >\r\n {printActionText(operazione)}\r\n \r\n )}\r\n
\r\n
\r\n);\r\n\r\nHeaderOperazione.propTypes = {\r\n className: PropTypes.string,\r\n expanded: PropTypes.bool,\r\n onOperazioneBtnClick: PropTypes.func,\r\n operazione: PropTypes.shape({\r\n type: PropTypes.number,\r\n confirm: PropTypes.bool,\r\n message: PropTypes.oneOfType([\r\n PropTypes.array,\r\n PropTypes.string,\r\n ]),\r\n }),\r\n};\r\n\r\nHeaderOperazione.defaultProps = {\r\n className: '',\r\n expanded: false,\r\n onOperazioneBtnClick: null,\r\n operazione: null,\r\n};\r\n\r\nexport default HeaderOperazione;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { StatoOperazione, PENDING_OPERATION, COMPLETED_OPERATION } from './SnackbarUtils';\r\nimport Spinner from '../Spinner';\r\nimport SuccessoIcon from '../Icons/SuccessoIcon';\r\nimport ErroreIcon from '../Icons/ErroreIcon';\r\n\r\nconst anyAsycRunning = operazioniMassive => operazioniMassive.filter(\r\n x => x.stato === StatoOperazione.PENDING,\r\n).length > 0;\r\n\r\nconst getMessage = (operazioniMassive) => {\r\n if (anyAsycRunning(operazioniMassive)) {\r\n return PENDING_OPERATION;\r\n }\r\n return COMPLETED_OPERATION;\r\n};\r\n\r\nconst getIcon = (operazioniMassive) => {\r\n if (anyAsycRunning(operazioniMassive)) return ;\r\n const ultimaOperazione = operazioniMassive\r\n .filter(x => x.finishedTimestamp)\r\n .sort((a, b) => new Date(a.timeStamp) - new Date(b.timeStamp))[0];\r\n if (ultimaOperazione) {\r\n if (ultimaOperazione.errori.length > 0) {\r\n return ;\r\n }\r\n return ;\r\n }\r\n return null;\r\n};\r\n\r\nconst HeaderMassiva = ({ operazioniMassive }) => (\r\n
\r\n
\r\n {getIcon(operazioniMassive)}\r\n
\r\n

\r\n {getMessage(operazioniMassive)}\r\n

\r\n
\r\n);\r\n\r\nHeaderMassiva.propTypes = {\r\n operazioniMassive: PropTypes.arrayOf(PropTypes.shape({\r\n stato: PropTypes.number,\r\n finishedTimestamp: PropTypes.any,\r\n })),\r\n};\r\n\r\nHeaderMassiva.defaultProps = {\r\n operazioniMassive: [],\r\n};\r\n\r\nexport default HeaderMassiva;\r\n","import React, { useMemo } from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\n/**\r\n * Colonna di una `Table`.\r\n */\r\nconst HeaderColumn = ({ children, width }) => {\r\n const style = useMemo(() => (width ? { width } : undefined), [width]);\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nHeaderColumn.propTypes = {\r\n /** Contenuto da renderizzare all'interno del componente */\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node,\r\n ]),\r\n\r\n /** Larghezza della colonna (es. 125px). Se non definito, la colonna occuperà lo spazio libero */\r\n width: PropTypes.string,\r\n};\r\n\r\nHeaderColumn.defaultProps = {\r\n children: null,\r\n width: null,\r\n};\r\n\r\nexport default HeaderColumn;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\n/**\r\n * Riga dell'header di una `Table`.\r\n */\r\nconst HeaderRow = ({ children }) => (\r\n \r\n {children}\r\n \r\n);\r\n\r\nHeaderRow.propTypes = {\r\n /** Contenuto da renderizzare all'interno del componente */\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node,\r\n ]),\r\n};\r\n\r\nHeaderRow.defaultProps = {\r\n children: null,\r\n};\r\n\r\nexport default HeaderRow;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\nimport HeaderColumn from './HeaderColumn';\r\nimport HeaderRow from './HeaderRow';\r\n\r\n/**\r\n * Header di un component Table.\r\n */\r\nconst Header = ({ children, className }) => (\r\n \r\n {children}\r\n \r\n);\r\n\r\nHeader.propTypes = {\r\n /** Contenuto da renderizzare all'interno del componente */\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node,\r\n ]),\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n};\r\n\r\nHeader.defaultProps = {\r\n children: null,\r\n className: '',\r\n};\r\n\r\nHeader.Row = HeaderRow;\r\nHeader.Column = HeaderColumn;\r\n\r\nexport default Header;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\n/**\r\n * Cella di una `Table`.\r\n */\r\nconst BodyCell = ({ children }) => (\r\n \r\n {children}\r\n \r\n);\r\n\r\nBodyCell.propTypes = {\r\n /** Contenuto da renderizzare all'interno del componente */\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node,\r\n ]),\r\n};\r\n\r\nBodyCell.defaultProps = {\r\n children: null,\r\n};\r\n\r\nexport default BodyCell;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\n/**\r\n * Riga di una `Table`.\r\n */\r\nconst BodyRow = ({ children }) => (\r\n \r\n {children}\r\n \r\n);\r\n\r\nBodyRow.propTypes = {\r\n /** Contenuto da renderizzare all'interno del componente */\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node,\r\n ]),\r\n};\r\n\r\nBodyRow.defaultProps = {\r\n children: null,\r\n};\r\n\r\nexport default BodyRow;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\nimport BodyCell from './BodyCell';\r\nimport BodyRow from './BodyRow';\r\n\r\nconst Body = ({ children, className }) => (\r\n \r\n {children}\r\n \r\n);\r\n\r\nBody.propTypes = {\r\n /** Contenuto da renderizzare all'interno del componente */\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node,\r\n ]),\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n};\r\n\r\nBody.defaultProps = {\r\n children: null,\r\n className: '',\r\n};\r\n\r\nBody.Row = BodyRow;\r\nBody.Cell = BodyCell;\r\n\r\nexport default Body;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\n\r\nconst Footer = ({ children, className }) => (\r\n \r\n {children}\r\n \r\n);\r\n\r\nFooter.propTypes = {\r\n /** Contenuto da renderizzare all'interno del componente */\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node,\r\n ]),\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n};\r\n\r\nFooter.defaultProps = {\r\n children: null,\r\n className: '',\r\n};\r\n\r\nexport default Footer;\r\n","import React from 'react';\r\n\r\nexport function sameType(node, type) {\r\n return React.isValidElement(node) && (node.type === type);\r\n}\r\n\r\nexport function hasComponentWithType(children, type) {\r\n let found = false;\r\n React.Children.forEach(children, (child) => {\r\n if (found) return;\r\n if (sameType(child, type)) {\r\n found = true;\r\n } else if (child.props.children) {\r\n found = hasComponentWithType(child.props.children, type);\r\n }\r\n });\r\n return found;\r\n}\r\n","// utilities comuni ai componenti \"tabelle\".\r\nimport React from 'react';\r\nimport { sameType } from '../../utils/react';\r\n\r\n/**\r\n * Verifica se a qualche livello dei children esiste un componente di tipo ColumnComponent con larghezza fissa.\r\n * @param {React.Element | array} children children di un componente.\r\n * @param {React.Element} ColumnComponent component column\r\n * su cui cercare le proprietà che caratterizzano una colonna di larchezza fissa.\r\n * @returns {boolean} true se a qualche livello esiste un componente di tipo ColumnComponent con larghezza fissa.\r\n */\r\nexport function existFixedColumns(children, ColumnComponent = {}) {\r\n for (const comp of React.Children.toArray(children)) {\r\n if (sameType(comp, ColumnComponent)) {\r\n if (comp.props.width) return true;\r\n }\r\n if (React.isValidElement(comp) && comp.props.children) {\r\n if (existFixedColumns(comp.props.children, ColumnComponent)) return true;\r\n }\r\n }\r\n return false;\r\n}\r\n\r\n/**\r\n * Carica dati da un data source.\r\n *\r\n * @param {func} dataSource sorgente di dati.\r\n * Può essere una funzione, nel qual caso la lista di ritorno è passara alla callback, o un array di oggetti.\r\n * @param {func} callback callback.\r\n * @param {object | undefined} props se specifico delle proprietà,\r\n * significa che datasource è una funzione in grado di gestire pageSize, currentPage, sortProperty, sortOrder, filtri.\r\n * @returns {object} l'oggetto di ritorno avrà Items che è una array con i valori e Count con il numero totale degli oggetti.\r\n */\r\nexport function loadDataSource(dataSource, callback, props = {}) {\r\n const {\r\n pageSize, currentPage, sortProperty, sortOrder, filtri,\r\n } = props;\r\n if (dataSource && typeof (dataSource) === 'function') {\r\n const filteredResult = dataSource(pageSize,\r\n currentPage ? currentPage * pageSize : 0, sortProperty, sortOrder, filtri);\r\n // verifico se mi viene ritornata una promise\r\n if (filteredResult.then && typeof filteredResult.then === 'function') {\r\n filteredResult.then((results) => {\r\n callback(results, props);\r\n });\r\n } else {\r\n callback(filteredResult, props);\r\n }\r\n }\r\n /*\r\n if (dataSource && Array.isArray(dataSource)) {\r\n callback({ Items: dataSource, Count: dataSource.length }, props);\r\n }\r\n */\r\n // caso non gestito, non chiamo la callback\r\n}\r\n","import React, { useMemo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\n\r\nimport Head from './Header';\r\nimport Body from './Body';\r\nimport Foot from './Footer';\r\nimport { existFixedColumns } from '../Utils/table';\r\n\r\n/**\r\nLe tabelle possono essere incorporate in una superficie, come una scheda o una card.\r\nLe tabelle su card o schede possono avere strumenti di navigazione e di manipolazione dei dati in alto e in basso.\r\nPossono essere editabili a seconda del contesto.\r\n */\r\nconst Table = ({\r\n children, clickable, bordered, striped, hover, fixedLayout, className,\r\n}) => {\r\n const fixed = useMemo(() => (\r\n fixedLayout !== undefined && fixedLayout !== null ? fixedLayout : existFixedColumns(children, Head.Column)\r\n ), [children, fixedLayout]);\r\n\r\n return (\r\n \r\n {children}\r\n
\r\n );\r\n};\r\n\r\nTable.propTypes = {\r\n /** Indica se mostrare i bordi */\r\n bordered: PropTypes.bool,\r\n /** Contenuto da renderizzare all'interno del componente */\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node,\r\n ]),\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n /** Indica se mostrare il cursore di tipo pointer sull'hover della riga */\r\n clickable: PropTypes.bool,\r\n /** Indica se evidenziare la riga sull'hover della stessa */\r\n hover: PropTypes.bool,\r\n /** Indica se evidenziare le righe alternate con un colore diverso */\r\n striped: PropTypes.bool,\r\n /**\r\nIndica se la tabella deve gestire la dimensione fissa delle colonne.\r\n\r\nDi default è in grado di determinarlo analizzando i children (vedi prop `width` di `Table.Head.Column`).\r\n */\r\n fixedLayout: PropTypes.bool,\r\n};\r\n\r\nTable.defaultProps = {\r\n bordered: false,\r\n children: null,\r\n className: '',\r\n clickable: false,\r\n hover: false,\r\n striped: false,\r\n fixedLayout: undefined,\r\n};\r\n\r\nTable.Head = Head;\r\nTable.Body = Body;\r\nTable.Foot = Foot;\r\n\r\nexport default Table;\r\n","import Table from './Table';\r\n\r\nexport default Table;\r\n","const fixDate = (value) => {\r\n // fix per IE8 che non sa parsare una data in formato ISO8601 neanche pagandolo\r\n // a meno di non sostitutire - con /\r\n let date = new Date(value.replace(/\\-/ig, '/').replace(/Z$/, '').split('.')[0]);\r\n date = date.setMinutes(date.getMinutes() - date.getTimezoneOffset());\r\n\r\n return date;\r\n};\r\n\r\nconst createDate = (date) => {\r\n const day = addZero(date.getDate());\r\n const month = addZero(date.getMonth() + 1);\r\n const year = date.getFullYear().toString();\r\n\r\n return `${day}/${month}/${year}`;\r\n};\r\n\r\nconst createTime = (date, showMills) => {\r\n const hour = addZero(date.getHours());\r\n const minutes = addZero(date.getMinutes());\r\n const secs = addZero(date.getSeconds());\r\n const mills = addZero(date.getMilliseconds());\r\n\r\n let dateString = `${hour}:${minutes}:${secs}`;\r\n\r\n if (showMills) {\r\n dateString += `,${mills}`;\r\n }\r\n\r\n return dateString;\r\n};\r\n\r\nconst addZero = (value) => (value < 10 ? `0${value}` : value);\r\n\r\nexport default function formattedDate(value, type) {\r\n const date = new Date(value);\r\n\r\n if (isNaN(date)) {\r\n fixDate(date);\r\n }\r\n\r\n let result = '';\r\n\r\n switch (type) {\r\n case 'date':\r\n result = createDate(date);\r\n break;\r\n case 'date-detailed':\r\n result = `${createDate(date)} ${createTime(date, true)}`;\r\n break;\r\n case 'date-time':\r\n result = `${createDate(date)} ${createTime(date, false)}`;\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n return result;\r\n}\r\n","const fixDate = (value) => {\r\n // fix per IE8 che non sa parsare una data in formato ISO8601 neanche pagandolo\r\n // a meno di non sostitutire - con /\r\n let date = new Date(value.replace(/\\-/ig, '/').replace(/Z$/, '').split('.')[0]);\r\n date = date.setMinutes(date.getMinutes() - date.getTimezoneOffset());\r\n\r\n return date;\r\n};\r\n\r\nconst addZero = (value) => (value < 10 ? `0${value}` : value);\r\n\r\nexport default (value, type) => {\r\n const date = new Date(value);\r\n\r\n if (isNaN(date)) {\r\n fixDate(date);\r\n }\r\n\r\n let result = '';\r\n switch (type) {\r\n case 'hour': {\r\n const hour = addZero(date.getHours());\r\n const minutes = addZero(date.getMinutes());\r\n result = `${hour}:${minutes}`;\r\n break;\r\n }\r\n default:\r\n break;\r\n }\r\n\r\n return result;\r\n};\r\n","/**\r\n * Returns a createElement() type based on the props of the Component.\r\n * Useful for calculating what type a component should render as.\r\n *\r\n * @param {function} Component A function or ReactClass.\r\n * @param {object} props A ReactElement props object\r\n * @param {function} [getDefault] A function that returns a default element type.\r\n * @returns {string|function} A ReactElement type\r\n */\r\nfunction getElementType(Component, props, getDefault) {\r\n const { defaultProps = {} } = Component;\r\n\r\n // ----------------------------------------\r\n // user defined \"as\" element type\r\n if (props.as && props.as !== defaultProps.as) return props.as;\r\n\r\n // ----------------------------------------\r\n // computed default element type\r\n if (getDefault) {\r\n const computedDefault = getDefault();\r\n if (computedDefault) return computedDefault;\r\n }\r\n\r\n // ----------------------------------------\r\n // infer anchor links\r\n if (props.href) return 'a';\r\n\r\n // ----------------------------------------\r\n // use defaultProp or 'div'\r\n return defaultProps.as || 'div';\r\n}\r\n\r\nexport default getElementType;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport createDate from './formatter-date';\r\nimport createTime from './formatter-hour';\r\nimport getElementType from '../Utils/getElementType';\r\n\r\nconst FormatterTypes = {\r\n number: 'number',\r\n currency: 'currency',\r\n date: 'date',\r\n dateDetailed: 'date-detailed',\r\n hour: 'hour',\r\n dateTime: 'date-time',\r\n};\r\n\r\n// #### normalizza\r\n// Dato un valore in ingresso come stringa lo normalizza rimuovendo i separatori\r\n// di migliaia\r\nconst normalizza = (value, defaultValue) => {\r\n const absValue = Math.abs(value);\r\n return isNaN(absValue) ? defaultValue : absValue;\r\n};\r\n\r\n// #### toFixed\r\n// Implementazione alternativa del toFixed() javascript che tratta i float come decimali\r\n// evitando i classici problemi di arrotondamento come (0.615).toFixed(2)=0.61)\r\nconst toFixed = (valore, precisione) => {\r\n const precisioneNorm = normalizza(precisione, 2);\r\n const power = 10 ** precisioneNorm;\r\n // moltiplica per la precisione, arrotonda correttamente e poi dividi\r\n // di nuovo per arrotondare correttamente\r\n return (Math.round(normalizza(valore) * power) / power).toFixed(precisioneNorm);\r\n};\r\n\r\n// #### parse\r\n// Esegue il parse di un numero sotto forma di stringa restituendo il numero rappresentato\r\nconst parse = (valoreP, separatoreP) => {\r\n // se non specifico valore restituisco 0\r\n const valore = valoreP || 0;\r\n\r\n // se è un numero lo restituisco\r\n if (typeof valore === 'number') { return valore; }\r\n\r\n // Se non specifico un separatore uso quello di default in Italia\r\n const separatore = separatoreP || ',';\r\n\r\n // Elimino tutti i caratteri tranne cifre, segni meno e separatori decimali\r\n const regex = new RegExp(`[^0-9-${separatore}]`, ['g']);\r\n\r\n const unformatted = parseFloat(\r\n (`${valore}`)\r\n .replace(/\\((.*)\\)/, '-$1')\r\n .replace(regex, '')\r\n .replace(separatore, '.'),\r\n );\r\n\r\n // ritorno il valore\r\n return !isNaN(unformatted) ? unformatted : 0;\r\n};\r\n\r\n// #### format\r\n// Fromatta il valore in ingresso specificando precisione e separatori da usare\r\nconst formattaNumero = (numeroP, precisioneP, separatoreMigliaia, seperatoreDecimali) => {\r\n if (numeroP === null) { return ''; }\r\n\r\n // leggo il numero\r\n const numero = parse(numeroP);\r\n\r\n // leggo le opzioni passate\r\n const opts = {\r\n precisione: precisioneP,\r\n migliaia: separatoreMigliaia,\r\n decimali: seperatoreDecimali,\r\n };\r\n\r\n // normalizza la precisione\r\n const usePrecision = normalizza(opts.precisione);\r\n\r\n // eseguo i calcoli\r\n const negative = numero < 0 ? '-' : '';\r\n\r\n const base = `${parseInt(toFixed(Math.abs(numero || 0), usePrecision), 10)}`;\r\n\r\n const mod = base.length > 3 ? base.length % 3 : 0;\r\n\r\n // formatto il numero\r\n return negative + (mod ? base.substr(0, mod) + opts.migliaia : '')\r\n + base.substr(mod).replace(/(\\d{3})(?=\\d)/g, `$1${opts.migliaia}`)\r\n + (usePrecision ? opts.decimali + toFixed(Math.abs(numero), usePrecision).split('.')[1] : '');\r\n};\r\n\r\nconst format = (value, type, decimali) => {\r\n if (value == null || type == null) {\r\n return null;\r\n }\r\n switch (type) {\r\n case FormatterTypes.number: // 123.456\r\n return formattaNumero(value, decimali || 0, '.', ',');\r\n case FormatterTypes.currency: // 123.456,000\r\n return formattaNumero(value, decimali || 2, '.', ',');\r\n case FormatterTypes.date:\r\n return createDate(value, type);\r\n case FormatterTypes.dateDetailed:\r\n return createDate(value, type);\r\n case FormatterTypes.hour:\r\n return createTime(value, type);\r\n case FormatterTypes.dateTime:\r\n return createDate(value, type);\r\n default:\r\n throw new TypeError('Formatter: formato sconosciuto');\r\n }\r\n};\r\n\r\n/**\r\nIl componente Formatter è stato ideato per permettere di formattare alcuni tipi di dato (numeri, date, cifre)\r\ncon semplicità.\r\n */\r\nconst Formatter = ({\r\n className, valore, tipo, decimali, as,\r\n}) => {\r\n const ElementType = getElementType(Formatter, { as });\r\n return (\r\n \r\n {format(valore, tipo, decimali)}\r\n \r\n );\r\n};\r\n\r\nFormatter.propTypes = {\r\n /** Definisce il tag con il quale renderizzare il componente */\r\n as: PropTypes.string,\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n /** Il numero di decimali da mostrare */\r\n decimali: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.number,\r\n ]),\r\n /** Il tipo di formattazione */\r\n tipo: PropTypes.oneOf([\r\n 'number',\r\n 'currency',\r\n 'date',\r\n 'date-detailed',\r\n 'hour',\r\n 'date-time']).isRequired,\r\n /** Il valore da formattare */\r\n valore: PropTypes.oneOfType([\r\n PropTypes.number,\r\n PropTypes.string,\r\n PropTypes.instanceOf(Date),\r\n ]),\r\n};\r\n\r\nFormatter.defaultProps = {\r\n as: 'span',\r\n className: '',\r\n decimali: 0,\r\n valore: null,\r\n};\r\n\r\nexport default Formatter;\r\n","import Formatter from './Formatter';\r\n\r\nexport default Formatter;\r\n","import React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport Table from '../Table';\r\nimport Formatter from '../Formatter';\r\nimport Button from '../Button';\r\n\r\nconst renderMessageRow = (operazione, message, idx, onRimuovi) => (\r\n \r\n \r\n \r\n -\r\n \r\n \r\n {message}\r\n \r\n onRimuovi(idx)}\r\n text\r\n >\r\n OK\r\n \r\n {operazione.actions}\r\n \r\n \r\n);\r\n\r\nclass TabellaOperazioneSincrona extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n operazione: props.operazione,\r\n };\r\n }\r\n\r\n UNSAFE_componentWillReceiveProps(nextProps) {\r\n const { operazione } = this.props;\r\n\r\n if (nextProps.operazione.index !== operazione.index) {\r\n this.setState({\r\n operazione: nextProps.operazione,\r\n });\r\n }\r\n }\r\n\r\n rimuoviErrore = (index) => {\r\n const { rimuoviOperazione } = this.props;\r\n const { operazione } = this.state;\r\n\r\n const op = operazione;\r\n op.message = op.message.filter((x, i) => i !== index);\r\n\r\n if (op.message.length > 0) {\r\n this.setState({\r\n operazione: op,\r\n });\r\n } else {\r\n rimuoviOperazione(operazione.index);\r\n }\r\n };\r\n\r\n render() {\r\n const {\r\n rimuoviOperazione,\r\n } = this.props;\r\n const {\r\n operazione,\r\n } = 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 Array.isArray(operazione.message)\r\n ? operazione.message.map(\r\n (x, i) => renderMessageRow(operazione, x, i, this.rimuoviErrore),\r\n )\r\n : renderMessageRow(operazione, operazione.content\r\n || operazione.message, operazione.index, rimuoviOperazione)\r\n }\r\n \r\n
Data e oraErroreAzioni
\r\n );\r\n }\r\n}\r\n\r\nTabellaOperazioneSincrona.propTypes = {\r\n operazione: PropTypes.shape({\r\n index: PropTypes.number,\r\n actions: PropTypes.node,\r\n timeStamp: PropTypes.any,\r\n }),\r\n rimuoviOperazione: PropTypes.func,\r\n};\r\n\r\nTabellaOperazioneSincrona.defaultProps = {\r\n operazione: null,\r\n rimuoviOperazione: null,\r\n};\r\n\r\nexport default TabellaOperazioneSincrona;\r\n","import React from 'react';\r\nimport Icon from './Icon';\r\n\r\nexport default Icon(\r\n , '0 0 12 12', 'DownIcon',\r\n);\r\n","import React from 'react';\r\nimport Icon from './Icon';\r\n\r\nexport default Icon(, '0 0 24 12', 'UpIcon');\r\n","import React, { useMemo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\n\r\nconst Colors = ['alarm', 'warning', 'success', 'info', 'safe'];\r\n\r\n/**\r\nLe progress servono per informare l’utente circa il tempo di attesa di un’operazione.\r\nQuando il tempo preciso non si conosce si utilizzano quelle indeterminate.\r\n */\r\nconst Progress = ({\r\n className, indeterminate, percentage, text, color,\r\n}) => {\r\n const percentageValues = useMemo(() => {\r\n const values = Array.isArray(percentage) ? percentage : [percentage];\r\n let total = 0;\r\n return values.map((v, i) => {\r\n const probObj = typeof v === 'number' ? { percentage: v } : v;\r\n const obj = {\r\n percentage: probObj.percentage + total,\r\n key: i,\r\n className: Colors.includes(probObj.color) ? probObj.color : undefined,\r\n color: probObj.color && probObj.color.startsWith('#') ? probObj.color : undefined,\r\n };\r\n total += probObj.percentage;\r\n return obj;\r\n });\r\n }, [percentage]);\r\n\r\n return (\r\n
\r\n {\r\n !indeterminate && percentageValues.map((p, i, arr) => (\r\n \r\n \r\n \r\n
\r\n ))\r\n }\r\n \r\n \r\n {text &&
{text}
}\r\n
\r\n );\r\n};\r\n\r\nProgress.propTypes = {\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n /** Indica se mostrare una progress bar animata senza una percentuale precisa */\r\n indeterminate: PropTypes.bool,\r\n /**\r\nIndica la percentuale di progresso da mostrare.\r\n\r\nOgni elemento può essere indicato con un valore (la percentuale) o con un oggetto (percentage e color).\r\nIl colore può essere una classe tra quelle gestite ('alarm', 'warning', 'success', 'info', 'safe') un colore rgb (#373a3c).\r\n\r\nVedi `Progress.Colors`.\r\n*/\r\n percentage: PropTypes.oneOfType([\r\n PropTypes.number,\r\n PropTypes.arrayOf(PropTypes.number),\r\n PropTypes.shape({\r\n percentage: PropTypes.number.isRequired,\r\n color: PropTypes.string.isRequired,\r\n }),\r\n PropTypes.arrayOf(PropTypes.number),\r\n PropTypes.arrayOf(\r\n PropTypes.shape({\r\n percentage: PropTypes.number.isRequired,\r\n color: PropTypes.string.isRequired,\r\n }),\r\n ),\r\n ]),\r\n /** Testo da mostrare sotto la progress bar */\r\n text: PropTypes.string,\r\n /**\r\nColore di fondo della progress bar\r\n\r\nIl colore può essere una classe tra quelle gestite ('alarm', 'warning', 'success', 'info', 'safe') un colore rgb (#373a3c).\r\n */\r\n color: PropTypes.string,\r\n};\r\n\r\nProgress.defaultProps = {\r\n className: '',\r\n indeterminate: false,\r\n percentage: 0,\r\n text: '',\r\n color: undefined,\r\n};\r\n\r\nexport default Progress;\r\n","import Progress from './Progress';\r\n\r\nexport default Progress;\r\n","import React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { TransitionGroup, CSSTransition } from 'react-transition-group';\r\nimport Formatter from '../Formatter';\r\nimport { StatoOperazione } from './SnackbarUtils';\r\nimport DownIcon from '../Icons/DownIcon';\r\nimport UpIcon from '../Icons/UpIcon';\r\nimport Badge from '../Badge';\r\nimport Progress from '../Progress';\r\nimport Table from '../Table';\r\nimport Button from '../Button';\r\n\r\nclass DettaglioOperazioneMassiva extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n showErrors: false,\r\n };\r\n }\r\n\r\n onErroriExpanded = () => {\r\n const { segnaErroriOperazioneChecked, operazione } = this.props;\r\n\r\n this.setState((prevState) => ({\r\n showErrors: !prevState.showErrors,\r\n }), () => segnaErroriOperazioneChecked(operazione.id));\r\n };\r\n\r\n onErroriCollapsed = () => {\r\n this.setState((prevState) => ({\r\n showErrors: !prevState.showErrors,\r\n }));\r\n };\r\n\r\n handleFeedback = (e) => {\r\n const { eliminaOperazioneAsync, onFeedback, operazione } = this.props;\r\n\r\n eliminaOperazioneAsync && eliminaOperazioneAsync(operazione.id);\r\n onFeedback && onFeedback(e, operazione.id, operazione);\r\n };\r\n\r\n stampaInfo = (operazione) => {\r\n const { errori } = operazione;\r\n const { showErrors } = this.state;\r\n return (\r\n
\r\n
\r\n \r\n -\r\n \r\n
\r\n {\r\n operazione.stato === StatoOperazione.COMPLETED && operazione.checked && (\r\n
\r\n {operazione.selezionati\r\n && (\r\n <>\r\n \r\n Selezionati:\r\n {operazione.selezionati}\r\n \r\n \r\n Elaborati:\r\n {operazione.elaborati}\r\n \r\n \r\n )}\r\n {!operazione.selezionati && Completato}\r\n
\r\n )\r\n }\r\n {\r\n operazione.stato === StatoOperazione.COMPLETED\r\n && errori.length > 0\r\n && (showErrors\r\n ? \r\n : \r\n )\r\n }\r\n {\r\n operazione.stato === StatoOperazione.COMPLETED\r\n && errori.filter((x) => !x.deleted).length > 0\r\n && {operazione.errori.filter((x) => !x.deleted).length}\r\n }\r\n {\r\n operazione.stato === StatoOperazione.COMPLETED\r\n && (errori.length === 0 || operazione.testoFeedback)\r\n && (\r\n \r\n {operazione.testoFeedback || 'OK'}\r\n \r\n )\r\n }\r\n {\r\n operazione.stato === StatoOperazione.PENDING && (\r\n \r\n )\r\n }\r\n {\r\n operazione.stato === StatoOperazione.PENDING\r\n && errori.length > 0\r\n && (showErrors\r\n ? \r\n : \r\n )\r\n }\r\n {\r\n operazione.stato === StatoOperazione.PENDING\r\n && errori.length > 0 && {errori.length}\r\n }\r\n
\r\n
\r\n );\r\n };\r\n\r\n getErrori = (operazione) => operazione.errori.filter((x) => !x.deleted);\r\n\r\n render() {\r\n const {\r\n aggiornaStatoErrore,\r\n eliminaOperazioneAsync,\r\n operazione,\r\n } = this.props;\r\n const {\r\n showErrors,\r\n } = this.state;\r\n const errori = this.getErrori(operazione);\r\n return (\r\n
\r\n
\r\n {this.stampaInfo(operazione)}\r\n
\r\n\r\n \r\n {showErrors && (\r\n \r\n \r\n \r\n \r\n \r\n {operazione.stato === StatoOperazione.COMPLETED && (\r\n \r\n )}\r\n \r\n \r\n \r\n {errori.map((e, i) => (/* eslint-disable react/no-array-index-key */\r\n \r\n \r\n {operazione.stato === StatoOperazione.COMPLETED && (\r\n \r\n )}\r\n \r\n ) /* eslint-enable */)}\r\n \r\n
Errore\r\n eliminaOperazioneAsync(operazione.id)}\r\n text\r\n >\r\n Pulisci\r\n \r\n
{e.content || e.message}\r\n aggiornaStatoErrore(operazione.id, e.id, operazione.stato === StatoOperazione.COMPLETED)}\r\n text\r\n >\r\n OK\r\n \r\n {e.actions}\r\n
\r\n \r\n )}\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nDettaglioOperazioneMassiva.propTypes = {\r\n aggiornaStatoErrore: PropTypes.func,\r\n eliminaOperazioneAsync: PropTypes.func,\r\n onFeedback: PropTypes.func,\r\n operazione: PropTypes.object, // eslint-disable-line react/forbid-prop-types\r\n segnaErroriOperazioneChecked: PropTypes.func,\r\n};\r\n\r\nDettaglioOperazioneMassiva.defaultProps = {\r\n aggiornaStatoErrore: null,\r\n eliminaOperazioneAsync: null,\r\n onFeedback: null,\r\n operazione: null,\r\n segnaErroriOperazioneChecked: null,\r\n};\r\n\r\nexport default DettaglioOperazioneMassiva;\r\n","const doesNodeContainClick = (node, event) => node && node.contains(event.target);\r\n\r\nexport default doesNodeContainClick;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\nimport { CSSTransition, TransitionGroup } from 'react-transition-group';\r\nimport ErroreIcon from '../Icons/ErroreIcon';\r\nimport Badge from '../Badge';\r\nimport Spinner from '../Spinner';\r\nimport Tabs from '../Tabs';\r\nimport HeaderOperazione from './HeaderOperazione';\r\nimport HeaderMassiva from './HeaderMassiva';\r\nimport TabellaOperazioneSincrona from './TabellaOperazioneSincrona';\r\nimport DettaglioOperazioneMassiva from './DettaglioOperazioneMassiva';\r\nimport {\r\n Types, Timeout, StatoOperazione, MAX_TEXT_LENGTH,\r\n} from './SnackbarUtils';\r\nimport doesNodeContainClick from '../Utils/doesNodeContainClick';\r\n\r\nexport default class SnackbarElement extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n disableAnimation: false,\r\n expanded: false,\r\n operazioneCorrente: null,\r\n operazioniMassive: [],\r\n operazioniOneShot: [],\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.index = 0;\r\n this.mouseOver = false;\r\n this.removeOnMouseOut = null;\r\n\r\n document.addEventListener('click', this.closeifOpen);\r\n\r\n this.location = window.location.hash;\r\n window.onhashchange = this.locationHashChanged;\r\n }\r\n\r\n componentWillUnmount() {\r\n document.removeEventListener('click', this.closeifOpen);\r\n }\r\n\r\n locationHashChanged = () => {\r\n if (window.location.hash !== this.location) {\r\n this.clearSync();\r\n }\r\n };\r\n\r\n closeifOpen = (e) => {\r\n const { expanded, operazioniMassive } = this.state;\r\n if (expanded) {\r\n if (operazioniMassive.length > 0) {\r\n this.setState({\r\n disableAnimation: true,\r\n }, () => setTimeout(() => this.setState({\r\n disableAnimation: false,\r\n }), 100));\r\n }\r\n\r\n if (doesNodeContainClick(this.refList, e)) return;\r\n\r\n this.setState({\r\n expanded: false,\r\n });\r\n this.clearExpand();\r\n }\r\n };\r\n\r\n show = (operazione) => {\r\n let newOp = { ...operazione }; // eslint-disable-line prefer-const\r\n if (operazione.type === Types.ERROR\r\n && (operazione.message.length > MAX_TEXT_LENGTH || Array.isArray(operazione.message))) {\r\n newOp.confirm = true;\r\n }\r\n newOp.timeStamp = (new Date(Date.now())).toISOString();\r\n newOp.index = this.index;\r\n this.index += 1;\r\n this.controllaHistoryOperazioni(newOp);\r\n this.mostraOperazione(newOp);\r\n };\r\n\r\n controllaHistoryOperazioni = (operazione) => {\r\n const { operazioneCorrente } = this.state;\r\n if (operazione.type === Types.ERROR && operazione.confirm) {\r\n const op = [];\r\n this.setState({\r\n operazioniOneShot: op,\r\n });\r\n } else if (operazioneCorrente\r\n && operazioneCorrente.type === Types.ERROR && operazioneCorrente.confirm) {\r\n const op = [];\r\n op.push(operazioneCorrente);\r\n this.setState({\r\n operazioniOneShot: op,\r\n });\r\n }\r\n };\r\n\r\n mostraOperazione = (operazione) => {\r\n const { expanded } = this.state;\r\n\r\n let t = operazione.timeout || Timeout[Object.keys(Timeout)[operazione.type]];\r\n if (expanded) {\r\n t = 0;\r\n }\r\n this.setState({\r\n operazioneCorrente: operazione,\r\n }, () => this.removeCurrent(t, operazione.index));\r\n };\r\n\r\n inizializzaOperazioni = (operazioni) => {\r\n this.setState({\r\n operazioniOneShot: operazioni.operazioni || [],\r\n operazioniMassive: operazioni.operazioniMassive || [],\r\n operazioneCorrente: operazioni.current || null,\r\n expanded: operazioni.expand || false,\r\n });\r\n };\r\n\r\n removeCurrent = (timeout, index, avoidStore) => {\r\n setTimeout(() => {\r\n const { operazioneCorrente } = this.state;\r\n\r\n if (operazioneCorrente && operazioneCorrente.index === index) {\r\n if (!this.mouseOver) {\r\n if (!avoidStore && operazioneCorrente.confirm) {\r\n this.moveToHistory(operazioneCorrente);\r\n }\r\n this.setState({\r\n operazioneCorrente: null,\r\n });\r\n } else if (this.mouseOver) {\r\n this.removeOnMouseOut = index;\r\n }\r\n }\r\n }, timeout);\r\n };\r\n\r\n moveToHistory = (item) => {\r\n const { operazioniOneShot } = this.state;\r\n const tmpHistory = operazioniOneShot\r\n .concat(item)\r\n .sort((a, b) => a.index - b.index).reverse()\r\n .filter((x, i) => i < 10);\r\n\r\n this.setState({\r\n operazioniOneShot: tmpHistory,\r\n });\r\n };\r\n\r\n rimuoviOperazione = (index) => {\r\n const { operazioniOneShot } = this.state;\r\n const ops = operazioniOneShot\r\n .filter((x) => x.index !== index)\r\n .sort((a, b) => a.index - b.index).reverse();\r\n this.setState({\r\n operazioniOneShot: ops,\r\n });\r\n };\r\n\r\n clear = () => {\r\n this.setState({\r\n operazioniOneShot: [],\r\n operazioniMassive: [],\r\n operazioneCorrente: null,\r\n expanded: false,\r\n });\r\n };\r\n\r\n clearSync = () => {\r\n const { operazioneCorrente, operazioniOneShot } = this.state;\r\n const sync = operazioniOneShot.filter((x) => x.type !== Types.ERROR);\r\n const c = operazioneCorrente\r\n && operazioneCorrente.type === Types.ERROR ? null : operazioneCorrente;\r\n this.setState({\r\n operazioniOneShot: sync,\r\n operazioneCorrente: c,\r\n });\r\n };\r\n\r\n creaOperazioneMassiva = (operazione) => {\r\n const { operazioneCorrente, operazioniMassive } = this.state;\r\n let newOp = { ...operazione }; // eslint-disable-line prefer-const\r\n newOp.timeStamp = (new Date(Date.now())).toISOString();\r\n newOp.errori = operazione.errori || [];\r\n newOp.progresso = operazione.progresso || 0;\r\n newOp.conteggioErrori = 0;\r\n newOp.stato = StatoOperazione.PENDING;\r\n\r\n const operazioni = operazioniMassive;\r\n\r\n operazioni.push(newOp);\r\n\r\n if (operazioneCorrente && operazioneCorrente.confirm) {\r\n this.removeCurrent(0, operazioneCorrente.index);\r\n }\r\n\r\n setTimeout(() => this.setState({\r\n operazioniMassive: operazioni,\r\n }, () => this.mostraOperazione(newOp)), 50);\r\n };\r\n\r\n tipoNotificaFineOperazioneMassiva = (numeroErrori) => (\r\n numeroErrori === 0 ? Types.SUCCESS : Types.WARNING);\r\n\r\n calcolaProgresso = (progresso, selezionati) => progresso / selezionati * 100;\r\n\r\n completaOperazione = (id, progresso, testoFeedback, onFeedback) => {\r\n const { operazioniMassive } = this.state;\r\n const operazione = operazioniMassive.find((x) => x.id === id);\r\n if (!operazione) {\r\n return;\r\n }\r\n\r\n operazione.stato = StatoOperazione.COMPLETED;\r\n operazione.finishedTimestamp = (new Date()).toISOString();\r\n operazione.checked = true;\r\n operazione.elaborati = progresso;\r\n operazione.testoFeedback = testoFeedback;\r\n operazione.onFeedback = onFeedback;\r\n\r\n this.setState({\r\n operazioniMassive: operazioniMassive.filter((x) => x.id !== id).concat(operazione),\r\n });\r\n };\r\n\r\n aggiornaOperazione = (id, progresso) => {\r\n const { operazioniMassive } = this.state;\r\n const operazione = operazioniMassive.find((x) => x.id === id);\r\n operazione.progresso = this.calcolaProgresso(progresso, operazione.selezionati);\r\n\r\n const operazioni = operazioniMassive.filter((x) => x.id !== id).concat(operazione);\r\n\r\n this.setState({\r\n operazioniMassive: operazioni,\r\n });\r\n };\r\n\r\n aggiornaProgressoOperazione = (id, progresso) => {\r\n const { operazioniMassive } = this.state;\r\n const operazione = operazioniMassive.find((x) => x.id === id);\r\n if (!operazione || !operazione.selezionati) {\r\n return;\r\n }\r\n if (progresso === operazione.selezionati) {\r\n this.completaOperazione(id, progresso);\r\n } else {\r\n this.aggiornaOperazione(id, progresso);\r\n }\r\n };\r\n\r\n aggiungiErroreAOperazione = (id, err) => {\r\n const { operazioniMassive } = this.state;\r\n const operazione = operazioniMassive.find((x, i) => x.id === id);\r\n if (!operazione) {\r\n return;\r\n }\r\n const newError = {\r\n ...err,\r\n checked: false,\r\n deleted: false,\r\n };\r\n operazione.errori.push(newError);\r\n const operazioni = operazioniMassive\r\n .filter((x) => x.id !== id)\r\n .concat(operazione);\r\n this.setState({\r\n operazioniMassive: operazioni,\r\n });\r\n };\r\n\r\n ExtraActions = (type, actions) => actions;\r\n\r\n expand = () => {\r\n if (this.timeOut == null) {\r\n this.timeOut = setTimeout(this.realExpand, 2000);\r\n }\r\n };\r\n\r\n realExpand = () => {\r\n const { operazioniOneShot, operazioniMassive } = this.state;\r\n if (operazioniOneShot.length > 0 || operazioniMassive.length > 0) {\r\n this.setState((prevState) => ({\r\n expanded: !prevState.expanded,\r\n }));\r\n this.clearExpand();\r\n }\r\n };\r\n\r\n clearExpand = () => {\r\n if (this.timeOut) {\r\n clearTimeout(this.timeOut);\r\n this.timeOut = null;\r\n }\r\n };\r\n\r\n onOperazioneBtnClick = (e, operazione) => {\r\n e.stopPropagation();\r\n const { operazioniMassive } = this.state;\r\n this.mouseOver = false;\r\n\r\n if (operazione.type === Types.MASSIVA && operazioniMassive.length > 0) {\r\n this.setState({\r\n expanded: true,\r\n disableAnimation: true,\r\n }, () => this.setState({\r\n disableAnimation: false,\r\n }));\r\n } else if (operazione.type === Types.MASSIVA) {\r\n this.setState({\r\n expanded: true,\r\n });\r\n } else if (operazione.type === Types.ERROR\r\n && (operazione.message.length > MAX_TEXT_LENGTH || Array.isArray(operazione.message))) {\r\n this.setState({\r\n disableAnimation: true,\r\n }, () => {\r\n this.removeCurrent(0, operazione.index);\r\n setTimeout(this.realExpand, 0);\r\n });\r\n setTimeout(() => this.setState({\r\n disableAnimation: false,\r\n }), 50);\r\n } else {\r\n this.removeCurrent(0, operazione.index, true);\r\n }\r\n };\r\n\r\n segnaErroriOperazioneChecked = (idOperazione) => {\r\n const { operazioniMassive } = this.state;\r\n\r\n const operazione = operazioniMassive.find((x) => x.id === idOperazione);\r\n operazione.errori = operazione.errori.map((x) => {\r\n const err = x;\r\n err.checked = true;\r\n return err;\r\n });\r\n\r\n const om = operazioniMassive.filter((x) => x.id !== idOperazione).concat(operazione);\r\n\r\n this.setState({\r\n operazioniMassive: om,\r\n });\r\n };\r\n\r\n haErroriNonVisualizzati = () => {\r\n const { operazioniMassive } = this.state;\r\n return operazioniMassive.filter(\r\n (x) => x.errori.filter((y) => !y.checked).length > 0,\r\n ).length > 0;\r\n };\r\n\r\n onMouseOver = () => {\r\n this.mouseOver = true;\r\n };\r\n\r\n onMouseOut = () => {\r\n this.mouseOver = false;\r\n if (this.removeOnMouseOut != null) {\r\n this.removeCurrent(0, this.removeOnMouseOut);\r\n this.removeOnMouseOut = null;\r\n }\r\n };\r\n\r\n onClick = (operazione) => {\r\n this.mouseOver = false;\r\n if ((operazione.type !== Types.ERROR\r\n || !operazione.confirm\r\n || operazione.message.length <= MAX_TEXT_LENGTH)\r\n && operazione.type !== Types.MASSIVA) {\r\n return;\r\n }\r\n this.removeCurrent(0, operazione.index);\r\n this.setState({\r\n disableAnimation: true,\r\n }, () => setTimeout(this.realExpand, 0));\r\n setTimeout(() => this.setState({\r\n disableAnimation: false,\r\n }), 50);\r\n };\r\n\r\n visualizzaOperazione = () => {\r\n const { className } = this.props;\r\n const { operazioneCorrente, expanded, operazioniMassive } = this.state;\r\n\r\n const operazione = operazioneCorrente\r\n || operazioniMassive.find((x) => x.stato === StatoOperazione.COMPLETED && !x.checked)\r\n || operazioniMassive.find((x) => x.stato === StatoOperazione.PENDING);\r\n if (operazione == null) {\r\n return null;\r\n }\r\n\r\n const classes = cns(\r\n 'snackbar__item',\r\n {\r\n 'snackbar__item--positive': operazione.type === Types.SUCCESS,\r\n 'snackbar__item--error': operazione.type === Types.ERROR,\r\n 'snackbar__item--warning': operazione.type === Types.WARNING,\r\n 'snackbar__item--massiva': operazione.type === Types.MASSIVA && operazione.stato === StatoOperazione.PENDING,\r\n 'snackbar__item--massivaFinished': operazione.type === Types.MASSIVA && operazione.statoOperazione === StatoOperazione.COMPLETED,\r\n snackbar__testoLungo: (Array.isArray(operazione.message) && operazione.message.length > 0)\r\n ? (operazione.message[0].length > MAX_TEXT_LENGTH)\r\n : (operazione.message.length > MAX_TEXT_LENGTH),\r\n },\r\n className,\r\n );\r\n\r\n return (\r\n this.onClick(operazione)}\r\n onMouseOut={this.onMouseOut}\r\n onMouseOver={this.onMouseOver}\r\n onFocus={() => { }}\r\n onBlur={() => { }}\r\n >\r\n \r\n
\r\n {operazione.stato !== StatoOperazione.COMPLETED && this.haErroriNonVisualizzati()\r\n && operazione.type === Types.MASSIVA && !expanded\r\n && }\r\n
\r\n {operazione.stato === StatoOperazione.COMPLETED && operazione.errori.length > 0 && (\r\n
\r\n {operazione.errori.length}\r\n
\r\n )}\r\n \r\n );\r\n };\r\n\r\n eliminaOperazioneAsync = (id) => {\r\n this.setState((prevState) => ({\r\n operazioniMassive: prevState.operazioniMassive.filter((x) => x.id !== id),\r\n }));\r\n };\r\n\r\n aggiornaStatoErrore = (opIndex, errId, cancel) => {\r\n const { operazioniMassive } = this.state;\r\n const operazioneMassiva = operazioniMassive.find((x) => x.id === opIndex);\r\n\r\n const errore = operazioneMassiva.errori.find((x) => x.id === errId);\r\n errore.checked = true;\r\n errore.deleted = cancel;\r\n\r\n const errori = operazioneMassiva.errori\r\n .filter((x) => x.id !== errId)\r\n .concat(errore);\r\n\r\n operazioneMassiva.errori = errori;\r\n operazioneMassiva.conteggioErrori += 1;\r\n\r\n const om = operazioniMassive\r\n .filter((x) => x.id !== opIndex)\r\n .concat(operazioneMassiva)\r\n .sort((a, b) => new Date(a.timeStamp) - new Date(b.timeStamp));\r\n\r\n this.setState({\r\n operazioniMassive: om,\r\n });\r\n };\r\n\r\n showExpandBar = () => {\r\n const {\r\n operazioneCorrente, expanded, operazioniMassive, operazioniOneShot,\r\n } = this.state;\r\n if (!operazioneCorrente\r\n && operazioniMassive.filter((x) => x.stato === StatoOperazione.PENDING).length === 0\r\n && ((operazioniOneShot.length > 0\r\n || operazioniMassive.filter((x) => !x.deleted).length > 0) && !expanded)) {\r\n return true;\r\n }\r\n return false;\r\n };\r\n\r\n stampaTabOperazioniMassive = (operazioniMassive) => {\r\n const uniqueOperations = {};\r\n\r\n operazioniMassive.forEach((x) => {\r\n if (Object.prototype.hasOwnProperty.call(uniqueOperations, x.message)) {\r\n const tmpArray = uniqueOperations[x.message]\r\n .concat(x)\r\n .sort((a, b) => new Date(a.timeStamp) - new Date(b.timeStamp));\r\n\r\n uniqueOperations[x.message] = tmpArray;\r\n } else {\r\n uniqueOperations[x.message] = [x];\r\n }\r\n });\r\n\r\n return Object.keys(uniqueOperations).map((x, i) => {\r\n const mostraSpinner = uniqueOperations[x]\r\n .filter((op) => op.stato !== StatoOperazione.COMPLETED).length > 0;\r\n\r\n const errori = uniqueOperations[x].reduce(\r\n (acc, val) => acc + val.errori.filter((op) => !op.checked).length,\r\n 0,\r\n );\r\n\r\n return (\r\n \r\n {mostraSpinner && }\r\n {x}\r\n {errori > 0 && (\r\n \r\n {errori}\r\n \r\n )}\r\n
\r\n )}\r\n >\r\n {uniqueOperations[x].map((op, idx) => (\r\n \r\n ))}\r\n \r\n );\r\n });\r\n };\r\n\r\n visualizzaOperazioni = () => {\r\n const { expanded, operazioniOneShot, operazioniMassive } = this.state;\r\n\r\n if (operazioniMassive.length > 0 && operazioniOneShot.length > 0) {\r\n return (\r\n
\r\n \r\n \r\n {operazioniOneShot.map((x, i) => (\r\n \r\n \r\n \r\n ))}\r\n {this.stampaTabOperazioniMassive(operazioniMassive)}\r\n \r\n
\r\n );\r\n }\r\n if (operazioniOneShot.length === 1) {\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 if (operazioniMassive.length > 0) {\r\n return (\r\n
\r\n \r\n \r\n {this.stampaTabOperazioniMassive(operazioniMassive)}\r\n \r\n
\r\n );\r\n }\r\n return null;\r\n };\r\n\r\n render() {\r\n const {\r\n className,\r\n ...others\r\n } = this.props;\r\n const {\r\n disableAnimation,\r\n expanded,\r\n operazioniOneShot,\r\n } = this.state;\r\n\r\n const classes = cns(\r\n 'snackbar',\r\n {\r\n snackbar__expand: expanded && operazioniOneShot.length > 0,\r\n },\r\n className,\r\n );\r\n\r\n const transactionComp = expanded\r\n ? createTransaction(this.visualizzaOperazioni(), disableAnimation, 'snackBar__items')\r\n : createTransaction(this.visualizzaOperazione(), disableAnimation, 'snackBar__current');\r\n\r\n return (\r\n \r\n { this.refList = r; }}\r\n >\r\n {transactionComp}\r\n {this.showExpandBar() && (\r\n { }}\r\n onBlur={() => { }}\r\n />\r\n )}\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nSnackbarElement.displayName = 'Snackbar';\r\n\r\nSnackbarElement.propTypes = {\r\n className: PropTypes.string,\r\n};\r\n\r\nSnackbarElement.defaultProps = {\r\n className: '',\r\n};\r\n\r\nfunction createTransaction(item, disableAnimation, className) {\r\n return (\r\n \r\n {item && (\r\n \r\n {item}\r\n \r\n )}\r\n \r\n );\r\n}\r\n","import React from 'react';\r\nimport { render } from 'react-dom';\r\nimport { Types } from './SnackbarUtils';\r\nimport SnackbarElement from './SnackbarElement';\r\n\r\nconst domContainerNode = document.createElement('div');\r\ndomContainerNode.setAttribute('id', 'snackbar');\r\ndocument.body.appendChild(domContainerNode);\r\n\r\nlet refSnackBar;\r\nrender(\r\n { refSnackBar = r; }} />,\r\n domContainerNode,\r\n);\r\n\r\nexport function createSnackbar(ref) {\r\n return {\r\n show(operazione) {\r\n ref != null && ref.show(operazione);\r\n },\r\n creaOperazioneMassiva(operazione) {\r\n ref != null && ref.creaOperazioneMassiva(operazione);\r\n },\r\n aggiornaProgressoOperazione(id, progresso) {\r\n ref != null && ref.aggiornaProgressoOperazione(id, progresso);\r\n },\r\n terminaOperazioneMassiva(id, progresso, testoFeedabck, onFeedback) {\r\n ref != null && ref.completaOperazione(id, progresso, testoFeedabck, onFeedback);\r\n },\r\n aggiungiErroreAOperazione(id, err) {\r\n ref != null && ref.aggiungiErroreAOperazione(id, err);\r\n },\r\n inizializzaOperazioni(operazioni) {\r\n ref != null && ref.inizializzaOperazioni(operazioni);\r\n },\r\n recuperaOperazioniMassive() {\r\n return ref != null ? JSON.parse(JSON.stringify(ref.state.operazioniMassive)) : {};\r\n },\r\n clear() {\r\n ref != null && ref.clear();\r\n },\r\n\r\n Types,\r\n Element: ref,\r\n };\r\n}\r\n\r\nconst Snackbar = createSnackbar(refSnackBar);\r\n\r\nexport default Snackbar;\r\n","import { Timeout } from './SnackbarUtils';\r\nimport Snackbar from './Snackbar';\r\n\r\n// #region COMMON\r\n\r\nconst initialize = (syncTasks, asyncTasks, currentMessage, showExpanded) => {\r\n const initialState = {\r\n operazioni: syncTasks,\r\n operazioniMassive: asyncTasks,\r\n current: currentMessage,\r\n expand: showExpanded,\r\n };\r\n\r\n Snackbar.inizializzaOperazioni(initialState);\r\n};\r\n\r\nconst clear = () => {\r\n Snackbar.clear();\r\n};\r\n\r\n// #endregion\r\n\r\n// #region SYNC FUNCTIONS\r\n\r\nconst notifySuccess = (message, confirm, timeout) => {\r\n const task = {\r\n type: Snackbar.Types.SUCCESS,\r\n message,\r\n timeout: timeout || Timeout.SHORT,\r\n confirm: confirm || false,\r\n };\r\n\r\n Snackbar.show(task);\r\n};\r\n\r\nconst notifyError = (notifyMessage, confirm, timeout) => {\r\n const message = Array.isArray(notifyMessage) ? notifyMessage.join(' ') : notifyMessage;\r\n\r\n const task = {\r\n type: Snackbar.Types.ERROR,\r\n message,\r\n timeout: timeout || Timeout.LONG,\r\n confirm: confirm || true,\r\n };\r\n\r\n Snackbar.show(task);\r\n};\r\n\r\nconst notifyWarning = (message, confirm, timeout) => {\r\n const task = {\r\n type: Snackbar.Types.WARNING,\r\n message,\r\n timeout: timeout || Timeout.SHORT,\r\n confirm: confirm || false,\r\n };\r\n\r\n Snackbar.show(task);\r\n};\r\n\r\n// #endregion\r\n\r\n// #region ASYNC FUNCTIONS\r\n\r\nconst startDeterminateAsyncTask = (taskCorrelationId, taskName, operations) => {\r\n const task = {\r\n type: Snackbar.Types.MASSIVA,\r\n id: taskCorrelationId,\r\n message: taskName,\r\n selezionati: operations,\r\n };\r\n\r\n Snackbar.creaOperazioneMassiva(task);\r\n\r\n return taskCorrelationId;\r\n};\r\n\r\nconst startIndeterminateAsyncTask = (taskCorrelationId, taskName) => {\r\n const task = {\r\n type: Snackbar.Types.MASSIVA,\r\n id: taskCorrelationId,\r\n message: taskName,\r\n selezionati: false,\r\n };\r\n\r\n Snackbar.creaOperazioneMassiva(task);\r\n\r\n return taskCorrelationId;\r\n};\r\n\r\nconst updateDeterminateAsyncTaskProgress = (taskCorrelationId, progress) => {\r\n Snackbar.aggiornaProgressoOperazione(taskCorrelationId, progress);\r\n};\r\n\r\nconst notifyAsyncTaskError = (taskCorrelationId, message, content) => {\r\n const error = {\r\n message,\r\n content,\r\n };\r\n Snackbar.aggiungiErroreAOperazione(taskCorrelationId, error);\r\n};\r\n\r\nconst getAsyncTasks = () => Snackbar.recuperaOperazioniMassive();\r\n\r\nconst completeAsyncTask = (taskCorrelationId, progress, feedbackText, feedbackCallback) => {\r\n Snackbar.terminaOperazioneMassiva(taskCorrelationId, progress, feedbackText, feedbackCallback);\r\n};\r\n\r\n// #endregion\r\n\r\nconst SnackbarWrapper = {\r\n clear,\r\n completeAsyncTask,\r\n getAsyncTasks,\r\n initialize,\r\n notifyAsyncTaskError,\r\n notifyError,\r\n notifySuccess,\r\n notifyWarning,\r\n startDeterminateAsyncTask,\r\n startIndeterminateAsyncTask,\r\n updateDeterminateAsyncTaskProgress,\r\n};\r\n\r\nexport default SnackbarWrapper;\r\n","import Snackbar from './Snackbar';\r\nimport { setConnectionErrorCallback } from '../EventoServer/connectionError';\r\nimport SnackbarWrapper from './SnackbarWrapper';\r\n\r\n// Export secondario\r\nexport { default as SnackbarWrapper } from './SnackbarWrapper';\r\n\r\n// Di default, se viene importata la Snackbar questa diventa l'handler dei problemi di connessione.\r\n// Introdotto per evitare un dipendenza tra WebRequest e Snackbar che costa circa 9k nel bundle.\r\nsetConnectionErrorCallback((errorMessage) => {\r\n SnackbarWrapper.notifyError(errorMessage, false, 25000);\r\n});\r\n\r\nexport default Snackbar;\r\n","import { ConsoleLogger, Snackbar } from 'framework-ui-components';\r\nimport { isTest } from './environment';\r\n\r\n/**\r\n * Oggetto Log utilizzato per mostrare segnalazioni nella console\r\n */\r\nconst Log = new ConsoleLogger('TaskForce');\r\nLog.init(isTest() ? ConsoleLogger.LogLevel.all : ConsoleLogger.LogLevel.none);\r\n\r\nconst GenericError = 'Si è verificato un errore generico';\r\n\r\n/**\r\n * Metodo utilizzato per loggare alla console un errore e visualizzare con snackbar\r\n * un messaggio generico\r\n * @param {*} e evento di errore da loggare\r\n */\r\nconst logApiError = (e) => {\r\n Log.error(e);\r\n Snackbar.show({\r\n type: Snackbar.Types.ERROR,\r\n message: GenericError,\r\n });\r\n};\r\n\r\n/**\r\n * Metodo utilizzato per mostrare una snackbar con l'elenco dei messaggi passati\r\n * in input separati da un ' - '\r\n * @param {Array.} errors elenco di errori da visualizzare\r\n */\r\nconst showSnackbarErrors = (errors) => {\r\n Snackbar.show({\r\n type: Snackbar.Types.ERROR,\r\n message: (errors && errors.join(' - ')) || GenericError,\r\n });\r\n};\r\n\r\nexport {\r\n logApiError,\r\n showSnackbarErrors,\r\n};\r\n\r\nexport default Log;\r\n","const storeTemp = {};\r\n\r\n/**\r\n * Funzione che ritorna un valore salvato su una memoria temporanea\r\n * @param {*} name\r\n */\r\nconst getStoredTempItem = (name) => storeTemp[name];\r\n\r\n/**\r\n * Metodo utilizzato per salvare un valore in una memoria temporanea\r\n * @param {*} name\r\n * @param {*} value\r\n */\r\nconst setStoredTempItem = (name, value) => {\r\n storeTemp[name] = value;\r\n};\r\n\r\n/**\r\n * Funzione che ritorna il valore salvato in sessione\r\n * @param {*} name\r\n */\r\nconst getStoredSessionItem = (name) => window.sessionStorage.getItem(name);\r\n\r\n/**\r\n * Metodo utilizzato per salvare un valore in session\r\n * @param {*} name\r\n * @param {*} value\r\n */\r\nconst setStoredSessionItem = (name, value) => {\r\n window.sessionStorage.setItem(name, value);\r\n};\r\n\r\nexport {\r\n getStoredTempItem,\r\n setStoredTempItem,\r\n getStoredSessionItem,\r\n setStoredSessionItem,\r\n};\r\n","import { getStoredSessionItem, setStoredSessionItem } from './store';\r\n\r\n/**\r\n * Funzione che ritorna i parametri querystring della location\r\n * corrente\r\n */\r\nconst getUrlParams = () => {\r\n const params = {};\r\n if (window.location && window.location.href) {\r\n window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi,\r\n (m, key, value) => {\r\n let paramValue = decodeURIComponent(value);\r\n // trasformo true/false in boolean\r\n if (paramValue === 'true') paramValue = true;\r\n if (paramValue === 'false') paramValue = false;\r\n params[key] = paramValue;\r\n });\r\n }\r\n return params;\r\n};\r\n\r\nconst StoredParamsKey = 'appParams_';\r\n\r\n/**\r\n * Recupera dalla sessione i parametri associati al key\r\n * @param {*} key\r\n */\r\nconst getStoredParams = (key) => JSON.parse(getStoredSessionItem(StoredParamsKey + key) || '{}');\r\n\r\nconst setStoredParams = (key, params) => {\r\n setStoredSessionItem(StoredParamsKey + key, JSON.stringify(params));\r\n};\r\n\r\n/**\r\n * Effettua il redirect all'url passata\r\n * @param {*} url\r\n */\r\nconst gotoUrl = (url) => {\r\n window.location.href = url;\r\n};\r\n\r\n/**\r\n * Verifica se l'attuale location è la root\r\n * @param {*} location oggetto window.location oppure quello restituito\r\n * da useLocation di react-router-dom\r\n */\r\nconst isRoot = (location = window.location) => {\r\n const path = location instanceof Location || location.href !== undefined\r\n ? (location.hash && location.hash.split('?')[0])\r\n : location.pathname;\r\n if (path) {\r\n return path === '#/' || path === '/';\r\n }\r\n return true;\r\n};\r\n\r\nexport {\r\n getUrlParams,\r\n getStoredParams,\r\n setStoredParams,\r\n gotoUrl,\r\n isRoot,\r\n};\r\n","/**\r\n * Funzione che determina se i due oggetti sono uguali nella struttura e nel valore\r\n * @param {*} a\r\n * @param {*} b\r\n */\r\nconst equalDeep = (a, b) => {\r\n if (a === b) return true;\r\n\r\n if (a && b && typeof a == 'object' && typeof b == 'object') {\r\n if (a.constructor !== b.constructor) return false;\r\n\r\n let length; let i;\r\n if (Array.isArray(a)) {\r\n length = a.length;\r\n if (length !== b.length) return false;\r\n for (i = 0; i < length; i += 1) {\r\n if (!equalDeep(a[i], b[i])) return false;\r\n }\r\n return true;\r\n }\r\n\r\n if ((a instanceof Map) && (b instanceof Map)) {\r\n if (a.size !== b.size) return false;\r\n for (i of a.entries()) { if (!b.has(i[0])) return false; }\r\n for (i of a.entries()) { if (!equalDeep(i[1], b.get(i[0]))) return false; }\r\n return true;\r\n }\r\n\r\n if ((a instanceof Set) && (b instanceof Set)) {\r\n if (a.size !== b.size) return false;\r\n for (i of a.entries()) { if (!b.has(i[0])) return false; }\r\n return true;\r\n }\r\n\r\n if (ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\r\n length = a.length;\r\n if (length !== b.length) return false;\r\n for (i = 0; i < length; i += 1) {\r\n if (a[i] !== b[i]) return false;\r\n }\r\n return true;\r\n }\r\n\r\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\r\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\r\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\r\n\r\n const keys = Object.keys(a);\r\n length = keys.length;\r\n if (length !== Object.keys(b).length) return false;\r\n\r\n for (i = 0; i < length; i += 1) {\r\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\r\n }\r\n\r\n for (i = 0; i < length; i += 1) {\r\n const key = keys[i];\r\n if (!equalDeep(a[key], b[key])) return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n return false;\r\n};\r\n\r\n/**\r\n * Funzione che determina se un oggetto è vuoto\r\n * @param {*} obj\r\n */\r\nconst isEmptyObject = (obj) => !obj || Object.keys(obj).length === 0;\r\n\r\n/**\r\n * Funzione che appiattisce un oggetto\r\n * @param {*} obj\r\n */\r\nconst getFlatObject = (obj) => {\r\n if (!obj || typeof obj !== 'object') return obj;\r\n const newObj = {};\r\n Object.keys(obj).forEach((key) => {\r\n if (typeof obj[key] === 'object' && obj[key] !== null) {\r\n const temp = getFlatObject(obj[key]);\r\n Object.keys(temp).forEach((key2) => {\r\n newObj[`${key}${key2}`] = temp[key2];\r\n });\r\n } else {\r\n newObj[key] = obj[key];\r\n }\r\n });\r\n return newObj;\r\n};\r\n\r\nexport {\r\n equalDeep,\r\n isEmptyObject,\r\n getFlatObject,\r\n};\r\n","import FwPlugins from 'framework-plugins';\r\nimport { getRandomId } from 'framework-ui-components/Components/Utils/baseComponentHelper';\r\nimport {\r\n getUrlParams, getStoredParams, setStoredParams,\r\n} from './navigation';\r\nimport { isEmptyObject } from './object';\r\n\r\nconst ParamsUID = 'apuid';\r\n\r\n// parametri in query string\r\nconst qsParams = getUrlParams();\r\n\r\n// identificativo del pacchetto parametri corrente\r\nconst currentParamsUID = qsParams[ParamsUID] || getRandomId();\r\n\r\nconst isToStoredParams = () => !FwPlugins.isCalledByParent();\r\n\r\n/**\r\n * Funzione che ritorna l'elenco dei parametri inziali\r\n */\r\nconst getInitialParams = () => {\r\n if (!isToStoredParams()) return {};\r\n const apUid = qsParams[ParamsUID];\r\n return (apUid && getStoredParams(apUid)) || {};\r\n};\r\n\r\n/**\r\n * Funzione che restituisce l'elenco dei parametri passati in query string\r\n * @param {*} hideQueryStrings\r\n */\r\nconst getQsParams = (hideQueryStrings = true) => {\r\n const qsParamsNoUid = { ...qsParams };\r\n delete qsParamsNoUid[ParamsUID];\r\n // se non sono un child e se esistono parametri in qs allora li salvo e faccio sparire dall'url\r\n if (isToStoredParams() && (!isEmptyObject(qsParamsNoUid) || !qsParams[ParamsUID])) {\r\n // esistono dati in qs: li storo e pulisco il location (sempre che non sia chiamato come child)\r\n const { href } = window.location;\r\n const newUri = hideQueryStrings ? href.substring(0, href.indexOf('?')) : href;\r\n window.history.replaceState({}, document.title, addParamsUidToUrl(newUri));\r\n }\r\n return qsParamsNoUid;\r\n};\r\n\r\n/**\r\n * Funzione che aggiunge ad una url il valore del paramUId\r\n * @param {*} url\r\n */\r\nconst addParamsUidToUrl = (url) => {\r\n if (url && url.indexOf(ParamsUID) < 0) {\r\n return `${url}${url.indexOf('#') < 0 ? '#/' : ''}${url.indexOf('?') < 0 ? '?' : '&'}${ParamsUID}=${currentParamsUID}`;\r\n }\r\n return url;\r\n};\r\n\r\n/**\r\n * Metodo che salva i parametri con il currentParamId\r\n * @param {*} params\r\n */\r\nconst setQsParams = (params) => {\r\n if (isToStoredParams()) {\r\n setStoredParams(currentParamsUID, params);\r\n }\r\n};\r\n\r\nexport {\r\n getInitialParams,\r\n getQsParams,\r\n setQsParams,\r\n addParamsUidToUrl,\r\n};\r\n","const NOOP = () => { };\r\n\r\nconst STOP_EVENT_PROPAGATION = (ev) => {\r\n ev.stopPropagation();\r\n};\r\n\r\nexport {\r\n NOOP,\r\n STOP_EVENT_PROPAGATION,\r\n};\r\n","import React from 'react';\r\nimport Icon from './Icon';\r\n\r\nexport default Icon(, null, 'CollapseIcon');\r\n","import React from 'react';\r\nimport Icon from './Icon';\r\n\r\nexport default Icon(, null, 'ExpandIcon');\r\n","import React, { useState, useMemo, useCallback } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\nimport { NOOP } from '../../utils/const';\r\nimport CollapseIcon from '../Icons/CollapseIcon';\r\nimport ExpandIcon from '../Icons/ExpandIcon';\r\n\r\n/**\r\n * Gestione dello stato open/close.\r\n * @param {bool | null} open se open non è definito, lo stato è gestito internamente altrimenti open definisce lo stato della card.\r\n * @param {bool} defaultClosed definisce lo stato inziale.\r\n * @param {func} onOpen callback attivata se lo stato cambia da chiuso a aperto.\r\n * @param {func} onClose callback attivata se lo stato cambia da aperto a chiuso.\r\n */\r\nfunction useOpenClose(open, defaultClosed, onOpen, onClose) {\r\n const [intOpen, setIntOpen] = useState(!defaultClosed);\r\n\r\n const controlled = open !== null && open !== undefined;\r\n const setOpen = useCallback((value, evt) => {\r\n if (!controlled) setIntOpen(value);\r\n if (value) {\r\n onOpen(evt);\r\n } else {\r\n onClose(evt);\r\n }\r\n }, [controlled, onClose, onOpen]);\r\n\r\n return [controlled ? open : intOpen, setOpen];\r\n}\r\n\r\nconst Card = ({\r\n defaultClosed,\r\n children,\r\n collapsible,\r\n action,\r\n breadCrumb,\r\n className,\r\n onAction,\r\n fullBody,\r\n multipleActions,\r\n title,\r\n open: openProp,\r\n onOpen,\r\n onClose,\r\n}) => {\r\n const [open, setOpen] = useOpenClose(openProp, defaultClosed, onOpen, onClose);\r\n\r\n const classes = useMemo(() => cns(\r\n 'card',\r\n {\r\n 'card--open': open,\r\n 'card--close': !open,\r\n 'card--fullBody': fullBody,\r\n },\r\n className,\r\n ), [open, fullBody, className]);\r\n\r\n return (\r\n
\r\n
\r\n {title && (\r\n
\r\n {breadCrumb &&
{breadCrumb}
}\r\n {title}\r\n
\r\n )}\r\n {collapsible && (\r\n
\r\n {open\r\n ? (\r\n setOpen(false, evt)}\r\n viewBox=\"0 0 50 50\"\r\n />\r\n )\r\n : (\r\n setOpen(true, evt)}\r\n viewBox=\"0 0 50 50\"\r\n />\r\n )}\r\n
\r\n )}\r\n {multipleActions &&
{multipleActions}
}\r\n {action && onAction && (\r\n \r\n {action}\r\n
\r\n )}\r\n
\r\n
\r\n
{children}
\r\n
\r\n
\r\n );\r\n};\r\n\r\nCard.propTypes = {\r\n /** Il testo dell'azione di default della card */\r\n action: PropTypes.string,\r\n /** Un breadCrumb opzionale da far comparire sopra il titolo */\r\n breadCrumb: PropTypes.node,\r\n /** Contenuto da renderizzare all'interno del componente */\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node,\r\n ]),\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n /** Indica se la card è collassabile, ovvero può essere aperta e chiusa */\r\n collapsible: PropTypes.bool,\r\n /** Indica se la card è chiusa di default */\r\n defaultClosed: PropTypes.bool,\r\n /** Indica se il contenuto della card deve espandersi fino al bordo senza padding */\r\n fullBody: PropTypes.bool,\r\n /** Se alla card sono associate più azioni qui possiamo\r\n * specificare cosa mostrare all'utente come azioni della card */\r\n multipleActions: PropTypes.node,\r\n /**\r\n * La callback da chiamare quando viene invocata l'azione primaria:\r\n * ```\r\n * onAction(event)\r\n * ```\r\n * dove:\r\n * * *evento*: evento scatenante\r\n */\r\n onAction: PropTypes.func,\r\n /** Il titolo da associare alla card */\r\n title: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.node,\r\n ]),\r\n\r\n /**\r\nCallback attivata quando la card viene aperta. Parametro: evento.\r\n\r\nLa `Card` deve essere `collapsible`.\r\n */\r\n onOpen: PropTypes.func,\r\n\r\n /**\r\nCallback attivata quando la card viene chiusa. Parametro: evento.\r\n\r\nLa `Card` deve essere `collapsible`.\r\n */\r\n onClose: PropTypes.func,\r\n\r\n /**\r\nSe la proprietà non è definita, la gestione dello stato è demandata al componente.\r\nSe la proprietà è `true`/`false` definisce lo stato della card (aperto/chiuso).\r\n */\r\n open: PropTypes.bool,\r\n};\r\n\r\nCard.defaultProps = {\r\n action: '',\r\n breadCrumb: null,\r\n children: null,\r\n className: '',\r\n collapsible: false,\r\n defaultClosed: false,\r\n fullBody: false,\r\n multipleActions: null,\r\n onAction: null,\r\n title: '',\r\n\r\n open: null,\r\n onOpen: NOOP,\r\n onClose: NOOP,\r\n};\r\n\r\nexport default Card;\r\n","import Card from './Card';\r\n\r\nexport default Card;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport getElementType from '../Utils/getElementType';\r\n\r\n/**\r\nIl componente è stato pensato per renderizzare delle intestazioni.\r\n\r\nQuesto componente fa uno di un particolare metodo di renderizzazione, rappresentato dalla prop as.\r\nSpecificando in tale proprietà un tag HTML o un componente React, verrà disegnato esso per rappresentare il componente Heading.\r\n */\r\nconst Heading = (props) => {\r\n const {\r\n children,\r\n content,\r\n className,\r\n as,\r\n ...others\r\n } = props;\r\n const ElementType = getElementType(Heading, props);\r\n\r\n return (\r\n \r\n {content || children}\r\n \r\n );\r\n};\r\n\r\nHeading.propTypes = {\r\n /** Definisce il tag con il quale renderizzare il componente */\r\n as: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\r\n /** Contenuto da renderizzare all'interno del componente */\r\n children: PropTypes.node,\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n /** Contenuto da renderizzare all'interno del componente */\r\n content: PropTypes.node,\r\n};\r\n\r\nHeading.defaultProps = {\r\n as: '',\r\n children: null,\r\n className: '',\r\n content: null,\r\n};\r\n\r\nexport default Heading;\r\n","import Heading from './Heading';\r\n\r\nexport default Heading;\r\n","import React from 'react';\r\nimport {\r\n Heading, Card, Badge,\r\n} from 'framework-ui-components';\r\nimport PropTypes from 'prop-types';\r\nimport ErroreIcon from 'framework-ui-components/Components/Icons/ErroreIcon';\r\n\r\nconst PaginaErrore = ({ error, errorHint, errorHintAlternativo }) => (\r\n \r\n
\r\n
\r\n \r\n {error}\r\n {errorHint && (\r\n \r\n {errorHintAlternativo || 'Ricarica la pagina. Se il problema persiste, contatta l\\'assistenza.'}\r\n \r\n )}\r\n
\r\n
\r\n
\r\n);\r\n\r\nPaginaErrore.defaultProps = {\r\n errorHint: true,\r\n errorHintAlternativo: null,\r\n};\r\n\r\nPaginaErrore.propTypes = {\r\n /** Errore da visualizzare */\r\n error: PropTypes.string.isRequired,\r\n errorHint: PropTypes.bool,\r\n errorHintAlternativo: PropTypes.string,\r\n};\r\n\r\nexport default PaginaErrore;\r\n","function createThunkMiddleware(extraArgument) {\n return function (_ref) {\n var dispatch = _ref.dispatch,\n getState = _ref.getState;\n return function (next) {\n return function (action) {\n if (typeof action === 'function') {\n return action(dispatch, getState, extraArgument);\n }\n\n return next(action);\n };\n };\n };\n}\n\nvar thunk = createThunkMiddleware();\nthunk.withExtraArgument = createThunkMiddleware;\n\nexport default thunk;","const ACTION_UTENTE_INIT_SET = 'UTENTE_INIT_SET';\r\n\r\n/**\r\n * Azione utilizzata per impostare i dati dell'utente\r\n * @param {*} userinfo\r\n */\r\nconst setUtenteInitAction = (userinfo) => (dispatch) => dispatch({\r\n type: ACTION_UTENTE_INIT_SET,\r\n payload: userinfo,\r\n});\r\n\r\nexport {\r\n ACTION_UTENTE_INIT_SET,\r\n setUtenteInitAction,\r\n};\r\n","const ACTION_APP_PARAMS_SET = 'APP_PARAMS_SET';\r\n\r\n/**\r\n * Azione per impostare i parametri applicativi\r\n * @param {*} appParams\r\n */\r\nconst setAppParamsAction = (appParams) => (dispatch) => dispatch({\r\n type: ACTION_APP_PARAMS_SET,\r\n payload: appParams,\r\n});\r\n\r\nexport {\r\n ACTION_APP_PARAMS_SET,\r\n setAppParamsAction,\r\n};\r\n","import { useEffect, useMemo } from 'react';\r\nimport MessagesPlugin from '../models/messages';\r\n\r\n/**\r\n * L'hook si registra a FwPlugins e usa l'oggetto/funzione reducer prodotto\r\n * da reducerCreator per gestire gli eventi.\r\n *\r\n * Se reducerCreator produce un oggetto, esegue `reducer[type](payload)`,\r\n * se reducerCreator produce una funzione, esegue `reducer(type,payload)`,\r\n * @param {func} reducerCreator funzione senza parametri che genera l'oggetto reducer\r\n * @param {array} dependencies dipendenze della funzione. Sono utilizzare per\r\n * memorizzare il risultato di reducerCreator.\r\n */\r\nconst usePluginReducer = (reducerCreator, dependencies) => {\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n const reducer = useMemo(reducerCreator, dependencies);\r\n useEffect(() => {\r\n const handler = ({ type, payload }) => {\r\n if (typeof reducer === 'object') {\r\n const callback = reducer[type];\r\n callback && callback(payload);\r\n } else if (typeof reducer === 'function') {\r\n reducer(type, payload);\r\n }\r\n };\r\n MessagesPlugin.subscribe(handler);\r\n return () => MessagesPlugin.unsubscribe(handler);\r\n }, [reducer]);\r\n};\r\n\r\nexport default usePluginReducer;\r\n","import { createContext } from 'react';\r\n\r\nlet globalModalContext;\r\n\r\nconst ModalContext = createContext({\r\n setOpen: undefined,\r\n subscribe: undefined,\r\n unsubscribe: undefined,\r\n});\r\n\r\n/**\r\n * NON USARE\r\n * questo è un trucco per gestire le confirm che vengono lancitare \"fuori\" dal lifecycle di React\r\n * e non possono ereditare il contensto.\r\n */\r\nModalContext.setContext = (ctx) => { globalModalContext = ctx; };\r\nModalContext.getContext = () => globalModalContext;\r\n\r\nModalContext.setOpenOrGlobal = (open, setOpen, options) => {\r\n if (setOpen) {\r\n setOpen(open, options);\r\n } else if (globalModalContext && globalModalContext.setOpen) {\r\n globalModalContext.setOpen(open, options);\r\n }\r\n};\r\nModalContext.subscribeOrGlobal = (subscribe, callback) => {\r\n if (subscribe) {\r\n subscribe(callback);\r\n } else if (globalModalContext && globalModalContext.subscribe) {\r\n globalModalContext.subscribe(callback);\r\n }\r\n};\r\nModalContext.unsubscribeOrGlobal = (unsubscribe, callback) => {\r\n if (unsubscribe) {\r\n unsubscribe(callback);\r\n } else if (globalModalContext && globalModalContext.unsubscribe) {\r\n globalModalContext.unsubscribe(callback);\r\n }\r\n};\r\n\r\nexport default ModalContext;\r\n","import { useEffect, useRef, useCallback } from 'react';\r\n\r\n/**\r\n * Hook per la chiamata debounce di una fuzione\r\n * @param {func} callback\r\n * @param {number} delay (milliseconds)\r\n * @param {*} deps\r\n */\r\nconst useDebouncedFunc = (callback, delay = 100, deps = []) => {\r\n const latestCallback = useRef();\r\n const latestTimeout = useRef();\r\n\r\n useEffect(() => {\r\n latestCallback.current = callback;\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [callback, ...deps]);\r\n\r\n return useCallback((...args) => {\r\n if (latestTimeout.current) {\r\n clearTimeout(latestTimeout.current);\r\n }\r\n latestTimeout.current = setTimeout(() => { latestCallback.current(...args); }, delay);\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [delay, ...deps]);\r\n};\r\n\r\nexport default useDebouncedFunc;\r\n","import { useEffect } from 'react';\r\nimport { addWindowEventListener, removeWindowEventListener } from '../models/windowData';\r\n\r\n/**\r\n * Hook che effettua la registrazione e deregistrazione ad un evento window.\r\n * @param {string} type tipo evento\r\n * @param {func} listener callback\r\n * @param {object} options opzioni di registrazione\r\n * @param {string=} eventContext contesto di utilizzo dell'evento\r\n */\r\nconst useEventListener = (type, listener, options, eventContext = '') => {\r\n useEffect(() => {\r\n addWindowEventListener(type, listener, options, eventContext);\r\n return () => {\r\n removeWindowEventListener(type, listener, options, eventContext);\r\n };\r\n }, [listener, options, type, eventContext]);\r\n};\r\n\r\nexport default useEventListener;\r\n","import { useEffect } from 'react';\r\nimport MessagesPlugin from '../models/messages';\r\n\r\n/**\r\n * Hook che effettua la registrazione e deregistrazione di un handler a Plugin\r\n * @param {func} handleMessages gestore dei messaggi\r\n */\r\nconst usePluginHandler = (handleMessages) => {\r\n useEffect(() => {\r\n if (!handleMessages) return () => {};\r\n MessagesPlugin.subscribe(handleMessages);\r\n return () => {\r\n MessagesPlugin.unsubscribe(handleMessages);\r\n };\r\n }, [handleMessages]);\r\n};\r\n\r\nexport default usePluginHandler;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { PluginMessageTypes } from '../../../models/constants';\r\nimport MessagesPlugin from '../../../models/messages';\r\n\r\n/**\r\n * Componente utilizzato per gestire il ridimensionamento di un contenuto con un parent\r\n */\r\nconst PluginDialogSize = ({ children }) => (\r\n {\r\n if (!el) return;\r\n const { width: boundWidth, height: boundHeight } = el.getBoundingClientRect();\r\n let width = boundWidth;\r\n let height = boundHeight;\r\n // se impostato uno zoom inferiore al 100% aggiunto un px alla dimensione dell'iframe che conterrà la modale\r\n if (window.devicePixelRatio < 1) {\r\n height += 1;\r\n width += 1;\r\n }\r\n MessagesPlugin.postMessageToParent(PluginMessageTypes.DIALOG_SIZE, { width, height });\r\n }}\r\n style={{ display: 'inline-block' }}\r\n >\r\n {children}\r\n
\r\n);\r\n\r\nPluginDialogSize.propTypes = {\r\n /** Contenuto da misurare */\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node,\r\n ]).isRequired,\r\n};\r\n\r\nexport default PluginDialogSize;\r\n","import React, { useMemo } from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nexport const defaultLocation = {\r\n href: () => Promise.resolve(window.location.href),\r\n assign: (url) => {\r\n window.location.assign(url);\r\n return Promise.resolve();\r\n },\r\n};\r\n\r\nexport const LocationContext = React.createContext();\r\n\r\n/**\r\n * Il provider definisce il contesto per accedere a servizi tipicamente offerti dall'oggetto location.\r\n *\r\n * Il provider ha un comportamento di default che utilizza l'oggetto location.\r\n * Può essere sovrascritto da plugins dato che in quel caso l'url e l'apertura di una nuova pagina è delegata al padre.\r\n */\r\nexport default function LocationProvider({ children, href, assign }) {\r\n const context = useMemo(() => ({\r\n href: href || defaultLocation.href,\r\n assign: assign || defaultLocation.assign,\r\n }), [href, assign]);\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n}\r\n\r\nLocationProvider.defaultLocation = defaultLocation;\r\n\r\nLocationProvider.propTypes = {\r\n /** Contenuto da renderizzare all'interno del componente */\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node,\r\n ]).isRequired,\r\n\r\n /** Ritorna una promise che restituisce l'url corrente */\r\n href: PropTypes.func,\r\n\r\n /** Apre l'url nella pagina corrente */\r\n assign: PropTypes.func,\r\n};\r\n\r\nLocationProvider.defaultProps = {\r\n href: undefined,\r\n assign: undefined,\r\n};\r\n","import React, { useCallback } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { LocationProvider } from 'framework-ui-components';\r\nimport { callParent } from '../../../models/forward';\r\nimport { PluginMessageTypes } from '../../../models/constants';\r\nimport { isCalledByParent } from '../../../models/caller';\r\nimport MessagesPlugin from '../../../models/messages';\r\nimport Log from '../../../utils/log';\r\n\r\n/**\r\n * Componente usato per la gestione del routeHistory via plugins\r\n */\r\nconst PluginLocationProvider = ({ children }) => {\r\n const href = useCallback(() => (\r\n isCalledByParent()\r\n ? new Promise((resolve) => {\r\n // nel caso ci siano change hash, aspettiamo che vengano risolti prima di rsetituire l'url\r\n setTimeout(() => callParent(PluginMessageTypes.GET_ROOT_LOCATION)\r\n .then((rootLocation) => rootLocation.href)\r\n .then(resolve), 1000);\r\n })\r\n : LocationProvider.defaultLocation.href), []);\r\n\r\n const assign = useCallback((url) => {\r\n if (isCalledByParent()) {\r\n MessagesPlugin.postMessageToParent(PluginMessageTypes.GOTO_EXTERNAL_URL, url);\r\n } else {\r\n LocationProvider.defaultLocation.assign(url);\r\n }\r\n }, []);\r\n\r\n if (!LocationProvider) {\r\n Log.warn('Per la gestione della Location/RouteHistory è richiesta la versione framework-ui-components:2.9.0');\r\n return children;\r\n }\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nPluginLocationProvider.propTypes = {\r\n /** Contenuto da renderizzare all'interno del plugin */\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node,\r\n ]).isRequired,\r\n};\r\n\r\nexport default PluginLocationProvider;\r\n","import React, { useMemo, useRef } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { ModalContext } from 'framework-ui-components';\r\nimport useDebouncedFunc from 'framework-ui-components/Components/Hooks/useDebouncedFunc';\r\nimport useRegisteredFunctions from 'framework-ui-components/Components/Hooks/useRegisteredFunctions';\r\nimport { PluginMessageTypes, ParentModalCaller } from '../../../models/constants';\r\nimport MessagesPlugin, { PluginMessages } from '../../../models/messages';\r\nimport usePluginAppChild from '../../../hooks/usePluginAppChild';\r\nimport usePluginReducer from '../../../hooks/usePluginReducer';\r\nimport { getUrlParams } from '../../../utils/navigation';\r\nimport PluginDialogSize from '../PluginDialogSize/PluginDialogSize';\r\nimport PluginLocationProvider from '../PluginLocationProvider/PluginLocationProvider';\r\n\r\n/**\r\n * Spedisce al parent del plugin il messaggio segnalando l'apertura di una modale.\r\n *\r\n * se ci sono altre modali aperte allora evito di inviare a parent messaggi di chiusura\r\n * NOTA: non è contemplata la gestione di background differenti: il primo messaggio modalizer\r\n * mandato ai parent vince su tutti i successivi che arriveranno.\r\n * ESEMPIO se apro un modaInput e sopra una modale, vedrò sul parent la velina, se poi\r\n * chiudo la modale, resterà la velina finchè non chiudo anche il modalInput.\r\n * Per ora accettiamo questa soluzione, nell'ipotesi che sia molto improbabile aprire una modale da una modalInput.\r\n */\r\nfunction postMessageModalizerToParent(\r\n open,\r\n options,\r\n openedModalList,\r\n messages,\r\n) {\r\n const modalizerMessagePayload = { active: !!open, ...options };\r\n if (open) {\r\n // memorizzo il messaggio di apertura ricevuto\r\n openedModalList.current.push(modalizerMessagePayload);\r\n } else {\r\n openedModalList.current.pop();\r\n // se esistono ancora modali aperte non faccio nulla.\r\n if (openedModalList.current.length > 0) return;\r\n }\r\n (messages || MessagesPlugin).postMessageToParent(\r\n PluginMessageTypes.MODALIZER,\r\n modalizerMessagePayload,\r\n );\r\n}\r\n\r\n/**\r\n * Root di ogni applicazione usata in un plugin\r\n */\r\nconst PluginApp = ({ children, pluginIsClickableOutside, messages }) => {\r\n const openedModalList = useRef([]);\r\n\r\n const [subscribe, unsubscribe, callAll] = useRegisteredFunctions();\r\n\r\n const modalContextValue = useMemo(\r\n () => ({\r\n setOpen: (open, options = {}) => postMessageModalizerToParent(open, options, openedModalList, messages),\r\n subscribe,\r\n unsubscribe,\r\n }),\r\n [messages, subscribe, unsubscribe],\r\n );\r\n\r\n ModalContext.setContext(modalContextValue); // Trucco per gestire componenti fuori dal life cycle React, vedi confirm!\r\n\r\n usePluginAppChild(pluginIsClickableOutside);\r\n\r\n // evento che distribuisco attraverso il contesto per indicare\r\n // agli interessati che si sta cliccando in un'area esterna alla modale\r\n const eventoModalizerClick = useDebouncedFunc(() => {\r\n callAll(PluginMessageTypes.MODALIZER_CLICK);\r\n }, 10, []);\r\n\r\n usePluginReducer(() => ({\r\n [PluginMessageTypes.MODALIZER_CLICK]: eventoModalizerClick,\r\n }), []);\r\n\r\n const calledByModal = useMemo(() => !!getUrlParams()[ParentModalCaller], []);\r\n\r\n return (\r\n \r\n \r\n {calledByModal ? (\r\n \r\n {children}\r\n \r\n ) : children}\r\n \r\n \r\n );\r\n};\r\n\r\nPluginApp.propTypes = {\r\n /** Contenuto da renderizzare all'interno del plugin */\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node,\r\n ]).isRequired,\r\n /** Callback utilizzata per vincolare gli eventi di click */\r\n pluginIsClickableOutside: PropTypes.func,\r\n /** AD USO INTERNO: di default utilizza l'istanza globale di PluginMessages */\r\n messages: PropTypes.instanceOf(PluginMessages),\r\n};\r\n\r\nPluginApp.defaultProps = {\r\n messages: undefined,\r\n pluginIsClickableOutside: null,\r\n};\r\n\r\nexport default PluginApp;\r\n","import { useRef, useCallback } from 'react';\r\n/**\r\n * Hook utilizzato per gestire una registrazione/deregistrazione di callback da poter\r\n * chiamare\r\n */\r\nconst useRegisteredFunctions = () => {\r\n const regs = useRef([]);\r\n\r\n const subscribe = useCallback((callback) => {\r\n if (!callback || typeof callback !== 'function') {\r\n throw new TypeError('Obbligatoria funzione callback per subscribe');\r\n }\r\n regs.current.push(callback);\r\n return this;\r\n }, []);\r\n\r\n const unsubscribe = useCallback((callback) => {\r\n if (!callback || typeof callback !== 'function') {\r\n throw new TypeError('Obbligatoria funzione callback per unsubscribe');\r\n }\r\n for (let i = 0; i < regs.current.length; i += 1) {\r\n if (regs.current[i] === callback) {\r\n regs.current.splice(i, 1);\r\n return this;\r\n }\r\n }\r\n return this;\r\n }, []);\r\n\r\n const callAll = useCallback((event) => {\r\n regs.current.forEach((callback) => callback(event));\r\n }, []);\r\n\r\n return [subscribe, unsubscribe, callAll];\r\n};\r\n\r\nexport default useRegisteredFunctions;\r\n","import { useCallback } from 'react';\r\nimport useDebouncedFunc from 'framework-ui-components/Components/Hooks/useDebouncedFunc';\r\nimport { PluginMessageTypes, PluginCallsTypes } from '../models/constants';\r\nimport MessagesPlugin from '../models/messages';\r\nimport { callAndResponseToParent } from '../models/forward';\r\nimport Log from '../utils/log';\r\nimport { setLocation } from '../utils/navigation';\r\nimport useEventListener from './useEventListener';\r\nimport usePluginHandler from './usePluginHandler';\r\n\r\n/**\r\n * Hook che consente di gestire tutte le funzionalità minima del framework plugins per il child\r\n * (escluse le operazioni di hashing legate al routing del child)\r\n * @param {func} pluginIsClickableOutside funzione per vincolare gli eventi di click esterni al child\r\n */\r\nconst usePluginAppChild = (pluginIsClickableOutside = null) => {\r\n const eventoReload = setLocation;\r\n\r\n const eventoCallForward = useCallback(({\r\n type, uri, params, callId,\r\n }) => {\r\n // gestisco la chiamata per verificare se è in corso una\r\n // operazione e non è possibile cliccare altrove nel parent\r\n if (type === PluginCallsTypes.IS_CLICKABLE_OUTSIDE) {\r\n let isClickableOutside;\r\n if (pluginIsClickableOutside) {\r\n // ho trovato la funzione nel child.\r\n isClickableOutside = pluginIsClickableOutside(params);\r\n } else {\r\n Log.error(`Arrivato un messaggio \"${PluginCallsTypes.IS_CLICKABLE_OUTSIDE}\" non gestito: non trovata la funzione pluginIsClickableOutside nel child`);\r\n // Inoltro al parent una risposta positiva nel caso\r\n // non sia stata trovata la funzione nel child\r\n isClickableOutside = true;\r\n }\r\n // Inoltro al parent una risposta\r\n MessagesPlugin.postMessageToParent(\r\n PluginMessageTypes.CALL_FORWARD_RESPONSE,\r\n { callId, response: isClickableOutside },\r\n );\r\n } else {\r\n callAndResponseToParent(type, uri, params, callId);\r\n }\r\n }, [pluginIsClickableOutside]);\r\n\r\n const eventoFocus = useDebouncedFunc(() => {\r\n document.body.click();\r\n }, 10, []);\r\n\r\n const handleMessages = useCallback((message) => {\r\n let toForward = false;\r\n switch (message.type) {\r\n case PluginMessageTypes.RELOAD:\r\n // viene richiesto dal parent un reload ad una\r\n // pagina (gestione back dal browser)\r\n eventoReload(message.payload);\r\n break;\r\n case PluginMessageTypes.CALL_FORWARD:\r\n eventoCallForward(message.payload);\r\n toForward = true;\r\n break;\r\n case PluginMessageTypes.FOCUS:\r\n eventoFocus();\r\n toForward = true;\r\n break;\r\n default:\r\n }\r\n // se questo child è anche parent, allora inoltro il messaggio ai childs\r\n if (toForward) {\r\n MessagesPlugin.forwardMessageToChilds(message);\r\n }\r\n }, [eventoCallForward, eventoFocus, eventoReload]);\r\n\r\n const onFocus = useDebouncedFunc(() => {\r\n MessagesPlugin.postMessageToParent(PluginMessageTypes.FOCUS);\r\n }, 10, []);\r\n\r\n usePluginHandler(handleMessages);\r\n\r\n useEventListener('focus', onFocus, false, 'appChildFocus');\r\n};\r\n\r\nexport default usePluginAppChild;\r\n","import React, { useEffect, Fragment } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useHistory } from 'react-router';\r\nimport { PluginMessageTypes } from '../../../models/constants';\r\nimport MessagesPlugin from '../../../models/messages';\r\n\r\n/**\r\n * Componente utilizzato per gestire il routing di un applicativo utilizzato come plugin\r\n */\r\nconst PluginRouter = ({ children }) => {\r\n const history = useHistory();\r\n\r\n useEffect(() => {\r\n MessagesPlugin.postMessageToParent(PluginMessageTypes.CHANGE_HASH, history.location.pathname);\r\n MessagesPlugin.postMessageToParent(PluginMessageTypes.CHANGE_HASH2, { action: history.action, path: history.location.pathname });\r\n }, [history.action, history.location.pathname]);\r\n\r\n return (\r\n // eslint-disable-next-line react/jsx-no-useless-fragment\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nPluginRouter.propTypes = {\r\n /** Contenuto da renderizzare all'interno del plugin */\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node,\r\n ]).isRequired,\r\n};\r\n\r\nexport default PluginRouter;\r\n","import React, { useMemo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\n\r\nconst Body = ({ children, className }) => {\r\n const bodyClass = useMemo(() => cns('application__body', className), [className]);\r\n return (\r\n
\r\n {children}\r\n
\r\n );\r\n};\r\n\r\nBody.propTypes = {\r\n /** Contenuto da renderizzare all'interno del componente */\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node,\r\n ]),\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n};\r\n\r\nBody.defaultProps = {\r\n children: null,\r\n className: '',\r\n};\r\n\r\nexport default Body;\r\n","import React, { useMemo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\n\r\nconst Header = ({\r\n children, className, logo, appName,\r\n}) => {\r\n const headerClass = useMemo(() => cns('application__header', className), [className]);\r\n return (\r\n
\r\n
{logo || 'Servizi CGN'}
\r\n {children}\r\n { appName && (\r\n
\r\n {appName}\r\n
\r\n ) }\r\n
\r\n );\r\n};\r\n\r\nHeader.propTypes = {\r\n /** Contenuto da renderizzare all'interno del componente */\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node,\r\n ]),\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n /** Permette di specificare cosa renderizzare\r\n * come logo da visualizzare invece di quello di default */\r\n logo: PropTypes.element,\r\n /** Icona (svg) con il nome dell'applicazione */\r\n appName: PropTypes.element,\r\n};\r\n\r\nHeader.defaultProps = {\r\n children: null,\r\n className: '',\r\n logo: null,\r\n appName: null,\r\n};\r\n\r\nexport default Header;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\nimport Body from './Body';\r\nimport Header from './Header';\r\n\r\nBody.displayName = 'Application.Body';\r\nHeader.displayName = 'Application.Header';\r\n\r\n/**\r\nIl componente Application permette di definire un'applicazione composta da due parti:\r\nun Header ed un corpo in cui l'header è fisso in cima alla pagina e scrolla solo il corpo.\r\nAll'interno del componente è poi possibile specificare i children desiderati.\r\n */\r\nconst Application = ({ children, className, ...others }) => (\r\n \r\n {children}\r\n
\r\n);\r\n\r\nApplication.propTypes = {\r\n /** Contenuto da renderizzare all'interno del componente */\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node,\r\n ]),\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n};\r\n\r\nApplication.defaultProps = {\r\n children: null,\r\n className: '',\r\n};\r\n\r\nApplication.Header = Header;\r\nApplication.Body = Body;\r\n\r\nexport default Application;\r\n","import Application from './Application';\r\n\r\nexport default Application;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\n/**\r\nIl componente è stato pensato per visualizzare immagini.\r\n */\r\nconst Image = ({\r\n alt, title, src, ...others\r\n}) => (\r\n \r\n);\r\n\r\nImage.propTypes = {\r\n /** Indica il testo alternativo in caso di mancato caricamento dell'immagine */\r\n alt: PropTypes.string.isRequired,\r\n /** Indica il percorso sorgente da cui renderizzare l'immagine */\r\n src: PropTypes.string.isRequired,\r\n /** Indica il titolo dell'immagine */\r\n title: PropTypes.string.isRequired,\r\n};\r\n\r\nexport default Image;\r\n","import Image from './Image';\r\n\r\nexport default Image;\r\n","import React, { Component } from 'react';\r\nimport { createPortal } from 'react-dom';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\nimport Button from '../Button';\r\nimport Image from '../Image';\r\n\r\nconst div = document.createElement('div');\r\ndiv.setAttribute('id', 'tour');\r\ndocument.body.appendChild(div);\r\n\r\n/**\r\nIl componente viene utilizzato per renderizzare una guida al software o a parte di esso.\r\n\r\nVedi [Design System di CGN - Tour](https://zeroheight.com/1b5e94371/p/475c15-tour/b/614b3b)\r\n */\r\nclass Tour extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n slide: props.slide,\r\n };\r\n }\r\n\r\n UNSAFE_componentWillReceiveProps({ slide }) {\r\n const { slide: slideS } = this.state;\r\n if (slide !== slideS) {\r\n this.setState({\r\n slide,\r\n });\r\n }\r\n }\r\n\r\n saveState = (slide) => {\r\n const { onChange } = this.props;\r\n if (typeof onChange === 'function') {\r\n onChange(slide);\r\n }\r\n };\r\n\r\n indietro = () => {\r\n const { slide } = this.state;\r\n const prev = slide - 1;\r\n this.saveState(prev);\r\n this.setState({ slide: prev });\r\n };\r\n\r\n avanti = () => {\r\n const { slide } = this.state;\r\n const next = slide + 1;\r\n this.saveState(next);\r\n this.setState({\r\n slide: next,\r\n });\r\n };\r\n\r\n chiudi = () => {\r\n const { onEnd } = this.props;\r\n if (typeof onEnd === 'function') {\r\n onEnd(false);\r\n }\r\n };\r\n\r\n render() {\r\n const {\r\n onEnd,\r\n slides,\r\n width,\r\n } = this.props;\r\n const {\r\n slide,\r\n } = this.state;\r\n\r\n return createPortal(\r\n
\r\n \r\n e.stopPropagation()}\r\n style={{ width: `${width}px` }}\r\n role=\"presentation\"\r\n >\r\n
\r\n
    \r\n {slides.map((x, i) => {\r\n const classes = cns('tour__slide', `tour__slide-${i + 1}`, { 'tour__slide--active': i === slide });\r\n return (\r\n \r\n \r\n \r\n );\r\n })}\r\n
\r\n
\r\n
\r\n {slide > 0 && (\r\n \r\n Indietro\r\n \r\n )}\r\n {slide < slides.length - 1 && (\r\n \r\n Avanti\r\n \r\n )}\r\n {slide === slides.length - 1 && (\r\n onEnd && onEnd(true)}\r\n primary\r\n >\r\n Fine\r\n \r\n )}\r\n
\r\n
\r\n
\r\n
,\r\n div,\r\n );\r\n }\r\n}\r\n\r\nTour.propTypes = {\r\n /**\r\n * Callback invocata al cambio di slide:\r\n * ```\r\n * onChange(slide)\r\n * ```\r\n * dove:\r\n * * *slide*: index della nuova slide\r\n */\r\n onChange: PropTypes.func,\r\n /**\r\n * Callback invocata alla fine del tour:\r\n * ```\r\n * onEnd(origin)\r\n * ```\r\n * dove:\r\n * * *origin*: `true` se chiusura proveniente dalla pressione del tasto\r\n * FINE; `false` se premuto un punto esterno al tour\r\n */\r\n onEnd: PropTypes.func,\r\n /** Indice della slide iniziale */\r\n slide: PropTypes.number,\r\n /** Lista delle slide */\r\n slides: PropTypes.arrayOf(PropTypes.string),\r\n /** Indica la larghezza del componente */\r\n width: PropTypes.number,\r\n};\r\n\r\nTour.defaultProps = {\r\n onChange: null,\r\n onEnd: null,\r\n slide: 0,\r\n slides: [],\r\n width: 940,\r\n};\r\n\r\nexport default Tour;\r\n","import Tour from './Tour';\r\n\r\nexport default Tour;\r\n","import { createContext } from 'react';\r\n\r\nconst ViewportContext = createContext({});\r\nexport default ViewportContext;\r\n","import { useContext } from 'react';\r\nimport ViewportContext from '../ViewportProvider/ViewportContext';\r\n\r\n/**\r\n * L'area PRINCIPALE visibile per l'utente che ha come breakpoint 1920x1080px.\r\n */\r\nexport const MAIN = Object.freeze({ width: 1920, height: 1080, name: 'main' });\r\n\r\n/**\r\n * L'area media visibile per l'utente che ha come breakpoint 1600x900px.\r\n */\r\nexport const MEDIUM = Object.freeze({ width: 1600, height: 900, name: 'medium' });\r\n\r\n/**\r\n * L'area visibile per l'utente a risoluzine BASSA. E' pensata per una risoluzione 1280X768px ma di fatto non ha un breakpoint.\r\n */\r\nexport const LOW = Object.freeze({ width: 0, height: 0, name: 'low' });\r\n\r\nexport const LOW_MAIN_RESOLUTIONS = [LOW, MAIN];\r\nexport const LOW_MEDIUM_MAIN_RESOLUTIONS = [LOW, MEDIUM, MAIN];\r\n\r\nexport const RESPONSIVE_MODE_WIDTH = 'width';\r\nexport const RESPONSIVE_MODE_HEIGHT = 'height';\r\nexport const RESPONSIVE_MODE_ANY = 'any';\r\n\r\n/**\r\n * Registra un nuova risoluzione.\r\n * Ogni risoluzione ha un name che la identifica e un breakpoint in lunghezza e in altezza.\r\n *\r\n * La risulzione inserita delimita un'area tra il suo breakpoint (di norma quello in lunghezza) e il breakpoint della risoluzione successiva.\r\n * @param {string} name nome della risoluzione.\r\n * @param {number} width dimensione del brakpoint in larghezza\r\n * @param {number} height dimensione del brakpoint in lunghezza\r\n * @returns {object} la nuova risoluzione.\r\n */\r\nexport function registerResolution(name, width, height) {\r\n return { name, width, height };\r\n}\r\n\r\n/**\r\n * Ritorna la resolution.\r\n * @param {string} name ritorna la resolution per nome.\r\n * @param {array} resolutions lista delle risoluzioni [il default è LOW_MAIN_RESOLUTIONS].\r\n * @returns {object | undefined} il viewport (resolution, width, height).\r\n */\r\nexport function getResolutionByName(name, resolutions = LOW_MAIN_RESOLUTIONS) {\r\n return resolutions.find((r) => r.name === name);\r\n}\r\n\r\n/**\r\n * Ritorna la resolution in base ad una certa dimensione.\r\n * @param {RESPONSIVE_MODE_WIDTH | RESPONSIVE_MODE_HEIGHT | RESPONSIVE_MODE_ANY}\r\n * mode la modalità di applicazione del breakpoint [default RESPONSIVE_MODE_WIDTH].\r\n * @param {number} width larghezza dell'area disponibile del browser\r\n * @param {number} height altezza dell'area disponibile del browser\r\n * @param {array} resolutions lista delle risoluzioni [il default è LOW_MAIN_RESOLUTIONS].\r\n * @returns {object} il viewport corrente (resolution, width, height).\r\n */\r\nexport function getResolution(mode = RESPONSIVE_MODE_WIDTH, width = window.innerWidth, height = window.innerHeight, resolutions = LOW_MAIN_RESOLUTIONS) {\r\n switch (mode) {\r\n case RESPONSIVE_MODE_WIDTH: {\r\n return resolutions.reduce((last, r) => (width >= r.width ? r : last), undefined);\r\n }\r\n case RESPONSIVE_MODE_HEIGHT: {\r\n return resolutions.reduce((last, r) => (height >= r.height ? r : last), undefined);\r\n }\r\n case RESPONSIVE_MODE_ANY:\r\n return resolutions.reduce((last, r) => (height >= r.height || width >= r.width ? r : last), undefined);\r\n default: {\r\n // eslint-disable-next-line no-console\r\n console.error(`getResolution: mode ${mode} undefined`);\r\n return MAIN;\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * Ritorna un oggetto di tipo Viewport che cambia in base alla dimensione della viewport.\r\n * `useViewport` utilizza il contesto `ViewportContext` (vedi anche `ViewportProvider`).\r\n * @param {array} resolutions lista delle risoluzioni [il default è LOW_MAIN_RESOLUTIONS].\r\n * Le risoluzioni devono essere ordinate in modo crescente.\r\n * @param {RESPONSIVE_MODE_WIDTH | RESPONSIVE_MODE_HEIGHT | RESPONSIVE_MODE_ANY}\r\n * mode la modalità di applicazione del breakpoint [default RESPONSIVE_MODE_WIDTH].\r\n * @returns {object} il viewport corrente (resolution, width, height).\r\n */\r\nfunction useViewport(resolutions, mode) {\r\n const { width, height } = useContext(ViewportContext);\r\n return { width, height, resolution: getResolution(mode, width, height, resolutions) };\r\n}\r\n\r\nexport default useViewport;\r\n","/* eslint-disable max-len */\r\nimport React from 'react';\r\n\r\n/**\r\n * Immagine di background della pagiana di errore 404.\r\n*/\r\nconst ErrorPage404Background = () => {\r\n const css = `\r\n .a{fill:#deebfb;}.b{fill:#febc89;}.c{fill:#98d7f3;}.d{fill:#ffe0b3;}\r\n .e,.f{fill:#f8fcff;}.e{opacity:0.5;}.f{opacity:0.3;}.g{fill:#f8fbff;}.h{fill:#ffe6c5;}\r\n .i{fill:#fff0e2;}.j{fill:#e8c7a0;}.k{fill:#f4d9b3;}.l{filter:url(#a);}\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 \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n // NOSONAR\r\n );\r\n};\r\n\r\nexport default ErrorPage404Background;\r\n","import React, { forwardRef } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\nimport { NOOP } from '../../../utils/const';\r\nimport Spinner from '../../Spinner';\r\nimport useRunningState from '../Hooks/useRunningState';\r\nimport useChildrenWithText from '../Hooks/useChildrenWithText';\r\n\r\nconst EMP_HIGH = 'HIGH';\r\nconst EMP_LOW = 'LOW';\r\nconst EMP_MED = 'MEDIUM';\r\n\r\n/*\r\nTODO\r\n\r\nDa vedere con UX:\r\n Usiamo ancora il concetto di tooltip?\r\n Concetto di \"Variante Nero\" in enfasi media/bassa. Al momento lo gestisco come secondario!\r\n\r\nMigrazione da Button V1 a Button V2:\r\n\r\n Proprietà non più utilizzate perchè sono cambiate le direttive UI.\r\n * big: non esiste più.\r\n * flat: non esiste più.\r\n * floating: non esiste più.\r\n * icon: non esiste più.\r\n * selected: non esiste più.\r\n * text: non esiste più.\r\n\r\n Altro:\r\n * loading: usare running\r\n*/\r\n\r\n/**\r\nI pulsanti permettono agli utenti di compiere azioni e fare scelte con un singolo click.\r\n\r\nVedi [Design System di CGN - Pulsanti](https://zeroheight.com/1b5e94371/p/261be1-pulsanti/b/32e1a2)\r\n */\r\nconst Button = forwardRef((props, ref) => {\r\n const {\r\n emphasis, primary, vertical, small,\r\n running: runningInit, disabled, onClick: onClickInit,\r\n children, className, blockClassName,\r\n tabIndex,\r\n } = props;\r\n\r\n const { running, func: onClick } = useRunningState(onClickInit, runningInit);\r\n const childrenWithText = useChildrenWithText(children);\r\n\r\n const classes = cns(\r\n blockClassName,\r\n `${blockClassName}--${emphasis.toLowerCase()}`,\r\n {\r\n [`${blockClassName}--primary`]: primary,\r\n [`${blockClassName}--vertical`]: vertical && emphasis === EMP_LOW,\r\n [`${blockClassName}--small`]: small && emphasis === EMP_LOW,\r\n },\r\n className,\r\n );\r\n\r\n return (\r\n \r\n {running && }\r\n {childrenWithText}\r\n \r\n );\r\n});\r\n\r\nButton.Emphasis = {\r\n LOW: EMP_LOW,\r\n MEDIUM: EMP_MED,\r\n HIGH: EMP_HIGH,\r\n};\r\n\r\nButton.propTypes = {\r\n /** Enfasi del bottone */\r\n emphasis: PropTypes.oneOf([Button.Emphasis.LOW, Button.Emphasis.MEDIUM, Button.Emphasis.HIGH]),\r\n\r\n /** Presenta i `children` in verticale (Solo per emphasis = LOW). */\r\n vertical: PropTypes.bool,\r\n\r\n /** Definisce l'azione principale */\r\n primary: PropTypes.bool,\r\n\r\n /**\r\nSe true, il bottone non genera alcun evento.\r\n */\r\n disabled: PropTypes.bool,\r\n\r\n /**\r\nSe true, il bottone viene mostrato in formato ridotto (Solo per emphasis = LOW).\r\n */\r\n small: PropTypes.bool,\r\n\r\n /**\r\nSe true, il bottone visualizza uno spinner ad indicare un processo attivo.\r\nUn bottone in running è sempre disabled.\r\nLa gestione della proprietà `running` può essere controlled o uncontrolled.\r\n\r\nGestione controlled: la proprietà assume un valore `true`/`false`.\r\nIn questo caso lo stato running è totalmente controllato dalla proprietà ed il componenente non applicherà nessuna logica che lo modifichi.\r\n\r\nGestione uncontrolled: la proprietà assume un valore `undefined`.\r\nIn questo caso lo stato running è definito dal componente. Vedi proprtietà `onClick`.\r\n */\r\n running: PropTypes.bool,\r\n\r\n /**\r\nCallback evento di click del bottone.\r\nParametri:\r\n\r\n- evento: evento generato dal click.\r\n\r\nRitorno:\r\n\r\n- null | undefined | Promise:\r\nse running è uncontrolled e la callback ritorna una Promise, il bottone rimane in stato running fino alla sua conclusione.\r\n */\r\n onClick: PropTypes.func,\r\n\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n\r\n /** Classi css relative al Block (vedi BEM). Ad uso INTERNO. */\r\n blockClassName: PropTypes.string,\r\n\r\n /** Children del componente */\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node,\r\n ]),\r\n\r\n /** Tab index */\r\n tabIndex: PropTypes.number,\r\n};\r\n\r\nButton.defaultProps = {\r\n emphasis: Button.Emphasis.LOW,\r\n vertical: false,\r\n primary: false,\r\n disabled: false,\r\n small: false,\r\n running: undefined,\r\n onClick: NOOP,\r\n children: undefined,\r\n blockClassName: 'v2-button',\r\n className: undefined,\r\n tabIndex: undefined,\r\n};\r\n\r\nexport default Button;\r\n","import { useState, useCallback } from 'react';\r\n\r\n/**\r\n * Se running è controlled, non fa nulla,\r\n * altrimenti se func ritorna una Promise, mette in running il componente fino alla conclusione della stessa.\r\n *\r\n * @param {bool | undefined | null} running stato di running\r\n * @param {func} func funzione di esecuzione del task\r\n * @returns {object} oggetto con controlled, running e func.\r\n */\r\nfunction useRunningState(func, running) {\r\n const controlled = running !== null && running !== undefined;\r\n\r\n const [runningUnc, setRunningUnc] = useState(false); // se controlled\r\n\r\n const funcUnc = useCallback(\r\n (evt) => {\r\n // se controlled\r\n setRunningUnc(true);\r\n const result = func(evt);\r\n if (result instanceof Promise) {\r\n result.then(() => setRunningUnc(false), () => setRunningUnc(false));\r\n } else {\r\n setRunningUnc(false);\r\n }\r\n },\r\n [func],\r\n );\r\n\r\n return controlled\r\n ? { controlled, running, func }\r\n : { controlled, running: runningUnc, func: funcUnc };\r\n}\r\n\r\nexport default useRunningState;\r\n","import React, { useMemo } from 'react';\r\n\r\n/**\r\n * Se tra i children c'è un componente text, lo wrappo con uno span.\r\n * Spesso è utile perchè il testo semplice non è cosiderato un elmento e il CSS non applica alcune regole di selezione.\r\n * @param {object} children nodo/nodi React.\r\n * @returns {object} nodo/nodi React.\r\n */\r\nfunction useChildrenWithText(children) {\r\n return useMemo(() => React.Children.map(children, (child) => {\r\n if (typeof child === 'string') {\r\n if (child.trim().length === 0) return undefined;\r\n return {child};\r\n }\r\n return child;\r\n }), [children]);\r\n}\r\n\r\nexport default useChildrenWithText;\r\n","/* eslint-disable max-len */\r\nimport React from 'react';\r\nimport Icon from './Icon';\r\n\r\nexport default Icon(\r\n ,\r\n '0 0 20 20',\r\n 'ShipIcon',\r\n);\r\n","import React from 'react';\r\nimport Icon from './Icon';\r\n\r\n/**\r\n * Immagine log Cgn.\r\n*/\r\nexport default Icon(\r\n // eslint-disable-next-line max-len\r\n ,\r\n '0 0 144.755 32',\r\n 'ShipIcon',\r\n);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport ErrorPage404Background from './ErrorPage404Background';\r\nimport Button from '../V2/Button/Button';\r\nimport ShipIcon from '../Icons/ShipIcon';\r\nimport Logo from '../Icons/Logo';\r\n\r\n/**\r\n * Pagina di errore 404 di connessione.\r\n */\r\nconst ErrorPage404 = ({ onContinue }) => (\r\n
\r\n \r\n
\r\n
\r\n Ti sei perso nella vastità dell'oceano?\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n);\r\n\r\nErrorPage404.propTypes = {\r\n /**\r\nCallback della action che permette di \"continuare\" ripristinando il sistema.\r\n */\r\n onContinue: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default ErrorPage404;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\nimport Button from '../V2/Button/Button';\r\nimport Logo from '../Icons/Logo';\r\n\r\n/**\r\n * Errore generico.\r\n */\r\nexport default function ErrorPage({\r\n image, title, message, actionLabel, onActionClick, asPage,\r\n}) {\r\n const className = cns('error-page', {\r\n 'error-page--inside': !asPage,\r\n });\r\n\r\n return (\r\n
\r\n
\r\n
\r\n {image}\r\n
\r\n

\r\n {title}\r\n

\r\n

\r\n {message}\r\n

\r\n {actionLabel && onActionClick\r\n && (\r\n
\r\n \r\n
\r\n )}\r\n
\r\n
\r\n
\r\n {asPage && (\r\n
\r\n
\r\n \r\n
\r\n
\r\n )}\r\n
\r\n );\r\n}\r\n\r\nErrorPage.propTypes = {\r\n /**\r\nImmagine del componente\r\n */\r\n image: PropTypes.node.isRequired,\r\n\r\n /**\r\nTitolo.\r\n */\r\n title: PropTypes.string.isRequired,\r\n\r\n /**\r\nMessaggio. Il messaggio può essere una semplice stringa o un componente più complesso.\r\n */\r\n message: PropTypes.oneOfType([PropTypes.string, PropTypes.node]).isRequired,\r\n\r\n /**\r\nEtichetta del messaggio della action.\r\n */\r\n actionLabel: PropTypes.string,\r\n\r\n /**\r\nCallback della action.\r\n */\r\n onActionClick: PropTypes.func,\r\n\r\n /**\r\nIndica se mostrare il componente \"come pagina singola\".\r\n\r\nSe il componente deve essere inserito in una `Card`, `Modal` o altro, usare `asPage=false`.\r\n */\r\n asPage: PropTypes.bool,\r\n};\r\n\r\nErrorPage.defaultProps = {\r\n asPage: true,\r\n actionLabel: undefined,\r\n onActionClick: undefined,\r\n};\r\n","/* eslint-disable max-len */\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\n/**\r\n * Immagine lucchetto per componenti di errore.\r\n*/\r\nconst Locked = ({ className }) => {\r\n const style = `\r\n .a{opacity:0.5;}.b{fill:#d4ebfd;}.c{fill:#c1e2fc;}.d{fill:#b25d1b;}.e{fill:#f79e5a;}.f{fill:#ed7d2b;}.g{fill:#ffb27d;}.h{fill:#233862;}.i{fill:#073050;}.j{fill:#085794;}.k{fill:#ed975d;}.l{fill:#2a9cf4;}.m{fill:#0b73c4;}.n{fill:#5a5a5a;}.o{fill:#f8fbff;}.p{filter:url(#a);}}\r\n `;\r\n return (\r\n \r\n ); // NOSONAR\r\n};\r\n\r\nLocked.propTypes = {\r\n /**\r\nClass name.\r\n */\r\n className: PropTypes.string,\r\n};\r\n\r\nLocked.defaultProps = {\r\n className: undefined,\r\n};\r\n\r\nexport default Locked;\r\n","/**\r\n * Funzione che trasforma un valore stringa in un valore numerico (eliminando anche caratteri speciali)\r\n * @param {*} valore\r\n * @param {char} separatore\r\n * @returns {string}\r\n */\r\nconst parse = (valore, separatore = ',') => {\r\n // se non specifico valore restituisco 0\r\n const newValue = valore || 0;\r\n // se è un numero lo restituisco\r\n if (typeof valore === 'number') { return valore; }\r\n // Se non specifico un separatore uso quello di default in Italia\r\n // Elimino tutti i caratteri tranne cifre, segni meno e separatori decimali\r\n const regex = new RegExp(`[^0-9-${separatore}]`, ['g']);\r\n const unformatted = parseFloat(\r\n (`${newValue}`)\r\n .replace(/\\((.*)\\)/, '-$1')\r\n .replace(regex, '')\r\n .replace(separatore, '.'),\r\n );\r\n // ritorno il valore\r\n return !isNaN(unformatted) ? unformatted : 0;\r\n};\r\n\r\nconst normalizza = (value, defaultValue) => (isNaN(Math.abs(value))\r\n ? defaultValue : Math.abs(value));\r\n\r\nconst toFixed = (valore, precisione) => {\r\n const newPrecisione = normalizza(precisione, 2);\r\n const power = 10 ** newPrecisione;\r\n // moltiplica per la precisione, arrotonda correttamente\r\n // e poi dividi di nuovo per arrotondare correttamente\r\n return (Math.round(normalizza(valore) * power) / power).toFixed(newPrecisione);\r\n};\r\n\r\n/**\r\n * Funzione che trasforma il numero passato in input in un numero string formattato con la precisione indicata\r\n * @param {*} numero\r\n * @param {number} precisione\r\n * @returns {string}\r\n */\r\nconst format = (numero, precisione) => {\r\n if (numero === null) { return ''; }\r\n // leggo il numero\r\n const newNumero = parse(numero);\r\n // leggo le opzioni passate\r\n const opts = {\r\n precisione,\r\n grouping: 3,\r\n migliaia: '.',\r\n decimali: ',',\r\n };\r\n // normalizza la precisione\r\n const usePrecision = normalizza(opts.precisione);\r\n // eseguo i calcoli\r\n const negative = newNumero < 0 ? '-' : '';\r\n const base = `${parseInt(toFixed(Math.abs(newNumero || 0), usePrecision), 10)}`;\r\n const mod = base.length > 3 ? base.length % 3 : 0;\r\n // formatto il numero\r\n return negative + (mod ? base.substr(0, mod) + opts.migliaia : '')\r\n + base.substr(mod).replace(/(\\d{3})(?=\\d)/g, `$1${opts.migliaia}`)\r\n + (usePrecision ? opts.decimali + toFixed(Math.abs(newNumero), usePrecision)\r\n .split('.')[1] : '');\r\n};\r\n\r\n/**\r\n * Calcola la precisione con default in base al formato\r\n * @param {string} format foramto\r\n * @param {number} precision precision\r\n * @returns precisione\r\n */\r\nconst getPrecision = (valueFormat, precision) => {\r\n if (precision) return precision;\r\n if (valueFormat === 'currency') return 2;\r\n return 0;\r\n};\r\n\r\n/**\r\n * Funzione che formatta il valore passato secondo i due formati number o currency (senza simbolo)\r\n * @param {*} value\r\n * @param {'number'|'currency'} valueFormat\r\n * @param {number} precision\r\n * @returns {string}\r\n */\r\nconst formatValue = (value, valueFormat, precision) => {\r\n switch (valueFormat) {\r\n case 'number':\r\n case 'currency':\r\n return format(value, getPrecision(valueFormat, precision));\r\n default:\r\n break;\r\n }\r\n return value;\r\n};\r\n\r\n/**\r\n * Funzione che formatta il valore passato secondo i due formati number o currency (con simbolo)\r\n * @param {*} value\r\n * @param {'number'|'currency'} valueFormat\r\n * @param {number} precision\r\n * @param {*} currency\r\n * @returns {string}\r\n */\r\nconst formatValueCurrency = (value, valueFormat, precision, currency = '€') => {\r\n if (!valueFormat) return value;\r\n switch (valueFormat) {\r\n case 'number':\r\n return format(value, getPrecision(valueFormat, precision));\r\n case 'currency':\r\n return `${currency} ${format(value, getPrecision(valueFormat, precision))}`;\r\n default:\r\n break;\r\n }\r\n return value;\r\n};\r\n\r\nconst alignment = (valueFormat, align) => {\r\n if (align) return align;\r\n if (valueFormat === 'currency' || valueFormat === 'number') return 'right';\r\n return 'left';\r\n};\r\n\r\nexport {\r\n getPrecision,\r\n parse,\r\n format,\r\n formatValue,\r\n formatValueCurrency,\r\n normalizza,\r\n alignment,\r\n};\r\n","import { format, parse } from 'framework-ui-components/Components/Utils/numeriHelper';\r\n\r\n/**\r\n * Funzione che formatta un valore in formato currency\r\n * @param {*} val\r\n * @param {*} zeroValid\r\n */\r\nconst getCurrencyValue = (val, zeroValid = true) => {\r\n if ((!val && !zeroValid) || val === null) return '-';\r\n const valNum = parse(val);\r\n if (!valNum && !zeroValid) return '-';\r\n const formatValue = format(val, 2);\r\n return formatValue ? `${formatValue} €` : '-';\r\n};\r\n\r\n/**\r\n * Funzione che formatta un valore in formato currency senza simbolo €\r\n * @param {*} val\r\n * @param {*} zeroValid\r\n */\r\nconst getCurrencyValueNoSymbol = (val, zeroValid = true) => {\r\n if ((!val && !zeroValid) || val === null) return '-';\r\n const valNum = parse(val);\r\n if (!valNum && !zeroValid) return '-';\r\n const formatValue = format(val, 2);\r\n return formatValue ? `${formatValue}` : '-';\r\n};\r\n\r\n/**\r\n * DA RIMUOVERE Funzione che maiuscolizza solo la prima lettera di una stringa\r\n * @param {*} stringa\r\n */\r\nconst primaLetteraMaiuscolaStringa = (stringa) => (\r\n stringa ? stringa.charAt(0).toUpperCase() + stringa.slice(1).toLowerCase() : stringa);\r\n\r\nconst addZero = (value) => (value < 10 ? `0${value}` : value);\r\n\r\nconst createDate = (date) => {\r\n const day = addZero(date.getDate());\r\n const month = addZero(date.getMonth() + 1);\r\n const year = date.getFullYear().toString();\r\n\r\n return `${day}/${month}/${year}`;\r\n};\r\n\r\nconst convertUTCDateToLocalDate = (date) => {\r\n const newDate = new Date(date.getTime() - date.getTimezoneOffset() * 60 * 1000);\r\n const offset = date.getTimezoneOffset() / 60;\r\n const hours = date.getHours();\r\n\r\n newDate.setHours(hours - offset);\r\n\r\n return newDate;\r\n};\r\n\r\nconst convertUTCDateFromLocalDate = (date) => {\r\n const newDate = new Date(date.getTime() + date.getTimezoneOffset() * 60 * 1000);\r\n const offset = date.getTimezoneOffset() / 60;\r\n const hours = date.getHours();\r\n\r\n newDate.setHours(hours + offset);\r\n\r\n return newDate;\r\n};\r\n\r\nexport {\r\n getCurrencyValue,\r\n getCurrencyValueNoSymbol,\r\n primaLetteraMaiuscolaStringa,\r\n createDate,\r\n convertUTCDateToLocalDate,\r\n convertUTCDateFromLocalDate,\r\n};\r\n","import React, { useMemo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useSelector } from 'react-redux';\r\nimport { Spinner } from 'framework-ui-components';\r\nimport ErrorPage from 'framework-ui-components/Components/ErrorPages/ErrorPage';\r\nimport Locked from 'framework-ui-components/Components/ErrorPages/Locked';\r\nimport PaginaErrore from './PaginaErrore';\r\nimport useCheckServizi from '../hooks/useCheckServizi';\r\nimport { convertUTCDateFromLocalDate } from '../utils/format';\r\n\r\nconst AuthorizedApp = ({\r\n children, servicesToCheck, titoloSospensione, spiegazioneSospensione,\r\n}) => {\r\n const applicazioneOrigine = useSelector((store) => store.appParams.applicazioneOrigine);\r\n const statoSospensione = useSelector((store) => store.appParams.StatoSospensioneServizio);\r\n const ufficioSelezionato = useSelector((store) => store.appParams\r\n && store.appParams.ufficioSelezionato);\r\n const checkServizi = useCheckServizi(servicesToCheck || []);\r\n\r\n const servizioNonAttivo = useMemo(() => checkServizi && checkServizi\r\n .every((res) => res === false), [checkServizi]);\r\n const ufficioNonPresente = useMemo(() => checkServizi === null, [checkServizi]);\r\n const appOrigineBackoffice = useMemo(\r\n () => applicazioneOrigine === 'backoffice',\r\n [applicazioneOrigine],\r\n );\r\n const pageSospensioneServizio = useMemo(\r\n () => (\r\n statoSospensione && !appOrigineBackoffice\r\n && (\r\n statoSospensione.IsSospeso\r\n && convertUTCDateFromLocalDate(new Date(statoSospensione.InizioSospensione)) < new Date()\r\n && convertUTCDateFromLocalDate(new Date(statoSospensione.FineSospensione)) > new Date()\r\n )),\r\n [appOrigineBackoffice, statoSospensione],\r\n );\r\n\r\n if (!ufficioSelezionato) {\r\n return ;\r\n }\r\n if (servizioNonAttivo) {\r\n return (\r\n \r\n );\r\n } if (ufficioNonPresente) {\r\n return (\r\n \r\n );\r\n }\r\n if (pageSospensioneServizio) {\r\n if (!titoloSospensione && !spiegazioneSospensione) {\r\n return (\r\n
\r\n }\r\n title=\"Aggiornamento del servizio in corso\"\r\n message=\"Il servizio sarà riaperto a breve\"\r\n asPage\r\n />\r\n
\r\n );\r\n }\r\n return (\r\n
\r\n }\r\n title=\"Aggiornamento del servizio in corso\"\r\n message={spiegazioneSospensione}\r\n asPage\r\n />\r\n
\r\n );\r\n }\r\n return children;\r\n};\r\n\r\nAuthorizedApp.defaultProps = {\r\n children: null,\r\n servicesToCheck: [],\r\n titoloSospensione: null,\r\n spiegazioneSospensione: null,\r\n};\r\n\r\nAuthorizedApp.propTypes = {\r\n children: PropTypes.element,\r\n servicesToCheck: PropTypes.arrayOf(PropTypes.string),\r\n titoloSospensione: PropTypes.string,\r\n spiegazioneSospensione: PropTypes.element,\r\n};\r\n\r\nexport default AuthorizedApp;\r\n","import { useMemo, useEffect } from 'react';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport { useParams } from 'react-router';\r\nimport { setAppParamsAction } from '../actions/appParams';\r\nimport { STATO_ATTIVAZIONE_SERVIZIO } from '../models/StatoAttivazioneServizio';\r\n\r\n/**\r\n * Controlla che i servizi siano presente e attivi tra quelli\r\n * dell'ufficio selezionato.\r\n * Per ogni servizio passato ritorna null se l'ufficio non è presente nel profilo,\r\n * altrimenti ritorna true o false\r\n * @param Array : elenco dei servizi da controllare\r\n */\r\nconst useCheckServizi = (servizi) => {\r\n const params = useParams();\r\n const dispatch = useDispatch();\r\n const ufficioSelezionato = useSelector((store) => store.appParams\r\n && store.appParams.ufficioSelezionato);\r\n useEffect(() => {\r\n // se viene passato l'ufficio via url e non via params\r\n // imposto il valore in appParams\r\n if (params.ufficio && params.ufficio !== ufficioSelezionato) {\r\n dispatch(setAppParamsAction({\r\n ufficioSelezionato: params.ufficio,\r\n }));\r\n }\r\n }, [dispatch, params, ufficioSelezionato]);\r\n const profilo = useSelector((store) => store.utente && store.utente.Profilo);\r\n return useMemo(() => {\r\n if (!servizi) return [true];\r\n if (!Array.isArray(servizi)) return undefined;\r\n if (servizi.length === 0) return [true];\r\n if (!profilo || !ufficioSelezionato) return null;\r\n if (profilo.Operatore) return servizi.map(() => true);\r\n const ufficio = profilo.Uffici\r\n ? profilo.Uffici.find((uff) => uff.CodiceUfficio === ufficioSelezionato)\r\n : null;\r\n if (!ufficio) return null;\r\n const serviziAbilitantiAttiviTrovati = servizi.map((servizio) => ufficio.Servizi.find(\r\n (x) => x.CodiceServizio === servizio && (x.StatoAttivazione === STATO_ATTIVAZIONE_SERVIZIO.ATTIVO),\r\n ))\r\n .filter(Boolean);\r\n const serviziAbilitantiDisdettiTrovati = servizi.map((servizio) => ufficio.Servizi.find(\r\n (x) => x.CodiceServizio === servizio && (x.StatoAttivazione === STATO_ATTIVAZIONE_SERVIZIO.DISDETTO),\r\n ))\r\n .filter(Boolean);\r\n const serviziAbilitantiSospesiTrovati = servizi.map((servizio) => ufficio.Servizi.find(\r\n (x) => x.CodiceServizio === servizio && (x.StatoAttivazione === STATO_ATTIVAZIONE_SERVIZIO.SOSPESO),\r\n ))\r\n .filter(Boolean);\r\n\r\n if (serviziAbilitantiSospesiTrovati.length > 0 && serviziAbilitantiAttiviTrovati.length === 0) return [false];\r\n\r\n if (serviziAbilitantiDisdettiTrovati.length > 0 && serviziAbilitantiAttiviTrovati.length === 0) {\r\n dispatch(setAppParamsAction({\r\n visualizzazione: true,\r\n visualizzazioneDaDisdetto: true,\r\n }));\r\n }\r\n\r\n if (serviziAbilitantiAttiviTrovati.length === 1\r\n && serviziAbilitantiAttiviTrovati[0].CodiceServizio === 'RDV') {\r\n dispatch(setAppParamsAction({\r\n attivoSoloRdv: true,\r\n }));\r\n }\r\n\r\n return servizi.map((servizio) => !!ufficio.Servizi.find(\r\n (x) => x.CodiceServizio === servizio && (x.StatoAttivazione === STATO_ATTIVAZIONE_SERVIZIO.ATTIVO\r\n || x.StatoAttivazione === STATO_ATTIVAZIONE_SERVIZIO.DISDETTO),\r\n ))\r\n .filter(Boolean);\r\n }, [dispatch, profilo, servizi, ufficioSelezionato]);\r\n};\r\n\r\nexport default useCheckServizi;\r\n","export const STATO_ATTIVAZIONE_SERVIZIO = {\r\n INCOMPLETO: 1,\r\n RICHIESTA_PENDENTE: 2,\r\n ATTIVO: 3,\r\n DISDETTO: 4,\r\n SOSPESO: 5,\r\n};\r\n","import * as React from 'react';\r\n\r\nfunction SvgComponent(props) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default SvgComponent;\r\n","import React from 'react';\r\nimport OminoDisperato from './components/icons/custom/OminoDisperato';\r\n\r\nconst ContenutoPaginaDiSospensione = () => (\r\n
\r\n
\r\n
\r\n Il servizio F24 è sospeso per manutenzione ordinaria.\r\n
\r\n
\r\n
\r\n A breve il servizio sarà di nuovo attivo alla riapertura potrai accedere ed utilizzare il servizio normalmente.\r\n
\r\n
\r\n
\r\n);\r\n\r\nexport default ContenutoPaginaDiSospensione;\r\n","const pad = (number) => (number < 10 ? `0${number}` : number);\r\nconst daysOfTheWeek = ['Domenica', 'Lunedì', 'Martedì', 'Mercoledì', 'Giovedì', 'Venerdì', 'Sabato'];\r\nconst monthsOfTheYear = ['Gennaio', 'Febbraio', 'Marzo', 'Aprile', 'Maggio', 'Giugno',\r\n 'Luglio', 'Agosto', 'Settembre', 'Ottobre', 'Novembre', 'Dicembre'];\r\n\r\n/**\r\n * Funzione che permette di fare il parse di \"un qualcosa\" e cerca di interpretarlo\r\n * come data.\r\n * In output permette di ottenere un object Data, la stringa data o il format ISO\r\n * @param {*} date\r\n */\r\nconst JustADate = (date) => {\r\n let utcMidnightDateObj = null;\r\n let initDate = date || new Date();\r\n if (typeof initDate === 'string' && initDate.match(/((\\+|-)\\d{2}:\\d{2}|Z)$/gm)) {\r\n utcMidnightDateObj = new Date(`${initDate.substring(0, 10)}T00:00:00Z`);\r\n } else {\r\n if (!(initDate instanceof Date)) {\r\n initDate = new Date(initDate);\r\n }\r\n utcMidnightDateObj = new Date(\r\n Date.UTC(initDate.getFullYear(), initDate.getMonth(), initDate.getDate()),\r\n );\r\n }\r\n return {\r\n getDate: () => utcMidnightDateObj,\r\n toString: () => `${pad(utcMidnightDateObj.getUTCDate())}/${pad(utcMidnightDateObj.getUTCMonth() + 1)}/${utcMidnightDateObj.getUTCFullYear()}`,\r\n toISOString: () => `${utcMidnightDateObj.getUTCFullYear()\r\n }-${pad(utcMidnightDateObj.getUTCMonth() + 1)\r\n }-${pad(utcMidnightDateObj.getUTCDate())\r\n }T${pad(utcMidnightDateObj.getUTCHours())\r\n }:${pad(utcMidnightDateObj.getUTCMinutes())\r\n }:${pad(utcMidnightDateObj.getUTCSeconds())\r\n }Z`,\r\n };\r\n};\r\n\r\n/**\r\n * Restituisce la rappresentazione ISO della data corrente\r\n */\r\nconst getTodayISOString = () => JustADate(new Date()).toISOString();\r\n\r\n/**\r\n * Restituisce la rapprensentazione ISO della data passata\r\n * per parametro + i giorni passati\r\n * @param {*} date\r\n * @param {*} days\r\n */\r\nconst getAddDayISOString = (date, days = 1) => {\r\n const result = JustADate(date).getDate();\r\n result.setDate(result.getDate() + days);\r\n return JustADate(result).toISOString();\r\n};\r\n\r\n/**\r\n * Restituisce l'anno della data passata in input\r\n * @param {*} date\r\n */\r\nconst getYear = (date) => JustADate(date).getDate().getFullYear();\r\n\r\n/**\r\n * Restituisce l'anno attuale\r\n */\r\nconst getYearAnnoCorso = () => new Date().getFullYear();\r\n\r\n/**\r\n * Differenza tra l'anno della data passata e l'altro parametro:\r\n * -1 anno precendente\r\n * 0 stesso anno\r\n * +1 anno successivo\r\n * @param {*} date\r\n * @param {*} year\r\n */\r\nconst diffYear = (date, year) => {\r\n const dateYear = getYear(date);\r\n\r\n if (year) {\r\n return dateYear - year;\r\n }\r\n const currentYear = new Date().getFullYear();\r\n\r\n return dateYear - currentYear;\r\n};\r\n\r\n/**\r\n * Differenza tra l'anno della data passata e l'anno corrente:\r\n * -1 anno precendente\r\n * 0 stesso anno\r\n * +1 anno successivo\r\n * @param {*} date\r\n */\r\nconst diffCurrentYear = (date) => diffYear(date, new Date().getFullYear());\r\n\r\n/**\r\n * Restituisce la rappresentazione ISO del 31/12 dell'anno\r\n * della data passata\r\n * @param {*} date\r\n */\r\nconst get3112CurrentYearISOString = (date) => {\r\n const dateYear = getYear(date);\r\n const result = new Date(\r\n Date.UTC(dateYear, 11, 31),\r\n );\r\n return JustADate(result).toISOString();\r\n};\r\n\r\n/**\r\n * Restituisce il 31/12 dell'anno corrente\r\n */\r\nconst Dt3112AnnoCorso = new Date(new Date().getFullYear(), 11, 31, 0, 0, 0, 0);\r\n\r\n/**\r\n * Calcola la differenza in giorni tra le due date\r\n * @param {*} date1\r\n * @param {*} date2\r\n */\r\nconst getDaysBetween = (date1, date2) => {\r\n if (!date1 || !date2) return 0;\r\n const dtDate1 = JustADate(date1).getDate();\r\n const dtDate2 = JustADate(date2).getDate();\r\n return Math.floor((dtDate2 - dtDate1) / 86400000);\r\n};\r\n\r\nconst monthNames = ['Gennaio', 'Febbraio', 'Marzo', 'Aprile', 'Maggio', 'Giugno',\r\n 'Luglio', 'Agosto', 'Settembre', 'Ottobre', 'Novembre', 'Dicembre',\r\n];\r\n\r\n/**\r\n * Restituisce la rappresentazione descrittiva del mese passato\r\n * @param {*} month\r\n */\r\nconst getMonthDesc = (month) => (month && month >= 1 && month <= 12 ? monthNames[month - 1] : '');\r\n\r\n/**\r\n * Definisce se un anno è bisestile\r\n * @param {*} year\r\n */\r\nconst isLeapYear = (year) => year % 400 === 0 || (year % 100 !== 0 && year % 4 === 0);\r\n\r\n/**\r\n * Restituisce il numero di giorni in un anno\r\n * @param {*} year\r\n */\r\nconst getDaysOfAYear = (year) => (isLeapYear(year) ? 366 : 365);\r\n\r\nconst dayName = (date) => daysOfTheWeek[new Date(date).getDay()];\r\n\r\nconst monthName = (date) => monthsOfTheYear[new Date(date).getMonth()];\r\n\r\nexport {\r\n getTodayISOString,\r\n getAddDayISOString,\r\n JustADate,\r\n getYear,\r\n getYearAnnoCorso,\r\n diffYear,\r\n diffCurrentYear,\r\n get3112CurrentYearISOString,\r\n Dt3112AnnoCorso,\r\n getDaysBetween,\r\n getMonthDesc,\r\n isLeapYear,\r\n getDaysOfAYear,\r\n dayName,\r\n monthName,\r\n};\r\n","/* eslint-disable import/prefer-default-export */\r\nimport {\r\n useRef, useEffect, useState, useCallback,\r\n} from 'react';\r\nimport debounce from '../Utils/debouncer';\r\nimport { getRandomId } from '../Utils/baseComponentHelper';\r\n\r\nconst NOOP = () => { };\r\n\r\n/**\r\n * Force to re-render the component.\r\n */\r\nexport function useForceUpdate() {\r\n const [, updateState] = useState();\r\n return useCallback(() => updateState({}), []);\r\n}\r\n\r\n/**\r\n * Create a new element as a body child.\r\n */\r\nexport function usePortalElement(create, id = 'modal-element', doc = document) {\r\n const portalRef = useRef();\r\n if (portalRef.current === undefined) {\r\n portalRef.current = doc.createElement('div');\r\n portalRef.current.setAttribute('id', id);\r\n }\r\n useEffect(() => {\r\n if (!portalRef.current) return () => { };\r\n doc.body.appendChild(portalRef.current);\r\n return () => {\r\n doc.body.removeChild(portalRef.current);\r\n portalRef.current = undefined;\r\n };\r\n }, [doc]);\r\n return portalRef;\r\n}\r\n\r\nfunction calcStyle(y, ref, height, diff = 180) {\r\n if (ref && ref.current && (y + ref.current.clientHeight) >= height) {\r\n return { overflow: 'auto', maxHeight: `${height - diff}px` };\r\n }\r\n return { overflow: 'none', maxHeight: 'auto' };\r\n}\r\n\r\nfunction getSize() {\r\n return {\r\n width: window.innerWidth || document.documentElement.clientWidth,\r\n height: window.innerHeight || document.documentElement.clientHeight,\r\n };\r\n}\r\n\r\nfunction createResizeWindowCallback(x, y, mouseCoord, setX, setY) {\r\n return () => {\r\n const { width, height } = getSize();\r\n const { width: mouseWidth, height: mouseHeight } = mouseCoord;\r\n let posX = x;\r\n let posY = y;\r\n if (Number.isInteger(posX) && mouseWidth) {\r\n posX = Math.max(posX + mouseWidth > width ? width - mouseWidth : posX, 0);\r\n posY = Math.max(posY + mouseHeight > height ? height - mouseHeight : posY, 0);\r\n }\r\n setX(posX); setY(posY);\r\n };\r\n}\r\n\r\n/**\r\n * Change modal position.\r\n * Handle mouse move and window resize to return the new modal position.\r\n * Return\r\n * the new postion (x,y),\r\n * the onMouseDown callback and dragging flag, and\r\n * the style attributes for modal content.\r\n */\r\nexport function useChangeModalPosition(initialPosition, modalContentRef, modalElementRef, diff) {\r\n const [x, setX] = useState(initialPosition ? initialPosition.x : undefined);\r\n const [y, setY] = useState(initialPosition ? initialPosition.y : undefined);\r\n const [dragging, setDragging] = useState(false);\r\n const [mouseCoord, setMouseCoord] = useState({});\r\n\r\n const forceUpdate = useForceUpdate();\r\n\r\n useEffect(() => { // observe mutations\r\n if (!window.MutationObserver || !modalElementRef.current) return () => { };\r\n const observer = new window.MutationObserver(debounce(forceUpdate)); // forced to calc style\r\n observer.observe(modalElementRef.current, {\r\n attributes: true,\r\n childList: true,\r\n subtree: true,\r\n });\r\n return () => {\r\n observer.disconnect();\r\n };\r\n }, [forceUpdate, modalElementRef]);\r\n\r\n useEffect(() => { // window resize\r\n if (dragging) return () => { };\r\n const callback = createResizeWindowCallback(x, y, mouseCoord, setX, setY);\r\n callback();\r\n window.addEventListener('resize', callback);\r\n return () => {\r\n window.removeEventListener('resize', callback);\r\n };\r\n }, [dragging, mouseCoord, x, y]);\r\n\r\n useEffect(() => { // mouse up\r\n if (!dragging) return () => { };\r\n const callbackMouseUp = (e) => {\r\n setDragging(false);\r\n e.stopPropagation();\r\n e.preventDefault();\r\n };\r\n document.addEventListener('mouseup', callbackMouseUp);\r\n return () => {\r\n document.removeEventListener('mouseup', callbackMouseUp);\r\n };\r\n }, [dragging]);\r\n\r\n useEffect(() => { // move everywhere\r\n if (!dragging) return () => { };\r\n const changePosition = (e) => {\r\n const { width, height } = getSize();\r\n let posX = e.pageX - mouseCoord.x;\r\n let posY = e.pageY - mouseCoord.y;\r\n if (posX < 0) {\r\n posX = 0;\r\n } else if (posX + mouseCoord.width > width) {\r\n posX = width - mouseCoord.width;\r\n }\r\n if (posY < 0) {\r\n posY = 0;\r\n } else if (posY + mouseCoord.height > height) {\r\n posY = height - mouseCoord.height;\r\n }\r\n setX(posX); setY(posY);\r\n };\r\n\r\n const callbackMouseMove = (e) => {\r\n if (!dragging) return;\r\n changePosition(e);\r\n e.stopPropagation();\r\n e.preventDefault();\r\n };\r\n\r\n document.addEventListener('mousemove', callbackMouseMove);\r\n return () => {\r\n document.removeEventListener('mousemove', callbackMouseMove);\r\n };\r\n }, [dragging, mouseCoord]);\r\n\r\n const onMouseDown = useCallback((e) => {\r\n if (e.button !== 0) return;\r\n if (modalContentRef.current) {\r\n setDragging(true);\r\n setMouseCoord({\r\n x: e.pageX - modalContentRef.current.offsetLeft,\r\n y: e.pageY - modalContentRef.current.offsetTop,\r\n width: modalContentRef.current.offsetWidth,\r\n height: modalContentRef.current.offsetHeight + 1,\r\n });\r\n }\r\n e.stopPropagation();\r\n e.preventDefault();\r\n }, [modalContentRef]);\r\n\r\n return {\r\n x,\r\n y,\r\n ...calcStyle(y, modalContentRef, getSize().height, diff),\r\n dragging,\r\n onMouseDown,\r\n };\r\n}\r\n\r\nconst PH_CLASS_PREFIX = 'modal-ph-';\r\n\r\n/**\r\n * Add modal-open class to body.\r\n * It also adds a placeholder class to remember who added the modal-open class.\r\n * This will be useful when it will remove the class.\r\n * @param {object} win browser window (only for test)\r\n * @param {object} doc browser document (only for test)\r\n * @returns The placeholder class.\r\n */\r\nexport function addModalOpenClassToBody(win = window, doc = document) {\r\n if (win.innerHeight < doc.documentElement.scrollHeight) {\r\n const phClass = `${PH_CLASS_PREFIX}${getRandomId()}`;\r\n if (!doc.body.classList.contains('modal-open')) {\r\n doc.body.classList.add('modal-open');\r\n }\r\n doc.body.classList.add(phClass);\r\n return phClass;\r\n }\r\n return undefined;\r\n}\r\n\r\n/**\r\n * Remove modal-open class to body if this is the last modal.\r\n * If the component is the last modal, there aren't any other 'modal-ph-XXX' classes.\r\n * @param {string} phClass the placeholder class name. It stats with 'modal-ph-'.\r\n * @param {object} doc browser document (only for test)\r\n */\r\nexport function removeModalOpenClassToBody(phClass, doc = document) {\r\n if (phClass !== undefined) {\r\n doc.body.classList.remove(phClass);\r\n if (doc.body.className && !doc.body.className.includes(PH_CLASS_PREFIX)) {\r\n doc.body.classList.remove('modal-open');\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * Create a new element as a body child.\r\n */\r\nexport function useBodyModalOpenClass(open) {\r\n useEffect(() => {\r\n if (!open) return NOOP;\r\n const myClass = addModalOpenClassToBody();\r\n return () => {\r\n removeModalOpenClassToBody(myClass);\r\n };\r\n }, [open]);\r\n}\r\n","import { createContext } from 'react';\r\nimport { NOOP } from '../../../../utils/const';\r\n\r\n/**\r\n * Contesto per le modali.\r\n * La struttura di una modale precede Header, Body e Footer.\r\n * Questi componenti sono in relazione tra loro e il contesto permette il passaggio di parametri e la comunicazione.\r\n *\r\n * Ad esempio, è utilizzato per gestire il movimento della modale con useChangeModalPosition.\r\n */\r\nconst ModalContext = createContext({\r\n dragging: false,\r\n onMouseDown: NOOP,\r\n overflow: false,\r\n maxHeight: '',\r\n});\r\n\r\nexport default ModalContext;\r\n","import { useContext } from 'react';\r\nimport ModalContext from './ModalContext';\r\n\r\n/**\r\n * Hook per la gestione del contesto di una modale. @see ModalContext.\r\n */\r\nexport default function useModalContext() {\r\n return useContext(ModalContext);\r\n}\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\nimport useModalContext from './useModalContext';\r\n\r\n/**\r\n * Header di una modale.\r\n*/\r\nconst Header = ({ children }) => {\r\n const { dragging, onMouseDown } = useModalContext();\r\n return (\r\n \r\n {children}\r\n
\r\n );\r\n};\r\n\r\nHeader.propTypes = {\r\n /** Contenuto da renderizzare all'interno del componente */\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node,\r\n ]).isRequired,\r\n};\r\n\r\nHeader.defaultProps = {\r\n};\r\n\r\nexport default Header;\r\n","import React from 'react';\r\nimport cns from 'classnames';\r\nimport PropTypes from 'prop-types';\r\nimport useModalContext from './useModalContext';\r\n\r\n/**\r\n * Corpo della modale.\r\n*/\r\nconst Body = ({ className, children, scrollable }) => {\r\n const { overflow, maxHeight } = useModalContext();\r\n\r\n return (\r\n
\r\n {children}\r\n
\r\n );\r\n};\r\n\r\nBody.propTypes = {\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n /** Contenuto da renderizzare all'interno del componente */\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node,\r\n ]).isRequired,\r\n /** Gestisce un contenuto che può necessitare di scroll */\r\n scrollable: PropTypes.bool,\r\n};\r\n\r\nBody.defaultProps = {\r\n scrollable: false,\r\n className: undefined,\r\n};\r\n\r\nexport default Body;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\n/**\r\n * Footer della modale.\r\n*/\r\nexport default function Footer({ children }) {\r\n return (\r\n
\r\n {children}\r\n
\r\n );\r\n}\r\n\r\nFooter.propTypes = {\r\n /** Contenuto da renderizzare all'interno del componente */\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node,\r\n ]).isRequired,\r\n};\r\n\r\nFooter.defaultProps = {\r\n};\r\n","/* eslint-disable eqeqeq */\r\n/* eslint-disable no-param-reassign */\r\n\r\nconst setProp = (props, value, obj, stato) => {\r\n const name = props;\r\n if (name.indexOf('.') != -1) {\r\n const properties = name.split('.');\r\n setPropRecursive(properties, value, obj, stato);\r\n } else {\r\n obj[name] = value;\r\n }\r\n};\r\n\r\nconst setPropRecursive = (properties, value, obj, stato) => {\r\n const [prop] = properties;\r\n properties.splice(0, 1);\r\n if (prop.indexOf('[') != -1) {\r\n const propName = prop.substring(0, prop.indexOf('['));\r\n let propIndex = prop.substring(prop.indexOf('[') + 1, prop.indexOf(']'));\r\n propIndex = parseInt(propIndex, 10);\r\n if (properties.length > 0) {\r\n obj[propName] = JSON.parse(JSON.stringify(stato[propName] || {}));\r\n if (obj[propName][propIndex] == null) {\r\n obj[propName][propIndex] = {};\r\n }\r\n\r\n setPropRecursive(properties, value, obj[propName][propIndex], stato[propName][propIndex] || {});\r\n } else {\r\n obj[propName][propIndex] = value;\r\n }\r\n } else if (properties.length > 0) {\r\n if (stato[prop] !== null && typeof stato[prop] === 'object') {\r\n obj[prop] = JSON.parse(JSON.stringify(stato[prop] || {}));\r\n } else {\r\n obj[prop] = stato[prop] || {};\r\n }\r\n\r\n setPropRecursive(properties, value, obj[prop], stato[prop] || {});\r\n } else {\r\n obj[prop] = value;\r\n }\r\n};\r\n\r\n/**\r\n * Return the value of a stato property by props path, or '' if the path doesn't exist.\r\n * props uses the dot notation to identity an object property or\r\n * [index] to identify an array item.\r\n * ex: Dichiarativo.Messaggi[2]\r\n * @param {string} props return property path\r\n * @param {object | array} stato source object where extract the value.\r\n */\r\nconst getProp = (props, stato) => {\r\n if (props === undefined) {\r\n return '';\r\n }\r\n const name = props;\r\n if (name.indexOf('.') != -1) {\r\n const properties = name.split('.');\r\n let temp = stato;\r\n for (let i = 0; i < properties.length; i += 1) {\r\n const prop = properties[i];\r\n if (prop.indexOf('[') != -1) {\r\n const propName = prop.substring(0, prop.indexOf('['));\r\n let propIndex = prop.substring(prop.indexOf('[') + 1, prop.indexOf(']'));\r\n propIndex = parseInt(propIndex, 10);\r\n if (temp[propName] == undefined) {\r\n return '';\r\n }\r\n temp = temp[propName][propIndex];\r\n if (temp == undefined) {\r\n return '';\r\n }\r\n } else {\r\n temp = temp[prop];\r\n if (temp == undefined) {\r\n return '';\r\n }\r\n }\r\n }\r\n return temp == null ? '' : temp;\r\n }\r\n return stato[name] == null ? '' : stato[name];\r\n};\r\n\r\nexport {\r\n setProp,\r\n getProp,\r\n};\r\n","import { createContext } from 'react';\r\n\r\nexport default createContext({\r\n addToForm: null,\r\n isValid: null,\r\n onFormChange: null,\r\n removeFromForm: null,\r\n resetta: null,\r\n stato: null,\r\n validare: null,\r\n});\r\n","import React, { forwardRef } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport FormContext from './FormContext';\r\n\r\n/* eslint-disable react/require-default-props */\r\nexport const FormWrapperPropTypes = {\r\n addToForm: PropTypes.func,\r\n isValid: PropTypes.func,\r\n onFormChange: PropTypes.func,\r\n removeFromForm: PropTypes.func,\r\n resetta: PropTypes.func,\r\n stato: PropTypes.object, // eslint-disable-line react/forbid-prop-types\r\n validare: PropTypes.bool,\r\n};\r\n/* eslint-enable react/require-default-props */\r\n\r\nconst withForm = (WrappedComponent) => {\r\n const FormWrapper = forwardRef((props, ref) => (\r\n \r\n {({\r\n addToForm,\r\n isValid,\r\n onFormChange,\r\n removeFromForm,\r\n resetta,\r\n stato,\r\n validare,\r\n }) => (\r\n \r\n )}\r\n \r\n ));\r\n const getDisplayName = (WComponent) => WComponent.displayName || WComponent.name || 'Component';\r\n FormWrapper.displayName = `withForm(${getDisplayName(FormWrapper)})`;\r\n FormWrapper.propTypes = FormWrapperPropTypes;\r\n return FormWrapper;\r\n};\r\n\r\nexport default withForm;\r\n","import { useEffect, useContext } from 'react';\r\nimport FormContext from '../Form/FormContext';\r\nimport { setProp } from '../Utils/formHelpers';\r\n\r\nconst notifica = (event, name, value, onChange, onFormChange, stato) => {\r\n if (onFormChange && name) {\r\n const obj = {};\r\n setProp(name, value, obj, stato);\r\n onFormChange(obj, name, value);\r\n }\r\n\r\n onChange && onChange(event);\r\n};\r\n\r\n/**\r\n * Hook utilizzata per agganciare un componente al contesto FormContext\r\n * @param {*} name\r\n * @param {*} resetHandler\r\n * @param {*} valido\r\n */\r\nfunction useForm(name, resetHandler, valido) {\r\n const {\r\n addToForm, isValid, onFormChange, removeFromForm, resetta, stato, validare,\r\n } = useContext(FormContext);\r\n\r\n useEffect(() => {\r\n if (name && addToForm) {\r\n addToForm(name, valido, resetHandler);\r\n }\r\n return () => {\r\n if (removeFromForm && name) {\r\n removeFromForm(name);\r\n }\r\n };\r\n },\r\n [addToForm, name, removeFromForm, resetHandler, valido]);\r\n\r\n return {\r\n isValid,\r\n onFormChange,\r\n resetta,\r\n stato,\r\n validare,\r\n notifica,\r\n };\r\n}\r\n\r\nexport default useForm;\r\n","/**\r\n * Gli stati di disabled e readOnly possono essere attivi contemporaneamente.\r\n * Se settati entrambi, vince il readOnly. Se entrambi sono false, il componente è attivo.\r\n * @param {bool} disabled\r\n * @param {bool} readOnly\r\n */\r\nfunction useActivation(disabled, readOnly) {\r\n return ({\r\n active: !disabled && !readOnly,\r\n disabled: !readOnly && disabled,\r\n readOnly,\r\n });\r\n}\r\n\r\nexport default useActivation;\r\n","import React, { useCallback, useMemo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\nimport { getProp } from '../Utils/formHelpers';\r\nimport { FormWrapperPropTypes } from '../Form/withForm';\r\nimport useForm from '../Hooks/useForm';\r\nimport useActivation from '../Hooks/useActivation';\r\nimport { getRandomId } from '../Utils/baseComponentHelper';\r\n\r\nconst resetHandler = () => { };\r\n\r\nconst Checkbox = ({\r\n addToForm,\r\n checked,\r\n className,\r\n defaultChecked,\r\n disabled: disabledProp, readOnly: readOnlyProp,\r\n indeterminate,\r\n name, label,\r\n onClick,\r\n switch: rSwitch,\r\n type,\r\n ...others\r\n}) => {\r\n const {\r\n onFormChange,\r\n stato,\r\n notifica,\r\n } = useForm(name, resetHandler, true);\r\n\r\n const contesto = stato && name && getProp(name, stato);\r\n const { active, disabled, readOnly } = useActivation(disabledProp, readOnlyProp);\r\n const cbChecked = contesto || checked || defaultChecked || false;\r\n const uniqueid = useMemo(() => getRandomId(), []);\r\n\r\n const classes = cns(\r\n 'checkbox',\r\n {\r\n 'checkbox--switch': rSwitch,\r\n 'checkbox--no-switch': !rSwitch,\r\n 'checkbox--checked': cbChecked,\r\n 'checkbox--enabled': active,\r\n 'checkbox--indeterminate': indeterminate,\r\n 'checkbox--readOnly': readOnly,\r\n 'checkbox--disabled': disabled,\r\n },\r\n className,\r\n );\r\n\r\n const data = {};\r\n if (defaultChecked) {\r\n data.defaultChecked = defaultChecked;\r\n } else {\r\n data.checked = contesto || checked || false;\r\n }\r\n\r\n const labelClassName = cns(\r\n 'checkbox__label',\r\n {\r\n 'checkbox__label--disabled': disabled,\r\n 'checkbox__label--readOnly': readOnly,\r\n 'checkbox__label--checked': cbChecked,\r\n },\r\n );\r\n\r\n const inputConteinerClassName = cns(\r\n 'checkbox__input-bg',\r\n {\r\n 'checkbox__input-bg--switch': rSwitch,\r\n 'checkbox__input-bg--no-switch': !rSwitch,\r\n 'checkbox__input-bg--enabled': active,\r\n },\r\n );\r\n\r\n const handleChange = useCallback((e) => {\r\n if (active) notifica(e, name, e.target.checked, onClick, onFormChange, stato);\r\n }, [active, name, notifica, onClick, onFormChange, stato]);\r\n\r\n const checkboxId = `${name}_${uniqueid}`;\r\n return (\r\n \r\n );\r\n};\r\n\r\nCheckbox.defaultProps = {\r\n checked: false,\r\n className: '',\r\n defaultChecked: false,\r\n disabled: false,\r\n readOnly: false,\r\n indeterminate: false,\r\n name: '',\r\n onClick: null,\r\n switch: false,\r\n label: null,\r\n};\r\n\r\nCheckbox.propTypes = {\r\n ...FormWrapperPropTypes,\r\n /** Indica se la checkbox è checked */\r\n checked: PropTypes.bool,\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n /** Indica se inizialmente la checkbox è checked ma non bindata */\r\n defaultChecked: PropTypes.bool,\r\n /** Indica se il componente è disabilitato */\r\n disabled: PropTypes.bool,\r\n /** Indica se il componente è readOnly */\r\n readOnly: PropTypes.bool,\r\n /** Indica se il componente è in stato indeterminato */\r\n indeterminate: PropTypes.bool,\r\n /** Nome del campo da bindare se il componente è contenuto all'interno di un componente Form */\r\n name: PropTypes.string,\r\n /** Etichetta da associare alla chackbox */\r\n label: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\r\n /**\r\nCallback invocata al click sul componente:\r\n\r\ndove:\r\n\r\n- `evento`: evento scatenante\r\n */\r\n onClick: PropTypes.func,\r\n /** Indica se mostrare uno switch al posto della checkbox */\r\n switch: PropTypes.bool,\r\n};\r\n\r\nexport default Checkbox;\r\n","import Checkbox from './Checkbox';\r\n\r\nexport default Checkbox;\r\n","export function isUndefined(x) {\r\n return x === null || x === undefined;\r\n}\r\n\r\nexport function isUndefinedOrEmpty(x) {\r\n return x === null || x === undefined || x === '';\r\n}\r\n\r\nexport function omit(obj, ...propNames) {\r\n const result = { ...obj };\r\n propNames.forEach((p) => delete result[p]);\r\n return result;\r\n}\r\n\r\nexport function mergeOrDelete(obj, name, value) {\r\n if (!obj) return obj;\r\n const result = { ...obj };\r\n if (value === undefined) {\r\n delete result[name];\r\n } else {\r\n result[name] = value;\r\n }\r\n return result;\r\n}\r\n\r\nexport function pick(obj, ...propNames) {\r\n if (isUndefined(obj)) return {};\r\n return Object.keys(obj).filter((k) => propNames.includes(k)).reduce((res, k) => {\r\n res[k] = obj[k];\r\n return res;\r\n }, {});\r\n}\r\n\r\nexport function any(obj) {\r\n if (Array.isArray(obj)) {\r\n return obj.length === 0 ? undefined : obj[0];\r\n }\r\n if (typeof obj === 'object') {\r\n const keys = Object.keys(obj);\r\n return keys.length === 0 ? undefined : obj[keys[0]];\r\n }\r\n return obj;\r\n}\r\n\r\nexport function last(arr) {\r\n if (arr && arr.length > 0) return arr[arr.length - 1];\r\n return undefined;\r\n}\r\n\r\nexport function isObject(object) {\r\n return object != null && typeof object === 'object';\r\n}\r\n\r\nexport function isDeepEqual(obj1, obj2) {\r\n if (isObject(obj1) && isObject(obj2)) {\r\n const keys1 = Object.keys(obj1);\r\n const keys2 = Object.keys(obj2);\r\n if (keys1.length !== keys2.length) return false;\r\n for (const key of keys1) {\r\n if (!isDeepEqual(obj1[key], obj2[key])) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n return obj1 === obj2;\r\n}\r\n\r\nexport function uuid(template = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx') {\r\n let d = new Date().getTime();// Timestamp\r\n // Time in microseconds since page-load or 0 if unsupported\r\n let d2 = ((typeof performance !== 'undefined') && performance.now && (performance.now() * 1000)) || 0;\r\n return template.replace(/[xy]/g, (c) => {\r\n let r = Math.random() * 16;// random number between 0 and 16\r\n if (d > 0) { // Use timestamp until depleted\r\n // eslint-disable-next-line no-bitwise\r\n r = (d + r) % 16 | 0;\r\n d = Math.floor(d / 16);\r\n } else { // Use microseconds since page-load if supported\r\n // eslint-disable-next-line no-bitwise\r\n r = (d2 + r) % 16 | 0;\r\n d2 = Math.floor(d2 / 16);\r\n }\r\n // eslint-disable-next-line no-mixed-operators, no-bitwise\r\n return (c === 'x' ? r : (r & 0x3 | 0x8)).toString(16);\r\n });\r\n}\r\n\r\n/**\r\n * Crea una promise risolta dalla chiamata delle funzioni resolve o reject parametri di func,\r\n * o dalla scadenza del timeout (ritorna una Error con testo `timeout expired`)\r\n * @param {func} func funzione con 2 parametri resolve e reject per risolvere o regettare il task\r\n * @param {number} timeout timeout in mills\r\n * @returns {Promise} promise\r\n */\r\nexport function withTimeout(func, timeout) {\r\n return new Promise((resolve, reject) => {\r\n let timeoutId = setTimeout(() => {\r\n timeoutId = undefined;\r\n reject(new Error('timeout expired'));\r\n }, timeout);\r\n\r\n func(\r\n (value) => {\r\n if (timeoutId) {\r\n clearTimeout(timeoutId);\r\n resolve(value);\r\n } else {\r\n // ignoro il timeout è già scattato!\r\n }\r\n },\r\n (error) => {\r\n if (timeoutId) {\r\n clearTimeout(timeoutId);\r\n reject(error);\r\n } else {\r\n // ignoro il timeout è già scattato!\r\n }\r\n },\r\n );\r\n });\r\n}\r\n","import { isUndefined } from './js';\r\nimport Log from './log';\r\nimport { isLocalhost } from './webClient';\r\n\r\nlet defaultDomain = isLocalhost ? 'localhost' : '.cgn.it';\r\n\r\nexport function setCookieDomain(domain) {\r\n defaultDomain = domain;\r\n}\r\n\r\nfunction createCookieStorage(settings = { domain: defaultDomain }) {\r\n const doc = settings.document || document;\r\n return {\r\n setItem(key, value) {\r\n const valueStr = encodeURIComponent(value);\r\n doc.cookie = `${key}=${valueStr}; Domain=${settings.domain}; expires=0; SameSite=None; Secure`;\r\n },\r\n getItem(key) {\r\n try {\r\n const resArray = doc.cookie.split(';')\r\n .map((s) => s.trim().split('='))\r\n .filter(([k, v]) => k === key)\r\n .map(([k, v]) => decodeURIComponent(v));\r\n\r\n if (resArray.length === 0) return undefined;\r\n return resArray[0];\r\n } catch (err) {\r\n Log.error(err);\r\n return undefined;\r\n }\r\n },\r\n removeItem(key) {\r\n doc.cookie = `${key}=; Domain=${settings.domain}; expires=Thu, 01 Jan 1970 00:00:00 UTC;`;\r\n },\r\n keys() {\r\n return doc.cookie.split(';')\r\n .map((s) => s.trim().split('='))\r\n .map(([k, v]) => k);\r\n },\r\n };\r\n}\r\n\r\n/**\r\n *\r\n * @param {string} property a property id\r\n * @param {object} store storage\r\n * @param {func} store.getItem data una stringa chiave, restituisce la stringa memorizzata\r\n * @param {func} store.setItem data una stringa chiave (primo parametro) salva la stringa data (secondo parametro)\r\n * @param {func} store.removeItem data una stringa chiave, cancella la striga memorizzata\r\n * @returns {object} a storage object\r\n */\r\nexport function storage(property, store = window.sessionStorage) {\r\n const obj = {\r\n load: () => {\r\n const data = store.getItem(property);\r\n if (!data) {\r\n return null;\r\n }\r\n return JSON.parse(data);\r\n },\r\n save: (data) => {\r\n if (isUndefined(data)) store.removeItem(property);\r\n else store.setItem(property, JSON.stringify(data));\r\n },\r\n clear: () => {\r\n store.removeItem(property);\r\n },\r\n keys: () => {\r\n if (store.keys) return store.keys();\r\n const result = [];\r\n for (let i = 0; i < store.length; i++) {\r\n result.push(store.key(i));\r\n }\r\n return result;\r\n },\r\n };\r\n return obj;\r\n}\r\n\r\n/**\r\n * Restituisce uno storage che utilizza il `window.sessionStorage`.\r\n * @param {string} property proprietà salvata\r\n * @returns {object} oggetto storage con metodi load, save e clear.\r\n */\r\nexport function sessionStorage(property) {\r\n return storage(property);\r\n}\r\n\r\n/**\r\n * Restituisce uno storage che utilizza il `window.localStorage`.\r\n * @param {string} property proprietà salvata\r\n * @returns {object} oggetto storage con metodi load, save e clear.\r\n */\r\nexport function localStorage(property) {\r\n return storage(property, window.localStorage);\r\n}\r\n\r\n/**\r\n * Restituisce uno storage che utilizza i `document.cookie`.\r\n * @param {string} property proprietà salvata\r\n * @param {object} settings settaggio di salvataggio dei cookie\r\n * @param {string} settings.domain dominio di salvataggio dei cookie\r\n * @returns {object} oggetto storage con metodi load, save e clear.\r\n */\r\nexport function cookieStorage(property, settings) {\r\n return storage(property, createCookieStorage(settings));\r\n}\r\n","import React, { useCallback, useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\nimport Checkbox from '../Checkbox';\r\nimport { localStorage } from '../../utils/storage';\r\n\r\nconst MESSAGE_READ = 'messageRead';\r\n\r\nfunction isDontShowAgainOptionSelected(id) {\r\n return id && localStorage(id).load() === MESSAGE_READ;\r\n}\r\n\r\nfunction clearMessageStatus(id) {\r\n return id && localStorage(id).clear();\r\n}\r\n\r\n/**\r\nIl componente gestisce una checkbox che mostra il messaggio di 'Non visualizzare più'\r\ne memorizza lo stato sul localStorage.\r\n\r\nPer sapere se il messaggio è stato letto, si può usare `DontShowAgain.isDontShowAgainOptionSelected`.\r\n*/\r\nconst DontShowAgain = ({ message, className, id }) => {\r\n const [checked, setChecked] = useState(isDontShowAgainOptionSelected(id));\r\n\r\n const handleClick = useCallback(() => {\r\n const store = localStorage(id);\r\n const currentValue = store.load();\r\n const newValue = currentValue === MESSAGE_READ ? undefined : MESSAGE_READ;\r\n store.save(newValue);\r\n setChecked(newValue === MESSAGE_READ);\r\n }, [id]);\r\n\r\n return (\r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\nDontShowAgain.propTypes = {\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n /** Messaggio da mostrare nella strina del 'Non visualizzare più' */\r\n message: PropTypes.string,\r\n /**\r\nIdentificativo del componente per la gestione 'Non visualizzare più'.\r\nLo stato è salvato nella sessione locale del browser quindi è necessario un identificativo per gestire il salvataggio.\r\n\r\nTipicamente è composto dall'id dell'utente e da un identificativo del messaggio.\r\n*/\r\n id: PropTypes.string.isRequired,\r\n};\r\n\r\nDontShowAgain.defaultProps = {\r\n className: undefined,\r\n message: 'Non visualizzare più',\r\n};\r\n\r\nDontShowAgain.isDontShowAgainOptionSelected = isDontShowAgainOptionSelected;\r\nDontShowAgain.clearMessageStatus = clearMessageStatus;\r\n\r\nexport default DontShowAgain;\r\n","import { useEffect, useState } from 'react';\r\nimport DontShowAgain from './DontShowAgain';\r\n\r\n/**\r\n * Determina se il messaggio relativo a `id` è stato letto.\r\n *\r\n * Lo stato del messaggio viene riletto ad ogni cambiamento di `reloadCond`.\r\n */\r\nexport default function useDontShowAgainMessageRead(id, reloadCond) {\r\n const [messageRead, setMessageRead] = useState(DontShowAgain.isDontShowAgainOptionSelected(id));\r\n useEffect(() => {\r\n setMessageRead(DontShowAgain.isDontShowAgainOptionSelected(id)); // rileggo\r\n }, [id, reloadCond]);\r\n\r\n return messageRead;\r\n}\r\n","import { useRef, useEffect } from 'react';\r\n\r\n/**\r\n * Hook utilizzato per poter capire se un componente è ancora mounted (utilizzato nei processi\r\n * asincroni dopo la chiusura di un componente per evitare leak)\r\n * @returns elemento useRef contenente un boolean\r\n */\r\nconst useMountedRef = () => {\r\n const refMounted = useRef(true);\r\n useEffect(() => {\r\n refMounted.current = true;\r\n return () => {\r\n refMounted.current = false;\r\n };\r\n }, []);\r\n return refMounted;\r\n};\r\n\r\nexport default useMountedRef;\r\n","import { useEffect, useContext } from 'react';\r\nimport useMountedRef from '../Hooks/useMountedRef';\r\nimport ModalContext from './ModalContext';\r\n\r\n/**\r\n * Gestisce il contesto delle modali passando lo stato di show.\r\n */\r\nfunction useModalContext(open = false, options, callback = null) {\r\n const { setOpen, subscribe, unsubscribe } = useContext(ModalContext);\r\n const refMounted = useMountedRef();\r\n useEffect(() => {\r\n ModalContext.setOpenOrGlobal(open, setOpen, options);\r\n if (callback) ModalContext.subscribeOrGlobal(subscribe, callback);\r\n return () => {\r\n if (!refMounted.current && open) ModalContext.setOpenOrGlobal(false, setOpen, options);\r\n if (callback) ModalContext.unsubscribeOrGlobal(unsubscribe, callback);\r\n };\r\n }, [callback, open, options, setOpen, subscribe, unsubscribe, refMounted]);\r\n}\r\n\r\nexport default useModalContext;\r\n","import React from 'react';\r\nimport Icon from './Icon';\r\n\r\nexport default Icon(, '0 0 24 24', 'DeleteIcon');\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport DeleteIcon from '../../../Icons/DeleteIcon';\r\nimport Button from '../../Button/Button';\r\n\r\n/**\r\n * Bottone di chiusura di una modale.\r\n */\r\nexport default function CloseModalButton({ onClose }) {\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nCloseModalButton.propTypes = {\r\n onClose: PropTypes.func.isRequired,\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\nimport useModalContext from './useModalContext';\r\n\r\n/**\r\n*/\r\nexport default function Item({ id, children, className }) {\r\n const { current } = useModalContext();\r\n return (\r\n
\r\n {children}\r\n
\r\n );\r\n}\r\n\r\nItem.propTypes = {\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n /** Contenuto da renderizzare all'interno del componente.\r\n */\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node,\r\n ]),\r\n /**\r\n * Identificativo dell'item.\r\n */\r\n id: PropTypes.string.isRequired,\r\n};\r\n\r\nItem.defaultProps = {\r\n className: undefined,\r\n children: undefined,\r\n};\r\n","export const CLOSED_BY_DONT_SHOW_IT_AGAIN = 'CLOSED_BY_DONT_SHOW_IT_AGAIN';\r\n\r\nexport function createClosedByDontShowAgainEvent(id, dontShowAgainId) {\r\n return { type: CLOSED_BY_DONT_SHOW_IT_AGAIN, id, dontShowAgainId };\r\n}\r\n\r\nexport function isClosedByDontShowAgainEvent(event) {\r\n return event.type === CLOSED_BY_DONT_SHOW_IT_AGAIN;\r\n}\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport CloseModalButton from './CloseModalButton';\r\nimport DontShowAgain from '../../../DontShowAgain/DontShowAgain';\r\nimport useDontShowAgainMessageRead from '../../../DontShowAgain/useDontShowAgainMessageRead';\r\nimport Item from './Item';\r\nimport { createClosedByDontShowAgainEvent } from './utils';\r\n\r\n/**\r\nUn item di `Modal`.\r\n\r\nVisualizza un contenuto che blocca temporaneamente le interazioni con il resto dell'interfaccia.\r\n\r\nSi può utilizzare per questi tipi di messaggi:\r\n\r\n- Chiedere conferma o fare decisioni\r\n- Fornire delle informazioni\r\n- Completare dei compiti importanti all'interno di un processo\r\n\r\n_Nota_: Se la modale non contiene delle azioni (ad es. Salva),\r\nma contiene ad es. un processo che richiede i pulsanti \"Indietro\" e \"Avanti\",\r\nbisogna inserire il pulsante \"X\" per poterla chiudere.\r\n\r\n_Esempio struttura del componente_\r\n\r\n```js\r\n\r\n \r\n ...\r\n \r\n\r\n \r\n ...\r\n \r\n\r\n \r\n ...\r\n \r\n\r\n```\r\n*/\r\nconst GenericItem = ({\r\n id, className, children, onClose, dontShowAgainId, dontShowAgainMessage,\r\n}) => {\r\n const messageRead = useDontShowAgainMessageRead(dontShowAgainId, true);\r\n\r\n if (messageRead) {\r\n onClose && onClose(createClosedByDontShowAgainEvent(id, dontShowAgainId));\r\n return null;\r\n }\r\n return (\r\n \r\n {onClose && }\r\n {children}\r\n {dontShowAgainId && }\r\n \r\n );\r\n};\r\n\r\nGenericItem.propTypes = {\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n /** Contenuto da renderizzare all'interno del componente.\r\n * Può essere di tipo `Modal.Header`, `Modal.Body` o `Modal.Footer`.\r\n */\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node,\r\n ]),\r\n /**\r\n * Identificativo dell'item.\r\n */\r\n id: PropTypes.string.isRequired,\r\n /**\r\nCallback di chiusura della modale.\r\n\r\nIl primo parametro è l'evento scatenante.\r\n\r\nSe la chiusura avviene a seguito della gestione dontShowAgain, ritorna un oggetto con `id` pari all'id della modale e\r\n`dontShowAgainId` pari alla prop `dontShowAgainId` della modale.\r\nPer verificate che la chiusura sia conseguenza della gestione dontShowAgain, usare il metodo `Modal.isClosedByDontShowAgainEvent`.\r\n */\r\n onClose: PropTypes.func,\r\n\r\n /**\r\nIdentificativo del componente per la gestione 'Non visualizzare più'. Se impostato abilita la gestione.\r\nLo stato è salvato nella sessione locale del browser quindi è necessario un identificativo per gestire il salvataggio.\r\n\r\nTipicamente è composto dall'id dell'utente e da un identificativo del messaggio.\r\n\r\nUtilizzare `Modal.clearMessageStatus` per pulire lo stato.\r\n*/\r\n dontShowAgainId: PropTypes.string,\r\n\r\n /**\r\nMessaggio del componente per la gestione 'Non visualizzare più'.\r\n*/\r\n dontShowAgainMessage: PropTypes.string,\r\n};\r\n\r\nGenericItem.defaultProps = {\r\n className: undefined,\r\n children: undefined,\r\n onClose: undefined,\r\n dontShowAgainId: undefined,\r\n dontShowAgainMessage: 'Non mostrare più questo messaggio',\r\n};\r\n\r\nexport default GenericItem;\r\n","import React, { useMemo, useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\nimport Button from '../../Button/Button';\r\nimport { NOOP } from '../../../../utils/const';\r\nimport DontShowAgain from '../../../DontShowAgain/DontShowAgain';\r\nimport useDontShowAgainMessageRead from '../../../DontShowAgain/useDontShowAgainMessageRead';\r\nimport Body from './Body';\r\nimport Item from './Item';\r\nimport { createClosedByDontShowAgainEvent } from './utils';\r\nimport useModalContext from './useModalContext';\r\n\r\nfunction createWrappedAsyncCallback(func, beforeCallback, afterCallback) {\r\n return () => {\r\n if (func) {\r\n const result = func();\r\n if (result instanceof Promise) {\r\n beforeCallback();\r\n return result.then(\r\n (res) => {\r\n afterCallback();\r\n return res;\r\n },\r\n (err) => {\r\n afterCallback();\r\n throw err;\r\n },\r\n );\r\n }\r\n }\r\n return undefined;\r\n };\r\n}\r\n\r\n/**\r\nUn item di tipo Confirm di `Modal`. Per avvertire l'utente che quello che sta per fare è irreversibile.\r\n\r\n_Quando si utilizza?_\r\n\r\n- Usare le confirm solo quando è strettamente necessario e non per azioni di routine.\r\n- Essere molto specifici (vedi sezione Testi) ed informare gli utenti delle conseguenze che stanno per avvenire,\r\nfacendo riconoscere il possibile errore in maniera semplice.\r\n- Usare opzioni di risposta (testi dei pulsanti) parlanti, che sintetizzino bene le conseguenze ed evitare risposte Sì/No.\r\nAd es. in caso di eliminazione di un file scrivere \"Elimina il file\" \"Mantieni il file\"\r\n- Essendo che l'utente deve controllare e ricontrollare quello che sta facendo e\r\nche bisogna evitare che compia delle azioni automatiche (come cliccare subito sul pulsante a enfasi alta)\r\ndobbiamo creare delle situazioni diverse da quelle a cui è abituato.\r\n- Prevedere una checkbox \"Non mostrare più questo messaggio\" nel caso di confirm create per educare l'utente all'utilizzo di nuove\r\nfeature del software con effetti indesiderati. In questo caso la confirm sarà mostrata per un periodo di tempo prestabilito.\r\n\r\n*/\r\nconst ConfirmItem = ({\r\n id, className, title, message, image, onClose,\r\n primaryLabel, onPrimaryClick,\r\n secondaryLabel, onSecondaryClick,\r\n dontShowAgainId, dontShowAgainMessage,\r\n classNameBody,\r\n}) => {\r\n const messageRead = useDontShowAgainMessageRead(dontShowAgainId, true);\r\n const { dragging, onMouseDown } = useModalContext();\r\n\r\n const [working, setWorking] = useState(false);\r\n\r\n const [primaryCallback, secondaryCallback] = useMemo(() => {\r\n const startWorking = () => setWorking(true);\r\n const stopWorking = () => setWorking(false);\r\n\r\n const primaryCB = createWrappedAsyncCallback(onPrimaryClick, startWorking, stopWorking);\r\n const secondaryCB = createWrappedAsyncCallback(onSecondaryClick, startWorking, stopWorking);\r\n\r\n return [primaryCB, secondaryCB];\r\n }, [onPrimaryClick, onSecondaryClick]);\r\n\r\n if (messageRead) {\r\n onClose(createClosedByDontShowAgainEvent(id, dontShowAgainId));\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n \r\n
\r\n
\r\n
\r\n {image}\r\n
\r\n
\r\n \r\n {title}\r\n \r\n
{message}
\r\n
\r\n
{/* empty space to align footer buttons */}\r\n
\r\n \r\n \r\n
\r\n {dontShowAgainId &&
} {/* empty space to align don't show again message */}\r\n {dontShowAgainId && }\r\n
\r\n
\r\n \r\n \r\n );\r\n};\r\n\r\nConfirmItem.propTypes = {\r\n /**\r\n * Identificativo dell'item.\r\n */\r\n id: PropTypes.string.isRequired,\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n /** Classi css personalizzate da aggiungere al body della modale */\r\n classNameBody: PropTypes.string,\r\n\r\n /** Immagine da mostrare per dare enfasi al messaggio. L'immagine deve stare in un quadrato di 120px. */\r\n image: PropTypes.node,\r\n\r\n /**\r\nCallback di chiusura della modale per la gestione dontShowAgain.\r\nRitorna un oggetto con `id` pari all'id della modale e\r\n`dontShowAgainId` pari alla prop `dontShowAgainId` della modale.\r\nPer verificate che la chiusura sia conseguenza della gestione dontShowAgain, usare il metodo `Modal.isClosedByDontShowAgainEvent`.\r\n */\r\n onClose: PropTypes.func,\r\n\r\n /** Etichetta del bottone di scelta primaria */\r\n primaryLabel: PropTypes.string.isRequired,\r\n /**\r\nCallback alla pressione della scelta primaria. Il primo parametro è l'evento scatenante.\r\n */\r\n onPrimaryClick: PropTypes.func,\r\n\r\n /** Etichetta del bottone di scelta secondaria */\r\n secondaryLabel: PropTypes.string.isRequired,\r\n /**\r\nCallback alla pressione della scelta secondaria. Il primo parametro è l'evento scatenante.\r\n */\r\n onSecondaryClick: PropTypes.func,\r\n\r\n /**\r\nIdentificativo del componente per la gestione 'Non visualizzare più'. Se impostato abilita la gestione.\r\nLo stato è salvato nella sessione locale del browser quindi è necessario un identificativo per gestire il salvataggio.\r\n\r\nTipicamente è composto dall'id dell'utente e da un identificativo del messaggio.\r\n\r\nUtilizzare `ConfirmModal.clearMessageStatus` per pulire lo stato.\r\n */\r\n dontShowAgainId: PropTypes.string,\r\n\r\n /**\r\nMessaggio del componente per la gestione 'Non visualizzare più'.\r\n */\r\n dontShowAgainMessage: PropTypes.string,\r\n\r\n /** Titolo */\r\n title: PropTypes.string.isRequired,\r\n /** Messaggio o contenuto */\r\n message: PropTypes.oneOfType([PropTypes.string, PropTypes.node]).isRequired,\r\n};\r\n\r\nConfirmItem.defaultProps = {\r\n onPrimaryClick: NOOP,\r\n onSecondaryClick: NOOP,\r\n onClose: NOOP,\r\n className: undefined,\r\n classNameBody: undefined,\r\n dontShowAgainId: undefined,\r\n dontShowAgainMessage: 'Non mostrare più questo messaggio',\r\n image: undefined,\r\n};\r\n\r\nexport default ConfirmItem;\r\n","/* eslint-disable max-len */\r\nimport React from 'react';\r\nimport Icon from '../../Icons/Icon';\r\n\r\nexport default Icon(\r\n \r\n \r\n \r\n ,\r\n '0 0 24 24',\r\n 'FeedbackIcon',\r\n);\r\n","/* eslint-disable max-len */\r\nimport React from 'react';\r\nimport Icon from '../../Icons/Icon';\r\n\r\nexport default Icon(\r\n \r\n \r\n \r\n ,\r\n '0 0 24 24',\r\n 'QuestionAnswerIcon',\r\n);\r\n","/* eslint-disable max-len */\r\nimport React from 'react';\r\nimport Icon from '../../Icons/Icon';\r\n\r\nexport default Icon(\r\n \r\n \r\n \r\n ,\r\n '0 0 24 24',\r\n 'ThumbUpIcon',\r\n);\r\n","/* eslint-disable max-len */\r\nimport React from 'react';\r\nimport Icon from '../../Icons/Icon';\r\n\r\nexport default Icon(\r\n \r\n \r\n \r\n ,\r\n '0 0 24 24',\r\n 'ReportIcon',\r\n);\r\n","import React, {\r\n useMemo,\r\n} from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\n\r\nimport FeedbackIcon from '../../../GoogleIcons/Filled/FeedbackIcon';\r\nimport QuestionAnswerIcon from '../../../GoogleIcons/Filled/QuestionAnswerIcon';\r\nimport ThumbUpIcon from '../../../GoogleIcons/Filled/ThumbUpIcon';\r\nimport ReportIcon from '../../../GoogleIcons/Filled/ReportIcon';\r\n\r\nconst EMP_MED = 'MEDIUM';\r\nconst EMP_LOW = 'LOW';\r\n\r\n/**\r\nPannello per chiedere la conferma di lettura di un messaggio.\r\n\r\nVedi [Design System di CGN - Feedback](https://zeroheight.com/1b5e94371/p/34fc2c-feedback/b/95d71c)\r\n\r\nL'icona può essere cambiata specificandone una ma è sempre meglio farlo in accordo con la UX, le icone utilizzabili devono comunque essere \"filled\".\r\n*/\r\nconst FeedbackPanel = ({\r\n type, title, message, emphasis, icon,\r\n}) => {\r\n const Icon = useMemo(() => {\r\n if (icon) {\r\n return icon;\r\n }\r\n if (type === 'success' || type === 'success-partial') {\r\n return ThumbUpIcon;\r\n }\r\n if (type === 'warning') {\r\n return FeedbackIcon;\r\n }\r\n if (type === 'alarm') {\r\n return ReportIcon;\r\n }\r\n return QuestionAnswerIcon;\r\n }, [icon, type]);\r\n\r\n return (\r\n
\r\n \r\n
\r\n

{title}

\r\n
{message}
\r\n
\r\n
\r\n );\r\n};\r\n\r\nFeedbackPanel.Emphasis = {\r\n LOW: EMP_LOW,\r\n MEDIUM: EMP_MED,\r\n};\r\n\r\nFeedbackPanel.propTypes = {\r\n /** Indica la tipologia del feedback */\r\n type: PropTypes.oneOf(['info', 'alarm', 'warning', 'success', 'success-partial']),\r\n /** Titolo del feedback */\r\n title: PropTypes.string.isRequired,\r\n /** messaggio del feedback */\r\n message: PropTypes.oneOfType([PropTypes.string, PropTypes.node]).isRequired,\r\n /** Enfasi del bottone */\r\n emphasis: PropTypes.oneOf([FeedbackPanel.Emphasis.LOW, FeedbackPanel.Emphasis.MEDIUM]),\r\n /** Indica l'icona da sostituire a quella di default */\r\n icon: PropTypes.elementType,\r\n};\r\n\r\nFeedbackPanel.defaultProps = {\r\n type: 'info',\r\n emphasis: FeedbackPanel.Emphasis.LOW,\r\n icon: undefined,\r\n};\r\n\r\nexport default FeedbackPanel;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport Button from '../../Button/Button';\r\nimport FeedbackPanel from '../FeedbackModal/FeedbackPanel';\r\nimport Header from './Header';\r\nimport Body from './Body';\r\nimport Footer from './Footer';\r\nimport Item from './Item';\r\n\r\n/**\r\nUn item di tipo Feedback di `Modal` usato per chiedere la conferma di lettura di un messaggio.\r\n\r\n_Quando si utilizza?_\r\nPuò essere utile all'interno di un processo in cui accadono eventi che richiedono una particolare attenzione.\r\n\r\nTramite la modale di feedback si possono veicolare 4 tipologie di messaggi:\r\n\r\n- _Informazione_: per comunicare un'informazione utile.\r\n- _Successo_: per informare che qualcosa è avvenuto correttamente.\r\n- _Attenzione_: per avvertire l'utente di una condizione che potrebbe causare problemi in futuro.\r\n- _Allarme/Errore_: per avvertire l'utente di un problema/errore presente.\r\n\r\nCon questa, che contiene al suo interno il pulsante \"Ho capito\",\r\ninterrompiamo il flusso di lavoro dell'utente e gli chiediamo di prendere atto di ciò che sta leggendo.\r\n\r\n_Attenzione_:\r\ndobbiamo interrompere nel miglior modo possibile e solo quando è veramente necessario,\r\naltrimenti si corre il rischio che l'utente, tempestato di messaggi e popup, che compaiono ad ogni occasione,\r\nsi infastidisca, non legga e clicchi subito sul pulsante \"Ho capito\" senza neanche pensarci su.\r\n\r\nPer una questione di facilità di lettura e comprensione i messaggi devono essere sintetici.\r\nPuò esserti utile consultare la sezione dedicata ai Testi. Si può anche inserire un link a maggiori dettagli.\r\n*/\r\nconst FeedbackItem = ({\r\n id, modalTitle, buttonLabel, onClose, type, title, message, className, icon, classNameBody,\r\n}) => (\r\n \r\n {modalTitle &&
{modalTitle}
}\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n);\r\n\r\nFeedbackItem.propTypes = {\r\n /** Titolo della modale */\r\n modalTitle: PropTypes.string,\r\n /** Etichetta del bottone di chiusura */\r\n buttonLabel: PropTypes.string,\r\n /**\r\n * Identificativo dell'item.\r\n */\r\n id: PropTypes.string.isRequired,\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n /** Classi css personalizzate da aggiungere al body della modale */\r\n classNameBody: PropTypes.string,\r\n /**\r\nCallback di chiusura della modale.Il primo parametro è l'evento scatenante.\r\nRitorna un oggetto con `id` pari all'id della modale e\r\n`dontShowAgainId` pari alla prop `dontShowAgainId` della modale.\r\nPer verificate che la chiusura sia conseguenza della gestione dontShowAgain, usare il metodo `Modal.isClosedByDontShowAgainEvent`.\r\n */\r\n onClose: PropTypes.func,\r\n /** Indica la tipologia del feedback */\r\n type: PropTypes.oneOf(['info', 'alarm', 'warning', 'success']),\r\n /** Titolo del feedback */\r\n title: PropTypes.string.isRequired,\r\n /** messaggio del feedback */\r\n message: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.node,\r\n ]).isRequired,\r\n /** Indica l'icona da sostituire a quella di default del feedback */\r\n icon: PropTypes.elementType,\r\n};\r\n\r\nFeedbackItem.defaultProps = {\r\n className: undefined,\r\n classNameBody: undefined,\r\n modalTitle: ' ',\r\n buttonLabel: 'Ho capito',\r\n onClose: undefined,\r\n type: 'info',\r\n icon: undefined,\r\n};\r\n\r\nexport default FeedbackItem;\r\n","import React, {\r\n useState, useEffect, useRef, useMemo,\r\n} from 'react';\r\nimport { createPortal } from 'react-dom';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\nimport { useChangeModalPosition, usePortalElement } from '../../../Modal/hooks';\r\nimport ModalContext from './ModalContext';\r\nimport Header from './Header';\r\nimport Body from './Body';\r\nimport Footer from './Footer';\r\nimport useDontShowAgainMessageRead from '../../../DontShowAgain/useDontShowAgainMessageRead';\r\nimport DontShowAgain from '../../../DontShowAgain/DontShowAgain';\r\nimport useModalContext from '../../../ModalContext/useModalContext';\r\nimport GenericItem from './GenericItem';\r\nimport ConfirmItem from './ConfirmItem';\r\nimport FeedbackItem from './FeedbackItem';\r\nimport { createClosedByDontShowAgainEvent, isClosedByDontShowAgainEvent } from './utils';\r\nimport useComponentTimeout from '../../Hooks/useComponentTimeout';\r\n\r\n/**\r\nVisualizza un contenuto che blocca temporaneamente le interazioni con il resto dell'interfaccia.\r\n\r\nVedi [Design System di CGN - Modale](https://zeroheight.com/1b5e94371/p/992bf6-modale/b/9260db)\r\n\r\nSi può utilizzare per questi tipi di messaggi:\r\n\r\n- Chiedere conferma o fare decisioni\r\n- Fornire delle informazioni\r\n- Completare dei compiti importanti all'interno di un processo\r\n\r\nLa modale è creata a partire da un elemento figlio del body della pagina.\r\n\r\n_Nota_: Se la modale non contiene delle azioni (ad es. Salva),\r\nma contiene ad es. un processo che richiede i pulsanti \"Indietro\" e \"Avanti\",\r\nbisogna inserire il pulsante \"X\" per poterla chiudere.\r\n\r\n_Esempio struttura del componente_\r\n\r\n```js\r\n\r\n \r\n ...\r\n \r\n\r\n \r\n ...\r\n \r\n\r\n \r\n ...\r\n \r\n\r\n```\r\n\r\nE' inoltre possibile definire una serie di contenuti di una modale che verranno presentati come un gruppo unico.\r\n\r\nOgni componente manterrà il suo stato e verrà distrutto solo alla chiusura della modale.\r\n\r\nLa proprietà `current` definisce l'elemento presentato.\r\n\r\n_Esempio struttura del componente_\r\n\r\n```js\r\n\r\n \r\n ...\r\n \r\n\r\n \r\n\r\n \r\n\r\n```\r\n\r\n */\r\nexport const Modal = ({\r\n show, doNotFocus, className, contentClassName, children,\r\n dontShowAgainId, dontShowAgainMessage,\r\n onClose, current, transitionDuration,\r\n initialPos, diffModalContentModalBody, style, portalElementRef,\r\n ...others\r\n}) => {\r\n const contentRef = useRef();\r\n useModalContext(show);\r\n const {\r\n x, y, overflow, maxHeight, dragging, onMouseDown,\r\n } = useChangeModalPosition(initialPos, contentRef, portalElementRef, diffModalContentModalBody);\r\n const messageRead = useDontShowAgainMessageRead(dontShowAgainId, show);\r\n\r\n useEffect(() => {\r\n if (show && !doNotFocus && contentRef.current) contentRef.current.focus();\r\n }, [doNotFocus, show]);\r\n\r\n const [changing, setChanging] = useState({ state: false, current });\r\n const setComponentTimeout = useComponentTimeout();\r\n useEffect(() => {\r\n if (changing.current !== current && !changing.state) {\r\n setChanging((s) => ({ ...s, state: true }));\r\n setComponentTimeout(() => setChanging({ state: false, current }), transitionDuration);\r\n }\r\n }, [transitionDuration, changing, current, setComponentTimeout]);\r\n\r\n const modalContext = useMemo(() => ({\r\n overflow, maxHeight, dragging, onMouseDown, current: changing.current,\r\n }), [changing, dragging, maxHeight, onMouseDown, overflow]);\r\n\r\n if (!show) return null;\r\n if (messageRead) {\r\n onClose && onClose(createClosedByDontShowAgainEvent(undefined, dontShowAgainId));\r\n return null;\r\n }\r\n\r\n let child = children;\r\n if (onClose || dontShowAgainId) {\r\n // modale singola\r\n child = (\r\n \r\n {children}\r\n \r\n );\r\n }\r\n return (\r\n
\r\n
\r\n \r\n \r\n {child}\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nModal.propTypes = {\r\n /** Contenuto da renderizzare all'interno del componente.\r\n * Può essere di tipo `Modal.Header`, `Modal.Body` o `Modal.Footer` se la modale è singola,\r\n * altrimenti `Modal.Generic`, `Modal.Confirm` o `Modal.Feedback` .\r\n */\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node,\r\n ]),\r\n /**\r\n * Identificativo della modale corrente. Se è definita una solo modale, lasciare non definito.\r\n */\r\n current: PropTypes.string,\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n /** Class css dal aggiungere a content */\r\n contentClassName: PropTypes.string,\r\n /** Indica se aprire la modale non in focus */\r\n doNotFocus: PropTypes.bool,\r\n /** Indica la posizione iniziale di apertura della modale */\r\n initialPos: PropTypes.shape({\r\n x: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.number,\r\n ]),\r\n y: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.number,\r\n ]),\r\n }),\r\n\r\n /**\r\n * E' la differenza fissata tra la dimensione della modale e la dimensione del contentuto.\r\n * Serve per capire se il body debba essere scrollabile o meno in funzione della dimesione dello screen.\r\n */\r\n diffModalContentModalBody: PropTypes.number,\r\n /** Indica se mostrare o meno la modale */\r\n show: PropTypes.bool,\r\n /** stile personalizzabile da aggiungere al componente */\r\n style: PropTypes.object, // eslint-disable-line react/forbid-prop-types\r\n\r\n /**\r\nCallback di chiusura della modale.\r\n\r\nIl primo parametro è l'evento scatenante.\r\n\r\nSe la chiusura avviene a seguito della gestione dontShowAgain, ritorna un oggetto con `id` pari all'id della modale e\r\n`dontShowAgainId` pari alla prop `dontShowAgainId` della modale.\r\nPer verificate che la chiusura sia conseguenza della gestione dontShowAgain, usare il metodo `Modal.isClosedByDontShowAgainEvent`.\r\n\r\n_Da utilizzare solo nel caso di modale unica_\r\n */\r\n onClose: PropTypes.func,\r\n /**\r\nIdentificativo del componente per la gestione 'Non visualizzare più'. Se impostato abilita la gestione.\r\nLo stato è salvato nella sessione locale del browser quindi è necessario un identificativo per gestire il salvataggio.\r\n\r\nTipicamente è composto dall'id dell'utente e da un identificativo del messaggio.\r\n\r\nUtilizzare `Modal.clearMessageStatus` per pulire lo stato.\r\n\r\n_Da utilizzare solo nel caso di modale unica_\r\n*/\r\n dontShowAgainId: PropTypes.string,\r\n\r\n /**\r\nMessaggio del componente per la gestione 'Non visualizzare più'.\r\n\r\n_Da utilizzare solo nel caso di modale unica_\r\n*/\r\n dontShowAgainMessage: PropTypes.string,\r\n\r\n /**\r\nMillisec della durata della transazione al cambio di modale.\r\n*/\r\n transitionDuration: PropTypes.number,\r\n\r\n /** USO INTERNO. Reference del nodo */\r\n // eslint-disable-next-line react/forbid-prop-types\r\n portalElementRef: PropTypes.object.isRequired,\r\n};\r\n\r\nModal.defaultProps = {\r\n children: null,\r\n className: undefined,\r\n contentClassName: '',\r\n doNotFocus: false,\r\n onClose: undefined,\r\n show: false,\r\n style: {},\r\n\r\n dontShowAgainId: undefined,\r\n dontShowAgainMessage: 'Non mostrare più questo messaggio',\r\n initialPos: {\r\n x: 'auto',\r\n y: (window.innerHeight * 0.05),\r\n },\r\n current: '__only_one_child__',\r\n transitionDuration: 500,\r\n diffModalContentModalBody: 260,\r\n};\r\n\r\n// eslint-disable-next-line import/no-anonymous-default-export\r\nexport default function ModalPortal(props) {\r\n // uso questo wrapper perchè altrimenti storybook non estrae le props se si usa createPortal!!!\r\n const portalElementRef = usePortalElement(undefined, 'modal-element-v2');\r\n return createPortal(\r\n ,\r\n portalElementRef.current,\r\n );\r\n}\r\n\r\nModalPortal.Header = Header;\r\nModalPortal.Body = Body;\r\nModalPortal.Footer = Footer;\r\nModalPortal.Generic = GenericItem;\r\nModalPortal.Confirm = ConfirmItem;\r\nModalPortal.Feedback = FeedbackItem;\r\n\r\nModalPortal.clearMessageStatus = DontShowAgain.clearMessageStatus;\r\nModalPortal.isDontShowAgainOptionSelected = DontShowAgain.isDontShowAgainOptionSelected;\r\nModalPortal.isClosedByDontShowAgainEvent = isClosedByDontShowAgainEvent;\r\n","import { useCallback, useEffect, useRef } from 'react';\r\n\r\n/**\r\n * Restituisce una funzione con la stessa interfaccia di setTimeot,\r\n * e il timeout è automaticamente pulito all'unmont del componente.\r\n */\r\nexport default function useComponentTimeout() {\r\n const timeoutRef = useRef();\r\n\r\n useEffect(() => {\r\n if (timeoutRef.current) {\r\n clearTimeout(timeoutRef.current);\r\n }\r\n }, []);\r\n\r\n const setComponentTimeout = useCallback((...args) => {\r\n setTimeout(...args);\r\n }, []);\r\n\r\n return setComponentTimeout;\r\n}\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport ModalPortal from '../Modal/Modal';\r\n\r\n/**\r\nModale per chiedere la conferma di lettura di un messaggio.\r\n\r\nVedi [Design System di CGN - Feedback](https://zeroheight.com/1b5e94371/p/34fc2c-feedback/b/95d71c)\r\n\r\nL'icona può essere cambiata specificandone una ma è sempre meglio farlo in accordo con la UX, le icone utilizzabili devono comunque essere \"filled\".\r\n*/\r\nconst FeedbackModal = ({\r\n show, className, initialPos, ...feedbackProps\r\n}) => (\r\n \r\n \r\n \r\n);\r\n\r\nFeedbackModal.propTypes = {\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n /** Classi css personalizzate da aggiungere al body della modale */\r\n classNameBody: PropTypes.string,\r\n /** Titolo della modale */\r\n modalTitle: PropTypes.string,\r\n /** Etichetta del bottone di chiusura */\r\n buttonLabel: PropTypes.string,\r\n /** Indica se mostrare o meno la modale */\r\n show: PropTypes.bool,\r\n /**\r\nCallback di chiusura della modale.Il primo parametro è l'evento scatenante.\r\n */\r\n onClose: PropTypes.func,\r\n /** Indica la tipologia del feedback */\r\n type: PropTypes.oneOf(['info', 'alarm', 'warning', 'success']),\r\n /** Titolo del feedback */\r\n title: PropTypes.string.isRequired,\r\n /** messaggio del feedback */\r\n message: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.node,\r\n ]).isRequired,\r\n /** Indica l'icona da sostituire a quella di default del feedback */\r\n icon: PropTypes.elementType,\r\n /** Indica la posizione iniziale di apertura della modale */\r\n initialPos: PropTypes.shape({\r\n x: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.number,\r\n ]),\r\n y: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.number,\r\n ]),\r\n }),\r\n};\r\n\r\nFeedbackModal.defaultProps = {\r\n className: undefined,\r\n classNameBody: undefined,\r\n modalTitle: ' ',\r\n buttonLabel: 'Ho capito',\r\n onClose: undefined,\r\n type: 'info',\r\n icon: undefined,\r\n show: false,\r\n initialPos: undefined,\r\n};\r\n\r\nexport default FeedbackModal;\r\n","\r\n/**\r\n * Valori che possono assumere le segnalazioni\r\n */\r\nconst TIPO_SEGNALAZIONE = {\r\n Errore: 2,\r\n Avviso: 4,\r\n Nota: 5,\r\n};\r\n\r\n/**\r\n * Ritorna un elenco di segnalazioni di tipo errore\r\n * @param {String} msg\r\n */\r\nconst getSegnalazioneError = (msg) => ({ type: TIPO_SEGNALAZIONE.Errore, msg });\r\n\r\n/**\r\n * Ritorna un elenco di segnalazioni di tipo warning\r\n * @param {String} msg\r\n */\r\nconst getSegnalazioneWarn = (msg) => ({ type: TIPO_SEGNALAZIONE.Avviso, msg });\r\n\r\n/**\r\n * Ritorna un elenco di segnalazioni di tipo info\r\n * @param {String} msg\r\n */\r\nconst getSegnalazioneInfo = (msg) => ({ type: TIPO_SEGNALAZIONE.Nota, msg });\r\n\r\nexport {\r\n TIPO_SEGNALAZIONE,\r\n getSegnalazioneError,\r\n getSegnalazioneWarn,\r\n getSegnalazioneInfo,\r\n};\r\n","import { useEffect } from 'react';\r\nimport EventoServer from '../EventoServer';\r\n\r\n/**\r\n * Hook utilizzato per gestire la registrazione/deregistrazione di un evento signalR\r\n * @param {*} event nome dell'evento a cui sottoscriversi\r\n * @param {*} callback callback da chiamare quando l'evento viene intercettato\r\n */\r\nconst useSignalR = (event, callback) => {\r\n useEffect(() => {\r\n EventoServer.subscribe(event, callback);\r\n return () => {\r\n EventoServer.unsubscribe(event, callback);\r\n };\r\n }, [callback, event]);\r\n};\r\n\r\nexport default useSignalR;\r\n","const NOOP = () => { };\r\n\r\nconst STOP_EVENT_PROPAGATION = (ev) => {\r\n ev.stopPropagation();\r\n};\r\n\r\nexport {\r\n NOOP,\r\n STOP_EVENT_PROPAGATION,\r\n};\r\n","import PropTypes from 'prop-types';\r\nimport React, {\r\n useEffect, useCallback, useState, useRef, useImperativeHandle,\r\n} from 'react';\r\nimport { createPortal } from 'react-dom';\r\nimport useEventListener from '../../../hooks/useEventListener';\r\nimport usePluginHandler from '../../../hooks/usePluginHandler';\r\nimport { restoreLastOutside } from '../../../models/clickOut';\r\nimport { PluginMessageTypes } from '../../../models/constants';\r\nimport MessagesPlugin from '../../../models/messages';\r\nimport { NOOP } from '../../../utils/const';\r\n\r\nexport const ZINDEX_MODALIZER = 100000;\r\n\r\nfunction useBodyChild() {\r\n const childRef = useRef();\r\n useEffect(() => {\r\n const modalizerEl = document.createElement('div');\r\n childRef.current = modalizerEl;\r\n document.body.appendChild(modalizerEl);\r\n return () => {\r\n document.body.removeChild(modalizerEl);\r\n };\r\n }, []);\r\n\r\n return childRef.current;\r\n}\r\n\r\nconst IFrameModalizer = React.forwardRef(({ children, clickFromRef, className }, ref) => {\r\n const child = useBodyChild();\r\n const [modalizer, setModalizer] = useState({ active: false });\r\n\r\n const onClick = useCallback(() => {\r\n if (modalizer.active) {\r\n MessagesPlugin.postMessageToChilds(PluginMessageTypes.MODALIZER_CLICK);\r\n }\r\n }, [modalizer.active]);\r\n\r\n const messageHandler = useCallback((message) => {\r\n if (message.type === PluginMessageTypes.MODALIZER) {\r\n // il payload potrebbe essere un boolean oppure una\r\n // struttura più complessa in cui potrebbe essere\r\n // esplicitata la classe di overlay da utilizzare\r\n if (typeof message.payload === 'boolean') {\r\n setModalizer({ active: !!message.payload });\r\n } else {\r\n setModalizer(message.payload);\r\n }\r\n } else if (message.type === PluginMessageTypes.CLICK_OUTSIDE_RESTORE) {\r\n window.focus();\r\n restoreLastOutside(message.payload);\r\n }\r\n }, []);\r\n usePluginHandler(messageHandler);\r\n\r\n // permette la chiata all'evento click (guidato dalla gestione clickOutside esterna)\r\n useImperativeHandle(ref, () => ({\r\n click: clickFromRef ? onClick : NOOP,\r\n }), [clickFromRef, onClick]);\r\n\r\n useEventListener('click', clickFromRef ? NOOP : onClick, true, 'modalizer');\r\n\r\n return (\r\n \r\n \r\n {children}\r\n
\r\n {modalizer.active && createPortal(\r\n
,\r\n child,\r\n )}\r\n \r\n );\r\n});\r\n\r\nIFrameModalizer.propTypes = {\r\n /** Contenuto da renderizzare all'interno del plugin */\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node,\r\n ]),\r\n\r\n /** Classe CSS del componente */\r\n className: PropTypes.string,\r\n\r\n /** Parametro utilizzato per permettere indicare se gli eventi click devono essere gestiti dall'esterno\r\n * via ref oppure attraverso un evento di window\r\n */\r\n clickFromRef: PropTypes.bool.isRequired,\r\n};\r\n\r\nIFrameModalizer.defaultProps = {\r\n className: undefined,\r\n children: null,\r\n};\r\n\r\nexport default IFrameModalizer;\r\n","import debounce from 'framework-ui-components/Components/Utils/debouncer';\r\nimport useEventListener from '../../../hooks/useEventListener';\r\nimport usePluginHandler from '../../../hooks/usePluginHandler';\r\nimport { isCalledByParent } from '../../../models/caller';\r\nimport { PluginMessageTypes } from '../../../models/constants';\r\nimport MessagesPlugin from '../../../models/messages';\r\n\r\nconst onFocus = debounce(() => {\r\n MessagesPlugin.postMessageToChilds(PluginMessageTypes.FOCUS);\r\n if (isCalledByParent()) {\r\n MessagesPlugin.postMessageToParent(PluginMessageTypes.FOCUS);\r\n }\r\n}, 10);\r\n\r\nconst eventoFocus = debounce(() => {\r\n // lancio un evento di click (firmato da plugins) nel body\r\n const event = new MouseEvent('click', { bubbles: true });\r\n event.fromPluginsEvent = true;\r\n document.body.dispatchEvent(event);\r\n}, 10);\r\n\r\nconst messageHandler = (message) => {\r\n if (message.type === PluginMessageTypes.FOCUS) {\r\n eventoFocus();\r\n }\r\n};\r\n\r\n/**\r\n * Reagisce al click sul IFrame.\r\n */\r\nexport default function useFocus() {\r\n usePluginHandler(messageHandler);\r\n useEventListener('focus', onFocus, true, 'parentFocus');\r\n}\r\n","import { useMemo } from 'react';\r\nimport { ParentResolution, PluginMessageTypes } from '../models/constants';\r\nimport { getUrlParams } from '../utils/navigation';\r\nimport usePluginReducer from './usePluginReducer';\r\nimport Log from '../utils/log';\r\n\r\n// Funzione utilizzata per passare la dimensione della windows via querystring al children\r\nexport const getWindowSizeToParam = (w = window) => `${w.innerWidth}_${w.innerHeight}`;\r\n\r\nconst getWindowSize = () => ({ width: window.innerWidth, height: window.innerHeight });\r\n\r\n// Funzione che legge le dimensioni passate via querystring da un parent\r\nexport const getWindowSizeFromParam = (param) => {\r\n const size = (param || getWindowSizeToParam()).split('_');\r\n if (size.length === 2) {\r\n const width = parseInt(size[0], 10);\r\n const height = parseInt(size[1], 10);\r\n if (!isNaN(width) && !isNaN(height)) {\r\n return { width, height };\r\n }\r\n }\r\n return getWindowSize();\r\n};\r\n\r\nconst getInitResolution = () => {\r\n const parentResolution = getUrlParams()[ParentResolution];\r\n if (parentResolution) {\r\n return getWindowSizeFromParam(parentResolution);\r\n }\r\n Log.warn('resolution param non presente');\r\n return getWindowSize();\r\n};\r\n\r\n/**\r\nHook che consente di passare a ViewportProvider in container inizializzato con i valori forniti da url params.\r\n\r\n__ATTENZIONE: se il padre non usa ViewportProvider anche il figlio potrebbe non ottenere la viewport corretta.\r\nSpecificare bene la dipendenza del plugin!__\r\n\r\nI plugin children che volessero ricevere dal padre la viewport, dovrebbero creare una root come nell'esempio:\r\n\r\n```\r\n ...\r\n const parentContainer = usePluginAppViewport();\r\n ...\r\n \r\n \r\n```\r\n\r\npoi\r\n\r\n```\r\n function MyComponent(props) {\r\n ...\r\n const { resolution } = useViewport();\r\n ...\r\n }\r\n```\r\n */\r\nconst usePluginAppViewport = (initResolution = getInitResolution()) => {\r\n // simula window come container del contesto ViewportProviders\r\n const parentContainer = useMemo(() => ({\r\n listeners: [],\r\n innerWidth: initResolution.width,\r\n innerHeight: initResolution.height,\r\n\r\n addEventListener(type, listener) {\r\n if (type === 'resize') this.listeners.push(listener);\r\n },\r\n\r\n removeEventListener(type, listener) {\r\n this.listeners = this.listeners.filter((l) => l !== listener);\r\n },\r\n\r\n notifyResolutionChanged(resolutionParam) {\r\n const resolution = getWindowSizeFromParam(resolutionParam);\r\n\r\n this.innerWidth = resolution.width;\r\n this.innerHeight = resolution.height;\r\n\r\n this.listeners.forEach((l) => l());\r\n },\r\n\r\n }), [initResolution]);\r\n\r\n usePluginReducer(() => ({\r\n [PluginMessageTypes.SET_RESOLUTION]: (resolution) => parentContainer.notifyResolutionChanged(resolution),\r\n }), [parentContainer]);\r\n\r\n return parentContainer;\r\n};\r\n\r\nexport default usePluginAppViewport;\r\n","import usePluginHandler from '../../../hooks/usePluginHandler';\r\nimport { isCalledByParent } from '../../../models/caller';\r\nimport { PluginMessageTypes } from '../../../models/constants';\r\nimport MessagesPlugin from '../../../models/messages';\r\n\r\nconst messageToNoRedirect = [\r\n PluginMessageTypes.LOADED,\r\n PluginMessageTypes.CHANGE_HASH,\r\n PluginMessageTypes.CHANGE_HASH2,\r\n PluginMessageTypes.CALL_FORWARD,\r\n PluginMessageTypes.DIALOG_SIZE,\r\n PluginMessageTypes.DIALOG_OK,\r\n PluginMessageTypes.DIALOG_CANCEL,\r\n];\r\n\r\nconst handleMessages = (message) => {\r\n if (isCalledByParent() && !messageToNoRedirect.includes(message.type)) {\r\n MessagesPlugin.forwardMessageToParent(message);\r\n }\r\n};\r\n\r\nexport default function useForwardMessageToParent() {\r\n usePluginHandler(handleMessages);\r\n}\r\n","import usePluginHandler from '../../../hooks/usePluginHandler';\r\nimport { PluginMessageTypes } from '../../../models/constants';\r\nimport { callAndResponseToChild, CallForwardTypes } from '../../../models/forward';\r\n\r\nconst messageHandler = (message) => {\r\n if (message.type === PluginMessageTypes.CALL_FORWARD) {\r\n const {\r\n type, uri, params, callId,\r\n } = message.payload;\r\n // gestisco solo call delle tipologie ammesse in CallForwardTypes\r\n if (!type || !CallForwardTypes.includes(type)) return;\r\n // effettuo la chiamata e ritorno la risposta al figlio\r\n callAndResponseToChild(type, uri, params, callId);\r\n }\r\n};\r\n\r\n/**\r\n * Gestisce l'inoltro di chiamate tra plugins\r\n */\r\nexport default function useCallForward() {\r\n usePluginHandler(messageHandler);\r\n}\r\n","import { useCallback } from 'react';\r\nimport useEventListener from '../../../hooks/useEventListener';\r\nimport usePluginHandler from '../../../hooks/usePluginHandler';\r\nimport { eventFilter, restoreLastOutside } from '../../../models/clickOut';\r\nimport { PluginMessageTypes } from '../../../models/constants';\r\n\r\nconst messageHandler = (message) => {\r\n if (message.type === PluginMessageTypes.CLICK_OUTSIDE_RESTORE) {\r\n window.focus();\r\n restoreLastOutside(message.payload);\r\n }\r\n};\r\n\r\n/**\r\n * Reagisce al click sul IFrame.\r\n */\r\nexport default function useClickOutside(enabled, clickEvent) {\r\n usePluginHandler(messageHandler);\r\n\r\n const onClick = useCallback((event) => {\r\n // se abilitata la gestione dei click outside e se non si tratta di un evento generato da plugins\r\n // allora verifico se l'evento deve essere fermato (chiedendolo al child)\r\n if (enabled && !event.fromPluginsEvent) {\r\n // se l'evento viene filtrato, non continuo con gli altri eventi di click\r\n if (eventFilter(event)) return;\r\n }\r\n clickEvent(event);\r\n }, [clickEvent, enabled]);\r\n\r\n useEventListener('click', onClick, true, 'clickOutside');\r\n}\r\n","import usePluginHandler from '../../../hooks/usePluginHandler';\r\nimport { isCalledByParent } from '../../../models/caller';\r\nimport { PluginMessageTypes } from '../../../models/constants';\r\nimport MessagesPlugin from '../../../models/messages';\r\n\r\nconst messageHandler = (message) => {\r\n if (message.type === PluginMessageTypes.CALL_FORWARD) {\r\n const {\r\n type, callId,\r\n } = message.payload;\r\n // gestione della chiamata per la get url browser\r\n if (type === PluginMessageTypes.GET_ROOT_LOCATION) {\r\n // se l'applicazione attuale è caricata in un altro plugins, allora inoltro la richiesta al parent\r\n if (isCalledByParent()) {\r\n MessagesPlugin.forwardMessageToParent(message);\r\n } else {\r\n const { href } = window.location;\r\n MessagesPlugin.postMessageToChilds(\r\n PluginMessageTypes.CALL_FORWARD_RESPONSE,\r\n { callId, response: { href } },\r\n );\r\n }\r\n }\r\n }\r\n};\r\n\r\n/**\r\n * Gestisce la richiesta di url del browser\r\n */\r\nexport default function useRootLocation() {\r\n usePluginHandler(messageHandler);\r\n}\r\n","import React, { useCallback, useRef } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Card, Badge, Heading, Spinner,\r\n} from 'framework-ui-components';\r\nimport ErroreIcon from 'framework-ui-components/Components/Icons/ErroreIcon';\r\nimport { IFrameClassName } from '../../../models/constants';\r\nimport usePluginHandler from '../../../hooks/usePluginHandler';\r\nimport useIFrameLoader from './useIFrameLoader';\r\nimport IFrameModalizer from './IFrameModalizer';\r\nimport useFocus from './useFocus';\r\nimport useIFrameInDialog from './useIFrameInDialog';\r\nimport useRoutingHandler from './useRoutingHandler';\r\nimport useForwardMessageToParent from './useForwardMessageToParent';\r\nimport useViewportResolutionSender from './useViewportResolutionSender';\r\nimport useGotoExternal from './useGotoExternal';\r\nimport useCallForward from './useCallForward';\r\nimport useClickOutside from './useClickOutside';\r\nimport useRootLocation from './useRootLocation';\r\n\r\nconst iframeDefaultStyle = {\r\n width: '100%',\r\n height: '100%',\r\n border: 0,\r\n};\r\n\r\n/**\r\nComponente PARENT utilizzato per caricare un contenuto plugin.\r\n\r\nIl componente gestisce i seguenti comportamenti:\r\n\r\n- gestione del routing e allinemaneto url tra padre e figlio\r\n- gestione del focus\r\n- gestione del click \"fuori\" dall'area del child\r\n- gestione dei child in dialog\r\n- gestione delle risoluzione da propagare tra padre e figlio\r\n- forwarding di messaggi e funzioni di go to\r\n\r\n */\r\nconst IFrame = ({\r\n src, updateHash, checkClickableOutside, style, showSpinner, srcParams, onRedirectUrl,\r\n onReceiveMessage, onDialogResize, onDialogOk, onDialogCancel, extraParams, checkLoaded, onLoaded, inMemoryRouting,\r\n}) => {\r\n const { onLoaded: notifyLoadedToHashing, initialSrc } = useRoutingHandler(src, updateHash, srcParams, inMemoryRouting);\r\n\r\n // nel caso sia impostato il controllo checkClickableOutside l'evento click per\r\n // IFrameModalizer deve essere vincolato all'evento click di useClickOutside\r\n const iframeModalizerRef = useRef();\r\n const onClick = useCallback((event) => {\r\n if (iframeModalizerRef.current) {\r\n iframeModalizerRef.current.click(event);\r\n }\r\n }, []);\r\n\r\n useClickOutside(checkClickableOutside, onClick);\r\n useFocus();\r\n useIFrameInDialog(onDialogResize, onDialogOk, onDialogCancel);\r\n useViewportResolutionSender();\r\n useGotoExternal(onRedirectUrl);\r\n useCallForward();\r\n useRootLocation();\r\n usePluginHandler(onReceiveMessage);\r\n\r\n const handleLoadingSuccess = useCallback(() => {\r\n onLoaded && onLoaded(true);\r\n notifyLoadedToHashing();\r\n }, [notifyLoadedToHashing, onLoaded]);\r\n\r\n const handleLoadingFailure = useCallback(() => {\r\n onLoaded && onLoaded(false);\r\n }, [onLoaded]);\r\n\r\n const {\r\n onLoad, loading, loadingError,\r\n } = useIFrameLoader(initialSrc, extraParams, checkLoaded, handleLoadingSuccess, handleLoadingFailure);\r\n\r\n useForwardMessageToParent();\r\n\r\n return (\r\n loadingError\r\n ? (\r\n \r\n
\r\n
\r\n \r\n Errore di caricamento della pagina\r\n Ricarica la pagina. Se il problema persiste, contatta l'assistenza.\r\n
\r\n
\r\n
\r\n )\r\n : (\r\n \r\n {loading && showSpinner && (\r\n
\r\n \r\n
\r\n )}\r\n \r\n {initialSrc && (\r\n \r\n )}\r\n \r\n
\r\n )\r\n );\r\n};\r\n\r\nIFrame.defaultProps = {\r\n style: {},\r\n updateHash: true,\r\n onDialogResize: null,\r\n onDialogOk: null,\r\n onDialogCancel: null,\r\n checkLoaded: true,\r\n onLoaded: null,\r\n onReceiveMessage: null,\r\n showSpinner: true,\r\n srcParams: null,\r\n checkClickableOutside: false,\r\n onRedirectUrl: null,\r\n extraParams: null,\r\n inMemoryRouting: false,\r\n};\r\n\r\nIFrame.propTypes = {\r\n /** url da caricare (**senza parametri querystring**: per quelli usare srcParams) */\r\n src: PropTypes.string.isRequired,\r\n /** oggetto contentente le eventuali proprietà da passare\r\n * **via querystring** al primo caricamento dell'applicazione */\r\n srcParams: PropTypes.shape({}),\r\n /** oggetto contentente le eventuali proprietà da passare\r\n * via messaggio al child dopo il segnale di avvenuto caricamento.\r\n * La ricezione di tali informazioni vanno gestite lato child\r\n * attraverso l'intercettazione del messaggio **PluginMessageTypes.EXTRA_PARAMS**\r\n * perchè funzioni correttamente l'hook per intercettarlo deve essere posizionato in un componente che viene renderizzato subito\r\n * consigliato posizionarlo dove viene usato *PluginApp* */\r\n extraParams: PropTypes.shape({}),\r\n /** stile che sovrascrive i valori di default */\r\n style: PropTypes.shape({\r\n width: PropTypes.string,\r\n height: PropTypes.string,\r\n }),\r\n /**\r\n * Callback invocata dopo il caricamento del contenuto:\r\n * ```\r\n * onLoaded(result)\r\n * ```\r\n * dove:\r\n * * *result*: **true**=caricato con successo; **false**=errore durante il caricamento\r\n */\r\n onLoaded: PropTypes.func,\r\n /**\r\n * Callback invocata ogni volta che viene inviato un messaggio al parent:\r\n * ```\r\n * onReceiveMessage(message)\r\n * ```\r\n * dove:\r\n * * *message*: messaggio ricevuto\r\n */\r\n onReceiveMessage: PropTypes.func,\r\n /** Parametro che determina se deve essere gestito il cambio di hash dal parent e viceversa */\r\n updateHash: PropTypes.bool,\r\n /** @ignore utilizzato dal componente ModalIframe */\r\n onDialogResize: PropTypes.func,\r\n /** @ignore utilizzato dal componente ModalIframe */\r\n onDialogOk: PropTypes.func,\r\n /** @ignore utilizzato dal componente ModalIframe */\r\n onDialogCancel: PropTypes.func,\r\n /** Parametro utilizzato per disabilitare il controllo se\r\n * l'applicativo descritto in *src* è stato caricato */\r\n checkLoaded: PropTypes.bool,\r\n /** Parametro utilizzato per disabilitare la visualizzazione di uno\r\n * spinner durante il caricamento del contenuto */\r\n showSpinner: PropTypes.bool,\r\n /** Parametro utilizzato per permettere al child di poter bloccare\r\n * gli eventi click sul parent */\r\n checkClickableOutside: PropTypes.bool,\r\n /**\r\n * Callback invocata ogni volta che il child richiede una redirect ad un url esterno:\r\n * ```\r\n * onRedirectUrl(url)\r\n * ```\r\n * dove:\r\n * * *url*: indirizzo richiesto\r\n *\r\n * Se non definita la funzione, per default viene fatto un redirect\r\n */\r\n onRedirectUrl: PropTypes.func,\r\n /**\r\n * Da settare se il routing è gestito in memoria (es. MemoryRouter).\r\n * In presenza di memory routing non aggiorna l'hash della window\r\n */\r\n inMemoryRouting: PropTypes.bool,\r\n};\r\n\r\nexport default IFrame;\r\n","import {\r\n useCallback, useEffect, useRef, useState,\r\n} from 'react';\r\nimport { useHistory, useLocation, useRouteMatch } from 'react-router';\r\nimport useEventListener from '../../../hooks/useEventListener';\r\nimport { getWindowSizeToParam } from '../../../hooks/usePluginAppViewport';\r\nimport usePluginHandler from '../../../hooks/usePluginHandler';\r\nimport { isCalledByParent } from '../../../models/caller';\r\nimport { ParentCallerUrlParam, ParentResolution, PluginMessageTypes } from '../../../models/constants';\r\nimport MessagesPlugin from '../../../models/messages';\r\nimport { getQueryParamsFromObject, getUrlParams, setLocationHash } from '../../../utils/navigation';\r\nimport { versionCompare } from '../../../utils/version';\r\n\r\nfunction getIframeHash(routerPathBaseParam, hash) {\r\n return hash ? hash.replace(routerPathBaseParam, '') : '';\r\n}\r\n\r\nfunction getHashFromSrc(src) {\r\n const tagPos = src.indexOf('#');\r\n return tagPos < 0 ? '' : src.slice(tagPos + 1);\r\n}\r\n\r\nfunction getResolution() {\r\n const urlParams = getUrlParams();\r\n // passo al children il parametro passato da un eventuale altro parent, oppure la dimensione della window corrente\r\n return urlParams[ParentResolution] || getWindowSizeToParam();\r\n}\r\n\r\nexport default function useRoutingHandler(src, updateHash, srcParams, inMemoryRouting) {\r\n const [initialSrc, setInitialSrc] = useState(null);\r\n const [routerPathBase, setRouterPathBase] = useState('');\r\n const initialized = useRef(false);\r\n const currentHash = useRef(null);\r\n const appLoaded = useRef(false);\r\n const reloadMissing = useRef(false);\r\n\r\n const hashTag = src.indexOf('#') < 0 ? '#' : '';\r\n\r\n const setLocationHashOrMemory = useCallback((...params) => {\r\n if (!inMemoryRouting) {\r\n setLocationHash(...params);\r\n }\r\n }, [inMemoryRouting]);\r\n\r\n const setInitialSrcAndHash = useCallback((routerPathBaseParam, hash) => {\r\n const queryParms = getQueryParamsFromObject({ ...srcParams, [ParentResolution]: getResolution() });\r\n let newHash = getIframeHash(routerPathBaseParam, hash);\r\n const initialLocation = `${src}${hashTag}${updateHash ? newHash : ''}`;\r\n const newInitialSrc = `${initialLocation}?${ParentCallerUrlParam}=${MessagesPlugin.getIdReceiver()}${queryParms}`;\r\n const hashFromLocation = getHashFromSrc(initialLocation);\r\n // verifico se hash è differente da quello risultante dall'initial location (casi in cui esiste un hash direttamente nel src iniziale)\r\n if (hashFromLocation !== newHash) {\r\n newHash = hashFromLocation;\r\n }\r\n setInitialSrc(newInitialSrc);\r\n if (updateHash) {\r\n currentHash.current = routerPathBaseParam + newHash;\r\n setLocationHashOrMemory(hashTag + hash);\r\n }\r\n return newInitialSrc;\r\n }, [hashTag, setLocationHashOrMemory, src, srcParams, updateHash]);\r\n\r\n const match = useRouteMatch();\r\n const location = useLocation();\r\n\r\n useEffect(() => {\r\n if (initialized.current) return;\r\n initialized.current = true;\r\n // prendo la parte di dettaglio da passare all'iframe\r\n // oltre al route path\r\n const routerPath = match.path;\r\n const newRouterPathBase = routerPath.substring(0, routerPath.indexOf(':') - 1);\r\n const { pathname } = location;\r\n setRouterPathBase(newRouterPathBase);\r\n setInitialSrcAndHash(newRouterPathBase, pathname);\r\n }, [location, match.path, setInitialSrcAndHash]);\r\n\r\n /**\r\n * Evento di cambiamento hash dal child (quindi senza routerPathBase)\r\n */\r\n const eventoChangeHash = useCallback(({ initialVersion, payload: subHash }) => {\r\n if (!updateHash) return;\r\n\r\n // se è stato inviato questo evento da una versione superiore alla 1.6.2 allora\r\n // lascio la gestione all'evento nuovo CHANGE_HASH2 (che arriverà parallelamente)\r\n if (versionCompare(initialVersion, '1.6.2') >= 0) return;\r\n\r\n const hash = routerPathBase + (subHash === '/' ? '' : subHash);\r\n // se inserito in un parent rilancio il cambiamento di hash\r\n // e gli lascio l'onere di gestire l'history\r\n if (isCalledByParent()) {\r\n MessagesPlugin.postMessageToParent(PluginMessageTypes.CHANGE_HASH, hash);\r\n return;\r\n }\r\n\r\n if (currentHash.current !== hash) {\r\n currentHash.current = hash;\r\n setLocationHashOrMemory(hashTag + hash);\r\n }\r\n }, [hashTag, routerPathBase, setLocationHashOrMemory, updateHash]);\r\n\r\n /**\r\n * Evento di cambiamento hash dal child (quindi senza routerPathBase) (versione avanzata con replace)\r\n */\r\n const eventoChangeHash2 = useCallback(({ payload: { path, action } }) => {\r\n if (!updateHash) return;\r\n\r\n const hash = routerPathBase + (path === '/' ? '' : path);\r\n // se inserito in un parent rilancio il cambiamento di hash\r\n // e gli lascio l'onere di gestire l'history\r\n if (isCalledByParent()) {\r\n // mando il vecchio messaggio per retrocompatibilità\r\n MessagesPlugin.postMessageToParent(PluginMessageTypes.CHANGE_HASH, hash);\r\n MessagesPlugin.postMessageToParent(PluginMessageTypes.CHANGE_HASH2, { action, path: hash });\r\n return;\r\n }\r\n\r\n if (currentHash.current !== hash) {\r\n currentHash.current = hash;\r\n setLocationHashOrMemory(hashTag + hash, action === 'REPLACE');\r\n }\r\n }, [hashTag, routerPathBase, setLocationHashOrMemory, updateHash]);\r\n\r\n const handleMessages = useCallback((message) => {\r\n switch (message.type) {\r\n case PluginMessageTypes.LOADED:\r\n // conferma caricamento pagina nell'iframe\r\n appLoaded.current = true;\r\n break;\r\n case PluginMessageTypes.CHANGE_HASH:\r\n // viene comunicato un cambiamento hash nell'iframe\r\n eventoChangeHash(message);\r\n break;\r\n case PluginMessageTypes.CHANGE_HASH2:\r\n // viene comunicato un cambiamento hash nell'iframe\r\n eventoChangeHash2(message);\r\n break;\r\n default: {\r\n break;\r\n }\r\n }\r\n }, [eventoChangeHash, eventoChangeHash2]);\r\n usePluginHandler(handleMessages);\r\n\r\n const history = useHistory();\r\n /**\r\n * Evento di cambio hash sul parent (quindi compreso routerPathBase)\r\n */\r\n const onHashChange = useCallback(() => {\r\n const newHashWithParams = window.location.hash.replace('#', '');\r\n const newHash = newHashWithParams.split('?')[0];\r\n if (currentHash.current != null && currentHash.current !== newHash) {\r\n const newInitialSrc = setInitialSrcAndHash(routerPathBase, newHash);\r\n // nel seguente replace non devono essere esclusi eventuali parametri query string\r\n history.replace(newHashWithParams);\r\n MessagesPlugin.postMessageToChilds(PluginMessageTypes.RELOAD, newInitialSrc);\r\n }\r\n }, [history, routerPathBase, setInitialSrcAndHash]);\r\n\r\n /**\r\n * Si sottoscrive all'evento di hash change.\r\n * Se è richiesto una hash change prima dell'avvenuto caricamento, lo eseguie appena il child è stato caricato.\r\n */\r\n\r\n const handleHashchangeEvent = useCallback(() => {\r\n if (!appLoaded.current) {\r\n reloadMissing.current = true;\r\n } else {\r\n onHashChange();\r\n }\r\n }, [onHashChange]);\r\n\r\n useEventListener('hashchange', handleHashchangeEvent, false, 'routingHandler');\r\n\r\n const onLoaded = useCallback(() => {\r\n // se durante il caricamento sono stati effettuati cambi di hash, allora inoltro l'evento\r\n if (reloadMissing.current) {\r\n onHashChange();\r\n }\r\n }, [onHashChange]);\r\n\r\n return { initialSrc, onLoaded };\r\n}\r\n","const versionCompare = (v1, v2) => {\r\n const v1parts = (v1 || '').split('.');\r\n const v2parts = (v2 || '').split('.');\r\n\r\n for (let i = 0; i < v1parts.length; i += 1) {\r\n if (v2parts.length === i) {\r\n return 1;\r\n }\r\n if (v1parts[i] !== v2parts[i]) {\r\n if (v1parts[i] > v2parts[i]) {\r\n return 1;\r\n }\r\n return -1;\r\n }\r\n }\r\n if (v1parts.length !== v2parts.length) {\r\n return -1;\r\n }\r\n return 0;\r\n};\r\n\r\nexport {\r\n // eslint-disable-next-line import/prefer-default-export\r\n versionCompare,\r\n};\r\n","import { useCallback } from 'react';\r\nimport usePluginHandler from '../../../hooks/usePluginHandler';\r\nimport { PluginMessageTypes } from '../../../models/constants';\r\nimport { NOOP } from '../../../utils/const';\r\n\r\n/**\r\n * Comportamento nel caso di un IFrame in una Modale.\r\n */\r\nexport default function useIFrameInDialog(onDialogResize = NOOP, onDialogOk = NOOP, onDialogCancel = NOOP) {\r\n const handleMessages = useCallback((message) => {\r\n switch (message.type) {\r\n case PluginMessageTypes.DIALOG_SIZE:\r\n onDialogResize(message.payload);\r\n break;\r\n case PluginMessageTypes.DIALOG_OK:\r\n onDialogOk(message.payload);\r\n break;\r\n case PluginMessageTypes.DIALOG_CANCEL:\r\n onDialogCancel();\r\n break;\r\n default:\r\n }\r\n }, [onDialogCancel, onDialogOk, onDialogResize]);\r\n usePluginHandler(handleMessages);\r\n}\r\n","import useViewport from 'framework-ui-components/Components/V2/Hooks/useViewport';\r\nimport { useEffect } from 'react';\r\nimport { getWindowSizeToParam } from '../../../hooks/usePluginAppViewport';\r\nimport { PluginMessageTypes } from '../../../models/constants';\r\nimport MessagesPlugin from '../../../models/messages';\r\n\r\nexport default function useViewportResolutionSender() {\r\n const { width, height } = useViewport();\r\n\r\n useEffect(() => {\r\n if (width === undefined || height === undefined) return;\r\n MessagesPlugin.postMessageToChilds(PluginMessageTypes.SET_RESOLUTION, getWindowSizeToParam({\r\n innerHeight: height,\r\n innerWidth: width,\r\n }));\r\n }, [width, height]);\r\n}\r\n","import { useCallback } from 'react';\r\nimport usePluginHandler from '../../../hooks/usePluginHandler';\r\nimport { isCalledByParent } from '../../../models/caller';\r\nimport { PluginMessageTypes } from '../../../models/constants';\r\nimport { setLocation, setLocationHash } from '../../../utils/navigation';\r\n\r\n/**\r\n * Gestione goto demandati al parent\r\n */\r\nexport default function useGotoExternal(onRedirectUrl) {\r\n /**\r\n * Evento inviato dal child per effettuare nel parent un redirect ad un url specifico\r\n */\r\n const eventoGotoExternalUrl = useCallback((url) => {\r\n if (onRedirectUrl) {\r\n onRedirectUrl(url);\r\n } else {\r\n setLocation(url);\r\n }\r\n }, [onRedirectUrl]);\r\n\r\n const messageHandler = useCallback((message) => {\r\n if (message.type === PluginMessageTypes.GOTO_EXTERNAL_HASH) {\r\n // richiesta navigazione esterna all'iframe (hash)\r\n // se sono dentro un'altro parent allora lo faccio fare a lui\r\n if (!isCalledByParent()) {\r\n setLocationHash(message.payload);\r\n }\r\n } else if (message.type === PluginMessageTypes.GOTO_EXTERNAL_URL) {\r\n // richiesta navigazione esterna all'iframe (url)\r\n // se sono dentro un'altro parent allora lo faccio fare a lui\r\n if (!isCalledByParent()) {\r\n eventoGotoExternalUrl(message.payload);\r\n }\r\n }\r\n }, [eventoGotoExternalUrl]);\r\n\r\n usePluginHandler(messageHandler);\r\n}\r\n","import {\r\n useCallback, useEffect, useRef, useState,\r\n} from 'react';\r\nimport usePluginHandler from '../../../hooks/usePluginHandler';\r\nimport { PluginMessageTypes } from '../../../models/constants';\r\nimport Log from '../../../utils/log';\r\nimport MessagesPlugin from '../../../models/messages';\r\n\r\n/**\r\n * Gestisce il loading process di un IFrame.\r\n */\r\nexport default function useIFrameLoader(url, extraParams, checkLoaded, onSuccess, onFail) {\r\n const timeoutRef = useRef();\r\n const childLoadedRef = useRef(false);\r\n const [loading, setLoading] = useState(true);\r\n const [loadingError, setLoadingError] = useState(false);\r\n\r\n useEffect(() => () => {\r\n timeoutRef.current && clearTimeout(timeoutRef.current);\r\n }, []);\r\n\r\n const messageHandler = useCallback(({ type }) => {\r\n if (type === PluginMessageTypes.LOADED) {\r\n childLoadedRef.current = true;\r\n setLoading(false);\r\n }\r\n }, []);\r\n usePluginHandler(messageHandler);\r\n\r\n const sendExtraData = useCallback(() => {\r\n if (!extraParams) return;\r\n MessagesPlugin.postMessageToChilds(PluginMessageTypes.EXTRA_PARAMS, extraParams);\r\n }, [extraParams]);\r\n\r\n const onLoad = useCallback(() => {\r\n Log.debug(`Loading... ${url}`);\r\n if (!checkLoaded) {\r\n setLoading(false);\r\n return;\r\n }\r\n // verifico che l'applicativo sia stato effettivamente caricato\r\n let timeout = 50; // max timeout per attesa conferma caricamento\r\n const checkLoadOk = () => {\r\n Log.debug('load checking', timeout);\r\n if (childLoadedRef.current) {\r\n Log.debug('LOADED');\r\n sendExtraData();\r\n onSuccess();\r\n } else if ((timeout -= 10) < 0) {\r\n Log.debug('NOT LOADED');\r\n setLoadingError(true);\r\n onFail();\r\n } else {\r\n timeoutRef.current = setTimeout(checkLoadOk, 10);\r\n }\r\n };\r\n timeoutRef.current = setTimeout(checkLoadOk, 10);\r\n }, [checkLoaded, onFail, onSuccess, sendExtraData, url]);\r\n\r\n return {\r\n loaded: childLoadedRef.current, onLoad, loading, loadingError,\r\n };\r\n}\r\n","import IFrame from './IFrame';\r\n\r\nexport default IFrame;\r\n","import React, { useCallback, useMemo, useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Modal } from 'framework-ui-components/Components/V2';\r\nimport IFrame from '../IFrame';\r\nimport { ParentModalCaller } from '../../../models/constants';\r\nimport { NOOP } from '../../../utils/const';\r\n\r\n/**\r\nHook per la gestione di uno state condizionale.\r\n@param {any} initValue stato iniziale\r\n@param {boolean} boolean condizione di abilitazione\r\n@returns {array} array con stato [0] e funzione di modifica stato [1]\r\n\r\nATTENZIONE: lo stesso hook è presente in ui-components >= 2.0.0.\r\nUtilizzare quello se la peerDependecies di ui-components è almeno 2.0.0.\r\n */\r\nfunction useStateIfEnabled(initState, condition) {\r\n const [state, setState] = useState(initState);\r\n\r\n return [\r\n condition ? state : initState,\r\n condition ? setState : NOOP,\r\n ];\r\n}\r\n\r\n/**\r\n * Componente PARENT utilizzato disegnare una modale con contenuto plugin\r\n */\r\nconst ModalIframe = ({\r\n title, show, src, checkLoaded, onClose, onConfirm, modalProps, iframeProps, defaultModalSize, fixedModalSize,\r\n}) => {\r\n // Se la prop fixedModalSize è true allora uso le grandezze di default che non cambiano con il resize\r\n const [size, setSize] = useStateIfEnabled(defaultModalSize, !fixedModalSize);\r\n\r\n const onDialogOk = useCallback((data) => {\r\n if (onConfirm) onConfirm(data);\r\n onClose();\r\n }, [onClose, onConfirm]);\r\n\r\n const modalSrcParams = useMemo(() => ({\r\n ...((iframeProps && iframeProps.srcParams) || {}),\r\n [ParentModalCaller]: true,\r\n }), [iframeProps]);\r\n\r\n return (\r\n \r\n {title}\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nModalIframe.defaultProps = {\r\n onConfirm: null,\r\n onClose: null,\r\n title: '',\r\n checkLoaded: true,\r\n iframeProps: {},\r\n modalProps: {},\r\n defaultModalSize: {\r\n width: '100%',\r\n height: '100px',\r\n },\r\n show: true,\r\n fixedModalSize: false,\r\n};\r\n\r\nModalIframe.propTypes = {\r\n /**\r\n * Callback invocata dopo la chiusura della modale:\r\n * ```\r\n * onClose()\r\n * ```\r\n */\r\n onClose: PropTypes.func,\r\n /**\r\n * Callback invocata dopo la pressione del tasto conferma della modale:\r\n * ```\r\n * onConfirm(data)\r\n * ```\r\n * dove:\r\n * * *data*: dati inviati dall'applicazione child caricata nell'iframe\r\n */\r\n onConfirm: PropTypes.func,\r\n /** Indica se mostrare o meno la modale */\r\n show: PropTypes.bool,\r\n /** titolo da mostrare nella modale */\r\n title: PropTypes.string,\r\n /** url da caricare */\r\n src: PropTypes.string.isRequired,\r\n /** Parametro utilizzato per disabilitare il controllo se\r\n * l'applicativo descritto in *src* è stato caricato */\r\n checkLoaded: PropTypes.bool,\r\n /** Eventuali altri parametri da passare al componente IFrame (escluso il parametro *src*) */\r\n iframeProps: PropTypes.shape({\r\n srcParams: PropTypes.shape({}),\r\n }),\r\n /** Eventuali parametri da passare al componente Modal */\r\n modalProps: PropTypes.shape({}),\r\n /** Eventuali dimensioni iniziali della modale. Queste dimensioni valgono solamente fino al caricamento del contenuto del child.\r\n * Una volta caricato il contenuto incluso come child, viene presa la dimensione di quest'ultimo e impostata come dimensione della modale.\r\n * *defaultmodalSize* dovrebbe aiutare a impostare la dimensione della modale appena viene aperta e prima che il caricamento del\r\n * contenuto remoto termini, così da non dare la percezione all'utente che la modale si adatti al contenuto caricato.\r\n * Se il parametro fixedModalSize è true invece la dimensione rimarrà sempre quella dichiarata. */\r\n defaultModalSize: PropTypes.shape({\r\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\r\n height: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\r\n }),\r\n /** Imposta la grandezza della modale in maniera fissa.\r\n * Se messo a true mantiene la stessa grandezza della modale, per impostare le dimensioni della modale bisogna impostare defaultModalSize */\r\n fixedModalSize: PropTypes.bool,\r\n};\r\n\r\nexport default ModalIframe;\r\n","import ModalIFrame from './ModalIFrame';\r\n\r\nexport default ModalIFrame;\r\n","import { WebRequest } from 'framework-ui-components';\r\n\r\nconst postCreaDelega = (command) => WebRequest.post('/Contribuente/Deleghe/CreaDeleghePerDataScadenza', command);\r\n\r\nconst ottieniDelegheUrlInLavorazione = (\r\n idContribuente,\r\n searchType,\r\n searchTerm,\r\n) => `/Contribuente/Deleghe/OttieniDelegheInLavorazione?idContribuente=${idContribuente}&tab=${searchType + 1}&searchTerm=${searchTerm}`;\r\n\r\nconst ottieniDelegheUrlComplete = (\r\n idContribuente,\r\n searchType,\r\n searchTerm,\r\n) => `/Contribuente/Deleghe/OttieniDelegheComplete?idContribuente=${idContribuente}&tab=${searchType + 1}&searchTerm=${searchTerm}`;\r\n\r\nconst ottieniDelegheUrlPresentate = (\r\n idContribuente,\r\n searchType,\r\n searchTerm,\r\n) => `/Contribuente/Deleghe/OttieniDeleghePresentate?idContribuente=${idContribuente}&tab=${searchType + 1}&searchTerm=${searchTerm}`;\r\n\r\nconst ottieniDelegheUrlInLavorazioneMassiva = (\r\n idStudio,\r\n searchType,\r\n searchTerm,\r\n) => `/Deleghe/OttieniDelegheInLavorazione?idStudio=${idStudio}&tab=${searchType + 1}&searchTerm=${searchTerm}`;\r\n\r\nconst ottieniDelegheUrlCompleteMassiva = (\r\n idStudio,\r\n searchType,\r\n searchTerm,\r\n) => `/Deleghe/OttieniDelegheComplete?idStudio=${idStudio}&tab=${searchType + 1}&searchTerm=${searchTerm}`;\r\n\r\nconst ottieniDelegheUrlPresentateMassiva = (\r\n idStudio,\r\n searchType,\r\n searchTerm,\r\n) => `/Deleghe/OttieniDeleghePresentate?idStudio=${idStudio}&tab=${searchType + 1}&searchTerm=${searchTerm}`;\r\n\r\nconst getOttieniContatoriStatoDeleghe = (\r\n idContribuente,\r\n) => WebRequest.get('/Contribuente/Deleghe/OttieniContatoriStatoDeleghe', {\r\n idContribuente,\r\n});\r\n\r\nconst getOttieniContatoriTipoDelegheContribuente = (\r\n idContribuente,\r\n stato,\r\n) => WebRequest.get('/Contribuente/Deleghe/OttieniContatoriTipoDeleghe', {\r\n idContribuente,\r\n stato,\r\n});\r\n\r\nconst getOttieniContatoriTipoDelegheMassiva = (\r\n idStudio,\r\n stato,\r\n) => WebRequest.get('/Deleghe/OttieniContatoriTipoDeleghe', {\r\n idStudio,\r\n stato,\r\n});\r\n\r\nconst getOttieniContatoriStatoDelegheMassiva = (\r\n idStudio,\r\n) => WebRequest.get('/Deleghe/OttieniContatoriStatoDeleghe', {\r\n idStudio,\r\n});\r\n\r\nconst getOttieniDeleghe = (\r\n idStudio,\r\n idContribuente,\r\n searchType,\r\n searchTerm,\r\n) => WebRequest.get('/Contribuente/Deleghe/OttieniDeleghe', {\r\n idStudio,\r\n idContribuente,\r\n searchType,\r\n searchTerm,\r\n});\r\n\r\nconst getOttieniDelega = (\r\n idDelega,\r\n) => WebRequest.get('/Deleghe/OttieniDelega', {\r\n idDelega,\r\n});\r\n\r\nconst getEtichetteDelega = (\r\n idDelega,\r\n) => WebRequest.get('/Deleghe/OttieniEtichetteDelega', {\r\n idDelega,\r\n});\r\n\r\nconst getOttieniUltimaDelegaCreata = () => WebRequest.get('/Contribuente/Deleghe/OttieniUltimaDelegaCreata', {\r\n});\r\n\r\nconst getOttieniSezioneErario = (\r\n idDelega,\r\n) => WebRequest.get('/Deleghe/OttieniSezioneErario', {\r\n idDelega,\r\n});\r\n\r\nconst getOttieniSezioneInps = (\r\n idDelega,\r\n) => WebRequest.get('/Deleghe/OttieniSezioneInps', {\r\n idDelega,\r\n});\r\n\r\nconst getOttieniSezioneTributiLocali = (\r\n idDelega,\r\n) => WebRequest.get('/Deleghe/OttieniSezioneTributiLocali', {\r\n idDelega,\r\n});\r\n\r\nconst getOttieniSezioneRegioni = (\r\n idDelega,\r\n) => WebRequest.get('/Deleghe/OttieniSezioneRegioni', {\r\n idDelega,\r\n});\r\n\r\nconst getOttieniSezioneInail = (\r\n idDelega,\r\n) => WebRequest.get('/Deleghe/OttieniSezioneInail', {\r\n idDelega,\r\n});\r\n\r\nconst getOttieniSezioneAltriEnti = (\r\n idDelega,\r\n) => WebRequest.get('/Deleghe/OttieniSezioneAltriEnti', {\r\n idDelega,\r\n});\r\n\r\nconst getOttieniSezioneAccise = (\r\n idDelega,\r\n) => WebRequest.get('/Deleghe/OttieniSezioneAccise', {\r\n idDelega,\r\n});\r\n\r\nconst getOttieniSezioneElide = (\r\n idDelega,\r\n) => WebRequest.get('/Deleghe/OttieniSezioneElide', {\r\n idDelega,\r\n});\r\n\r\nconst postDichiaraAperta = (command) => WebRequest.post('/Deleghe/DichiaraAperta', command);\r\n\r\nconst postDichiaraAperteMassivamente = (idDeleghe) => WebRequest.post('/Deleghe/DichiaraAperteMassivamente', idDeleghe);\r\n\r\nconst postDichiaraCompleta = (command) => WebRequest.post('/Deleghe/DichiaraCompleta', command);\r\n\r\nconst postDichiaraCompleteMassivamente = (idDeleghe) => WebRequest.post('/Deleghe/DichiaraCompleteMassivamente', idDeleghe);\r\n\r\nconst postDichiaraPagata = (command) => WebRequest.post('/Deleghe/DichiaraPagata', command);\r\n\r\nconst postDichiaraNonPagata = (command) => WebRequest.post('/Deleghe/DichiaraNonPagata', command);\r\n\r\nconst postDichiaraDaNonPresentare = (command) => WebRequest.post('/Deleghe/DichiaraDaNonPresentare', command);\r\n\r\nconst postDichiaraDaPresentare = (command) => WebRequest.post('/Deleghe/DichiaraDaPresentare', command);\r\n\r\nconst postStampaDelega = (command) => WebRequest.post('/Deleghe/StampaDaConsegnare', command);\r\n\r\nconst postStampaCopiaConformeDelega = (idDelega) => WebRequest.post('/Deleghe/StampaCopiaConforme', idDelega);\r\n\r\nconst getStampaUltimaDelega = (idDelega) => WebRequest.get('/Deleghe/OttieniUltimaStampa', {\r\n idDelega,\r\n});\r\n\r\nconst postStampaDelegaProvvisoria = (idDelega) => WebRequest.post('/Deleghe/StampaProvvisoria', idDelega);\r\n\r\nconst postStampaDelegaMassiva = (idDeleghe) => WebRequest.post('/Deleghe/StampaDaConsegnareMassiva', idDeleghe);\r\n\r\nconst postCreaFileTelematicoContribuente = (command) => WebRequest.post('Deleghe/CreaFileTelematicoContribuente', command);\r\n\r\nconst postCreaFileTelematicoCbiContribuente = (command) => WebRequest.post('Deleghe/CreaFileTelematicoCbiContribuente', command);\r\n\r\nconst postAssociaIntermediario = (command) => WebRequest.post('Deleghe/AssociaIntermediario', command);\r\n\r\nconst postCreaDelegaCopiaConformeTrasmissioneTelematica = (idDelega) => WebRequest.post('Deleghe/StampaCopiaConforme', idDelega);\r\n\r\nconst postEliminaDelega = (idDelega) => WebRequest.post('/Deleghe/Elimina', idDelega);\r\n\r\nconst getOttieniUltimaStampaInDownload = (idDelega) => WebRequest.getFile(\r\n 'Deleghe/OttieniUltimaStampaInDownload',\r\n {\r\n idDelega,\r\n },\r\n null,\r\n true,\r\n);\r\n\r\nconst getOttieniUltimoFileTelematicoContribuenteInDownload = (idDelega) => WebRequest.getFile(\r\n 'Deleghe/OttieniUltimoFileTelematicoContribuenteInDownload',\r\n {\r\n idDelega,\r\n },\r\n null,\r\n true,\r\n);\r\n\r\nconst postModificaImportoUtilizzoDebito = (command) => WebRequest.post('Deleghe/ModificaImportoUtilizzoDebito', command);\r\n\r\nconst postModificaImportoUtilizzoCredito = (command) => WebRequest.post('Deleghe/ModificaImportoUtilizzoCredito', command);\r\n\r\nconst postRimuoviUtilizzoCredito = (idCredito, idDelega, idContribuente) => WebRequest.post(\r\n 'Deleghe/RimuoviUtilizzoCredito',\r\n {\r\n IdCredito: idCredito,\r\n IdDelega: idDelega,\r\n IdContribuente: idContribuente,\r\n },\r\n);\r\n\r\nconst postRimuoviUtilizzoDebito = (idDebito, idDelega, idContribuente) => WebRequest.post(\r\n 'Deleghe/RimuoviUtilizzoDebito',\r\n {\r\n IdDebito: idDebito,\r\n IdDelega: idDelega,\r\n IdContribuente: idContribuente,\r\n },\r\n);\r\n\r\nconst postAssociaCoobbligato = (IdDelega, IdAnagraficaCoobbligato, IdCodiceCoobbligato) => WebRequest.post(\r\n 'Deleghe/AssociaCoobbligato',\r\n {\r\n IdDelega,\r\n IdAnagraficaCoobbligato,\r\n IdCodiceCoobbligato,\r\n },\r\n);\r\n\r\nconst postRimuoviCoobbligato = (IdDelega) => WebRequest.post(\r\n 'Deleghe/RimuoviCoobbligato',\r\n {\r\n IdDelega,\r\n },\r\n);\r\n\r\nconst postAssociaContoCorrente = (command) => WebRequest.post(\r\n 'Deleghe/AssociaContoCorrente',\r\n command,\r\n);\r\n\r\nconst postRimuoviContoCorrente = (IdDelega) => WebRequest.post(\r\n 'Deleghe/RimuoviContoCorrente',\r\n {\r\n IdDelega,\r\n },\r\n);\r\n\r\nconst postCreaDeleghePerTributiSelezionati = (command) => WebRequest.post('Contribuente/Deleghe/CreaDeleghePerTributiSelezionati', command);\r\nconst postCreaDeleghePerTributiSelezionatiMultiContribuente = (command) => WebRequest.post('Deleghe/CreaDeleghePerTributiSelezionati', command);\r\n\r\nconst postImpostaDelegaInviataConCbi = (command) => WebRequest.post('Deleghe/ImpostaDelegaInviataConCbi', command);\r\n\r\nconst getOttieniIbanContoCorrente = (\r\n idDelega,\r\n) => WebRequest.get('Deleghe/OttieniIbanContoCorrente', {\r\n idDelega,\r\n});\r\n\r\nconst getOttieniInfoModalitaPresentazione = (\r\n idDelega,\r\n) => WebRequest.get('Deleghe/OttieniInfoModalitaPresentazioneDelega', {\r\n idDelega,\r\n});\r\n\r\nconst getOttieniTributiInseribiliInDelega = (\r\n idDelega,\r\n) => WebRequest.get('Deleghe/OttieniTributiInseribiliInDelega', {\r\n idDelega,\r\n});\r\n\r\nconst postUtilizzaDebito = (command) => WebRequest.post('Deleghe/UtilizzaDebito', command);\r\n\r\nconst postUtilizzaCredito = (command) => WebRequest.post('Deleghe/UtilizzaCredito', command);\r\n\r\nconst postPresentaConPagoF24 = (idDeleghe) => WebRequest.post('/Deleghe/PresentaConPagoF24', idDeleghe);\r\n\r\nconst postAggiornaIndirizzi = (command) => WebRequest.post('Deleghe/AggiornaIndirizzi', command);\r\n\r\nconst postQuietanza = (idDelega) => WebRequest.post('/Deleghe/Quietanza', idDelega);\r\n\r\nexport {\r\n postCreaDelega,\r\n ottieniDelegheUrlInLavorazione,\r\n ottieniDelegheUrlComplete,\r\n ottieniDelegheUrlPresentate,\r\n ottieniDelegheUrlInLavorazioneMassiva,\r\n ottieniDelegheUrlCompleteMassiva,\r\n ottieniDelegheUrlPresentateMassiva,\r\n getOttieniDeleghe,\r\n getOttieniDelega,\r\n getOttieniUltimaDelegaCreata,\r\n getOttieniSezioneErario,\r\n getOttieniSezioneInps,\r\n getOttieniSezioneRegioni,\r\n getOttieniSezioneTributiLocali,\r\n getOttieniSezioneInail,\r\n getOttieniSezioneAltriEnti,\r\n getOttieniSezioneAccise,\r\n getOttieniSezioneElide,\r\n getOttieniContatoriStatoDeleghe,\r\n getOttieniContatoriStatoDelegheMassiva,\r\n getOttieniContatoriTipoDelegheMassiva,\r\n getOttieniInfoModalitaPresentazione,\r\n getOttieniUltimaStampaInDownload,\r\n getOttieniUltimoFileTelematicoContribuenteInDownload,\r\n getOttieniIbanContoCorrente,\r\n getOttieniTributiInseribiliInDelega,\r\n getOttieniContatoriTipoDelegheContribuente,\r\n postUtilizzaDebito,\r\n postUtilizzaCredito,\r\n postDichiaraAperta,\r\n postDichiaraAperteMassivamente,\r\n postDichiaraNonPagata,\r\n postDichiaraCompleta,\r\n postDichiaraCompleteMassivamente,\r\n postDichiaraPagata,\r\n postDichiaraDaNonPresentare,\r\n postDichiaraDaPresentare,\r\n postModificaImportoUtilizzoDebito,\r\n postModificaImportoUtilizzoCredito,\r\n postRimuoviUtilizzoDebito,\r\n postRimuoviUtilizzoCredito,\r\n postAssociaCoobbligato,\r\n postRimuoviCoobbligato,\r\n postAssociaContoCorrente,\r\n postRimuoviContoCorrente,\r\n postStampaDelega,\r\n postStampaDelegaMassiva,\r\n postStampaDelegaProvvisoria,\r\n postCreaFileTelematicoContribuente,\r\n postCreaFileTelematicoCbiContribuente,\r\n postAssociaIntermediario,\r\n postEliminaDelega,\r\n postCreaDeleghePerTributiSelezionati,\r\n postCreaDeleghePerTributiSelezionatiMultiContribuente,\r\n getEtichetteDelega,\r\n postCreaDelegaCopiaConformeTrasmissioneTelematica,\r\n postStampaCopiaConformeDelega,\r\n getStampaUltimaDelega,\r\n postImpostaDelegaInviataConCbi,\r\n postPresentaConPagoF24,\r\n postQuietanza,\r\n postAggiornaIndirizzi,\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\n\r\nconst Row = ({ children, className }) => {\r\n const classes = cns(\r\n 'row',\r\n className,\r\n );\r\n\r\n return (\r\n
\r\n {children}\r\n
\r\n );\r\n};\r\n\r\nRow.propTypes = {\r\n /** Contenuto da renderizzare all'interno del componente */\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node,\r\n ]),\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n};\r\n\r\nRow.defaultProps = {\r\n children: null,\r\n className: '',\r\n};\r\n\r\nexport default Row;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\n\r\nconst Column = ({\r\n children, className, lg, lgOffset, lgPull, lgPush, md, mdOffset,\r\n mdPull, mdPush, xl, xlPull, xlPush, xlOffset, xs, xsOffset, xsPush, xsPull,\r\n}) => {\r\n const obj = {};\r\n if (xs) { obj[`col-xs-${xs}`] = true; }\r\n if (xsOffset) { obj[`offset-xs-${xsOffset}`] = true; }\r\n if (xsPush) { obj[`push-xs-${xsPush}`] = true; }\r\n if (xsPull) { obj[`pull-xs-${xsPull}`] = true; }\r\n if (md) { obj[`col-md-${md}`] = true; }\r\n if (mdOffset) { obj[`offset-md-${mdOffset}`] = true; }\r\n if (mdPush) { obj[`push-md-${mdPush}`] = true; }\r\n if (mdPull) { obj[`pull-md-${mdPull}`] = true; }\r\n if (lg) { obj[`col-lg-${lg}`] = true; }\r\n if (lgOffset) { obj[`offset-lg-${lgOffset}`] = true; }\r\n if (lgPush) { obj[`push-lg-${lgPush}`] = true; }\r\n if (lgPull) { obj[`pull-lg-${lgPull}`] = true; }\r\n if (xl) { obj[`col-xl-${xl}`] = true; }\r\n if (xlOffset) { obj[`offset-xl-${xlOffset}`] = true; }\r\n if (xlPush) { obj[`push-xl-${xlPush}`] = true; }\r\n if (xlPull) { obj[`pull-xl-${xlPull}`] = true; }\r\n\r\n const classes = cns(obj, className);\r\n\r\n return (\r\n
\r\n {children}\r\n
\r\n );\r\n};\r\n\r\nColumn.propTypes = {\r\n /** Contenuto da renderizzare all'interno del componente */\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node,\r\n ]),\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n lg: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.number,\r\n ]),\r\n lgOffset: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.number,\r\n ]),\r\n lgPull: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.number,\r\n ]),\r\n lgPush: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.number,\r\n ]),\r\n md: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.number,\r\n ]),\r\n mdOffset: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.number,\r\n ]),\r\n mdPull: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.number,\r\n ]),\r\n mdPush: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.number,\r\n ]),\r\n xl: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.number,\r\n ]),\r\n xlOffset: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.number,\r\n ]),\r\n xlPull: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.number,\r\n ]),\r\n xlPush: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.number,\r\n ]),\r\n xs: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.number,\r\n ]),\r\n xsOffset: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.number,\r\n ]),\r\n xsPull: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.number,\r\n ]),\r\n xsPush: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.number,\r\n ]),\r\n};\r\n\r\nColumn.defaultProps = {\r\n children: null,\r\n className: '',\r\n lg: null,\r\n lgOffset: null,\r\n lgPull: null,\r\n lgPush: null,\r\n md: null,\r\n mdOffset: null,\r\n mdPull: null,\r\n mdPush: null,\r\n xl: null,\r\n xlOffset: null,\r\n xlPull: null,\r\n xlPush: null,\r\n xs: null,\r\n xsOffset: null,\r\n xsPull: null,\r\n xsPush: null,\r\n};\r\n\r\nexport default Column;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\n\r\nimport Row from './Row';\r\nimport Column from './Column';\r\n\r\nconst Grid = ({ children, className, fluid }) => {\r\n const classes = cns(\r\n fluid ? 'container-fluid' : 'container',\r\n className,\r\n );\r\n\r\n return (\r\n
\r\n {children}\r\n
\r\n );\r\n};\r\n\r\nGrid.propTypes = {\r\n /** Contenuto da renderizzare all'interno del componente */\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node,\r\n ]),\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n /** Indica se si vuole avere un contenitore fluido\r\n * che si espande alla grandezza del suo parent */\r\n fluid: PropTypes.bool,\r\n};\r\n\r\nGrid.defaultProps = {\r\n children: null,\r\n className: '',\r\n fluid: false,\r\n};\r\n\r\nGrid.Col = Column;\r\nGrid.Row = Row;\r\n\r\nexport default Grid;\r\n","import Grid from './Grid';\r\n\r\nexport default Grid;\r\n","// eslint-disable-next-line import/prefer-default-export\r\nexport function getViewport(w = window) {\r\n return { width: w.innerWidth, height: w.innerHeight };\r\n}\r\n","import React, { useState, useEffect } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport debounce from '../../Utils/debouncer';\r\nimport ViewportContext from './ViewportContext';\r\nimport { getViewport } from './util';\r\n\r\n/**\r\nProvider per la gestione del viewport.\r\n\r\nIl provider si mette in ascolto del resize e comunica ai consumer le modifiche della viewport.\r\n\r\nvedi `useViewport`\r\n\r\nvedi `ViewportContext`\r\n\r\nvedi `usePluginAppViewport`\r\n */\r\nconst ViewportProvider = ({ children, container }) => {\r\n const [size, setSize] = useState(getViewport(container || window));\r\n\r\n useEffect(() => {\r\n const w = container || window;\r\n const handleViewportResize = debounce(() => {\r\n setSize((s) => {\r\n const newViewport = getViewport(w);\r\n if (newViewport.width === s.width && newViewport.height === s.height) return s;\r\n return newViewport;\r\n });\r\n });\r\n\r\n w.addEventListener('resize', handleViewportResize);\r\n return () => w.removeEventListener('resize', handleViewportResize);\r\n }, [container]);\r\n\r\n return (\r\n {children}\r\n );\r\n};\r\n\r\nViewportProvider.propTypes = {\r\n /**\r\n Il container della viewport (di default è `window`).\r\n\r\n __Quando è necessario cambiare il container?__\r\n\r\n In alcuni situazioni la viewport non è gestita dalla pagina corrente (`window`), ma da altre.\r\n Un caso tipico è l'utilizzo di IFrame.\r\n In questo caso il container è la finestra chiamante e quindi a questa finstra spetta il calcolo della viewport.\r\n */\r\n container: PropTypes.shape({\r\n innerHeight: PropTypes.number.isRequired,\r\n innerWidth: PropTypes.number.isRequired,\r\n addEventListener: PropTypes.func.isRequired,\r\n removeEventListener: PropTypes.func.isRequired,\r\n }),\r\n\r\n /**\r\n * Children.\r\n */\r\n children: PropTypes.oneOfType([\r\n PropTypes.node,\r\n PropTypes.arrayOf(PropTypes.node),\r\n ]).isRequired,\r\n};\r\n\r\nViewportProvider.defaultProps = {\r\n container: undefined,\r\n};\r\n\r\nexport default ViewportProvider;\r\n","/* eslint-disable max-len */\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\n/**\r\n * Immagine uomo sorpreso per componenti di errore.\r\n*/\r\nconst Surprise = ({ className }) => {\r\n const style = `\r\n .a{opacity:0.5;}.b{fill:#f0f9ff;}.c{fill:#ce6f26;}.d{fill:#8dc6f2;}\r\n .e{fill:#bfdff8;}.f{fill:#1b486b;}.g{fill:#f4822a;}.h{fill:#195e92;}\r\n .i{fill:#ffb27d;}.j{fill:#163560;}.k{fill:#103c5e;}.l{fill:#f4a269;}\r\n .m{fill:#ed7d2b;}.n{fill:#f79e5a;}.o{fill:#0b233f;}.p{fill:#f8fbff;}\r\n .q{fill:#81bdec;}.r{fill:#f99746;}.s{fill:#f9ddbf;}.t{fill:#ffefe1;}\r\n .u{fill:#2a4e96;}.v{filter:url(#a);}\r\n `;\r\n return (\r\n \r\n \r\n \r\n ); // NOSONAR\r\n};\r\n\r\nSurprise.propTypes = {\r\n /**\r\nClass name.\r\n */\r\n className: PropTypes.string,\r\n};\r\n\r\nSurprise.defaultProps = {\r\n className: undefined,\r\n};\r\n\r\nexport default Surprise;\r\n","import React, { Fragment } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport ErrorPage from './ErrorPage';\r\nimport Surprise from './Surprise';\r\n\r\n/**\r\n * Errore generico.\r\n */\r\nconst UnexpectedErrorPage = ({ asPage }) => (\r\n }\r\n title=\"Ops... è successo un imprevisto.\"\r\n message={(\r\n \r\n A volte basta ricaricare la pagina.\r\n
\r\n Se invece continui a vedere questo messaggio invia un quesito all'assistenza.\r\n
\r\n )}\r\n asPage={asPage}\r\n />\r\n);\r\n\r\nUnexpectedErrorPage.propTypes = {\r\n /**\r\nIndica se mostrare il componente \"come pagina singola\".\r\n\r\nSe il componente deve essere inserito in una `Card`, `Modal` o altro, usare `asPage=false`.\r\n */\r\n asPage: PropTypes.bool,\r\n};\r\n\r\nUnexpectedErrorPage.defaultProps = {\r\n asPage: true,\r\n};\r\n\r\nexport default UnexpectedErrorPage;\r\n","import React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport UnexpectedErrorPage from '../ErrorPages/UnexpectedErrorPage';\r\nimport { isProduction } from '../Utils/environment';\r\n\r\n/**\r\nIsola eventuali eccezioni javascript evitando al visualizzazione di una pagina bianca, mostrando un messaggio di errore user-friendly.\r\nIntegrato di default all'interno del componente Sidebar.Body.\r\n */\r\nclass ErrorBoundary extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n error: null,\r\n errorInfo: null,\r\n showDetails: !isProduction(),\r\n };\r\n }\r\n\r\n UNSAFE_componentWillReceiveProps(nextProps) {\r\n const { toggleShow } = this.props;\r\n\r\n if (nextProps.toggleShow !== toggleShow) {\r\n this.setState({\r\n error: null,\r\n errorInfo: null,\r\n });\r\n }\r\n }\r\n\r\n componentDidCatch(error, errorInfo) {\r\n const { onCatch } = this.props;\r\n this.setState({\r\n error,\r\n errorInfo,\r\n }, () => {\r\n if (typeof onCatch === 'function') {\r\n onCatch(error, errorInfo);\r\n }\r\n });\r\n }\r\n\r\n // api pubblica\r\n // eslint-disable-next-line react/no-unused-class-component-methods\r\n resetErrors = () => {\r\n this.setState({\r\n error: null,\r\n errorInfo: null,\r\n });\r\n };\r\n\r\n render() {\r\n const { children, errorTitle } = this.props;\r\n const { error, errorInfo, showDetails } = this.state;\r\n if (errorInfo && !errorTitle) return ;\r\n return errorInfo\r\n ? (\r\n
\r\n
\r\n {errorTitle}\r\n {showDetails && (\r\n
\r\n {error && error.toString()}\r\n
\r\n {errorInfo.componentStack}\r\n
\r\n )}\r\n
\r\n
\r\n ) : children;\r\n }\r\n}\r\n\r\nErrorBoundary.propTypes = {\r\n /**\r\n * Componente da renderizzare gestito in caso di errore\r\n */\r\n children: PropTypes.node.isRequired,\r\n /**\r\n * Renderizza un titolo personalizzato\r\n */\r\n errorTitle: PropTypes.node,\r\n /**\r\n * Callback invocata in caso di eccezione:\r\n * ```\r\n * onCatch(error, errorInfo)\r\n * ```\r\n * dove:\r\n * * *error*: errore scatenato\r\n * * *errorInfo*: contiene il componentStack con lo stack dell'errore\r\n */\r\n onCatch: PropTypes.func,\r\n /**\r\n * Forza toggle\r\n */\r\n toggleShow: PropTypes.bool,\r\n};\r\n\r\nErrorBoundary.defaultProps = {\r\n errorTitle: null,\r\n onCatch: null,\r\n toggleShow: false,\r\n};\r\n\r\nexport default ErrorBoundary;\r\n","import ErrorBoundary from './ErrorBoundary';\r\n\r\nexport default ErrorBoundary;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport ErrorBoundary from '../ErrorBoundary';\r\n\r\nconst Body = ({ catchComponentError, children, onCatch }) => (\r\n
\r\n {catchComponentError\r\n ? (\r\n \r\n {children}\r\n \r\n )\r\n : children\r\n }\r\n
\r\n);\r\n\r\nBody.propTypes = {\r\n /** Indica se il componente isola gli errori\r\n * derivanti da componente renderizzati internamente */\r\n catchComponentError: PropTypes.bool,\r\n /** Contenuto da renderizzare all'interno del componente */\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node,\r\n ]),\r\n /**\r\n * Callback invocata in caso di eccezione:\r\n * ```\r\n * onCatch(error, errorInfo)\r\n * ```\r\n * dove:\r\n * * *error*: errore scatenato\r\n * * *errorInfo*: contiene il componentStack con lo stack dell'errore\r\n */\r\n onCatch: PropTypes.func,\r\n};\r\n\r\nBody.defaultProps = {\r\n catchComponentError: true,\r\n children: null,\r\n onCatch: null,\r\n};\r\n\r\nexport default Body;\r\n","import React, { useCallback } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\nimport { matchPath } from 'react-router';\r\n\r\n\r\nfunction isLinkActive(link, pathname) {\r\n if (link === '/') return false;\r\n return link === pathname || matchPath(pathname, { path: link, exact: false, strict: false });\r\n}\r\n\r\nfunction Item(props) {\r\n const {\r\n active, children, content, icon, onClick,\r\n link, className, location, history,\r\n } = props;\r\n\r\n const pathname = (location && location.pathname) || null;\r\n\r\n let itemActive = active;\r\n if (!itemActive && link && pathname) {\r\n itemActive = isLinkActive(link, pathname);\r\n }\r\n\r\n const classes = cns(\r\n 'sidebar__item',\r\n {\r\n 'sidebar__item--active': itemActive,\r\n },\r\n className,\r\n );\r\n\r\n const handleClick = useCallback((event) => {\r\n if (link) {\r\n history && history.push(link);\r\n }\r\n onClick && onClick(event);\r\n }, [history, link, onClick]);\r\n\r\n return (\r\n \r\n
{icon}
\r\n
{content || children}
\r\n
\r\n );\r\n}\r\n\r\nItem.defaultProps = {\r\n location: {},\r\n history: null,\r\n};\r\n\r\nItem.propTypes = {\r\n /** Indica se l'item della sidebar è attivo */\r\n active: PropTypes.bool,\r\n /** Contenuto da renderizzare all'interno del componente */\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node,\r\n ]),\r\n /** Testo da renderizzare */\r\n content: PropTypes.string,\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n /** Icona da mostrare per l'item */\r\n icon: PropTypes.node.isRequired,\r\n /** Link dell'elemento */\r\n link: PropTypes.string,\r\n /**\r\nCallback invocata al click sull'elemento:\r\n\r\n```\r\n onClick(event)\r\n```\r\ndove:\r\n\r\n- `event`: evento scatenante\r\n */\r\n onClick: PropTypes.func,\r\n /** @ignore parametro passato da withRouter */\r\n history: PropTypes.shape({\r\n push: PropTypes.func,\r\n }),\r\n /** @ignore parametro passato da withRouter */\r\n location: PropTypes.shape({\r\n pathname: PropTypes.string,\r\n }),\r\n};\r\n\r\nItem.defaultProps = {\r\n active: false,\r\n children: null,\r\n className: null,\r\n content: null,\r\n link: null,\r\n onClick: null,\r\n};\r\n\r\nexport default Item;\r\n","import React from 'react';\r\nimport { withRouter } from 'react-router-dom';\r\nimport Item from './Item';\r\nimport Log from '../../utils/log';\r\n\r\nexport const showError = (detail) => Log.error(\r\n `ATTENZIONE[${detail}]: Si sta usando una vecchia versione di react-router. Si consiglia quanto prima di aggiornare questo pacchetto.`,\r\n);\r\n\r\n/**\r\n * HOC per tentare il caricamento dell'item com wihRouter. Nel caso\r\n * venisse utilizzata una vecchia versione di react-router o non\r\n * sia in ogni caso possibile caricare withRouter, verrà comunque\r\n * caricamento il componente e verrà usato eventualmente\r\n * il context.router\r\n */\r\nconst ItemWR = withRouter(Item);\r\nconst ItemFinal = class extends React.Component {\r\n state = {\r\n newRouter: true,\r\n }\r\n\r\n componentDidCatch() {\r\n const { link, content } = this.props; // eslint-disable-line react/prop-types\r\n showError(content || link || '?');\r\n this.setState({ newRouter: false });\r\n }\r\n\r\n render() {\r\n const { newRouter } = this.state;\r\n return newRouter ? : ;\r\n }\r\n};\r\n\r\nexport default ItemFinal;\r\n","import { createContext } from 'react';\r\n\r\nexport default createContext({\r\n openCallback: null,\r\n open: null,\r\n});\r\n","import React, { useContext, useMemo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\nimport SidebarContext from './SidebarContext';\r\n\r\nconst Menu = ({ children }) => {\r\n const { open, openCallback } = useContext(SidebarContext);\r\n const classes = useMemo(() => cns(\r\n 'sidebar__menu',\r\n {\r\n 'sidebar__menu--open': open,\r\n 'sidebar__menu--closed': !open,\r\n },\r\n ), [open]);\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n {children}\r\n
\r\n );\r\n};\r\n\r\nMenu.propTypes = {\r\n /** Contenuto da renderizzare all'interno del componente */\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node,\r\n ]),\r\n};\r\n\r\nMenu.defaultProps = {\r\n children: null,\r\n};\r\n\r\nexport default Menu;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nconst Submenu = ({ children, icon, title }) => (\r\n
\r\n
\r\n
{icon}
\r\n
{title}
\r\n
\r\n
\r\n {children}\r\n
\r\n
\r\n);\r\n\r\nSubmenu.propTypes = {\r\n /** Contenuto da renderizzare all'interno del componente */\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node,\r\n ]),\r\n /** Icona da mostrare per l'item */\r\n icon: PropTypes.element,\r\n /** Titolo dell'elemento */\r\n title: PropTypes.string,\r\n};\r\n\r\nSubmenu.defaultProps = {\r\n children: null,\r\n icon: null,\r\n title: '',\r\n};\r\n\r\nexport default Submenu;\r\n","import React, { useState, useMemo, useCallback } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\nimport { HashRouter } from 'react-router-dom';\r\nimport Body from './Body';\r\nimport Item from './ItemWrapper';\r\nimport Menu from './Menu';\r\nimport Submenu from './Submenu';\r\nimport SidebarContext from './SidebarContext';\r\n\r\n/*\r\nse delego Sidebar a determina il componente attivo,\r\nricavo i link dai children e scelgo quello con lunghezza maggiore.\r\nPER ORA NON NECESSARIO\r\n\r\nfunction isLinkActive(link, pathname) {\r\n if (link === '/') return false;\r\n return link === pathname || matchPath(pathname, { path: link, exact: false, strict: false });\r\n}\r\n\r\nfunction getLinksInTree(children, links = []) {\r\n if (children) {\r\n return React.Children.toArray(children).reduce((acc, child) => {\r\n const result = [...acc];\r\n if (child.props && child.props.link) result.push(child.props.link);\r\n return getLinksInTree(child.props && child.props.children, result);\r\n }, links);\r\n }\r\n return links;\r\n}\r\n\r\n...\r\n\r\n const isActive = useCallback((link, pathname) => {\r\n if (!isLinkActive(link, pathname)) {\r\n return false;\r\n }\r\n // di tutti i link con match, il corrente è quello più lungo!\r\n const r = links.reduce((max, l) => {\r\n if (l.length > max && isLinkActive(l, pathname)) return l.length;\r\n return max;\r\n }, -1);\r\n return r === link.length;\r\n }, [links]);\r\n...\r\n*/\r\n\r\nexport const SidebarImpl = ({\r\n open, onOpenChanged, children, className,\r\n}) => {\r\n const [openInternal, setOpen] = useState(open);\r\n\r\n const toggle = useCallback(() => {\r\n const newOpenInternal = !openInternal;\r\n setOpen(newOpenInternal);\r\n onOpenChanged && onOpenChanged(newOpenInternal);\r\n }, [onOpenChanged, openInternal]);\r\n\r\n const classes = useMemo(() => cns(\r\n 'sidebar',\r\n {\r\n 'sidebar--open': open,\r\n },\r\n className,\r\n ), [open, className]);\r\n\r\n const sidebarContext = useMemo(() => ({\r\n openCallback: toggle,\r\n open: openInternal,\r\n }), [openInternal, toggle]);\r\n\r\n return (\r\n \r\n
\r\n {children}\r\n
\r\n
\r\n );\r\n};\r\n\r\nSidebarImpl.propTypes = {\r\n /** Contenuto da renderizzare all'interno del componente */\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node,\r\n ]),\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n /** Indica se mostrare inizialmente la sidebar aperto */\r\n open: PropTypes.bool,\r\n /** Callback richiamata ad ogni cambiamento di apertura della sidebar */\r\n onOpenChanged: PropTypes.func,\r\n};\r\n\r\nSidebarImpl.defaultProps = {\r\n children: null,\r\n className: '',\r\n open: false,\r\n onOpenChanged: null,\r\n};\r\n\r\n/**\r\nIl componente Sidebar permette di disegnare una sidebar con degli elementi di menu opzionalmente annidati.\r\n */\r\nconst Sidebar = ({\r\n open, onOpenChanged, children, className,\r\n}) => (\r\n \r\n {children}\r\n \r\n);\r\n\r\nSidebar.Body = Body;\r\n\r\nSidebar.Item = Item;\r\n\r\nSidebar.Menu = Menu;\r\n\r\nSidebar.Submenu = Submenu;\r\n\r\nSidebar.propTypes = {\r\n /** Contenuto da renderizzare all'interno del componente */\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node,\r\n ]),\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n /** Indica se mostrare inizialmente la sidebar aperto */\r\n open: PropTypes.bool,\r\n /** Callback richiamata ad ogni cambiamento di apertura della sidebar */\r\n onOpenChanged: PropTypes.func,\r\n};\r\n\r\nSidebar.defaultProps = {\r\n children: null,\r\n className: '',\r\n open: false,\r\n onOpenChanged: null,\r\n};\r\n\r\nexport default Sidebar;\r\n","import Sidebar from './Sidebar';\r\n\r\nexport default Sidebar;\r\n","import React from 'react';\r\nimport Icon from './Icon';\r\n\r\nexport default Icon(\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n , '0 0 15 16', 'BusinessContactIcon',\r\n);\r\n","import React from 'react';\r\nimport Icon from './Icon';\r\n\r\nexport default Icon(, null, 'ListIcon');\r\n","/* eslint-disable max-len */\r\nimport React from 'react';\r\nimport Icon from '../../Icons/Icon';\r\n\r\nexport default Icon(\r\n \r\n \r\n \r\n ,\r\n '0 0 24 24',\r\n 'HomeIcon',\r\n);\r\n","/* eslint-disable max-len */\r\nimport Icon from 'framework-ui-components/Components/Icons/Icon';\r\nimport React from 'react';\r\n\r\nexport default Icon(\r\n \r\n \r\n \r\n ,\r\n '0 0 24 24',\r\n 'PoliceIcon',\r\n);\r\n","/* eslint-disable max-len */\r\nimport Icon from 'framework-ui-components/Components/Icons/Icon';\r\nimport React from 'react';\r\n\r\nexport default Icon(\r\n \r\n \r\n \r\n ,\r\n '0 0 24 24',\r\n 'SupervisorIcon',\r\n);\r\n","/* eslint-disable max-len */\r\nimport Icon from 'framework-ui-components/Components/Icons/Icon';\r\nimport React from 'react';\r\n\r\nexport default Icon(\r\n \r\n \r\n \r\n ,\r\n '0 0 24 24',\r\n 'EventIcon',\r\n);\r\n","import React, { useCallback } from 'react';\r\nimport { Sidebar } from 'framework-ui-components';\r\nimport PropTypes from 'prop-types';\r\nimport BusinessContactIcon from 'framework-ui-components/Components/Icons/BusinessContactIcon';\r\nimport ListIcon from 'framework-ui-components/Components/Icons/ListIcon';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { setAppParamsAction } from 'framework-taskforce/actions/appParams';\r\nimport HomeIcon from 'framework-ui-components/Components/GoogleIcons/Filled/HomeIcon';\r\nimport PoliceIcon from './icons/google/PoliceIcon';\r\nimport SupervisorIcon from './icons/google/SupervisorIcon';\r\nimport EventIcon from './icons/google/EventIcon';\r\n\r\nconst SideBarF24 = ({\r\n children, resolutionMAIN, backgroundGrigio,\r\n}) => {\r\n const dispatch = useDispatch();\r\n const isOperatore = useSelector((store) => store.utente.Profilo.Operatore);\r\n\r\n const setNonSolaLettura = useCallback(() => {\r\n dispatch(setAppParamsAction({ visualizzazione: false }));\r\n }, [dispatch]);\r\n\r\n const setBackoffice = useCallback(() => {\r\n dispatch(setAppParamsAction({ visualizzazione: true }));\r\n }, [dispatch]);\r\n\r\n return (\r\n \r\n \r\n }\r\n link=\"/Home\"\r\n onClick={() => setNonSolaLettura()}\r\n >\r\n Home\r\n \r\n }\r\n link=\"/Scadenzario\"\r\n active={window.location.hash.includes('/Scadenzario')}\r\n onClick={() => setNonSolaLettura()}\r\n >\r\n Scadenzario\r\n \r\n }\r\n link=\"/Contribuenti\"\r\n active={(window.location.hash === '#/Contribuenti'\r\n || window.location.hash.includes('Backoffice'))\r\n && !window.location.hash.includes('/Intermediari')\r\n && !window.location.hash.includes('/Backoffice')\r\n && !window.location.hash.includes('/Deleghe')\r\n && !window.location.hash.includes('/Scadenzario')}\r\n >\r\n Contribuenti\r\n \r\n }\r\n link=\"/Deleghe\"\r\n active={window.location.hash.includes('/Deleghe')}\r\n onClick={() => setNonSolaLettura()}\r\n >\r\n Crea e presenta deleghe\r\n \r\n }\r\n link=\"/Intermediari\"\r\n active={window.location.hash.includes('/Intermediari')}\r\n onClick={() => setNonSolaLettura()}\r\n >\r\n Intermediari\r\n \r\n {isOperatore && window.location.hash.includes('localhost') && (\r\n } title=\"Backoffice\">\r\n }\r\n link=\"/Backoffice?visualizzazione=true\"\r\n active={window.location.hash.includes('/Backoffice?') || window.location.hash.includes('/Backoffice#')}\r\n onClick={() => setBackoffice()}\r\n >\r\n Contribuenti\r\n \r\n }\r\n link=\"/BackofficeIntermediari?visualizzazione=true\"\r\n active={window.location.hash.includes('/BackofficeIntermediari') || window.location.hash.includes('/BackofficeIntermediari#')}\r\n onClick={() => setBackoffice()}\r\n >\r\n Intermediari\r\n \r\n \r\n )}\r\n \r\n \r\n {children}\r\n \r\n \r\n );\r\n};\r\n\r\nSideBarF24.defaultProps = {\r\n backgroundGrigio: false,\r\n};\r\n\r\nSideBarF24.propTypes = {\r\n children: PropTypes.oneOfType([\r\n PropTypes.node,\r\n PropTypes.arrayOf(PropTypes.node),\r\n ]).isRequired,\r\n resolutionMAIN: PropTypes.bool.isRequired,\r\n backgroundGrigio: PropTypes.bool,\r\n};\r\n\r\nexport default SideBarF24;\r\n","import React, { useEffect } from 'react';\r\nimport { Grid, Sidebar } from 'framework-ui-components';\r\nimport PropTypes from 'prop-types';\r\nimport useViewport, { MAIN } from 'framework-ui-components/Components/V2/Hooks/useViewport';\r\nimport { ViewportProvider } from 'framework-ui-components/Components/V2';\r\nimport { useSelector } from 'react-redux';\r\nimport SideBarF24 from './SideBarF24';\r\n\r\nconst PageWrapper = ({\r\n children, toolbar, className, noSidebar, forceNoFlex, backgroundGrigio,\r\n}) => {\r\n const { resolution } = useViewport();\r\n const resolutionMAIN = resolution === MAIN;\r\n\r\n return (\r\n \r\n {toolbar}\r\n
\r\n {noSidebar ? (\r\n \r\n
\r\n {children}\r\n
\r\n
\r\n ) : (\r\n \r\n \r\n
\r\n {children}\r\n
\r\n
\r\n \r\n )}\r\n
\r\n
\r\n );\r\n};\r\n\r\nPageWrapper.defaultProps = {\r\n children: null,\r\n className: '',\r\n noSidebar: false,\r\n toolbar: '',\r\n forceNoFlex: true,\r\n backgroundGrigio: false,\r\n};\r\n\r\nPageWrapper.propTypes = {\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node,\r\n ]),\r\n toolbar: PropTypes.node,\r\n className: PropTypes.string,\r\n noSidebar: PropTypes.bool,\r\n forceNoFlex: PropTypes.bool,\r\n backgroundGrigio: PropTypes.bool,\r\n};\r\n\r\nexport default PageWrapper;\r\n","/* eslint-disable jsx-a11y/click-events-have-key-events */\r\nimport React, {\r\n useCallback, useRef, useEffect, useState, useMemo,\r\n} from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\nimport { NOOP } from '../../../utils/const';\r\nimport { getElementSize } from '../../Utils/documentUtils';\r\n\r\nfunction getBreadcrumbObject(breadcrumb) {\r\n if (typeof breadcrumb === 'string') {\r\n return { id: breadcrumb, label: breadcrumb, selectable: true };\r\n }\r\n return breadcrumb;\r\n}\r\n\r\nconst ListItem = ({\r\n blockClassName, last, breadcrumb, onSelect, setWidth,\r\n}) => {\r\n const ref = useRef();\r\n\r\n const handleSelect = useCallback((evt) => {\r\n onSelect(breadcrumb, evt);\r\n }, [breadcrumb, onSelect]);\r\n\r\n useEffect(() => {\r\n if (ref.current) {\r\n setWidth(getElementSize(ref.current).width);\r\n }\r\n }, [setWidth]);\r\n\r\n const breadcrumbObj = getBreadcrumbObject(breadcrumb);\r\n const selectable = breadcrumbObj.selectable === false ? undefined : handleSelect;\r\n\r\n const labelClasses = cns(`${blockClassName}__label`, {\r\n [`${blockClassName}__label--last`]: last,\r\n [`${blockClassName}__label--selectable`]: selectable,\r\n });\r\n return (\r\n
  • \r\n \r\n {breadcrumbObj.label}\r\n \r\n {!last &&  › }\r\n
  • \r\n );\r\n};\r\n\r\nListItem.propTypes = {\r\n blockClassName: PropTypes.string.isRequired,\r\n last: PropTypes.bool.isRequired,\r\n breadcrumb: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.shape({\r\n id: PropTypes.string.isRequired,\r\n label: PropTypes.string.isRequired,\r\n }),\r\n ]).isRequired,\r\n onSelect: PropTypes.func.isRequired,\r\n setWidth: PropTypes.func,\r\n};\r\n\r\nListItem.defaultProps = {\r\n setWidth: NOOP,\r\n};\r\nconst CollapsedListItem = ({ blockClassName }) => (\r\n
  • \r\n \r\n ...\r\n \r\n  › \r\n
  • \r\n);\r\n\r\nCollapsedListItem.propTypes = {\r\n blockClassName: PropTypes.string.isRequired,\r\n};\r\n\r\nfunction useCollapsing(maxWidth, items) {\r\n const [collapsed, setCollapsed] = useState(false);\r\n\r\n const data = useMemo(() => {\r\n setCollapsed(false);\r\n const result = { width: 0, items: 0 };\r\n result.itemWidthCallback = (width) => {\r\n result.width += width;\r\n result.items += 1;\r\n setCollapsed(items && items.length >= 2 && maxWidth < result.width);\r\n };\r\n return result;\r\n }, [maxWidth, items]);\r\n\r\n if (!maxWidth) return { collapsed, itemWidthCallback: NOOP };\r\n return { collapsed, itemWidthCallback: data.itemWidthCallback };\r\n}\r\n\r\n/**\r\n * Le breadcrumb tengono traccia del flusso di navigazione dell'utente a partire dalla prima schermata aperta.\r\n *\r\n * Le voci della breadcrumb sono cliccabili.\r\n *\r\n * Ogni step delle breadcrumbs deve contenere una label molto predittiva.\r\n *\r\n * Quando le breadcrumbs superano lo spazio previsto nella toolbar tutte le fasi intermedie\r\n * tra il punto di partenza e quello di arrivo vengono sostituite con il simbolo dei tre puntini.\r\n */\r\nconst Breadcrumbs = ({\r\n blockClassName, className, breadcrumbs, onSelect, maxWidth,\r\n}) => {\r\n const classes = cns(blockClassName, className);\r\n const { collapsed, itemWidthCallback } = useCollapsing(maxWidth, breadcrumbs);\r\n\r\n if (collapsed && breadcrumbs.length === 2) {\r\n return (\r\n
      \r\n \r\n \r\n
    \r\n );\r\n }\r\n if (collapsed && breadcrumbs.length >= 2) {\r\n return (\r\n
      \r\n \r\n \r\n \r\n
    \r\n );\r\n }\r\n return (\r\n
      \r\n {breadcrumbs.map((breadcrumb, index, arr) => {\r\n const lastItem = index >= arr.length - 1;\r\n return (\r\n \r\n );\r\n })}\r\n
    \r\n );\r\n};\r\n\r\nBreadcrumbs.propTypes = {\r\n /** Classi css relative al Block (vedi BEM). Ad uso INTERNO. */\r\n blockClassName: PropTypes.string,\r\n\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n\r\n /**\r\nCallback attivata alla selezione di un breadcrumb.\r\nIl primo parametro è la breadcrumb.\r\n */\r\n onSelect: PropTypes.func,\r\n\r\n /**\r\nLista delle breadcrumbs. Può essere una lista di stringhe o di oggetti con almento le proprietà id e label.\r\n */\r\n breadcrumbs: PropTypes.arrayOf(\r\n PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.shape({\r\n id: PropTypes.string,\r\n label: PropTypes.string,\r\n }),\r\n ]),\r\n ).isRequired,\r\n\r\n /**\r\n * Dimensione massima prima di collassare gli elementi compresi tra il primo e l'ultimo (se non definito non collassa).\r\n */\r\n maxWidth: PropTypes.number,\r\n};\r\n\r\nBreadcrumbs.defaultProps = {\r\n onSelect: NOOP,\r\n blockClassName: 'v2-breadcrumbs',\r\n className: undefined,\r\n maxWidth: undefined,\r\n};\r\n\r\nexport default Breadcrumbs;\r\n","/**\r\n * Ritorna la dimensione del componente.\r\n * @param {DOMElement} element elemento del dom\r\n * @returns {object} oggetto con width, height\r\n */\r\nexport function getElementSize(element = {}) {\r\n return { width: element.clientWidth, height: element.clientHeight };\r\n}\r\n\r\n/**\r\n * Ritorna informazioni sulla dimensione della viewport.\r\n * @param {DOMElement} element elemento del dom\r\n */\r\nexport function getViewportSize() {\r\n return { width: window.innerWidth, height: window.innerHeight };\r\n}\r\n\r\n/**\r\n * Ritorna informazioni sulla dimensione e posizionamento del componente.\r\n * @param {DOMElement} element elemento del dom\r\n * @returns {DOMRect}\r\n */\r\nexport function getRect(element) {\r\n if (element && element.getBoundingClientRect) return element.getBoundingClientRect();\r\n return {};\r\n}\r\n","import React from 'react';\r\nimport Icon from './Icon';\r\n\r\nexport default Icon(\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ,\r\n '0 0 20 20',\r\n 'ToolbarBackIcon',\r\n);\r\n","import React, { useCallback } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport Button from '../Button/Button';\r\nimport Breadcrumbs from '../Breadcrumbs/Breadcrumbs';\r\nimport ToolbarBackIcon from '../../Icons/ToolbarBackIcon';\r\nimport useViewport, { LOW } from '../Hooks/useViewport';\r\nimport { NOOP } from '../../../utils/const';\r\n\r\nconst cssBlock = 'v2-toolbar';\r\n\r\n/**\r\n * Banda \"Breadcumbs\" con component Breadcrumbs e bottone di back.\r\n */\r\nconst BreadcrumbsBand = ({ onBack, onSelect, breadcrumbs }) => {\r\n const { resolution } = useViewport();\r\n\r\n const handleBack = useCallback((evt) => {\r\n // primo parametro è la penultima breadcrumbs\r\n onBack(breadcrumbs.length > 1 ? breadcrumbs[breadcrumbs.length - 2] : undefined, evt);\r\n }, [breadcrumbs, onBack]);\r\n\r\n // dalla risoluzine \"tolgo\" la lunghezza del component Back Button.\r\n const maxBreadcrumbsCompWidth = (resolution === LOW ? 732 : 954) - 20 - 12 - 16;\r\n\r\n return (\r\n
    \r\n {onBack !== NOOP && (\r\n \r\n )}\r\n \r\n
    \r\n );\r\n};\r\n\r\nBreadcrumbsBand.propTypes = {\r\n onBack: PropTypes.func.isRequired,\r\n\r\n onSelect: PropTypes.func.isRequired,\r\n\r\n breadcrumbs: PropTypes.arrayOf(\r\n PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.shape({\r\n id: PropTypes.string,\r\n labe: PropTypes.string,\r\n }),\r\n ]),\r\n ).isRequired,\r\n};\r\n\r\nexport default BreadcrumbsBand;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\nimport { sameType } from '../../../utils/react';\r\n\r\n/**\r\n * Da una lista di nodi separa quelli di tipo DropdownList.\r\n * @param {PropTypes.node | PropTypes.node[] | undefined } children\r\n * @returns {PropTypes.node[]} il primo elemento è il nodo DropdownList, il secondo la lista di tutti gli altri nodi.\r\n */\r\nfunction extractDropDownList(children) {\r\n let dropDownItems;\r\n const others = [];\r\n React.Children.forEach(children, (child) => {\r\n if (sameType(child, DropdownList)) {\r\n dropDownItems = child;\r\n } else {\r\n others.push(child);\r\n }\r\n });\r\n return [dropDownItems, others];\r\n}\r\n\r\n/**\r\nLista di elementi visualizzati in dropdown.\r\n */\r\nconst DropdownList = ({ className, blockClassName, children }) => (\r\n children && (\r\n \r\n {children}\r\n \r\n )\r\n);\r\n\r\nDropdownList.extractDropDownList = extractDropDownList;\r\n\r\nDropdownList.propTypes = {\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n\r\n /** Classi css relative al Block (vedi BEM). Ad uso INTERNO. */\r\n blockClassName: PropTypes.string,\r\n\r\n /** Children del componente */\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node,\r\n ]),\r\n};\r\n\r\nDropdownList.defaultProps = {\r\n children: undefined,\r\n blockClassName: 'v2-dropdown-list',\r\n className: undefined,\r\n};\r\n\r\nexport default DropdownList;\r\n","/* eslint-disable max-len */\r\nimport React from 'react';\r\nimport Icon from '../../Icons/Icon';\r\n\r\nexport default Icon(\r\n \r\n \r\n \r\n ,\r\n '0 0 24 24',\r\n 'NavigateNextIcon',\r\n);\r\n","/* eslint-disable max-len */\r\nimport React from 'react';\r\nimport Icon from '../../Icons/Icon';\r\n\r\nexport default Icon(\r\n \r\n \r\n \r\n ,\r\n '0 0 24 24',\r\n 'NavigateBeforeIcon',\r\n);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\nimport NavigateNextIcon from '../../GoogleIcons/Outlined/NavigateNextIcon';\r\nimport NavigateBeforeIcon from '../../GoogleIcons/Outlined/NavigateBeforeIcon';\r\n\r\nconst cssBlock = 'v2-dropdown-button__menu';\r\n\r\n/**\r\n * Contenitore che mostra un menù nella lista del Dropdown button.\r\n*/\r\nconst DropdownMenu = ({\r\n children, left, className, label,\r\n}) => {\r\n const overlayClasses = cns(\r\n `${cssBlock}__overlay`,\r\n {\r\n [`${cssBlock}__overlay--left`]: left,\r\n },\r\n className,\r\n );\r\n\r\n return (\r\n
    \r\n
    \r\n {label}\r\n {left ? : }\r\n
    \r\n
    \r\n
    \r\n {children}\r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nDropdownMenu.propTypes = {\r\n\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n\r\n /** Contenuto da renderizzare all'interno del componente */\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node,\r\n ]).isRequired,\r\n\r\n /** Mosta il menù a sinistra */\r\n left: PropTypes.bool,\r\n\r\n /** Classi css personalizzate da aggiungere al componente */\r\n label: PropTypes.string.isRequired,\r\n};\r\n\r\nDropdownMenu.defaultProps = {\r\n left: false,\r\n className: undefined,\r\n};\r\n\r\nexport default DropdownMenu;\r\n","import React, { useMemo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\nimport DropdownList from '../DropdownList/DropdownList';\r\nimport useMenuOpenState from '../Hooks/useMenuOpenState';\r\nimport Button from '../Button/Button';\r\nimport UpIcon from '../../Icons/UpIcon';\r\nimport DownIcon from '../../Icons/DownIcon';\r\nimport { NOOP } from '../../../utils/const';\r\nimport DropdownMenu from './DropdownMenu';\r\n\r\nconst cssBlock = 'v2-dropdown-button';\r\n\r\n/**\r\nBottoni utilizzati per raggruppare azioni molto simili tra di loro.\r\nL'etichetta deve riassumere la categoria a cui tutte le azioni della dropdown appartengono.\r\n\r\nVedi [Design System di CGN - Pulsanti](https://zeroheight.com/1b5e94371/p/261be1-pulsanti/b/32e1a2)\r\n\r\nPer specificare la lista delle azioni da visualizzare nel menù\r\naggiungere come child di `DropdownButton` il componente `DropdownButton.DropdownList`.\r\nTipicamente i children di `DropdownButton.DropdownList` sono componenti `Button`.\r\n\r\n_ATTENZIONE: Se non esiste al primo livello un child di tipo `DropdownButton.DropdownList` non sarà possibile identificare i componenti da inserire nel menù._\r\n\r\nGli altri children di `DropdownButton` sono tipicamente una `Icon` e un testo.\r\n */\r\nconst DropdownButton = (props) => {\r\n const {\r\n disabled, primary, small, vertical, left, showOpenClose,\r\n children, className, emphasis,\r\n onOpen: onDropdownOpen, onClose: onDropdownClose,\r\n } = props;\r\n\r\n const { open, onOpen } = useMenuOpenState({ onOpen: onDropdownOpen, onClose: onDropdownClose });\r\n\r\n const [dropDownItems, firstChild, lastChild] = useMemo(\r\n () => {\r\n const [ddi, buttonChildren] = DropdownList.extractDropDownList(children);\r\n if (vertical && buttonChildren && buttonChildren.length > 0) {\r\n const lastChildrenComp = buttonChildren.pop();\r\n return [ddi, buttonChildren, lastChildrenComp];\r\n }\r\n return [ddi, buttonChildren, undefined];\r\n },\r\n [children, vertical],\r\n );\r\n\r\n const classes = cns(\r\n cssBlock,\r\n {\r\n [`${cssBlock}--disabled`]: disabled,\r\n [`${cssBlock}--small`]: small,\r\n [`${cssBlock}--left`]: left,\r\n },\r\n className,\r\n );\r\n\r\n // in modalità vertical, open/close button è affiancato all'ultimo child.\r\n return (\r\n
    \r\n \r\n {firstChild}\r\n
    \r\n {lastChild}\r\n {showOpenClose && (\r\n
    \r\n {open ? : }\r\n
    \r\n )}\r\n
    \r\n \r\n {open && dropDownItems}\r\n
    \r\n );\r\n};\r\n\r\nDropdownButton.propTypes = {\r\n /**\r\nSe true, il bottone non genera alcun evento.\r\n */\r\n disabled: PropTypes.bool,\r\n\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n\r\n /** Definisce l'azione principale */\r\n primary: PropTypes.bool,\r\n\r\n /**\r\nSe true, il bottone viene mostrato in formato ridotto.\r\n */\r\n small: PropTypes.bool,\r\n\r\n /**\r\nSe true, mostra l'icona che mostra se il dropdown è aperto/chiuso.\r\n */\r\n showOpenClose: PropTypes.bool,\r\n\r\n /** Presenta i `children` in verticale. */\r\n vertical: PropTypes.bool,\r\n\r\n /** Mostra gli elementi del drop down list verso sinistra. */\r\n left: PropTypes.bool,\r\n\r\n /** Children del componente. I children di tipo `DropdownButton.DropdownList` faranno parte del menù di drop down */\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node,\r\n ]),\r\n\r\n /** Callback chiamata all'apertura del Dropdown */\r\n onOpen: PropTypes.func,\r\n\r\n /** Callback chiamata alla chiusura del Dropdown */\r\n onClose: PropTypes.func,\r\n\r\n /** Enfasi del bottone */\r\n emphasis: PropTypes.oneOf([Button.Emphasis.LOW, Button.Emphasis.MEDIUM, Button.Emphasis.HIGH]),\r\n};\r\n\r\nDropdownButton.defaultProps = {\r\n disabled: false,\r\n primary: false,\r\n small: false,\r\n vertical: false,\r\n left: false,\r\n showOpenClose: true,\r\n children: undefined,\r\n className: undefined,\r\n onOpen: NOOP,\r\n onClose: NOOP,\r\n emphasis: Button.Emphasis.LOW,\r\n};\r\n\r\nDropdownButton.DropdownList = DropdownList;\r\nDropdownButton.Menu = DropdownMenu;\r\n\r\nexport default DropdownButton;\r\n","import { useState, useEffect, useCallback } from 'react';\r\n\r\n/**\r\n * Gestisce lo stato di aperto/chiuso di un menù.\r\n * Se l'utente fa un click il menù si chiude.\r\n * @param {func} onOpen callback chiamata all'apertura del menù.\r\n * @param {func} onClose callback chiamata alla chiusura del menù.\r\n * @param {object} doc web page document (solo ad uso TEST).\r\n * @returns {{open, onOpen, onClose}} oggetto con stato aperto/chiuso e funzioni per cambiarlo.\r\n */\r\nfunction useMenuOpenState({ onOpen: onOpenCB, onClose: onCloseCB } = {}, doc = document) {\r\n const [open, setOpen] = useState(false);\r\n\r\n const onOpen = useCallback(() => {\r\n setOpen(true);\r\n onOpenCB && onOpenCB();\r\n }, [onOpenCB]);\r\n const onClose = useCallback(() => {\r\n setOpen(false);\r\n onCloseCB && onCloseCB();\r\n }, [onCloseCB]);\r\n\r\n useEffect(() => {\r\n if (!open) return undefined;\r\n doc.addEventListener('click', onClose);\r\n return () => {\r\n doc.removeEventListener('click', onClose);\r\n };\r\n }, [doc, open, onClose]);\r\n\r\n return { open, onOpen, onClose };\r\n}\r\n\r\nexport default useMenuOpenState;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\nimport { NOOP } from '../../../utils/const';\r\nimport BreadcrumbsBand from './BreadcrumbsBand';\r\nimport Button from '../Button/Button';\r\nimport Divider from './Divider';\r\nimport DropdownButton from '../DropdownButton/DropdownButton';\r\nimport useViewport, { LOW, MAIN } from '../Hooks/useViewport';\r\n\r\nconst cssBlock = 'v2-toolbar';\r\n\r\nfunction useToolbarButton(props) {\r\n const { small, vertical, ...others } = props;\r\n const { resolution } = useViewport();\r\n const smallByRes = resolution === LOW;\r\n const verticalByRes = resolution === LOW;\r\n\r\n return {\r\n small: smallByRes, vertical: verticalByRes, emphasis: Button.Emphasis.LOW, ...others,\r\n };\r\n}\r\n\r\n/**\r\n * Bottone Dropdown da utilizzare nella sezione tool del componente `Toolbar`.\r\n * Le proprietà sono quelle di un `DropdownButton`.\r\n */\r\nexport const ToolbarDropdownButton = (props) => {\r\n const {\r\n small, vertical, emphasis, ...others\r\n } = useToolbarButton(props);\r\n return ;\r\n};\r\n\r\nToolbarDropdownButton.propTypes = {\r\n ...DropdownButton.propTypes,\r\n};\r\n\r\nToolbarDropdownButton.defaultProps = {\r\n ...DropdownButton.defaultProps,\r\n};\r\n\r\n/**\r\n * Bottone da utilizzare nella sezione tool del componente `Toolbar`.\r\n * Le proprietà sono quelle di un `Button`.\r\n */\r\nexport const ToolbarButton = (props) => {\r\n const {\r\n small, vertical, emphasis, ...others\r\n } = useToolbarButton(props);\r\n return }\r\n
    \r\n);\r\n\r\nPanel.propTypes = {\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n /** Titolo */\r\n title: PropTypes.string,\r\n /** Messaggio da visualizzare */\r\n message: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\r\n /** Indica la tipologia del tooltip */\r\n type: PropTypes.oneOf(['info', 'alarm', 'warning', 'success']),\r\n /** Callback di chiusura del componente */\r\n onClose: PropTypes.func,\r\n /** Visualizza il pannello in formato \"Piccolo\" */\r\n small: PropTypes.bool,\r\n};\r\n\r\nPanel.defaultProps = {\r\n title: undefined,\r\n className: undefined,\r\n type: 'info',\r\n onClose: undefined,\r\n small: false,\r\n message: undefined,\r\n};\r\n\r\nexport default Panel;\r\n","import React, { useMemo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Panel } from 'framework-ui-components/Components/V2';\r\nimport { TIPO_SEGNALAZIONE } from 'framework-taskforce/models/segnalazioni';\r\n\r\nconst SegnalazioniViewer = ({\r\n segnalazioni, className,\r\n}) => {\r\n const [\r\n segnalazionErr,\r\n segnalazioniWarn,\r\n segnalazioniInfo] = useMemo(() => segnalazioni.reduce((res, el) => {\r\n // eslint-disable-next-line no-nested-ternary\r\n res[el.type === TIPO_SEGNALAZIONE.Errore\r\n ? 0 : el.type === TIPO_SEGNALAZIONE.Avviso\r\n ? 1 : 2].push(el);\r\n return res;\r\n }, [[], [], []]), [segnalazioni]);\r\n return (\r\n
    \r\n {(segnalazionErr.length > 0) && (\r\n \r\n {segnalazionErr.map((errore, idx) => (\r\n {errore.msg}\r\n
    \r\n ))}\r\n
    \r\n )}\r\n />\r\n ) }\r\n {(segnalazioniWarn.length > 0) && (\r\n \r\n {segnalazioniWarn.map((warning, idx) => (\r\n {warning.msg}\r\n
    \r\n ))}\r\n
    \r\n )}\r\n />\r\n ) }\r\n {(segnalazioniInfo.length > 0) && (\r\n \r\n {segnalazioniInfo.map((info, idx) => (\r\n {info.msg}\r\n
    \r\n ))}\r\n \r\n )}\r\n />\r\n ) }\r\n \r\n );\r\n};\r\n\r\nSegnalazioniViewer.defaultProps = {\r\n segnalazioni: [],\r\n className: null,\r\n};\r\n\r\nSegnalazioniViewer.propTypes = {\r\n segnalazioni: PropTypes.arrayOf(\r\n PropTypes.shape({\r\n type: PropTypes.number.isRequired,\r\n msg: PropTypes.string.isRequired,\r\n }),\r\n ),\r\n className: PropTypes.string,\r\n};\r\n\r\nexport default SegnalazioniViewer;\r\n","/* eslint-disable no-nested-ternary */\r\nimport React, {\r\n useState, useEffect, useCallback, useRef, useMemo,\r\n} from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n EllipsisText, Form, Input, Restriction, Select, Validation,\r\n} from 'framework-ui-components';\r\nimport {\r\n Modal, Button, FeedbackPanel,\r\n} from 'framework-ui-components/Components/V2';\r\nimport { useSelector } from 'react-redux';\r\nimport { useHistory } from 'react-router';\r\nimport Log, { logApiError } from 'framework-taskforce/utils/log';\r\nimport { isEmptyObject } from 'framework-taskforce/utils/object';\r\nimport { getSegnalazioneError } from 'framework-taskforce/models/segnalazioni';\r\nimport { postModificaImportoUtilizzoCredito, postModificaImportoUtilizzoDebito } from '../../apis/deleghe';\r\nimport TemplateGrid from '../../components/TemplateGrid/TemplateGrid';\r\nimport SegnalazioniViewer from '../../components/custom/SegnalazioniViewer';\r\n\r\nconst ModaleModificaUtilizzoTributo = ({\r\n onClose,\r\n tributoDaModificare,\r\n show,\r\n idContribuente,\r\n idDelega,\r\n}) => {\r\n const studioSelezionato = useSelector((store) => store.appParams.studioSelezionato);\r\n\r\n const history = useHistory();\r\n\r\n const [loading, setLoading] = useState(false);\r\n const [isFormValid, setIsFormValid] = useState(false);\r\n const [esito, setEsito] = useState(null);\r\n const [formData, setFormData] = useState({ });\r\n const [segnalazioni, setSegnalazioni] = useState([]);\r\n\r\n const formRef = useRef();\r\n\r\n const presetForm = useCallback(({ FormErrors, ...datoModificato }) => {\r\n if (!formData || isEmptyObject(datoModificato)) return;\r\n const newStato = { ...formData, ...datoModificato };\r\n setFormData(newStato);\r\n }, [formData]);\r\n\r\n const resetDati = useCallback(() => {\r\n setLoading(false);\r\n setIsFormValid(false);\r\n setSegnalazioni([]);\r\n setEsito(null);\r\n setFormData({});\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (show) {\r\n resetDati();\r\n }\r\n }, [resetDati, show]);\r\n\r\n useEffect(() => {\r\n if (show && isEmptyObject(formData)) {\r\n presetForm({ Importo: tributoDaModificare.importo });\r\n }\r\n });\r\n\r\n useEffect(() => {\r\n if (!show) {\r\n // reset data on close\r\n resetDati();\r\n }\r\n }, [resetDati, setFormData, show]);\r\n\r\n const modificaImporto = useCallback(() => {\r\n const oggettoModifica = {\r\n IdContribuente: idContribuente,\r\n IdDelega: idDelega,\r\n ...formData,\r\n };\r\n\r\n setLoading(true);\r\n\r\n if (tributoDaModificare.isDebito) {\r\n oggettoModifica.IdDebito = tributoDaModificare.idTributo;\r\n } else {\r\n oggettoModifica.IdCredito = tributoDaModificare.idTributo;\r\n }\r\n\r\n (tributoDaModificare.isDebito\r\n ? postModificaImportoUtilizzoDebito\r\n : postModificaImportoUtilizzoCredito)(oggettoModifica)\r\n .then((res) => {\r\n if (res.Success) {\r\n onClose(true, tributoDaModificare.sezione);\r\n } else {\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n }, [formData, idContribuente, idDelega, onClose, tributoDaModificare.idTributo, tributoDaModificare.isDebito, tributoDaModificare.sezione]);\r\n\r\n return (\r\n onClose(esito, tributoDaModificare.sezione)}\r\n className=\"contribuenti--modale-creazione\"\r\n initialPos={{ x: 'auto', y: window.innerHeight * 0.1 }}\r\n >\r\n \r\n
    \r\n {tributoDaModificare.descrizione}\r\n
    \r\n
    \r\n \r\n setIsFormValid(validity)}\r\n >\r\n {!loading && segnalazioni.length > 0\r\n ? (\r\n \r\n
      \r\n {segnalazioni.map((segnalazione, idx) => (\r\n {segnalazione.msg}\r\n \r\n ))}\r\n
    \r\n \r\n )}\r\n type=\"alarm\"\r\n />\r\n )\r\n : (\r\n \r\n {segnalazioni && segnalazioni.length > 0 && (\r\n \r\n )}\r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n )}\r\n \r\n
    \r\n \r\n {segnalazioni.length === 0 ? (\r\n modificaImporto()}\r\n emphasis={Button.Emphasis.HIGH}\r\n primary\r\n disabled={!isFormValid}\r\n runing={loading}\r\n >\r\n MODIFICA IMPORTO\r\n \r\n ) : (\r\n { setSegnalazioni([]); presetForm({ Importo: tributoDaModificare.importo }); }}\r\n emphasis={Button.Emphasis.HIGH}\r\n primary\r\n disabled={!isFormValid}\r\n running={loading}\r\n >\r\n RIPROVA\r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nModaleModificaUtilizzoTributo.defaultProps = {\r\n tributoDaModificare: {},\r\n idContribuente: null,\r\n};\r\n\r\nModaleModificaUtilizzoTributo.propTypes = {\r\n onClose: PropTypes.func.isRequired,\r\n show: PropTypes.bool.isRequired,\r\n tributoDaModificare: PropTypes.shape({\r\n idTributo: PropTypes.number,\r\n descrizione: PropTypes.string,\r\n isDebito: PropTypes.bool,\r\n importo: PropTypes.number,\r\n sezione: PropTypes.string,\r\n }),\r\n idContribuente: PropTypes.number,\r\n idDelega: PropTypes.number.isRequired,\r\n};\r\n\r\nexport default ModaleModificaUtilizzoTributo;\r\n","import React from 'react';\r\nimport { Badge } from 'framework-ui-components';\r\nimport Tooltip from 'framework-ui-components/Components/Tooltip/Tooltip';\r\n\r\nconst STATO_DELEGA = {\r\n APERTA: 1,\r\n COMPLETA: 2,\r\n IN_PRESENTAZIONE: 3,\r\n PAGATA: 4,\r\n DA_CONSEGNARE: 31,\r\n CONSEGNATA: 32,\r\n\r\n toString(val) {\r\n switch (val) {\r\n case this.APERTA: return 'In lavorazione';\r\n case this.COMPLETA: return 'Completa';\r\n case this.IN_PRESENTAZIONE: return 'In presentazione';\r\n case this.PAGATA: return 'Pagata';\r\n case this.DA_CONSEGNARE: return 'Da consegnare';\r\n case this.CONSEGNATA: return 'Consegnata';\r\n default: return '';\r\n }\r\n },\r\n};\r\n\r\nconst MODALITA_PRESENTAZIONE = {\r\n CARTACEA: 1,\r\n FILE_TELEMATICO_CONTRIBUENTE: 2,\r\n FILE_TELEMATICO_INTERMEDIARIO: 3,\r\n INVIO_TELEMATICO_INTERMEDIARIO_ADELE: 4,\r\n INVIO_TELEMATICO_INTERMEDIARIO_CBI: 5,\r\n PAGO_F24: 6,\r\n CGN_POS: 7,\r\n\r\n toString(val) {\r\n switch (val) {\r\n case this.CARTACEA: return 'Cartacea';\r\n case this.FILE_TELEMATICO_CONTRIBUENTE: return 'File Telematico Contribuente';\r\n case this.FILE_TELEMATICO_INTERMEDIARIO: return 'File Telematico Intermediario';\r\n case this.INVIO_TELEMATICO_INTERMEDIARIO_ADELE: return 'Invio Telematico CGN';\r\n case this.INVIO_TELEMATICO_INTERMEDIARIO_CBI: return 'F24 CBI';\r\n case this.PAGO_F24: return 'pagoF24';\r\n case this.CGN_POS: return 'CGN POS';\r\n default: return '';\r\n }\r\n },\r\n};\r\n\r\nconst MODALITA_VERSAMENTO_PAGOF24 = {\r\n AddebitoCC: 1,\r\n CartaCredito: 2,\r\n POS: 4,\r\n\r\n toString(val) {\r\n switch (val) {\r\n case this.AddebitoCC: return 'Addebito CC';\r\n case this.CartaCredito: return 'Carta di credito';\r\n case this.POS: return 'CGN POS';\r\n default: return '';\r\n }\r\n },\r\n};\r\n\r\nconst TIPO_DELEGA = {\r\n ORDINARIO: 1,\r\n ACCISE: 2,\r\n ELIDE: 3,\r\n\r\n toString(val) {\r\n switch (val) {\r\n case this.ORDINARIO: return 'Ordinario';\r\n case this.ACCISE: return 'Accise';\r\n case this.ELIDE: return 'Elide';\r\n default: return '';\r\n }\r\n },\r\n};\r\n\r\nconst SOGGETTO_VERSANTE = {\r\n CONTRIBUENTE: 1,\r\n COOBBLIGATO: 2,\r\n INTERMADIARIO: 3,\r\n\r\n toString(val) {\r\n switch (val) {\r\n case this.CONTRIBUENTE: return 'Contribuente';\r\n case this.COOBBLIGATO: return 'Coobbligato';\r\n case this.INTERMADIARIO: return 'Intermediario';\r\n default: return 'Contribuente';\r\n }\r\n },\r\n};\r\n\r\nconst STATO_INVIO_TELEMATICO = {\r\n DELEGA_NON_INVIATA: 4,\r\n ADEMPIMENTO_INVIATO_ADE: 5,\r\n ADEMPIMENTO_ELABORATO_ADE: 6,\r\n ADEMPIMENTO_SCARTATO_ADE: 7,\r\n ADEMPIMENTO_NON_CREATO: 8,\r\n ADEMPIMENTO_SOSPESO_ADE: 9,\r\n ADEMPIMENTO_NON_INVIATO_ADE: 10,\r\n ADEMPIMENTO_ANNULLATO_ADE: 12,\r\n};\r\n\r\nconst STATO_INVIO_CBI = {\r\n DELEGA_INVIATA_CBI: 0,\r\n DELEGA_IN_ATTESA_DI_PAGAMENTO: 1,\r\n DELEGA_PAGATA: 2,\r\n DELEGA_ERRATA: 3,\r\n DELEGA_NON_PAGATA: 4,\r\n DELEGA_IN_CARICO_BANCA: 5,\r\n};\r\n\r\nconst STATO_INVIO_PAGOF24 = {\r\n SESSIONE_VERSAMENTO_CREATA: 1,\r\n VERSAMENTO_TRAMITE_CBI_AVVIATO: 2, // Quindi completata la parte di pagoF24 procede con gli stati di cbi\r\n\r\n TRANSAZIONE_EFFETTUATA: 5,\r\n ELABORAZIONE_PAGAMENTO: 15,\r\n\r\n ERRORE: 90,\r\n NON_PAGATA: 99,\r\n PAGATA: 100,\r\n\r\n toStringLong(val, modalitaVersamento) {\r\n switch (val) {\r\n case this.SESSIONE_VERSAMENTO_CREATA: return modalitaVersamento === MODALITA_VERSAMENTO_PAGOF24.POS ? 'Prosegui sul CGN POS' : 'Mail Inviata';\r\n case this.ERRORE: return 'Errore';\r\n case this.ELABORAZIONE_PAGAMENTO: return 'Pagamento in elaborazione';\r\n case this.TRANSAZIONE_EFFETTUATA: return 'Transazione effettuata correttamente, stiamo avviando la procedura di pagamento';\r\n case this.NON_PAGATA: return 'Non pagata';\r\n case this.PAGATA: return 'Pagata';\r\n default: return '';\r\n }\r\n },\r\n\r\n toStringShort(val, modalitaVersamento) {\r\n switch (val) {\r\n case this.SESSIONE_VERSAMENTO_CREATA: return modalitaVersamento === MODALITA_VERSAMENTO_PAGOF24.POS ? 'Prosegui sul CGN POS' : 'Mail Inviata';\r\n case this.ERRORE: return 'Errore';\r\n case this.ELABORAZIONE_PAGAMENTO: return 'In elabor.';\r\n case this.TRANSAZIONE_EFFETTUATA: return 'Transazione OK';\r\n case this.NON_PAGATA: return 'Non pagata';\r\n case this.PAGATA: return 'Pagata';\r\n default: return '';\r\n }\r\n },\r\n\r\n createBadge(statoPagoF24, modalitaVersamento, infoAggiuntive, className = 'ml-8') {\r\n const tooltip = (modalitaVersamento ? (`${MODALITA_VERSAMENTO_PAGOF24.toString(modalitaVersamento)} - `) : '')\r\n + (infoAggiuntive || this.toStringLong(statoPagoF24, modalitaVersamento));\r\n return (\r\n \r\n \r\n {this.toStringShort(statoPagoF24, modalitaVersamento)}\r\n \r\n \r\n );\r\n\r\n // switch (val) {\r\n // case this.SESSIONE_VERSAMENTO_CREATA: return modalitaVersamento === MODALITA_VERSAMENTO_PAGOF24.POS ? 'Prosegui sul CGN POS' : 'Mail Inviata';\r\n // case this.ERRORE: return 'Errore';\r\n // case this.ELABORAZIONE_PAGAMENTO: return 'In elabor.';\r\n // case this.TRANSAZIONE_EFFETTUATA: return 'Transazione OK';\r\n // case this.NON_PAGATA: return 'Non pagata';\r\n // case this.PAGATA: return 'Pagata';\r\n // default: return '';\r\n // }\r\n },\r\n};\r\n\r\nconst STEP_SCELTA_TELEMATICO = {\r\n SELEZIONE_PRESENTAZIONE: 1,\r\n SCELTA_TELEMATICA_CONTRIBUENTE: 2,\r\n SCELTA_TELEMATICA_INTERMEDIARIO: 3,\r\n VIA_CARTACEA_DIRETTA: 4,\r\n VIA_TELEMATICA_INTERMEDIARIO: 5,\r\n VIA_TELEMATICA_INVIO_TELEMATICO: 6,\r\n VIA_TELEMATICA_CONTRIBUENTE: 7,\r\n VIA_TELEMATICA_CBI_CONTRIBUENTE: 8,\r\n VIA_PAGOF24_DIRETTA: 9,\r\n VIA_PAGOF24_POS: 10,\r\n};\r\n\r\nconst MODALITA_PRESENTAZIONE2 = {\r\n PAGAMENTO_DIGITALE: 1,\r\n FILE_TELEMATICO: 2,\r\n STAMPA: 3,\r\n FILE_TELEMATICO_CONTRIBUENTE: 4,\r\n FILE_TELEMATICO_INTERMEDIARIO: 5,\r\n INVIO_TELEMATICO: 6,\r\n INVIO_CBI: 7,\r\n PAGO_F24: 8,\r\n CGN_POS: 9,\r\n};\r\n\r\nexport {\r\n STATO_DELEGA,\r\n TIPO_DELEGA,\r\n SOGGETTO_VERSANTE,\r\n STEP_SCELTA_TELEMATICO,\r\n MODALITA_PRESENTAZIONE,\r\n STATO_INVIO_TELEMATICO,\r\n STATO_INVIO_CBI,\r\n STATO_INVIO_PAGOF24,\r\n MODALITA_VERSAMENTO_PAGOF24,\r\n MODALITA_PRESENTAZIONE2,\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\n\r\nconst highlight = (value, text) => {\r\n if (!value) {\r\n return text;\r\n }\r\n\r\n const parsedValue = value.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\r\n const regex = new RegExp(`(${parsedValue})`, 'i');\r\n if (text) {\r\n return text.replace(regex, \"$1\");\r\n }\r\n return '';\r\n};\r\n\r\n/**\r\nIl componente Highlighter ha lo scopo di evidenziare una parola all'interno di un testo passato ed\r\nè generalmente usato per evidenziare le occorrenze di una parola cercata in modo da aiutare l'utente a\r\nidentificarne le occorrenze in un testo lungo.\r\n */\r\nconst Highlighter = ({ value: valueP, text: textP, className }) => {\r\n const classes = cns(\r\n 'highlighter__text',\r\n className,\r\n );\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nHighlighter.propTypes = {\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n /** Il testo in cui ricercare il valore da evidenziare */\r\n text: PropTypes.string,\r\n /** Il valore da evidenziare */\r\n value: PropTypes.string,\r\n};\r\n\r\nHighlighter.defaultProps = {\r\n className: '',\r\n value: null,\r\n text: '',\r\n};\r\n\r\nexport default Highlighter;\r\n","import Highlighter from './Highlighter';\r\n\r\nexport default Highlighter;\r\n","import React from 'react';\r\nimport Icon from './Icon';\r\n\r\nexport default Icon(, '0 0 15 16', 'SearchIcon');\r\n","const focussableElements = 'a:not([disabled]), button:not([disabled]), input:not([disabled]), [tabindex]:not([disabled]):not([tabindex=\"-1\"])';\r\n\r\nconst focusNextElement = (fromElement) => {\r\n if (document.activeElement) {\r\n const focussable = Array.prototype.filter.call(document.querySelectorAll(focussableElements),\r\n (element) => element.offsetWidth > 0 || element.offsetHeight > 0 || element === document.activeElement);\r\n\r\n const index = focussable.indexOf(document.activeElement);\r\n setTimeout(() => {\r\n const nextElement = focussable[index + 1];\r\n document.activeElement === fromElement && nextElement && nextElement.focus();\r\n }, 0);\r\n }\r\n};\r\n\r\n// eslint-disable-next-line import/no-anonymous-default-export\r\nexport default {\r\n focusNextElement,\r\n};\r\n","/* eslint-disable class-methods-use-this */\r\nimport WebRequest from '../WebRequest';\r\nimport debounce from '../Utils/debouncer';\r\n\r\nlet uuid = 0;\r\nfunction nextUUID() {\r\n uuid += 1;\r\n return uuid;\r\n}\r\n\r\n/**\r\n * Load the seach list.\r\n * If a search/cancel request is done (A) when a previous request is running (B),\r\n * the result of (B) is discarded.\r\n */\r\nexport default class SearchListProvider {\r\n /**\r\n * The subscriber is a object with this shape:\r\n * cancel: callback called when cancel is invoke.\r\n * searchStarted: callback called when search started.\r\n * searchCompleted: callback called when search finished.\r\n * loaded: callback called with response data.\r\n * errorCatched: callback called with response error.\r\n */\r\n constructor(subscriber) {\r\n this.subscriber = subscriber;\r\n }\r\n\r\n /**\r\n * Start a new search.\r\n */\r\n searchDebounced = debounce((searchProps, searchTerm, closeList, requestId) => {\r\n if (requestId !== this.lastRequestId) return;\r\n this.searchImpl(searchProps, searchTerm, closeList, requestId);\r\n }, 300, false);\r\n\r\n /**\r\n * Start a new search.\r\n */\r\n search(searchProps, searchTerm, closeList) {\r\n this.lastRequestId = nextUUID();\r\n this.searchDebounced(searchProps, searchTerm, closeList, this.lastRequestId);\r\n }\r\n\r\n /**\r\n * Start a new search NOW.\r\n * It doesn't use debounce!\r\n */\r\n searchNow(searchProps, searchTerm, closeList) {\r\n this.lastRequestId = nextUUID();\r\n return this.searchImpl(searchProps, searchTerm, closeList, this.lastRequestId);\r\n }\r\n\r\n /**\r\n * Cancel the last search (if it exists).\r\n */\r\n cancel() {\r\n this.lastRequestId = nextUUID();\r\n this.subscriber && this.subscriber.cancel();\r\n }\r\n\r\n webGet(url, params) {\r\n return WebRequest.get(url, params);\r\n }\r\n\r\n /**\r\n * Server GET\r\n * @private\r\n */\r\n get(searchProps, params) {\r\n const { url, dataSource, renderProperty } = searchProps;\r\n if (url) return this.webGet(url, params);\r\n if (dataSource && typeof dataSource === 'function') return dataSource({ ...params, renderProperty });\r\n if (dataSource && Array.isArray(dataSource)) {\r\n const list = dataSource.filter(\r\n (x) => x[renderProperty].toLowerCase().indexOf(params.term.toLowerCase()) !== -1,\r\n );\r\n return Promise.resolve(list);\r\n }\r\n return Promise.resolve([]);\r\n }\r\n\r\n /**\r\n * @private\r\n */\r\n searchImpl(searchProps, searchTerm, closeList, requestId) {\r\n if (this.subscriber === undefined) return Promise.resolve();\r\n this.subscriber.searchStarted();\r\n return this.get(searchProps, { term: searchTerm })\r\n .then((response) => {\r\n if (this.subscriber === undefined || this.lastRequestId !== requestId) return;\r\n this.subscriber.searchCompleted();\r\n this.subscriber.loaded(response, closeList);\r\n }).catch((error) => {\r\n if (this.subscriber === undefined || this.lastRequestId !== requestId) return;\r\n this.subscriber.searchCompleted();\r\n this.subscriber.errorCatched(error);\r\n });\r\n }\r\n}\r\n","/* eslint-disable react-hooks/rules-of-hooks */\r\n/* eslint-disable max-len */\r\n/* eslint-disable max-classes-per-file */\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\nimport DeleteIcon from '../Icons/DeleteIcon';\r\nimport Validation from '../Validation';\r\nimport { getProp, setProp } from '../Utils/formHelpers';\r\nimport Highlighter from '../Highlighter';\r\nimport SearchIcon from '../Icons/SearchIcon';\r\nimport Helpers from '../Utils/nodeHelpers';\r\nimport Spinner from '../Spinner';\r\nimport { getTitle, getRandomId, Presentation } from '../Utils/baseComponentHelper';\r\nimport { FormWrapperPropTypes } from '../Form/withForm';\r\nimport Log from '../../utils/log';\r\nimport SearchListProvider from './SearchListProvider';\r\nimport useActivation from '../Hooks/useActivation';\r\nimport EllipsisText from '../EllipsisText';\r\nimport useValidations from '../Hooks/useValidations';\r\nimport ValidationViewer from '../Validation/ValidationViewer';\r\nimport useMouseOver from '../Hooks/useMouseOver';\r\n\r\n/**\r\n * Bottone di ricerca.\r\n * E' necessario capire quando il mouse e dentro o fuori dal bottone di recerca per\r\n * attivare/disattivare il blur.\r\n * Se non lo faccio e il dato NON è dirty, scatterebbe la conferma del valore anche se sto cercando di aprire la lista.\r\n * Questo va impedito.\r\n */\r\nconst SearchButton = (props) => {\r\n const { onEnter, onExit, onClick } = props;\r\n\r\n const [, onMouseOver, onMouseOut] = useMouseOver(onEnter, onExit);\r\n return (\r\n \r\n );\r\n};\r\n\r\nSearchButton.propTypes = {\r\n onEnter: PropTypes.func.isRequired,\r\n onExit: PropTypes.func.isRequired,\r\n onClick: PropTypes.func.isRequired,\r\n};\r\n\r\nclass AutoComplete extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n const {\r\n renderProperty, stato, name, value,\r\n } = props;\r\n this.state = {\r\n formDirty: false,\r\n dirty: false,\r\n renderProperty: renderProperty || 'Description',\r\n value: (stato && name && getProp(name, stato)) || value || '',\r\n searchResult: [],\r\n isSearchResultListVisible: false,\r\n searchResultListSelectedItem: -1,\r\n loading: false,\r\n };\r\n this.deactiveIgnoreBlur();\r\n\r\n this.searchListProvider = new SearchListProvider({\r\n searchStarted: () => {\r\n this.setState({ loading: true });\r\n },\r\n\r\n searchCompleted: () => {\r\n this.setState({ loading: false });\r\n },\r\n\r\n errorCatched: (error) => {\r\n const { onGetError } = this.props;\r\n onGetError && onGetError(error);\r\n },\r\n\r\n cancel: () => {\r\n this.setState({\r\n searchResult: [],\r\n isSearchResultListVisible: false,\r\n searchResultListSelectedItem: -1,\r\n loading: false,\r\n });\r\n },\r\n\r\n loaded: (response, closeList) => {\r\n this.setState({\r\n searchResult: closeList ? [] : response,\r\n isSearchResultListVisible: !closeList,\r\n searchResultListSelectedItem: 0,\r\n }, this.selectFirstItemIfNoEditing);\r\n },\r\n });\r\n\r\n this.uniqueid = getRandomId();\r\n }\r\n\r\n componentDidMount() {\r\n const { name, addToForm } = this.props;\r\n\r\n if (addToForm && name) {\r\n addToForm(name, this.valida(), this.reset);\r\n }\r\n }\r\n\r\n UNSAFE_componentWillReceiveProps({\r\n value, name, renderProperty, stato, validare,\r\n }) {\r\n const { value: valueS } = this.state;\r\n const { validare: validareP, renderProperty: renderPropertyP } = this.props;\r\n\r\n if (value !== undefined && value !== null && valueS !== value) {\r\n this.setState({\r\n value,\r\n dirty: false,\r\n });\r\n }\r\n\r\n if (name != null && valueS !== getProp(name, stato)) {\r\n this.setState({\r\n value: getProp(name, stato),\r\n });\r\n }\r\n\r\n if (validareP !== validare && validare === false) {\r\n this.setState({\r\n formDirty: false,\r\n });\r\n }\r\n\r\n if (renderPropertyP !== renderProperty) {\r\n this.setState({ renderProperty });\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n const { name, removeFromForm } = this.props;\r\n\r\n if (removeFromForm && name) {\r\n removeFromForm(name);\r\n }\r\n }\r\n\r\n /**\r\n * If the list is loaded when I finished editing\r\n * or not when someone has forced the list to reload,\r\n * I set the value.\r\n */\r\n selectFirstItemIfNoEditing = () => {\r\n const { suggest } = this.props;\r\n const { dirty, forcesSearch, searchResult } = this.state;\r\n if (!dirty && !suggest && !forcesSearch) {\r\n if (searchResult.length === 0) {\r\n this.clear();\r\n } else {\r\n this.selectItem(0);\r\n }\r\n }\r\n };\r\n\r\n getTitle = () => {\r\n const { title, validations } = this.props;\r\n return getTitle(title, validations);\r\n };\r\n\r\n /**\r\n * @public\r\n */\r\n // eslint-disable-next-line react/no-unused-class-component-methods\r\n isValid = () => this.valida().valid;\r\n\r\n reset = () => {\r\n this.setState({ formDirty: false, dirty: false });\r\n };\r\n\r\n search = (value) => {\r\n const { url, dataSource } = this.props;\r\n const { renderProperty } = this.state;\r\n this.searchListProvider.search({ url, dataSource, renderProperty }, value);\r\n };\r\n\r\n handleOnChange = (event) => {\r\n this.deactiveIgnoreBlur();\r\n const {\r\n minLength, readOnly, disabled, upperCase,\r\n } = this.props;\r\n if (readOnly || disabled) return;\r\n let eventValue = event.target.value;\r\n if (upperCase) eventValue = eventValue.toUpperCase();\r\n const cValue = new Presentation({ readOnly }).parse(eventValue);\r\n this.setState({ value: cValue, dirty: true, formDirty: true }, () => {\r\n if (cValue.length >= minLength) {\r\n this.search(cValue);\r\n } else {\r\n this.searchListProvider.cancel();\r\n }\r\n });\r\n };\r\n\r\n forceSearch = () => {\r\n const {\r\n disabled, url, dataSource, renderProperty,\r\n } = this.props;\r\n const { value } = this.state;\r\n if (disabled) return;\r\n const { isSearchResultListVisible } = this.state;\r\n if (isSearchResultListVisible) {\r\n this.searchListProvider.cancel();\r\n } else {\r\n this.setState({ forcesSearch: true }, () => {\r\n // finally not supported in building!\r\n const onFinally = () => this.setState({ forcesSearch: false });\r\n this.searchListProvider.searchNow({ url, dataSource, renderProperty }, value)\r\n .then(\r\n (res) => Promise.resolve(onFinally()).then(() => res),\r\n (err) => Promise.resolve(onFinally()).then(() => { throw err; }),\r\n );\r\n this.refInput.focus();\r\n });\r\n }\r\n };\r\n\r\n handleKeyUp = (event) => {\r\n const {\r\n searchResult, searchResultListSelectedItem, isSearchResultListVisible,\r\n renderProperty,\r\n } = this.state;\r\n const { readOnly, disabled } = this.props;\r\n\r\n if (readOnly || disabled) return;\r\n const searchTerm = searchResult[searchResultListSelectedItem];\r\n switch (event.keyCode) {\r\n // Arrow up\r\n case 38:\r\n if (isSearchResultListVisible === true && searchResultListSelectedItem > 0) {\r\n this.setState({\r\n searchResultListSelectedItem: searchResultListSelectedItem - 1,\r\n });\r\n }\r\n break;\r\n // Arrow down\r\n case 40:\r\n if (isSearchResultListVisible === true\r\n && searchResultListSelectedItem < searchResult.length - 1) {\r\n this.setState({\r\n searchResultListSelectedItem: searchResultListSelectedItem + 1,\r\n });\r\n } else if (!isSearchResultListVisible) {\r\n this.search('');\r\n }\r\n break;\r\n // Tab\r\n case 9:\r\n // Enter\r\n case 13: // eslint-disable-line no-fallthrough\r\n this.selectItemAfterLoading();\r\n Helpers.focusNextElement(event.target);\r\n break;\r\n // Arrow left\r\n case 37:\r\n // Arrow right\r\n // eslint-disable-next-line no-fallthrough\r\n case 39: {\r\n if (searchTerm) {\r\n this.setState({\r\n value: searchTerm[renderProperty],\r\n });\r\n this.search(searchTerm);\r\n }\r\n break;\r\n }\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n valida = () => {\r\n const {\r\n name, validations, value, stato,\r\n } = this.props;\r\n if (validations === undefined) {\r\n return { valid: true };\r\n }\r\n return Validation.validateAll(validations, (stato && name && getProp(name, stato)) || value || '');\r\n };\r\n\r\n activeIgnoreBlur = () => {\r\n this.ignoreBlur = true;\r\n };\r\n\r\n deactiveIgnoreBlur = () => {\r\n this.ignoreBlur = false;\r\n };\r\n\r\n handleListItemClick = (elementIndex) => {\r\n this.activeIgnoreBlur();\r\n this.selectItem(elementIndex);\r\n };\r\n\r\n handleOnBlur = () => {\r\n const { dirty } = this.state;\r\n this.setState({ formDirty: true });\r\n if (this.ignoreBlur) {\r\n this.deactiveIgnoreBlur();\r\n return;\r\n }\r\n if (!dirty) {\r\n this.setState({ isSearchResultListVisible: false });\r\n return;\r\n }\r\n this.selectItemAfterLoading();\r\n };\r\n\r\n selectText = () => {\r\n const {\r\n name, clearAfterSelect, onChange, onFormChange, stato,\r\n } = this.props;\r\n const { value } = this.state;\r\n\r\n const searchTerm = value;\r\n this.setState({\r\n value: clearAfterSelect ? '' : searchTerm,\r\n isSearchResultListVisible: false,\r\n dirty: false,\r\n }, () => {\r\n if (onFormChange && name) {\r\n const obj = {};\r\n setProp(name, value, obj, stato);\r\n onFormChange(obj, name, value);\r\n }\r\n onChange && onChange(searchTerm);\r\n });\r\n };\r\n\r\n getSearchTermDescription = (searchTerm) => {\r\n const { renderProperty } = this.state;\r\n const searchTermValue = searchTerm[renderProperty];\r\n if (!searchTermValue) {\r\n // eslint-disable-next-line no-console\r\n Log.warn('AutoComplete: controllare la prop renderProperty; il valore selezionato ritorna una descrizione nulla');\r\n }\r\n return searchTermValue;\r\n };\r\n\r\n selectItem = (index) => {\r\n const {\r\n name, clearAfterSelect, onChange, onFormChange, stato,\r\n } = this.props;\r\n const { searchResult } = this.state;\r\n const searchTerm = searchResult[index];\r\n let data = {};\r\n let callback;\r\n if (onFormChange && name) {\r\n data = {\r\n value: clearAfterSelect ? '' : this.getSearchTermDescription(searchTerm),\r\n isSearchResultListVisible: false,\r\n dirty: false,\r\n };\r\n callback = () => {\r\n const obj = {};\r\n setProp(name, data.value, obj, stato);\r\n onFormChange(obj, name, data.value);\r\n onChange && onChange(searchTerm);\r\n };\r\n } else {\r\n data = {\r\n value: clearAfterSelect ? '' : this.getSearchTermDescription(searchTerm),\r\n isSearchResultListVisible: false,\r\n dirty: false,\r\n };\r\n callback = () => {\r\n onChange && onChange(searchTerm);\r\n };\r\n }\r\n this.setState(data, callback);\r\n };\r\n\r\n resolveListItemClass = (index) => {\r\n const { searchResultListSelectedItem } = this.state;\r\n return index === searchResultListSelectedItem ? ' autocomplete__item--active' : '';\r\n };\r\n\r\n onClearAutoComplete = () => {\r\n this.searchListProvider.cancel();\r\n this.clearAutoComplete();\r\n };\r\n\r\n clearAutoComplete = () => {\r\n const {\r\n disabled, onClear, name, onChange, onFormChange, stato,\r\n } = this.props;\r\n this.activeIgnoreBlur();\r\n if (disabled) return;\r\n onClear && onClear();\r\n if (onFormChange && name) {\r\n const obj = {};\r\n setProp(name, '', obj, stato);\r\n onFormChange(obj, name, '');\r\n }\r\n this.setState({\r\n value: '',\r\n isSearchResultListVisible: false,\r\n dirty: false,\r\n });\r\n onChange && onChange('');\r\n };\r\n\r\n clear = () => {\r\n this.setState({\r\n value: '',\r\n dirty: false,\r\n });\r\n };\r\n\r\n scrollOptionIntoView = () => {\r\n setTimeout(() => {\r\n if (this.selectedItem == null || this.refContainer == null) {\r\n return;\r\n }\r\n const selectedDOM = this.selectedItem;\r\n const menuDOM = this.refContainer;\r\n const selectedRect = selectedDOM.getBoundingClientRect();\r\n const menuRect = menuDOM.getBoundingClientRect();\r\n if (selectedRect.bottom > (menuRect.bottom - 5) || selectedRect.top < menuRect.top) {\r\n menuDOM.scrollTop = (selectedDOM.offsetTop\r\n + selectedDOM.clientHeight - menuDOM.offsetHeight);\r\n }\r\n });\r\n };\r\n\r\n renderList = () => {\r\n const {\r\n customList,\r\n renderRow,\r\n } = this.props;\r\n const {\r\n value,\r\n searchResult,\r\n searchResultListSelectedItem,\r\n isSearchResultListVisible,\r\n renderProperty,\r\n } = this.state;\r\n\r\n if (customList) {\r\n return customList(\r\n value,\r\n searchResult,\r\n searchResultListSelectedItem,\r\n this.handleListItemClick,\r\n isSearchResultListVisible,\r\n );\r\n }\r\n return (\r\n { this.refContainer = r; }}\r\n >\r\n {searchResult && isSearchResultListVisible && searchResult.length > 0\r\n && searchResult.map((element, index) => (\r\n this.handleListItemClick(index)}\r\n ref={(r) => {\r\n if (index === searchResultListSelectedItem) {\r\n this.selectedItem = r;\r\n }\r\n }}\r\n >\r\n {(renderRow && renderRow(searchResult[index], value, index)) || (\r\n \r\n )}\r\n \r\n ))}\r\n {searchResult && isSearchResultListVisible && searchResult.length === 0 && (\r\n \r\n Nessun risultato per questa ricerca\r\n \r\n )}\r\n \r\n );\r\n };\r\n\r\n selectItemAfterLoading() {\r\n const { searchResultListSelectedItem, searchResult, value } = this.state;\r\n const {\r\n suggest, stato, name, value: valueP,\r\n } = this.props;\r\n if (searchResultListSelectedItem < searchResult.length && searchResultListSelectedItem >= 0) {\r\n this.selectItem(searchResultListSelectedItem);\r\n } else if (suggest) {\r\n this.selectText();\r\n } else {\r\n const val = (stato && name && getProp(name, stato)) || valueP || '';\r\n if (val !== value) {\r\n this.clearAutoComplete();\r\n }\r\n }\r\n }\r\n\r\n render() {\r\n const {\r\n actions,\r\n disabled: disabledProp,\r\n readOnly: readOnlyProp,\r\n isValid,\r\n left,\r\n minLength,\r\n name,\r\n title,\r\n validare,\r\n addToForm,\r\n onFormChange,\r\n removeFromForm,\r\n resetta,\r\n stato,\r\n clearAfterSelect,\r\n customList,\r\n onChange,\r\n onClear,\r\n renderProperty,\r\n renderRow,\r\n suggest,\r\n url,\r\n validations,\r\n value: valueS,\r\n dataSource,\r\n ellipsis,\r\n upperCase,\r\n className,\r\n placeholder,\r\n ...others\r\n } = this.props;\r\n const {\r\n formDirty,\r\n value,\r\n searchResult,\r\n loading,\r\n isSearchResultListVisible,\r\n } = this.state;\r\n const { disabled, readOnly } = useActivation(disabledProp, readOnlyProp);\r\n const validazione = this.valida();\r\n if (isValid != null && name) {\r\n isValid(name, validazione.valid, validazione.messages || []);\r\n }\r\n\r\n const { hasError, hasWarning } = useValidations(validare, formDirty, validazione);\r\n\r\n const classes = cns(\r\n 'autocomplete',\r\n hasError ? 'autocomplete--invalid' : 'autocomplete--valid',\r\n {\r\n 'autocomplete--disabled': disabled,\r\n 'autocomplete--nonEmptySearch': minLength > 1,\r\n 'autocomplete--left': left,\r\n 'autocomplete--readOnly': readOnly,\r\n },\r\n value ? 'autocomplete--valorized' : 'autocomplete--empty',\r\n isSearchResultListVisible ? 'autocomplete--open' : 'autocomplete--closed',\r\n className,\r\n );\r\n const inputClasses = cns('autocomplete__input', 'validationViewer__target', { 'autocomplete__input--highlighted': isSearchResultListVisible && searchResult.length > 0 });\r\n if (searchResult && isSearchResultListVisible && searchResult.length > 0 && this.selectedItem) {\r\n this.scrollOptionIntoView();\r\n }\r\n const inputTitleClass = cns('autocomplete__title', { 'autocomplete__title--readOnly': readOnly });\r\n\r\n const label = name || title;\r\n return (\r\n
    \r\n
    \r\n {readOnly\r\n ? (\r\n \r\n \r\n {new Presentation({ readOnly }).format(value)}\r\n \r\n \r\n )\r\n : (\r\n setTimeout(this.handleOnBlur, 250)} // I postpone the event to handled list item click before.\r\n onChange={this.handleOnChange}\r\n onKeyDown={this.handleKeyUp}\r\n ref={(r) => { this.refInput = r; }}\r\n type=\"text\"\r\n value={new Presentation({ readOnly }).format(value)}\r\n placeholder={placeholder}\r\n // eslint-disable-next-line react/jsx-props-no-spreading\r\n {...others}\r\n />\r\n )}\r\n {loading && }\r\n {!readOnly && value !== '' && (\r\n \r\n \r\n \r\n )}\r\n {!readOnly && (\r\n \r\n )}\r\n \r\n {label && }\r\n {title &&
    {this.getTitle()}
    }\r\n {this.renderList()}\r\n \r\n
    \r\n
    \r\n {!readOnly && actions &&
    {actions}
    }\r\n
    \r\n );\r\n }\r\n}\r\n\r\nAutoComplete.defaultProps = {\r\n actions: null,\r\n clearAfterSelect: false,\r\n customList: null,\r\n disabled: false,\r\n readOnly: false,\r\n left: false,\r\n minLength: 3,\r\n name: null,\r\n onChange: null,\r\n onClear: null,\r\n renderProperty: null,\r\n renderRow: null,\r\n suggest: false,\r\n title: null,\r\n url: null,\r\n validations: null,\r\n value: null,\r\n dataSource: null,\r\n ellipsis: {\r\n left: false,\r\n top: true,\r\n disabled: false,\r\n },\r\n upperCase: false,\r\n className: null,\r\n placeholder: undefined,\r\n};\r\n\r\nAutoComplete.propTypes = {\r\n ...FormWrapperPropTypes,\r\n\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n\r\n /** Lista di icone da mostrare dopo l'autocomplete */\r\n actions: PropTypes.any, // eslint-disable-line react/forbid-prop-types\r\n /** Indica se pulire il campo di input dopo la selezione */\r\n clearAfterSelect: PropTypes.bool,\r\n /**\r\n * Sovrascrive il rendering dei risultati:\r\n * ```\r\n * customList(value, searchResult, searchResultListSelectedItem,\r\n handleListItemClick, isSearchResultListVisible)\r\n * ```\r\n * dove:\r\n * * *value*: valore cercato\r\n * * *searchResult*: la lista dei risultati\r\n * * *searchResultListSelectedItem*: l'elemento correntemente selezionato\r\n * * *handleListItemClick*: la callback di selezione\r\n * * *isSearchResultListVisible*: *non commentata*\r\n */\r\n customList: PropTypes.func,\r\n /** Indica se il componente è disabilitato */\r\n disabled: PropTypes.bool,\r\n /** Presenta il campo in modalità sola lettura */\r\n readOnly: PropTypes.bool,\r\n /** Indica se aprire la tendina a sinistra */\r\n left: PropTypes.bool,\r\n /** Il numero di caratteri minimo da inserire per scatenare le ricerche */\r\n minLength: PropTypes.number,\r\n /** Nome del campo da bindare se il componente è contenuto all'interno di un componente Form */\r\n name: PropTypes.string,\r\n /**\r\n * Callback invocata quando è stato selezionato un valore:\r\n * ```\r\n * onChange(searchTerm)\r\n * ```\r\n * dove:\r\n * * *searchTerm*: l'elemento selezionato\r\n */\r\n onChange: PropTypes.func,\r\n /**\r\n * Callback invocata quando viene cliccato il pulsante per pulire l'autocomplete:\r\n * ```\r\n * onClear()\r\n * ```\r\n */\r\n onClear: PropTypes.func,\r\n /** Proprietà da visualizzare nelle righe */\r\n renderProperty: PropTypes.string,\r\n /**\r\n * Funzione opzionale che permete di specificare come renderizzare una singola\r\n * riga del risultato:\r\n * ```\r\n * renderRow(value, text, index)\r\n * ```\r\n * dove:\r\n * * *value*: il valore della riga da disegnare\r\n * * *text*: il testo scritto durante la ricerca\r\n * * *index*: indice della riga da disegnare\r\n */\r\n renderRow: PropTypes.func,\r\n /** Indica se l'autocomplete deve permettere di selezionare solo elementi\r\n * dal server o anche inserire elementi non presenti nelle risposte ricevute */\r\n suggest: PropTypes.bool,\r\n /** Etichetta da visualizzare nel campo che renderizza il componente */\r\n title: PropTypes.string,\r\n /** Url da chiamare per lo scaricamento dei dati.\r\n * Il testo verrà inviato mediante parametro term */\r\n url: PropTypes.string,\r\n /** Array delle regole di validazione da applicare al valore dell'autocomplete */\r\n validations: PropTypes.arrayOf(PropTypes.oneOfType(\r\n [\r\n PropTypes.string,\r\n PropTypes.object,\r\n PropTypes.func,\r\n ],\r\n )),\r\n /** Il valore iniziale dell'input */\r\n value: PropTypes.string,\r\n /**\r\nMetodo alternativo alla prop `url` per caricare gli elementi su cui effettuale la ricerca.\r\n\r\nSe `dataSource` è un array, il componente filtrerà la lista in base al testo digitato.\r\n\r\nSe `dataSource` è una function, il componente chiamerà la funzione ad ogni ricerca e si aspetta una `Promise` con la lista degli elementi di ritorno.\r\nI parametri della funzione sono `term`, termine di ricerca e `renderProperty`, proprietà di visualizzazione.\r\n */\r\n dataSource: PropTypes.oneOfType([PropTypes.array, PropTypes.func]),\r\n /**\r\nProprietà che definisce il comporamento delle ellipsis nel caso di componente in modalità readOnly.\r\nE' possibile definire se presentatorlo top o bottom, left o right oppure se disabilitare la visualizzazione della tooltip.\r\n\r\nVedi componente EllipsisText.\r\n */\r\n ellipsis: PropTypes.shape({\r\n /** mostra la tooltip nella parte alta/bassa */\r\n top: PropTypes.bool,\r\n\r\n /** mostra la tooltip nella parte sinistra/destra */\r\n left: PropTypes.bool,\r\n\r\n /** mostra o nasconde la tooltip */\r\n disabled: PropTypes.bool,\r\n }),\r\n /** Converte il testo in upper case */\r\n upperCase: PropTypes.bool,\r\n\r\n /** Esempio testuale del dato da inserire nel campo */\r\n placeholder: PropTypes.string,\r\n};\r\n\r\nexport default AutoComplete;\r\n","import AutoComplete from './AutoComplete';\r\nimport withForm from '../Form/withForm';\r\n\r\nexport default withForm(AutoComplete);\r\n","/* eslint-disable max-len */\r\nimport React from 'react';\r\nimport Icon from '../../Icons/Icon';\r\n\r\nexport default Icon(\r\n \r\n \r\n \r\n ,\r\n '0 0 24 24',\r\n 'AddIcon',\r\n);\r\n","const State = {\r\n ACTIVE: 0,\r\n DONE: 1,\r\n TODO: 2,\r\n ERROR: 3,\r\n};\r\n\r\nexport default State;\r\n","/* eslint-disable react/no-unused-prop-types */\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport State from './State';\r\n\r\n/**\r\n * Elemento dello Stepper.\r\n */\r\nconst Step = (props) => (\r\n
    {JSON.stringify(props)}
    \r\n);\r\n\r\nStep.State = State;\r\n\r\nStep.propTypes = {\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n /** Elemento da mostrare al posto dei children */\r\n code: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node,\r\n ]),\r\n /** Icona da impostare per lo step */\r\n icon: PropTypes.node,\r\n /**\r\n * Callback invocata al click dello step:\r\n * ```\r\n * onClick(index)\r\n * ```\r\n * dove:\r\n * * *index*: indice dello step selezionato\r\n */\r\n onClick: PropTypes.func,\r\n /** Indica se lo step è opzionale */\r\n optional: PropTypes.bool,\r\n /** Indica lo stato dello Step, può assumere\r\n * i seguenti valori: ACTIVE: 0, DONE: 1, TODO: 2, ERROR: 3 */\r\n state: PropTypes.number.isRequired,\r\n /** Il titolo dello step */\r\n title: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.node,\r\n ]).isRequired,\r\n /** sottotitolo opzionale */\r\n subTitle: PropTypes.string,\r\n};\r\n\r\nStep.defaultProps = {\r\n className: '',\r\n code: null,\r\n icon: null,\r\n onClick: null,\r\n optional: false,\r\n subTitle: null,\r\n};\r\n\r\nexport default Step;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\n\r\nimport Badge from '../Badge';\r\nimport SuccessoIcon from '../Icons/SuccessoIcon';\r\nimport ErroreIcon from '../Icons/ErroreIcon';\r\nimport State from './State';\r\n\r\nconst renderIcon = (icon, index, state) => {\r\n if (icon) {\r\n return icon;\r\n }\r\n if (state === State.DONE) {\r\n return ;\r\n }\r\n if (state === State.ERROR) {\r\n return ;\r\n }\r\n if (state === State.ACTIVE) {\r\n return {index};\r\n }\r\n\r\n return {index};\r\n};\r\n\r\nconst StepItem = ({\r\n className, index, optional,\r\n state, onClick, title, icon, subTitle,\r\n}) => {\r\n const stepClasses = cns(\r\n 'stepper__step',\r\n {\r\n 'stepper__step--active': state === State.ACTIVE,\r\n 'stepper__step--todo': state === State.TODO,\r\n 'stepper__step--done': state === State.DONE,\r\n 'stepper__step--error': state === State.ERROR,\r\n },\r\n className,\r\n );\r\n\r\n const intestazioneClasses = cns(\r\n 'stepper__stepIntestazione',\r\n {\r\n 'stepper__stepIntestazione--selectable': !!onClick,\r\n },\r\n className,\r\n );\r\n\r\n return (\r\n \r\n { onClick && onClick(index); }}\r\n role=\"presentation\"\r\n >\r\n {renderIcon(icon, index, state)}\r\n
    \r\n {title}\r\n {subTitle && {subTitle}}\r\n {optional && Opzionale}\r\n {state === State.ERROR && Errore}\r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nStepItem.propTypes = {\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n /** Icona da impostare per lo step */\r\n icon: PropTypes.node,\r\n /** Indice dello step */\r\n index: PropTypes.number,\r\n /**\r\n * Callback invocata al click dello step:\r\n * ```\r\n * onClick(index)\r\n * ```\r\n * dove:\r\n * * *index*: indice dello step selezionato\r\n */\r\n onClick: PropTypes.func,\r\n /** Indica se lo step è opzionale */\r\n optional: PropTypes.bool,\r\n /** Indica lo stato dello Step, può assumere\r\n * i seguenti valori: ACTIVE: 0, DONE: 1, TODO: 2, ERROR: 3 */\r\n state: PropTypes.number.isRequired,\r\n /** Il titolo dello step */\r\n title: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.node,\r\n ]).isRequired,\r\n /** sottotitolo opzionale */\r\n subTitle: PropTypes.string,\r\n};\r\n\r\nStepItem.defaultProps = {\r\n className: '',\r\n icon: null,\r\n index: 0,\r\n onClick: null,\r\n optional: false,\r\n subTitle: null,\r\n};\r\n\r\nexport default StepItem;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\n\r\nimport Step from './Step';\r\nimport StepItem from './StepItem';\r\n\r\n/**\r\nGli stepper oltre a dividere una sequenza in diversi passaggi, possono anche essere utilizzati per la navigazione.\r\nPosso anche dare un feedback di un salvataggio parziale.\r\n */\r\nconst Stepper = ({\r\n children,\r\n className,\r\n etichetteAlternative,\r\n onClick,\r\n nonlinear,\r\n vertical,\r\n small,\r\n spaced,\r\n}) => {\r\n const stepperGroupClasses = cns(\r\n 'stepper__group',\r\n {\r\n 'stepper__group--noSpaced': !spaced,\r\n 'stepper__group--vertical': vertical,\r\n 'stepper__group--small': small,\r\n },\r\n className,\r\n );\r\n\r\n const stepperClasses = cns(\r\n 'stepper',\r\n {\r\n 'stepper--nonlineare': nonlinear,\r\n 'stepper--etichetteAlternative': etichetteAlternative,\r\n },\r\n className,\r\n );\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n {React.Children.map(React.Children.toArray(children).filter((child) => child), (x, i) => (\r\n \r\n ))}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {React.Children.map(\r\n React.Children.toArray(children).filter((child) => child),\r\n (x) => (x.props.state === Step.State.ACTIVE\r\n ?
    {(x.props.code || x.props.children)}
    \r\n :
    ),\r\n )}\r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nStepper.Step = Step;\r\nStepper.State = Step.State;\r\n\r\nStepper.propTypes = {\r\n /** Contenuto da renderizzare all'interno del componente */\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node,\r\n ]),\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n /** Assegna al componente lo stile etichette alternative */\r\n etichetteAlternative: PropTypes.bool,\r\n /** Assegna al componente lo stile non lineare */\r\n nonlinear: PropTypes.bool,\r\n /**\r\n * Callback invocata al click dello step:\r\n * ```\r\n * onClick(index)\r\n * ```\r\n * dove:\r\n * * *index*: indice dello step selezionato\r\n */\r\n onClick: PropTypes.func,\r\n /** Assegna al componente lo stile verticale */\r\n vertical: PropTypes.bool,\r\n /** Assegna al componente lo stile small (solo in visualizzazione verticale) */\r\n small: PropTypes.bool,\r\n /**\r\n Indica se l'area sovrastante deve essere distanziata (non valido per la modalità verticale).\r\n\r\n _NOTA: La proprietà è stata introdotta default `true` per mantenere compatibilità._\r\n _A tendere verrà eliminata ed il componente si comporterà come `spaced=false`._\r\n */\r\n spaced: PropTypes.bool,\r\n};\r\n\r\nStepper.defaultProps = {\r\n children: null,\r\n className: '',\r\n etichetteAlternative: false,\r\n nonlinear: false,\r\n onClick: null,\r\n vertical: false,\r\n small: false,\r\n spaced: true,\r\n};\r\n\r\nexport default Stepper;\r\n","import Stepper from './Stepper';\r\n\r\nexport default Stepper;\r\n","const TIPO_PERSONA = {\r\n PERSONA_FISICA: 1,\r\n PERSONA_GIURIDICA: 2,\r\n\r\n toString(val) {\r\n switch (val) {\r\n case this.PERSONA_FISICA: return 'Persona fisica';\r\n case this.PERSONA_GIURIDICA: return 'Persona giuridica';\r\n default: return '';\r\n }\r\n },\r\n};\r\n\r\nconst TIPO_ESONERO_ISA = {\r\n REDDITI: '1',\r\n IVA: '2',\r\n\r\n toString(val) {\r\n switch (val) {\r\n case this.REDDITI: return 'Redditi';\r\n case this.IVA: return 'IVA';\r\n default: return '';\r\n }\r\n },\r\n};\r\n\r\nconst TIPO_AZIENDA = {\r\n NON_INDICATO: '0',\r\n IMPRESA_INDIVIDUALE_ORDINARIA: '1',\r\n IMPRESA_INDIVIDUALE_SPECIALE: '2',\r\n SOCIETA_SEMPLICE_AGRICOLA_SPECIALE: '3',\r\n SOCIETA_SEMPLICE_NON_AGRICOLA_SPECIALE: '4',\r\n SOCIETA_AVVOCATI_SPECIALE: '5',\r\n SOCIETA_SEDE_ESTERO_UNITA_LOCALI_ITALIA_SPECIALE: '6',\r\n ENTE_REA: '7',\r\n ALTRE_SOCIETA: '9',\r\n\r\n toString(val) {\r\n switch (val) {\r\n case this.NON_INDICATO: return '';\r\n case this.IMPRESA_INDIVIDUALE_ORDINARIA: return 'Impresa individuale (ordinaria)';\r\n case this.IMPRESA_INDIVIDUALE_SPECIALE: return 'Impresa individuale (speciale)';\r\n case this.SOCIETA_SEMPLICE_AGRICOLA_SPECIALE: return 'Società semplice agricola (speciale)';\r\n case this.SOCIETA_SEMPLICE_NON_AGRICOLA_SPECIALE: return 'Società semplice non agricola (speciale)';\r\n case this.SOCIETA_AVVOCATI_SPECIALE: return 'Società tra avvocati (speciale)';\r\n case this.SOCIETA_SEDE_ESTERO_UNITA_LOCALI_ITALIA_SPECIALE: return 'Società con sede legale all'estero (speciale)';\r\n case this.ENTE_REA: return 'Soggetto iscritto al REA';\r\n case this.ALTRE_SOCIETA: return 'Altra società (ordinaria)';\r\n default: return '';\r\n }\r\n },\r\n};\r\n\r\nconst TIPO_INDIRIZZO = {\r\n NON_INDICATO: '0',\r\n RESIDENZA_FISCALE: '1',\r\n SEDE_LEGALE: '2',\r\n DOMICILIO_FISCALE: '3',\r\n SEDE_ATTIVITA: '4',\r\n\r\n toString(val) {\r\n switch (val) {\r\n case this.NON_INDICATO: return '';\r\n case this.RESIDENZA_FISCALE: return 'Residenza fiscale';\r\n case this.SEDE_LEGALE: return 'Sede legae';\r\n case this.DOMICILIO_FISCALE: return 'Domicilio fiscale';\r\n case this.SEDE_ATTIVITA: return 'Sede attività';\r\n default: return '';\r\n }\r\n },\r\n};\r\n\r\nexport {\r\n TIPO_PERSONA,\r\n TIPO_AZIENDA,\r\n TIPO_INDIRIZZO,\r\n TIPO_ESONERO_ISA,\r\n};\r\n","import { WebRequest } from 'framework-ui-components';\r\n\r\nconst getOttieniPersonaFisica = (idStudio, codiceFiscale) => WebRequest.get('/Anagrafica/OttieniPersonaFisicaPerCodiceFiscale', {\r\n idStudio,\r\n codiceFiscale,\r\n});\r\n\r\nconst getOttieniPersonaGiuridica = (idStudio, codiceFiscale) => WebRequest.get('/Anagrafica/OttieniPersonaGiuridicaPerCodiceFiscale', {\r\n idStudio,\r\n codiceFiscale,\r\n});\r\n\r\nconst getOttieniPersonaFisicaById = (idAnagrafica) => WebRequest.get('/Anagrafica/OttieniPersonaFisica', {\r\n idAnagrafica,\r\n});\r\n\r\nconst getOttieniPersonaGiuridicaById = (idAnagrafica) => WebRequest.get('/Anagrafica/OttieniPersonaGiuridica', {\r\n idAnagrafica,\r\n});\r\n\r\nconst getOttieniIndirizzoResidenzaFiscale = (idAnagrafica) => WebRequest.get('/Anagrafica/OttieniIndirizzoResidenzaFiscale', {\r\n idAnagrafica,\r\n});\r\n\r\nconst getOttieniIndirizzoSedeLegale = (idAnagrafica) => WebRequest.get('/Anagrafica/OttieniIndirizzoSedeLegale', {\r\n idAnagrafica,\r\n});\r\n\r\nconst getVerificaCodiceFiscale = (cf) => WebRequest.get('/Anagrafica/VerificaCodiceFiscale', {\r\n cf,\r\n});\r\n\r\nconst postCreaAnagraficaPersonaFisica = (command) => WebRequest.post('/Anagrafica/CreaPersonaFisica', command);\r\n\r\nconst postModificaAnagraficaPersonaFisica = (command) => WebRequest.post('/Anagrafica/ModificaPersonaFisica', command);\r\n\r\nconst postCreaAnagraficaPersonaGiuridica = (command) => WebRequest.post('/Anagrafica/CreaPersonaGiuridica', command);\r\n\r\nconst postModificaAnagraficaPersonaGiuridica = (command) => WebRequest.post('/Anagrafica/ModificaPersonaGiuridica', command);\r\n\r\nconst postModificaIndirizzo = (command) => WebRequest.post('/Anagrafica/ModificaIndirizzo', command);\r\n\r\nconst postEliminaIndirizzo = (command) => WebRequest.post('/Anagrafica/EliminaIndirizzo', command);\r\n\r\nconst postAggiungiIndirizzo = (command) => WebRequest.post('/Anagrafica/AggiungiIndirizzo', command);\r\n\r\nconst postAggiungiRecapito = (command) => WebRequest.post('/Anagrafica/AggiungiRecapito', command);\r\n\r\nconst postModificaRecapito = (command) => WebRequest.post('/Anagrafica/ModificaRecapito', command);\r\n\r\nconst postEliminaRecapito = (command) => WebRequest.post('/Anagrafica/EliminaRecapito', command);\r\n\r\nconst postAggiungiContoCorrente = (command) => WebRequest.post('/Anagrafica/AggiungiContoCorrente', command);\r\n\r\nconst postModificaContoCorrente = (command) => WebRequest.post('/Anagrafica/ModificaContoCorrente', command);\r\n\r\nconst postModificaContoCorrenteDaIban = (command) => WebRequest.post('/Anagrafica/ModificaContoCorrenteDaIban', command);\r\n\r\nconst postAggiungiContoCorrenteDaIban = (command) => WebRequest.post('/Anagrafica/AggiungiContoCorrenteDaIban', command);\r\n\r\nconst postEliminaContoCorrente = (command) => WebRequest.post('/Anagrafica/EliminaContoCorrente', command);\r\n\r\nconst postAggiungiRappresentante = (command) => WebRequest.post('/Anagrafica/AggiungiRappresentante', command);\r\n\r\nconst postModificaRappresentante = (command) => WebRequest.post('/Anagrafica/ModificaRappresentante', command);\r\n\r\nconst postEliminaRappresentante = (command) => WebRequest.post('/Anagrafica/EliminaRappresentante', command);\r\n\r\nconst getOttieniIndirizzi = (idAnagrafica) => WebRequest.get('/Anagrafica/OttieniIndirizzi', { idAnagrafica });\r\n\r\nconst getOttieniRecapiti = (idAnagrafica) => WebRequest.get('/Anagrafica/OttieniRecapiti', { idAnagrafica });\r\n\r\nconst getOttieniContiCorrenti = (idAnagrafica) => WebRequest.get('/Anagrafica/OttieniContiCorrenti', { idAnagrafica });\r\n\r\nconst getOttieniDatiDaCodiceFiscale = (codiceFiscale) => WebRequest.get('/Anagrafica/OttieniDatiDaCodiceFiscale', { codiceFiscale });\r\n\r\nconst getOttieniRappresentanti = (idAnagrafica) => WebRequest.get('/Anagrafica/OttieniRappresentanti', { idAnagrafica });\r\n\r\nconst getGeneraIBAN = (abiBanca, cabBanca, numeroConto) => WebRequest.get('/Anagrafica/GeneraIBAN', { abiBanca, cabBanca, numeroConto });\r\n\r\nconst cercaToponimi = () => (\r\n '/Anagrafica/CercaToponimi');\r\n\r\nconst cercaNatureGiuridiche = () => (\r\n '/Anagrafica/CercaNatureGiuridiche');\r\n\r\nconst cercaBanche = () => (\r\n '/Anagrafica/CercaSediBanche');\r\n\r\nconst cercaFilialiBanca = (abiBanca) => (\r\n `/Anagrafica/cercaFilialiBanca?abiBanca=${abiBanca}`);\r\n\r\nconst cercaComuni = () => (\r\n '/Anagrafica/CercaComuni');\r\n\r\nexport {\r\n getOttieniPersonaFisica,\r\n getOttieniPersonaGiuridica,\r\n getOttieniIndirizzoResidenzaFiscale,\r\n getOttieniIndirizzoSedeLegale,\r\n getVerificaCodiceFiscale,\r\n getOttieniIndirizzi,\r\n getOttieniRecapiti,\r\n getOttieniContiCorrenti,\r\n getOttieniDatiDaCodiceFiscale,\r\n getOttieniRappresentanti,\r\n postCreaAnagraficaPersonaFisica,\r\n postCreaAnagraficaPersonaGiuridica,\r\n postModificaAnagraficaPersonaFisica,\r\n postModificaAnagraficaPersonaGiuridica,\r\n postModificaIndirizzo,\r\n postAggiungiIndirizzo,\r\n postAggiungiRecapito,\r\n postModificaRecapito,\r\n postEliminaRecapito,\r\n postAggiungiContoCorrente,\r\n postModificaContoCorrente,\r\n postModificaContoCorrenteDaIban,\r\n postAggiungiContoCorrenteDaIban,\r\n postEliminaContoCorrente,\r\n postAggiungiRappresentante,\r\n postModificaRappresentante,\r\n postEliminaRappresentante,\r\n postEliminaIndirizzo,\r\n cercaToponimi,\r\n cercaNatureGiuridiche,\r\n cercaComuni,\r\n cercaBanche,\r\n cercaFilialiBanca,\r\n getOttieniPersonaFisicaById,\r\n getOttieniPersonaGiuridicaById,\r\n getGeneraIBAN,\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Autocomplete, Heading, Input, Restriction, Validation,\r\n} from 'framework-ui-components';\r\nimport TemplateGrid from '../../../../components/TemplateGrid/TemplateGrid';\r\nimport { cercaComuni, cercaToponimi } from '../../../../apis/anagrafiche';\r\n\r\nconst SezioneSedeLegale = ({\r\n presetForm,\r\n onChangeAutocompletes,\r\n residenzaSedeLegaleEditabili,\r\n// idEnte,\r\n// campiSpecifici,\r\n// idCodiceTributo,\r\n// periodoDa,\r\n// periodoA,\r\n// annoRiferimentoDa,\r\n// erroreImportoLimitato,\r\n// limiteUnico,\r\n}) => (\r\n
    \r\n \r\n \r\n onChangeAutocompletes('CodiceComune', val)}\r\n name=\"CodiceComuneDescrizioneComposta\"\r\n title=\"Comune\"\r\n url={cercaComuni()}\r\n renderProperty=\"DescrizioneComposta\"\r\n validations={[\r\n Validation.DefaultRules.required,\r\n ]}\r\n readOnly={!residenzaSedeLegaleEditabili}\r\n />\r\n \r\n \r\n \r\n onChangeAutocompletes('Toponimo', val)}\r\n name=\"ToponimoDescrizione\"\r\n title=\"Toponimo\"\r\n url={cercaToponimi()}\r\n renderProperty=\"Descrizione\"\r\n validations={[\r\n Validation.DefaultRules.required,\r\n ]}\r\n readOnly={!residenzaSedeLegaleEditabili}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n);\r\n\r\nSezioneSedeLegale.defaultProps = {\r\n// annoRiferimentoDa: 0,\r\n// erroreImportoLimitato: false,\r\n};\r\n\r\nSezioneSedeLegale.propTypes = {\r\n presetForm: PropTypes.func.isRequired,\r\n onChangeAutocompletes: PropTypes.func.isRequired,\r\n residenzaSedeLegaleEditabili: PropTypes.bool.isRequired,\r\n// campiSpecifici: PropTypes.arrayOf(PropTypes.object).isRequired,\r\n// idCodiceTributo: PropTypes.number.isRequired,\r\n// periodoDa: PropTypes.string.isRequired,\r\n// periodoA: PropTypes.string.isRequired,\r\n// idEnte: PropTypes.number.isRequired,\r\n// annoRiferimentoDa: PropTypes.number,\r\n// erroreImportoLimitato: PropTypes.bool,\r\n// limiteUnico: PropTypes.bool.isRequired,\r\n};\r\n\r\nexport default SezioneSedeLegale;\r\n","import React, { useMemo, useCallback, forwardRef } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\nimport { getRandomId } from '../Utils/baseComponentHelper';\r\nimport { FormWrapperPropTypes } from '../Form/withForm';\r\nimport useForm from '../Hooks/useForm';\r\nimport useActivation from '../Hooks/useActivation';\r\nimport useRadioFormChecked from './useRadioFormChecked';\r\nimport { NOOP } from '../../utils/const';\r\n\r\n/**\r\nI radio button devono essere utilizzati quando si ha la necessità che l’utente possa vedere tutte le opzioni\r\ndisponibili di una determinata scelta.\r\n\r\nRef: input reference.\r\n */\r\nconst Radio = forwardRef((props, ref) => {\r\n const {\r\n className,\r\n disabled: disabledProp,\r\n readOnly: readOnlyProp,\r\n name,\r\n value,\r\n checked,\r\n label,\r\n tooltip,\r\n onChange,\r\n ...others\r\n } = props;\r\n\r\n const {\r\n onFormChange,\r\n stato,\r\n notifica,\r\n } = useForm(name, NOOP, true);\r\n\r\n const uniqueid = useMemo(() => getRandomId(), []);\r\n\r\n const inputChecked = useRadioFormChecked({\r\n stato, name, value, checked,\r\n });\r\n\r\n const radioId = `${name}_${value}_${uniqueid}`;\r\n\r\n const { active, disabled, readOnly } = useActivation(disabledProp, readOnlyProp);\r\n\r\n const classes = cns((label ? undefined : className), {\r\n radio: !label,\r\n 'radio--disabled': disabled,\r\n 'radio--enabled': active,\r\n 'radio--readOnly': readOnly,\r\n 'radio--checked': inputChecked,\r\n });\r\n\r\n const classesLabel = cns(className, {\r\n radio: label,\r\n 'radio--labeled': label,\r\n 'label--disabled': disabled,\r\n 'label--readOnly': readOnly,\r\n 'label--checked': inputChecked,\r\n 'label--unchecked': !inputChecked,\r\n });\r\n\r\n const handleChange = useCallback((e) => {\r\n if (active) notifica(e, name, e.target.value, onChange, onFormChange, stato);\r\n }, [active, name, notifica, onChange, onFormChange, stato]);\r\n\r\n return (\r\n label ? (\r\n \r\n ) : (\r\n \r\n \r\n \r\n \r\n ));\r\n});\r\n\r\nRadio.propTypes = {\r\n ...FormWrapperPropTypes,\r\n /** Indica se il campo è selezionato */\r\n checked: PropTypes.bool,\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n /** Indica se il componente è disabilitato */\r\n disabled: PropTypes.bool,\r\n /** Indica se il componente è readOnly */\r\n readOnly: PropTypes.bool,\r\n /** Nome del campo da bindare se il componente è contenuto all'interno di un componente Form */\r\n name: PropTypes.string,\r\n /**\r\nFunzione invocata alla selezione di un elemento.\r\ndove:\r\n\r\n- `event`: evento scatenante\r\n */\r\n onChange: PropTypes.func,\r\n /** Indica il valore bindato al campo */\r\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.bool]),\r\n /** Etichetta da associare al radio button */\r\n label: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\r\n /** Tooltip da visualizzare nell'hover del radio */\r\n tooltip: PropTypes.string,\r\n};\r\n\r\nRadio.defaultProps = {\r\n checked: false,\r\n className: '',\r\n disabled: false,\r\n readOnly: false,\r\n name: '',\r\n onChange: null,\r\n value: null,\r\n label: null,\r\n tooltip: null,\r\n};\r\n\r\nexport default Radio;\r\n","import { getProp } from '../Utils/formHelpers';\r\n\r\n/**\r\n * Calcola lo stato della Radio in base alle props e allo stato della form eventuale.\r\n */\r\nexport default function useRadioFormChecked({\r\n stato, name, value, checked,\r\n}) {\r\n const contesto = stato && name && getProp(name, stato);\r\n return (stato && name) ? (`${contesto}`) === (`${value}`) || checked || false : checked;\r\n}\r\n","import Radio from './Radio';\r\n\r\nexport default Radio;\r\n","import React from 'react';\r\nimport Icon from './Icon';\r\n\r\nexport default Icon(\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n , '0 0 14.3 16', 'CalendarIcon',\r\n);\r\n","/**\r\n * Funzione che converte una data in formato ISO\r\n * @param {*} date\r\n * @returns {string}\r\n */\r\nconst convertDateToISO = (date) => {\r\n let newDate = new Date(date);\r\n newDate = newDate.setHours(newDate.getHours() - (newDate.getTimezoneOffset() / 60));\r\n return new Date(newDate).toISOString();\r\n};\r\n\r\n/**\r\n * Verifica se la stringa in input può essere trasformata in una data\r\n * @param {string} input Valore da analizzare\r\n * @param {boolean} future Indica se voglio inserire date nel futuro e quindi preinserire l'anno 2000 se indico la data con due cifre\r\n * @param {boolean} decrease Indica se decrementare il mese(in quanto l'utente ad esempio per indicare gennaio indica 1 e non 0)\r\n * @param {string | undefined} annoDefault Indica se settare un anno di default indipendentemente da quello digitato\r\n * @returns {Date | null} data.\r\n */\r\nconst parseDate = (input, future, decrease, annoDefault) => {\r\n const parts = input.match(/(\\d+)/g);\r\n if (!annoDefault) {\r\n if (parts == null || (parts.length !== 3 && parts.length !== 1)) {\r\n return null;\r\n }\r\n } else if (parts == null || (parts.length !== 3 && parts.length !== 2 && parts.length !== 1)) {\r\n return null;\r\n }\r\n\r\n let year;\r\n let month;\r\n let day;\r\n if (parts.length === 3 || (parts.length === 2 && annoDefault)) {\r\n year = annoDefault || parseInt(parts[2], 10);\r\n month = parseInt(parts[1], 10);\r\n day = parseInt(parts[0], 10);\r\n } else {\r\n if (parts[0].length !== 6 && parts[0].length !== 8 && !annoDefault) {\r\n return null;\r\n }\r\n\r\n day = parseInt(parts[0].substring(0, 2), 10);\r\n month = parseInt(parts[0].substring(2, 4), 10);\r\n year = annoDefault || parseInt(parts[0].substring(4), 10);\r\n }\r\n\r\n if (year < 100) {\r\n if (future) {\r\n year += 2000;\r\n } else {\r\n const d = new Date();\r\n if (year > d.getFullYear() % 100) {\r\n year += 1900;\r\n } else {\r\n year += 2000;\r\n }\r\n }\r\n }\r\n\r\n if (year < 1000 || year > 9999) {\r\n return null; // to avoid something like 202020 or 202\r\n }\r\n if (decrease) {\r\n month -= 1;\r\n }\r\n\r\n if (Object.prototype.toString.call(new Date(year, month - 1, day)) === '[object Date]') {\r\n return new Date(year, month, day);\r\n }\r\n\r\n return null;\r\n};\r\n\r\n/**\r\n * Formatta la data secondo il formato dd/MM/yyyy\r\n * @param {String|Number} day - Giorno\r\n * @param {String|Number} month - Mese\r\n * @param {String|Number} year - Anno\r\n * @param {String} separator - Separatore\r\n */\r\nconst formatDate = (day, month, year, separator) => `${(`00${day}`).slice(-2)}${separator}${(`00${month}`).slice(-2)}${separator}${year}`;\r\n\r\n/**\r\n * Formatta la data secondo il formato dd/MM/yyyy\r\n * @param {String|Number} month - Mese\r\n * @param {String|Number} year - Anno\r\n * @param {String} separator - Separatore\r\n */\r\nconst formatMonth = (month, year, separator) => `${(`00${month}`).slice(-2)}${separator}${year}`;\r\n\r\n/**\r\n * Verifica se la stringa in input può essere trasformata in un mese/anno\r\n * @param {string} input Valore da analizzare\r\n * @param {boolean} future Indica se voglio inserire date nel futuro e quindi preinserire l'anno 2000 se indico la data con due cifre\r\n * @param {boolean} decrease Indica se decrementare il mese(in quanto l'utente ad esempio per indicare gennaio indica 1 e non 0)\r\n * @param {string | undefined} annoDefault Indica se settare un anno di default indipendentemente da quello digitato\r\n * @returns {object | null} data.\r\n */\r\n// eslint-disable-next-line default-param-last\r\nconst parseMonth = (input = '', future = true, decrease, annoDefault) => {\r\n const parts = input.match(/(\\d+)/g);\r\n if (parts == null || (parts.length !== 2 && parts.length !== 1)) {\r\n return null;\r\n }\r\n\r\n let year;\r\n let month;\r\n if (parts.length === 2) {\r\n year = annoDefault ? parseInt(annoDefault, 10) : parseInt(parts[1], 10);\r\n month = parseInt(parts[0], 10);\r\n } else {\r\n if (parts[0].length !== 4 && parts[0].length !== 6 && !annoDefault) {\r\n return null;\r\n }\r\n\r\n month = parseInt(parts[0].substring(0, 2), 10);\r\n year = annoDefault ? parseInt(annoDefault, 10) : parseInt(parts[0].substring(2), 10);\r\n }\r\n\r\n if (year < 100) {\r\n if (future) {\r\n year += 2000;\r\n } else {\r\n const d = new Date();\r\n if (year > d.getFullYear() % 100) {\r\n year += 1900;\r\n } else {\r\n year += 2000;\r\n }\r\n }\r\n }\r\n\r\n if (year < 1000 || year > 9999) {\r\n return null; // to avoid something like 202020 or 202\r\n }\r\n\r\n if (decrease) {\r\n month -= 1;\r\n }\r\n\r\n return { year, month };\r\n};\r\n\r\n/**\r\n * Verifica se la stringa in input può essere trasformata in un mese/anno\r\n * @param {string} input Valore da analizzare\r\n * @param {boolean} future Indica se voglio inserire date nel futuro e quindi preinserire l'anno 2000 se indico la data con due cifre\r\n * @param {boolean} decrease Indica se decrementare il mese(in quanto l'utente ad esempio per indicare gennaio indica 1 e non 0)\r\n * @param {string | undefined} annoDefault Indica se settare un anno di default indipendentemente da quello digitato\r\n * @returns {object | null} data.\r\n */\r\n// eslint-disable-next-line default-param-last\r\nconst parseMonthToDate = (input = '', future = true, decrease, annoDefault) => {\r\n const date = parseMonth(input, future, decrease, annoDefault);\r\n if (date) return new Date(date.year, date.month, 15);\r\n return null;\r\n};\r\n\r\nfunction getTimezoneOffset() {\r\n return new Date().getTimezoneOffset();\r\n}\r\n\r\nconst pad = (number) => (Number(number) < 10 ? `0${Number(number)}` : number);\r\n\r\n/**\r\n * Converte una data dal formato ISO a stringa\r\n * @param {*} data stringa con data in formato ISO\r\n * @param {*} time indica se necessaria anche il dato di HH:MM\r\n * @returns formato DD/MM/YYYY\r\n */\r\nconst parseIsoDateToString = (data, time = false) => {\r\n if (!data || typeof data !== 'string' || !data.match(/((\\+|-)\\d{2}:\\d{2}|Z)$/gm)) return '';\r\n const dataOraArray = data.split('T');\r\n const dataSplit = dataOraArray[0].split('-');\r\n const oraSplit = dataOraArray[1].split(':');\r\n const timeFormatted = time ? ` ${oraSplit[0]}:${oraSplit[1]}` : '';\r\n return `${pad(dataSplit[2])}/${pad(dataSplit[1])}/${dataSplit[0]}${timeFormatted}`;\r\n};\r\n\r\n/**\r\n * Estra stringa che rappresenta il range di date.\r\n * @param {Date} from data di inizio\r\n * @param {Date} to data di fine\r\n * @param {string} separator separatore\r\n * @returns {string} stringa che rappresenta il range di date.\r\n */\r\nconst formatDateRange = (from, to, separator = '/') => {\r\n const dateFrom = from instanceof Date ? formatDate(from.getDate(), from.getMonth() + 1, from.getFullYear(), separator) : undefined;\r\n const dateTo = to instanceof Date ? formatDate(to.getDate(), to.getMonth() + 1, to.getFullYear(), separator) : undefined;\r\n\r\n if (dateFrom && dateTo) {\r\n return `${dateFrom} - ${dateTo}`;\r\n }\r\n return '';\r\n};\r\n\r\n/**\r\n * Verifica se la stringa in input può essere trasformata in un range di date\r\n * @param {string} input Valore da analizzare\r\n * @param {boolean} future Indica se voglio inserire date nel futuro e quindi preinserire l'anno 2000 se indico la data con due cifre\r\n * @param {boolean} decrease Indica se decrementare il mese(in quanto l'utente ad esempio per indicare gennaio indica 1 e non 0)\r\n * @param {string | undefined} annoDefault Indica se settare un anno di default indipendentemente da quello digitato\r\n * @returns {array} date o array con null.\r\n */\r\nconst parseDateRange = (input, future, decrease, annoDefault, spearator = '-') => {\r\n const [dataFrom, dataTo] = input.split(spearator).map((s) => s.trim());\r\n\r\n if (!dataFrom || !dataTo) return [undefined, undefined];\r\n\r\n return [\r\n parseDate(dataFrom, future, decrease, annoDefault),\r\n parseDate(dataTo, future, decrease, annoDefault),\r\n ];\r\n};\r\n\r\n/**\r\n * Verifica se la stringa in input può essere trasformata in un time HH:mm\r\n * @param {string} input Valore da analizzare\r\n * @returns {string} nuovo time formattato.\r\n */\r\nconst parseTime = (input) => {\r\n if (!input) return null;\r\n\r\n let [hour, minute] = input.split(':').map((s) => s.trim());\r\n\r\n hour = hour && parseInt(hour, 10);\r\n minute = minute && parseInt(minute, 10);\r\n\r\n if (isNaN(minute)) {\r\n if (hour < 100) return null;\r\n minute = hour % 100;\r\n hour = Math.floor(hour / 100);\r\n }\r\n\r\n if (hour >= 0 && hour < 24 && minute >= 0 && minute < 60) {\r\n return `${hour < 10 ? `0${hour}` : hour}:${minute < 10 ? `0${minute}` : minute}`;\r\n }\r\n\r\n return null;\r\n};\r\n\r\nconst addDays = (date, days) => {\r\n if (days === 0) return date;\r\n const newDate = new Date(date);\r\n newDate.setDate(newDate.getDate() + days);\r\n return newDate;\r\n};\r\n\r\nexport function compareYMDDate(date1, date2) {\r\n const date1Value = (date1.getFullYear() * 10000) + (date1.getMonth() * 100) + date1.getDate();\r\n const date2Value = (date2.getFullYear() * 10000) + (date2.getMonth() * 100) + date2.getDate();\r\n return date1Value - date2Value;\r\n}\r\n\r\nconst getPrevMonday = (date) => {\r\n if (date.getDay() === 0) return addDays(date, -6);\r\n return addDays(date, -1 * (date.getDay() - 1));\r\n};\r\n\r\nconst addZero = (value) => (value < 10 ? `0${value}` : value);\r\n\r\nfunction formatTime(date) {\r\n const hour = addZero(date.getHours());\r\n const minutes = addZero(date.getMinutes());\r\n return `${hour}:${minutes}`;\r\n}\r\n\r\nexport {\r\n convertDateToISO,\r\n parseDate,\r\n parseMonth,\r\n parseMonthToDate,\r\n parseDateRange,\r\n parseTime,\r\n formatDate,\r\n formatDateRange,\r\n formatMonth,\r\n formatTime,\r\n getTimezoneOffset,\r\n parseIsoDateToString,\r\n addDays,\r\n getPrevMonday,\r\n};\r\n","import React from 'react';\r\nimport Icon from './Icon';\r\n\r\nexport default Icon(, null, 'BackIcon');\r\n","import React from 'react';\r\nimport Icon from './Icon';\r\n\r\nexport default Icon(, null, 'ForwardIcon');\r\n","/* eslint-disable react/forbid-prop-types */\r\nimport React, { useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\nimport BackIcon from '../Icons/BackIcon';\r\nimport ForwardIcon from '../Icons/ForwardIcon';\r\nimport Heading from '../Heading';\r\nimport Grid from '../Grid';\r\nimport { NOOP } from '../../utils/const';\r\n\r\nconst YearsToShow = new Array(12);\r\nconst DecadesToShow = new Array(12);\r\nexport const Viste = {\r\n DAY: 0,\r\n MONTH: 1,\r\n YEAR: 2,\r\n DECADES: 3,\r\n};\r\nconst days = ['L', 'M', 'M', 'G', 'V', 'S', 'D'];\r\nconst months = ['Gennaio', 'Febbraio', 'Marzo', 'Aprile', 'Maggio', 'Giugno', 'Luglio', 'Agosto', 'Settembre', 'Ottobre', 'Novembre', 'Dicembre'];\r\n\r\nfunction getToday() {\r\n const today = new Date();\r\n return { year: today.getFullYear(), month: today.getMonth(), day: today.getDate() };\r\n}\r\n\r\nfunction isToday(date) {\r\n const today = new Date();\r\n return date.getFullYear() === today.getFullYear()\r\n && date.getMonth() === today.getMonth()\r\n && date.getDate() === today.getDate();\r\n}\r\n\r\nfunction isSelectedDate(date, selectedDate) {\r\n return date.getFullYear() === selectedDate.getFullYear()\r\n && date.getMonth() === selectedDate.getMonth()\r\n && date.getDate() === selectedDate.getDate();\r\n}\r\n\r\nfunction isOutOfRange(date, range) {\r\n if (!range) return false;\r\n const mills = date.getTime();\r\n if (range.from && mills < range.from.getTime()) {\r\n return true;\r\n }\r\n if (range.to && mills > range.to.getTime()) {\r\n return true;\r\n }\r\n return false;\r\n}\r\n\r\nfunction getDateProperties(date, newDate, range) {\r\n const selected = isSelectedDate(date, newDate);\r\n const outOfRange = isOutOfRange(newDate, range);\r\n const today = isToday(newDate);\r\n\r\n return { outOfRange, selected, today };\r\n}\r\n\r\nconst Days = ({ date: initDate, onChange, range }) => {\r\n const { month, year, day } = initDate;\r\n const date = new Date(year, month, day);\r\n const listaGiorniMeseCorrente = [];\r\n const numeriGiorniMeseCorrente = new Date(year, month + 1, 0).getDate();\r\n let primoGiornoDelMese = new Date(year, month, 1).getDay();\r\n if (primoGiornoDelMese === 0) {\r\n primoGiornoDelMese = 7;\r\n }\r\n for (let i = 1; i < primoGiornoDelMese; i += 1) {\r\n listaGiorniMeseCorrente.push(null);\r\n }\r\n for (let i = 1; i <= numeriGiorniMeseCorrente; i += 1) {\r\n listaGiorniMeseCorrente.push(i);\r\n }\r\n return (\r\n \r\n \r\n
      \r\n {days.map((x, i) => (\r\n \r\n {x}\r\n \r\n ))}\r\n
    \r\n
    \r\n
      \r\n {listaGiorniMeseCorrente.map((x, i) => {\r\n const newDate = new Date(year, month, x);\r\n if (!x) {\r\n return (\r\n \r\n );\r\n }\r\n const { selected, today, outOfRange } = getDateProperties(date, newDate, range);\r\n const classes = cns(\r\n 'datePicker__day',\r\n { 'datePicker__day--selected': selected && !outOfRange },\r\n { 'datePicker__day--today': today },\r\n { 'datePicker__day--outOfRange': outOfRange },\r\n );\r\n return (\r\n (outOfRange ? null : onChange({ year, month, day: x }))}\r\n >\r\n {x}\r\n \r\n );\r\n })}\r\n
    \r\n \r\n \r\n );\r\n};\r\n\r\nDays.defaultProps = {\r\n date: null,\r\n onChange: NOOP,\r\n range: null,\r\n};\r\n\r\nDays.propTypes = {\r\n /** Data iniziale */\r\n date: PropTypes.shape({\r\n year: PropTypes.number,\r\n month: PropTypes.number,\r\n day: PropTypes.number,\r\n }),\r\n /** Callback di modifica della data. Il paramentro è un oggetto con {year, month, day} */\r\n onChange: PropTypes.func,\r\n range: PropTypes.shape({\r\n from: PropTypes.any,\r\n to: PropTypes.any,\r\n }),\r\n};\r\n\r\nconst Months = ({ date, onChange, range }) => {\r\n const { year, month, day } = date;\r\n return (\r\n \r\n \r\n {months.map((x, i) => {\r\n const newDate = { year, month: i, day };\r\n const outOfRange = isOutOfRange(new Date(year, i, day), range);\r\n const classes = cns(\r\n 'datePicker__month',\r\n { 'datePicker__month--selected': i === month },\r\n { 'datePicker__month--outOfRange': outOfRange },\r\n );\r\n return (\r\n \r\n onChange(newDate)}\r\n >\r\n {x.substr(0, 3)}\r\n \r\n \r\n );\r\n })}\r\n \r\n \r\n );\r\n};\r\n\r\nMonths.defaultProps = Days.defaultProps;\r\nMonths.propTypes = Days.propTypes;\r\n\r\nconst Years = ({ date, onChange, range }) => {\r\n const { year, month, day } = date;\r\n const decade = year - (year % 10);\r\n for (let i = -1; i < 11; i += 1) {\r\n YearsToShow[i + 1] = decade + i;\r\n }\r\n return (\r\n \r\n \r\n {YearsToShow.map((x, i) => {\r\n const newDate = { year: x, month, day };\r\n const classes = cns('datePicker__year', { 'datePicker__year--selected': x === year });\r\n return (\r\n \r\n onChange(newDate)}\r\n >\r\n {x}\r\n \r\n \r\n );\r\n })}\r\n \r\n \r\n );\r\n};\r\n\r\nYears.defaultProps = Days.defaultProps;\r\nYears.propTypes = Days.propTypes;\r\n\r\nconst Decades = ({ date, onChange }) => {\r\n const { year, month, day } = date;\r\n const century = (year - year % 100);\r\n for (let i = -1; i < 11; i += 1) {\r\n DecadesToShow[i + 1] = century + (i * 10);\r\n }\r\n return (\r\n \r\n \r\n {DecadesToShow.map((x, i) => {\r\n const classes = cns('datePicker__decade', { 'datePicker__decade--selected': year >= x && year < (x + 10) });\r\n return (\r\n \r\n onChange({ year: x, month, day })}\r\n >\r\n onChange({ year: x, month, day })}\r\n >\r\n {x}\r\n -\r\n
    \r\n {' '}\r\n {x + 10}\r\n \r\n
    \r\n \r\n );\r\n })}\r\n
    \r\n
    \r\n );\r\n};\r\n\r\nDecades.defaultProps = Days.defaultProps;\r\nDecades.propTypes = Days.propTypes;\r\n\r\nconst Header = ({ view, date, onChangeView }) => {\r\n const { month, year } = date;\r\n switch (view) {\r\n case Viste.DAY:\r\n return (\r\n \r\n {`${months[month]} ${year}`}\r\n \r\n );\r\n case Viste.MONTH:\r\n return (\r\n \r\n {year}\r\n \r\n );\r\n case Viste.YEAR:\r\n return (\r\n \r\n {year}\r\n \r\n );\r\n case Viste.DECADES:\r\n return (\r\n \r\n {year}\r\n \r\n );\r\n default:\r\n throw new Error('View non definita');\r\n }\r\n};\r\n\r\nHeader.defaultProps = {\r\n date: null,\r\n};\r\n\r\nHeader.propTypes = {\r\n date: PropTypes.shape({\r\n year: PropTypes.number,\r\n month: PropTypes.number,\r\n day: PropTypes.number,\r\n }),\r\n onChangeView: PropTypes.func.isRequired,\r\n view: PropTypes.oneOf([Viste.DAY, Viste.MONTH, Viste.YEAR, Viste.DECADES]).isRequired,\r\n};\r\n\r\nfunction getPreviuosDate(view, date) {\r\n const { month, year, day } = date;\r\n switch (view) {\r\n case Viste.DAY: {\r\n const newMonth = month - 1;\r\n if (newMonth >= 0) {\r\n return { year, month: newMonth, day };\r\n }\r\n const newYear = year - 1;\r\n return { year: newYear, month: 11, day };\r\n }\r\n case Viste.MONTH:\r\n return { year: year - 1, month, day };\r\n case Viste.YEAR:\r\n return { year: year - 10, month, day };\r\n case Viste.DECADES:\r\n return { year: year - 100, month, day };\r\n default:\r\n return date;\r\n }\r\n}\r\n\r\nfunction getNextDate(view, date) {\r\n const { month, year, day } = date;\r\n switch (view) {\r\n case Viste.DAY: {\r\n const newMonth = month + 1;\r\n if (newMonth <= 11) {\r\n return { year, month: newMonth, day };\r\n }\r\n const newYear = year + 1;\r\n return {\r\n year: newYear, month: 0, day,\r\n };\r\n }\r\n case Viste.MONTH:\r\n return { year: year + 1, month, day };\r\n case Viste.YEAR:\r\n return { year: year + 10, month, day };\r\n case Viste.DECADES:\r\n return { year: year + 100, month, day };\r\n default:\r\n return date;\r\n }\r\n}\r\n\r\nconst DateComponentChooser = ({\r\n date: initDate, view: initView, onChange, component, range,\r\n}) => {\r\n const [view, setView] = useState(initView);\r\n const [date, setDate] = useState(initDate || getToday());\r\n\r\n return (\r\n
    \r\n
    \r\n setDate(getPreviuosDate(view, date))}\r\n />\r\n {\r\n setView((v) => {\r\n const r = (v + 1 < Object.keys(Viste).length ? v + 1 : v);\r\n return r;\r\n });\r\n }}\r\n />\r\n setDate(getNextDate(view, date))}\r\n />\r\n
    \r\n
    \r\n {view === Viste.DAY && }\r\n {view === Viste.MONTH && (\r\n {\r\n setView(Viste.DAY);\r\n setDate(newDate);\r\n }}\r\n />\r\n )}\r\n {view === Viste.YEAR && (\r\n {\r\n setView(Viste.MONTH);\r\n setDate(newDate);\r\n }}\r\n />\r\n )}\r\n {view === Viste.DECADES && (\r\n {\r\n setView(Viste.YEAR);\r\n setDate(newDate);\r\n }}\r\n />\r\n )}\r\n
    \r\n
    \r\n );\r\n};\r\n\r\nDateComponentChooser.Views = Viste;\r\n\r\nDateComponentChooser.defaultProps = {\r\n date: null,\r\n onChange: NOOP,\r\n view: Viste.DAY,\r\n component: Viste.DAY,\r\n range: undefined,\r\n};\r\n\r\nDateComponentChooser.propTypes = {\r\n /** Data iniziale */\r\n date: PropTypes.shape({\r\n year: PropTypes.number,\r\n month: PropTypes.number,\r\n day: PropTypes.number,\r\n }),\r\n /** Callback di modifica della data. Il paramentro è un oggetto con {year, month, day} */\r\n onChange: PropTypes.func,\r\n /** Vista iniziale */\r\n view: PropTypes.oneOf([\r\n DateComponentChooser.Views.DAY,\r\n DateComponentChooser.Views.MONTH,\r\n DateComponentChooser.Views.YEAR,\r\n DateComponentChooser.Views.DECADES,\r\n ]),\r\n /** Componente della data da selezionare */\r\n component: PropTypes.oneOf([\r\n DateComponentChooser.Views.DAY,\r\n DateComponentChooser.Views.MONTH,\r\n DateComponentChooser.Views.YEAR,\r\n DateComponentChooser.Views.DECADES,\r\n ]),\r\n range: PropTypes.shape({\r\n from: PropTypes.any,\r\n to: PropTypes.any,\r\n }),\r\n};\r\n\r\nexport default DateComponentChooser;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\nimport { getProp, setProp } from '../Utils/formHelpers';\r\nimport CalendarIcon from '../Icons/CalendarIcon';\r\nimport Validation from '../Validation';\r\nimport doesNodeContainClick from '../Utils/doesNodeContainClick';\r\nimport { FormWrapperPropTypes } from '../Form/withForm';\r\nimport { parseDate, convertDateToISO, formatDate } from '../Utils/dateHelper';\r\nimport { getTitle, getRandomId, Presentation } from '../Utils/baseComponentHelper';\r\nimport useActivation from '../Hooks/useActivation';\r\nimport useValidations from '../Hooks/useValidations';\r\nimport ValidationViewer from '../Validation/ValidationViewer';\r\nimport DateComponentChooser from './DateComponentChooser';\r\n/**\r\nComponente per l'inserimento di una data.\r\nLa data può essere inserita digitando un testo o selezionando di un valore dalla pick list.\r\n\r\nPer l'inserimento della data (prendiamo ad esempio 27/09/2018), oltre al formato dd/mm/yyyy, sono ammessi i seguienti formati:\r\n\r\n- ddmmyyyy (27092018)\r\n- ddmmyy (270918)\r\n */\r\nclass DatePicker extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n const date = props.date || new Date();\r\n this.state = {\r\n show: props.show || false,\r\n day: date.getDate(),\r\n month: date.getMonth(),\r\n year: date.getFullYear(),\r\n date: props.date,\r\n dirty: false,\r\n };\r\n // eslint-disable-next-line react/no-unused-class-component-methods\r\n this.parseDate = parseDate;\r\n this.uniqueid = getRandomId();\r\n }\r\n\r\n componentDidMount() {\r\n const { name, addToForm } = this.props;\r\n this.updateProps(this.props);\r\n document.addEventListener('click', this.closeIfClickOutside);\r\n if (addToForm && name) {\r\n addToForm(name, this.valida(), this.reset);\r\n }\r\n }\r\n\r\n UNSAFE_componentWillReceiveProps(props) {\r\n this.updateProps(props);\r\n }\r\n\r\n componentWillUnmount() {\r\n document.removeEventListener('click', this.closeIfClickOutside);\r\n const { name, removeFromForm } = this.props;\r\n\r\n if (removeFromForm && name) {\r\n removeFromForm(name);\r\n }\r\n }\r\n\r\n updateProps = ({\r\n date, show, name, stato, readOnly, disabled,\r\n }) => {\r\n const { show: showS, date: dateS } = this.state;\r\n if (show !== showS) {\r\n this.setState({ show });\r\n }\r\n\r\n let newDate = null;\r\n if (stato && name) {\r\n newDate = getProp(name, stato);\r\n\r\n if (newDate === '') {\r\n this.updateValue('', { readOnly, disabled });\r\n }\r\n\r\n if (newDate && newDate !== new Date(dateS)) {\r\n newDate = new Date(newDate);\r\n this.setDate(newDate);\r\n this.updateValue(formatDate(newDate.getDate(), newDate.getMonth() + 1, newDate.getFullYear(), '/'), { readOnly, disabled });\r\n } else {\r\n newDate = new Date();\r\n this.setState({\r\n day: newDate.getDate(),\r\n month: newDate.getMonth(),\r\n year: newDate.getFullYear(),\r\n });\r\n }\r\n } else if (!date) {\r\n this.setDate(Date.now());\r\n this.updateValue('', { readOnly, disabled });\r\n } else {\r\n this.setDate(date);\r\n this.updateValue(formatDate(date.getDate(), date.getMonth() + 1, date.getFullYear(), '/'), { readOnly, disabled });\r\n }\r\n };\r\n\r\n getTitle = () => {\r\n const { title, validations } = this.props;\r\n return getTitle(title, validations);\r\n };\r\n\r\n // eslint-disable-next-line react/no-unused-class-component-methods\r\n isValid = () => this.valida().valid;\r\n\r\n reset = () => {\r\n this.setState({ dirty: false });\r\n };\r\n\r\n // eslint-disable-next-line react/no-unused-class-component-methods\r\n clear = () => {\r\n const { readOnly } = this.props;\r\n this.refDatepickerInput.value = new Presentation({ readOnly }).format('');\r\n };\r\n\r\n setDate = (d, hide) => {\r\n const newD = d != null ? new Date(d) : new Date();\r\n const newState = {\r\n year: newD.getFullYear(),\r\n day: newD.getDate(),\r\n month: newD.getMonth(),\r\n };\r\n if (hide) {\r\n newState.show = false;\r\n } else {\r\n newState.date = newD;\r\n }\r\n this.setState(newState);\r\n };\r\n\r\n // eslint-disable-next-line react/no-unused-class-component-methods\r\n selectDate = (newDay) => {\r\n const { year, month } = this.state;\r\n const newDate = new Date(year, month, newDay);\r\n this.setState({\r\n day: newDay, date: newDate, show: false, dirty: true,\r\n });\r\n this.notifica(`${newDay}/${month}/${year}`);\r\n };\r\n\r\n selectFullDate = ({ year, month, day }) => {\r\n const newDate = new Date(year, month, day);\r\n this.setState({\r\n day, date: newDate, show: false, dirty: true,\r\n });\r\n this.notifica(`${day}/${month}/${year}`);\r\n };\r\n\r\n valida = () => {\r\n const {\r\n validations, name, date, stato,\r\n } = this.props;\r\n if (!validations) return { valid: true };\r\n return Validation.validateAll(validations, (stato && name && getProp(name, stato)) || date || '');\r\n };\r\n\r\n onBlur = (evt) => {\r\n const { futureDate, readOnly, disabled } = this.props;\r\n if (readOnly || disabled) return;\r\n const { dirty } = this.state;\r\n if (!dirty) {\r\n this.setState({ dirty: true });\r\n }\r\n const date = parseDate(new Presentation({ readOnly }).parse(evt.target.value), futureDate, true);\r\n if (date != null) {\r\n if (this.isOutOfRange(date)) {\r\n this.updateValue('');\r\n this.notifica('');\r\n this.setState({ date: null });\r\n } else {\r\n this.notifica(`${date.getDate()}/${date.getMonth()}/${date.getFullYear()}`);\r\n }\r\n } else {\r\n this.updateValue('');\r\n this.notifica('');\r\n const d = new Date();\r\n this.setState({\r\n date: null, day: d.getDate(), month: d.getMonth(), year: d.getFullYear(),\r\n });\r\n }\r\n };\r\n\r\n notifica = (date) => {\r\n const {\r\n futureDate, onChange, name, onFormChange, stato,\r\n } = this.props;\r\n const newDate = parseDate(date, futureDate, false);\r\n if (newDate == null) {\r\n this.updateValue('');\r\n } else {\r\n this.updateValue(formatDate(newDate.getDate(), newDate.getMonth() + 1, newDate.getFullYear(), '/'));\r\n this.setDate(newDate, false);\r\n }\r\n onChange && onChange(newDate);\r\n if (onFormChange && name) {\r\n const obj = {};\r\n setProp(name, newDate ? convertDateToISO(newDate) : null, obj, stato);\r\n onFormChange(obj, name, newDate ? convertDateToISO(newDate) : null);\r\n }\r\n };\r\n\r\n closeIfClickOutside = (e) => {\r\n const { show } = this.state;\r\n if (document.contains(e.target) && !doesNodeContainClick(this.refNode, e) && show) {\r\n this.setState({\r\n show: false,\r\n });\r\n this.updateStatus();\r\n }\r\n };\r\n\r\n changeVisibility = () => {\r\n const { disabled } = this.props;\r\n if (disabled) return;\r\n const { show } = this.state;\r\n if (show) {\r\n this.updateStatus();\r\n } else {\r\n this.setState({ show: true });\r\n }\r\n };\r\n\r\n updateStatus = () => {\r\n const { date } = this.state;\r\n const newDate = date || new Date();\r\n this.setDate(newDate, true);\r\n };\r\n\r\n getCurrentSelectedDate = () => {\r\n let dataCorrentementeSelezionata = null;\r\n const { stato, name } = this.props;\r\n if (stato && name) {\r\n const formData = getProp(name, stato);\r\n if (formData != null && formData !== '') {\r\n const d = new Date(formData);\r\n dataCorrentementeSelezionata = formatDate(d.getDate(), d.getMonth() + 1, d.getFullYear(), '/');\r\n }\r\n } else {\r\n const { date } = this.state;\r\n if (date && !isNaN(date)) {\r\n dataCorrentementeSelezionata = formatDate(date.getDate(), date.getMonth() + 1, date.getFullYear(), '/');\r\n }\r\n }\r\n return dataCorrentementeSelezionata;\r\n };\r\n\r\n updateValue = (value, props = undefined) => {\r\n const { disabled: cDisabled, readOnly: cReadOnly } = this.props;\r\n const { readOnly } = useActivation(\r\n props ? props.disabled : cDisabled,\r\n props ? props.readOnly : cReadOnly,\r\n );\r\n if (this.refDatepickerInput) {\r\n this.refDatepickerInput.value = new Presentation({ readOnly }).format(value);\r\n }\r\n };\r\n\r\n isOutOfRange = (date) => {\r\n const { range } = this.props;\r\n if (!range) return false;\r\n const mills = date.getTime();\r\n if (range.from && mills < range.from.getTime()) {\r\n return true;\r\n }\r\n if (range.to && mills > range.to.getTime()) {\r\n return true;\r\n }\r\n return false;\r\n };\r\n\r\n render() {\r\n const {\r\n isValid, name, validare, right,\r\n readOnly: readOnlyProp, disabled: disabledProp,\r\n className, autoFocus, title, actions, placeholder, range,\r\n } = this.props;\r\n const {\r\n dirty, show, date, year, month, day,\r\n } = this.state;\r\n // eslint-disable-next-line react-hooks/rules-of-hooks\r\n const { disabled, readOnly } = useActivation(disabledProp, readOnlyProp);\r\n const validazione = this.valida();\r\n if (isValid != null && name) {\r\n isValid(name, validazione.valid, validazione.messages || []);\r\n }\r\n const data = this.getCurrentSelectedDate();\r\n\r\n // eslint-disable-next-line react-hooks/rules-of-hooks\r\n const { hasError, hasWarning } = useValidations(validare, dirty, validazione);\r\n\r\n const wrapperClasses = cns(\r\n 'datePicker__inputWrapper',\r\n {\r\n 'input--invalid': hasError,\r\n 'input--readOnly': readOnly,\r\n 'input--valid': validazione.valid && (validare || dirty),\r\n },\r\n );\r\n const classes = cns(\r\n 'datePicker',\r\n {\r\n 'datePicker--right': right,\r\n 'datePicker--disabled': disabled,\r\n 'datePicker--open': show === true,\r\n },\r\n className,\r\n );\r\n const label = name || title;\r\n return (\r\n
    { this.refNode = r; }}>\r\n
    \r\n
    \r\n { this.refDatepickerInput = r; }}\r\n type=\"text\"\r\n placeholder={placeholder}\r\n />\r\n {label && }\r\n {title && {this.getTitle()}}\r\n \r\n {!readOnly && }\r\n \r\n
    \r\n {show && (\r\n {\r\n this.selectFullDate(newDate);\r\n }}\r\n component={DateComponentChooser.Views.DAY}\r\n range={range}\r\n />\r\n )}\r\n
    \r\n {!readOnly && actions &&
    {actions}
    }\r\n
    \r\n );\r\n }\r\n}\r\n\r\nDatePicker.defaultProps = {\r\n actions: null,\r\n autoFocus: false,\r\n className: null,\r\n date: null,\r\n disabled: false,\r\n readOnly: false,\r\n futureDate: false,\r\n name: null,\r\n onChange: null,\r\n range: null,\r\n right: false,\r\n show: false,\r\n title: null,\r\n validations: null,\r\n placeholder: undefined,\r\n};\r\n\r\nDatePicker.propTypes = {\r\n ...FormWrapperPropTypes,\r\n /** Icone da mostrare a lato del datepicker */\r\n actions: PropTypes.any, // eslint-disable-line react/forbid-prop-types\r\n /** Indica se fare focus di default */\r\n autoFocus: PropTypes.bool,\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n /** Data visualizzata di default */\r\n date: PropTypes.any, // eslint-disable-line react/forbid-prop-types\r\n /** Indica se il componente è disabilitato */\r\n disabled: PropTypes.bool,\r\n /** Presenta il campo in modalità sola lettura */\r\n readOnly: PropTypes.bool,\r\n /** Indica se voglio inserire date nel futuro\r\n * e quindi preinserire l'anno 2000 se indico la data con due cifre */\r\n futureDate: PropTypes.bool,\r\n /** Nome del campo da bindare se il componente è contenuto all'interno di un componente Form */\r\n name: PropTypes.string,\r\n /**\r\n * Callback invocata alla conferma di una data:\r\n * ```\r\n * onChange(date)\r\n * ```\r\n * dove:\r\n * * *date*: data confermata\r\n */\r\n onChange: PropTypes.func,\r\n /**\r\n * Indica il range di date attive, è possibile passare anche solo una della due proprietà\r\n * per creare valori iniziali minimi o valori finali massimi\r\n */\r\n range: PropTypes.shape({\r\n // eslint-disable-next-line react/forbid-prop-types\r\n from: PropTypes.any,\r\n // eslint-disable-next-line react/forbid-prop-types\r\n to: PropTypes.any,\r\n }),\r\n /** Indica se aprire il menu nell'altro senso */\r\n right: PropTypes.bool,\r\n /** Indica se visualizzare o meno la tendina di selezione */\r\n show: PropTypes.bool,\r\n /** Etichetta da visualizzare nel campo che renderizza il componente */\r\n title: PropTypes.string,\r\n /** Lista di validazioni da applicare al campo */\r\n validations: PropTypes.arrayOf(PropTypes.oneOfType(\r\n [\r\n PropTypes.string,\r\n PropTypes.object,\r\n PropTypes.func,\r\n ],\r\n )),\r\n\r\n /** Esempio testuale del dato da inserire nel campo */\r\n placeholder: PropTypes.string,\r\n};\r\n\r\nexport default DatePicker;\r\n","import DatePicker from './DatePicker';\r\nimport withForm from '../Form/withForm';\r\n\r\nconst WrappedDatePicker = withForm(DatePicker);\r\nWrappedDatePicker.convertDateToISO = DatePicker.convertDateToISO;\r\n\r\nexport default WrappedDatePicker;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Autocomplete, DatePicker, Heading, Input, Radio, Restriction, Validation,\r\n} from 'framework-ui-components';\r\nimport { TIPO_PERSONA } from '../../../../models/anagrafica';\r\nimport TemplateGrid from '../../../../components/TemplateGrid/TemplateGrid';\r\nimport { cercaNatureGiuridiche } from '../../../../apis/anagrafiche';\r\n\r\nconst SezioneDatiAnagraficiConTipo = ({\r\n valutaEsistenzaAnagrafica,\r\n valutaEsistenzaAnagraficaRadio,\r\n datiAnagraficiEditabili,\r\n partitaIvaEditabile,\r\n tipoPersona,\r\n onChangeAutocompletes,\r\n}) => (\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n {`${tipoPersona}` === `${TIPO_PERSONA.PERSONA_FISICA}` ? (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n\r\n \r\n onChangeAutocompletes('NaturaGiuridica', val)}\r\n validations={[Validation.DefaultRules.required]}\r\n />\r\n \r\n )}\r\n
    \r\n);\r\n\r\nSezioneDatiAnagraficiConTipo.defaultProps = {\r\n tipoPersona: 1,\r\n};\r\n\r\nSezioneDatiAnagraficiConTipo.propTypes = {\r\n valutaEsistenzaAnagrafica: PropTypes.func.isRequired,\r\n datiAnagraficiEditabili: PropTypes.bool.isRequired,\r\n partitaIvaEditabile: PropTypes.bool.isRequired,\r\n tipoPersona: PropTypes.number,\r\n onChangeAutocompletes: PropTypes.func.isRequired,\r\n\r\n valutaEsistenzaAnagraficaRadio: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default SezioneDatiAnagraficiConTipo;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Autocomplete, Heading, Input, Restriction, Validation,\r\n} from 'framework-ui-components';\r\nimport TemplateGrid from '../../../../components/TemplateGrid/TemplateGrid';\r\nimport { cercaComuni, cercaToponimi } from '../../../../apis/anagrafiche';\r\n\r\nconst SezioneResidenza = ({\r\n onChangeAutocompletes,\r\n residenzaSedeLegaleEditabili,\r\n// idEnte,\r\n// campiSpecifici,\r\n// idCodiceTributo,\r\n// periodoDa,\r\n// periodoA,\r\n// annoRiferimentoDa,\r\n// erroreImportoLimitato,\r\n// limiteUnico,\r\n}) => (\r\n
    \r\n \r\n \r\n onChangeAutocompletes('CodiceComune', val)}\r\n name=\"CodiceComuneDescrizioneComposta\"\r\n title=\"Comune\"\r\n url={cercaComuni()}\r\n renderProperty=\"DescrizioneComposta\"\r\n validations={[\r\n Validation.DefaultRules.required,\r\n ]}\r\n readOnly={!residenzaSedeLegaleEditabili}\r\n />\r\n \r\n \r\n \r\n onChangeAutocompletes('Toponimo', val)}\r\n name=\"ToponimoDescrizione\"\r\n title=\"Toponimo\"\r\n url={cercaToponimi()}\r\n renderProperty=\"Descrizione\"\r\n validations={[\r\n Validation.DefaultRules.required,\r\n ]}\r\n readOnly={!residenzaSedeLegaleEditabili}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n);\r\n\r\nSezioneResidenza.defaultProps = {\r\n// annoRiferimentoDa: 0,\r\n// erroreImportoLimitato: false,\r\n};\r\n\r\nSezioneResidenza.propTypes = {\r\n onChangeAutocompletes: PropTypes.func.isRequired,\r\n residenzaSedeLegaleEditabili: PropTypes.bool.isRequired,\r\n// campiSpecifici: PropTypes.arrayOf(PropTypes.object).isRequired,\r\n// idCodiceTributo: PropTypes.number.isRequired,\r\n// periodoDa: PropTypes.string.isRequired,\r\n// periodoA: PropTypes.string.isRequired,\r\n// idEnte: PropTypes.number.isRequired,\r\n// annoRiferimentoDa: PropTypes.number,\r\n// erroreImportoLimitato: PropTypes.bool,\r\n// limiteUnico: PropTypes.bool.isRequired,\r\n};\r\n\r\nexport default SezioneResidenza;\r\n","\r\nimport React, { useMemo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Checkbox, Validation } from 'framework-ui-components';\r\nimport useValidations from 'framework-ui-components/Components/Hooks/useValidations';\r\nimport ValidationViewer from 'framework-ui-components/Components/Validation/ValidationViewer';\r\n\r\nconst CheckboxTitle = React.forwardRef(({ // utilizzato dal FieldWrapper\r\n title, validare, validations, className, noMargin, ...params\r\n}, ref) => {\r\n const validazione = useMemo(() => {\r\n if (!validations) { return { valid: true }; }\r\n return Validation.validateAll(validations, params.value);\r\n }, [params.value, validations]);\r\n\r\n const { hasError, hasWarning } = useValidations(validare, false, validazione);\r\n\r\n return (\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n );\r\n});\r\n\r\nCheckboxTitle.defaultProps = {\r\n title: '',\r\n validations: null,\r\n validare: false,\r\n className: '',\r\n noMargin: false,\r\n};\r\n\r\nCheckboxTitle.propTypes = {\r\n title: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.element,\r\n ]),\r\n validations: PropTypes.arrayOf(PropTypes.oneOfType(\r\n [\r\n PropTypes.string,\r\n PropTypes.object,\r\n PropTypes.func,\r\n ],\r\n )),\r\n validare: PropTypes.bool,\r\n className: PropTypes.string,\r\n noMargin: PropTypes.bool,\r\n};\r\n\r\nCheckboxTitle.displayName = 'CheckboxTitle';\r\n\r\nexport default CheckboxTitle;\r\n","/* eslint-disable no-nested-ternary */\r\nimport React, {\r\n useState, useEffect, useCallback,\r\n} from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Autocomplete,\r\n Heading, Input, Restriction, Validation, Stepper,\r\n} from 'framework-ui-components';\r\nimport { useSelector } from 'react-redux';\r\nimport Log, { logApiError } from 'framework-taskforce/utils/log';\r\nimport { TIPO_PERSONA } from '../../../../models/anagrafica';\r\nimport SezioneSedeLegale from './SezioneSedeLegale';\r\nimport SezioneDatiAnagraficiConTipo from './SezioneDatiAnagraficiConTipo';\r\nimport SezioneResidenza from './SezioneResidenza';\r\nimport CheckboxTitle from '../../../../components/custom/CheckboxTitle';\r\nimport TemplateGrid from '../../../../components/TemplateGrid/TemplateGrid';\r\nimport SegnalazioniViewer from '../../../../components/custom/SegnalazioniViewer';\r\nimport {\r\n cercaBanche,\r\n cercaFilialiBanca,\r\n getGeneraIBAN,\r\n getOttieniPersonaFisica,\r\n getOttieniPersonaGiuridica,\r\n getOttieniDatiDaCodiceFiscale,\r\n getOttieniIndirizzoResidenzaFiscale,\r\n getOttieniIndirizzoSedeLegale,\r\n} from '../../../../apis/anagrafiche';\r\n\r\nconst STEP = {\r\n ANAGRAFICA_RESIDENZA: 1,\r\n CONTO_RECAPITI: 2,\r\n};\r\n\r\nconst NuovoCoobbligato = ({\r\n errori,\r\n formData,\r\n setFormData,\r\n presetForm,\r\n currentStep,\r\n setAnagraficaGiaEsistente,\r\n ibanManuale,\r\n setIbanManuale,\r\n}) => {\r\n const studioSelezionato = useSelector((store) => store.appParams.studioSelezionato);\r\n\r\n const [segnalazioni, setSegnalazioni] = useState([]);\r\n const [codiceFiscaleOld, setCodiceFiscaleOld] = useState(formData.CodiceFiscale);\r\n const [partitaIvaEditabile, setPartitaIvaEditabile] = useState(true);\r\n const [datiAnagraficiEditabili, setDatiAnagraficiEditabili] = useState(true);\r\n const [residenzaSedeLegaleEditabili, setResidenzaSedeLegaleEditabili] = useState(true);\r\n const [dataDiNascitaEditabile, setDataDiNascitaEditabile] = useState(true);\r\n\r\n const recuperaResidenzaOSedeLegale = useCallback((idAnagrafica, datiAnagrafici) => {\r\n if (idAnagrafica) {\r\n (formData.TipoPersona\r\n === TIPO_PERSONA.PERSONA_FISICA ? getOttieniIndirizzoResidenzaFiscale : getOttieniIndirizzoSedeLegale)(idAnagrafica)\r\n .then((res) => {\r\n if (res.Success && res.Result) {\r\n presetForm({\r\n ...datiAnagrafici,\r\n IdIndirizzo: res.Result.Id,\r\n TipoIndirizzo: res.Result.TipoIndirizzo,\r\n IdComune: res.Result.IdComune,\r\n IdToponimo: res.Result.IdToponimo,\r\n DescrizioneTipoIndirizzo: res.Result.DescrizioneTipoIndirizzo,\r\n CodiceComuneDescrizioneComposta: res.Result.Comune,\r\n ComuneCodiceProvincia: res.Result.Provincia,\r\n IndirizzoDescrizione: res.Result.Descrizione,\r\n NumeroCivico: res.Result.NumeroCivico,\r\n Frazione: res.Result.Frazione,\r\n ToponimoDescrizione: res.Result.Toponimo,\r\n Cap: res.Result.Cap,\r\n });\r\n\r\n setResidenzaSedeLegaleEditabili(false);\r\n setAnagraficaGiaEsistente(true);\r\n } else {\r\n presetForm({\r\n ...datiAnagrafici,\r\n });\r\n setResidenzaSedeLegaleEditabili(true);\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n });\r\n } else {\r\n presetForm({\r\n ...datiAnagrafici,\r\n IdIndirizzo: null,\r\n TipoIndirizzo: null,\r\n IdComune: null,\r\n IdToponimo: null,\r\n DescrizioneTipoIndirizzo: null,\r\n CodiceComuneDescrizioneComposta: null,\r\n ComuneCodiceProvincia: null,\r\n IndirizzoDescrizione: null,\r\n NumeroCivico: null,\r\n Frazione: null,\r\n ToponimoDescrizione: null,\r\n Cap: null,\r\n });\r\n }\r\n }, [formData.TipoPersona, presetForm, setAnagraficaGiaEsistente]);\r\n\r\n // controlla l'esistenza di una anagrafica\r\n const esisteOttieniAnagrafica = useCallback((codiceFiscale, tipoPersona) => {\r\n (tipoPersona === TIPO_PERSONA.PERSONA_FISICA ? getOttieniPersonaFisica : getOttieniPersonaGiuridica)(studioSelezionato, codiceFiscale)\r\n .then((res) => {\r\n if (res.Success && res.Result) {\r\n // caso particolare partita iva editabile perchè non in anagrafica unica\r\n if (!res.Result.PartitaIva || res.Result.PartitaIva === '') {\r\n setPartitaIvaEditabile(true);\r\n } else {\r\n setPartitaIvaEditabile(false);\r\n }\r\n // Esiste l'anagrafica e valorizzo i dati\r\n const datiAnagrafici = {\r\n // Contribuente\r\n IdContribuente: res.Result.IdContribuente,\r\n CodiceSIA: res.Result.CodiceSIA,\r\n PartitaIva: res.Result.PartitaIva,\r\n\r\n // Anagrafica\r\n IdAnagraficaCoobbligato: res.Result.IdAnagrafica,\r\n\r\n TipoPersonaCoobbligato: tipoPersona,\r\n DenominazioneCoobbligato: res.Result.Denominazione,\r\n AutocompleteCoobbligato: `${res.Result.CodiceFiscale} - ${res.Result.Cognome}${res.Result.Nome}`,\r\n\r\n CodiceFiscaleCoobbligato: res.Result.CodiceFiscale,\r\n PartitaIvaCoobbligato: tipoPersona === TIPO_PERSONA.PERSONA_GIURIDICA ? (res.Result.PartitaIva || res.Result.CodiceFiscale) : res.Result.PartitaIva,\r\n Cognome: res.Result.Cognome,\r\n Nome: res.Result.Nome,\r\n Sesso: res.Result.Sesso,\r\n DataDiNascita: res.Result.DataDiNascita,\r\n IdLuogoDiNascita: res.Result.IdLuogoDiNascita,\r\n RagioneSociale: res.Result.RagioneSociale,\r\n IdNaturaGiuridica: res.Result.IdNaturaGiuridica,\r\n NaturaGiuridica: res.Result.NaturaGiuridica,\r\n };\r\n\r\n // caso particolare data di nascita editabile perchè non in anagrafica unica\r\n if (res.Result.DataDiNascita === '0001-01-01T00:00:00Z' || !res.Result.DataDiNascita) {\r\n getOttieniDatiDaCodiceFiscale(codiceFiscale)\r\n .then((response) => {\r\n if (response.Success) {\r\n datiAnagrafici.Sesso = response.Result.Sesso;\r\n datiAnagrafici.DataDiNascita = response.Result.DataDiNascita;\r\n datiAnagrafici.IdLuogoDiNascita = response.Result.IdCodiceComuneDiNascita;\r\n }\r\n setDatiAnagraficiEditabili(false);\r\n recuperaResidenzaOSedeLegale(res.Result.IdAnagrafica, datiAnagrafici);\r\n }).catch((err) => {\r\n Log.error(err);\r\n });\r\n setDataDiNascitaEditabile(true);\r\n } else {\r\n setDataDiNascitaEditabile(false);\r\n setDatiAnagraficiEditabili(false);\r\n recuperaResidenzaOSedeLegale(res.Result.IdAnagrafica, datiAnagrafici);\r\n }\r\n } else {\r\n getOttieniDatiDaCodiceFiscale(codiceFiscale)\r\n .then((response) => {\r\n if (response.Success) {\r\n presetForm({\r\n // Contribuente\r\n IdContribuente: null,\r\n CodiceSIA: null,\r\n\r\n // Anagrafica\r\n IdAnagraficaCoobbligato: null,\r\n CodiceFiscale: codiceFiscale,\r\n PartitaIvaCoobbligato: tipoPersona === TIPO_PERSONA.PERSONA_GIURIDICA ? codiceFiscale : null,\r\n Cognome: null,\r\n Nome: null,\r\n Sesso: response.Result.Sesso,\r\n DataDiNascita: response.Result.DataDiNascita,\r\n IdLuogoDiNascita: response.Result.IdCodiceComuneDiNascita,\r\n RagioneSociale: null,\r\n IdNaturaGiuridica: null,\r\n NaturaGiuridica: null,\r\n TipoPersona: tipoPersona,\r\n });\r\n } else {\r\n presetForm({\r\n // Contribuente\r\n IdContribuente: null,\r\n CodiceSIA: null,\r\n\r\n // Anagrafica\r\n IdAnagraficaCoobbligato: null,\r\n CodiceFiscale: codiceFiscale,\r\n PartitaIvaCoobbligato: tipoPersona === TIPO_PERSONA.PERSONA_GIURIDICA ? codiceFiscale : null,\r\n Cognome: null,\r\n Nome: null,\r\n Sesso: null,\r\n DataDiNascita: null,\r\n IdLuogoDiNascita: null,\r\n RagioneSociale: null,\r\n IdNaturaGiuridica: null,\r\n NaturaGiuridica: null,\r\n TipoPersona: tipoPersona,\r\n });\r\n }\r\n }).catch((err) => {\r\n Log.error(err);\r\n });\r\n setDatiAnagraficiEditabili(true);\r\n setDataDiNascitaEditabile(true);\r\n setPartitaIvaEditabile(true);\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n });\r\n }, [studioSelezionato, recuperaResidenzaOSedeLegale, presetForm]);\r\n\r\n const valutaEsistenzaAnagrafica = useCallback((event) => {\r\n if (errori.CodiceFiscale.length === 0) {\r\n if (event && event.target && (\r\n `${formData.TipoPersona}` === `${TIPO_PERSONA.PERSONA_GIURIDICA}` ? event.target.value.length === 11 : event.target.value.length === 16)\r\n && codiceFiscaleOld !== event.target.value) {\r\n esisteOttieniAnagrafica(event.target.value, formData.TipoPersona);\r\n }\r\n } else if (event && event.target && event.target.value) {\r\n setFormData({ TipoPersona: formData.TipoPersona, CodiceFiscale: event.target.value });\r\n setDatiAnagraficiEditabili(true);\r\n setResidenzaSedeLegaleEditabili(true);\r\n }\r\n }, [codiceFiscaleOld, errori, esisteOttieniAnagrafica, formData.TipoPersona, setFormData]);\r\n\r\n const valutaEsistenzaAnagraficaRadio = useCallback((event) => {\r\n if (`${event.target.value}` !== `${formData.TipoPersona}`) {\r\n esisteOttieniAnagrafica(formData.CodiceFiscale, event.target.value);\r\n }\r\n }, [esisteOttieniAnagrafica, formData.CodiceFiscale, formData.TipoPersona]);\r\n\r\n const onChangeAutocompletes = (campo, elemento) => {\r\n const autocompleteVals = [];\r\n\r\n if (campo === 'CodiceComune') {\r\n autocompleteVals.IdComune = elemento.Id;\r\n autocompleteVals.CodiceComuneDescrizioneComposta = elemento.DescrizioneComposta;\r\n autocompleteVals.ComuneDescrizione = elemento.Descrizione;\r\n autocompleteVals.ComuneCodiceProvincia = elemento.CodiceProvincia;\r\n autocompleteVals.Cap = elemento.Cap;\r\n }\r\n if (campo === 'Toponimo') {\r\n autocompleteVals.IdToponimo = elemento.Id_Toponimo;\r\n autocompleteVals.ToponimoDescrizione = elemento.Descrizione;\r\n }\r\n if (campo === 'NaturaGiuridica') {\r\n autocompleteVals.IdNaturaGiuridica = elemento.IdNaturaGiuridica;\r\n autocompleteVals.NaturaGiuridica = elemento.Descrizione;\r\n }\r\n\r\n if (campo === 'Banca') {\r\n autocompleteVals.AbiBanca = elemento.Abi;\r\n autocompleteVals.DescrizioneBanca = elemento.Descrizione;\r\n autocompleteVals.Banca = elemento.DescrizioneComposta;\r\n autocompleteVals.CabBanca = null;\r\n autocompleteVals.Filiale = null;\r\n }\r\n if (campo === 'Filiale') {\r\n autocompleteVals.CabBanca = elemento.Cab;\r\n autocompleteVals.Filiale = elemento.DescrizioneComposta;\r\n }\r\n\r\n presetForm(autocompleteVals);\r\n };\r\n\r\n const getStepState = useCallback(\r\n (index) => {\r\n if (index === currentStep) {\r\n return Stepper.State.ACTIVE;\r\n } if (index < currentStep) {\r\n return Stepper.State.DONE;\r\n }\r\n return Stepper.State.TODO;\r\n },\r\n [currentStep],\r\n );\r\n\r\n useEffect(() => {\r\n if (currentStep === STEP.CONTO_RECAPITI && !formData.IbanGenerato\r\n && formData.AbiBanca && formData.CabBanca && formData.NumeroConto) {\r\n getGeneraIBAN(formData.AbiBanca, formData.CabBanca, formData.NumeroConto)\r\n .then((res) => {\r\n if (res.Success) {\r\n presetForm({\r\n IbanGenerato: res.Result,\r\n });\r\n }\r\n })\r\n .catch((e) => {\r\n });\r\n }\r\n }, [currentStep, formData, presetForm]);\r\n\r\n const cambioIbanManuale = useCallback((event) => {\r\n setIbanManuale(event.target.checked);\r\n if (event.target.checked) {\r\n presetForm({\r\n AbiBanca: null,\r\n CabBanca: null,\r\n DescrizioneBanca: null,\r\n Banca: null,\r\n FilialeCab: null,\r\n Filiale: null,\r\n NumeroConto: null,\r\n IbanGenerato: null,\r\n });\r\n } else {\r\n presetForm({\r\n IbanManuale: null,\r\n });\r\n }\r\n }, [presetForm, setIbanManuale]);\r\n\r\n return (\r\n \r\n {segnalazioni && segnalazioni.length > 0 && (\r\n \r\n )}\r\n \r\n \r\n \r\n
    \r\n {formData && `${formData.TipoPersona}` === `${TIPO_PERSONA.PERSONA_FISICA}` ? (\r\n \r\n ) : (\r\n \r\n )}\r\n
    \r\n
    \r\n )}\r\n />\r\n \r\n \r\n
    \r\n \r\n onChangeAutocompletes('Banca', val)}\r\n validations={ibanManuale ? [] : [Validation.DefaultRules.required]}\r\n disabled={ibanManuale}\r\n />\r\n onChangeAutocompletes('Filiale', val)}\r\n validations={ibanManuale ? [] : [Validation.DefaultRules.required]}\r\n readOnly={!ibanManuale && !formData.AbiBanca}\r\n disabled={ibanManuale}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n )}\r\n />\r\n \r\n \r\n );\r\n};\r\n\r\nNuovoCoobbligato.defaultProps = {\r\n formData: {},\r\n ibanManuale: null,\r\n};\r\n\r\nNuovoCoobbligato.propTypes = {\r\n errori: PropTypes.shape({\r\n CodiceFiscale: PropTypes.string,\r\n }).isRequired,\r\n setFormData: PropTypes.func.isRequired,\r\n presetForm: PropTypes.func.isRequired,\r\n currentStep: PropTypes.number.isRequired,\r\n setAnagraficaGiaEsistente: PropTypes.func.isRequired,\r\n formData: PropTypes.shape({\r\n CodiceFiscale: PropTypes.string,\r\n TipoPersona: PropTypes.number,\r\n IdAnagraficaCoobbligato: PropTypes.number,\r\n IbanGenerato: PropTypes.string,\r\n NumeroConto: PropTypes.string,\r\n AbiBanca: PropTypes.string,\r\n CabBanca: PropTypes.string,\r\n }),\r\n ibanManuale: PropTypes.string,\r\n setIbanManuale: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default NuovoCoobbligato;\r\n","/* eslint-disable no-nested-ternary */\r\nimport React, {\r\n useState, useEffect, useCallback, useRef,\r\n} from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Autocomplete,\r\n Form,\r\n} from 'framework-ui-components';\r\nimport {\r\n Modal, Button, FeedbackPanel,\r\n} from 'framework-ui-components/Components/V2';\r\nimport { useSelector } from 'react-redux';\r\nimport { logApiError } from 'framework-taskforce/utils/log';\r\nimport { isEmptyObject } from 'framework-taskforce/utils/object';\r\nimport { getSegnalazioneError } from 'framework-taskforce/models/segnalazioni';\r\nimport AddIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/AddIcon';\r\nimport { postAssociaCoobbligato } from '../../../apis/deleghe';\r\nimport TemplateGrid from '../../../components/TemplateGrid/TemplateGrid';\r\nimport NuovoCoobbligato from './nuovoCoobbligato/NuovoCoobbligato';\r\nimport { TIPO_PERSONA } from '../../../models/anagrafica';\r\nimport SegnalazioniViewer from '../../../components/custom/SegnalazioniViewer';\r\nimport {\r\n getOttieniContiCorrenti,\r\n getOttieniRecapiti,\r\n postAggiungiContoCorrente,\r\n postAggiungiContoCorrenteDaIban,\r\n postAggiungiRecapito,\r\n postCreaAnagraficaPersonaFisica,\r\n postCreaAnagraficaPersonaGiuridica,\r\n postModificaContoCorrente,\r\n postModificaContoCorrenteDaIban,\r\n postModificaRecapito,\r\n} from '../../../apis/anagrafiche';\r\n\r\nconst STEP = {\r\n ANAGRAFICA_RESIDENZA: 1,\r\n CONTO_RECAPITI: 2,\r\n};\r\n\r\nconst ModaleCoobbligato = ({\r\n onClose,\r\n show,\r\n codiceFiscaleCoobbligatoPrecedente,\r\n denominazioneCoobbligatoPrecedente,\r\n codiceAdECoobbligatoPrecedente,\r\n idAnagraficaCoobbligatoPrecedente,\r\n idCodiceAdECoobbligatoPrecedente,\r\n tipoPersonaCoobbligatoPrecedente,\r\n idDelega,\r\n}) => {\r\n const codiceUfficioSelezionato = useSelector((store) => store.appParams.ufficioSelezionato);\r\n const studioSelezionato = useSelector((store) => store.appParams.studioSelezionato);\r\n\r\n const [loading, setLoading] = useState(false);\r\n const [isFormValid, setIsFormValid] = useState(false);\r\n const [esito, setEsito] = useState(null);\r\n const [formData, setFormData] = useState({ TipoPersona: TIPO_PERSONA.PERSONA_FISICA });\r\n const [segnalazioni, setSegnalazioni] = useState([]);\r\n const [creazioneNuovoCoobbligato, setCreazioneNuovoCoobbligato] = useState(false);\r\n const [currentStep, setCurrentStep] = useState(STEP.ANAGRAFICA_RESIDENZA);\r\n const [anagraficaGiaEsistente, setAnagraficaGiaEsistente] = useState(false);\r\n const [ibanManuale, setIbanManuale] = useState(false);\r\n\r\n const formRef = useRef();\r\n\r\n const presetForm = useCallback(({ FormErrors, ...datoModificato }) => {\r\n if (!formData || isEmptyObject(datoModificato)) return;\r\n\r\n let sbiancaCampoIbanGenerato;\r\n\r\n // eslint-disable-next-line no-prototype-builtins\r\n if (datoModificato.hasOwnProperty('NumeroConto') || datoModificato.hasOwnProperty('AbiBanca') || datoModificato.hasOwnProperty('CabBanca')) {\r\n sbiancaCampoIbanGenerato = true;\r\n } else {\r\n sbiancaCampoIbanGenerato = false;\r\n }\r\n\r\n const newStato = { ...formData, ...datoModificato };\r\n\r\n if (sbiancaCampoIbanGenerato) {\r\n newStato.IbanGenerato = null;\r\n }\r\n\r\n setFormData(newStato);\r\n }, [formData]);\r\n\r\n const resetDati = useCallback(() => {\r\n setLoading(false);\r\n setIsFormValid(false);\r\n setSegnalazioni([]);\r\n setEsito(null);\r\n setFormData({ TipoPersona: TIPO_PERSONA.PERSONA_FISICA });\r\n setCurrentStep(STEP.ANAGRAFICA_RESIDENZA);\r\n setCreazioneNuovoCoobbligato(false);\r\n setAnagraficaGiaEsistente(false);\r\n setIbanManuale(false);\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (show) {\r\n resetDati();\r\n }\r\n }, [resetDati, show]);\r\n\r\n useEffect(() => {\r\n if (show && !formData.preventLoop && tipoPersonaCoobbligatoPrecedente && idAnagraficaCoobbligatoPrecedente) {\r\n presetForm({\r\n AutocompleteCoobbligato: `${codiceFiscaleCoobbligatoPrecedente} - ${denominazioneCoobbligatoPrecedente}`,\r\n Codice: codiceAdECoobbligatoPrecedente,\r\n IdCodiceCoobbligato: idCodiceAdECoobbligatoPrecedente,\r\n TipoPersonaCoobbligato: tipoPersonaCoobbligatoPrecedente,\r\n IdAnagraficaCoobbligato: idAnagraficaCoobbligatoPrecedente,\r\n preventLoop: true,\r\n });\r\n }\r\n }, [codiceAdECoobbligatoPrecedente,\r\n codiceFiscaleCoobbligatoPrecedente,\r\n denominazioneCoobbligatoPrecedente,\r\n formData.TipoPersonaCoobbligato,\r\n formData.preventLoop,\r\n idAnagraficaCoobbligatoPrecedente, idCodiceAdECoobbligatoPrecedente, presetForm, show, tipoPersonaCoobbligatoPrecedente]);\r\n\r\n useEffect(() => {\r\n if (!show) {\r\n // reset data on close\r\n resetDati();\r\n }\r\n }, [resetDati, setFormData, show]);\r\n\r\n const associaCoobbligato = useCallback(() => {\r\n setLoading(true);\r\n\r\n postAssociaCoobbligato(idDelega, formData.IdAnagraficaCoobbligato, formData.IdCodiceCoobbligato).then((res) => {\r\n if (res.Success) {\r\n onClose(true);\r\n } else {\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n }, [formData.IdAnagraficaCoobbligato, formData.IdCodiceCoobbligato, idDelega, onClose]);\r\n\r\n const ottieniRecapitiEConti = useCallback(() => {\r\n let recapito;\r\n getOttieniRecapiti(formData.IdAnagraficaCoobbligato)\r\n .then((res) => {\r\n if (res.Success && res.Result) {\r\n const result = res.Result.find((val) => val.Predefinito === true);\r\n\r\n recapito = {\r\n Telefono: result ? result.Telefono : null,\r\n Cellulare: result ? result.Cellulare : null,\r\n Fax: result ? result.Fax : null,\r\n Email: result ? result.Email : null,\r\n IdRecapito: result ? result.Id : null,\r\n Predefinito: true,\r\n };\r\n }\r\n\r\n getOttieniContiCorrenti(formData.IdAnagraficaCoobbligato)\r\n .then((response) => {\r\n if (response.Success && response.Result) {\r\n const result = response.Result[0];\r\n\r\n presetForm({\r\n ...recapito,\r\n ...result,\r\n IdContoCorrente: result ? result.Id : null,\r\n });\r\n } else {\r\n presetForm({\r\n ...recapito,\r\n });\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n }, [formData.IdAnagraficaCoobbligato, presetForm]);\r\n\r\n const creaAnagrafica = useCallback(() => {\r\n setLoading(true);\r\n\r\n const oggettoCreazione = {\r\n IdStudio: studioSelezionato,\r\n CodiceUfficio: codiceUfficioSelezionato,\r\n Indirizzo: formData.IndirizzoDescrizione,\r\n ...formData,\r\n };\r\n if (anagraficaGiaEsistente) {\r\n presetForm({\r\n AutocompleteCoobbligato: `${formData.CodiceFiscale} - ${formData.TipoPersona\r\n === TIPO_PERSONA.PERSONA_FISICA ? `${formData.Cognome} ${formData.Nome}` : formData.RagioneSociale}`,\r\n TipoPersonaCoobbligato: formData.TipoPersona,\r\n IdAnagraficaCoobbligato: formData.IdAnagraficaCoobbligato,\r\n });\r\n setCurrentStep(currentStep + 1);\r\n setSegnalazioni([]);\r\n ottieniRecapitiEConti();\r\n // ottieniContiCrrente();\r\n } else {\r\n (`${formData.TipoPersona}` === `${TIPO_PERSONA.PERSONA_FISICA}`\r\n ? postCreaAnagraficaPersonaFisica : postCreaAnagraficaPersonaGiuridica)(oggettoCreazione)\r\n .then((res) => {\r\n if (res.Success) {\r\n setCurrentStep(currentStep + 1);\r\n setSegnalazioni([]);\r\n\r\n presetForm({\r\n AutocompleteCoobbligato: `${oggettoCreazione.CodiceFiscale} - ${formData.TipoPersona\r\n === TIPO_PERSONA.PERSONA_FISICA ? `${oggettoCreazione.Cognome} ${oggettoCreazione.Nome}` : oggettoCreazione.RagioneSociale}`,\r\n TipoPersonaCoobbligato: oggettoCreazione.TipoPersona,\r\n IdAnagraficaCoobbligato: res.Result,\r\n });\r\n ottieniRecapitiEConti();\r\n } else {\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n }\r\n }, [anagraficaGiaEsistente, codiceUfficioSelezionato, currentStep, formData, ottieniRecapitiEConti, presetForm, studioSelezionato]);\r\n\r\n const aggiungiContoERecapito = useCallback((isIbanManuale) => {\r\n const oggettoCreazioneRecapito = {\r\n IdStudio: studioSelezionato,\r\n IdAnagrafica: formData.IdAnagraficaCoobbligato,\r\n Telefono: formData.Telefono,\r\n Cellulare: formData.Cellulare,\r\n Fax: formData.Fax,\r\n Email: formData.Email,\r\n IdRecapito: formData.IdRecapito,\r\n Predefinito: true,\r\n };\r\n\r\n const oggettoCreazioneConto = {\r\n IdStudio: studioSelezionato,\r\n IdAnagrafica: formData.IdAnagraficaCoobbligato,\r\n Iban: formData.IbanManuale ? formData.IbanManuale : null,\r\n AbiBanca: formData.IbanManuale ? null : formData.AbiBanca,\r\n CabBanca: formData.IbanManuale ? null : formData.CabBanca,\r\n NumeroConto: formData.IbanManuale ? null : formData.NumeroConto,\r\n Predefinito: formData.Predefinito,\r\n };\r\n\r\n const apiModificaDaChiamare = isIbanManuale ? postModificaContoCorrenteDaIban : postModificaContoCorrente;\r\n const apiAggiungiDaChiamare = isIbanManuale ? postAggiungiContoCorrenteDaIban : postAggiungiContoCorrente;\r\n\r\n if ((oggettoCreazioneConto.AbiBanca && oggettoCreazioneConto.CabBanca && oggettoCreazioneConto.NumeroConto) || formData.IbanManuale) {\r\n (formData.IdContoCorrente ? apiModificaDaChiamare : apiAggiungiDaChiamare)(oggettoCreazioneConto)\r\n .then((res) => {\r\n if (res.Success) {\r\n if (oggettoCreazioneRecapito.Telefono || oggettoCreazioneRecapito.Cellulare || oggettoCreazioneRecapito.Fax || oggettoCreazioneRecapito.Email) {\r\n (formData.IdRecapito ? postModificaRecapito : postAggiungiRecapito)(oggettoCreazioneRecapito)\r\n .then((response) => {\r\n if (response.Success) {\r\n setCreazioneNuovoCoobbligato(false);\r\n setCurrentStep(STEP.ANAGRAFICA_RESIDENZA);\r\n presetForm({ TipoPersona: TIPO_PERSONA.PERSONA_FISICA, CodiceFiscale: null });\r\n } else {\r\n setSegnalazioni(response.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n } else {\r\n setCreazioneNuovoCoobbligato(false);\r\n setCurrentStep(STEP.ANAGRAFICA_RESIDENZA);\r\n presetForm({ TipoPersona: TIPO_PERSONA.PERSONA_FISICA, CodiceFiscale: null });\r\n }\r\n } else {\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n } else if (oggettoCreazioneRecapito.Telefono || oggettoCreazioneRecapito.Cellulare || oggettoCreazioneRecapito.Fax || oggettoCreazioneRecapito.Email) {\r\n (formData.IdRecapito ? postModificaRecapito : postAggiungiRecapito)(oggettoCreazioneRecapito)\r\n .then((response) => {\r\n if (response.Success) {\r\n setCreazioneNuovoCoobbligato(false);\r\n setCurrentStep(STEP.ANAGRAFICA_RESIDENZA);\r\n presetForm({ TipoPersona: TIPO_PERSONA.PERSONA_FISICA, CodiceFiscale: null });\r\n } else {\r\n setSegnalazioni(response.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n } else {\r\n setCreazioneNuovoCoobbligato(false);\r\n setCurrentStep(STEP.ANAGRAFICA_RESIDENZA);\r\n presetForm({ TipoPersona: TIPO_PERSONA.PERSONA_FISICA, CodiceFiscale: null });\r\n }\r\n }, [formData, presetForm, studioSelezionato]);\r\n\r\n const onNext = useCallback(() => {\r\n if (currentStep === STEP.CONTO_RECAPITI) {\r\n aggiungiContoERecapito(ibanManuale);\r\n } else {\r\n creaAnagrafica();\r\n setSegnalazioni([]);\r\n }\r\n }, [aggiungiContoERecapito, creaAnagrafica, currentStep, ibanManuale]);\r\n\r\n return (\r\n onClose(esito)}\r\n className=\"modaleCoobbligato\"\r\n initialPos={{ x: 'auto', y: window.innerHeight * 0.1 }}\r\n >\r\n \r\n
    \r\n Inserisci coobbligato\r\n
    \r\n
    \r\n \r\n setIsFormValid(validity)}\r\n >\r\n {!loading && segnalazioni.length > 0\r\n ? (\r\n \r\n
      \r\n {segnalazioni.map((segnalazione, idx) => (\r\n {segnalazione.msg}\r\n \r\n ))}\r\n
    \r\n
    \r\n )}\r\n type=\"alarm\"\r\n />\r\n )\r\n : (\r\n \r\n {segnalazioni && segnalazioni.length > 0 && (\r\n \r\n )}\r\n {!creazioneNuovoCoobbligato ? (\r\n
    \r\n \r\n {\r\n presetForm({\r\n IdAnagraficaCoobbligato: val.IdAnagrafica,\r\n TipoPersonaCoobbligato: val.TipoPersona,\r\n CodiceFiscaleCoobbligato: val.CodiceFiscale,\r\n PartitaIvaCoobbligato: val.PartitaIva,\r\n DenominazioneCoobbligato: val.Denominazione,\r\n AutocompleteCoobbligato: val.CodiceFiscaleDenominazione,\r\n });\r\n }}\r\n autoFocus\r\n />\r\n \r\n {formData.AutocompleteCoobbligato && formData.TipoPersonaCoobbligato && (\r\n \r\n {\r\n presetForm({\r\n IdCodiceCoobbligato: val.Id,\r\n Codice: val.Codice,\r\n Descrizione: val.Descrizione,\r\n DescrizioneComposta: val.DescrizioneComposta,\r\n UsaContoCoobbligato: val.UsaContoCoobbligato,\r\n });\r\n }}\r\n />\r\n \r\n )}\r\n \r\n
    \r\n Non stai trovando il soggetto?\r\n
    \r\n setCreazioneNuovoCoobbligato(true)}\r\n primary\r\n >\r\n \r\n Creane uno nuovo\r\n \r\n \r\n
    \r\n ) : (\r\n \r\n )}\r\n
    \r\n )}\r\n \r\n \r\n {!creazioneNuovoCoobbligato ? (\r\n \r\n {segnalazioni.length === 0 ? (\r\n associaCoobbligato()}\r\n emphasis={Button.Emphasis.HIGH}\r\n primary\r\n disabled={!isFormValid || !formData.IdCodiceCoobbligato}\r\n running={loading}\r\n >\r\n INSERISCI\r\n \r\n ) : (\r\n setSegnalazioni([])}\r\n primary\r\n disabled={!isFormValid}\r\n running={loading}\r\n emphasis={Button.Emphasis.HIGH}\r\n >\r\n RIPROVA\r\n \r\n )}\r\n \r\n ) : (\r\n \r\n {segnalazioni.length === 0 ? (\r\n onNext()}\r\n primary\r\n disabled={!isFormValid || !formData.CodiceFiscale}\r\n running={loading}\r\n emphasis={Button.Emphasis.HIGH}\r\n >\r\n AVANTI\r\n \r\n ) : (\r\n setSegnalazioni([])}\r\n primary\r\n disabled={!isFormValid}\r\n running={loading}\r\n emphasis={Button.Emphasis.HIGH}\r\n >\r\n RIPROVA\r\n \r\n )}\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nModaleCoobbligato.defaultProps = {\r\n codiceFiscaleCoobbligatoPrecedente: null,\r\n denominazioneCoobbligatoPrecedente: null,\r\n codiceAdECoobbligatoPrecedente: null,\r\n idAnagraficaCoobbligatoPrecedente: null,\r\n idCodiceAdECoobbligatoPrecedente: null,\r\n tipoPersonaCoobbligatoPrecedente: null,\r\n};\r\n\r\nModaleCoobbligato.propTypes = {\r\n onClose: PropTypes.func.isRequired,\r\n show: PropTypes.bool.isRequired,\r\n codiceFiscaleCoobbligatoPrecedente: PropTypes.string,\r\n denominazioneCoobbligatoPrecedente: PropTypes.string,\r\n codiceAdECoobbligatoPrecedente: PropTypes.string,\r\n idDelega: PropTypes.number.isRequired,\r\n idAnagraficaCoobbligatoPrecedente: PropTypes.number,\r\n idCodiceAdECoobbligatoPrecedente: PropTypes.number,\r\n tipoPersonaCoobbligatoPrecedente: PropTypes.number,\r\n};\r\n\r\nexport default ModaleCoobbligato;\r\n","/* eslint-disable max-len */\r\nimport React from 'react';\r\nimport Icon from '../../Icons/Icon';\r\n\r\nexport default Icon(\r\n \r\n \r\n \r\n ,\r\n '0 0 24 24',\r\n 'RemoveIcon',\r\n);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\n\r\n/**\r\nLe textblock sono input in lettura, che non si possono modificare.\r\nSi può però selezionare il testo per fare una copia.\r\n */\r\nconst Textblock = ({\r\n children, className, disabled, label, text, ...others\r\n}) => (\r\n \r\n {label}\r\n {text}\r\n {children}\r\n
    \r\n);\r\n\r\nTextblock.propTypes = {\r\n /** Contenuto da renderizzare all'interno del componente */\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node,\r\n ]),\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n /** Indica se il componente è disabilitato */\r\n disabled: PropTypes.bool,\r\n /** Etichetta visualizzata dal componente */\r\n label: PropTypes.string,\r\n /** Testo visualizzato dal componente */\r\n text: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.node,\r\n ]),\r\n\r\n};\r\n\r\nTextblock.defaultProps = {\r\n children: null,\r\n className: '',\r\n disabled: false,\r\n label: '',\r\n text: '',\r\n};\r\n\r\nexport default Textblock;\r\n","import Textblock from './Textblock';\r\n\r\nexport default Textblock;\r\n","import React from 'react';\r\nimport { Textblock } from 'framework-ui-components';\r\nimport PropTypes from 'prop-types';\r\nimport { getCurrencyValue } from 'framework-taskforce/utils/format';\r\n\r\nconst LabelValueDetail = ({\r\n label, value, type, zeroValid, className,\r\n}) => {\r\n let text;\r\n if (type === 'currency') {\r\n text = getCurrencyValue(value, zeroValid);\r\n } else if (type === 'perc') {\r\n text = value || (value === 0 && zeroValid) ? `${value} %` : '-';\r\n } else if (type === 'currencyLabelValueDetail') {\r\n text = (
    {value} €
    );\r\n } else {\r\n text = value || (value === 0 && zeroValid) ? value : '-';\r\n }\r\n return (\r\n \r\n );\r\n};\r\n\r\nLabelValueDetail.defaultProps = {\r\n value: '',\r\n type: null,\r\n zeroValid: true,\r\n className: '',\r\n};\r\n\r\nLabelValueDetail.propTypes = {\r\n className: PropTypes.string,\r\n label: PropTypes.string.isRequired,\r\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.element]),\r\n type: PropTypes.oneOf(['currency', 'perc', 'other', 'currencyLabelValueDetail']),\r\n zeroValid: PropTypes.bool,\r\n};\r\n\r\nexport default LabelValueDetail;\r\n","/* eslint-disable max-len */\r\nimport Icon from 'framework-ui-components/Components/Icons/Icon';\r\nimport React from 'react';\r\n\r\nexport default Icon(\r\n \r\n \r\n \r\n ,\r\n '0 0 24 24',\r\n 'AddCircleOutlineIcon',\r\n);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nconst LabelOnly = ({ children, className }) => (\r\n
    \r\n {children}\r\n
    \r\n);\r\n\r\nLabelOnly.defaultProps = {\r\n children: null,\r\n className: null,\r\n};\r\n\r\nLabelOnly.propTypes = {\r\n children: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.node]),\r\n className: PropTypes.string,\r\n};\r\n\r\nexport default LabelOnly;\r\n","/* eslint-disable no-nested-ternary */\r\nimport React, {\r\n useState, useEffect, useCallback, useRef,\r\n} from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Autocomplete,\r\n EllipsisText, Form, Input, Radio, Restriction, Validation,\r\n} from 'framework-ui-components';\r\nimport {\r\n Modal, Button, FeedbackPanel,\r\n} from 'framework-ui-components/Components/V2';\r\nimport { useSelector } from 'react-redux';\r\nimport { logApiError } from 'framework-taskforce/utils/log';\r\nimport { isEmptyObject } from 'framework-taskforce/utils/object';\r\nimport { getSegnalazioneError } from 'framework-taskforce/models/segnalazioni';\r\nimport RemoveIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/RemoveIcon';\r\nimport { postAssociaContoCorrente } from '../../../apis/deleghe';\r\nimport TemplateGrid from '../../../components/TemplateGrid/TemplateGrid';\r\nimport LabelValueDetail from '../../../components/custom/LabelValueDetail';\r\nimport { SOGGETTO_VERSANTE } from '../../../models/delega';\r\nimport AddCircleOutlineIcon from '../../../components/icons/google/AddCircleOutlineIcon';\r\nimport SegnalazioniViewer from '../../../components/custom/SegnalazioniViewer';\r\nimport CheckboxTitle from '../../../components/custom/CheckboxTitle';\r\nimport {\r\n cercaBanche,\r\n cercaFilialiBanca,\r\n getGeneraIBAN,\r\n getOttieniContiCorrenti,\r\n postAggiungiContoCorrente,\r\n postAggiungiContoCorrenteDaIban,\r\n postModificaContoCorrente,\r\n} from '../../../apis/anagrafiche';\r\nimport LabelOnly from '../../../components/custom/LabelOnly';\r\n\r\nconst ModaleVersamento = ({\r\n onClose,\r\n show,\r\n idSoggettoVersante,\r\n soggettoVersante,\r\n idDelega,\r\n nominativoSoggettoVersante,\r\n idContoPrecedente,\r\n}) => {\r\n const studioSelezionato = useSelector((store) => store.appParams.studioSelezionato);\r\n\r\n const [loading, setLoading] = useState(false);\r\n const [isFormValid, setIsFormValid] = useState(false);\r\n const [esito, setEsito] = useState(null);\r\n const [formData, setFormData] = useState({ });\r\n const [segnalazioni, setSegnalazioni] = useState([]);\r\n const [listaContiCorrente, setListaContiCorrente] = useState(null);\r\n const [aggiuntaNuovoContoCorrente, setAggiuntaNuovoContoCorrente] = useState(false);\r\n const [ibanManuale, setIbanManuale] = useState(false);\r\n const [contoPredefinitoPrecedente, setContoPredefinitoPrecedente] = useState(false);\r\n\r\n const formRef = useRef();\r\n\r\n const presetForm = useCallback(({ FormErrors, ...datoModificato }) => {\r\n if (!formData || isEmptyObject(datoModificato)) return;\r\n\r\n let sbiancaCampoIbanGenerato;\r\n\r\n // eslint-disable-next-line no-prototype-builtins\r\n if (datoModificato.hasOwnProperty('NumeroConto') || datoModificato.hasOwnProperty('AbiBanca') || datoModificato.hasOwnProperty('CabBanca')) {\r\n sbiancaCampoIbanGenerato = true;\r\n } else {\r\n sbiancaCampoIbanGenerato = false;\r\n }\r\n\r\n const newStato = { ...formData, ...datoModificato };\r\n\r\n if (sbiancaCampoIbanGenerato) {\r\n newStato.IbanGenerato = null;\r\n }\r\n\r\n setFormData(newStato);\r\n }, [formData]);\r\n\r\n const resetDati = useCallback(() => {\r\n setLoading(false);\r\n setIsFormValid(false);\r\n setSegnalazioni([]);\r\n setEsito(null);\r\n setFormData({});\r\n setListaContiCorrente(null);\r\n setAggiuntaNuovoContoCorrente(null);\r\n setIbanManuale(false);\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (show) {\r\n resetDati();\r\n }\r\n }, [resetDati, show]);\r\n\r\n useEffect(() => {\r\n if (show && idSoggettoVersante && !listaContiCorrente) {\r\n setListaContiCorrente([]);\r\n getOttieniContiCorrenti(idSoggettoVersante)\r\n .then((res) => {\r\n if (res.Success && res.Result) {\r\n setListaContiCorrente(res.Result);\r\n const contoPredefinitoPrecedenteDaLista = res.Result.find((conto) => conto.Predefinito);\r\n if (contoPredefinitoPrecedenteDaLista) {\r\n setContoPredefinitoPrecedente(contoPredefinitoPrecedenteDaLista);\r\n }\r\n presetForm({\r\n IdContoSelezionato: contoPredefinitoPrecedenteDaLista?.Id || (res.Result.length === 1 ? res.Result[0].Id : idContoPrecedente),\r\n });\r\n } else {\r\n setListaContiCorrente([]);\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n }\r\n }, [formData.IdAnagrafica, idContoPrecedente, idSoggettoVersante, listaContiCorrente, presetForm, show]);\r\n\r\n useEffect(() => {\r\n if (!show) {\r\n // reset data on close\r\n resetDati();\r\n }\r\n }, [resetDati, setFormData, show]);\r\n\r\n const onChangeAutocompletes = (campo, elemento) => {\r\n const autocompleteVals = [];\r\n\r\n if (campo === 'Banca') {\r\n autocompleteVals.AbiBanca = elemento.Abi;\r\n autocompleteVals.DescrizioneBanca = elemento.Descrizione;\r\n autocompleteVals.Banca = elemento.DescrizioneComposta;\r\n autocompleteVals.CabBanca = null;\r\n autocompleteVals.Filiale = null;\r\n }\r\n if (campo === 'Filiale') {\r\n autocompleteVals.CabBanca = elemento.Cab;\r\n autocompleteVals.Filiale = elemento.DescrizioneComposta;\r\n }\r\n\r\n presetForm(autocompleteVals);\r\n };\r\n\r\n const aggiungiEdAssociaContoCorrente = useCallback((oggettoAssociare, isIbanManuale) => {\r\n const oggettoCreazione = {\r\n IdStudio: studioSelezionato,\r\n IdAnagrafica: idSoggettoVersante,\r\n Iban: isIbanManuale ? formData.IbanManuale : null,\r\n AbiBanca: isIbanManuale ? null : formData.AbiBanca,\r\n CabBanca: isIbanManuale ? null : formData.CabBanca,\r\n NumeroConto: isIbanManuale ? null : formData.NumeroConto,\r\n Predefinito: formData.Predefinito,\r\n };\r\n if (formData.Predefinito && contoPredefinitoPrecedente && contoPredefinitoPrecedente.Id) {\r\n const exContoPredefinito = {\r\n IdContoCorrente: contoPredefinitoPrecedente.Id,\r\n IdAnagrafica: idSoggettoVersante,\r\n Iban: isIbanManuale ? contoPredefinitoPrecedente.IbanManuale : null,\r\n AbiBanca: isIbanManuale ? null : contoPredefinitoPrecedente.AbiBanca,\r\n CabBanca: isIbanManuale ? null : contoPredefinitoPrecedente.CabBanca,\r\n NumeroConto: isIbanManuale ? null : contoPredefinitoPrecedente.NumeroConto,\r\n Predefinito: false,\r\n };\r\n\r\n postModificaContoCorrente(exContoPredefinito).then((result) => {\r\n if (result.Success) {\r\n (isIbanManuale ? postAggiungiContoCorrenteDaIban : postAggiungiContoCorrente)(oggettoCreazione)\r\n .then((res) => {\r\n if (res.Success) {\r\n postAssociaContoCorrente({ ...oggettoAssociare, IdContoCorrente: res.Result })\r\n .then((rsponse) => {\r\n if (rsponse.Success) {\r\n onClose(true);\r\n } else {\r\n setSegnalazioni(rsponse.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n } else {\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n } else {\r\n setSegnalazioni(result.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n } else {\r\n (isIbanManuale ? postAggiungiContoCorrenteDaIban : postAggiungiContoCorrente)(oggettoCreazione)\r\n .then((res) => {\r\n if (res.Success) {\r\n postAssociaContoCorrente({ ...oggettoAssociare, IdContoCorrente: res.Result })\r\n .then((rsponse) => {\r\n if (rsponse.Success) {\r\n onClose(true);\r\n } else {\r\n setSegnalazioni(rsponse.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n } else {\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n }\r\n }, [contoPredefinitoPrecedente, formData, idSoggettoVersante, onClose, studioSelezionato]);\r\n\r\n const associaContoCorrente = useCallback(() => {\r\n const oggettoAssociare = {\r\n IdDelega: idDelega,\r\n IdContoCorrente: formData.IdContoSelezionato,\r\n };\r\n\r\n setLoading(true);\r\n\r\n if (!oggettoAssociare.IdContoCorrente) {\r\n aggiungiEdAssociaContoCorrente(oggettoAssociare, ibanManuale);\r\n } else {\r\n postAssociaContoCorrente(oggettoAssociare)\r\n .then((res) => {\r\n if (res.Success) {\r\n onClose(true);\r\n } else {\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n }\r\n }, [aggiungiEdAssociaContoCorrente, formData.IdContoSelezionato, ibanManuale, idDelega, onClose]);\r\n\r\n const nuovoConto = useCallback(() => {\r\n setAggiuntaNuovoContoCorrente(true);\r\n setFormData({});\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (aggiuntaNuovoContoCorrente && !formData.IbanGenerato\r\n && formData.AbiBanca && formData.CabBanca && formData.NumeroConto) {\r\n getGeneraIBAN(formData.AbiBanca, formData.CabBanca, formData.NumeroConto)\r\n .then((res) => {\r\n if (res.Success) {\r\n presetForm({\r\n IbanGenerato: res.Result,\r\n });\r\n }\r\n })\r\n .catch((e) => {\r\n });\r\n }\r\n }, [aggiuntaNuovoContoCorrente, formData, presetForm]);\r\n\r\n const cambioIbanManuale = useCallback((event) => {\r\n setIbanManuale(event.target.checked);\r\n if (event.target.checked) {\r\n presetForm({\r\n AbiBanca: null,\r\n CabBanca: null,\r\n DescrizioneBanca: null,\r\n Banca: null,\r\n FilialeCab: null,\r\n Filiale: null,\r\n NumeroConto: null,\r\n IbanGenerato: null,\r\n });\r\n } else {\r\n presetForm({\r\n IbanManuale: null,\r\n });\r\n }\r\n }, [presetForm]);\r\n\r\n return (\r\n onClose(esito)}\r\n className=\"contribuenti--modale-creazione\"\r\n initialPos={{ x: 'auto', y: window.innerHeight * 0.1 }}\r\n >\r\n \r\n
    \r\n Inserisci le coordinate per l'addebito su c/c\r\n
    \r\n
    \r\n \r\n setIsFormValid(validity)}\r\n >\r\n {!loading && segnalazioni.length > 0\r\n ? (\r\n \r\n
      \r\n {segnalazioni.map((segnalazione, idx) => (\r\n {segnalazione.msg}\r\n \r\n ))}\r\n
    \r\n \r\n )}\r\n type=\"alarm\"\r\n />\r\n )\r\n : (\r\n \r\n {segnalazioni && segnalazioni.length > 0 && (\r\n \r\n )}\r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n {listaContiCorrente && listaContiCorrente.length > 0 ?
    IBAN
    :
    }\r\n conto.Predefinito) ? '200px' : '0px' },\r\n ],\r\n rows: [{ className: 'mt-8' }],\r\n },\r\n ]}\r\n >\r\n {listaContiCorrente && (\r\n listaContiCorrente.map((conto) => [\r\n ,\r\n \r\n {conto.DescrizioneSede}\r\n
    ,\r\n \r\n {conto.DescrizioneFiliale}\r\n
    ,\r\n listaContiCorrente.find((contoPredefinito) => contoPredefinito.Predefinito)\r\n ? (\r\n \r\n {conto.Predefinito && (Predefinito)}\r\n \r\n ) :
    ,\r\n ])\r\n )}\r\n \r\n
    \r\n \r\n {!aggiuntaNuovoContoCorrente ? (\r\n nuovoConto()}\r\n >\r\n \r\n Aggiungi un nuovo conto corrente\r\n \r\n ) : (\r\n {\r\n setAggiuntaNuovoContoCorrente(false);\r\n setFormData({});\r\n }}\r\n >\r\n \r\n Non aggiungere un nuovo conto corrente\r\n \r\n )}\r\n \r\n {aggiuntaNuovoContoCorrente && (\r\n
    \r\n \r\n onChangeAutocompletes('Banca', val)}\r\n validations={ibanManuale ? [] : [Validation.DefaultRules.required]}\r\n autoFocus\r\n disabled={ibanManuale}\r\n />\r\n onChangeAutocompletes('Filiale', val)}\r\n validations={ibanManuale ? [] : [Validation.DefaultRules.required]}\r\n readOnly={!ibanManuale && !formData.AbiBanca}\r\n disabled={ibanManuale}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n )}\r\n
    \r\n )}\r\n \r\n
    \r\n \r\n {segnalazioni.length === 0 ? (\r\n associaContoCorrente()}\r\n emphasis={Button.Emphasis.HIGH}\r\n primary\r\n disabled={(!formData.IdContoSelezionato && !aggiuntaNuovoContoCorrente) || (!isFormValid && aggiuntaNuovoContoCorrente)}\r\n running={loading}\r\n >\r\n INSERISCI\r\n \r\n ) : (\r\n setSegnalazioni([])}\r\n emphasis={Button.Emphasis.HIGH}\r\n primary\r\n running={loading}\r\n >\r\n RIPROVA\r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nModaleVersamento.defaultProps = {\r\n idContoPrecedente: null,\r\n nominativoSoggettoVersante: null,\r\n idSoggettoVersante: null,\r\n};\r\n\r\nModaleVersamento.propTypes = {\r\n onClose: PropTypes.func.isRequired,\r\n show: PropTypes.bool.isRequired,\r\n idSoggettoVersante: PropTypes.number,\r\n soggettoVersante: PropTypes.number.isRequired,\r\n nominativoSoggettoVersante: PropTypes.string,\r\n idContoPrecedente: PropTypes.number,\r\n idDelega: PropTypes.number.isRequired,\r\n};\r\n\r\nexport default ModaleVersamento;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport ModalPortal from '../Modal/Modal';\r\nimport { NOOP } from '../../../../utils/const';\r\nimport DontShowAgain from '../../../DontShowAgain/DontShowAgain';\r\nimport useDontShowAgainMessageRead from '../../../DontShowAgain/useDontShowAgainMessageRead';\r\nimport { createClosedByDontShowAgainEvent } from '../Modal/utils';\r\n\r\n/**\r\nModale di conferma. Per avvertire l'utente che quello che sta per fare è irreversibile.\r\n\r\nVedi [Design System di CGN - Modale di conferma](https://zeroheight.com/1b5e94371/p/30dc25-modale-di-conferma/b/77ebf2)\r\n\r\n*/\r\nconst ConfirmModal = ({\r\n show, className, initialPos, ...confirmProps\r\n}) => {\r\n const messageRead = useDontShowAgainMessageRead(confirmProps.dontShowAgainId, show);\r\n if (messageRead) {\r\n confirmProps.onClose(createClosedByDontShowAgainEvent(undefined, confirmProps.dontShowAgainId));\r\n return null;\r\n }\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nConfirmModal.propTypes = {\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n /** Classi css personalizzate da aggiungere al body della modale */\r\n classNameBody: PropTypes.string,\r\n /** Indica se mostrare o meno la modale */\r\n show: PropTypes.bool,\r\n\r\n /** Immagine da mostrare per dare enfasi al messaggio. L'immagine deve stare in un quadrato di 120px. */\r\n image: PropTypes.node,\r\n\r\n /**\r\nCallback di chiusura della modale per la gestione dontShowAgain.\r\n */\r\n onClose: PropTypes.func,\r\n\r\n /** Etichetta del bottone di scelta primaria */\r\n primaryLabel: PropTypes.string.isRequired,\r\n /**\r\nCallback alla pressione della scelta primaria. Il primo parametro è l'evento scatenante.\r\n */\r\n onPrimaryClick: PropTypes.func,\r\n\r\n /** Etichetta del bottone di scelta secondaria */\r\n secondaryLabel: PropTypes.string.isRequired,\r\n /**\r\nCallback alla pressione della scelta secondaria. Il primo parametro è l'evento scatenante.\r\n */\r\n onSecondaryClick: PropTypes.func,\r\n\r\n /**\r\nIdentificativo del componente per la gestione 'Non visualizzare più'. Se impostato abilita la gestione.\r\nLo stato è salvato nella sessione locale del browser quindi è necessario un identificativo per gestire il salvataggio.\r\n\r\nTipicamente è composto dall'id dell'utente e da un identificativo del messaggio.\r\n\r\nUtilizzare `ConfirmModal.clearMessageStatus` per pulire lo stato.\r\n */\r\n dontShowAgainId: PropTypes.string,\r\n\r\n /**\r\nMessaggio del componente per la gestione 'Non visualizzare più'.\r\n */\r\n dontShowAgainMessage: PropTypes.string,\r\n\r\n /** Titolo */\r\n title: PropTypes.string.isRequired,\r\n /** Messaggio o contenuto */\r\n message: PropTypes.oneOfType([PropTypes.string, PropTypes.node]).isRequired,\r\n /** Indica la posizione iniziale di apertura della modale */\r\n initialPos: PropTypes.shape({\r\n x: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.number,\r\n ]),\r\n y: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.number,\r\n ]),\r\n }),\r\n};\r\n\r\nConfirmModal.defaultProps = {\r\n className: undefined,\r\n classNameBody: undefined,\r\n show: false,\r\n onPrimaryClick: NOOP,\r\n onSecondaryClick: NOOP,\r\n onClose: NOOP,\r\n dontShowAgainId: undefined,\r\n dontShowAgainMessage: 'Non mostrare più questo messaggio',\r\n image: undefined,\r\n initialPos: undefined,\r\n};\r\n\r\nConfirmModal.clearMessageStatus = DontShowAgain.clearMessageStatus;\r\n\r\nexport default ConfirmModal;\r\n","/* eslint-disable max-len */\r\nimport React from 'react';\r\n\r\nconst ConfirmImage = () => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n);\r\n\r\nexport default ConfirmImage;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { ConfirmModal } from 'framework-ui-components/Components/V2';\r\nimport ConfirmImage from './icons/ConfirmImage';\r\n\r\nconst ModaleConfermaEliminazione = ({\r\n show, onClose, elimina, nomeElementoEliminato,\r\n}) => (\r\n }\r\n onClose={onClose}\r\n primaryLabel=\"Non eliminare\"\r\n onPrimaryClick={onClose}\r\n secondaryLabel=\"Elimina\"\r\n onSecondaryClick={elimina}\r\n title={`Sei sicuro di voler eliminare ${nomeElementoEliminato}?`}\r\n message=\"Se decidi di procedere non potrai più recuperare i dati così rimossi\"\r\n // dontShowAgainId=\"elimina-elemento-non-visualizza-piu\"\r\n />\r\n);\r\n\r\nModaleConfermaEliminazione.propTypes = {\r\n show: PropTypes.bool.isRequired,\r\n onClose: PropTypes.func.isRequired,\r\n elimina: PropTypes.func.isRequired,\r\n nomeElementoEliminato: PropTypes.string.isRequired,\r\n};\r\n\r\nexport default ModaleConfermaEliminazione;\r\n","import { WebRequest } from 'framework-ui-components';\r\n\r\nconst ottieniIntermediariUrl = (\r\n idStudio,\r\n searchType,\r\n searchTerm,\r\n) => `/Studio/OttieniIntermediari?idStudio=${idStudio}&searchTerm=${searchTerm}`;\r\n\r\nconst getOttieniIntermediarioPersonaFisica = (idStudio, codiceFiscale) => WebRequest.get('/Studio/OttieniPersonaFisica', {\r\n idStudio,\r\n codiceFiscale,\r\n});\r\n\r\nconst getOttieniIntermediarioPersonaGiuridica = (idStudio, codiceFiscale) => WebRequest.get('/Studio/OttieniPersonaGiuridica', {\r\n idStudio,\r\n codiceFiscale,\r\n});\r\n\r\nconst getOttieniIntermediari = (idStudio, searchTerm) => WebRequest.get('/Studio/OttieniIntermediari', {\r\n idStudio, searchTerm,\r\n});\r\n\r\nconst getOttieniIntermediario = (idIntermediario) => WebRequest.get('/Studio/OttieniIntermediario', {\r\n idIntermediario,\r\n});\r\n\r\nconst getOttieniDelegheAssociateIntermediario = (idIntermediario) => WebRequest.get('/Studio/OttieniDelegheAssociateIntermediario', {\r\n idIntermediario,\r\n});\r\n\r\nconst postCreaIntermediarioPersonaFisica = (command) => WebRequest.post('/Studio/CreaIntermediarioPersonaFisica', command);\r\n\r\nconst postCreaIntermediarioPersonaGiuridica = (command) => WebRequest.post('/Studio/CreaIntermediarioPersonaGiuridica', command);\r\n\r\nconst cercaIntermediari = (idStudio) => (\r\n `/Studio/CercaIntermediari?idStudio=${idStudio}`);\r\n\r\nexport {\r\n ottieniIntermediariUrl,\r\n getOttieniIntermediari,\r\n getOttieniIntermediario,\r\n getOttieniIntermediarioPersonaFisica,\r\n getOttieniIntermediarioPersonaGiuridica,\r\n postCreaIntermediarioPersonaFisica,\r\n postCreaIntermediarioPersonaGiuridica,\r\n getOttieniDelegheAssociateIntermediario,\r\n cercaIntermediari,\r\n};\r\n","import { format, parse } from 'framework-ui-components/Components/Utils/numeriHelper';\r\n\r\n/**\r\n * DA RIMUOVERE Funzione che formatta un valore in formato currency senza simbolo €\r\n * @param {*} val\r\n * @param {*} zeroValid\r\n */\r\nconst getCurrencyValueNoSymbol = (val, zeroValid = true) => {\r\n if ((!val && !zeroValid) || val === null) return '-';\r\n const valNum = parse(val);\r\n if (!valNum && !zeroValid) return '-';\r\n const formatValue = format(val, 2);\r\n return formatValue ? `${formatValue}` : '-';\r\n};\r\n\r\n/**\r\n * DA RIMUOVERE Funzione che maiuscolizza solo la prima lettera di una stringa\r\n * @param {*} stringa\r\n */\r\nconst primaLetteraMaiuscolaStringa = (stringa) => (\r\n stringa ? stringa.charAt(0).toUpperCase() + stringa.slice(1).toLowerCase() : stringa);\r\n\r\nconst addZero = (value) => (value < 10 ? `0${value}` : value);\r\n\r\nconst createDate = (date) => {\r\n const day = addZero(date.getDate());\r\n const month = addZero(date.getMonth() + 1);\r\n const year = date.getFullYear().toString();\r\n\r\n return `${day}/${month}/${year}`;\r\n};\r\n\r\nconst convertUTCDateToLocalDate = (date) => {\r\n const newDate = new Date(date.getTime() - date.getTimezoneOffset() * 60 * 1000);\r\n const offset = date.getTimezoneOffset() / 60;\r\n const hours = date.getHours();\r\n\r\n newDate.setHours(hours - offset);\r\n\r\n return newDate;\r\n};\r\n\r\nconst convertUTCDateFromLocalDate = (date) => {\r\n const newDate = new Date(date.getTime() + date.getTimezoneOffset() * 60 * 1000);\r\n const offset = date.getTimezoneOffset() / 60;\r\n const hours = date.getHours();\r\n\r\n newDate.setHours(hours + offset);\r\n\r\n return newDate;\r\n};\r\n\r\nexport {\r\n getCurrencyValueNoSymbol,\r\n primaLetteraMaiuscolaStringa,\r\n createDate,\r\n convertUTCDateToLocalDate,\r\n convertUTCDateFromLocalDate,\r\n};\r\n","/* eslint-disable no-nested-ternary */\r\nimport React, {\r\n useState, useEffect, useCallback,\r\n} from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n DatePicker,\r\n Spinner, Validation,\r\n} from 'framework-ui-components';\r\nimport {\r\n Modal,\r\n Button,\r\n FeedbackPanel,\r\n} from 'framework-ui-components/Components/V2';\r\nimport TemplateGrid from '../../../../../../components/TemplateGrid/TemplateGrid';\r\n\r\nconst ModaleDichiaraPagata = ({\r\n onClose,\r\n show,\r\n idDelega,\r\n dataScadenzaVersamento,\r\n dataVersamento,\r\n dichiaraPagata,\r\n segnalazioni,\r\n setSegnalazioni,\r\n}) => {\r\n const [loading, setLoading] = useState(false);\r\n const [dataEffettivoPagamento, setDataEffettivoPagamento] = useState(new Date(dataVersamento || dataScadenzaVersamento));\r\n\r\n const resetDati = useCallback(() => {\r\n setLoading(false);\r\n setDataEffettivoPagamento(new Date(dataVersamento || dataScadenzaVersamento));\r\n }, [dataScadenzaVersamento, dataVersamento]);\r\n\r\n useEffect(() => {\r\n if (show) {\r\n resetDati();\r\n }\r\n }, [resetDati, show]);\r\n\r\n useEffect(() => {\r\n if (!show) {\r\n // reset data on close\r\n resetDati();\r\n }\r\n }, [resetDati, show]);\r\n\r\n const onChangeDataPagamento = useCallback((val) => {\r\n setDataEffettivoPagamento(val);\r\n setSegnalazioni([]);\r\n }, [setDataEffettivoPagamento, setSegnalazioni]);\r\n\r\n return (\r\n \r\n \r\n
    \r\n Segna come pagata\r\n
    \r\n
    \r\n \r\n {loading\r\n ? \r\n : (\r\n segnalazioni.length > 0\r\n ? (\r\n \r\n
      \r\n {segnalazioni.map((segnalazione, idx) => (\r\n {segnalazione.msg}\r\n \r\n ))}\r\n
    \r\n \r\n )}\r\n type=\"alarm\"\r\n />\r\n )\r\n : (\r\n \r\n \r\n
    \r\n Per segnare la delega come pagata inserisci la data di effettivo pagamento.\r\n
    \r\n
    \r\n \r\n \r\n onChangeDataPagamento(val)}\r\n autoFocus\r\n date={dataEffettivoPagamento}\r\n />\r\n \r\n
    \r\n )\r\n )}\r\n
    \r\n \r\n {segnalazioni.length === 0 ? (\r\n \r\n onClose(false)}\r\n emphasis={Button.Emphasis.HIGH}\r\n >\r\n ANNULLA\r\n \r\n { dichiaraPagata(idDelega, dataEffettivoPagamento); }}\r\n primary\r\n disabled={!dataEffettivoPagamento || loading}\r\n emphasis={Button.Emphasis.HIGH}\r\n >\r\n OK\r\n \r\n \r\n ) : (\r\n setSegnalazioni([])}\r\n primary\r\n emphasis={Button.Emphasis.HIGH}\r\n >\r\n RIPROVA\r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nModaleDichiaraPagata.defaultProps = {\r\n dataVersamento: null,\r\n dataScadenzaVersamento: null,\r\n};\r\n\r\nModaleDichiaraPagata.propTypes = {\r\n onClose: PropTypes.func.isRequired,\r\n show: PropTypes.bool.isRequired,\r\n idDelega: PropTypes.number.isRequired,\r\n dataVersamento: PropTypes.string,\r\n dataScadenzaVersamento: PropTypes.string,\r\n dichiaraPagata: PropTypes.func.isRequired,\r\n setSegnalazioni: PropTypes.func.isRequired,\r\n segnalazioni: PropTypes.arrayOf(PropTypes.string).isRequired,\r\n};\r\n\r\nexport default ModaleDichiaraPagata;\r\n","import React from 'react';\r\nimport Icon from './Icon';\r\n\r\nexport default Icon(\r\n \r\n \r\n \r\n , '0 -5 10 40', 'InfosIcon',\r\n);\r\n","import React, { useMemo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\nimport InfoesIcon from '../Icons/InfoesIcon';\r\nimport ErroreIcon from '../Icons/ErroreIcon';\r\nimport SuccessoIcon from '../Icons/SuccessoIcon';\r\nimport Tooltip from '../Tooltip/Tooltip';\r\n\r\n/**\r\nIl componente è stato pensato per visualizzare informazioni\r\naggiuntive riguardo ad una limitata funzionalità o sezione di interfaccia.\r\n\r\n__DEPRECATO: utilizzare `V2/DrawAttention`__\r\n */\r\nconst InfoTooltip = ({\r\n children, left, right, top, type, className,\r\n}) => {\r\n const Icon = useMemo(() => {\r\n if (type === 'alarm' || type === 'warning') {\r\n return ErroreIcon;\r\n }\r\n if (type === 'success') {\r\n return SuccessoIcon;\r\n }\r\n return InfoesIcon;\r\n }, [type]);\r\n\r\n const classes = cns(\r\n 'infoTooltip--icon',\r\n `infoTooltip--${type}`,\r\n className,\r\n );\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nInfoTooltip.propTypes = {\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n /** Contenuto da renderizzare all'interno del componente */\r\n children: PropTypes.node,\r\n /** Indica se aprire il contenuto spostato verso sinistra */\r\n left: PropTypes.bool,\r\n /** Indica se aprire il contenuto spostato verso destra */\r\n right: PropTypes.bool,\r\n /** Mostra il contenuto sopra */\r\n top: PropTypes.bool,\r\n /** Indica la tipologia del tooltip */\r\n type: PropTypes.oneOf(['info', 'alarm', 'warning', 'success']),\r\n};\r\n\r\nInfoTooltip.defaultProps = {\r\n className: '',\r\n children: null,\r\n left: false,\r\n right: false,\r\n top: false,\r\n type: 'info',\r\n};\r\n\r\nexport default InfoTooltip;\r\n","import InfoTooltip from './InfoTooltip';\r\n\r\nexport default InfoTooltip;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\n\r\nimport getElementType from '../Utils/getElementType';\r\n\r\n/**\r\nIl componente è stato pensato per renderizzare dei link.\r\n\r\nVedi [Design System di CGN - Link](https://zeroheight.com/1b5e94371/p/345d98-link/b/66a7ee)\r\n\r\nQuesto componente fa uno di un particolare metodo di renderizzazione, rappresentato dalla prop as.\r\nSpecificando in tale proprietà un tag HTML o un componente React, verrà disegnato esso per rappresentare il componente Heading.\r\nDi norma se presente la props href verrà renderizzato il tag anchor.\r\n */\r\nconst Link = (props) => {\r\n const {\r\n children,\r\n content,\r\n className,\r\n as,\r\n href,\r\n ...others\r\n } = props;\r\n\r\n const ElementType = getElementType(Link, props);\r\n\r\n const classes = cns(\r\n 'link',\r\n className,\r\n { 'link--pointer': !!others.onClick },\r\n );\r\n\r\n return (\r\n \r\n {content || children}\r\n \r\n );\r\n};\r\n\r\nLink.propTypes = {\r\n /** Definisce il tag con il quale renderizzare il componente */\r\n as: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\r\n /** Contenuto da renderizzare all'interno del componente */\r\n children: PropTypes.node,\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n /** Contenuto da renderizzare all'interno del componente */\r\n content: PropTypes.node,\r\n /** Proprietà necessaria per agganciare un link al componente */\r\n href: PropTypes.string,\r\n};\r\n\r\nLink.defaultProps = {\r\n as: '',\r\n children: null,\r\n className: '',\r\n content: null,\r\n href: '',\r\n};\r\n\r\nexport default Link;\r\n","import Link from './Link';\r\n\r\nexport default Link;\r\n","/* eslint-disable max-len */\r\nimport React from 'react';\r\nimport Icon from '../../Icons/Icon';\r\n\r\nexport default Icon(\r\n \r\n \r\n \r\n ,\r\n '0 0 24 24',\r\n 'CloseIcon',\r\n);\r\n","import React from 'react';\r\nimport cns from 'classnames';\r\nimport PropTypes from 'prop-types';\r\nimport Button from '../Button/Button';\r\nimport CloseIcon from '../../GoogleIcons/Outlined/CloseIcon';\r\n\r\n/**\r\n * Componente che renderizza il contenuto del popup di un `Tooltip`.\r\n */\r\nconst TooltipContent = ({ onClose, children, className }) => (\r\n
    \r\n {children}\r\n {onClose\r\n && (\r\n \r\n )}\r\n
    \r\n);\r\n\r\nTooltipContent.propTypes = {\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n /** Contenuto da renderizzare all'interno del componente */\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node,\r\n ]).isRequired,\r\n\r\n /**\r\nCallback chiamata alla richiesta di chiusura del tooltip. Se undefined, non mostra il bottone di chiusura.\r\n */\r\n onClose: PropTypes.func,\r\n};\r\n\r\nTooltipContent.defaultProps = {\r\n className: undefined,\r\n onClose: undefined,\r\n};\r\n\r\nexport default TooltipContent;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\nimport useTooltipHoverWithDelay from '../Hooks/useTooltipHoverWithDelay';\r\nimport TooltipContent from './TooltipContent';\r\n\r\n/**\r\nIl componente avvolge un qualsiasi componente aggiungendo un tooltip che compare all'hover.\r\nSe lo stato è uncontrolled, il tooltip funziona al hover dei children.\r\n\r\nIl contenuto deve avere tra le 9 e le 12 parole per riga.\r\n*/\r\nconst Tooltip = ({\r\n className, contentClassName, children, content, position, type, show, onClose, onMouseEnter, onMouseLeave,\r\n}) => {\r\n const showOnHover = show === undefined || show === null;\r\n\r\n return (\r\n \r\n {(show || showOnHover) && {content}}\r\n {children}\r\n \r\n );\r\n};\r\n\r\nTooltip.propTypes = {\r\n /** Contenuto da renderizzare all'interno del componente */\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node,\r\n ]).isRequired,\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n /** Contenuto da renderizzare all'interno del tooltip */\r\n content: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.node,\r\n ]).isRequired,\r\n /** Classi css personalizzate da aggiungere al contenuto del tooltip */\r\n contentClassName: PropTypes.string,\r\n\r\n /**\r\nCallback chiamata alla richiesta di chiusura del tooltip.\r\n\r\nATTENZIONE: funziona solo se lo stato è controlled.\r\n */\r\n onClose: PropTypes.func,\r\n\r\n /**\r\nCallback all'ingresso del mouse.\r\n */\r\n onMouseEnter: PropTypes.func,\r\n\r\n /**\r\nCallback all'uscita del mouse.\r\n */\r\n onMouseLeave: PropTypes.func,\r\n\r\n /** Posizione della tooltip */\r\n position: PropTypes.oneOf(['left', 'right', 'top', 'bottom']),\r\n /**\r\nStato di presentazione del tooltip.\r\n\r\nSe lo stato è uncontrolled, il tooltip funziona al hover dei children.\r\n */\r\n show: PropTypes.bool,\r\n\r\n /** Indica la tipologia del tooltip */\r\n type: PropTypes.oneOf(['info', 'alarm', 'warning', 'success', 'safe']),\r\n};\r\n\r\nTooltip.defaultProps = {\r\n className: undefined,\r\n contentClassName: undefined,\r\n position: 'bottom',\r\n type: undefined,\r\n show: undefined,\r\n onClose: undefined,\r\n onMouseEnter: undefined,\r\n onMouseLeave: undefined,\r\n};\r\n\r\nTooltip.useTooltipHoverWithDelay = useTooltipHoverWithDelay;\r\nTooltip.Content = TooltipContent;\r\n\r\nexport default Tooltip;\r\n","import { useMemo, useState } from 'react';\r\nimport debounce from '../../Utils/debouncer';\r\n\r\n/**\r\n * Questo componente gestite lo stato di un componente Tooltip ritardando la chiusura di `delay` millisecondi.\r\n *\r\n * Deve essere utilizzato quando il contenuto del tooltip ha dei componenti attivi,\r\n * ad esempio un link, e il delay deve essere scelto per dare il tempo all'utente di agire.\r\n *\r\n * Per un link, è possibile utilizzare il delay di default\r\n * @param {number?} delay delay in millisecondi\r\n * @returns {array} ritorna nell'ordine lo show, onMouseEnter, onMouseLeave.\r\n */\r\nfunction useTooltipHoverWithDelay(delay = 1000) {\r\n const [show, setShow] = useState(false);\r\n\r\n const [onMouseEnter, onMouseLeave] = useMemo(() => {\r\n const handleHideContent = debounce(() => { setShow(false); }, delay);\r\n return [\r\n () => { setShow(true); },\r\n handleHideContent,\r\n ];\r\n }, [delay]);\r\n\r\n return [show, onMouseEnter, onMouseLeave];\r\n}\r\n\r\nexport default useTooltipHoverWithDelay;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\n/**\r\n * Conteiner principale per l'impostazione del layout di una pagina a blocchi\r\n */\r\nconst Container = ({\r\n children, className,\r\n}) => (\r\n
    \r\n {children}\r\n
    \r\n);\r\n\r\nContainer.propTypes = {\r\n\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n\r\n /** Contenuto di blocchi e blocchi elastici */\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node,\r\n ]),\r\n};\r\n\r\nContainer.defaultProps = {\r\n children: null,\r\n className: '',\r\n};\r\n\r\nexport default Container;\r\n","import React, { useMemo } from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\n/**\r\n * Blocco per inserire a moduli un contenuto\r\n */\r\nconst Box = ({\r\n children, width, height, positionHorizontal, positionVertical, className,\r\n}) => {\r\n const style = useMemo(() => {\r\n // eslint-disable-next-line no-nested-ternary\r\n const alignItems = positionVertical === 'center' ? 'center' : positionVertical === 'bottom' ? 'end' : 'start';\r\n return {\r\n justifyContent: positionHorizontal || undefined,\r\n textAlign: positionHorizontal || undefined,\r\n alignItems,\r\n width,\r\n height,\r\n };\r\n }, [height, positionHorizontal, positionVertical, width]);\r\n\r\n return (\r\n \r\n
    \r\n {children}\r\n
    \r\n \r\n );\r\n};\r\n\r\nBox.propTypes = {\r\n /** Larghezza del blocco */\r\n width: PropTypes.string,\r\n\r\n /** Altezza del blocco (se non indicata prende l'altezza massima del container) */\r\n height: PropTypes.string,\r\n\r\n /** Posizionamento verticale del contenuto */\r\n positionVertical: PropTypes.oneOf(['top', 'center', 'bottom']),\r\n\r\n /** Posizionamento orizzontale del contenuto */\r\n positionHorizontal: PropTypes.oneOf(['left', 'center', 'right']),\r\n\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n\r\n /** Contenuto del blocco */\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node,\r\n ]),\r\n};\r\n\r\nBox.defaultProps = {\r\n children: null,\r\n width: '100%',\r\n height: null,\r\n positionVertical: null,\r\n positionHorizontal: null,\r\n className: '',\r\n};\r\n\r\nexport default Box;\r\n","import Container from './Container';\r\nimport Box from './Box';\r\nimport ElasticSeparator from './ElasticSeparator';\r\n\r\nconst Layout = {\r\n Container,\r\n Box,\r\n ElasticSeparator,\r\n};\r\n\r\nexport default Layout;\r\n","import React from 'react';\r\n\r\n/**\r\n * Blocco elastico\r\n */\r\nconst ElasticSeparator = () =>
    ;\r\n\r\nexport default ElasticSeparator;\r\n","/* eslint-disable max-len */\r\nimport React from 'react';\r\nimport Icon from '../../Icons/Icon';\r\n\r\nexport default Icon(\r\n \r\n \r\n \r\n ,\r\n '0 0 24 24',\r\n 'InfoIcon',\r\n);\r\n","/* eslint-disable max-len */\r\nimport React from 'react';\r\nimport Icon from '../../Icons/Icon';\r\n\r\nexport default Icon(\r\n \r\n \r\n \r\n ,\r\n '0 0 24 24',\r\n 'LayersIcon',\r\n);\r\n","/* eslint-disable max-len */\r\nimport React from 'react';\r\nimport Icon from '../../Icons/Icon';\r\n\r\nexport default Icon(\r\n \r\n \r\n \r\n ,\r\n '0 0 24 24',\r\n 'DesignServiceIcon',\r\n);\r\n","/* eslint-disable max-len */\r\nimport React from 'react';\r\nimport Icon from '../../Icons/Icon';\r\n\r\nexport default Icon(\r\n \r\n \r\n \r\n ,\r\n '0 0 24 24',\r\n 'MoreVertIcon',\r\n);\r\n","/* eslint-disable max-len */\r\nimport React from 'react';\r\nimport Icon from '../../Icons/Icon';\r\n\r\nexport default Icon(\r\n \r\n \r\n \r\n ,\r\n '0 0 24 24',\r\n 'SendIcon',\r\n);\r\n","import { WebRequest } from 'framework-ui-components';\r\nimport { saveAs } from 'file-saver';\r\n\r\n/**\r\n * Metodo utilizzato per effettuare una chiamata per il download di un asset\r\n * @param {*} apiToCall api che fornisce il codice binario del file\r\n * @param {*} defaultFilename nome di default da dare al file da scaricare\r\n * @param {...any} params parametri eventuali da passare all'apiToCall\r\n */\r\nconst callDownloadFile = (apiToCall, defaultFilename, ...params) => new Promise(\r\n (resolve, reject) => {\r\n apiToCall(...params)\r\n .then((response) => {\r\n if (response.data && response.data.size > 0) {\r\n const fileName = WebRequest.getFileNameFromGetFileResponse(response) || defaultFilename || 'download';\r\n saveAs(response.data, fileName);\r\n resolve({\r\n Success: true,\r\n });\r\n } else {\r\n resolve({\r\n Success: false,\r\n DetectedProblems: ['Impossibile scaricare il file'],\r\n });\r\n }\r\n })\r\n .catch((e) => {\r\n reject(e);\r\n });\r\n },\r\n);\r\n\r\nexport {\r\n // eslint-disable-next-line import/prefer-default-export\r\n callDownloadFile,\r\n};\r\n","/* eslint-disable max-len */\r\nimport React from 'react';\r\nimport Icon from '../../Icons/Icon';\r\n\r\nexport default Icon(\r\n \r\n \r\n \r\n ,\r\n '0 0 24 24',\r\n 'DeleteIcon',\r\n);\r\n","/* eslint-disable max-len */\r\nimport React from 'react';\r\nimport Icon from '../../Icons/Icon';\r\n\r\nexport default Icon(\r\n \r\n \r\n \r\n ,\r\n '0 0 24 24',\r\n 'DoneIcon',\r\n);\r\n","/* eslint-disable max-len */\r\nimport React from 'react';\r\nimport Icon from '../../Icons/Icon';\r\n\r\nexport default Icon(\r\n \r\n \r\n \r\n ,\r\n '0 0 24 24',\r\n 'CreditCardIcon',\r\n);\r\n","/* eslint-disable max-len */\r\nimport Icon from 'framework-ui-components/Components/Icons/Icon';\r\nimport React from 'react';\r\n\r\nexport default Icon(\r\n \r\n \r\n \r\n ,\r\n '0 0 24 24',\r\n 'Printer',\r\n);\r\n","import { WebRequest } from 'framework-ui-components';\r\nimport { TIPOLOGIA_TRIBUTO } from '../models/tributi';\r\n\r\nconst getOttieniCampiCodiceTributoDebito = (\r\n idCodiceTributo,\r\n) => WebRequest.get('/Tributi/OttieniCampiCodiceTributoDebito', {\r\n idCodiceTributo,\r\n});\r\n\r\nconst getOttieniCampiCodiceTributoCredito = (\r\n idCodiceTributo,\r\n) => WebRequest.get('/Tributi/OttieniCampiCodiceTributoCredito', {\r\n idCodiceTributo,\r\n});\r\n\r\nconst getOttieniTributiDaGestireUrl = (\r\n idContribuente,\r\n annualita,\r\n mostraCrediti,\r\n mostraDebiti,\r\n mostraAperti,\r\n searchTerm,\r\n// eslint-disable-next-line max-len\r\n) => `/Contribuente/Tributi/OttieniTributiDaGestire?idContribuente=${idContribuente}&annualita=${annualita}&mostraDebiti=${mostraDebiti}&mostraCrediti=${mostraCrediti}&mostraAperti=${mostraAperti}&searchTerm=${searchTerm}`;\r\n\r\nconst getOttieniAnnualitaConTributi = (\r\n idContribuente,\r\n) => WebRequest.get('Contribuente/Tributi/OttieniAnnualitaConTributi', { idContribuente });\r\n\r\nconst getOttieniContatoriTributiDaGestire = (\r\n idContribuente,\r\n annualita,\r\n mostraAperti,\r\n) => WebRequest.get('Contribuente/Tributi/OttieniContatoriTributiDaGestire', { idContribuente, annualita, mostraAperti });\r\n\r\nconst getOttieniTributi = (\r\n idStudio,\r\n idContribuente,\r\n searchType,\r\n searchTerm,\r\n) => WebRequest.get('/Contribuente/Tributi/OttieniTributi', {\r\n idStudio,\r\n idContribuente,\r\n searchType,\r\n searchTerm,\r\n});\r\n\r\nconst getOttieniTributo = (\r\n idTributo,\r\n) => WebRequest.get('/Contribuente/Tributi/OttieniTributo', {\r\n idTributo,\r\n});\r\n\r\nconst getDettaglioDebitoErario = (idDebito) => WebRequest.get('/Debiti/OttieniInfoDettaglioDebitoErario', { idDebito });\r\nconst getDettaglioDebitoAltriEnti = (idDebito) => WebRequest.get('/Debiti/OttieniInfoDettaglioDebitoAltriEnti', { idDebito });\r\nconst getDettaglioDebitoInps = (idDebito) => WebRequest.get('/Debiti/OttieniInfoDettaglioDebitoInps', { idDebito });\r\nconst getDettaglioDebitoInail = (idDebito) => WebRequest.get('/Debiti/OttieniInfoDettaglioDebitoInail', { idDebito });\r\nconst getDettaglioDebitoRegioni = (idDebito) => WebRequest.get('/Debiti/OttieniInfoDettaglioDebitoRegioni', { idDebito });\r\nconst getDettaglioDebitoTributiLocali = (idDebito) => WebRequest.get('/Debiti/OttieniInfoDettaglioDebitoTributiLocali', { idDebito });\r\nconst getDettaglioDebitoAccise = (idDebito) => WebRequest.get('/Debiti/OttieniInfoDettaglioDebitoAccise', { idDebito });\r\nconst getDettaglioDebitoElide = (idDebito) => WebRequest.get('/Debiti/OttieniInfoDettaglioDebitoElide', { idDebito });\r\n\r\nconst getCreditoErario = (idCredito) => WebRequest.get('/Crediti/OttieniCreditoErario', { idCredito });\r\nconst getCreditoAltriEnti = (idCredito) => WebRequest.get('/Crediti/OttieniCreditoAltriEnti', { idCredito });\r\nconst getCreditoInps = (idCredito) => WebRequest.get('/Crediti/OttieniCreditoInps', { idCredito });\r\nconst getCreditoInail = (idCredito) => WebRequest.get('/Crediti/OttieniCreditoInail', { idCredito });\r\nconst getCreditoRegioni = (idCredito) => WebRequest.get('/Crediti/OttieniCreditoRegioni', { idCredito });\r\nconst getCreditoTributiLocali = (idCredito) => WebRequest.get('/Crediti/OttieniCreditoTributiLocali', { idCredito });\r\nconst getCreditoAccise = (idCredito) => WebRequest.get('/Crediti/OttieniCreditoAccise', { idCredito });\r\n\r\nconst getUtilizziDebito = (idDebito) => WebRequest.get('/Debiti/OttieniUtilizziDebito', { idDebito });\r\n\r\nconst getUtilizziCredito = (idCredito) => WebRequest.get('/Crediti/OttieniUtilizziCredito', { idCredito });\r\n\r\nconst getOttieniInfoDettaglioCredito = (idCredito) => WebRequest.get('/Crediti/OttieniInfoDettaglioCredito', { idCredito });\r\n\r\nconst getOttieniCausaliContributoCodelineInps = () => WebRequest.get('/Debiti/OttieniCausaliContributoCodelineInps', {});\r\n\r\nconst getOttieniSedeEntePrevidenziale = (idSede) => WebRequest.get('/Tributi/OttieniSedeEntePrevidenziale', { idSede });\r\n\r\nconst postCreaDebitoErario = (command) => WebRequest.post('/Debiti/CreaDebitoErario', command);\r\n\r\nconst postCreaDebitoRegioni = (command) => WebRequest.post('/Debiti/CreaDebitoRegioni', command);\r\n\r\nconst postCreaDebitoTributiLocali = (command) => WebRequest.post('/Debiti/CreaDebitoTributiLocali', command);\r\n\r\nconst postCreaDebitoInps = (command) => WebRequest.post('/Debiti/CreaDebitoInps', command);\r\n\r\nconst postCreaDebitoInail = (command) => WebRequest.post('/Debiti/CreaDebitoInail', command);\r\n\r\nconst postCreaDebitoAltriEnti = (command) => WebRequest.post('/Debiti/CreaDebitoAltriEnti', command);\r\n\r\nconst postCreaDebitoAccise = (command) => WebRequest.post('/Debiti/CreaDebitoAccise', command);\r\n\r\nconst postCreaRateInps = (command) => WebRequest.post('/Debiti/CreaRateInps', command);\r\n\r\nconst postCreaDebitoElide = (command) => WebRequest.post('/Debiti/CreaDebitoElide', command);\r\n\r\nconst postCreaCreditoErario = (command) => WebRequest.post('/Crediti/CreaCreditoErario', command);\r\n\r\nconst postCreaCreditoRegioni = (command) => WebRequest.post('/Crediti/CreaCreditoRegioni', command);\r\n\r\nconst postCreaCreditoTributiLocali = (command) => WebRequest.post('/Crediti/CreaCreditoTributiLocali', command);\r\n\r\nconst postCreaCreditoInps = (command) => WebRequest.post('/Crediti/CreaCreditoInps', command);\r\n\r\nconst postCreaCreditoInail = (command) => WebRequest.post('/Crediti/CreaCreditoInail', command);\r\n\r\nconst postCreaCreditoAltriEnti = (command) => WebRequest.post('/Crediti/CreaCreditoAltriEnti', command);\r\n\r\nconst cercaSediEntiPrevidenziali = (tipologiaSezione, idEnte) => (\r\n `/Tributi/CercaSediEntiPrevidenziali?idSezione=${tipologiaSezione}&idEntePrevidenziale=${idEnte}`);\r\n\r\nconst cercaAnniRiferimentoValidi = () => (\r\n '/Tributi/CercaAnniRiferimentoValidi');\r\n\r\nconst cercaRegioniProvinceAutonomeInTabellaT0 = () => (\r\n '/Tributi/CercaRegioniProvinceAutonomeInTabellaT0');\r\n\r\nconst cercaEntiLocaliInTabellaT1 = () => (\r\n '/Tributi/CercaEntiLocaliInTabellaT1');\r\n\r\nconst cercaProvinceInTabellaT2 = () => (\r\n '/Tributi/CercaProvinceInTabellaT2');\r\n\r\nconst cercaEntiTerritorialiInTabellaT3 = () => (\r\n '/Tributi/CercaEntiTerritorialiInTabellaT3');\r\n\r\nconst cercaComuni = () => (\r\n '/Tributi/CercaComuni');\r\n\r\nconst getCercaAnniRiferimentoValidi = (command) => WebRequest.get('/Tributi/CercaAnniRiferimentoValidi', command);\r\n\r\nconst postEseguiChiusuraForzataDebito = (idDebito, idContribuente) => WebRequest.post('/Debiti/EseguiChiusuraForzata', { idDebito, idContribuente });\r\nconst postAnnullaChiusuraForzataDebito = (idDebito, idContribuente) => WebRequest.post('/Debiti/AnnullaChiusuraForzata', { idDebito, idContribuente });\r\n\r\nconst postEseguiChiusuraForzataCredito = (idCredito, idContribuente) => WebRequest.post('/Crediti/EseguiChiusuraForzata', { idCredito, idContribuente });\r\nconst postAnnullaChiusuraForzataCredito = (idCredito, idContribuente) => WebRequest.post('/Crediti/AnnullaChiusuraForzata', { idCredito, idContribuente });\r\n\r\nconst postEliminaDebito = (idDebito, idContribuente) => WebRequest.post('/Debiti/Elimina', [{ idDebito, idContribuente }]);\r\nconst postEliminaDebiti = (listaComandi) => WebRequest.post('/Debiti/Elimina', listaComandi);\r\nconst postEliminaCredito = (idCredito, idContribuente) => WebRequest.post('/Crediti/Elimina', { idCredito, idContribuente });\r\n\r\nconst postEffettuaCompensazioneManualeCredito = (command) => WebRequest.post('/Crediti/EffettuaCompensazioneManualeCredito', command);\r\n\r\nconst postEliminaCompensazioneManualeCredito = (command) => WebRequest.post('/Crediti/EliminaCompensazioneManualeCredito', command);\r\n\r\nconst getCercaCodiciTributoDebito = (term, data) => WebRequest.get('/Tributi/CercaCodiciTributoDebito', { term, data });\r\n\r\nconst getCercaCodiciTributoCredito = (term, data) => WebRequest.get('/Tributi/CercaCodiciTributoCredito', { term, data });\r\n\r\nconst getIsDebitoModificabile = (idDebito) => WebRequest.get('/debiti/IsDebitoModificabile', { idDebito });\r\n\r\nconst getIsCreditoModificabile = (idCredito) => WebRequest.get('/crediti/IsCreditoModificabile', { idCredito });\r\n\r\nconst getOttieniTipoTributoElide = (idCodiceTributo) => WebRequest.get('/tributi/OttieniTipoTributoElide', { idCodiceTributo });\r\n\r\nconst cercaCodiciTributo = (dataScadenza, tipologia) => {\r\n if (dataScadenza) {\r\n return tipologia === TIPOLOGIA_TRIBUTO.DEBITO\r\n ? `/Tributi/CercaCodiciTributoDebito?data=${dataScadenza}` : '/Tributi/CercaCodiciTributoCredito';\r\n }\r\n return tipologia === TIPOLOGIA_TRIBUTO.DEBITO\r\n ? '/Tributi/CercaCodiciTributoDebito' : '/Tributi/CercaCodiciTributoCredito';\r\n};\r\n\r\nexport {\r\n getOttieniCampiCodiceTributoDebito,\r\n getOttieniCampiCodiceTributoCredito,\r\n getOttieniTributiDaGestireUrl,\r\n getOttieniAnnualitaConTributi,\r\n getOttieniContatoriTributiDaGestire,\r\n getOttieniTributi,\r\n getUtilizziDebito,\r\n getUtilizziCredito,\r\n getOttieniInfoDettaglioCredito,\r\n getCreditoAccise,\r\n getCreditoAltriEnti,\r\n getCreditoErario,\r\n getCreditoInail,\r\n getCreditoInps,\r\n getCreditoRegioni,\r\n getCreditoTributiLocali,\r\n getDettaglioDebitoErario,\r\n getDettaglioDebitoAltriEnti,\r\n getDettaglioDebitoInps,\r\n getDettaglioDebitoInail,\r\n getDettaglioDebitoRegioni,\r\n getDettaglioDebitoTributiLocali,\r\n getDettaglioDebitoAccise,\r\n getDettaglioDebitoElide,\r\n getOttieniTributo,\r\n getOttieniCausaliContributoCodelineInps,\r\n getOttieniSedeEntePrevidenziale,\r\n postCreaDebitoErario,\r\n postCreaDebitoRegioni,\r\n postCreaDebitoTributiLocali,\r\n postCreaDebitoInps,\r\n postCreaDebitoInail,\r\n postCreaDebitoAltriEnti,\r\n postCreaDebitoAccise,\r\n postCreaDebitoElide,\r\n postCreaCreditoErario,\r\n postCreaCreditoRegioni,\r\n postCreaCreditoTributiLocali,\r\n postCreaCreditoInps,\r\n postCreaCreditoInail,\r\n postCreaCreditoAltriEnti,\r\n postCreaRateInps,\r\n cercaSediEntiPrevidenziali,\r\n cercaAnniRiferimentoValidi,\r\n getCercaAnniRiferimentoValidi,\r\n cercaRegioniProvinceAutonomeInTabellaT0,\r\n cercaEntiLocaliInTabellaT1,\r\n cercaProvinceInTabellaT2,\r\n cercaEntiTerritorialiInTabellaT3,\r\n cercaComuni,\r\n postEseguiChiusuraForzataDebito,\r\n postAnnullaChiusuraForzataDebito,\r\n postEseguiChiusuraForzataCredito,\r\n postAnnullaChiusuraForzataCredito,\r\n postEliminaDebito,\r\n postEliminaDebiti,\r\n postEliminaCredito,\r\n postEffettuaCompensazioneManualeCredito,\r\n postEliminaCompensazioneManualeCredito,\r\n getCercaCodiciTributoDebito,\r\n getCercaCodiciTributoCredito,\r\n getIsDebitoModificabile,\r\n getIsCreditoModificabile,\r\n getOttieniTipoTributoElide,\r\n cercaCodiciTributo,\r\n};\r\n","import {\r\n postCreaDebitoErario,\r\n postCreaDebitoRegioni,\r\n postCreaDebitoInail,\r\n postCreaDebitoTributiLocali,\r\n postCreaDebitoInps,\r\n postCreaDebitoAltriEnti,\r\n postCreaDebitoAccise,\r\n postCreaCreditoErario,\r\n postCreaCreditoRegioni,\r\n postCreaCreditoTributiLocali,\r\n postCreaCreditoInps,\r\n postCreaCreditoAltriEnti,\r\n postCreaCreditoInail,\r\n getDettaglioDebitoErario,\r\n getDettaglioDebitoAltriEnti,\r\n getDettaglioDebitoInps,\r\n getDettaglioDebitoInail,\r\n getDettaglioDebitoRegioni,\r\n getDettaglioDebitoTributiLocali,\r\n getDettaglioDebitoAccise,\r\n getOttieniInfoDettaglioCredito,\r\n postCreaDebitoElide,\r\n getDettaglioDebitoElide,\r\n} from '../apis/tributi';\r\n\r\nconst CREDITI_CON_RATEAZIONE = [\r\n '648', // Id del codice tributo \"6740\"\r\n];\r\n\r\nconst TIPOLOGIA_TRIBUTO = {\r\n DEBITO: 1,\r\n CREDITO: 2,\r\n\r\n toString(val) {\r\n switch (val) {\r\n case this.DEBITO: return 'debito';\r\n case this.CREDITO: return 'credito';\r\n default: return '';\r\n }\r\n },\r\n};\r\n\r\nconst TIPOLOGIA_SEZIONE = {\r\n ERARIO: 1,\r\n INPS: 2,\r\n REGIONI: 3,\r\n TRIBUTI_LOCALI: 4,\r\n ALTRI_ENTI: 5,\r\n ACCISE: 6,\r\n INAIL: 8,\r\n ELIDE: 9,\r\n\r\n toString(val) {\r\n switch (val) {\r\n case this.ERARIO: return 'Erario';\r\n case this.REGIONI: return 'Regioni';\r\n case this.TRIBUTI_LOCALI: return 'IMU e altri Tributi Locali';\r\n case this.INPS: return 'Inps';\r\n case this.ALTRI_ENTI: return 'Altri Enti Previdenziali e Assicurativi';\r\n case this.ACCISE: return 'Accise';\r\n case this.INAIL: return 'Inail';\r\n case this.ELIDE: return 'Elide';\r\n default: return '';\r\n }\r\n },\r\n\r\n getPostCreazioneDebitoBySezione(idSezione, tipologia) {\r\n if (tipologia === TIPOLOGIA_TRIBUTO.DEBITO) {\r\n switch (idSezione) {\r\n case this.ERARIO:\r\n return postCreaDebitoErario;\r\n case this.REGIONI:\r\n return postCreaDebitoRegioni;\r\n case this.TRIBUTI_LOCALI:\r\n return postCreaDebitoTributiLocali;\r\n case this.INPS:\r\n return postCreaDebitoInps;\r\n case this.ALTRI_ENTI:\r\n return postCreaDebitoAltriEnti;\r\n case this.ACCISE:\r\n return postCreaDebitoAccise;\r\n case this.INAIL:\r\n return postCreaDebitoInail;\r\n case this.ELIDE:\r\n return postCreaDebitoElide;\r\n default: return null;\r\n }\r\n } else {\r\n switch (idSezione) {\r\n case this.ERARIO:\r\n return postCreaCreditoErario;\r\n case this.REGIONI:\r\n return postCreaCreditoRegioni;\r\n case this.TRIBUTI_LOCALI:\r\n return postCreaCreditoTributiLocali;\r\n case this.INPS:\r\n return postCreaCreditoInps;\r\n case this.ALTRI_ENTI:\r\n return postCreaCreditoAltriEnti;\r\n case this.ACCISE:\r\n return null;\r\n case this.INAIL:\r\n return postCreaCreditoInail;\r\n default: return null;\r\n }\r\n }\r\n },\r\n\r\n getDettaglioTributoBySezione(idSezione, isDebito) {\r\n if (isDebito) {\r\n switch (idSezione) {\r\n case this.ERARIO:\r\n return getDettaglioDebitoErario;\r\n case this.REGIONI:\r\n return getDettaglioDebitoRegioni;\r\n case this.TRIBUTI_LOCALI:\r\n return getDettaglioDebitoTributiLocali;\r\n case this.INPS:\r\n return getDettaglioDebitoInps;\r\n case this.ALTRI_ENTI:\r\n return getDettaglioDebitoAltriEnti;\r\n case this.ACCISE:\r\n return getDettaglioDebitoAccise;\r\n case this.INAIL:\r\n return getDettaglioDebitoInail;\r\n case this.ELIDE:\r\n return getDettaglioDebitoElide;\r\n default: return null;\r\n }\r\n } else {\r\n return getOttieniInfoDettaglioCredito;\r\n }\r\n },\r\n};\r\n\r\nconst PROVENIENZA_TRIBUTO = {\r\n MANUALE: 1,\r\n DIRITTO_CAMERALE: 40,\r\n\r\n toString(val) {\r\n switch (val) {\r\n case this.MANUALE: return 'Inserito manualmente';\r\n case this.DIRITTO_CAMERALE: return 'Diritto camerale';\r\n default: return '';\r\n }\r\n },\r\n};\r\n\r\nconst TIPO_COMPENSAZIONE = {\r\n ORIZZONTALE: 1,\r\n VERTICALE: 2,\r\n\r\n toString(val) {\r\n switch (val) {\r\n case this.ORIZZONTALE: return 'Orizzontale';\r\n case this.VERTICALE: return 'Verticale';\r\n default: return '';\r\n }\r\n },\r\n};\r\n\r\nconst STATO_TRIBUTO = {\r\n DEBITO: 1,\r\n CREDITO: 2,\r\n\r\n toString(val) {\r\n switch (val) {\r\n case this.DEBITO: return 'Debito';\r\n case this.CREDITO: return 'Credito';\r\n default: return '';\r\n }\r\n },\r\n};\r\n\r\n// const ritornaMese = (ricerca, render) => {\r\n// debugger;\r\nconst MESI_ANNO = [\r\n {\r\n Numero: 1,\r\n Descrizione: '01 - Gennaio',\r\n }, {\r\n Numero: 2,\r\n Descrizione: '02 - Febbraio',\r\n }, {\r\n Numero: 3,\r\n Descrizione: '03 - Marzo',\r\n }, {\r\n Numero: 4,\r\n Descrizione: '04 - Aprile',\r\n }, {\r\n Numero: 5,\r\n Descrizione: '05 - Maggio',\r\n }, {\r\n Numero: 6,\r\n Descrizione: '06 - Giugno',\r\n }, {\r\n Numero: 7,\r\n Descrizione: '07 - Luglio',\r\n }, {\r\n Numero: 8,\r\n Descrizione: '08 - Agosto',\r\n }, {\r\n Numero: 9,\r\n Descrizione: '09 -Settembre',\r\n }, {\r\n Numero: 10,\r\n Descrizione: '10 - Ottobre',\r\n }, {\r\n Numero: 11,\r\n Descrizione: '11 - Novembre',\r\n }, {\r\n Numero: 12,\r\n Descrizione: '12 - Dicembre',\r\n },\r\n];\r\n\r\n// return mesi.filter((elemento) => `${elemento.Numero}` === ricerca.term || elemento.Descrizione.toLowerCase().startsWith(ricerca.term));\r\n// };\r\n\r\nconst STEP_SCELTA_GESTIONE_TRIBUTO = {\r\n SELEZIONE_GESTIONE: 0,\r\n COMPENSA_VERTICALMENTE: 1,\r\n COMPENSA_ORIZZONTALMENTE: 2,\r\n GESTISCI_SCADENZA: 3,\r\n ANTEPRIMA_SCADENZA: 32,\r\n ANTEPRIMA_RATEAZIONE: 33,\r\n RISULTATO_COMPENSAZIONE: 34,\r\n RISULTATO_GESTIONE: 35,\r\n};\r\n\r\nconst PROVENIENZA = {\r\n DEBITO: 1,\r\n GESTIONE_SCADENZE: 2,\r\n RATEIZZAZIONE: 10,\r\n RAVVEDIMENTO: 20,\r\n DICHIARATIVI: 30,\r\n DIRITTO_CAMERALE: 40,\r\n SPOSTA_SCADENZA_TRIBUTI: 50,\r\n\r\n toString(val) {\r\n switch (val) {\r\n case this.DEBITO: return 'Debito';\r\n case this.GESTIONE_SCADENZE: return 'Gestione scadenze';\r\n case this.RATEIZZAZIONE: return 'Rateizzazione';\r\n case this.RAVVEDIMENTO: return 'Ravvedimento';\r\n case this.DICHIARATIVI: return 'Dichiarativi';\r\n case this.DIRITTO_CAMERALE: return 'Diritto camerale';\r\n case this.SPOSTA_SCADENZA_TRIBUTI: return 'Sposta scadenza tributi';\r\n default: return '';\r\n }\r\n },\r\n};\r\n\r\nconst TIPO_LAVORATORE = {\r\n AUTONOMI: 0,\r\n SUBORDINATI: 3,\r\n\r\n toString(val) {\r\n switch (val) {\r\n case this.AUTONOMI: return 'Autonomo';\r\n case this.SUBORDINATI: return 'Subordinato';\r\n default: return '';\r\n }\r\n },\r\n};\r\n\r\nconst TIPO_CONTRIBUTO = {\r\n IVS_OTI_CD: 1,\r\n IVS_OTI_CM: 2,\r\n IVS_PCCF_IATP: 3,\r\n SSN_OTI_CD: 4,\r\n SSN_OTD_CM: 5,\r\n SSN_PCCF_IATP: 6,\r\n\r\n toString(val) {\r\n switch (val) {\r\n case this.IVS_OTI_CD: return 'IVS_OTI_CD';\r\n case this.IVS_OTI_CM: return 'IVS_OTI_CM';\r\n case this.IVS_PCCF_IATP: return 'IVS_PCCF_IATP';\r\n case this.SSN_OTI_CD: return 'SSN_OTI_CD';\r\n case this.SSN_OTD_CM: return 'SSN_OTD_CM';\r\n case this.SSN_PCCF_IATP: return 'SSN_PCCF_IATP';\r\n default: return '';\r\n }\r\n },\r\n};\r\n\r\nconst TIPO_RAVVEDIMENTO = {\r\n OMESSI_VERSAMENTI: 1,\r\n DICHIARAZIONI_INFEDELI_ENTRO_90_GG: 2,\r\n DICHIARAZIONI_INFEDELI_OLTRE_90_GG: 3,\r\n PERSONALIZZATO: 4,\r\n DICHIARAZIONE_INFEDELE: 20,\r\n\r\n toString(val) {\r\n switch (val) {\r\n case this.OMESSI_VERSAMENTI: return 'Omessi versamenti';\r\n case this.DICHIARAZIONI_INFEDELI_ENTRO_90_GG: return 'Dich. infedele entro i 90 gg';\r\n case this.DICHIARAZIONI_INFEDELI_OLTRE_90_GG: return 'Dich. infedele oltre i 90 gg';\r\n case this.PERSONALIZZATO: return 'Personalizzato';\r\n case this.DICHIARAZIONE_INFEDELE: return 'Dichiarazione Infedele';\r\n default: return '';\r\n }\r\n },\r\n};\r\n\r\nconst TIPO_ELIDE = {\r\n AGCM: 'G',\r\n AUTOVEICOLO: 'A',\r\n IDENTIFICATIVO_REGISTRO: 'F',\r\n IDENTIFICATIVO_UIBM: 'U',\r\n INPS_INPDAP: 'I',\r\n MOTOVEICOLO: 'M',\r\n RIMORCHIO_REGOLARIZZAZIONE_ALTRO: 'R',\r\n\r\n toString(val) {\r\n switch (val) {\r\n case this.AGCM: return 'A.G.C.M.';\r\n case this.AUTOVEICOLO: return 'Autoveicolo';\r\n case this.IDENTIFICATIVO_REGISTRO: return 'Identificativo Registro';\r\n case this.IDENTIFICATIVO_UIBM: return 'Identificativo Uibm';\r\n case this.INPS_INPDAP: return 'INPS/INPDAP';\r\n case this.MOTOVEICOLO: return 'Motoveicolo';\r\n case this.RIMORCHIO_REGOLARIZZAZIONE_ALTRO: return 'Rimorchio, Regolarizzazione, altro';\r\n default: return '';\r\n }\r\n },\r\n};\r\n\r\nconst TIPO_ELIDE_DATASOURCE = [\r\n {\r\n Val: TIPO_ELIDE.AGCM,\r\n Descrizione: `${TIPO_ELIDE.AGCM} - ${TIPO_ELIDE.toString(TIPO_ELIDE.AGCM)}`,\r\n }, {\r\n Val: TIPO_ELIDE.AUTOVEICOLO,\r\n Descrizione: `${TIPO_ELIDE.AUTOVEICOLO} - ${TIPO_ELIDE.toString(TIPO_ELIDE.AUTOVEICOLO)}`,\r\n }, {\r\n Val: TIPO_ELIDE.IDENTIFICATIVO_REGISTRO,\r\n Descrizione: `${TIPO_ELIDE.IDENTIFICATIVO_REGISTRO} - ${TIPO_ELIDE.toString(TIPO_ELIDE.IDENTIFICATIVO_REGISTRO)}`,\r\n }, {\r\n Val: TIPO_ELIDE.IDENTIFICATIVO_UIBM,\r\n Descrizione: `${TIPO_ELIDE.IDENTIFICATIVO_UIBM} - ${TIPO_ELIDE.toString(TIPO_ELIDE.IDENTIFICATIVO_UIBM)}`,\r\n }, {\r\n Val: TIPO_ELIDE.INPS_INPDAP,\r\n Descrizione: `${TIPO_ELIDE.INPS_INPDAP} - ${TIPO_ELIDE.toString(TIPO_ELIDE.INPS_INPDAP)}`,\r\n }, {\r\n Val: TIPO_ELIDE.MOTOVEICOLO,\r\n Descrizione: `${TIPO_ELIDE.MOTOVEICOLO} - ${TIPO_ELIDE.toString(TIPO_ELIDE.MOTOVEICOLO)}`,\r\n }, {\r\n Val: TIPO_ELIDE.RIMORCHIO_REGOLARIZZAZIONE_ALTRO,\r\n Descrizione: `${TIPO_ELIDE.RIMORCHIO_REGOLARIZZAZIONE_ALTRO} - ${TIPO_ELIDE.toString(TIPO_ELIDE.RIMORCHIO_REGOLARIZZAZIONE_ALTRO)}`,\r\n },\r\n];\r\n\r\nexport {\r\n TIPOLOGIA_TRIBUTO,\r\n CREDITI_CON_RATEAZIONE,\r\n TIPOLOGIA_SEZIONE,\r\n PROVENIENZA_TRIBUTO,\r\n STATO_TRIBUTO,\r\n MESI_ANNO,\r\n STEP_SCELTA_GESTIONE_TRIBUTO,\r\n PROVENIENZA,\r\n TIPO_LAVORATORE,\r\n TIPO_CONTRIBUTO,\r\n TIPO_COMPENSAZIONE,\r\n TIPO_RAVVEDIMENTO,\r\n TIPO_ELIDE,\r\n TIPO_ELIDE_DATASOURCE,\r\n};\r\n","/* eslint-disable max-len */\r\nimport Icon from 'framework-ui-components/Components/Icons/Icon';\r\nimport React from 'react';\r\n\r\nexport default Icon(\r\n \r\n \r\n \r\n ,\r\n '0 0 24 24',\r\n 'UndoIcon',\r\n);\r\n","/* eslint-disable max-len */\r\nimport Icon from 'framework-ui-components/Components/Icons/Icon';\r\nimport React from 'react';\r\n\r\nexport default Icon(\r\n \r\n \r\n \r\n ,\r\n '0 0 24 24',\r\n 'VerifiedIcon',\r\n);\r\n","/* eslint-disable max-len */\r\nimport Icon from 'framework-ui-components/Components/Icons/Icon';\r\nimport React from 'react';\r\n\r\nexport default Icon(\r\n \r\n \r\n \r\n ,\r\n '0 0 24 24',\r\n 'CreditScore',\r\n);\r\n","import React, { Fragment, useContext } from 'react';\r\nimport {\r\n Badge, Grid, Panel, Tooltip,\r\n} from 'framework-ui-components';\r\nimport PropTypes from 'prop-types';\r\nimport SuccessoIcon from 'framework-ui-components/Components/Icons/SuccessoIcon';\r\nimport ErroreIcon from 'framework-ui-components/Components/Icons/ErroreIcon';\r\nimport DitoVerdeIcon from './icons/DitoVerdeIcon';\r\nimport StopSignIcon from './icons/StopSignIcon';\r\n\r\nconst getBadge = (titolo, tipo = 'safe', idx) => (\r\n \r\n {titolo}\r\n \r\n);\r\n\r\nconst getBadgeConTooltip = (titolo, tipo = 'safe', tooltip, idx) => (\r\n \r\n {getBadge(titolo, tipo)}\r\n \r\n);\r\n\r\nconst EtichetteDelega = ({ etichetteDelega }) => (\r\n \r\n {(!etichetteDelega || etichetteDelega.length === 0) && ('')}\r\n {etichetteDelega && etichetteDelega.map((et, idx) => (\r\n et.Tooltip\r\n ? getBadgeConTooltip(et.Titolo, et.Tipo, et.Tooltip, idx)\r\n : getBadge(et.Titolo, et.Tipo, idx)\r\n ))}\r\n \r\n);\r\n\r\nEtichetteDelega.defaultProps = {\r\n etichetteDelega: [],\r\n};\r\n\r\nEtichetteDelega.propTypes = {\r\n etichetteDelega: PropTypes.arrayOf(\r\n PropTypes.shape({\r\n Tipo: PropTypes.string.isRequired,\r\n Titolo: PropTypes.string.isRequired,\r\n Tooltip: PropTypes.string,\r\n }),\r\n ),\r\n};\r\n\r\nexport default EtichetteDelega;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { ConfirmModal } from 'framework-ui-components/Components/V2';\r\nimport ConfirmImage from './icons/ConfirmImage';\r\n\r\nconst ModaleAiutaci = ({\r\n show, onClose,\r\n}) => (\r\n }\r\n onClose={onClose}\r\n primaryLabel=\"Ok\"\r\n onPrimaryClick={onClose}\r\n secondaryLabel=\"\"\r\n onSecondaryClick={onClose}\r\n title=\"Questa pagina non esiste ancora\"\r\n message=\"Aiutaci ad immaginare cosa potrebbe contenere\"\r\n // dontShowAgainId=\"elimina-elemento-non-visualizza-piu\"\r\n />\r\n);\r\n\r\nModaleAiutaci.propTypes = {\r\n show: PropTypes.bool.isRequired,\r\n onClose: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default ModaleAiutaci;\r\n","/* eslint-disable no-nested-ternary */\r\nimport React, {\r\n useState, useEffect, useCallback, useRef, useMemo,\r\n} from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n DatePicker,\r\n Grid, Spinner, Validation,\r\n} from 'framework-ui-components';\r\nimport {\r\n Modal,\r\n Button,\r\n FeedbackPanel,\r\n} from 'framework-ui-components/Components/V2';\r\n\r\nconst ModaleRischiDiPagareDueVolte = ({\r\n show,\r\n onClose,\r\n primaryLabel,\r\n onPrimaryClick,\r\n secondaryLabel,\r\n onSecondaryClick,\r\n title,\r\n message,\r\n dontShowAgainMessage,\r\n dontShowAgainId,\r\n}) => (\r\n \r\n \r\n {title}\r\n \r\n \r\n {message}\r\n \r\n \r\n onSecondaryClick()}\r\n emphasis={Button.Emphasis.HIGH}\r\n >\r\n {secondaryLabel}\r\n \r\n onPrimaryClick()}\r\n primary\r\n emphasis={Button.Emphasis.HIGH}\r\n >\r\n {primaryLabel}\r\n \r\n \r\n \r\n);\r\n\r\nModaleRischiDiPagareDueVolte.defaultProps = {\r\n};\r\n\r\nModaleRischiDiPagareDueVolte.propTypes = {\r\n onClose: PropTypes.func.isRequired,\r\n primaryLabel: PropTypes.string.isRequired,\r\n onPrimaryClick: PropTypes.func.isRequired,\r\n secondaryLabel: PropTypes.string.isRequired,\r\n onSecondaryClick: PropTypes.func.isRequired,\r\n title: PropTypes.string.isRequired,\r\n message: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.object,\r\n ]).isRequired,\r\n dontShowAgainMessage: PropTypes.string.isRequired,\r\n dontShowAgainId: PropTypes.string.isRequired,\r\n};\r\n\r\nexport default ModaleRischiDiPagareDueVolte;\r\n","/* eslint-disable max-len */\r\nimport Icon from 'framework-ui-components/Components/Icons/Icon';\r\nimport React from 'react';\r\n\r\nexport default Icon(\r\n \r\n \r\n \r\n \r\n ,\r\n '0 0 24 24',\r\n 'SendCancelledIcon',\r\n);\r\n","import { WebRequest } from 'framework-ui-components';\r\n\r\nexport const getDownload = (idFile, codiceUfficio, nomeFile) => WebRequest.getFile(\r\n 'File/Download',\r\n {\r\n idFile,\r\n codiceUfficio,\r\n nomeFile,\r\n },\r\n null,\r\n true,\r\n);\r\n\r\nexport default getDownload;\r\n","/* eslint-disable max-len */\r\nimport Icon from 'framework-ui-components/Components/Icons/Icon';\r\nimport React from 'react';\r\n\r\nexport default Icon(\r\n \r\n \r\n \r\n ,\r\n '0 0 24 24',\r\n 'ArrowBackIcon',\r\n);\r\n","/* eslint-disable max-len */\r\nimport React from 'react';\r\nimport Icon from '../../Icons/Icon';\r\n\r\nexport default Icon(\r\n \r\n \r\n \r\n ,\r\n '0 0 24 24',\r\n 'DescriptionIcon',\r\n);\r\n","import Log, { logApiError } from 'framework-taskforce/utils/log';\r\nimport { getOttieniOggettiConNote } from '../../apis/note';\r\n\r\nexport const BOTTONE_NOTE_ELEMENT_ID = 'bottone-toolbar-note';\r\nexport const DRAWER_NOTE_ELEMENT_ID = 'drawer-note';\r\n\r\nlet f = true;\r\n\r\n/**\r\n * Accade che gli uffici e la pratica arrivino tra il set iniziale e l'avvio del plugin!\r\n */\r\nconst configuration = {\r\n readOnly: false,\r\n idDelega: undefined,\r\n};\r\n\r\nconst caricaComponenteNote = (\r\n noteUrl,\r\n IdUtente,\r\n Nome,\r\n Cognome,\r\n CodiceFiscale,\r\n readOnly,\r\n callback,\r\n) => {\r\n if (f) {\r\n f = false;\r\n const e = document.createElement('script');\r\n e.type = 'text/javascript';\r\n e.src = `${noteUrl}/App/BrowserExport.js`;\r\n e.async = false;\r\n e.defer = false;\r\n e.onload = function laoded() {\r\n window.inizializzaNote\r\n && window.inizializzaNote(noteUrl, IdUtente, Nome, Cognome, CodiceFiscale, readOnly, callback);\r\n };\r\n const h = document.getElementsByTagName('head')[0];\r\n h.insertBefore(e, h.lastChild);\r\n } else {\r\n callback();\r\n }\r\n};\r\n\r\nconst inizializzaComponentiNote = (ufficioSelezionato, idDelega) => {\r\n if (window.Ecosistema && window.Ecosistema.Note) {\r\n window.Ecosistema.Note.config.setReadOnly(configuration.readOnly);\r\n getOttieniOggettiConNote(ufficioSelezionato, idDelega)\r\n .then((result) => {\r\n if (result.Success) {\r\n window.Ecosistema.Note.avvia(result.Result, { containerId: DRAWER_NOTE_ELEMENT_ID }, { containerId: BOTTONE_NOTE_ELEMENT_ID });\r\n window.Ecosistema.Note.avviaDrawerSeEsistonoNoteImportanti();\r\n }\r\n })\r\n .catch((err) => {\r\n logApiError('Errore durante la configurazione delle note');\r\n Log.error(err);\r\n });\r\n }\r\n};\r\n\r\n/**\r\n * Funzione idempotente di inizializzazione del plugin note.\r\n * Dato che il plugin può richidere un po' di tempo per essere caricato,\r\n * riproverà per un certo numero di volte e se non ci riuscirà darà errore.\r\n */\r\nconst inizializzaNote = (\r\n noteUrl,\r\n IdUtente,\r\n Nome,\r\n Cognome,\r\n CodiceFiscale,\r\n idDelega,\r\n readOnly,\r\n ufficioSelezionato,\r\n) => {\r\n configuration.readOnly = readOnly;\r\n configuration.idDelega = idDelega;\r\n caricaComponenteNote(\r\n noteUrl,\r\n IdUtente,\r\n Nome,\r\n Cognome,\r\n CodiceFiscale,\r\n readOnly,\r\n () => inizializzaComponentiNote(\r\n ufficioSelezionato,\r\n idDelega,\r\n ),\r\n );\r\n};\r\n\r\nconst visualizzaBottoneNote = (elementId) => {\r\n window.Ecosistema\r\n && window.Ecosistema.Note\r\n && window.Ecosistema.Note.visualizzaBottoneNote(elementId);\r\n};\r\n\r\nconst puliziaDatiLocali = () => {\r\n window.Ecosistema\r\n && window.Ecosistema.Note\r\n && window.Ecosistema.Note.puliziaDatiLocali();\r\n};\r\n\r\nconst visualizzaDrawerListaNote = () => {\r\n window.Ecosistema\r\n && window.Ecosistema.Note\r\n && window.Ecosistema.Note.visualizzaDrawerListaNote();\r\n};\r\n\r\nexport {\r\n inizializzaNote,\r\n visualizzaBottoneNote,\r\n puliziaDatiLocali,\r\n visualizzaDrawerListaNote,\r\n};\r\n","import { WebRequest } from 'framework-ui-components';\r\n\r\nexport const getOttieniNumeroDiNote = (codiceUfficio, idOggettoConNote) => WebRequest\r\n .get('Note/OttieniNumeroDiNote', { codiceUfficio, idOggettoConNote });\r\n\r\nexport const getOttieniOggettiConNote = (\r\n codiceUfficio,\r\n idOggettoConNote,\r\n) => WebRequest.get('/Note/OttieniIdOggettiConNote', { codiceUfficio, idOggettoConNote });\r\n","import React, { useEffect, useState } from 'react';\r\nimport DescriptionIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/DescriptionIcon';\r\nimport { useSelector } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport { Button, useViewport } from 'framework-ui-components/Components/V2';\r\nimport { Badge } from 'framework-ui-components';\r\nimport { usePluginReducer } from 'framework-plugins';\r\nimport {\r\n BOTTONE_NOTE_ELEMENT_ID,\r\n DRAWER_NOTE_ELEMENT_ID,\r\n inizializzaNote,\r\n visualizzaDrawerListaNote,\r\n} from './NoteInit';\r\n\r\nconst Note = ({ idOggettoConNote, numeroNote }) => {\r\n const [numeroNoteAggiornato, setNumeroNoteAggiornato] = useState(numeroNote);\r\n const ufficioSelezionato = useSelector((store) => store.appParams.ufficioSelezionato);\r\n const appParamVisualizzazione = useSelector((store) => !!store.appParams.visualizzazione);\r\n const noteUrl = useSelector((store) => store.appParams.NoteUrl);\r\n const utente = useSelector((store) => store.utente);\r\n\r\n const { width } = useViewport();\r\n\r\n useEffect(() => {\r\n if (utente.UserId && idOggettoConNote && ufficioSelezionato) {\r\n inizializzaNote(\r\n noteUrl,\r\n utente.UserId,\r\n utente.Profilo.Nome,\r\n utente.Profilo.Cognome,\r\n utente.Profilo.CodiceFiscale,\r\n idOggettoConNote,\r\n appParamVisualizzazione,\r\n ufficioSelezionato,\r\n );\r\n }\r\n }, [noteUrl, utente, idOggettoConNote, ufficioSelezionato, appParamVisualizzazione]);\r\n\r\n usePluginReducer(() => ({ NOTE_CARICATE: (note) => setNumeroNoteAggiornato(note ? note.length : 0) }), []);\r\n\r\n return (\r\n
    \r\n {utente.UserId != null && idOggettoConNote && (\r\n <>\r\n
    \r\n
    \r\n 1420 ? '' : 'mb-16'}`}\r\n emphasis={Button.Emphasis.LOW}\r\n onClick={visualizzaDrawerListaNote}\r\n >\r\n \r\n Note\r\n {numeroNoteAggiornato || 0}\r\n \r\n \r\n )}\r\n
    \r\n );\r\n};\r\n\r\nNote.defaultProps = {\r\n numeroNote: 0,\r\n};\r\n\r\nNote.propTypes = {\r\n idOggettoConNote: PropTypes.number.isRequired,\r\n numeroNote: PropTypes.number,\r\n};\r\n\r\nexport default Note;\r\n","import React, { useMemo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport Tooltip from '../Tooltip/Tooltip';\r\nimport Badge from '../../Badge/Badge';\r\n\r\n/**\r\n * Componente creato per attirare l'attenzione su una informazione e fornire un aiuto con un tooltip.\r\n*/\r\nconst DrawAttention = ({\r\n className, closeDelay, tooltipContent, position, type, outline, icon, message,\r\n}) => {\r\n const showOnHover = !closeDelay;\r\n const [show, onMouseEnter, onMouseLeave] = Tooltip.useTooltipHoverWithDelay(closeDelay);\r\n const child = useMemo(() => {\r\n if (icon) {\r\n return icon;\r\n }\r\n return (\r\n \r\n {message}\r\n \r\n );\r\n }, [icon, message, outline, type]);\r\n\r\n return (\r\n {child}\r\n \r\n );\r\n};\r\n\r\nDrawAttention.propTypes = {\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n /**\r\nDelay di chiusura del tooltip.\r\n\r\nIn alcuni casi il tooltip contine dei componenti attivi, come un link.\r\nIn questi casi dobbiamo dare all'utente il tempo di cliccare.\r\nPer questo motivo, il tooltip resterà visibile per un certo periodo prima di nascondersi alla perdita dell'hover.\r\n */\r\n closeDelay: PropTypes.number,\r\n /** Icona presentata */\r\n icon: PropTypes.node,\r\n /** Messaggio presentato (nel caso verrà visualizzato come Badge) */\r\n message: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\r\n /** Nel caso di contenuto testuale, assegna lo stile outline al badge. */\r\n outline: PropTypes.bool,\r\n /** Posizione della tooltip */\r\n position: PropTypes.oneOf(['left', 'right', 'top', 'bottom']),\r\n /** Indica la tipologia del tooltip */\r\n type: PropTypes.oneOf(['info', 'alarm', 'warning', 'success', 'safe']),\r\n /** Contenuto da renderizzare all'interno del tooltip */\r\n tooltipContent: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.node,\r\n ]).isRequired,\r\n};\r\n\r\nDrawAttention.defaultProps = {\r\n className: undefined,\r\n closeDelay: undefined,\r\n position: undefined,\r\n type: undefined,\r\n outline: undefined,\r\n icon: undefined,\r\n message: undefined,\r\n};\r\n\r\nexport default DrawAttention;\r\n","/**\r\n * Funzione che rimuove gli spazi multipli ad una stringa\r\n * @param {*} text\r\n */\r\nconst removeMultipleSpace = (text) => (text ? text.replace(/^\\s+/, '').replace(/\\s\\s+/g, ' ') : text);\r\n\r\n/**\r\n * Funzione che maiuscolizza solo la prima lettera di una stringa\r\n * @param {*} stringa\r\n */\r\nconst primaLetteraMaiuscola = (stringa) => (\r\n stringa ? stringa\r\n .split(' ')\r\n .map((part) => part.charAt(0).toUpperCase() + part.slice(1).toLowerCase())\r\n .join(' ') : stringa);\r\n\r\nexport {\r\n removeMultipleSpace,\r\n primaLetteraMaiuscola,\r\n};\r\n","import React, { useState, useEffect } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport ExpandIcon from 'framework-ui-components/Components/Icons/ExpandIcon';\r\n\r\nconst NewAccordion = ({\r\n children, title, defaultClosed, forzaChiusura, isCollapsable, padding16SubPanel,\r\n}) => {\r\n const [collapse, setCollapse] = useState(defaultClosed);\r\n\r\n useEffect(() => {\r\n setCollapse(defaultClosed);\r\n }, [defaultClosed, forzaChiusura]);\r\n\r\n useEffect(() => {\r\n if (forzaChiusura && !collapse) {\r\n setCollapse(true);\r\n }\r\n }, [forzaChiusura]); // eslint-disable-line react-hooks/exhaustive-deps\r\n\r\n return (\r\n
    \r\n
    \r\n (isCollapsable ? setCollapse(!collapse) : null)}\r\n role=\"button\"\r\n >\r\n {title}\r\n {isCollapsable && collapse ? (\r\n \r\n
    \r\n \r\n
    \r\n Vedi sezione\r\n
    \r\n ) : (
    )}\r\n
    \r\n \r\n {children}\r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nNewAccordion.defaultProps = {\r\n isCollapsable: false,\r\n defaultClosed: true,\r\n children: null,\r\n forzaChiusura: null,\r\n padding16SubPanel: false,\r\n};\r\n\r\nNewAccordion.propTypes = {\r\n isCollapsable: PropTypes.bool,\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node,\r\n ]),\r\n defaultClosed: PropTypes.bool,\r\n title: PropTypes.string.isRequired,\r\n forzaChiusura: PropTypes.oneOfType( // forza la chiusura con valori positivi o true\r\n [\r\n PropTypes.bool,\r\n PropTypes.number, // passato number per forzare l'ascolto del change\r\n ],\r\n ),\r\n padding16SubPanel: PropTypes.bool,\r\n};\r\n\r\nexport default NewAccordion;\r\n","import { Validation } from 'framework-ui-components';\r\n\r\nconst isValidationRequired = (listaCampi, nomeCampo) => {\r\n const campoPresente = listaCampi.find((x) => x.NomeCampo === nomeCampo);\r\n\r\n // eslint-disable-next-line no-nested-ternary\r\n return campoPresente ? (campoPresente.IsObbligatorio ? [Validation.DefaultRules.required] : []) : [];\r\n};\r\n\r\nconst isCampoDisabled = (listaCampi, nomeCampo) => {\r\n const campoPresente = listaCampi.find((x) => x.NomeCampo === nomeCampo);\r\n return !campoPresente;\r\n};\r\n\r\nexport {\r\n isValidationRequired,\r\n isCampoDisabled,\r\n};\r\n","import React from 'react';\r\nimport {\r\n Autocomplete, Input, Restriction,\r\n} from 'framework-ui-components';\r\n\r\nimport {\r\n Layout,\r\n} from 'framework-ui-components/Components/V2';\r\n\r\nimport PropTypes from 'prop-types';\r\nimport { isCampoDisabled, isValidationRequired } from '../../../utils/validations';\r\nimport { MESI_ANNO } from '../../../models/tributi';\r\nimport {\r\n cercaComuni, cercaAnniRiferimentoValidi,\r\n cercaEntiLocaliInTabellaT1, cercaEntiTerritorialiInTabellaT3, cercaProvinceInTabellaT2, cercaRegioniProvinceAutonomeInTabellaT0,\r\n} from '../../../apis/tributi';\r\n\r\nconst FieldsColonnaMultiuso = ({\r\n campiSpecifici, cambioValoreRata, onChangeAutocompletes, disabilitaRateazione,\r\n}) => {\r\n const nomiCampi = [\r\n 'CodiceComune',\r\n 'CodiceEnteLocale',\r\n 'CodiceEnteTerritoriale',\r\n 'CodiceProvincia',\r\n 'CodiceRegione',\r\n 'Mese',\r\n 'NumeroRataAnnuale',\r\n 'Rateazione'];\r\n if (campiSpecifici.length === 0) {\r\n return
    ;\r\n }\r\n const nonPresente = (campo) => (isCampoDisabled(campiSpecifici, campo));\r\n if (nomiCampi.every(nonPresente)) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n let field = (
    );\r\n\r\n nomiCampi.forEach((nomeCampo) => {\r\n const isPresente = !isCampoDisabled(campiSpecifici, nomeCampo);\r\n if (nomeCampo === 'Rateazione' && isPresente) {\r\n field = (\r\n cambioValoreRata(e)}\r\n upperCase\r\n placeholder=\"ES 01/01\"\r\n />\r\n );\r\n } else if (nomeCampo === 'NumeroRataAnnuale' && isPresente && !disabilitaRateazione) {\r\n field = (\r\n \r\n \r\n onChangeAutocompletes('AnnoRiferimentoRata', val)}\r\n name=\"AnnoRiferimentoRata\"\r\n title=\"Anno rata\"\r\n url={cercaAnniRiferimentoValidi()}\r\n renderProperty=\"Anno\"\r\n validations={isValidationRequired(campiSpecifici, 'AnnoRiferimentoRata')}\r\n disabled={isCampoDisabled(campiSpecifici, 'AnnoRiferimentoRata')}\r\n minLength={1}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n } else if (nomeCampo === 'CodiceRegione' && isPresente) {\r\n field = (\r\n onChangeAutocompletes('CodiceRegione', val)}\r\n name=\"CodiceRegioneDescrizioneComposta\"\r\n title=\"Regione\"\r\n url={cercaRegioniProvinceAutonomeInTabellaT0()}\r\n renderProperty=\"DescrizioneComposta\"\r\n validations={isValidationRequired(campiSpecifici, 'CodiceRegione')}\r\n />\r\n );\r\n } else if (nomeCampo === 'CodiceProvincia' && isPresente) {\r\n field = (\r\n onChangeAutocompletes('CodiceProvincia', val)}\r\n name=\"CodiceProvinciaDescrizioneComposta\"\r\n title=\"Provincia\"\r\n url={cercaProvinceInTabellaT2()}\r\n renderProperty=\"DescrizioneComposta\"\r\n validations={isValidationRequired(campiSpecifici, 'CodiceProvincia')}\r\n />\r\n );\r\n } else if (nomeCampo === 'CodiceEnteTerritoriale' && isPresente) {\r\n field = (\r\n onChangeAutocompletes('CodiceEnteTerritoriale', val)}\r\n name=\"CodiceEnteTerritorialeDescrizioneComposta\"\r\n title=\"Ente territoriale\"\r\n url={cercaEntiTerritorialiInTabellaT3()}\r\n renderProperty=\"DescrizioneComposta\"\r\n validations={isValidationRequired(campiSpecifici, 'CodiceEnteTerritoriale')}\r\n />\r\n );\r\n } else if (nomeCampo === 'CodiceEnteLocale' && isPresente) {\r\n field = (\r\n onChangeAutocompletes('CodiceEnteLocale', val)}\r\n name=\"CodiceEnteLocaleDescrizioneComposta\"\r\n title=\"Ente locale\"\r\n url={cercaEntiLocaliInTabellaT1()}\r\n renderProperty=\"DescrizioneComposta\"\r\n validations={isValidationRequired(campiSpecifici, 'CodiceEnteLocale')}\r\n />\r\n );\r\n } else if (nomeCampo === 'CodiceComune' && isPresente) {\r\n field = (\r\n onChangeAutocompletes('CodiceComune', val)}\r\n name=\"CodiceComuneDescrizioneComposta\"\r\n title=\"Comune\"\r\n url={cercaComuni()}\r\n renderProperty=\"DescrizioneComposta\"\r\n validations={isValidationRequired(campiSpecifici, 'CodiceComune')}\r\n />\r\n );\r\n } else if (nomeCampo === 'Mese' && isPresente) {\r\n field = (\r\n onChangeAutocompletes(nomeCampo, val)}\r\n name=\"MeseDescrizione\"\r\n title=\"Mese riferimento\"\r\n dataSource={MESI_ANNO}\r\n renderProperty=\"Descrizione\"\r\n validations={isValidationRequired(campiSpecifici, 'Mese')}\r\n minLength={1}\r\n />\r\n );\r\n }\r\n });\r\n return field;\r\n};\r\n\r\nFieldsColonnaMultiuso.defaultProps = {\r\n disabilitaRateazione: false,\r\n};\r\n\r\nFieldsColonnaMultiuso.propTypes = {\r\n campiSpecifici: PropTypes.arrayOf(PropTypes.object).isRequired,\r\n cambioValoreRata: PropTypes.func.isRequired,\r\n onChangeAutocompletes: PropTypes.func.isRequired,\r\n disabilitaRateazione: PropTypes.bool,\r\n};\r\n\r\nexport default FieldsColonnaMultiuso;\r\n","import React, { useCallback } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Autocomplete, Input, Restriction, Validation,\r\n} from 'framework-ui-components';\r\nimport NewAccordion from '../../../components/custom/NewAccordion';\r\nimport TemplateGrid from '../../../components/TemplateGrid/TemplateGrid';\r\nimport { isCampoDisabled, isValidationRequired } from '../../../utils/validations';\r\nimport FieldsColonnaMultiuso from './FieldsColonnaMultiuso';\r\nimport { cercaAnniRiferimentoValidi } from '../../../apis/tributi';\r\n\r\nconst SezioneErarioDebito = ({\r\n presetForm, campiSpecifici, idCodiceTributo, rateazione,\r\n}) => {\r\n const onChangeAutocompletes = (campo, elemento) => {\r\n const tributoVals = [];\r\n\r\n if (campo === 'CodiceRegione') {\r\n tributoVals.IdTabellaT0 = elemento.IdTabellaT0;\r\n tributoVals.CodiceRegioneDescrizioneComposta = elemento.DescrizioneComposta;\r\n }\r\n\r\n if (campo === 'CodiceEnteLocale') {\r\n tributoVals.IdTabellaT1 = elemento.IdTabellaT1;\r\n tributoVals.CodiceEnteLocaleDescrizioneComposta = elemento.DescrizioneComposta;\r\n }\r\n\r\n if (campo === 'CodiceProvincia') {\r\n tributoVals.IdTabellaT2 = elemento.IdTabellaT2;\r\n tributoVals.CodiceProvinciaDescrizioneComposta = elemento.DescrizioneComposta;\r\n }\r\n\r\n if (campo === 'CodiceEnteTerritoriale') {\r\n tributoVals.IdTabellaT3 = elemento.IdTabellaT3;\r\n tributoVals.CodiceEnteTerritorialeDescrizioneComposta = elemento.DescrizioneComposta;\r\n }\r\n\r\n if (campo === 'CodiceComune') {\r\n tributoVals.IdComune = elemento.Id;\r\n tributoVals.CodiceComuneDescrizioneComposta = elemento.DescrizioneComposta;\r\n }\r\n\r\n if (campo === 'AnnoRiferimento') {\r\n tributoVals.AnnoRiferimento = elemento.Anno;\r\n }\r\n\r\n if (campo === 'Mese') {\r\n tributoVals.MeseRiferimento = elemento.Numero;\r\n tributoVals.MeseDescrizione = elemento.Descrizione;\r\n }\r\n\r\n presetForm(tributoVals);\r\n };\r\n\r\n const cambioValoreRata = useCallback((val) => {\r\n const key = val.keyCode || val.charCode;\r\n if ((key === 8 || key === 46) && rateazione.length === 3) {\r\n presetForm({\r\n Rateazione: rateazione.substring(0, rateazione.length - 2),\r\n });\r\n }\r\n }, [rateazione, presetForm]);\r\n\r\n return (\r\n \r\n \r\n onChangeAutocompletes('AnnoRiferimento', val)}\r\n name=\"AnnoRiferimento\"\r\n title=\"Anno riferimento\"\r\n renderProperty=\"Anno\"\r\n url={cercaAnniRiferimentoValidi()}\r\n validations={isValidationRequired(campiSpecifici, 'AnnoRiferimento')}\r\n disabled={isCampoDisabled(campiSpecifici, 'AnnoRiferimento')}\r\n minLength={1}\r\n autoFocus={idCodiceTributo}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nSezioneErarioDebito.defaultProps = {\r\n rateazione: '',\r\n};\r\n\r\nSezioneErarioDebito.propTypes = {\r\n presetForm: PropTypes.func.isRequired,\r\n campiSpecifici: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\r\n idCodiceTributo: PropTypes.number.isRequired,\r\n rateazione: PropTypes.string,\r\n};\r\n\r\nexport default SezioneErarioDebito;\r\n","import React from 'react';\r\nimport { Autocomplete, Input } from 'framework-ui-components';\r\nimport PropTypes from 'prop-types';\r\nimport { isCampoDisabled, isValidationRequired } from '../../../utils/validations';\r\nimport { MESI_ANNO } from '../../../models/tributi';\r\n\r\nconst FieldsColonnaMultiuso = ({\r\n campiSpecifici, cambioValoreRata, onChangeAutocompletes, disabilitaRateazione,\r\n}) => {\r\n const nomiCampi = [\r\n 'Mese',\r\n 'Rateazione'];\r\n if (campiSpecifici.length === 0) {\r\n return
    ;\r\n }\r\n const nonPresente = (campo) => (isCampoDisabled(campiSpecifici, campo));\r\n if (nomiCampi.every(nonPresente)) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n let field = (
    );\r\n\r\n nomiCampi.forEach((nomeCampo) => {\r\n const isPresente = !isCampoDisabled(campiSpecifici, nomeCampo);\r\n if (nomeCampo === 'Rateazione' && isPresente && disabilitaRateazione) {\r\n field = (\r\n \r\n );\r\n } else if (nomeCampo === 'Rateazione' && isPresente) {\r\n field = (\r\n cambioValoreRata(e)}\r\n upperCase\r\n disabled={disabilitaRateazione}\r\n placeholder=\"ES 01/01\"\r\n />\r\n );\r\n } else if (nomeCampo === 'Mese' && isPresente) {\r\n field = (\r\n onChangeAutocompletes(nomeCampo, val)}\r\n name=\"MeseDescrizione\"\r\n title={disabilitaRateazione ? 'Mese rif.' : 'Mese riferimento'}\r\n dataSource={MESI_ANNO}\r\n renderProperty=\"Descrizione\"\r\n validations={isValidationRequired(campiSpecifici, 'Mese')}\r\n minLength={1}\r\n />\r\n );\r\n }\r\n });\r\n return field;\r\n};\r\n\r\nFieldsColonnaMultiuso.defaultProps = {\r\n disabilitaRateazione: false,\r\n};\r\n\r\nFieldsColonnaMultiuso.propTypes = {\r\n campiSpecifici: PropTypes.arrayOf(PropTypes.object).isRequired,\r\n cambioValoreRata: PropTypes.func.isRequired,\r\n onChangeAutocompletes: PropTypes.func.isRequired,\r\n disabilitaRateazione: PropTypes.bool,\r\n};\r\n\r\nexport default FieldsColonnaMultiuso;\r\n","import React, { useCallback } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Autocomplete, Input, Validation,\r\n} from 'framework-ui-components';\r\nimport NewAccordion from '../../../components/custom/NewAccordion';\r\nimport TemplateGrid from '../../../components/TemplateGrid/TemplateGrid';\r\nimport { isCampoDisabled, isValidationRequired } from '../../../utils/validations';\r\nimport FieldsColonnaMultiuso from './FieldsColonnaMultiuso';\r\nimport { cercaAnniRiferimentoValidi, cercaRegioniProvinceAutonomeInTabellaT0 } from '../../../apis/tributi';\r\n\r\nconst SezioneRegioniDebito = ({\r\n presetForm,\r\n campiSpecifici,\r\n idCodiceTributo,\r\n rateazione,\r\n limiteUnico,\r\n annoRiferimento,\r\n erroreImportoLimitato,\r\n}) => {\r\n const onChangeAutocompletes = (campo, elemento) => {\r\n const tributoVals = [];\r\n\r\n if (campo === 'CodiceRegione') {\r\n tributoVals.IdTabellaT0 = elemento.IdTabellaT0;\r\n tributoVals.CodiceRegioneDescrizioneComposta = elemento.DescrizioneComposta;\r\n }\r\n\r\n if (campo === 'AnnoRiferimento') {\r\n tributoVals.AnnoRiferimento = elemento.Anno;\r\n }\r\n\r\n if (campo === 'MeseRiferimento' || campo === 'Mese') {\r\n tributoVals.MeseRiferimento = elemento.Numero;\r\n tributoVals.MeseDescrizione = elemento.Descrizione;\r\n }\r\n\r\n presetForm(tributoVals);\r\n };\r\n\r\n const cambioValoreRata = useCallback((val) => {\r\n const key = val.key || val.keyCode || val.charCode;\r\n if ((key === 'Backspace' || key === 'Delete' || key === 8 || key === 46) && rateazione.length === 3) {\r\n presetForm({\r\n Rateazione: rateazione.substring(0, rateazione.length - 2),\r\n });\r\n }\r\n }, [rateazione, presetForm]);\r\n\r\n return (\r\n \r\n \r\n onChangeAutocompletes('CodiceRegione', val)}\r\n name=\"CodiceRegioneDescrizioneComposta\"\r\n title=\"Codice Regione\"\r\n url={cercaRegioniProvinceAutonomeInTabellaT0()}\r\n renderProperty=\"DescrizioneComposta\"\r\n validations={isValidationRequired(campiSpecifici, 'CodiceRegione')}\r\n disabled={isCampoDisabled(campiSpecifici, 'CodiceRegione')}\r\n autoFocus={idCodiceTributo}\r\n />\r\n \r\n onChangeAutocompletes('AnnoRiferimento', val)}\r\n name=\"AnnoRiferimento\"\r\n title=\"Anno riferimento\"\r\n url={cercaAnniRiferimentoValidi()}\r\n renderProperty=\"Anno\"\r\n validations={isValidationRequired(campiSpecifici, 'AnnoRiferimento')}\r\n disabled={isCampoDisabled(campiSpecifici, 'AnnoRiferimento')}\r\n minLength={1}\r\n />\r\n
    \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nSezioneRegioniDebito.defaultProps = {\r\n erroreImportoLimitato: false,\r\n annoRiferimento: '',\r\n};\r\n\r\nSezioneRegioniDebito.propTypes = {\r\n presetForm: PropTypes.func.isRequired,\r\n campiSpecifici: PropTypes.arrayOf(PropTypes.object).isRequired,\r\n idCodiceTributo: PropTypes.number.isRequired,\r\n rateazione: PropTypes.string.isRequired,\r\n erroreImportoLimitato: PropTypes.bool,\r\n limiteUnico: PropTypes.bool.isRequired,\r\n annoRiferimento: PropTypes.string,\r\n};\r\n\r\nexport default SezioneRegioniDebito;\r\n","import React from 'react';\r\nimport {\r\n Autocomplete, Input, Restriction, Validation,\r\n} from 'framework-ui-components';\r\nimport PropTypes from 'prop-types';\r\nimport { isCampoDisabled, isValidationRequired } from '../../../utils/validations';\r\nimport { TIPOLOGIA_SEZIONE } from '../../../models/tributi';\r\nimport NewAccordion from '../../../components/custom/NewAccordion';\r\nimport TemplateGrid from '../../../components/TemplateGrid/TemplateGrid';\r\nimport { cercaSediEntiPrevidenziali } from '../../../apis/tributi';\r\n\r\nconst SezioneInail = ({\r\n campiSpecifici, presetForm, idCodiceTributo,\r\n}) => {\r\n const onChangeAutocompletes = (campo, elemento) => {\r\n const tributoVals = [];\r\n\r\n if (campo === 'CodiceSede') {\r\n tributoVals.CodiceSede = elemento.DescrizioneComposta;\r\n tributoVals.IdSede = elemento.Id;\r\n }\r\n\r\n presetForm(tributoVals);\r\n };\r\n\r\n return (\r\n \r\n \r\n onChangeAutocompletes('CodiceSede', val)}\r\n name=\"CodiceSede\"\r\n title=\"Codice sede\"\r\n url={cercaSediEntiPrevidenziali(TIPOLOGIA_SEZIONE.INAIL, null)}\r\n validations={isValidationRequired(campiSpecifici, 'CodiceSede')}\r\n disabled={isCampoDisabled(campiSpecifici, 'CodiceSede')}\r\n autoFocus={idCodiceTributo}\r\n renderProperty=\"DescrizioneComposta\"\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nSezioneInail.defaultProps = {\r\n};\r\n\r\nSezioneInail.propTypes = {\r\n campiSpecifici: PropTypes.arrayOf(PropTypes.object).isRequired,\r\n presetForm: PropTypes.func.isRequired,\r\n idCodiceTributo: PropTypes.number.isRequired,\r\n};\r\n\r\nexport default SezioneInail;\r\n","// eslint-disable-next-line import/prefer-default-export\r\nexport const isAnnoSuperiore2016 = (periodoOAnno) => {\r\n if (periodoOAnno && parseInt(periodoOAnno, 10) >= 2016) {\r\n return true;\r\n }\r\n if (periodoOAnno && periodoOAnno.length > 0 && parseInt(periodoOAnno.split('/')[1], 10) >= 2016) {\r\n return true;\r\n }\r\n\r\n return false;\r\n};\r\n","import React, { useCallback, useEffect } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Autocomplete, DatePicker, Input, Restriction, Validation,\r\n} from 'framework-ui-components';\r\nimport NewAccordion from '../../../components/custom/NewAccordion';\r\nimport TemplateGrid from '../../../components/TemplateGrid/TemplateGrid';\r\nimport { isCampoDisabled, isValidationRequired } from '../../../utils/validations';\r\nimport FieldsColonnaMultiuso from './FieldsColonnaMultiuso';\r\nimport { TIPOLOGIA_SEZIONE } from '../../../models/tributi';\r\nimport { cercaSediEntiPrevidenziali } from '../../../apis/tributi';\r\nimport { isAnnoSuperiore2016 } from '../../../models/sezioneCrediti';\r\nimport CheckboxTitle from '../../../components/custom/CheckboxTitle';\r\n\r\nconst SezioneAltriEnti = ({\r\n presetForm,\r\n idEnte,\r\n campiSpecifici,\r\n idCodiceTributo,\r\n periodoDa,\r\n periodoA,\r\n annoRiferimentoDa,\r\n erroreImportoLimitato,\r\n limiteUnico,\r\n}) => {\r\n const onChangeAutocompletes = (campo, elemento) => {\r\n const tributoVals = [];\r\n\r\n if (campo === 'CodiceSede') {\r\n tributoVals.IdSede = elemento.Id;\r\n tributoVals.CodiceSedeDescrizioneComposta = elemento.DescrizioneComposta;\r\n }\r\n\r\n if (campo === 'MeseRiferimentoDa') {\r\n tributoVals.MeseRiferimentoDa = elemento.Numero;\r\n tributoVals.MeseRiferimentoDaDescrizione = elemento.Descrizione;\r\n }\r\n\r\n if (campo === 'MeseRiferimentoA') {\r\n tributoVals.MeseRiferimentoA = elemento.Numero;\r\n tributoVals.MeseRiferimentoADescrizione = elemento.Descrizione;\r\n }\r\n\r\n if (campo === 'AnnoRiferimentoDa') {\r\n tributoVals.AnnoRiferimentoDa = elemento.Anno;\r\n }\r\n\r\n if (campo === 'AnnoRiferimentoA') {\r\n tributoVals.AnnoRiferimentoA = elemento.Anno;\r\n }\r\n\r\n presetForm(tributoVals);\r\n };\r\n\r\n const cambioValorePeriodoDa = useCallback((val) => {\r\n const key = val.key || val.keyCode || val.charCode;\r\n if ((key === 'Backspace' || key === 'Delete' || key === 8 || key === 46) && periodoDa.length === 3) {\r\n presetForm({\r\n PeriodoDa: periodoDa.substring(0, periodoDa.length - 2),\r\n });\r\n }\r\n }, [periodoDa, presetForm]);\r\n\r\n const cambioValorePeriodoA = useCallback((val) => {\r\n const key = val.key || val.keyCode || val.charCode;\r\n if ((key === 'Backspace' || key === 'Delete' || key === 8 || key === 46) && periodoA.length === 3) {\r\n presetForm({\r\n PeriodoA: periodoA.substring(0, periodoA.length - 2),\r\n });\r\n }\r\n }, [periodoA, presetForm]);\r\n\r\n // useEffect(() => {\r\n // presetForm({\r\n // CodiceEnte: 'INPDAP',\r\n // });\r\n // }, []);\r\n\r\n return (\r\n \r\n \r\n \r\n onChangeAutocompletes('CodiceSede', val)}\r\n name=\"CodiceSedeDescrizioneComposta\"\r\n title=\"Codice Sede\"\r\n url={cercaSediEntiPrevidenziali(TIPOLOGIA_SEZIONE.ALTRI_ENTI, idEnte)}\r\n renderProperty=\"DescrizioneComposta\"\r\n validations={isValidationRequired(campiSpecifici, 'CodiceSede')}\r\n disabled={isCampoDisabled(campiSpecifici, 'CodiceSede')}\r\n autoFocus={idCodiceTributo}\r\n />\r\n \r\n {FieldsColonnaMultiuso(campiSpecifici, cambioValorePeriodoDa, cambioValorePeriodoA, onChangeAutocompletes)}\r\n
    \r\n \r\n \r\n {limiteUnico && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nSezioneAltriEnti.defaultProps = {\r\n annoRiferimentoDa: 0,\r\n erroreImportoLimitato: false,\r\n};\r\n\r\nSezioneAltriEnti.propTypes = {\r\n presetForm: PropTypes.func.isRequired,\r\n campiSpecifici: PropTypes.arrayOf(PropTypes.object).isRequired,\r\n idCodiceTributo: PropTypes.number.isRequired,\r\n periodoDa: PropTypes.string.isRequired,\r\n periodoA: PropTypes.string.isRequired,\r\n idEnte: PropTypes.number.isRequired,\r\n annoRiferimentoDa: PropTypes.number,\r\n erroreImportoLimitato: PropTypes.bool,\r\n limiteUnico: PropTypes.bool.isRequired,\r\n};\r\n\r\nexport default SezioneAltriEnti;\r\n","import React from 'react';\r\nimport {\r\n Autocomplete, Highlighter, Input, Validation,\r\n} from 'framework-ui-components';\r\nimport { isCampoDisabled, isValidationRequired } from '../../../utils/validations';\r\nimport { MESI_ANNO } from '../../../models/tributi';\r\nimport { cercaAnniRiferimentoValidi } from '../../../apis/tributi';\r\n\r\nconst FieldsColonnaMultiuso = (campiSpecifici, cambioValorePeriodoDa, cambioValorePeriodoA, onChangeAutocompletes) => {\r\n const nomiCampi = [\r\n 'AnnoRiferimentoA',\r\n 'AnnoRiferimentoDa',\r\n 'MeseRiferimentoA',\r\n 'MeseRiferimentoDa',\r\n // c'è nel DB ma non deve esserci, ho lasciato perchè se un giorno ci dimentichiamo...\r\n 'Rata'];\r\n\r\n // FALSO POSITIVO di ESLINT\r\n // eslint-disable-next-line react/destructuring-assignment\r\n if (campiSpecifici.length === 0) {\r\n return [
    ,
    ];\r\n }\r\n\r\n const nonPresente = (campo) => (isCampoDisabled(campiSpecifici, campo));\r\n if (nomiCampi.every(nonPresente)) {\r\n return [\r\n cambioValorePeriodoDa(e)}\r\n maxLength={7}\r\n upperCase\r\n />,\r\n cambioValorePeriodoA(e)}\r\n maxLength={7}\r\n upperCase\r\n />];\r\n }\r\n\r\n let field = (
    );\r\n\r\n // sembrano tanti IF perchè ho provato a fare tutti i casi possibili delle interpolazioni tra MeseRiferimento Da/A e AnnoRiferimento Da/a\r\n nomiCampi.forEach((nomeCampo) => {\r\n const isPresente = !isCampoDisabled(campiSpecifici, nomeCampo);\r\n if ((nomeCampo === 'MeseRiferimentoDa' && isPresente\r\n && !isCampoDisabled(campiSpecifici, 'AnnoRiferimentoDa'))\r\n && !isCampoDisabled(campiSpecifici, 'MeseRiferimentoA')\r\n && !isCampoDisabled(campiSpecifici, 'AnnoRiferimentoA')) {\r\n field = [\r\n cambioValorePeriodoDa(e)}\r\n maxLength={7}\r\n upperCase\r\n />,\r\n cambioValorePeriodoA(e)}\r\n maxLength={7}\r\n upperCase\r\n />];\r\n } else if (nomeCampo === 'MeseRiferimentoDa'\r\n && isPresente\r\n && !isCampoDisabled(campiSpecifici, 'AnnoRiferimentoDa')) {\r\n field = [\r\n onChangeAutocompletes('MeseRiferimentoDa', val)}\r\n name=\"MeseRiferimentoDaDescrizione\"\r\n title=\"Mese da\"\r\n dataSource={MESI_ANNO}\r\n renderProperty=\"Descrizione\"\r\n validations={isValidationRequired(campiSpecifici, 'MeseRiferimentoDa')}\r\n minLength={1}\r\n />,\r\n onChangeAutocompletes('AnnoRiferimentoDa', val)}\r\n name=\"AnnoRiferimentoDa\"\r\n title=\"Anno da\"\r\n url={cercaAnniRiferimentoValidi()}\r\n renderProperty=\"Anno\"\r\n validations={isValidationRequired(campiSpecifici, 'AnnoRiferimentoDa')}\r\n disabled={isCampoDisabled(campiSpecifici, 'AnnoRiferimentoDa')}\r\n minLength={1}\r\n />];\r\n } else if (nomeCampo === 'MeseRiferimentoDa' && isPresente && !isCampoDisabled(campiSpecifici, 'MeseRiferimentoA')) {\r\n field = [\r\n onChangeAutocompletes('MeseRiferimentoDa', val)}\r\n name=\"MeseRiferimentoDaDescrizione\"\r\n title=\"Mese da\"\r\n dataSource={MESI_ANNO}\r\n renderProperty=\"Descrizione\"\r\n validations={isValidationRequired(campiSpecifici, 'MeseRiferimentoDa')}\r\n minLength={1}\r\n />,\r\n onChangeAutocompletes('MeseRiferimentoA', val)}\r\n name=\"MeseRiferimentoADescrizione\"\r\n title=\"Mese a\"\r\n dataSource={MESI_ANNO}\r\n renderProperty=\"Descrizione\"\r\n validations={isValidationRequired(campiSpecifici, 'MeseRiferimentoA')}\r\n minLength={1}\r\n />];\r\n } else if (nomeCampo === 'AnnoRiferimentoDa' && isPresente && !isCampoDisabled(campiSpecifici, 'AnnoRiferimentoA')) {\r\n field = [\r\n onChangeAutocompletes('AnnoRiferimentoDa', val)}\r\n name=\"AnnoRiferimentoDa\"\r\n title=\"Anno da\"\r\n url={cercaAnniRiferimentoValidi()}\r\n renderProperty=\"Anno\"\r\n validations={isValidationRequired(campiSpecifici, 'AnnoRiferimentoDa')}\r\n disabled={isCampoDisabled(campiSpecifici, 'AnnoRiferimentoDa')}\r\n minLength={1}\r\n />,\r\n onChangeAutocompletes('AnnoRiferimentoA', val)}\r\n name=\"AnnoRiferimentoA\"\r\n title=\"Anno a\"\r\n url={cercaAnniRiferimentoValidi()}\r\n renderProperty=\"Anno\"\r\n validations={isValidationRequired(campiSpecifici, 'AnnoRiferimentoA')}\r\n disabled={isCampoDisabled(campiSpecifici, 'AnnoRiferimentoA')}\r\n minLength={1}\r\n />];\r\n } else if (nomeCampo === 'MeseRiferimentoDa' && isPresente && isCampoDisabled(campiSpecifici, 'MeseRiferimentoA')) {\r\n field = [\r\n onChangeAutocompletes('MeseRiferimentoDa', val)}\r\n name=\"MeseRiferimentoDaDescrizione\"\r\n title=\"Mese da\"\r\n dataSource={MESI_ANNO}\r\n renderProperty=\"Descrizione\"\r\n validations={isValidationRequired(campiSpecifici, 'MeseRiferimentoDa')}\r\n minLength={1}\r\n />,\r\n onChangeAutocompletes('MeseRiferimentoA', val)}\r\n name=\"MeseRiferimentoADescrizione\"\r\n title=\"Mese a\"\r\n dataSource={MESI_ANNO}\r\n renderProperty=\"Descrizione\"\r\n validations={isValidationRequired(campiSpecifici, 'MeseRiferimentoA')}\r\n minLength={1}\r\n disabled\r\n />];\r\n } else if (nomeCampo === 'AnnoRiferimentoDa' && isPresente && isCampoDisabled(campiSpecifici, 'AnnoRiferimentoA')) {\r\n field = [\r\n onChangeAutocompletes('AnnoRiferimentoDa', val)}\r\n name=\"AnnoRiferimentoDa\"\r\n title=\"Anno da\"\r\n url={cercaAnniRiferimentoValidi()}\r\n renderProperty=\"Anno\"\r\n validations={isValidationRequired(campiSpecifici, 'AnnoRiferimentoDa')}\r\n disabled={isCampoDisabled(campiSpecifici, 'AnnoRiferimentoDa')}\r\n minLength={1}\r\n />,\r\n onChangeAutocompletes('AnnoRiferimentoA', val)}\r\n name=\"AnnoRiferimentoA\"\r\n title=\"Anno a\"\r\n url={cercaAnniRiferimentoValidi()}\r\n renderProperty=\"Anno\"\r\n validations={isValidationRequired(campiSpecifici, 'AnnoRiferimentoA')}\r\n minLength={1}\r\n disabled\r\n />];\r\n } else if (nomeCampo === 'MeseRiferimentoA'\r\n && isPresente\r\n && !isCampoDisabled(campiSpecifici, 'AnnoRiferimentoA')) {\r\n field = [\r\n onChangeAutocompletes('MeseRiferimentoDa', val)}\r\n name=\"MeseRiferimentoDaDescrizione\"\r\n title=\"Mese da\"\r\n dataSource={MESI_ANNO}\r\n renderProperty=\"Descrizione\"\r\n validations={isValidationRequired(campiSpecifici, 'MeseRiferimentoDa')}\r\n minLength={1}\r\n />,\r\n onChangeAutocompletes('AnnoRiferimentoDa', val)}\r\n name=\"AnnoRiferimentoDa\"\r\n title=\"Anno da\"\r\n url={cercaAnniRiferimentoValidi()}\r\n renderProperty=\"Anno\"\r\n validations={isValidationRequired(campiSpecifici, 'AnnoRiferimentoDa')}\r\n disabled={isCampoDisabled(campiSpecifici, 'AnnoRiferimentoDa')}\r\n minLength={1}\r\n />];\r\n } else if (nomeCampo === 'MeseRiferimentoA' && isPresente && !isCampoDisabled(campiSpecifici, 'MeseRiferimentoDa')) {\r\n field = [\r\n onChangeAutocompletes('MeseRiferimentoDa', val)}\r\n name=\"MeseRiferimentoDaDescrizione\"\r\n title=\"Mese da\"\r\n dataSource={MESI_ANNO}\r\n renderProperty=\"Descrizione\"\r\n validations={isValidationRequired(campiSpecifici, 'MeseRiferimentoDa')}\r\n minLength={1}\r\n />,\r\n onChangeAutocompletes('MeseRiferimentoA', val)}\r\n name=\"MeseRiferimentoADescrizione\"\r\n title=\"Mese a\"\r\n dataSource={MESI_ANNO}\r\n renderProperty=\"Descrizione\"\r\n validations={isValidationRequired(campiSpecifici, 'MeseRiferimentoA')}\r\n minLength={1}\r\n />];\r\n } else if (nomeCampo === 'AnnoRiferimentoA' && isPresente && !isCampoDisabled(campiSpecifici, 'AnnoRiferimentoDa')) {\r\n field = [\r\n onChangeAutocompletes('AnnoRiferimentoDa', val)}\r\n name=\"AnnoRiferimentoDa\"\r\n title=\"Anno da\"\r\n url={cercaAnniRiferimentoValidi()}\r\n renderProperty=\"Anno\"\r\n validations={isValidationRequired(campiSpecifici, 'AnnoRiferimentoDa')}\r\n disabled={isCampoDisabled(campiSpecifici, 'AnnoRiferimentoDa')}\r\n minLength={1}\r\n />,\r\n onChangeAutocompletes('AnnoRiferimentoA', val)}\r\n name=\"AnnoRiferimentoA\"\r\n title=\"Anno a\"\r\n url={cercaAnniRiferimentoValidi()}\r\n renderProperty=\"Anno\"\r\n validations={isValidationRequired(campiSpecifici, 'AnnoRiferimentoA')}\r\n disabled={isCampoDisabled(campiSpecifici, 'AnnoRiferimentoA')}\r\n minLength={1}\r\n />];\r\n } else if (nomeCampo === 'MeseRiferimentoA' && isPresente && isCampoDisabled(campiSpecifici, 'MeseRiferimentoDa')) {\r\n field = [\r\n onChangeAutocompletes('MeseRiferimentoDa', val)}\r\n name=\"MeseRiferimentoDaDescrizione\"\r\n title=\"Mese da\"\r\n dataSource={MESI_ANNO}\r\n renderProperty=\"Descrizione\"\r\n validations={isValidationRequired(campiSpecifici, 'MeseRiferimentoDa')}\r\n minLength={1}\r\n />,\r\n onChangeAutocompletes('MeseRiferimentoA', val)}\r\n name=\"MeseRiferimentoADescrizione\"\r\n title=\"Mese a\"\r\n dataSource={MESI_ANNO}\r\n renderProperty=\"Descrizione\"\r\n validations={isValidationRequired(campiSpecifici, 'MeseRiferimentoA')}\r\n minLength={1}\r\n disabled\r\n />];\r\n } else if (nomeCampo === 'AnnoRiferimentoA' && isPresente && isCampoDisabled(campiSpecifici, 'AnnoRiferimentoDa')) {\r\n field = [\r\n onChangeAutocompletes('AnnoRiferimentoDa', val)}\r\n name=\"AnnoRiferimentoDa\"\r\n title=\"Anno da\"\r\n url={cercaAnniRiferimentoValidi()}\r\n renderProperty=\"Anno\"\r\n validations={isValidationRequired(campiSpecifici, 'AnnoRiferimentoDa')}\r\n disabled={isCampoDisabled(campiSpecifici, 'AnnoRiferimentoDa')}\r\n minLength={1}\r\n />,\r\n onChangeAutocompletes('AnnoRiferimentoA', val)}\r\n name=\"AnnoRiferimentoA\"\r\n title=\"Anno a\"\r\n url={cercaAnniRiferimentoValidi()}\r\n renderProperty=\"Anno\"\r\n validations={isValidationRequired(campiSpecifici, 'AnnoRiferimentoA')}\r\n minLength={1}\r\n disabled\r\n />];\r\n }\r\n });\r\n return field;\r\n};\r\n\r\nexport default FieldsColonnaMultiuso;\r\n","import React, { useCallback } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\nimport {\r\n Autocomplete, DatePicker, Input, Restriction, Validation,\r\n} from 'framework-ui-components';\r\nimport NewAccordion from '../../../components/custom/NewAccordion';\r\nimport TemplateGrid from '../../../components/TemplateGrid/TemplateGrid';\r\nimport { isCampoDisabled, isValidationRequired } from '../../../utils/validations';\r\nimport FieldsColonnaMultiuso from './FieldsColonnaMultiuso';\r\nimport { TIPOLOGIA_SEZIONE } from '../../../models/tributi';\r\nimport { cercaSediEntiPrevidenziali } from '../../../apis/tributi';\r\nimport { isAnnoSuperiore2016 } from '../../../models/sezioneCrediti';\r\nimport CheckboxTitle from '../../../components/custom/CheckboxTitle';\r\n\r\nconst SezioneInps = ({\r\n presetForm,\r\n campiSpecifici,\r\n idCodiceTributo,\r\n periodoDa,\r\n periodoA,\r\n annoRiferimentoDa,\r\n erroreImportoLimitato,\r\n limiteUnico,\r\n}) => {\r\n const onChangeAutocompletes = (campo, elemento) => {\r\n const tributoVals = [];\r\n\r\n if (campo === 'CodiceSede') {\r\n tributoVals.IdSede = elemento.Id;\r\n tributoVals.CodiceSedeDescrizioneComposta = elemento.DescrizioneComposta;\r\n }\r\n\r\n if (campo === 'MeseRiferimentoDa') {\r\n tributoVals.MeseRiferimentoDa = elemento.Numero;\r\n tributoVals.MeseRiferimentoDaDescrizione = elemento.Descrizione;\r\n }\r\n\r\n if (campo === 'MeseRiferimentoA') {\r\n tributoVals.MeseRiferimentoA = elemento.Numero;\r\n tributoVals.MeseRiferimentoADescrizione = elemento.Descrizione;\r\n }\r\n\r\n if (campo === 'AnnoRiferimentoDa') {\r\n tributoVals.AnnoRiferimentoDa = elemento.Anno;\r\n }\r\n\r\n if (campo === 'AnnoRiferimentoA') {\r\n tributoVals.AnnoRiferimentoA = elemento.Anno;\r\n }\r\n\r\n presetForm(tributoVals);\r\n };\r\n\r\n const cambioValorePeriodoDa = useCallback((val) => {\r\n const key = val.key || val.keyCode || val.charCode;\r\n if ((key === 'Backspace' || key === 'Delete' || key === 8 || key === 46) && periodoDa.length === 3) {\r\n presetForm({\r\n PeriodoDa: periodoDa.substring(0, periodoDa.length - 2),\r\n });\r\n }\r\n }, [periodoDa, presetForm]);\r\n\r\n const cambioValorePeriodoA = useCallback((val) => {\r\n const key = val.key || val.keyCode || val.charCode;\r\n if ((key === 'Backspace' || key === 'Delete' || key === 8 || key === 46) && periodoA.length === 3) {\r\n presetForm({\r\n PeriodoA: periodoA.substring(0, periodoA.length - 2),\r\n });\r\n }\r\n }, [periodoA, presetForm]);\r\n\r\n return (\r\n \r\n \r\n onChangeAutocompletes('CodiceSede', val)}\r\n name=\"CodiceSedeDescrizioneComposta\"\r\n title=\"Codice Sede\"\r\n url={cercaSediEntiPrevidenziali(TIPOLOGIA_SEZIONE.INPS, null)}\r\n renderProperty=\"DescrizioneComposta\"\r\n validations={isValidationRequired(campiSpecifici, 'CodiceSede')}\r\n disabled={isCampoDisabled(campiSpecifici, 'CodiceSede')}\r\n autoFocus={idCodiceTributo}\r\n />\r\n {FieldsColonnaMultiuso(campiSpecifici, cambioValorePeriodoDa, cambioValorePeriodoA, onChangeAutocompletes)}\r\n \r\n
    \r\n \r\n \r\n {(!limiteUnico && isValidationRequired(campiSpecifici, 'DataPresentazioneDichiarazione')) && (\r\n\r\n \r\n \r\n \r\n )}\r\n {limiteUnico && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nSezioneInps.defaultProps = {\r\n annoRiferimentoDa: 0,\r\n erroreImportoLimitato: false,\r\n};\r\n\r\nSezioneInps.propTypes = {\r\n presetForm: PropTypes.func.isRequired,\r\n campiSpecifici: PropTypes.arrayOf(PropTypes.object).isRequired,\r\n idCodiceTributo: PropTypes.number.isRequired,\r\n periodoDa: PropTypes.string.isRequired,\r\n periodoA: PropTypes.string.isRequired,\r\n annoRiferimentoDa: PropTypes.number,\r\n erroreImportoLimitato: PropTypes.bool,\r\n limiteUnico: PropTypes.bool.isRequired,\r\n};\r\n\r\nexport default SezioneInps;\r\n","import React from 'react';\r\nimport {\r\n Autocomplete, Highlighter, Input, Restriction, Validation,\r\n} from 'framework-ui-components';\r\nimport { isCampoDisabled, isValidationRequired } from '../../../utils/validations';\r\nimport { MESI_ANNO } from '../../../models/tributi';\r\nimport { cercaAnniRiferimentoValidi } from '../../../apis/tributi';\r\n\r\nconst FieldsColonnaMultiuso = (campiSpecifici, cambioValorePeriodoDa, cambioValorePeriodoA, onChangeAutocompletes) => {\r\n const nomiCampi = [\r\n 'AnnoRiferimentoA',\r\n 'AnnoRiferimentoDa',\r\n 'MeseRiferimentoA',\r\n 'MeseRiferimentoDa',\r\n // c'è nel DB ma non deve esserci, ho lasciato perchè se un giorno ci dimentichiamo...\r\n 'Rata'];\r\n\r\n // FALSO POSITIVO di ESLINT\r\n // eslint-disable-next-line react/destructuring-assignment\r\n if (campiSpecifici.length === 0) {\r\n return [
    ,
    ];\r\n }\r\n\r\n const nonPresente = (campo) => (isCampoDisabled(campiSpecifici, campo));\r\n if (nomiCampi.every(nonPresente)) {\r\n return [\r\n cambioValorePeriodoDa(e)}\r\n maxLength={7}\r\n upperCase\r\n />,\r\n cambioValorePeriodoA(e)}\r\n maxLength={7}\r\n upperCase\r\n />];\r\n }\r\n\r\n let field = (
    );\r\n\r\n // sembrano tanti IF perchè ho provato a fare tutti i casi possibili delle interpolazioni tra MeseRiferimento Da/A e AnnoRiferimento Da/a\r\n nomiCampi.forEach((nomeCampo) => {\r\n const isPresente = !isCampoDisabled(campiSpecifici, nomeCampo);\r\n if ((nomeCampo === 'MeseRiferimentoDa' && isPresente\r\n && !isCampoDisabled(campiSpecifici, 'AnnoRiferimentoDa'))\r\n && !isCampoDisabled(campiSpecifici, 'MeseRiferimentoA')\r\n && !isCampoDisabled(campiSpecifici, 'AnnoRiferimentoA')) {\r\n field = [\r\n cambioValorePeriodoDa(e)}\r\n maxLength={7}\r\n upperCase\r\n />,\r\n cambioValorePeriodoA(e)}\r\n maxLength={7}\r\n upperCase\r\n />];\r\n } else if (nomeCampo === 'MeseRiferimentoDa'\r\n && isPresente\r\n && !isCampoDisabled(campiSpecifici, 'AnnoRiferimentoDa')) {\r\n field = [\r\n onChangeAutocompletes('MeseRiferimentoDa', val)}\r\n name=\"MeseRiferimentoDaDescrizione\"\r\n title=\"Mese da\"\r\n dataSource={MESI_ANNO}\r\n renderProperty=\"Descrizione\"\r\n validations={isValidationRequired(campiSpecifici, 'MeseRiferimentoDa')}\r\n minLength={1}\r\n />,\r\n onChangeAutocompletes('AnnoRiferimentoDa', val)}\r\n name=\"AnnoRiferimentoDa\"\r\n title=\"Anno da\"\r\n url={cercaAnniRiferimentoValidi()}\r\n renderProperty=\"Anno\"\r\n validations={isValidationRequired(campiSpecifici, 'AnnoRiferimentoDa')}\r\n disabled={isCampoDisabled(campiSpecifici, 'AnnoRiferimentoDa')}\r\n minLength={1}\r\n />];\r\n } else if (nomeCampo === 'MeseRiferimentoDa' && isPresente && !isCampoDisabled(campiSpecifici, 'MeseRiferimentoA')) {\r\n field = [\r\n onChangeAutocompletes('MeseRiferimentoDa', val)}\r\n name=\"MeseRiferimentoDaDescrizione\"\r\n title=\"Mese da\"\r\n dataSource={MESI_ANNO}\r\n renderProperty=\"Descrizione\"\r\n validations={isValidationRequired(campiSpecifici, 'MeseRiferimentoDa')}\r\n minLength={1}\r\n />,\r\n onChangeAutocompletes('MeseRiferimentoA', val)}\r\n name=\"MeseRiferimentoADescrizione\"\r\n title=\"Mese a\"\r\n dataSource={MESI_ANNO}\r\n renderProperty=\"Descrizione\"\r\n validations={isValidationRequired(campiSpecifici, 'MeseRiferimentoA')}\r\n minLength={1}\r\n />];\r\n } else if (nomeCampo === 'AnnoRiferimentoDa' && isPresente && !isCampoDisabled(campiSpecifici, 'AnnoRiferimentoA')) {\r\n field = [\r\n onChangeAutocompletes('AnnoRiferimentoDa', val)}\r\n name=\"AnnoRiferimentoDa\"\r\n title=\"Anno da\"\r\n url={cercaAnniRiferimentoValidi()}\r\n renderProperty=\"Anno\"\r\n validations={isValidationRequired(campiSpecifici, 'AnnoRiferimentoDa')}\r\n disabled={isCampoDisabled(campiSpecifici, 'AnnoRiferimentoDa')}\r\n minLength={1}\r\n />,\r\n onChangeAutocompletes('AnnoRiferimentoA', val)}\r\n name=\"AnnoRiferimentoA\"\r\n title=\"Anno a\"\r\n url={cercaAnniRiferimentoValidi()}\r\n renderProperty=\"Anno\"\r\n validations={isValidationRequired(campiSpecifici, 'AnnoRiferimentoA')}\r\n disabled={isCampoDisabled(campiSpecifici, 'AnnoRiferimentoA')}\r\n minLength={1}\r\n />];\r\n } else if (nomeCampo === 'MeseRiferimentoDa' && isPresente && isCampoDisabled(campiSpecifici, 'MeseRiferimentoA')) {\r\n field = [\r\n onChangeAutocompletes('MeseRiferimentoDa', val)}\r\n name=\"MeseRiferimentoDaDescrizione\"\r\n title=\"Mese da\"\r\n dataSource={MESI_ANNO}\r\n renderProperty=\"Descrizione\"\r\n validations={isValidationRequired(campiSpecifici, 'MeseRiferimentoDa')}\r\n minLength={1}\r\n />,\r\n onChangeAutocompletes('MeseRiferimentoA', val)}\r\n name=\"MeseRiferimentoADescrizione\"\r\n title=\"Mese a\"\r\n dataSource={MESI_ANNO}\r\n renderProperty=\"Descrizione\"\r\n minLength={1}\r\n disabled\r\n />];\r\n } else if (nomeCampo === 'AnnoRiferimentoDa' && isPresente && !isCampoDisabled(campiSpecifici, 'Rata')) {\r\n field = [\r\n onChangeAutocompletes('AnnoRiferimentoDa', val)}\r\n name=\"AnnoRiferimentoDa\"\r\n title=\"Anno da\"\r\n url={cercaAnniRiferimentoValidi()}\r\n renderProperty=\"Anno\"\r\n validations={isValidationRequired(campiSpecifici, 'AnnoRiferimentoDa')}\r\n disabled={isCampoDisabled(campiSpecifici, 'AnnoRiferimentoDa')}\r\n minLength={1}\r\n />,\r\n ];\r\n } else if (nomeCampo === 'AnnoRiferimentoDa' && isPresente && isCampoDisabled(campiSpecifici, 'Rata')) {\r\n field = [\r\n onChangeAutocompletes('AnnoRiferimentoDa', val)}\r\n name=\"AnnoRiferimentoDa\"\r\n title=\"Anno da\"\r\n url={cercaAnniRiferimentoValidi()}\r\n renderProperty=\"Anno\"\r\n validations={isValidationRequired(campiSpecifici, 'AnnoRiferimentoDa')}\r\n disabled={isCampoDisabled(campiSpecifici, 'AnnoRiferimentoDa')}\r\n minLength={1}\r\n />,\r\n ];\r\n } else if (nomeCampo === 'MeseRiferimentoA'\r\n && isPresente\r\n && !isCampoDisabled(campiSpecifici, 'AnnoRiferimentoA')) {\r\n field = [\r\n onChangeAutocompletes('MeseRiferimentoDa', val)}\r\n name=\"MeseRiferimentoDaDescrizione\"\r\n title=\"Mese da\"\r\n dataSource={MESI_ANNO}\r\n renderProperty=\"Descrizione\"\r\n validations={isValidationRequired(campiSpecifici, 'MeseRiferimentoDa')}\r\n minLength={1}\r\n />,\r\n onChangeAutocompletes('AnnoRiferimentoDa', val)}\r\n name=\"AnnoRiferimentoDa\"\r\n title=\"Anno da\"\r\n url={cercaAnniRiferimentoValidi()}\r\n renderProperty=\"Anno\"\r\n validations={isValidationRequired(campiSpecifici, 'AnnoRiferimentoDa')}\r\n disabled={isCampoDisabled(campiSpecifici, 'AnnoRiferimentoDa')}\r\n minLength={1}\r\n />];\r\n } else if (nomeCampo === 'MeseRiferimentoA' && isPresente && !isCampoDisabled(campiSpecifici, 'MeseRiferimentoDa')) {\r\n field = [\r\n onChangeAutocompletes('MeseRiferimentoDa', val)}\r\n name=\"MeseRiferimentoDaDescrizione\"\r\n title=\"Mese da\"\r\n dataSource={MESI_ANNO}\r\n renderProperty=\"Descrizione\"\r\n validations={isValidationRequired(campiSpecifici, 'MeseRiferimentoDa')}\r\n minLength={1}\r\n />,\r\n onChangeAutocompletes('MeseRiferimentoA', val)}\r\n name=\"MeseRiferimentoADescrizione\"\r\n title=\"Mese a\"\r\n dataSource={MESI_ANNO}\r\n renderProperty=\"Descrizione\"\r\n validations={isValidationRequired(campiSpecifici, 'MeseRiferimentoA')}\r\n minLength={1}\r\n />];\r\n } else if (nomeCampo === 'AnnoRiferimentoA' && isPresente && !isCampoDisabled(campiSpecifici, 'AnnoRiferimentoDa')) {\r\n field = [\r\n onChangeAutocompletes('AnnoRiferimentoDa', val)}\r\n name=\"AnnoRiferimentoDa\"\r\n title=\"Anno da\"\r\n url={cercaAnniRiferimentoValidi()}\r\n renderProperty=\"Anno\"\r\n validations={isValidationRequired(campiSpecifici, 'AnnoRiferimentoDa')}\r\n disabled={isCampoDisabled(campiSpecifici, 'AnnoRiferimentoDa')}\r\n minLength={1}\r\n />,\r\n onChangeAutocompletes('AnnoRiferimentoA', val)}\r\n name=\"AnnoRiferimentoA\"\r\n title=\"Anno a\"\r\n url={cercaAnniRiferimentoValidi()}\r\n renderProperty=\"Anno\"\r\n validations={isValidationRequired(campiSpecifici, 'AnnoRiferimentoA')}\r\n disabled={isCampoDisabled(campiSpecifici, 'AnnoRiferimentoA')}\r\n minLength={1}\r\n />];\r\n } else if (nomeCampo === 'MeseRiferimentoA' && isPresente && isCampoDisabled(campiSpecifici, 'MeseRiferimentoDa')) {\r\n field = [\r\n onChangeAutocompletes('MeseRiferimentoDa', val)}\r\n name=\"MeseRiferimentoDaDescrizione\"\r\n title=\"Mese da\"\r\n dataSource={MESI_ANNO}\r\n renderProperty=\"Descrizione\"\r\n validations={isValidationRequired(campiSpecifici, 'MeseRiferimentoDa')}\r\n minLength={1}\r\n />,\r\n onChangeAutocompletes('MeseRiferimentoA', val)}\r\n name=\"MeseRiferimentoADescrizione\"\r\n title=\"Mese a\"\r\n dataSource={MESI_ANNO}\r\n renderProperty=\"Descrizione\"\r\n validations={isValidationRequired(campiSpecifici, 'MeseRiferimentoA')}\r\n minLength={1}\r\n disabled\r\n />];\r\n } else if (nomeCampo === 'AnnoRiferimentoA' && isPresente && isCampoDisabled(campiSpecifici, 'AnnoRiferimentoDa')) {\r\n field = [\r\n onChangeAutocompletes('AnnoRiferimentoDa', val)}\r\n name=\"AnnoRiferimentoDa\"\r\n title=\"Anno da\"\r\n url={cercaAnniRiferimentoValidi()}\r\n renderProperty=\"Anno\"\r\n validations={isValidationRequired(campiSpecifici, 'AnnoRiferimentoDa')}\r\n disabled={isCampoDisabled(campiSpecifici, 'AnnoRiferimentoDa')}\r\n minLength={1}\r\n />,\r\n onChangeAutocompletes('AnnoRiferimentoA', val)}\r\n name=\"AnnoRiferimentoA\"\r\n title=\"Anno a\"\r\n url={cercaAnniRiferimentoValidi()}\r\n renderProperty=\"Anno\"\r\n validations={isValidationRequired(campiSpecifici, 'AnnoRiferimentoA')}\r\n minLength={1}\r\n disabled\r\n />];\r\n }\r\n });\r\n return field;\r\n};\r\n\r\nexport default FieldsColonnaMultiuso;\r\n","import React, { useCallback, useEffect } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\nimport {\r\n Autocomplete, DatePicker, Highlighter, Input, Restriction, Validation,\r\n} from 'framework-ui-components';\r\nimport NewAccordion from '../../../components/custom/NewAccordion';\r\nimport TemplateGrid from '../../../components/TemplateGrid/TemplateGrid';\r\nimport { isCampoDisabled, isValidationRequired } from '../../../utils/validations';\r\nimport FieldsColonnaMultiuso from './FieldsColonnaMultiuso';\r\nimport { cercaAnniRiferimentoValidi, cercaRegioniProvinceAutonomeInTabellaT0 } from '../../../apis/tributi';\r\nimport { isAnnoSuperiore2016 } from '../../../models/sezioneCrediti';\r\nimport CheckboxTitle from '../../../components/custom/CheckboxTitle';\r\n\r\nconst SezioneRegioniCredito = ({\r\n presetForm,\r\n campiSpecifici,\r\n idCodiceTributo,\r\n rateazione,\r\n limiteUnico,\r\n annoRiferimento,\r\n erroreImportoLimitato,\r\n}) => {\r\n const onChangeAutocompletes = (campo, elemento) => {\r\n const tributoVals = [];\r\n\r\n if (campo === 'CodiceRegione') {\r\n tributoVals.IdTabellaT0 = elemento.IdTabellaT0;\r\n tributoVals.CodiceRegioneDescrizioneComposta = elemento.DescrizioneComposta;\r\n }\r\n\r\n if (campo === 'AnnoRiferimento') {\r\n tributoVals.AnnoRiferimento = elemento.Anno;\r\n }\r\n\r\n if (campo === 'MeseRiferimento' || campo === 'Mese') {\r\n tributoVals.MeseRiferimento = elemento.Numero;\r\n tributoVals.MeseDescrizione = elemento.Descrizione;\r\n }\r\n\r\n presetForm(tributoVals);\r\n };\r\n\r\n const cambioValoreRata = useCallback((val) => {\r\n const key = val.key || val.keyCode || val.charCode;\r\n if ((key === 'Backspace' || key === 'Delete' || key === 8 || key === 46) && rateazione.length === 3) {\r\n presetForm({\r\n Rateazione: rateazione.substring(0, rateazione.length - 2),\r\n });\r\n }\r\n }, [rateazione, presetForm]);\r\n\r\n return (\r\n \r\n \r\n onChangeAutocompletes('CodiceRegione', val)}\r\n name=\"CodiceRegioneDescrizioneComposta\"\r\n title=\"Codice Regione\"\r\n url={cercaRegioniProvinceAutonomeInTabellaT0()}\r\n renderProperty=\"DescrizioneComposta\"\r\n validations={isValidationRequired(campiSpecifici, 'CodiceRegione')}\r\n disabled={isCampoDisabled(campiSpecifici, 'CodiceRegione')}\r\n autoFocus={idCodiceTributo}\r\n />\r\n \r\n onChangeAutocompletes('AnnoRiferimento', val)}\r\n name=\"AnnoRiferimento\"\r\n title=\"Anno riferimento\"\r\n url={cercaAnniRiferimentoValidi()}\r\n renderProperty=\"Anno\"\r\n validations={isValidationRequired(campiSpecifici, 'AnnoRiferimento')}\r\n disabled={isCampoDisabled(campiSpecifici, 'AnnoRiferimento')}\r\n minLength={1}\r\n />\r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nSezioneRegioniCredito.defaultProps = {\r\n erroreImportoLimitato: false,\r\n annoRiferimento: '',\r\n};\r\n\r\nSezioneRegioniCredito.propTypes = {\r\n presetForm: PropTypes.func.isRequired,\r\n campiSpecifici: PropTypes.arrayOf(PropTypes.object).isRequired,\r\n idCodiceTributo: PropTypes.number.isRequired,\r\n rateazione: PropTypes.string.isRequired,\r\n erroreImportoLimitato: PropTypes.bool,\r\n limiteUnico: PropTypes.bool.isRequired,\r\n annoRiferimento: PropTypes.string,\r\n};\r\n\r\nexport default SezioneRegioniCredito;\r\n","import React from 'react';\r\nimport { Autocomplete, Input } from 'framework-ui-components';\r\nimport PropTypes from 'prop-types';\r\nimport { isCampoDisabled, isValidationRequired } from '../../../utils/validations';\r\nimport { cercaComuni, cercaEntiLocaliInTabellaT1, cercaProvinceInTabellaT2 } from '../../../apis/tributi';\r\n\r\nconst FieldsColonnaMultiusoEnte = ({\r\n campiSpecifici, cambioValoreRata, onChangeAutocompletes, idCodiceTributo,\r\n}) => {\r\n const nomiCampi = [\r\n 'CodiceEnteLocale',\r\n 'CodiceProvincia',\r\n 'CodiceComune'];\r\n if (campiSpecifici.length === 0) {\r\n return
    ;\r\n }\r\n const nonPresente = (campo) => (isCampoDisabled(campiSpecifici, campo));\r\n if (nomiCampi.every(nonPresente)) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n let field = (
    );\r\n\r\n nomiCampi.forEach((nomeCampo) => {\r\n const isPresente = !isCampoDisabled(campiSpecifici, nomeCampo);\r\n if (nomeCampo === 'CodiceEnteLocale' && isPresente) {\r\n field = (\r\n onChangeAutocompletes('CodiceEnteLocale', val)}\r\n name=\"CodiceEnteLocaleDescrizioneComposta\"\r\n title=\"Codice ente\"\r\n url={cercaEntiLocaliInTabellaT1()}\r\n renderProperty=\"DescrizioneComposta\"\r\n validations={isValidationRequired(campiSpecifici, 'CodiceEnteLocale')}\r\n autoFocus={idCodiceTributo}\r\n />\r\n );\r\n } else if (nomeCampo === 'CodiceProvincia' && isPresente) {\r\n field = (\r\n onChangeAutocompletes('CodiceProvincia', val)}\r\n name=\"CodiceProvinciaDescrizioneComposta\"\r\n title=\"Codice provincia\"\r\n url={cercaProvinceInTabellaT2()}\r\n renderProperty=\"DescrizioneComposta\"\r\n validations={isValidationRequired(campiSpecifici, 'CodiceProvincia')}\r\n autoFocus={idCodiceTributo}\r\n />\r\n );\r\n } else if (nomeCampo === 'CodiceComune' && isPresente) {\r\n field = (\r\n onChangeAutocompletes('CodiceComune', val)}\r\n name=\"CodiceComuneDescrizioneComposta\"\r\n title=\"Codice comune\"\r\n url={cercaComuni()}\r\n renderProperty=\"DescrizioneComposta\"\r\n validations={isValidationRequired(campiSpecifici, 'CodiceComune')}\r\n autoFocus={idCodiceTributo}\r\n />\r\n );\r\n }\r\n });\r\n return field;\r\n};\r\n\r\nFieldsColonnaMultiusoEnte.defaultProps = {\r\n};\r\n\r\nFieldsColonnaMultiusoEnte.propTypes = {\r\n campiSpecifici: PropTypes.arrayOf(PropTypes.object).isRequired,\r\n cambioValoreRata: PropTypes.func.isRequired,\r\n onChangeAutocompletes: PropTypes.func.isRequired,\r\n idCodiceTributo: PropTypes.number.isRequired,\r\n};\r\n\r\nexport default FieldsColonnaMultiusoEnte;\r\n","import React from 'react';\r\nimport { Autocomplete, Input } from 'framework-ui-components';\r\nimport PropTypes from 'prop-types';\r\nimport { isCampoDisabled, isValidationRequired } from '../../../utils/validations';\r\nimport { MESI_ANNO } from '../../../models/tributi';\r\n\r\nconst FieldsColonnaMultiuso = ({\r\n campiSpecifici, cambioValoreRata, onChangeAutocompletes, disabilitaRateazione,\r\n}) => {\r\n const nomiCampi = [\r\n 'Mese',\r\n 'Rateazione'];\r\n if (campiSpecifici.length === 0) {\r\n return
    ;\r\n }\r\n const nonPresente = (campo) => (isCampoDisabled(campiSpecifici, campo));\r\n if (nomiCampi.every(nonPresente)) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n let field = (
    );\r\n\r\n nomiCampi.forEach((nomeCampo) => {\r\n const isPresente = !isCampoDisabled(campiSpecifici, nomeCampo);\r\n if (nomeCampo === 'Rateazione' && isPresente && disabilitaRateazione) {\r\n field = (\r\n \r\n );\r\n } else if (nomeCampo === 'Rateazione' && isPresente) {\r\n field = (\r\n cambioValoreRata(e)}\r\n upperCase\r\n disabled={disabilitaRateazione}\r\n placeholder=\"ES 01/01\"\r\n />\r\n );\r\n } else if (nomeCampo === 'Mese' && isPresente) {\r\n field = (\r\n onChangeAutocompletes(nomeCampo, val)}\r\n name=\"MeseDescrizione\"\r\n title=\"Mese riferimento\"\r\n dataSource={MESI_ANNO}\r\n renderProperty=\"Descrizione\"\r\n validations={isValidationRequired(campiSpecifici, 'Mese')}\r\n minLength={1}\r\n />\r\n );\r\n }\r\n });\r\n return field;\r\n};\r\n\r\nFieldsColonnaMultiuso.defaultProps = {\r\n disabilitaRateazione: false,\r\n};\r\n\r\nFieldsColonnaMultiuso.propTypes = {\r\n campiSpecifici: PropTypes.arrayOf(PropTypes.object).isRequired,\r\n cambioValoreRata: PropTypes.func.isRequired,\r\n onChangeAutocompletes: PropTypes.func.isRequired,\r\n disabilitaRateazione: PropTypes.bool,\r\n};\r\n\r\nexport default FieldsColonnaMultiuso;\r\n","import React, { useCallback } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\nimport {\r\n Autocomplete, DatePicker, Highlighter, Input, Restriction, Validation,\r\n} from 'framework-ui-components';\r\nimport NewAccordion from '../../../components/custom/NewAccordion';\r\nimport TemplateGrid from '../../../components/TemplateGrid/TemplateGrid';\r\nimport { isCampoDisabled, isValidationRequired } from '../../../utils/validations';\r\nimport FieldsColonnaMultiusoEnte from './FieldsColonnaMultiusoEnte';\r\nimport { TIPOLOGIA_SEZIONE } from '../../../models/tributi';\r\nimport CheckboxTitle from '../../../components/custom/CheckboxTitle';\r\nimport FieldsColonnaMultiuso from './FieldsColonnaMultiuso';\r\nimport { cercaAnniRiferimentoValidi } from '../../../apis/tributi';\r\nimport { isAnnoSuperiore2016 } from '../../../models/sezioneCrediti';\r\n\r\nconst SezioneTributiLocaliCredito = ({\r\n presetForm,\r\n campiSpecifici,\r\n idCodiceTributo,\r\n rateazione,\r\n limiteUnico,\r\n annoRiferimento,\r\n erroreImportoLimitato,\r\n}) => {\r\n const onChangeAutocompletes = (campo, elemento) => {\r\n const tributoVals = [];\r\n\r\n if (campo === 'CodiceRegione') {\r\n tributoVals.IdTabellaT0 = elemento.IdTabellaT0;\r\n tributoVals.CodiceRegioneDescrizioneComposta = elemento.DescrizioneComposta;\r\n }\r\n\r\n if (campo === 'CodiceEnteLocale') {\r\n tributoVals.IdTabellaT1 = elemento.IdTabellaT1;\r\n tributoVals.CodiceEnteLocaleDescrizioneComposta = elemento.DescrizioneComposta;\r\n }\r\n\r\n if (campo === 'CodiceProvincia') {\r\n tributoVals.IdTabellaT2 = elemento.IdTabellaT2;\r\n tributoVals.CodiceProvinciaDescrizioneComposta = elemento.DescrizioneComposta;\r\n }\r\n\r\n if (campo === 'CodiceEnteTerritoriale') {\r\n tributoVals.IdTabellaT3 = elemento.IdTabellaT3;\r\n tributoVals.CodiceEnteTerritorialeDescrizioneComposta = elemento.DescrizioneComposta;\r\n }\r\n\r\n if (campo === 'CodiceComune') {\r\n tributoVals.IdComune = elemento.Id;\r\n tributoVals.CodiceComuneDescrizioneComposta = elemento.DescrizioneComposta;\r\n }\r\n\r\n if (campo === 'AnnoRiferimento') {\r\n tributoVals.AnnoRiferimento = elemento.Anno;\r\n }\r\n\r\n if (campo === 'Mese') {\r\n tributoVals.MeseRiferimento = elemento.Numero;\r\n tributoVals.MeseDescrizione = elemento.Descrizione;\r\n }\r\n\r\n presetForm(tributoVals);\r\n };\r\n\r\n const cambioValoreRata = useCallback((val) => {\r\n const key = val.key || val.keyCode || val.charCode;\r\n if ((key === 'Backspace' || key === 'Delete' || key === 8 || key === 46) && rateazione.length === 3) {\r\n presetForm({\r\n Rateazione: rateazione.substring(0, rateazione.length - 2),\r\n });\r\n }\r\n }, [rateazione, presetForm]);\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 onChangeAutocompletes('AnnoRiferimento', val)}\r\n name=\"AnnoRiferimento\"\r\n title=\"Anno riferimento\"\r\n url={cercaAnniRiferimentoValidi()}\r\n renderProperty=\"Anno\"\r\n validations={isValidationRequired(campiSpecifici, 'AnnoRiferimento')}\r\n disabled={isCampoDisabled(campiSpecifici, 'AnnoRiferimento')}\r\n minLength={1}\r\n />\r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nSezioneTributiLocaliCredito.defaultProps = {\r\n erroreImportoLimitato: false,\r\n annoRiferimento: '',\r\n};\r\n\r\nSezioneTributiLocaliCredito.propTypes = {\r\n presetForm: PropTypes.func.isRequired,\r\n campiSpecifici: PropTypes.arrayOf(PropTypes.object).isRequired,\r\n idCodiceTributo: PropTypes.number.isRequired,\r\n rateazione: PropTypes.string.isRequired,\r\n erroreImportoLimitato: PropTypes.bool,\r\n limiteUnico: PropTypes.bool.isRequired,\r\n annoRiferimento: PropTypes.string,\r\n};\r\n\r\nexport default SezioneTributiLocaliCredito;\r\n","import React, { useCallback } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Autocomplete, Input, Validation,\r\n} from 'framework-ui-components';\r\nimport NewAccordion from '../../../components/custom/NewAccordion';\r\nimport TemplateGrid from '../../../components/TemplateGrid/TemplateGrid';\r\nimport { isCampoDisabled, isValidationRequired } from '../../../utils/validations';\r\nimport FieldsColonnaMultiusoEnte from './FieldsColonnaMultiusoEnte';\r\nimport { TIPOLOGIA_SEZIONE } from '../../../models/tributi';\r\nimport CheckboxTitle from '../../../components/custom/CheckboxTitle';\r\nimport FieldsColonnaMultiuso from './FieldsColonnaMultiuso';\r\nimport { cercaAnniRiferimentoValidi } from '../../../apis/tributi';\r\n\r\nconst SezioneTributiLocaliDebito = ({\r\n presetForm, campiSpecifici, idCodiceTributo, rateazione,\r\n}) => {\r\n const onChangeAutocompletes = (campo, elemento) => {\r\n const tributoVals = [];\r\n\r\n if (campo === 'CodiceRegione') {\r\n tributoVals.IdTabellaT0 = elemento.IdTabellaT0;\r\n tributoVals.CodiceRegioneDescrizioneComposta = elemento.DescrizioneComposta;\r\n }\r\n\r\n if (campo === 'CodiceEnteLocale') {\r\n tributoVals.IdTabellaT1 = elemento.IdTabellaT1;\r\n tributoVals.CodiceEnteLocaleDescrizioneComposta = elemento.DescrizioneComposta;\r\n }\r\n\r\n if (campo === 'CodiceProvincia') {\r\n tributoVals.IdTabellaT2 = elemento.IdTabellaT2;\r\n tributoVals.CodiceProvinciaDescrizioneComposta = elemento.DescrizioneComposta;\r\n }\r\n\r\n if (campo === 'CodiceEnteTerritoriale') {\r\n tributoVals.IdTabellaT3 = elemento.IdTabellaT3;\r\n tributoVals.CodiceEnteTerritorialeDescrizioneComposta = elemento.DescrizioneComposta;\r\n }\r\n\r\n if (campo === 'CodiceComune') {\r\n tributoVals.IdComune = elemento.Id;\r\n tributoVals.CodiceComuneDescrizioneComposta = elemento.DescrizioneComposta;\r\n }\r\n\r\n if (campo === 'AnnoRiferimento') {\r\n tributoVals.AnnoRiferimento = elemento.Anno;\r\n }\r\n\r\n if (campo === 'Mese') {\r\n tributoVals.MeseRiferimento = elemento.Numero;\r\n tributoVals.MeseDescrizione = elemento.Descrizione;\r\n }\r\n\r\n presetForm(tributoVals);\r\n };\r\n\r\n const cambioValoreRata = useCallback((val) => {\r\n const key = val.key || val.keyCode || val.charCode;\r\n if ((key === 'Backspace' || key === 'Delete' || key === 8 || key === 46) && rateazione.length === 3) {\r\n presetForm({\r\n Rateazione: rateazione.substring(0, rateazione.length - 2),\r\n });\r\n }\r\n }, [rateazione, presetForm]);\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 onChangeAutocompletes('AnnoRiferimento', val)}\r\n name=\"AnnoRiferimento\"\r\n title=\"Anno riferimento\"\r\n url={cercaAnniRiferimentoValidi()}\r\n renderProperty=\"Anno\"\r\n validations={isValidationRequired(campiSpecifici, 'AnnoRiferimento')}\r\n disabled={isCampoDisabled(campiSpecifici, 'AnnoRiferimento')}\r\n minLength={1}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nSezioneTributiLocaliDebito.defaultProps = {\r\n};\r\n\r\nSezioneTributiLocaliDebito.propTypes = {\r\n presetForm: PropTypes.func.isRequired,\r\n campiSpecifici: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\r\n idCodiceTributo: PropTypes.number.isRequired,\r\n rateazione: PropTypes.string.isRequired,\r\n};\r\n\r\nexport default SezioneTributiLocaliDebito;\r\n","import React, { useCallback, useState, useEffect } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Autocomplete, DatePicker, Input, Restriction, Select, Validation,\r\n} from 'framework-ui-components';\r\nimport NewAccordion from '../../../components/custom/NewAccordion';\r\nimport TemplateGrid from '../../../components/TemplateGrid/TemplateGrid';\r\nimport { isCampoDisabled, isValidationRequired } from '../../../utils/validations';\r\nimport FieldsColonnaMultiuso from './FieldsColonnaMultiuso';\r\nimport { CREDITI_CON_RATEAZIONE } from '../../../models/tributi';\r\nimport { cercaAnniRiferimentoValidi } from '../../../apis/tributi';\r\nimport CheckboxTitle from '../../../components/custom/CheckboxTitle';\r\nimport { isAnnoSuperiore2016 } from '../../../models/sezioneCrediti';\r\n\r\nconst SezioneErarioCredito = ({\r\n presetForm,\r\n campiSpecifici,\r\n idCodiceTributo,\r\n rateazione,\r\n limiteUnico,\r\n annoRiferimento,\r\n erroreImportoLimitato,\r\n}) => {\r\n const onChangeAutocompletes = (campo, elemento) => {\r\n const tributoVals = [];\r\n\r\n if (campo === 'CodiceRegione') {\r\n tributoVals.IdTabellaT0 = elemento.IdTabellaT0;\r\n tributoVals.CodiceRegioneDescrizioneComposta = elemento.DescrizioneComposta;\r\n }\r\n\r\n if (campo === 'CodiceEnteLocale') {\r\n tributoVals.IdTabellaT1 = elemento.IdTabellaT1;\r\n tributoVals.CodiceEnteLocaleDescrizioneComposta = elemento.DescrizioneComposta;\r\n }\r\n\r\n if (campo === 'CodiceProvincia') {\r\n tributoVals.IdTabellaT2 = elemento.IdTabellaT2;\r\n tributoVals.CodiceProvinciaDescrizioneComposta = elemento.DescrizioneComposta;\r\n }\r\n\r\n if (campo === 'CodiceEnteTerritoriale') {\r\n tributoVals.IdTabellaT3 = elemento.IdTabellaT3;\r\n tributoVals.CodiceEnteTerritorialeDescrizioneComposta = elemento.DescrizioneComposta;\r\n }\r\n\r\n if (campo === 'CodiceComune') {\r\n tributoVals.IdComune = elemento.Id;\r\n tributoVals.CodiceComuneDescrizioneComposta = elemento.DescrizioneComposta;\r\n }\r\n\r\n if (campo === 'AnnoRiferimento') {\r\n tributoVals.AnnoRiferimento = elemento.Anno;\r\n }\r\n\r\n if (campo === 'Mese') {\r\n tributoVals.MeseRiferimento = elemento.Numero;\r\n tributoVals.MeseDescrizione = elemento.Descrizione;\r\n }\r\n\r\n presetForm(tributoVals);\r\n };\r\n\r\n const cambioValoreRata = useCallback((val) => {\r\n const key = val.key || val.keyCode || val.charCode;\r\n if ((key === 'Backspace' || key === 'Delete' || key === 8 || key === 46) && rateazione.length === 3) {\r\n presetForm({\r\n Rateazione: rateazione.substring(0, rateazione.length - 2),\r\n });\r\n }\r\n }, [rateazione, presetForm]);\r\n\r\n return (\r\n \r\n \r\n onChangeAutocompletes('AnnoRiferimento', val)}\r\n name=\"AnnoRiferimento\"\r\n title=\"Anno riferimento\"\r\n renderProperty=\"Anno\"\r\n url={cercaAnniRiferimentoValidi()}\r\n validations={isValidationRequired(campiSpecifici, 'AnnoRiferimento')}\r\n disabled={isCampoDisabled(campiSpecifici, 'AnnoRiferimento')}\r\n minLength={1}\r\n autoFocus={idCodiceTributo}\r\n />\r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {false && (\r\n \r\n Non definita\r\n Anno della dichiarazione\r\n Anno della dichiarazione e per quello precedente\r\n Anno della dichiarazione e per i 2 precedenti\r\n Anno della dichiarazione e per i 2 precedenti e senza operazioni rilevanti\r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nSezioneErarioCredito.defaultProps = {\r\n erroreImportoLimitato: false,\r\n annoRiferimento: '',\r\n};\r\n\r\nSezioneErarioCredito.propTypes = {\r\n presetForm: PropTypes.func.isRequired,\r\n campiSpecifici: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\r\n idCodiceTributo: PropTypes.number.isRequired,\r\n rateazione: PropTypes.string.isRequired,\r\n erroreImportoLimitato: PropTypes.bool,\r\n limiteUnico: PropTypes.bool.isRequired,\r\n annoRiferimento: PropTypes.string,\r\n};\r\n\r\nexport default SezioneErarioCredito;\r\n","import React, { useCallback } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Autocomplete, Input, Restriction, Validation,\r\n} from 'framework-ui-components';\r\nimport NewAccordion from '../../../components/custom/NewAccordion';\r\nimport TemplateGrid from '../../../components/TemplateGrid/TemplateGrid';\r\nimport { isCampoDisabled, isValidationRequired } from '../../../utils/validations';\r\nimport { cercaAnniRiferimentoValidi, cercaProvinceInTabellaT2 } from '../../../apis/tributi';\r\nimport { MESI_ANNO } from '../../../models/tributi';\r\n\r\nconst SezioneAcciseMonopoliDebito = ({\r\n presetForm, campiSpecifici, idCodiceTributo, rateazione,\r\n}) => {\r\n const onChangeAutocompletes = (campo, elemento) => {\r\n const tributoVals = [];\r\n\r\n if (campo === 'CodiceRegione') {\r\n tributoVals.IdTabellaT0 = elemento.IdTabellaT0;\r\n tributoVals.CodiceRegioneDescrizioneComposta = elemento.DescrizioneComposta;\r\n }\r\n\r\n if (campo === 'CodiceEnteLocale') {\r\n tributoVals.IdTabellaT1 = elemento.IdTabellaT1;\r\n tributoVals.CodiceEnteLocaleDescrizioneComposta = elemento.DescrizioneComposta;\r\n }\r\n\r\n if (campo === 'CodiceProvincia') {\r\n tributoVals.IdTabellaT2 = elemento.IdTabellaT2;\r\n tributoVals.CodiceProvinciaDescrizioneComposta = elemento.DescrizioneComposta;\r\n }\r\n\r\n if (campo === 'CodiceEnteTerritoriale') {\r\n tributoVals.IdTabellaT3 = elemento.IdTabellaT3;\r\n tributoVals.CodiceEnteTerritorialeDescrizioneComposta = elemento.DescrizioneComposta;\r\n }\r\n\r\n if (campo === 'CodiceComune') {\r\n tributoVals.IdComune = elemento.Id;\r\n tributoVals.CodiceComuneDescrizioneComposta = elemento.DescrizioneComposta;\r\n }\r\n\r\n if (campo === 'AnnoRiferimento') {\r\n tributoVals.AnnoRiferimento = elemento.Anno;\r\n }\r\n\r\n if (campo === 'Mese') {\r\n tributoVals.MeseRiferimento = elemento.Numero;\r\n tributoVals.MeseDescrizione = elemento.Descrizione;\r\n }\r\n\r\n presetForm(tributoVals);\r\n };\r\n\r\n const cambioValoreRata = useCallback((val) => {\r\n const key = val.key || val.keyCode || val.charCode;\r\n if ((key === 'Backspace' || key === 'Delete' || key === 8 || key === 46) && rateazione.length === 3) {\r\n presetForm({\r\n Rateazione: rateazione.substring(0, rateazione.length - 2),\r\n });\r\n }\r\n }, [rateazione, presetForm]);\r\n\r\n return (\r\n \r\n \r\n onChangeAutocompletes('AnnoRiferimento', val)}\r\n name=\"AnnoRiferimento\"\r\n title=\"Anno riferimento\"\r\n renderProperty=\"Anno\"\r\n url={cercaAnniRiferimentoValidi()}\r\n validations={isValidationRequired(campiSpecifici, 'AnnoRiferimento')}\r\n disabled={isCampoDisabled(campiSpecifici, 'AnnoRiferimento')}\r\n minLength={1}\r\n autoFocus={idCodiceTributo && !isCampoDisabled(campiSpecifici, 'AnnoRiferimento')}\r\n />\r\n onChangeAutocompletes('Mese', val)}\r\n name=\"MeseDescrizione\"\r\n title=\"Mese riferimento\"\r\n dataSource={MESI_ANNO}\r\n renderProperty=\"Descrizione\"\r\n validations={isValidationRequired(campiSpecifici, 'Mese')}\r\n disabled={isCampoDisabled(campiSpecifici, 'Mese')}\r\n minLength={1}\r\n autoFocus={idCodiceTributo && isCampoDisabled(campiSpecifici, 'AnnoRiferimento') && !isCampoDisabled(campiSpecifici, 'Mese')}\r\n />\r\n cambioValoreRata(e)}\r\n upperCase\r\n placeholder={`${isCampoDisabled(campiSpecifici, 'Rateazione') ? '' : 'ES 01/01'}`}\r\n autoFocus={idCodiceTributo && isCampoDisabled(campiSpecifici, 'AnnoRiferimento')\r\n && isCampoDisabled(campiSpecifici, 'Mese') && !isCampoDisabled(campiSpecifici, 'Rateazione')}\r\n />\r\n \r\n \r\n \r\n onChangeAutocompletes('CodiceProvincia', val)}\r\n name=\"CodiceProvinciaDescrizioneComposta\"\r\n title=\"Provincia\"\r\n url={cercaProvinceInTabellaT2()}\r\n renderProperty=\"DescrizioneComposta\"\r\n validations={isValidationRequired(campiSpecifici, 'CodiceProvincia')}\r\n disabled={isCampoDisabled(campiSpecifici, 'CodiceProvincia')}\r\n tabindex={isCampoDisabled(campiSpecifici, 'CodiceProvincia') ? '-1' : '0'}\r\n />\r\n \r\n \r\n
    \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nSezioneAcciseMonopoliDebito.defaultProps = {\r\n};\r\n\r\nSezioneAcciseMonopoliDebito.propTypes = {\r\n presetForm: PropTypes.func.isRequired,\r\n campiSpecifici: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\r\n idCodiceTributo: PropTypes.number.isRequired,\r\n rateazione: PropTypes.string.isRequired,\r\n};\r\n\r\nexport default SezioneAcciseMonopoliDebito;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Autocomplete, Input, Restriction, Validation,\r\n} from 'framework-ui-components';\r\nimport NewAccordion from '../../../components/custom/NewAccordion';\r\nimport TemplateGrid from '../../../components/TemplateGrid/TemplateGrid';\r\nimport { isCampoDisabled, isValidationRequired } from '../../../utils/validations';\r\nimport { cercaAnniRiferimentoValidi } from '../../../apis/tributi';\r\nimport { TIPO_ELIDE_DATASOURCE } from '../../../models/tributi';\r\n\r\nconst SezioneElideDebito = ({\r\n presetForm, campiSpecifici, idCodiceTributo, rateazione,\r\n}) => {\r\n const onChangeAutocompletes = (campo, elemento) => {\r\n const tributoVals = [];\r\n\r\n if (campo === 'AnnoRiferimento') {\r\n tributoVals.AnnoRiferimento = elemento.Anno;\r\n }\r\n\r\n if (campo === 'TipoVersamento') {\r\n tributoVals.TipoVersamento = elemento === '' ? null : elemento.Val;\r\n tributoVals.TipoVersamentoDesc = elemento === '' ? null : `${elemento.Descrizione}`;\r\n }\r\n\r\n presetForm(tributoVals);\r\n };\r\n\r\n return (\r\n \r\n \r\n onChangeAutocompletes('AnnoRiferimento', val)}\r\n name=\"AnnoRiferimento\"\r\n title=\"Anno riferimento\"\r\n renderProperty=\"Anno\"\r\n url={cercaAnniRiferimentoValidi()}\r\n validations={isValidationRequired(campiSpecifici, 'AnnoRiferimento')}\r\n disabled={isCampoDisabled(campiSpecifici, 'AnnoRiferimento')}\r\n minLength={1}\r\n autoFocus={idCodiceTributo && !isCampoDisabled(campiSpecifici, 'AnnoRiferimento')}\r\n />\r\n onChangeAutocompletes('TipoVersamento', val)}\r\n name=\"TipoVersamentoDesc\"\r\n title=\"Tipo\"\r\n dataSource={TIPO_ELIDE_DATASOURCE}\r\n renderProperty=\"Descrizione\"\r\n validations={isValidationRequired(campiSpecifici, 'TipoVersamento')}\r\n minLength={1}\r\n autoFocus={idCodiceTributo && isCampoDisabled(campiSpecifici, 'AnnoRiferimento') && !isCampoDisabled(campiSpecifici, 'TipoVersamento')}\r\n />\r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nSezioneElideDebito.defaultProps = {\r\n};\r\n\r\nSezioneElideDebito.propTypes = {\r\n presetForm: PropTypes.func.isRequired,\r\n campiSpecifici: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\r\n idCodiceTributo: PropTypes.number.isRequired,\r\n rateazione: PropTypes.string.isRequired,\r\n};\r\n\r\nexport default SezioneElideDebito;\r\n","/* eslint-disable no-nested-ternary */\r\nimport React, {\r\n useState, useEffect, useCallback, useRef,\r\n} from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Autocomplete,\r\n DatePicker, Form, Validation,\r\n} from 'framework-ui-components';\r\nimport {\r\n Modal, Button, FeedbackPanel, DrawAttention,\r\n} from 'framework-ui-components/Components/V2';\r\nimport InfoIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/InfoIcon';\r\nimport { useSelector } from 'react-redux';\r\nimport { getSegnalazioneError } from 'framework-taskforce/models/segnalazioni';\r\nimport Log, { logApiError, showSnackbarErrors } from 'framework-taskforce/utils/log';\r\nimport { isEmptyObject } from 'framework-taskforce/utils/object';\r\nimport { primaLetteraMaiuscola } from 'framework-taskforce/utils/text';\r\nimport { getYear } from 'framework-taskforce/utils/date';\r\nimport {\r\n getOttieniCampiCodiceTributoDebito,\r\n getOttieniCampiCodiceTributoCredito,\r\n getCercaCodiciTributoDebito,\r\n getCercaCodiciTributoCredito,\r\n postEliminaDebito,\r\n postEliminaCredito,\r\n getOttieniTipoTributoElide,\r\n} from '../../apis/tributi';\r\nimport {\r\n TIPOLOGIA_TRIBUTO, TIPOLOGIA_SEZIONE, MESI_ANNO, TIPO_ELIDE_DATASOURCE,\r\n} from '../../models/tributi';\r\nimport TemplateGrid from '../../components/TemplateGrid/TemplateGrid';\r\nimport SezioneErarioDebito from './erario/SezioneErarioDebito';\r\nimport SezioneRegioniDebito from './regioni/SezioneRegioniDebito';\r\nimport SezioneInail from './inail/SezioneInail';\r\nimport SezioneAltriEnti from './altriEnti/SezioneAltriEnti';\r\nimport { createDate, primaLetteraMaiuscolaStringa } from '../../utils/format';\r\nimport SezioneInps from './inps/SezioneInps';\r\nimport { isAnnoSuperiore2016 } from '../../models/sezioneCrediti';\r\nimport SezioneRegioniCredito from './regioni/SezioneRegioniCredito';\r\nimport SezioneTributiLocaliCredito from './tributiLocali/SezioneTributiLocaliCredito';\r\nimport SezioneTributiLocaliDebito from './tributiLocali/SezioneTributiLocaliDebito';\r\nimport SezioneErarioCredito from './erario/SezioneErarioCredito';\r\nimport SezioneAcciseMonopoliDebito from './acciseMonopoli/SezioneAcciseMonopoliDebito';\r\nimport SezioneElideDebito from './elide/SezioneElideDebito';\r\nimport { TIPO_DELEGA } from '../../models/delega';\r\n\r\nconst ModaleCreazione = ({\r\n onClose,\r\n tipologia,\r\n show,\r\n tributoPrecedente,\r\n dataScadenzaProvenienteDaDelega,\r\n tipoDelega,\r\n}) => {\r\n const nominativoSogg = useSelector((store) => store.soggetto.nominativo);\r\n const studioSelezionato = useSelector((store) => store.appParams.studioSelezionato);\r\n const idContribuente = useSelector((store) => store.soggetto.idContribuente);\r\n\r\n const [loading, setLoading] = useState(false);\r\n const [isFormValid, setIsFormValid] = useState(false);\r\n const [esito, setEsito] = useState(null);\r\n const [formData, setFormData] = useState({ });\r\n const [segnalazioni, setSegnalazioni] = useState([]);\r\n const [campiSpecifici, setCampiSpecifici] = useState([]);\r\n const [dettaglioTributoPrecedente, setDettaglioTributoPrecedente] = useState(null);\r\n const [recuperatiDatiCodiceTributo, setRecuperatiDatiCodiceTributo] = useState(false);\r\n\r\n const formRef = useRef();\r\n const buttonCreaRef = useRef();\r\n\r\n const creaTributo = useCallback(() => {\r\n if (!formRef.current.valida()) return;\r\n setLoading(true);\r\n const oggettoCreazione = {\r\n IdStudio: studioSelezionato,\r\n IdContribuente: idContribuente,\r\n TipologiaTributo: tipologia,\r\n IdCodiceTributo: formData.IdCodiceTributo,\r\n\r\n // specifici per la rateazione sono 2 in 1\r\n NumeroRata: formData.Rateazione ? formData.Rateazione.split('/')[0] : (formData.NumeroRata ? formData.NumeroRata : ''),\r\n TotaleNumeroRate: formData.Rateazione ? formData.Rateazione.split('/')[1] : '',\r\n\r\n // specifici per mese e anno di INPS sono 2 in 1\r\n MeseRiferimentoDa: formData.MeseRiferimentoDa\r\n ? formData.MeseRiferimentoDa : (formData.PeriodoDa ? formData.PeriodoDa.split('/')[0] : ''),\r\n AnnoRiferimentoDa: formData.AnnoRiferimentoDa\r\n ? formData.AnnoRiferimentoDa : (formData.PeriodoDa ? formData.PeriodoDa.split('/')[1] : ''),\r\n MeseRiferimentoA: formData.MeseRiferimentoA\r\n ? formData.MeseRiferimentoA : (formData.PeriodoA ? formData.PeriodoA.split('/')[0] : ''),\r\n AnnoRiferimentoA: formData.AnnoRiferimentoA\r\n ? formData.AnnoRiferimentoA : (formData.PeriodoA ? formData.PeriodoA.split('/')[1] : ''),\r\n ImportoLimitato: formData.ImportoLimitato === 'null' ? null : formData.ImportoLimitato,\r\n ImportoNonLimitato: formData.ImportoNonLimitato === 'null' ? null : formData.ImportoNonLimitato,\r\n VistoDiConformita: campiSpecifici.find((x) => x.NomeCampo === 'VistoDiConformita') && !formData.VistoDiConformita ? false : formData.VistoDiConformita,\r\n StartUpInnovativa: campiSpecifici.find((x) => x.NomeCampo === 'StartUpInnovativa') && !formData.StartUpInnovativa ? false : formData.StartUpInnovativa,\r\n };\r\n\r\n const postDiCreazioneBySezione = TIPOLOGIA_SEZIONE.getPostCreazioneDebitoBySezione(formData.IdSezione, tipologia);\r\n postDiCreazioneBySezione({ ...formData, ...oggettoCreazione })\r\n .then((res) => {\r\n setEsito(res.Success);\r\n if (res.Success) {\r\n setSegnalazioni([]);\r\n onClose(\r\n res.Success,\r\n formData.TributoCodice,\r\n TIPOLOGIA_SEZIONE.toString(formData.IdSezione),\r\n TIPOLOGIA_TRIBUTO.toString(tipologia),\r\n formData.Importo,\r\n formData.DataScadenza ? createDate(new Date(formData.DataScadenza)) : null,\r\n res.Result,\r\n );\r\n } else {\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n onClose(false);\r\n });\r\n }, [campiSpecifici, formData, idContribuente, onClose, studioSelezionato, tipologia]);\r\n\r\n const modificaTributo = useCallback(() => {\r\n if (!formRef.current.valida()) return;\r\n setLoading(true);\r\n const oggettoCreazione = {\r\n IdStudio: studioSelezionato,\r\n IdContribuente: idContribuente,\r\n TipologiaTributo: tipologia,\r\n IdCodiceTributo: formData.IdCodiceTributo,\r\n\r\n // specifici per la rateazione sono 2 in 1\r\n NumeroRata: formData.Rateazione ? formData.Rateazione.split('/')[0]\r\n : (\r\n !campiSpecifici.find((x) => x.NomeCampo === 'Rateazione') && formData.NumeroRata ? formData.NumeroRata : ''\r\n ),\r\n TotaleNumeroRate: formData.Rateazione ? formData.Rateazione.split('/')[1] : '',\r\n\r\n // specifici per mese e anno di INPS sono 2 in 1\r\n MeseRiferimentoDa: formData.MeseRiferimentoDa\r\n ? formData.MeseRiferimentoDa : (formData.PeriodoDa ? formData.PeriodoDa.split('/')[0] : ''),\r\n AnnoRiferimentoDa: formData.AnnoRiferimentoDa\r\n ? formData.AnnoRiferimentoDa : (formData.PeriodoDa ? formData.PeriodoDa.split('/')[1] : ''),\r\n MeseRiferimentoA: formData.MeseRiferimentoA\r\n ? formData.MeseRiferimentoA : (formData.PeriodoA ? formData.PeriodoA.split('/')[0] : ''),\r\n AnnoRiferimentoA: formData.AnnoRiferimentoA\r\n ? formData.AnnoRiferimentoA : (formData.PeriodoA ? formData.PeriodoA.split('/')[1] : ''),\r\n ImportoLimitato: formData.ImportoLimitato === 'null' ? null : formData.ImportoLimitato,\r\n ImportoNonLimitato: formData.ImportoNonLimitato === 'null' ? null : formData.ImportoNonLimitato,\r\n VistoDiConformita: campiSpecifici.find((x) => x.NomeCampo === 'VistoDiConformita') && !formData.VistoDiConformita ? false : formData.VistoDiConformita,\r\n StartUpInnovativa: campiSpecifici.find((x) => x.NomeCampo === 'StartUpInnovativa') && !formData.StartUpInnovativa ? false : formData.StartUpInnovativa,\r\n };\r\n\r\n const postDiCreazioneBySezione = TIPOLOGIA_SEZIONE.getPostCreazioneDebitoBySezione(formData.IdSezione, tipologia);\r\n postDiCreazioneBySezione({ ...formData, ...oggettoCreazione })\r\n .then((res) => {\r\n setEsito(res.Success);\r\n if (res.Success) {\r\n (tipologia === TIPOLOGIA_TRIBUTO.DEBITO\r\n ? postEliminaDebito\r\n : postEliminaCredito)(tributoPrecedente.Id, idContribuente)\r\n .then((response) => {\r\n if (response.Success) {\r\n onClose(\r\n res.Success,\r\n formData.TributoCodice,\r\n TIPOLOGIA_SEZIONE.toString(formData.IdSezione),\r\n TIPOLOGIA_TRIBUTO.toString(tipologia),\r\n formData.Importo,\r\n formData.DataScadenza ? createDate(new Date(formData.DataScadenza)) : null,\r\n response.Result,\r\n true,\r\n );\r\n } else {\r\n setSegnalazioni(response.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n\r\n (tipologia === TIPOLOGIA_TRIBUTO.DEBITO\r\n ? postEliminaDebito\r\n : postEliminaCredito)(tributoPrecedente.Id, idContribuente)\r\n .then((resEliminaCompensativo) => {\r\n if (resEliminaCompensativo.Success) {\r\n setSegnalazioni(resEliminaCompensativo.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n } else {\r\n setSegnalazioni(resEliminaCompensativo.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n });\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n });\r\n\r\n setSegnalazioni([]);\r\n onClose(\r\n res.Success,\r\n formData.TributoCodice,\r\n TIPOLOGIA_SEZIONE.toString(formData.IdSezione),\r\n TIPOLOGIA_TRIBUTO.toString(tipologia),\r\n formData.Importo,\r\n formData.DataScadenza ? createDate(new Date(formData.DataScadenza)) : null,\r\n );\r\n } else {\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n onClose(false);\r\n });\r\n }, [campiSpecifici, formData, idContribuente, onClose, studioSelezionato, tipologia, tributoPrecedente]);\r\n\r\n const modificaStyleModaleInBaseAllaSezione = useCallback((idSezione, limiteUnico = false) => {\r\n if (tipologia === TIPOLOGIA_TRIBUTO.CREDITO && (\r\n idSezione === TIPOLOGIA_SEZIONE.TRIBUTI_LOCALI)) {\r\n document.querySelector('.v2-modal__content').classList.remove('expand');\r\n document.querySelector('.v2-modal__content').classList.remove('expand-due-righe');\r\n document.querySelector('.v2-modal__content').classList.remove('expand-tre-righe');\r\n document.querySelector('.v2-modal__content').classList.remove('expand-quattro-righe');\r\n document.querySelector('.v2-modal__content').classList.toggle('expand-quattro-righe');\r\n } else if (idSezione === TIPOLOGIA_SEZIONE.TRIBUTI_LOCALI) {\r\n document.querySelector('.v2-modal__content').classList.remove('expand');\r\n document.querySelector('.v2-modal__content').classList.remove('expand-due-righe');\r\n document.querySelector('.v2-modal__content').classList.remove('expand-tre-righe');\r\n document.querySelector('.v2-modal__content').classList.remove('expand-quattro-righe');\r\n document.querySelector('.v2-modal__content').classList.toggle('expand-tre-righe');\r\n } else if (idSezione === TIPOLOGIA_SEZIONE.ERARIO && tipologia === TIPOLOGIA_TRIBUTO.CREDITO) {\r\n document.querySelector('.v2-modal__content').classList.remove('expand');\r\n document.querySelector('.v2-modal__content').classList.remove('expand-due-righe');\r\n document.querySelector('.v2-modal__content').classList.remove('expand-tre-righe');\r\n document.querySelector('.v2-modal__content').classList.remove('expand-quattro-righe');\r\n document.querySelector('.v2-modal__content').classList.toggle('expand-tre-righe');\r\n } else if (idSezione === TIPOLOGIA_SEZIONE.ERARIO || idSezione === TIPOLOGIA_SEZIONE.ELIDE) {\r\n document.querySelector('.v2-modal__content').classList.remove('expand');\r\n document.querySelector('.v2-modal__content').classList.remove('expand-due-righe');\r\n document.querySelector('.v2-modal__content').classList.remove('expand-tre-righe');\r\n document.querySelector('.v2-modal__content').classList.remove('expand-quattro-righe');\r\n document.querySelector('.v2-modal__content').classList.toggle('expand-due-righe');\r\n } else if (tipologia === TIPOLOGIA_TRIBUTO.CREDITO && ((idSezione === TIPOLOGIA_SEZIONE.INPS && limiteUnico)\r\n || (idSezione === TIPOLOGIA_SEZIONE.ALTRI_ENTI && limiteUnico))) {\r\n document.querySelector('.v2-modal__content').classList.remove('expand');\r\n document.querySelector('.v2-modal__content').classList.remove('expand-due-righe');\r\n document.querySelector('.v2-modal__content').classList.remove('expand-tre-righe');\r\n document.querySelector('.v2-modal__content').classList.remove('expand-quattro-righe');\r\n document.querySelector('.v2-modal__content').classList.toggle('expand-tre-righe');\r\n } else if (tipologia === TIPOLOGIA_TRIBUTO.CREDITO && (\r\n idSezione === TIPOLOGIA_SEZIONE.REGIONI || (idSezione === TIPOLOGIA_SEZIONE.INPS && limiteUnico)\r\n || (idSezione === TIPOLOGIA_SEZIONE.ALTRI_ENTI && limiteUnico))) {\r\n document.querySelector('.v2-modal__content').classList.remove('expand');\r\n document.querySelector('.v2-modal__content').classList.remove('expand-due-righe');\r\n document.querySelector('.v2-modal__content').classList.remove('expand-tre-righe');\r\n document.querySelector('.v2-modal__content').classList.remove('expand-quattro-righe');\r\n document.querySelector('.v2-modal__content').classList.toggle('expand-due-righe');\r\n } else if (idSezione === TIPOLOGIA_SEZIONE.ACCISE) {\r\n document.querySelector('.v2-modal__content').classList.remove('expand');\r\n document.querySelector('.v2-modal__content').classList.remove('expand-due-righe');\r\n document.querySelector('.v2-modal__content').classList.remove('expand-tre-righe');\r\n document.querySelector('.v2-modal__content').classList.remove('expand-quattro-righe');\r\n document.querySelector('.v2-modal__content').classList.toggle('expand-due-righe');\r\n } else {\r\n document.querySelector('.v2-modal__content').classList.remove('expand-due-righe');\r\n document.querySelector('.v2-modal__content').classList.remove('expand');\r\n document.querySelector('.v2-modal__content').classList.remove('expand-tre-righe');\r\n document.querySelector('.v2-modal__content').classList.remove('expand-quattro-righe');\r\n document.querySelector('.v2-modal__content').classList.toggle('expand');\r\n }\r\n }, [tipologia]);\r\n\r\n const onChangeCodiceTributo = useCallback((tributo) => {\r\n const oldFormData = formData;\r\n\r\n const tributoVals = [];\r\n\r\n if (tributo.IdCodiceTributo && (\r\n !formData.IdCodiceTributo\r\n || formData.IdCodiceTributo !== tributo.IdCodiceTributo)) {\r\n setLoading(true);\r\n (tipologia === TIPOLOGIA_TRIBUTO.DEBITO ? getOttieniCampiCodiceTributoDebito : getOttieniCampiCodiceTributoCredito)(tributo.IdCodiceTributo)\r\n .then((res) => {\r\n if (res.Success) {\r\n setCampiSpecifici(res.Result);\r\n\r\n modificaStyleModaleInBaseAllaSezione(tributo.IdSezione, tributo.LimiteUnico);\r\n\r\n setFormData({ DataScadenza: oldFormData.DataScadenza });\r\n\r\n setTimeout(() => {\r\n tributoVals.DataScadenza = oldFormData.DataScadenza;\r\n // tributoVals.Importo = oldFormData.Importo;\r\n tributoVals.IdCodiceTributo = tributo.IdCodiceTributo;\r\n tributoVals.TributoCodice = tributo.Codice;\r\n tributoVals.TributoDescrizione = tributo.Descrizione;\r\n tributoVals.TributoDescrizioneComposta = tributo.DescrizioneComposta;\r\n tributoVals.IdSezione = tributo.IdSezione;\r\n tributoVals.CodiceEnte = tributo.CodiceEnte;\r\n tributoVals.IdEnte = tributo.IdEnte;\r\n tributoVals.LimiteUnico = tributo.LimiteUnico;\r\n if (dettaglioTributoPrecedente) {\r\n let nuovoStatoFormdata = { ...tributoVals, ...dettaglioTributoPrecedente, ...tributoPrecedente };\r\n\r\n // faccio così per dare più importanza ai valori di tributoVals che nel caso in cui fosse ripetuti qui vengono messi in nuovoStatoFormdata\r\n nuovoStatoFormdata = { ...nuovoStatoFormdata, ...tributoVals };\r\n\r\n // TODO da investigare se il DatePicker vuole sempre anche l'ora\r\n if (tipologia === TIPOLOGIA_TRIBUTO.DEBITO) {\r\n nuovoStatoFormdata.DataScadenza = tributoPrecedente.DataScadenza.replace('00Z', '00.000Z');\r\n } else {\r\n nuovoStatoFormdata.AnnoRiferimento = getYear(tributoPrecedente.PeriodoRiferimento);\r\n }\r\n\r\n // Adeguo alcuni nomi da API dettaglio a come si chiamano nella form\r\n if (dettaglioTributoPrecedente.CodiceComune) {\r\n nuovoStatoFormdata\r\n .CodiceComuneDescrizioneComposta = `${dettaglioTributoPrecedente.CodiceComune} - ${dettaglioTributoPrecedente.DescrizioneComune}`;\r\n }\r\n\r\n nuovoStatoFormdata\r\n .CodiceSedeDescrizioneComposta = `${dettaglioTributoPrecedente.CodiceSede} - ${dettaglioTributoPrecedente.DescrizioneSede}`;\r\n\r\n if (dettaglioTributoPrecedente.IdTabellaT0) {\r\n nuovoStatoFormdata\r\n // eslint-disable-next-line max-len\r\n .CodiceRegioneDescrizioneComposta = `${dettaglioTributoPrecedente.CodiceRegione} - ${dettaglioTributoPrecedente.DescrizioneRegione}`;\r\n }\r\n\r\n if (dettaglioTributoPrecedente.IdTabellaT1) {\r\n nuovoStatoFormdata\r\n // eslint-disable-next-line max-len\r\n .CodiceEnteLocaleDescrizioneComposta = `${dettaglioTributoPrecedente.CodiceEnteLocale} - ${dettaglioTributoPrecedente.DescrizioneEnteLocale}`;\r\n }\r\n\r\n if (dettaglioTributoPrecedente.IdTabellaT2) {\r\n nuovoStatoFormdata\r\n // eslint-disable-next-line max-len\r\n .CodiceProvinciaDescrizioneComposta = `${dettaglioTributoPrecedente.CodiceProvincia} - ${dettaglioTributoPrecedente.DescrizioneProvincia}`;\r\n }\r\n\r\n if (dettaglioTributoPrecedente.IdTabellaT3) {\r\n nuovoStatoFormdata\r\n // eslint-disable-next-line max-len\r\n .CodiceEnteTerritorialeDescrizioneComposta = `${dettaglioTributoPrecedente.CodiceEnteTerritoriale} - ${dettaglioTributoPrecedente.DescrizioneEnteTerritoriale}`;\r\n }\r\n\r\n if (dettaglioTributoPrecedente.NumeroRata && dettaglioTributoPrecedente.TotaleNumeroRate) {\r\n nuovoStatoFormdata\r\n // eslint-disable-next-line max-len\r\n .Rateazione = `${String(dettaglioTributoPrecedente.NumeroRata).padStart(2, '0')}/${String(dettaglioTributoPrecedente.TotaleNumeroRate).padStart(2, '0')}`;\r\n }\r\n if (dettaglioTributoPrecedente.MeseRiferimento) {\r\n nuovoStatoFormdata.MeseDescrizione = MESI_ANNO.find((x) => x.Numero === dettaglioTributoPrecedente.MeseRiferimento).Descrizione;\r\n }\r\n\r\n if (dettaglioTributoPrecedente.MeseRiferimentoDa) {\r\n nuovoStatoFormdata\r\n .MeseRiferimentoDaDescrizione = MESI_ANNO.find((x) => x.Numero === dettaglioTributoPrecedente.MeseRiferimentoDa).Descrizione;\r\n }\r\n\r\n if (dettaglioTributoPrecedente.MeseRiferimentoA) {\r\n nuovoStatoFormdata\r\n .MeseRiferimentoADescrizione = MESI_ANNO.find((x) => x.Numero === dettaglioTributoPrecedente.MeseRiferimentoA).Descrizione;\r\n }\r\n\r\n if (dettaglioTributoPrecedente.MeseRiferimentoDa && dettaglioTributoPrecedente.AnnoRiferimentoDa) {\r\n nuovoStatoFormdata\r\n .PeriodoDa = `${String(dettaglioTributoPrecedente.MeseRiferimentoDa).padStart(2, '0')}/${dettaglioTributoPrecedente.AnnoRiferimentoDa}`;\r\n }\r\n if (dettaglioTributoPrecedente.MeseRiferimentoA && dettaglioTributoPrecedente.AnnoRiferimentoA) {\r\n nuovoStatoFormdata\r\n .PeriodoA = `${String(dettaglioTributoPrecedente.MeseRiferimentoA).padStart(2, '0')}/${dettaglioTributoPrecedente.AnnoRiferimentoA}`;\r\n }\r\n if (dettaglioTributoPrecedente.TipoVersamento) {\r\n nuovoStatoFormdata\r\n .TipoVersamentoDesc = TIPO_ELIDE_DATASOURCE.find((x) => x.Val === dettaglioTributoPrecedente.TipoVersamento).Descrizione;\r\n }\r\n\r\n if (dettaglioTributoPrecedente.NumeroRata && tributoVals.IdSezione === TIPOLOGIA_SEZIONE.INPS) {\r\n nuovoStatoFormdata.NumeroRataAnnuale = dettaglioTributoPrecedente.NumeroRataAnnuale\r\n ? `${dettaglioTributoPrecedente.NumeroRataAnnuale}` : `${dettaglioTributoPrecedente.NumeroRata}`;\r\n }\r\n\r\n setFormData({ ...nuovoStatoFormdata });\r\n } else {\r\n setFormData({ ...tributoVals });\r\n }\r\n }, 200);\r\n } else {\r\n showSnackbarErrors(res.DetectedProblems);\r\n }\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n onClose(false);\r\n });\r\n } else if (!tributo.IdCodiceTributo) {\r\n document.querySelector('.v2-modal__content').classList.remove('expand');\r\n document.querySelector('.v2-modal__content').classList.remove('expand-due-righe');\r\n document.querySelector('.v2-modal__content').classList.remove('expand-tre-righe');\r\n document.querySelector('.v2-modal__content').classList.remove('expand-quattro-righe');\r\n setFormData({ DataScadenza: oldFormData.DataScadenza });\r\n }\r\n }, [formData, tipologia, modificaStyleModaleInBaseAllaSezione, dettaglioTributoPrecedente, tributoPrecedente, onClose]);\r\n\r\n const presetForm = useCallback(({ FormErrors, ...datoModificato }) => {\r\n if (!formData || isEmptyObject(datoModificato)) return;\r\n const newStato = { ...formData, ...datoModificato };\r\n\r\n if (newStato.Rateazione && newStato.Rateazione.length === 2) {\r\n newStato.Rateazione = `${newStato.Rateazione.substr(0, 2)}/${newStato.Rateazione.substr(2)}`;\r\n } else if (newStato.PeriodoDa && newStato.PeriodoDa.length === 2) {\r\n newStato.PeriodoDa = `${newStato.PeriodoDa.substr(0, 2)}/${newStato.PeriodoDa.substr(2)}`;\r\n } else if (newStato.PeriodoA && newStato.PeriodoA.length === 2) {\r\n newStato.PeriodoA = `${newStato.PeriodoA.substr(0, 2)}/${newStato.PeriodoA.substr(2)}`;\r\n }\r\n\r\n if (newStato.LimiteUnico) {\r\n if (datoModificato.Importo) {\r\n newStato.ImportoLimitato = !!newStato.ImportoLimitato\r\n && newStato.ImportoLimitato !== ''\r\n && newStato.ImportoLimitato !== 'null' ? newStato.ImportoLimitato : 0;\r\n newStato.ImportoNonLimitato = (datoModificato.Importo - (newStato.ImportoLimitato || 0) > 0)\r\n ? (datoModificato.Importo - (newStato.ImportoLimitato || 0)) : 0;\r\n newStato.ImportoNonLimitato = (datoModificato.Importo - (newStato.ImportoLimitato || 0) > 0)\r\n ? (datoModificato.Importo - (newStato.ImportoLimitato || 0)) : 0;\r\n } else if (datoModificato.ImportoLimitato) {\r\n newStato.ImportoNonLimitato = (newStato.Importo - (datoModificato.ImportoLimitato || 0) > 0)\r\n ? (newStato.Importo - (datoModificato.ImportoLimitato || 0)) : 0;\r\n } else if (!newStato.Importo && !newStato.ImportoLimitato) {\r\n newStato.ImportoLimitato = null;\r\n newStato.ImportoNonLimitato = null;\r\n } else if (newStato.Importo && !newStato.ImportoLimitato) {\r\n newStato.ImportoNonLimitato = newStato.Importo;\r\n }\r\n\r\n if (formData.IdSezione === TIPOLOGIA_SEZIONE.REGIONI || formData.IdSezione === TIPOLOGIA_SEZIONE.TRIBUTI_LOCALI\r\n || formData.IdSezione === TIPOLOGIA_SEZIONE.ERARIO) {\r\n if (newStato.AnnoRiferimento\r\n && newStato.AnnoRiferimento !== ''\r\n && !isAnnoSuperiore2016(newStato.AnnoRiferimento)) {\r\n newStato.ImportoLimitato = 'null';\r\n newStato.ImportoNonLimitato = 'null';\r\n } else if (isAnnoSuperiore2016(datoModificato.AnnoRiferimento)) {\r\n newStato.ImportoLimitato = !!newStato.ImportoLimitato\r\n && newStato.ImportoLimitato !== ''\r\n && newStato.ImportoLimitato !== 'null' ? newStato.ImportoLimitato : 0;\r\n newStato.ImportoNonLimitato = newStato.Importo - (parseInt(newStato.ImportoLimitato, 10) || 0);\r\n }\r\n }\r\n\r\n if (formData.IdSezione === TIPOLOGIA_SEZIONE.INPS) {\r\n if (newStato.AnnoRiferimentoDa\r\n && newStato.AnnoRiferimentoDa !== ''\r\n && !isAnnoSuperiore2016(newStato.AnnoRiferimentoDa)) {\r\n newStato.ImportoLimitato = 'null';\r\n newStato.ImportoNonLimitato = 'null';\r\n } else if (isAnnoSuperiore2016(datoModificato.AnnoRiferimentoDa)) {\r\n newStato.ImportoLimitato = !!newStato.ImportoLimitato\r\n && newStato.ImportoLimitato !== ''\r\n && newStato.ImportoLimitato !== 'null' ? newStato.ImportoLimitato : 0;\r\n newStato.ImportoNonLimitato = newStato.Importo - (parseInt(newStato.ImportoLimitato, 10) || 0);\r\n }\r\n }\r\n }\r\n\r\n setFormData(newStato);\r\n }, [formData]);\r\n\r\n const resetDati = useCallback(() => {\r\n setLoading(false);\r\n setIsFormValid(false);\r\n setSegnalazioni([]);\r\n setEsito(null);\r\n setFormData({});\r\n setCampiSpecifici([]);\r\n setRecuperatiDatiCodiceTributo(false);\r\n if (!tributoPrecedente) {\r\n setDettaglioTributoPrecedente(null);\r\n }\r\n }, [tributoPrecedente]);\r\n\r\n useEffect(() => {\r\n if (show) {\r\n resetDati();\r\n if (dataScadenzaProvenienteDaDelega) {\r\n setFormData({ DataScadenza: dataScadenzaProvenienteDaDelega });\r\n }\r\n }\r\n }, [resetDati, show, dataScadenzaProvenienteDaDelega]);\r\n\r\n const ottieniListaTributiValidi = (searchTerm) => new Promise((resolve) => {\r\n let tributiValidi;\r\n (tipologia === TIPOLOGIA_TRIBUTO.DEBITO\r\n ? getCercaCodiciTributoDebito : getCercaCodiciTributoCredito\r\n )(searchTerm, formData.DataScadenza)\r\n .then((resp) => {\r\n if (resp) {\r\n if (tipoDelega === null) {\r\n tributiValidi = resp;\r\n } else if (tipoDelega === TIPO_DELEGA.ELIDE) {\r\n tributiValidi = resp.filter((res) => res.IdSezione === TIPOLOGIA_SEZIONE.ELIDE);\r\n } else if (tipoDelega === TIPO_DELEGA.ACCISE) {\r\n tributiValidi = resp.filter((res) => res.IdSezione === TIPOLOGIA_SEZIONE.ACCISE\r\n || res.IdSezione === TIPOLOGIA_SEZIONE.ERARIO\r\n || res.IdSezione === TIPOLOGIA_SEZIONE.INPS\r\n || res.IdSezione === TIPOLOGIA_SEZIONE.REGIONI\r\n || res.IdSezione === TIPOLOGIA_SEZIONE.TRIBUTI_LOCALI);\r\n } else {\r\n tributiValidi = resp.filter(\r\n (res) => res.IdSezione === TIPOLOGIA_SEZIONE.ERARIO\r\n || res.IdSezione === TIPOLOGIA_SEZIONE.INPS\r\n || res.IdSezione === TIPOLOGIA_SEZIONE.REGIONI\r\n || res.IdSezione === TIPOLOGIA_SEZIONE.TRIBUTI_LOCALI\r\n || res.IdSezione === TIPOLOGIA_SEZIONE.INAIL\r\n || res.IdSezione === TIPOLOGIA_SEZIONE.ALTRI_ENTI,\r\n );\r\n }\r\n }\r\n resolve(tributiValidi);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n resolve([]);\r\n });\r\n });\r\n\r\n useEffect(() => {\r\n if (!show) {\r\n // reset data on close\r\n resetDati();\r\n }\r\n }, [resetDati, setFormData, show]);\r\n\r\n useEffect(() => {\r\n if (formData.IdCodiceTributo && !formData.TipoTributoElide && formData.IdSezione === TIPOLOGIA_SEZIONE.ELIDE) {\r\n getOttieniTipoTributoElide(formData.IdCodiceTributo)\r\n .then((response) => {\r\n if (response.Success) {\r\n setFormData({\r\n ...formData,\r\n TipoTributoElide: response.Result,\r\n });\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n });\r\n }\r\n }, [formData]);\r\n\r\n useEffect(() => {\r\n // ismodificabile prima era qui ora è nell onOpen della dropdown (TODO vediamo se va bene dov'è caso mai qui è il posto)\r\n if (!dettaglioTributoPrecedente && tributoPrecedente /* && isModificabile === null */) {\r\n const getDettaglio = TIPOLOGIA_SEZIONE.getDettaglioTributoBySezione(tributoPrecedente.IdSezione, tipologia === TIPOLOGIA_TRIBUTO.DEBITO);\r\n getDettaglio(tributoPrecedente.Id)\r\n .then((response) => {\r\n if (response.Success) {\r\n setDettaglioTributoPrecedente(response.Result);\r\n // setFormData({\r\n // ...response.Result,\r\n // ...tributoPrecedente,\r\n // });\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n });\r\n }\r\n }, [dettaglioTributoPrecedente, tipologia, tributoPrecedente]);\r\n\r\n useEffect(() => {\r\n if (dettaglioTributoPrecedente && tributoPrecedente && !recuperatiDatiCodiceTributo) {\r\n (tipologia === TIPOLOGIA_TRIBUTO.DEBITO\r\n ? getCercaCodiciTributoDebito : getCercaCodiciTributoCredito\r\n )(tributoPrecedente.TributoDescrizioneComposta, tributoPrecedente.DataScadenza)\r\n .then((res) => {\r\n if (res) {\r\n onChangeCodiceTributo(res[0]);\r\n setRecuperatiDatiCodiceTributo(true);\r\n }\r\n Log.error('App error');\r\n })\r\n .catch((err) => {\r\n Log.error(err);\r\n });\r\n }\r\n }, [dettaglioTributoPrecedente, onChangeCodiceTributo, recuperatiDatiCodiceTributo, tipologia, tributoPrecedente]);\r\n\r\n return (\r\n onClose(esito)}\r\n className=\"tributi--modale-creazione\"\r\n initialPos={{ x: 'auto', y: window.innerHeight * 0.1 }}\r\n >\r\n \r\n {primaLetteraMaiuscolaStringa(`${tributoPrecedente ? 'Modifica' : 'Crea nuovo'} ${TIPOLOGIA_TRIBUTO.toString(tipologia)} per `)\r\n + primaLetteraMaiuscola(nominativoSogg)}\r\n \r\n \r\n { setIsFormValid(validity); }}\r\n >\r\n {!loading && segnalazioni.length > 0\r\n ? (\r\n
    \r\n \r\n
      \r\n {segnalazioni.map((segnalazione, idx) => (\r\n {segnalazione.msg}\r\n \r\n ))}\r\n
    \r\n
    \r\n )}\r\n type=\"alarm\"\r\n />\r\n
    \r\n )\r\n : (\r\n \r\n \r\n {tipologia === TIPOLOGIA_TRIBUTO.DEBITO ? (\r\n \r\n ) : (
    )}\r\n
    \r\n \r\n onChangeCodiceTributo(val)}\r\n name=\"TributoDescrizioneComposta\"\r\n title=\"Codice tributo\"\r\n dataSource={(param) => ottieniListaTributiValidi(param.term)}\r\n renderProperty=\"DescrizioneComposta\"\r\n validations={[Validation.DefaultRules.required]}\r\n autoFocus={tipologia === TIPOLOGIA_TRIBUTO.CREDITO}\r\n disabled={tributoPrecedente}\r\n />\r\n {tributoPrecedente && (\r\n }\r\n />\r\n )}\r\n \r\n
    \r\n {/* Messo questo div per per sopperire alla mancaza di qualcosa tabbabile dopo l'autocomplete (animazione di show volutamente lenta) */}\r\n \r\n \r\n {formData && formData.IdCodiceTributo && formData.IdSezione === TIPOLOGIA_SEZIONE.ERARIO && tipologia === TIPOLOGIA_TRIBUTO.DEBITO\r\n && (\r\n \r\n )}\r\n {formData && formData.IdCodiceTributo && formData.IdSezione === TIPOLOGIA_SEZIONE.ERARIO && tipologia === TIPOLOGIA_TRIBUTO.CREDITO\r\n && (\r\n formData.Importo)}\r\n />\r\n )}\r\n {formData && formData.IdCodiceTributo && formData.IdSezione === TIPOLOGIA_SEZIONE.REGIONI && tipologia === TIPOLOGIA_TRIBUTO.DEBITO\r\n && (\r\n formData.Importo)}\r\n />\r\n )}\r\n {formData && formData.IdCodiceTributo && formData.IdSezione === TIPOLOGIA_SEZIONE.REGIONI && tipologia === TIPOLOGIA_TRIBUTO.CREDITO\r\n && (\r\n formData.Importo)}\r\n />\r\n )}\r\n {formData && formData.IdCodiceTributo && formData.IdSezione === TIPOLOGIA_SEZIONE.TRIBUTI_LOCALI && tipologia === TIPOLOGIA_TRIBUTO.DEBITO\r\n && (\r\n \r\n )}\r\n {formData && formData.IdCodiceTributo && formData.IdSezione === TIPOLOGIA_SEZIONE.TRIBUTI_LOCALI && tipologia === TIPOLOGIA_TRIBUTO.CREDITO\r\n && (\r\n formData.Importo)}\r\n />\r\n )}\r\n {formData && formData.IdCodiceTributo && formData.IdSezione === TIPOLOGIA_SEZIONE.INPS && (\r\n formData.Importo)}\r\n />\r\n )}\r\n {formData && formData.IdCodiceTributo && formData.IdSezione === TIPOLOGIA_SEZIONE.INAIL && (\r\n \r\n )}\r\n {formData && formData.IdCodiceTributo && formData.IdSezione === TIPOLOGIA_SEZIONE.ALTRI_ENTI && (\r\n \r\n )}\r\n {formData && formData.IdCodiceTributo && formData.IdSezione === TIPOLOGIA_SEZIONE.ACCISE\r\n && tipologia === TIPOLOGIA_TRIBUTO.DEBITO\r\n && (\r\n \r\n )}\r\n {formData && formData.IdCodiceTributo && formData.IdSezione === TIPOLOGIA_SEZIONE.ELIDE\r\n && tipologia === TIPOLOGIA_TRIBUTO.DEBITO\r\n && (\r\n \r\n )}\r\n \r\n )}\r\n \r\n \r\n \r\n {segnalazioni.length === 0 ? (\r\n \r\n {`${tributoPrecedente ? 'MODIFICA' : 'CREA'} ${TIPOLOGIA_TRIBUTO.toString(tipologia)}`}\r\n \r\n ) : (\r\n setSegnalazioni([])}\r\n emphasis={Button.Emphasis.HIGH}\r\n primary\r\n disabled={!isFormValid}\r\n running={loading}\r\n >\r\n RIPROVA\r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nModaleCreazione.defaultProps = {\r\n tributoPrecedente: null,\r\n dataScadenzaProvenienteDaDelega: null,\r\n tipoDelega: null,\r\n};\r\n\r\nModaleCreazione.propTypes = {\r\n onClose: PropTypes.func.isRequired,\r\n tipologia: PropTypes.oneOf([TIPOLOGIA_TRIBUTO.CREDITO, TIPOLOGIA_TRIBUTO.DEBITO]).isRequired,\r\n show: PropTypes.bool.isRequired,\r\n tributoPrecedente: PropTypes.shape(\r\n {\r\n Id: PropTypes.number,\r\n IdCodiceTributo: PropTypes.number,\r\n IdSezione: PropTypes.number,\r\n DescrizioneComposta: PropTypes.string,\r\n TributoDescrizioneComposta: PropTypes.string,\r\n DataScadenza: PropTypes.string,\r\n PeriodoRiferimento: PropTypes.string,\r\n },\r\n ),\r\n dataScadenzaProvenienteDaDelega: PropTypes.string,\r\n tipoDelega: PropTypes.number,\r\n};\r\n\r\nexport default ModaleCreazione;\r\n","/* eslint-disable max-len */\r\nimport Icon from 'framework-ui-components/Components/Icons/Icon';\r\nimport React from 'react';\r\n\r\nexport default Icon(\r\n \r\n \r\n \r\n \r\n \r\n ,\r\n '0 0 24 24',\r\n 'InvioTelematicoIconSmall',\r\n);\r\n","/* eslint-disable no-nested-ternary */\r\nimport { logApiError } from 'framework-taskforce/utils/log';\r\nimport {\r\n Grid,\r\n Heading,\r\n Tooltip,\r\n Formatter,\r\n Badge,\r\n Link,\r\n InfoTooltip,\r\n} from 'framework-ui-components';\r\nimport {\r\n Tooltip as TooltipV2,\r\n Button, DropdownButton, FeedbackModal, Layout, Panel,\r\n} from 'framework-ui-components/Components/V2';\r\nimport InfoIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/InfoIcon';\r\nimport LayersIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/LayersIcon';\r\nimport React, {\r\n useState, useCallback, useEffect,\r\n} from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport DesignServiceIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/DesignServiceIcon';\r\nimport PropTypes from 'prop-types';\r\nimport MoreVertIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/MoreVertIcon';\r\nimport SendIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/SendIcon';\r\nimport { callDownloadFile } from 'framework-taskforce/utils/file';\r\nimport { getSegnalazioneError } from 'framework-taskforce/models/segnalazioni';\r\nimport DeleteIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/DeleteIcon';\r\nimport AddIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/AddIcon';\r\nimport { JustADate } from 'framework-taskforce/utils/date';\r\nimport DoneIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/DoneIcon';\r\nimport { format } from 'framework-ui-components/Components/Utils/numeriHelper';\r\nimport useViewport from 'framework-ui-components/Components/V2/Hooks/useViewport';\r\nimport { ModalIFrame } from 'framework-plugins';\r\nimport CreditCardIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/CreditCardIcon';\r\nimport {\r\n postStampaDelegaProvvisoria,\r\n postStampaCopiaConformeDelega,\r\n getStampaUltimaDelega,\r\n getOttieniTributiInseribiliInDelega,\r\n postUtilizzaDebito,\r\n postUtilizzaCredito,\r\n} from '../../apis/deleghe';\r\nimport LabelValueDetail from '../../components/custom/LabelValueDetail';\r\nimport TemplateGrid from '../../components/TemplateGrid/TemplateGrid';\r\nimport PrinterIcon from '../../components/icons/google/PrinterIcon';\r\nimport {\r\n MODALITA_PRESENTAZIONE, SOGGETTO_VERSANTE, STATO_DELEGA, STATO_INVIO_CBI, STATO_INVIO_PAGOF24, STATO_INVIO_TELEMATICO,\r\n} from '../../models/delega';\r\nimport { TIPOLOGIA_TRIBUTO } from '../../models/tributi';\r\nimport UndoIcon from '../../components/icons/google/UndoIcon';\r\nimport VerifiedIcon from '../../components/icons/google/VerifiedIcon';\r\nimport CreditScoreIcon from '../../components/icons/google/CreditScoreIcon';\r\nimport EtichetteDelega from '../../components/EtichetteDelega';\r\nimport ModaleAiutaci from '../../components/ModaleAiutaci';\r\nimport ModaleRischiDiPagareDueVolte from '../listaContribuenti/riepilogoContribuente/listaDeleghe/tabella/complete/ModaleRischiDiPagareDueVolte';\r\nimport SendCancelledIcon from '../../components/icons/google/SendCancelledIcon';\r\nimport apiDownloadFile from '../../apis/file';\r\nimport LabelOnly from '../../components/custom/LabelOnly';\r\nimport ArrowBackIcon from '../../components/icons/google/ArrowBackIcon';\r\nimport Note from '../../components/note/Note';\r\nimport ModaleCreazioneTributo from '../creazioneTributo/ModaleCreazione';\r\nimport InvioTelematicoIconSmall from '../../components/icons/custom/InvioTelematicoIconSmall';\r\n\r\nconst RiepilogoDelega = ({\r\n datiDelega,\r\n etichetteDelega,\r\n loading,\r\n infoModalitaPresentazione,\r\n isDichiaraDaNonPresentareAttivo,\r\n isDichiaraDaPresentareAttivo,\r\n setShowModalePresentazioneContribuente,\r\n setShowModalePresentazioneIntermediario,\r\n setShowModalePresentazioneInvioTelematico,\r\n setShowModalePresentazioneCbi,\r\n setShowModalePresentazionePagoF24,\r\n stampaCartacea,\r\n apriWarningStampaCartacea,\r\n dichiaraAperta,\r\n isDichiaraApertaAttivo,\r\n setShowModaleDichiaraPagata,\r\n dichiaraChiusa,\r\n dichiaraDaNonPresentare,\r\n dichiaraDaPresentare,\r\n isDichiaraPagataAttivo,\r\n isDichiaraCompletaAttivo,\r\n totaleDelega,\r\n setConfirmEliminaDelega,\r\n setDatiDelegaAggiornati,\r\n tributiInseribili,\r\n setTributiInseribili,\r\n ottieniSezioneSpecificaById,\r\n setWindowHeight,\r\n}) => {\r\n const invioTelematicoCgnUrl = useSelector((store) => store.appParams.AdeleUrl);\r\n const appParamVisualizzazione = useSelector((store) => !!store.appParams.visualizzazione);\r\n const codiceUfficioSelezionato = useSelector((store) => store.appParams.ufficioSelezionato);\r\n const f24CbiUrl = useSelector((store) => store.appParams.F24CBIUrl);\r\n const applicationId = useSelector((store) => store.appParams.ApplicationId);\r\n const idContribuente = useSelector((store) => store.soggetto.idContribuente);\r\n const noBack = useSelector((store) => !!store.appParams.noBack);\r\n const noToolbar = useSelector((store) => store.appParams.noToolbar);\r\n const isInvioTelematicoCbiAttivo = useSelector((store) => store.appParams.isInvioTelematicoCbiAttivo);\r\n const sestioneContrattiRdv = useSelector((store) => store.appParams.GestioneContrattiRdv);\r\n const isInvioTelematicoAttivo = useSelector((store) => store.appParams.isInvioTelematicoAttivo);\r\n const homeUrl = useSelector((store) => store.appParams.HomeUrl);\r\n const codiciUfficioAbilitatiPagoF24 = useSelector((store) => store.appParams.CodiciUfficioAbilitatiPagoF24);\r\n const codiciUfficioAbilitatiCgnPos = useSelector((store) => store.appParams.CodiciUfficioAbilitatiCgnPos);\r\n const paginaDiServizioCgnPosUrl = useSelector((store) => store.appParams.PaginaDiServizioCgnPosUrl);\r\n\r\n const { width, height } = useViewport();\r\n\r\n const [show, onMouseEnter, onMouseLeave] = TooltipV2.useTooltipHoverWithDelay();\r\n const [showCgnPos, onMouseEnterCgnPos, onMouseLeaveCgnPos] = TooltipV2.useTooltipHoverWithDelay();\r\n const [showInvioTele, onMouseEnterInvioTele, onMouseLeaveInvioTele] = TooltipV2.useTooltipHoverWithDelay();\r\n\r\n const [confirmFunzionalitaMancante, setConfirmFunzionalitaMancante] = useState(false);\r\n const [segnalazioni, setSegnalazioni] = useState([]);\r\n const [showConfirmSegnaDaNonPresentare, setShowConfirmSegnaDaNonPresentare] = useState({ show: false, callback: () => {} });\r\n const [showDettaglioCBI, setShowDettaglioCBI] = useState(false);\r\n const [titoloFeedbackModal, setTitoloFeedbackModal] = useState('');\r\n const [datiPerFrameDettaglioCBI, setDatiPerFrameDettaglioCBI] = useState({\r\n });\r\n const [loadingTributiInseribili, setLoadingTributiInseribili] = useState(false);\r\n const [creaTributo, setCreaTributo] = useState({\r\n aperto: false,\r\n tipologiaTributo: TIPOLOGIA_TRIBUTO.DEBITO,\r\n });\r\n const [creazioneTributoInCorso, setCreazioneTributoInCorso] = useState(false);\r\n const [successoCrezioneTributo, setSuccessoCrezioneTributo] = useState({\r\n successo: false,\r\n sezione: 'erario',\r\n tipo: TIPOLOGIA_TRIBUTO.DEBITO,\r\n annoDiRiferimento: null,\r\n });\r\n const [tributoDaAggiungereInDelega, setTributoDaAggiungereInDelega] = useState(null);\r\n const [tributoAggiuntoInDelega, setTributoAggiuntoInDelega] = useState(null);\r\n\r\n useEffect(() => {\r\n if (height) {\r\n setWindowHeight(height);\r\n }\r\n }, [height, setWindowHeight]);\r\n\r\n useEffect(() => {\r\n if (datiDelega && datiDelega.IdDelega) {\r\n setDatiPerFrameDettaglioCBI({\r\n idOrigine: applicationId,\r\n idDelega: datiDelega.IdDelega,\r\n codiceUfficio: codiceUfficioSelezionato,\r\n });\r\n }\r\n }, [datiDelega, applicationId, codiceUfficioSelezionato]);\r\n\r\n const getBadgeInvioTelematico = (statoInvioTelematico) => {\r\n let badge =
    -
    ;\r\n if (statoInvioTelematico === STATO_INVIO_TELEMATICO.ADEMPIMENTO_SCARTATO_ADE) {\r\n badge = (\r\n \r\n Scartato\r\n \r\n );\r\n } else if (statoInvioTelematico === STATO_INVIO_TELEMATICO.ADEMPIMENTO_ANNULLATO_ADE) {\r\n badge = (\r\n \r\n Annullato\r\n \r\n );\r\n } else if (statoInvioTelematico === STATO_INVIO_TELEMATICO.ADEMPIMENTO_NON_INVIATO_ADE\r\n || statoInvioTelematico === STATO_INVIO_TELEMATICO.DELEGA_NON_INVIATA\r\n || statoInvioTelematico === STATO_INVIO_TELEMATICO.ADEMPIMENTO_NON_CREATO) {\r\n badge = (\r\n \r\n Rifiutato\r\n \r\n );\r\n } else if (statoInvioTelematico === STATO_INVIO_TELEMATICO.ADEMPIMENTO_SOSPESO_ADE) {\r\n badge = (\r\n \r\n Sospeso\r\n \r\n );\r\n } else if (statoInvioTelematico === STATO_INVIO_TELEMATICO.ADEMPIMENTO_INVIATO_ADE) {\r\n badge = (\r\n \r\n Inviato\r\n \r\n );\r\n } else if (statoInvioTelematico === STATO_INVIO_TELEMATICO.ADEMPIMENTO_ELABORATO_ADE) {\r\n badge = (\r\n \r\n Elaborato\r\n \r\n );\r\n }\r\n\r\n return (\r\n badge\r\n );\r\n };\r\n\r\n const getBadgeInvioCbi = (statoInvioCbi) => {\r\n let badge =
    -
    ;\r\n\r\n if (statoInvioCbi === STATO_INVIO_CBI.DELEGA_ERRATA) {\r\n badge = (\r\n \r\n Errata\r\n \r\n );\r\n } else if (statoInvioCbi === STATO_INVIO_CBI.DELEGA_NON_PAGATA) {\r\n badge = (\r\n \r\n Non pagata\r\n \r\n );\r\n } else if (statoInvioCbi === STATO_INVIO_CBI.DELEGA_IN_ATTESA_DI_PAGAMENTO) {\r\n badge = (\r\n \r\n In attesa\r\n \r\n );\r\n } else if (statoInvioCbi === STATO_INVIO_CBI.DELEGA_PAGATA) {\r\n badge = (\r\n \r\n Pagata\r\n \r\n );\r\n } else if (statoInvioCbi === STATO_INVIO_CBI.DELEGA_IN_CARICO_BANCA) {\r\n badge = (\r\n \r\n In carico banca\r\n \r\n );\r\n }\r\n\r\n return (\r\n badge\r\n );\r\n };\r\n\r\n const stampaF24Provvisorio = (idDelega) => {\r\n postStampaDelegaProvvisoria(idDelega).then((res) => {\r\n if (res.Success) {\r\n callDownloadFile(\r\n apiDownloadFile,\r\n res.Result.NomeFile,\r\n res.Result.IdFile,\r\n codiceUfficioSelezionato,\r\n res.Result.NomeFile,\r\n ).then((resDownload) => {\r\n // setLoading(false);\r\n }).catch((e) => {\r\n logApiError(e);\r\n // setLoading(false);\r\n });\r\n } else {\r\n // setLoading(false);\r\n setTitoloFeedbackModal('Stampa provvisoria non riuscita');\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n // setLoading(false);\r\n });\r\n };\r\n\r\n const riscaricaUltimoF24 = (idDelega) => {\r\n getStampaUltimaDelega(idDelega).then((res) => {\r\n if (res.Success) {\r\n callDownloadFile(\r\n apiDownloadFile,\r\n res.Result.NomeFile,\r\n res.Result.IdFile,\r\n codiceUfficioSelezionato,\r\n res.Result.NomeFile,\r\n ).then((resDownload) => {\r\n // setLoading(false);\r\n }).catch((e) => {\r\n logApiError(e);\r\n // setLoading(false);\r\n });\r\n } else {\r\n // setLoading(false);\r\n setTitoloFeedbackModal('Ristampa ultimo F24 non riuscita');\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n // setLoading(false);\r\n });\r\n };\r\n\r\n const stampaF24CopiaConforme = (idDelega) => {\r\n postStampaCopiaConformeDelega(idDelega).then((res) => {\r\n if (res.Success) {\r\n callDownloadFile(\r\n apiDownloadFile,\r\n res.Result.NomeFile,\r\n res.Result.IdFile,\r\n codiceUfficioSelezionato,\r\n res.Result.NomeFile,\r\n ).then((resDownload) => {\r\n // setLoading(false);\r\n }).catch((e) => {\r\n logApiError(e);\r\n // setLoading(false);\r\n });\r\n } else {\r\n // setLoading(false);\r\n setTitoloFeedbackModal('Stampa copia conforme non riuscita');\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n // setLoading(false);\r\n });\r\n };\r\n\r\n const resetListaTributi = () => {\r\n setTributiInseribili(null);\r\n setSuccessoCrezioneTributo({\r\n successo: false,\r\n sezione: 'erario',\r\n tipo: TIPOLOGIA_TRIBUTO.DEBITO,\r\n annoDiRiferimento: null,\r\n });\r\n setTributoAggiuntoInDelega(null);\r\n };\r\n\r\n const ottieniTributiInseribili = useCallback(\r\n (idDelega, tributoInserito = null) => {\r\n setLoadingTributiInseribili(true);\r\n getOttieniTributiInseribiliInDelega(idDelega).then((res) => {\r\n if (res.Success) {\r\n if (res.Result.length > 0) {\r\n // mantengo gli ultimi tributi inseriti per dare visione all'utente\r\n let precedentementeInseriti = [];\r\n\r\n if (tributoInserito) {\r\n precedentementeInseriti = [\r\n ...(tributiInseribili.filter((x) => x.inserito)),\r\n { ...tributoInserito, inserito: true }].sort((x, y) => ((x === y) ? 0 : x.IsDebito ? -1 : 1));\r\n }\r\n\r\n tributoInserito ? setTributiInseribili(\r\n [...res.Result,\r\n ...precedentementeInseriti,\r\n ],\r\n )\r\n : setTributiInseribili([...res.Result]);\r\n } else {\r\n setTributiInseribili([]);\r\n }\r\n }\r\n\r\n setLoadingTributiInseribili(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoadingTributiInseribili(false);\r\n });\r\n },\r\n [setTributiInseribili, tributiInseribili],\r\n );\r\n\r\n const aggiugiTributi = useCallback(\r\n (tributo) => {\r\n setLoadingTributiInseribili(true);\r\n if (tributo.IsDebito) {\r\n postUtilizzaDebito({ IdContribuente: idContribuente, IdDebito: tributo.Id, IdDelega: datiDelega.IdDelega })\r\n .then((res) => {\r\n if (res.Success) {\r\n setDatiDelegaAggiornati(null);\r\n ottieniSezioneSpecificaById(tributo.IdSezione);\r\n ottieniTributiInseribili(datiDelega.IdDelega, tributo);\r\n setTributoAggiuntoInDelega(tributo);\r\n } else {\r\n setTitoloFeedbackModal('Non è stato possibile aggiungere il debito alla delega');\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n\r\n setLoadingTributiInseribili(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoadingTributiInseribili(false);\r\n });\r\n } else {\r\n postUtilizzaCredito({ IdContribuente: idContribuente, IdCredito: tributo.Id, IdDelega: datiDelega.IdDelega })\r\n .then((res) => {\r\n if (res.Success) {\r\n setDatiDelegaAggiornati(null);\r\n ottieniSezioneSpecificaById(tributo.IdSezione);\r\n ottieniTributiInseribili(datiDelega.IdDelega, tributo, { ...tributo, inserito: true });\r\n setTributoAggiuntoInDelega(tributo);\r\n } else {\r\n setTitoloFeedbackModal('Non è stato possibile aggiungere il credito alla delega');\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n\r\n setLoadingTributiInseribili(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoadingTributiInseribili(false);\r\n });\r\n }\r\n },\r\n [datiDelega, idContribuente, ottieniSezioneSpecificaById, ottieniTributiInseribili, setDatiDelegaAggiornati],\r\n );\r\n\r\n const aperturaModaleCreazioneTributo = useCallback((tipologiaTributo) => {\r\n setCreaTributo({\r\n aperto: true,\r\n tipologiaTributo,\r\n dataScadenzaDelega: datiDelega && datiDelega.ScadenzaVersamento ? datiDelega.ScadenzaVersamento : '',\r\n tipoDelega: datiDelega && datiDelega.TipoDelega ? datiDelega.TipoDelega : null,\r\n });\r\n setCreazioneTributoInCorso(true);\r\n }, [datiDelega]);\r\n\r\n const chiusuraModaleCreazioneTributo = useCallback(\r\n (successo, codice, sezione, tipo, importo, dataScadenza, idTributo, isModifica = false) => {\r\n setCreaTributo({\r\n aperto: false,\r\n tipologiaTributo: TIPOLOGIA_TRIBUTO.DEBITO,\r\n });\r\n setCreazioneTributoInCorso(false);\r\n\r\n if (successo) {\r\n setSuccessoCrezioneTributo({\r\n successo,\r\n codice,\r\n sezione,\r\n tipo,\r\n importo,\r\n dataScadenza,\r\n idTributo,\r\n isModifica,\r\n });\r\n\r\n if (datiDelega && datiDelega.IdDelega) {\r\n ottieniTributiInseribili(datiDelega.IdDelega);\r\n }\r\n\r\n setTributoDaAggiungereInDelega({\r\n IdTributo: idTributo,\r\n });\r\n }\r\n },\r\n [ottieniTributiInseribili, datiDelega],\r\n );\r\n\r\n useEffect(() => {\r\n if (tributoDaAggiungereInDelega) {\r\n const tributo = tributiInseribili.find(\r\n (t) => t.Id === tributoDaAggiungereInDelega.IdTributo,\r\n );\r\n if (tributo) {\r\n aggiugiTributi(tributo);\r\n setTributoDaAggiungereInDelega(null);\r\n }\r\n }\r\n }, [tributiInseribili, aggiugiTributi, tributoDaAggiungereInDelega]);\r\n\r\n const aggiungiTributiInDelega = (idDelega) => {\r\n ottieniTributiInseribili(idDelega);\r\n setSuccessoCrezioneTributo({\r\n successo: false,\r\n sezione: 'erario',\r\n tipo: TIPOLOGIA_TRIBUTO.DEBITO,\r\n annoDiRiferimento: null,\r\n });\r\n };\r\n\r\n const feedbackAvvenutaCreazioneTributo = (\r\n successoCrezioneTributo.successo && (\r\n \r\n \r\n setSuccessoCrezioneTributo({ successo: false })}\r\n className=\"mb-21\"\r\n />\r\n \r\n \r\n )\r\n );\r\n\r\n const elementoTributiInseribili = (\r\n tributiInseribili && tributiInseribili.length > 0 ? (\r\n
    \r\n
    Tributi compatibili con questa delega
    \r\n \r\n 0 ? `${totaleDelega ? (`${format(totaleDelega, 2)}€`).toString().length * 9 : 150}px`\r\n : `${totaleDelega ? (format(totaleDelega, 2).toString().length * 9) + 60 : 80}px`}\r\n >\r\n 0 ? 'Saldo' : 'Saldo a debito'}\r\n type=\"currencyLabelValueDetail\"\r\n className=\"mt-21 mb-21\"\r\n value={(\r\n = 0 ? -Math.abs(totaleDelega) : Math.abs(totaleDelega)}\r\n />\r\n )}\r\n />\r\n \r\n {!loading && totaleDelega > 0 && (\r\n \r\n
    \r\n \r\n Il saldo deve essere a debito per portare la delega a Completa\r\n \r\n
    \r\n
    \r\n )}\r\n
    \r\n\r\n {feedbackAvvenutaCreazioneTributo}\r\n\r\n {tributiInseribili.map((t) => (\r\n width > 1678 ? (\r\n
    \r\n \r\n \r\n 1770 ? 9 : 8}>\r\n
    \r\n {t.IsDebito ? 'Debito' : 'Credito'}\r\n {t.CodiceTributo}\r\n {/* {t.DescrizioneTributo && (\r\n
    \r\n 13}>\r\n {t.DescrizioneTributo}\r\n \r\n
    \r\n )} */}\r\n del\r\n {t.PeriodoRiferimento}\r\n importo residuo\r\n \r\n €\r\n \r\n {/*
    \r\n aggiugiTributi(t.IsDebito, t.Id, t.IdSezione)}\r\n disabled={loading || appParamVisualizzazione || loadingTributiInseribili}\r\n >\r\n \r\n Aggiungi alla delega\r\n \r\n
    */}\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n aggiugiTributi(t)}\r\n disabled={loading || appParamVisualizzazione || loadingTributiInseribili || t.inserito}\r\n >\r\n {t.inserito ? : }\r\n {t.inserito ? 'Aggiunto alla delega' : 'Aggiungi alla delega'}\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n ) : (\r\n width > 1459 ? (\r\n
    \r\n \r\n \r\n \r\n
    \r\n {t.IsDebito ? 'Debito' : 'Credito'}\r\n {t.CodiceTributo}\r\n del\r\n {t.PeriodoRiferimento}\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n aggiugiTributi(t)}\r\n disabled={loading || appParamVisualizzazione || loadingTributiInseribili || t.inserito}\r\n >\r\n {t.inserito ? : }\r\n {t.inserito ? 'Aggiunto alla delega' : 'Aggiungi alla delega'}\r\n \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n \r\n
    \r\n importo residuo\r\n \r\n €\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n ) : (\r\n
    \r\n \r\n \r\n \r\n
    \r\n {t.IsDebito ? 'Debito' : 'Credito'}\r\n {t.CodiceTributo}\r\n del\r\n {t.PeriodoRiferimento}\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n importo residuo\r\n \r\n €\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n aggiugiTributi(t)}\r\n disabled={loading || appParamVisualizzazione || loadingTributiInseribili || t.inserito}\r\n >\r\n {t.inserito ? : }\r\n {t.inserito ? 'Aggiunto alla delega' : 'Aggiungi alla delega'}\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n ))\r\n ))}\r\n
    \r\n ) : (\r\n \r\n {!tributoAggiuntoInDelega && (\r\n \r\n )}\r\n {feedbackAvvenutaCreazioneTributo}\r\n {tributoAggiuntoInDelega && (\r\n
    \r\n \r\n \r\n 1770 ? 9 : 8}>\r\n
    \r\n \r\n {tributoAggiuntoInDelega.IsDebito ? 'Debito' : 'Credito'}\r\n \r\n {tributoAggiuntoInDelega.CodiceTributo}\r\n del\r\n {tributoAggiuntoInDelega.PeriodoRiferimento}\r\n importo residuo\r\n \r\n €\r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n aggiugiTributi(tributoAggiuntoInDelega)}\r\n disabled\r\n >\r\n \r\n Aggiunto alla delega\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n )}\r\n
    \r\n )\r\n );\r\n\r\n return (\r\n
    1300 ? 'div__right' : 'div__right_smol'}`}\r\n >\r\n {datiDelega && datiDelega.ScadenzaVersamento && (\r\n
    \r\n
    \r\n {(datiDelega.Stato !== STATO_DELEGA.DA_CONSEGNARE && datiDelega.Stato !== STATO_DELEGA.PAGATA\r\n && datiDelega.Stato !== STATO_DELEGA.CONSEGNATA && datiDelega.Stato !== STATO_DELEGA.DA_INVIARE)\r\n && (\r\n 1765 ? [\r\n { className: '', width: '' },\r\n { className: 'ml-16', width: '' },\r\n { className: 'ml-16', width: '' },\r\n { className: 'ml-16', width: '' },\r\n { className: 'ml-16', width: '' },\r\n ] : (width > 1650 ? [\r\n { className: '', width: '' },\r\n { className: 'ml-16', width: '' },\r\n { className: 'ml-16', width: '' },\r\n ]\r\n : (width > 1500 ? [\r\n { className: '', width: '' },\r\n { className: 'ml-16', width: '' },\r\n ]\r\n : [\r\n { className: '', width: '' },\r\n ])),\r\n rows: [{ className: '' }],\r\n },\r\n ]}\r\n >\r\n {datiDelega.Stato === STATO_DELEGA.COMPLETA && (\r\n [\r\n !datiDelega.IsDaNonPresentare && (\r\n 1420 ? '' : 'mb-16'} ${width > 1590 ? '' : 'custom--dropdown-button__menu__overlay'}`}\r\n emphasis={Button.Emphasis.LOW}\r\n primary\r\n disabled={loading || appParamVisualizzazione || loadingTributiInseribili}\r\n right\r\n >\r\n \r\n Presenta la delega\r\n 1420 ? '' : 'mb-16'}`}\r\n right\r\n >\r\n Pagamento digitale )}>\r\n {(codiciUfficioAbilitatiCgnPos ? codiciUfficioAbilitatiCgnPos.find((x) => (x === codiceUfficioSelezionato)) : true) && (\r\n infoModalitaPresentazione.IsInvioCgnPosAttivo\r\n && infoModalitaPresentazione.HaRichiestoAlmenoUnPos\r\n ? (\r\n setShowModalePresentazionePagoF24(true)}\r\n disabled={loading || appParamVisualizzazione}\r\n >\r\n CGN POS\r\n \r\n\r\n ) : (\r\n \r\n setShowModalePresentazionePagoF24(true)}\r\n disabled\r\n >\r\n CGN POS\r\n {!infoModalitaPresentazione.HaRichiestoAlmenoUnPos && (\r\n \r\n Attiva CGN POS\r\n \r\n )}\r\n >\r\n
    \r\n \r\n
    \r\n \r\n )}\r\n \r\n \r\n ))}\r\n {infoModalitaPresentazione.IsInvioTramitePagoF24Attivo\r\n && (codiciUfficioAbilitatiPagoF24 ? codiciUfficioAbilitatiPagoF24.find((x) => (x === codiceUfficioSelezionato)) : true)\r\n ? (\r\n setShowModalePresentazionePagoF24()}\r\n disabled={loading || appParamVisualizzazione}\r\n >\r\n pagoF24\r\n \r\n ) : (\r\n \r\n setShowModalePresentazionePagoF24()}\r\n disabled\r\n >\r\n pagoF24\r\n \r\n \r\n )}\r\n {infoModalitaPresentazione.IsInviaFileTelematicoContribuenteConCbiAttivo ? (\r\n setShowModalePresentazioneCbi()}\r\n disabled={loading || appParamVisualizzazione || !isInvioTelematicoCbiAttivo}\r\n >\r\n CBI\r\n {!isInvioTelematicoCbiAttivo && (\r\n \r\n Attiva CBI\r\n \r\n )}\r\n >\r\n
    \r\n \r\n
    \r\n \r\n )}\r\n \r\n ) : (\r\n \r\n \r\n CBI\r\n \r\n \r\n )}\r\n
    \r\n File telematico )}>\r\n {infoModalitaPresentazione.IsCreaFileTelematicoContribuenteAttivo ? (\r\n setShowModalePresentazioneContribuente()}\r\n disabled={loading || appParamVisualizzazione || loadingTributiInseribili}\r\n >\r\n Per via telematica tramite contribuente\r\n \r\n ) : (\r\n \r\n \r\n Per via telematica tramite contribuente\r\n \r\n \r\n )}\r\n {infoModalitaPresentazione.IsCreaFileTelematicoIntermediarioAttivo ? (\r\n setShowModalePresentazioneIntermediario()}\r\n disabled={loading || appParamVisualizzazione}\r\n >\r\n Per via telematica tramite intermediario\r\n \r\n ) : (\r\n \r\n \r\n Per via telematica tramite intermediario\r\n \r\n \r\n )}\r\n {infoModalitaPresentazione.IsInviaFileTelematicoIntermediarioConAdeleAttivo ? (\r\n setShowModalePresentazioneInvioTelematico()}\r\n disabled={loading || appParamVisualizzazione || !isInvioTelematicoAttivo}\r\n >\r\n Invio telematico CGN\r\n {!isInvioTelematicoAttivo && (\r\n 1420 ? 'right' : 'bottom'}\r\n content={(\r\n \r\n Attiva Invio telematico CGN\r\n \r\n )}\r\n >\r\n
    \r\n \r\n
    \r\n \r\n )}\r\n \r\n ) : (\r\n \r\n \r\n Invio telematico CGN\r\n \r\n \r\n )}\r\n
    \r\n {infoModalitaPresentazione.IsCreaStampaDaConsegnareAttivo ? (\r\n (isDichiaraDaNonPresentareAttivo\r\n && JSON.parse(window.localStorage.getItem('possibilita-di-non-presentare-non-visualizza-piu')) !== 'messageRead'\r\n ? setShowConfirmSegnaDaNonPresentare({\r\n show: true,\r\n callBack: () => {\r\n JSON.parse(window.localStorage.getItem('stampa-cartacea-non-visualizza-piu')) === 'messageRead'\r\n ? stampaCartacea(datiDelega.IdDelega) : apriWarningStampaCartacea();\r\n },\r\n })\r\n : (\r\n JSON.parse(window.localStorage.getItem('stampa-cartacea-non-visualizza-piu')) === 'messageRead'\r\n ? stampaCartacea(datiDelega.IdDelega) : apriWarningStampaCartacea()\r\n ))}\r\n disabled={!infoModalitaPresentazione.IsCreaStampaDaConsegnareAttivo || loading || appParamVisualizzazione}\r\n className=\"z-index__-2\"\r\n >\r\n \r\n Stampa\r\n \r\n ) : (\r\n \r\n {\r\n JSON.parse(window.localStorage.getItem('stampa-cartacea-non-visualizza-piu')) === 'messageRead'\r\n ? stampaCartacea(datiDelega.IdDelega) : apriWarningStampaCartacea();\r\n }}\r\n disabled={!infoModalitaPresentazione.IsCreaStampaDaConsegnareAttivo || loading || appParamVisualizzazione}\r\n className=\"z-index__-2\"\r\n >\r\n \r\n Stampa\r\n \r\n \r\n )}\r\n \r\n \r\n ),\r\n // width > 1420 && width < 1560 && (
    ),\r\n // width > 1420 && width < 1560 && (
    ),\r\n \r\n 1500 ? '' : 'mt-16'}`}\r\n emphasis={Button.Emphasis.LOW}\r\n disabled={appParamVisualizzazione || datiDelega.Errata || loading || loadingTributiInseribili}\r\n onClick={() => stampaF24Provvisorio(datiDelega.IdDelega)}\r\n\r\n >\r\n \r\n Stampa F24 provvisorio\r\n \r\n ,\r\n 1650 ? '' : 'mt-16'}`}\r\n emphasis={Button.Emphasis.LOW}\r\n onClick={() => dichiaraAperta(datiDelega.IdDelega)}\r\n disabled={!isDichiaraApertaAttivo || loading || appParamVisualizzazione || loadingTributiInseribili}\r\n >\r\n \r\n Sposta a "In lavorazione"\r\n ,\r\n isDichiaraDaNonPresentareAttivo && !datiDelega.IsDaNonPresentare && (\r\n 1420 ? '' : 'mb-16'}`}\r\n emphasis={Button.Emphasis.LOW}\r\n onClick={() => dichiaraDaNonPresentare(datiDelega.IdDelega)}\r\n disabled={!isDichiaraDaNonPresentareAttivo || loading || appParamVisualizzazione || loadingTributiInseribili}\r\n >\r\n \r\n Non presentare questa delega\r\n \r\n ),\r\n datiDelega.IsDaNonPresentare && (\r\n 1420 ? '' : 'mb-16'}`}\r\n emphasis={Button.Emphasis.LOW}\r\n onClick={() => dichiaraDaPresentare(datiDelega.IdDelega, datiDelega.Stato)}\r\n disabled={!isDichiaraDaPresentareAttivo || loading || appParamVisualizzazione || loadingTributiInseribili}\r\n >\r\n \r\n Riabilita la presentazione\r\n \r\n ),\r\n
    1760 ? '' : 'mt-16'}`}>\r\n \r\n
    ,\r\n ]\r\n )}\r\n {datiDelega.Stato === STATO_DELEGA.APERTA && tributiInseribili && (\r\n [\r\n 1420 ? '' : 'mb-16'}`}\r\n emphasis={Button.Emphasis.LOW}\r\n onClick={() => resetListaTributi()}\r\n >\r\n \r\n Torna al riepilogo\r\n ,\r\n ]\r\n )}\r\n {datiDelega.Stato === STATO_DELEGA.APERTA && !tributiInseribili && (\r\n [\r\n 1420 ? '' : 'mb-16'}`}\r\n emphasis={Button.Emphasis.LOW}\r\n primary\r\n onClick={() => dichiaraChiusa(datiDelega.IdDelega, datiDelega.Stato)}\r\n disabled={!isDichiaraCompletaAttivo || loading || appParamVisualizzazione || loadingTributiInseribili}\r\n >\r\n \r\n Segna come completa\r\n ,\r\n 1420 ? '' : 'mb-16'}`}\r\n emphasis={Button.Emphasis.LOW}\r\n onClick={() => aggiungiTributiInDelega(datiDelega.IdDelega)}\r\n disabled={loading || appParamVisualizzazione || loadingTributiInseribili}\r\n running={loadingTributiInseribili}\r\n >\r\n \r\n Aggiungi tributi\r\n ,\r\n // width > 1440 && width < 1566 && (
    ),\r\n // width > 1440 && width < 1566 && (
    ),\r\n 1440 && width < 1650 ? 'mt-16' : ''} ${width > 1650 ? '' : 'mt-16'}`}\r\n >\r\n \r\n
    ,\r\n 1420 ? '' : 'mb-16'} ${width > 1440 && width < 1650 ? 'mt-16' : ''} ${width > 1650 ? '' : 'mt-16'}`}\r\n // className={`${width > 1420 ? '' : 'mb-16'}`}\r\n right\r\n disabled={!isDichiaraApertaAttivo || loading || appParamVisualizzazione || loadingTributiInseribili}\r\n >\r\n \r\n Altre azioni\r\n \r\n = 1566}\r\n >\r\n stampaF24Provvisorio(datiDelega.IdDelega)}\r\n >\r\n \r\n Stampa bozza F24\r\n \r\n \r\n setConfirmEliminaDelega({ show: true, idDelega: datiDelega.IdDelega })}\r\n >\r\n \r\n Elimina\r\n \r\n \r\n ,\r\n ]\r\n )}\r\n {(datiDelega.Stato === STATO_DELEGA.DA_CONSEGNARE || datiDelega.Stato === STATO_DELEGA.PAGATA\r\n || datiDelega.Stato === STATO_DELEGA.CONSEGNATA || datiDelega.Stato === STATO_DELEGA.DA_INVIARE) && (\r\n [\r\n 1420 ? '' : 'mb-16'}`}\r\n emphasis={Button.Emphasis.LOW}\r\n onClick={() => dichiaraAperta(datiDelega.IdDelega)}\r\n disabled={!isDichiaraApertaAttivo || loading || appParamVisualizzazione || loadingTributiInseribili}\r\n >\r\n \r\n Sposta a "In lavorazione"\r\n ,\r\n ]\r\n )}\r\n {datiDelega.Stato === STATO_DELEGA.IN_PRESENTAZIONE && (\r\n [\r\n 1420 ? '' : 'mb-16'}`}\r\n emphasis={Button.Emphasis.LOW}\r\n onClick={() => setShowModaleDichiaraPagata(true)}\r\n disabled={!isDichiaraPagataAttivo || loading || appParamVisualizzazione || loadingTributiInseribili}\r\n primary\r\n >\r\n \r\n Segna come pagata\r\n ,\r\n 1420 ? '' : 'mb-16'}`}\r\n emphasis={Button.Emphasis.LOW}\r\n disabled={appParamVisualizzazione || datiDelega.Errata || loading || loadingTributiInseribili}\r\n onClick={() => (datiDelega.ModalitaPresentazione === MODALITA_PRESENTAZIONE.CARTACEA\r\n ? riscaricaUltimoF24(datiDelega.IdDelega)\r\n : stampaF24CopiaConforme(datiDelega.IdDelega))}\r\n >\r\n \r\n Stampa F24\r\n ,\r\n ,\r\n ]\r\n )}\r\n \r\n )}\r\n\r\n {datiDelega.Stato === STATO_DELEGA.APERTA && tributiInseribili && (\r\n \r\n \r\n Aggiungi nuovo tributo\r\n \r\n aperturaModaleCreazioneTributo(TIPOLOGIA_TRIBUTO.DEBITO)}\r\n running={creazioneTributoInCorso}\r\n disabled={appParamVisualizzazione}\r\n >\r\n Aggiungi nuovo debito\r\n \r\n aperturaModaleCreazioneTributo(TIPOLOGIA_TRIBUTO.CREDITO)}\r\n running={creazioneTributoInCorso}\r\n disabled={appParamVisualizzazione}\r\n >\r\n Aggiiungi nuovo credito\r\n \r\n \r\n \r\n )}\r\n
    \r\n\r\n {datiDelega.Stato === STATO_DELEGA.PAGATA && (\r\n \r\n 1420 ? '' : 'mb-16'}`}\r\n emphasis={Button.Emphasis.LOW}\r\n disabled={appParamVisualizzazione || datiDelega.Errata || loading || loadingTributiInseribili}\r\n onClick={() => (datiDelega.ModalitaPresentazione === MODALITA_PRESENTAZIONE.CARTACEA\r\n ? riscaricaUltimoF24(datiDelega.IdDelega)\r\n : stampaF24CopiaConforme(datiDelega.IdDelega))}\r\n >\r\n \r\n Stampa F24\r\n \r\n \r\n \r\n )}\r\n {!tributiInseribili ? (\r\n
    \r\n Riepilogo\r\n {/* {`Scadenza versamento: ${JustADate(datiDelega.ScadenzaVersamento)}`} */}\r\n \r\n {datiDelega.DescrizioneStato}\r\n \r\n
    \r\n }\r\n />\r\n
    \r\n 0 ? 'Saldo a credito' : 'Saldo a debito'}\r\n type=\"currencyLabelValueDetail\"\r\n value={(\r\n = 0 ? -Math.abs(totaleDelega) : Math.abs(totaleDelega)}\r\n />\r\n )}\r\n />\r\n \r\n {datiDelega.ModalitaPresentazione && (\r\n \r\n Il tuo cliente ha utilizzato la procedura di
    pagamento attraverso il QR code
    stampato nella delega F24
    )}\r\n right\r\n >\r\n {`${MODALITA_PRESENTAZIONE.toString(datiDelega.ModalitaPresentazione)} ${datiDelega.IsPagoF24QrCode ? 'QR' : ''}`}\r\n \r\n ) : `${MODALITA_PRESENTAZIONE.toString(datiDelega.ModalitaPresentazione)} ${datiDelega.IsPagoF24QrCode ? 'QR' : ''}`\r\n }\r\n />\r\n \r\n {datiDelega.DenominazioneIntermediario && (\r\n \r\n )}\r\n {datiDelega.ModalitaPresentazione === MODALITA_PRESENTAZIONE.INVIO_TELEMATICO_INTERMEDIARIO_ADELE && (\r\n \r\n \r\n \r\n Vai a Invio Telematico CGN\r\n \r\n \r\n )}\r\n {(datiDelega.ModalitaPresentazione === MODALITA_PRESENTAZIONE.PAGO_F24\r\n || datiDelega.ModalitaPresentazione === MODALITA_PRESENTAZIONE.CGN_POS) && (\r\n \r\n {datiDelega.StatoVersamentoPagoF24 !== STATO_INVIO_PAGOF24.VERSAMENTO_TRAMITE_CBI_AVVIATO && (\r\n \r\n )}\r\n {datiDelega.StatoVersamentoPagoF24 === STATO_INVIO_PAGOF24.VERSAMENTO_TRAMITE_CBI_AVVIATO && (\r\n \r\n \r\n setShowDettaglioCBI(true)}\r\n >\r\n Apri cronologia\r\n \r\n \r\n )}\r\n \r\n )}\r\n {datiDelega.ModalitaPresentazione === MODALITA_PRESENTAZIONE.INVIO_TELEMATICO_INTERMEDIARIO_CBI && (\r\n \r\n \r\n {/* TODO: Da sistemare questa gestione del link a ldettaglio di F24 CBI */}\r\n {/* \r\n Vai a F24 CBI\r\n */}\r\n \r\n \r\n setShowDettaglioCBI(true)}\r\n >\r\n Apri cronologia\r\n \r\n \r\n \r\n )}\r\n \r\n\r\n )}\r\n \r\n \r\n
    \r\n )}\r\n />\r\n
    \r\n ) : (\r\n
    \r\n {\r\n elementoTributiInseribili\r\n }\r\n
    \r\n )}\r\n
    \r\n )}\r\n {segnalazioni && segnalazioni.length > 0 && (\r\n 0}\r\n title={titoloFeedbackModal}\r\n onClose={() => setSegnalazioni([])}\r\n buttonLabel=\"ok\"\r\n type=\"alarm\"\r\n message={segnalazioni[0].msg}\r\n />\r\n )}\r\n \r\n setConfirmFunzionalitaMancante(false)}\r\n />\r\n }\r\n onClose={() => setShowConfirmSegnaDaNonPresentare({ show: false, callback: () => {} })}\r\n primaryLabel=\"Torna alla delega\"\r\n onPrimaryClick={() => setShowConfirmSegnaDaNonPresentare({ show: false, callback: () => {} })}\r\n secondaryLabel=\"Continua con la presentazione\"\r\n onSecondaryClick={() => {\r\n showConfirmSegnaDaNonPresentare.callBack();\r\n setShowConfirmSegnaDaNonPresentare({ show: false });\r\n }}\r\n title=\"Presentare una delega con compensazione verticale\"\r\n message={(\r\n
    \r\n
    \r\n Non essendo obbligatorio presentare all'Agenzia delle Entrate deleghe con compensazione\r\n
    \r\n verticale abbiamo aggiunto la funzionalità "Non presentare questa delega" per agevolare il\r\n
    tuo lavoro. La puoi trovare nel menu "Altre azioni" sulla riga della tabella.\r\n
    \r\n
    \r\n
    \r\n )}\r\n dontShowAgainMessage=\"Non mostrare più questo messaggio\"\r\n dontShowAgainId=\"possibilita-di-non-presentare-non-visualizza-piu\"\r\n />\r\n {\r\n setShowDettaglioCBI(false);\r\n }}\r\n show={showDettaglioCBI}\r\n title=\"Dettaglio pagamento\"\r\n iframeProps={{\r\n srcParams: datiPerFrameDettaglioCBI,\r\n }}\r\n defaultModalSize={{ width: 990, height: 500 }}\r\n fixedModalSize\r\n />\r\n
    \r\n );\r\n};\r\n\r\nRiepilogoDelega.defaultProps = {\r\n datiDelega: null,\r\n tributiInseribili: null,\r\n etichetteDelega: [],\r\n totaleDelega: 0,\r\n};\r\n\r\nRiepilogoDelega.propTypes = {\r\n datiDelega: PropTypes.shape({\r\n IdDelega: PropTypes.number,\r\n ScadenzaVersamento: PropTypes.string,\r\n Stato: PropTypes.number,\r\n UsaContoCoobbligato: PropTypes.bool,\r\n UsaContoIntermediario: PropTypes.bool,\r\n DescrizioneStato: PropTypes.string,\r\n DescrizioneTipoDelega: PropTypes.string,\r\n ModalitaPresentazione: PropTypes.number,\r\n IsPagoF24QrCode: PropTypes.bool,\r\n SoggettoVersante: PropTypes.number,\r\n DenominazioneIntermediario: PropTypes.string,\r\n StatoInvioTelematico: PropTypes.number,\r\n StatoInvioCbi: PropTypes.number,\r\n Errata: PropTypes.bool,\r\n IsDelegaConCompensazioneVerticale: PropTypes.bool,\r\n IsDelegaConCompensazioneOrizzontale: PropTypes.bool,\r\n IsDaNonPresentare: PropTypes.bool,\r\n StatoVersamentoPagoF24: PropTypes.number,\r\n ModalitaVersamentoPagoF24: PropTypes.string,\r\n InfoAggiuntiveStatoPagoF24: PropTypes.string,\r\n NumeroNote: PropTypes.number,\r\n TipoDelega: PropTypes.number,\r\n }),\r\n etichetteDelega: PropTypes.arrayOf(PropTypes.shape({})),\r\n loading: PropTypes.bool.isRequired,\r\n infoModalitaPresentazione: PropTypes.shape({\r\n IsCreaFileTelematicoContribuenteAttivo: PropTypes.bool,\r\n IsCreaFileTelematicoIntermediarioAttivo: PropTypes.bool,\r\n IsCreaStampaDaConsegnareAttivo: PropTypes.bool,\r\n IsInviaFileTelematicoContribuenteConCbiAttivo: PropTypes.bool,\r\n IsInviaFileTelematicoIntermediarioConAdeleAttivo: PropTypes.bool,\r\n IsInvioTramitePagoF24Attivo: PropTypes.bool,\r\n IsInvioCgnPosAttivo: PropTypes.bool,\r\n HaRichiestoAlmenoUnPos: PropTypes.bool,\r\n MotivoCreaFileTelematicoContribuenteNonAttivo: PropTypes.string,\r\n MotivoCreaFileTelematicoIntermediarioNonAttivo: PropTypes.string,\r\n MotivoCreaStampaDaConsegnareNonAttivo: PropTypes.string,\r\n MotivoInviaFileTelematicoContribuenteConCbiNonAttivo: PropTypes.string,\r\n MotivoInviaFileTelematicoIntermediarioConAdeleNonAttivo: PropTypes.string,\r\n MotivoInvioTramitePagoF24NonAttivo: PropTypes.string,\r\n MotivoInvioTramiteCgnPosNonAttivo: PropTypes.string,\r\n }).isRequired,\r\n isDichiaraApertaAttivo: PropTypes.bool.isRequired,\r\n isDichiaraPagataAttivo: PropTypes.bool.isRequired,\r\n isDichiaraCompletaAttivo: PropTypes.bool.isRequired,\r\n isDichiaraDaNonPresentareAttivo: PropTypes.bool.isRequired,\r\n isDichiaraDaPresentareAttivo: PropTypes.bool.isRequired,\r\n stampaCartacea: PropTypes.func.isRequired,\r\n apriWarningStampaCartacea: PropTypes.func.isRequired,\r\n dichiaraAperta: PropTypes.func.isRequired,\r\n dichiaraChiusa: PropTypes.func.isRequired,\r\n dichiaraDaNonPresentare: PropTypes.func.isRequired,\r\n dichiaraDaPresentare: PropTypes.func.isRequired,\r\n setShowModaleDichiaraPagata: PropTypes.func.isRequired,\r\n totaleDelega: PropTypes.number,\r\n setConfirmEliminaDelega: PropTypes.func.isRequired,\r\n setShowModalePresentazioneContribuente: PropTypes.func.isRequired,\r\n setShowModalePresentazioneIntermediario: PropTypes.func.isRequired,\r\n setShowModalePresentazioneInvioTelematico: PropTypes.func.isRequired,\r\n setShowModalePresentazioneCbi: PropTypes.func.isRequired,\r\n setDatiDelegaAggiornati: PropTypes.func.isRequired,\r\n tributiInseribili: PropTypes.arrayOf(PropTypes.shape({})),\r\n setTributiInseribili: PropTypes.func.isRequired,\r\n ottieniSezioneSpecificaById: PropTypes.func.isRequired,\r\n setShowModalePresentazionePagoF24: PropTypes.func.isRequired,\r\n setWindowHeight: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default RiepilogoDelega;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\n\r\n/**\r\n * Componente che appone un badge ad una icona.\r\n*/\r\nconst IconBadge = ({\r\n className, children, alarm, info, warning, positive, safe,\r\n}) => (\r\n
    \r\n
    \r\n {children}\r\n
    \r\n);\r\n\r\nIconBadge.propTypes = {\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n /** Contenuto da renderizzare all'interno del componente. Deve essere un'icona */\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node,\r\n ]).isRequired,\r\n /** Assegna lo stile testuale al badge */\r\n alarm: PropTypes.bool,\r\n /** Assegna lo stile info al badge */\r\n info: PropTypes.bool,\r\n /** Assegna lo stile positive al badge */\r\n positive: PropTypes.bool,\r\n /** Assegna lo stile safe al badge */\r\n safe: PropTypes.bool,\r\n /** Assegna lo stile warning al badge */\r\n warning: PropTypes.bool,\r\n};\r\n\r\nIconBadge.defaultProps = {\r\n className: undefined,\r\n alarm: false,\r\n info: false,\r\n positive: false,\r\n warning: false,\r\n safe: false,\r\n};\r\n\r\nexport default IconBadge;\r\n","/* eslint-disable max-len */\r\nimport React from 'react';\r\nimport Icon from '../../Icons/Icon';\r\n\r\nexport default Icon(\r\n \r\n \r\n \r\n ,\r\n '0 0 24 24',\r\n 'EditIcon',\r\n);\r\n","/* eslint-disable no-param-reassign */\r\nimport { createContext } from 'react';\r\nimport { NOOP } from '../../../utils/const';\r\n\r\nexport const Selection = {\r\n DESELECTED: 'DESELECTED',\r\n SELECTED_ALL: 'SELECTED_ALL',\r\n SELECTED_ALL_IN_PAGE: 'SELECTED_ALL_IN_PAGE',\r\n SELECTED_NONE: 'SELECTED_NONE',\r\n SELECTED_NONE_IN_PAGE: 'SELECTED_NONE_IN_PAGE',\r\n SELECTED: 'SELECTED',\r\n};\r\n\r\nconst NONE_CONTEXT = {\r\n onSelectedAll: NOOP,\r\n onSelectedAllInPage: NOOP,\r\n onSelectedNone: NOOP,\r\n onSelectedNoneInPage: NOOP,\r\n onSelected: NOOP,\r\n onDeselected: NOOP,\r\n subscribe: NOOP,\r\n unsubscribe: NOOP,\r\n selectionSubscribe: NOOP,\r\n selectionUnsubscribe: NOOP,\r\n getSelection: () => ({ rows: [], lastSelection: undefined }),\r\n isSelectedDefault: () => false,\r\n isSelectedAll: () => false,\r\n};\r\n\r\nexport function buildContext(selectable, onSelectionChange, initialSelection = []) {\r\n if (!selectable) return NONE_CONTEXT;\r\n return {\r\n selectable,\r\n lastSelection: Array.isArray(initialSelection) ? undefined : initialSelection.lastSelection,\r\n rows: [],\r\n header: [],\r\n\r\n isSame(listener, id, object) {\r\n if (id) {\r\n return listener.id === id;\r\n }\r\n return listener.object === object;\r\n },\r\n\r\n changeListenerState(listener, state) {\r\n if (listener) {\r\n listener.selected = state;\r\n listener.callback(listener.selected);\r\n }\r\n },\r\n\r\n nofitySelectionChange() {\r\n const { rows: selectedRows, lastSelection } = this.getSelection();\r\n onSelectionChange(selectedRows, lastSelection);\r\n },\r\n\r\n nofityHeaderChange() {\r\n this.header && this.header.forEach((c) => c(this.getSelection()));\r\n },\r\n\r\n selectAll(state, type) {\r\n this.lastSelection = { type };\r\n this.rows.forEach((l) => !l.disabled && this.changeListenerState(l, state));\r\n this.nofityHeaderChange();\r\n },\r\n\r\n getSelection() {\r\n return {\r\n rows: this.rows\r\n .filter((r) => r.selected)\r\n .map((r) => ({ id: r.id, object: r.object })),\r\n lastSelection: this.lastSelection,\r\n totalRowsOfPage: this.rows.length,\r\n };\r\n },\r\n\r\n onSelectedAll() {\r\n this.selectAll(true, Selection.SELECTED_ALL);\r\n this.nofitySelectionChange();\r\n },\r\n\r\n onSelectedAllInPage() {\r\n this.selectAll(true, Selection.SELECTED_ALL_IN_PAGE);\r\n this.nofitySelectionChange();\r\n },\r\n\r\n onSelectedNone() {\r\n this.selectAll(false, Selection.SELECTED_NONE);\r\n this.nofitySelectionChange();\r\n },\r\n\r\n onSelectedNoneInPage() {\r\n this.selectAll(false, Selection.SELECTED_NONE_IN_PAGE);\r\n this.nofitySelectionChange();\r\n },\r\n\r\n onSelected(id, object) {\r\n this.lastSelection = { type: Selection.SELECTED, id, object };\r\n const listener = this.rows.find((l) => this.isSame(l, id, object));\r\n if (listener.disabled) return;\r\n this.changeListenerState(listener, true);\r\n this.nofityHeaderChange();\r\n this.nofitySelectionChange();\r\n },\r\n\r\n onDeselected(id, object) {\r\n this.lastSelection = { type: Selection.DESELECTED, id, object };\r\n const listener = this.rows.find((l) => this.isSame(l, id, object));\r\n this.changeListenerState(listener, false);\r\n this.nofityHeaderChange();\r\n this.nofitySelectionChange();\r\n },\r\n\r\n unsubscribe(id, object) {\r\n const listener = this.rows.find((l) => this.isSame(l, id, object));\r\n if (listener) {\r\n this.rows = this.rows.filter((l) => l.id !== id || l.object !== object);\r\n }\r\n },\r\n\r\n subscribe(id, object, callback, disabled) {\r\n const isSelectedDefault = this.isSelectedDefault(id, object);\r\n const selected = this.isSelectedAll() || isSelectedDefault;\r\n this.rows.push({\r\n id, object, callback, selected, disabled,\r\n });\r\n callback(selected);\r\n this.nofityHeaderChange();\r\n },\r\n\r\n selectionUnsubscribe(callback) {\r\n this.header = this.header.filter((c) => c !== callback);\r\n },\r\n\r\n selectionSubscribe(callback) {\r\n this.header.push(callback);\r\n },\r\n\r\n isSelectedDefault(id, object) {\r\n const rows = Array.isArray(initialSelection) ? initialSelection : (initialSelection.rows || []);\r\n return !!rows.find((l) => this.isSame(l, id, object));\r\n },\r\n\r\n isSelectedAll() {\r\n return this.lastSelection && this.lastSelection.type === Selection.SELECTED_ALL;\r\n },\r\n };\r\n}\r\n\r\nconst SelectionContext = createContext(NONE_CONTEXT);\r\nexport default SelectionContext;\r\n","function compareSubscribers(s1, s2) {\r\n return s1 === s2;\r\n}\r\n\r\nfunction forwardToCallback(...message) {\r\n return (s) => s(...message);\r\n}\r\n\r\nfunction createPublisher(compare = compareSubscribers, forwarder = forwardToCallback) {\r\n return {\r\n subscribers: [],\r\n compare,\r\n forwarder,\r\n\r\n subscribe(subscriber) {\r\n if (this.subscribers.find(this.compare) === undefined) {\r\n this.subscribers.push(subscriber);\r\n }\r\n },\r\n\r\n unsubscribe(subscriber) {\r\n this.subscribers = this.subscribers.filter((s) => !this.compare(s, subscriber));\r\n },\r\n\r\n notify(...message) {\r\n this.subscribers.forEach(forwarder(...message));\r\n },\r\n };\r\n}\r\n\r\nexport default createPublisher;\r\n","/* eslint-disable no-param-reassign */\r\nimport { createContext, useContext } from 'react';\r\nimport { NOOP } from '../../../utils/const';\r\nimport createPublisher from '../../../utils/publisher';\r\n\r\nconst NONE_CONTEXT = {\r\n subscribe: NOOP,\r\n unsubscribe: NOOP,\r\n collapseAll: NOOP,\r\n};\r\n\r\nexport function buildContext() {\r\n return {\r\n publisher: createPublisher(),\r\n\r\n unsubscribe(listener) {\r\n this.publisher.unsubscribe(listener);\r\n },\r\n\r\n subscribe(listener) {\r\n this.publisher.subscribe(listener);\r\n },\r\n\r\n collapseAll(id) {\r\n this.publisher.notify(id);\r\n },\r\n };\r\n}\r\n\r\nconst ExpandedContext = createContext(NONE_CONTEXT);\r\n\r\nexport function useExpandedContext() {\r\n return useContext(ExpandedContext);\r\n}\r\n\r\nexport default ExpandedContext;\r\n","/* eslint-disable react/no-unused-prop-types */\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\n/**\r\nGruppo di colonne.\r\n\r\nIl componente è utilizzato solo come aggregatore di informazioni e quindi non verrà renderizzato.\r\n */\r\nconst ColumnGroup = () => ColumnGroup;\r\n\r\nColumnGroup.propTypes = {\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n\r\n /** Titolo del gruppo */\r\n title: PropTypes.string.isRequired,\r\n};\r\n\r\nColumnGroup.defaultProps = {\r\n className: undefined,\r\n};\r\n\r\nexport default ColumnGroup;\r\n","/* eslint-disable react/no-unused-prop-types */\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { NOOP } from '../../../../utils/const';\r\n\r\n/**\r\nColonna di una della tabella.\r\n\r\nIl componente è utilizzato solo come aggregatore di informazioni e quindi non verrà renderizzato.\r\n */\r\nexport default function Column() {\r\n return Column;\r\n}\r\n\r\n// Mantenere allineate le prop di ODataTable.Column\r\nColumn.propTypes = {\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n\r\n /** Larghezza della colonna */\r\n width: PropTypes.string,\r\n\r\n /** Larghezza minima della colonna */\r\n minWidth: PropTypes.string,\r\n\r\n /** Larghezza massima della colonna */\r\n maxWidth: PropTypes.string,\r\n\r\n /** Larghezza fissa della colonna (equivale a usare fixedWidth per width, minWidth e maxWidth) */\r\n fixedWidth: PropTypes.string,\r\n\r\n /** Identificativo della colonna */\r\n id: PropTypes.string,\r\n\r\n /** Titolo della colonna */\r\n title: PropTypes.string,\r\n\r\n /** Definisce se la colonna è ordinabile */\r\n sortable: PropTypes.bool,\r\n\r\n /**\r\n * Allineamento del testo dell'header.\r\n */\r\n align: PropTypes.oneOf(['left', 'right', 'center']),\r\n\r\n /** Definisce l'ordine con cui è ordinata la colonna */\r\n order: PropTypes.oneOf(['asc', 'desc']),\r\n\r\n /** Callback attivata al cambio dell'ordinamento. Ritorna come primo l'attuale ordinamento, come secondo l'id */\r\n onSort: PropTypes.func,\r\n};\r\n\r\nColumn.defaultProps = {\r\n id: undefined,\r\n className: undefined,\r\n width: undefined,\r\n minWidth: undefined,\r\n maxWidth: undefined,\r\n fixedWidth: undefined,\r\n sortable: false,\r\n align: 'left',\r\n order: undefined,\r\n title: undefined,\r\n onSort: NOOP,\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\n\r\nexport const Empty = ({ fixedWidth }) => (\r\n \r\n);\r\n\r\nEmpty.propTypes = {\r\n fixedWidth: PropTypes.string,\r\n};\r\n\r\nEmpty.defaultProps = {\r\n fixedWidth: undefined,\r\n};\r\n\r\n/**\r\nColumn group dell'header di una tabella.\r\n */\r\nconst HeaderColumnGroup = ({ numberOfChildren, title, className }) => (\r\n {title}\r\n);\r\n\r\nHeaderColumnGroup.propTypes = {\r\n title: PropTypes.string.isRequired,\r\n numberOfChildren: PropTypes.number.isRequired,\r\n className: PropTypes.string,\r\n};\r\n\r\nHeaderColumnGroup.defaultProps = {\r\n className: undefined,\r\n};\r\n\r\nexport default HeaderColumnGroup;\r\n","/* eslint-disable max-len */\r\nimport React from 'react';\r\nimport Icon from './Icon';\r\n\r\nexport default Icon(\r\n \r\n \r\n \r\n \r\n \r\n ,\r\n '0 0 8 8',\r\n 'ArraowUp',\r\n);\r\n","/* eslint-disable max-len */\r\nimport React from 'react';\r\nimport Icon from './Icon';\r\n\r\nexport default Icon(\r\n \r\n \r\n \r\n \r\n ,\r\n '0 0 8 8',\r\n 'ArraowDown',\r\n);\r\n\r\n/*\r\n\r\n \r\n \r\n \r\n\r\n*/\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\nimport { NOOP } from '../../../../utils/const';\r\nimport ArrowUp from '../../../Icons/ArrowUp';\r\nimport ArrowDown from '../../../Icons/ArrowDown';\r\nimport useDebouncedFunc from '../../../Hooks/useDebouncedFunc';\r\n\r\nconst ColumnSortIcon = ({ order }) => {\r\n const cName = cns('v2-table__column-sort-icon', {\r\n 'v2-table__column-sort-icon--asc': order === 'asc',\r\n 'v2-table__column-sort-icon--desc': order === 'desc',\r\n });\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nColumnSortIcon.propTypes = {\r\n /** Flag che indica se la colonna è ordinabile */\r\n order: PropTypes.oneOf(['asc', 'desc']),\r\n};\r\n\r\nColumnSortIcon.defaultProps = {\r\n order: undefined,\r\n};\r\n\r\n/**\r\nColumn dell'header di una tabella.\r\n */\r\nconst HeaderColumn = ({\r\n id, title, className, width, minWidth, maxWidth, fixedWidth, sortable, order, onSort, align,\r\n}) => {\r\n const cName = cns('v2-table__column', {\r\n 'v2-table__column--sortable': sortable,\r\n }, `v2-table__column--align-${align}`, className);\r\n\r\n const changeOrder = useDebouncedFunc(() => {\r\n if (!order) onSort('asc', id);\r\n else if (order === 'asc') onSort('desc', id);\r\n else if (order === 'desc') onSort('asc', id);\r\n }, 300, [id, onSort, order]);\r\n\r\n return (\r\n \r\n
    \r\n {title}\r\n {title && sortable && }\r\n
    \r\n \r\n );\r\n};\r\n\r\nHeaderColumn.propTypes = {\r\n className: PropTypes.string,\r\n\r\n /** Larghezza della colonna */\r\n width: PropTypes.string,\r\n\r\n /** Larghezza minima della colonna */\r\n minWidth: PropTypes.string,\r\n\r\n /** Larghezza massima della colonna */\r\n maxWidth: PropTypes.string,\r\n\r\n /** Larghezza fissa della colonna (equivale a usare fixedWidth per width, minWidth e maxWidth) */\r\n fixedWidth: PropTypes.string,\r\n\r\n /** Identificativo della colonna */\r\n id: PropTypes.string,\r\n\r\n title: PropTypes.string,\r\n\r\n /**\r\n * Allineamento del testo dell'header.\r\n */\r\n align: PropTypes.oneOf(['left', 'right', 'center']),\r\n\r\n /** Flag che indica se la colonna è ordinabile */\r\n sortable: PropTypes.bool,\r\n\r\n /** Flag che indica se la colonna è ordinabile */\r\n order: PropTypes.oneOf(['asc', 'desc']),\r\n\r\n /** Flag che indica se la colonna è ordinabile */\r\n onSort: PropTypes.func,\r\n};\r\n\r\nHeaderColumn.defaultProps = {\r\n id: undefined,\r\n className: undefined,\r\n title: undefined,\r\n width: undefined,\r\n minWidth: undefined,\r\n maxWidth: undefined,\r\n fixedWidth: undefined,\r\n sortable: false,\r\n align: 'left',\r\n order: undefined,\r\n onSort: NOOP,\r\n};\r\n\r\nexport default HeaderColumn;\r\n","import { useContext } from 'react';\r\nimport SelectionContext from './SelectionContext';\r\n\r\nexport default function useSelectionContext() {\r\n return useContext(SelectionContext);\r\n}\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\nimport { NOOP } from '../../../../utils/const';\r\nimport Checkbox from '../../../Checkbox/Checkbox';\r\n\r\n/**\r\nCheckbox column dell'header di una tabella.\r\n */\r\nexport default function CheckboxHeaderColumn({ selection, onClick }) {\r\n const cName = cns('v2-table__column', 'v2-table__column__checkbox');\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nCheckboxHeaderColumn.propTypes = {\r\n /** Indica se la checkbox è checked */\r\n selection: PropTypes.oneOf(['ALL', 'NONE', 'SOME']),\r\n\r\n /**\r\nCallback invocata al click sul componente:\r\n\r\ndove:\r\n\r\n- `evento`: evento scatenante\r\n */\r\n onClick: PropTypes.func,\r\n};\r\n\r\nCheckboxHeaderColumn.defaultProps = {\r\n selection: 'NONE',\r\n onClick: NOOP,\r\n};\r\n","import React, { useCallback, useEffect, useState } from 'react';\r\nimport CheckboxHeaderColumn from './CheckboxHeaderColumn';\r\nimport useSelectionContext from '../useSelectionContext';\r\n\r\nfunction useSelection() {\r\n const [selection, setSelection] = useState('NONE');\r\n const context = useSelectionContext();\r\n\r\n const handleSelection = useCallback(() => {\r\n if (selection === 'NONE') {\r\n context.onSelectedAllInPage();\r\n } else {\r\n context.onSelectedNoneInPage();\r\n }\r\n }, [context, selection]);\r\n\r\n useEffect(() => {\r\n const callback = ({ rows, totalRowsOfPage }) => {\r\n if (rows.length === totalRowsOfPage) {\r\n setSelection('ALL');\r\n } else if (rows.length === 0) {\r\n setSelection('NONE');\r\n } else {\r\n setSelection('SOME');\r\n }\r\n };\r\n context.selectionSubscribe(callback);\r\n return () => context.selectionUnsubscribe(callback);\r\n }, [context]);\r\n\r\n return { selection, handleSelection };\r\n}\r\n/**\r\nSelection column dell'header di una tabella.\r\n */\r\nconst SelectionHeaderColumn = () => {\r\n const { selection, handleSelection } = useSelection();\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default SelectionHeaderColumn;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n/**\r\nPlaceholder di una colonna per occupare lo spazio corretto.\r\n */\r\nexport default function HeaderPlaceholderColumn({\r\n width, minWidth, maxWidth, fixedWidth,\r\n}) {\r\n return (\r\n // eslint-disable-next-line jsx-a11y/control-has-associated-label\r\n \r\n );\r\n}\r\n\r\nHeaderPlaceholderColumn.propTypes = {\r\n /** Larghezza della colonna */\r\n width: PropTypes.string,\r\n\r\n /** Larghezza minima della colonna */\r\n minWidth: PropTypes.string,\r\n\r\n /** Larghezza massima della colonna */\r\n maxWidth: PropTypes.string,\r\n\r\n /** Larghezza fissa della colonna (equivale a usare fixedWidth per width, minWidth e maxWidth) */\r\n fixedWidth: PropTypes.string,\r\n};\r\n\r\nHeaderPlaceholderColumn.defaultProps = {\r\n width: undefined,\r\n minWidth: undefined,\r\n maxWidth: undefined,\r\n fixedWidth: undefined,\r\n};\r\n","import React, { Children, useMemo } from 'react';\r\nimport ColumnGroup from './ColumnGroup';\r\nimport Column from './Column';\r\nimport Log from '../../../../utils/log';\r\nimport HeaderColumnGroup, { Empty as EmptyColumnGroup } from './HeaderColumnGroup';\r\nimport HeaderColumn from './HeaderColumn';\r\nimport useSelectionContext from '../useSelectionContext';\r\nimport SelectionHeaderColumn from './SelectionHeaderColumn';\r\nimport { getRandomId } from '../../../Utils/baseComponentHelper';\r\nimport { sameType } from '../../../../utils/react';\r\nimport HeaderPlaceholderColumn from './HeaderPlaceholderColumn';\r\n\r\nfunction createColumn(column, key) {\r\n const {\r\n id, title, className, sortable, property, width, maxWidth, minWidth, fixedWidth,\r\n order, onSort, align,\r\n } = column;\r\n return (\r\n \r\n );\r\n}\r\nfunction createPlaceholderColumn(column, key) {\r\n const {\r\n width, maxWidth, minWidth, fixedWidth,\r\n } = column;\r\n return (\r\n \r\n );\r\n}\r\n\r\n/**\r\n * Hook che restituisce i dati necessari per la generazione dell'header di una tabella.\r\n * @param {PropTypes.node[] | PropTypes.node} children\r\n */\r\nexport default function useTableColumns(children) {\r\n const context = useSelectionContext();\r\n\r\n return useMemo(() => {\r\n const placeholderColumns = [];\r\n const groups = [];\r\n const columns = [];\r\n let hasGroups = false;\r\n\r\n if (context.selectable) {\r\n groups.push(); // da mantenere allineato con la stessa width della checkbox\r\n columns.push();\r\n placeholderColumns.push(createPlaceholderColumn({ fixedWidth: '28px' }, 'Selection'));\r\n }\r\n\r\n Children.forEach(children, (child) => {\r\n if (sameType(child, ColumnGroup)) {\r\n const {\r\n children: groupChildren, id, title, className,\r\n } = child.props;\r\n const key = id || title || getRandomId();\r\n hasGroups = true;\r\n groups.push();\r\n Children.forEach(groupChildren, (c) => {\r\n const ckey = c.props.id || c.props.title || getRandomId();\r\n placeholderColumns.push(createPlaceholderColumn(c.props, ckey));\r\n columns.push(createColumn(c.props, ckey));\r\n });\r\n } else if (sameType(child, Column)) {\r\n const { id, title } = child.props;\r\n const key = id || title || getRandomId();\r\n placeholderColumns.push(createPlaceholderColumn(child.props, key));\r\n groups.push();\r\n columns.push(createColumn(child.props, key));\r\n } else {\r\n Log.warn('Table column is not one of Table.Column or Table.ColumnGroup');\r\n Log.warn(new Error().stack);\r\n }\r\n });\r\n\r\n return { groups: hasGroups ? groups : undefined, columns, placeholderColumns };\r\n }, [children, context]);\r\n}\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\nimport useTableColumns from './useTableColumns';\r\n\r\n/**\r\nHeader della tabella.\r\n */\r\nexport default function Head({ children, className }) {\r\n const { groups, columns, placeholderColumns } = useTableColumns(children);\r\n const cName = cns('v2-table__head', className);\r\n\r\n return (\r\n \r\n {groups && (\r\n \r\n {placeholderColumns}\r\n \r\n )}\r\n {groups && (\r\n \r\n {groups}\r\n \r\n )}\r\n \r\n {columns}\r\n \r\n \r\n );\r\n}\r\n\r\nHead.propTypes = {\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n\r\n /** Children del componente. Deve essere un nodo di tipo `Table.Column` o `Table.ColumnGroup`. */\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node,\r\n ]).isRequired,\r\n};\r\n\r\nHead.defaultProps = {\r\n className: undefined,\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\n\r\n/**\r\nBody della tabella.\r\n */\r\nexport default function Body({ children, className }) {\r\n const cName = cns('v2-table__body', className);\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n}\r\n\r\nBody.propTypes = {\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n\r\n /** Children del componente. */\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node,\r\n ]),\r\n};\r\n\r\nBody.defaultProps = {\r\n className: undefined,\r\n children: undefined,\r\n};\r\n","import React, { useCallback } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\nimport { NOOP, STOP_EVENT_PROPAGATION } from '../../../../utils/const';\r\nimport Checkbox from '../../../Checkbox/Checkbox';\r\nimport Tooltip from '../../../Tooltip/Tooltip';\r\n\r\n/**\r\nCheckbox column dell'header di una tabella.\r\n */\r\nexport default function CheckboxCell({\r\n checked, disabled, disabledTooltip, onClick,\r\n}) {\r\n const cName = cns('v2-table__cell', 'v2-table__cell__checkbox');\r\n\r\n const handleClick = useCallback((evt) => {\r\n evt.stopPropagation();\r\n onClick(evt);\r\n }, [onClick]);\r\n\r\n if (disabled && disabledTooltip) {\r\n return (\r\n // eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-noninteractive-element-interactions\r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n return (\r\n // eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-noninteractive-element-interactions\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nCheckboxCell.propTypes = {\r\n /** Indica se la checkbox è checked */\r\n checked: PropTypes.bool,\r\n\r\n /**\r\nCallback invocata al click sul componente:\r\n\r\ndove:\r\n\r\n- `evento`: evento scatenante\r\n */\r\n onClick: PropTypes.func,\r\n\r\n /**\r\nLa checkbox è disabilitata e non può essere selezionata.\r\n */\r\n disabled: PropTypes.bool,\r\n\r\n /**\r\nContenuto della tooltip mostrata nel caso in cui la checkbox sia disabled.\r\n */\r\n disabledTooltip: PropTypes.string,\r\n};\r\n\r\nCheckboxCell.defaultProps = {\r\n checked: false,\r\n onClick: NOOP,\r\n disabled: false,\r\n disabledTooltip: undefined,\r\n};\r\n","/* eslint-disable no-param-reassign */\r\nimport { createContext } from 'react';\r\nimport { NOOP } from '../../../../utils/const';\r\n\r\nconst NONE_CONTEXT = {\r\n expanded: false,\r\n setExpanded: NOOP,\r\n};\r\n\r\nconst TableRowContext = createContext(NONE_CONTEXT);\r\nexport default TableRowContext;\r\n","/* eslint-disable react/forbid-prop-types */\r\nimport React, {\r\n useCallback, useEffect, useState, useMemo,\r\n} from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\nimport { NOOP } from '../../../../utils/const';\r\nimport useSelectionContext from '../useSelectionContext';\r\nimport CheckboxCell from './CheckboxCell';\r\nimport TableRowContext from './TableRowContext';\r\nimport { useExpandedContext } from '../ExpandedContext';\r\n\r\nfunction useRowSelection(id, object, disabled) {\r\n const context = useSelectionContext();\r\n const [selected, setSelected] = useState(context.isSelectedDefault(id, object));\r\n\r\n const handleSelection = useCallback((event) => {\r\n if (event.target.checked) {\r\n context.onSelected(id, object);\r\n } else {\r\n context.onDeselected(id, object);\r\n }\r\n }, [context, id, object]);\r\n\r\n useEffect(() => {\r\n context.subscribe(id, object, (sel) => setSelected(sel), disabled);\r\n return () => context.unsubscribe(id, object);\r\n }, [context, id, object, disabled]);\r\n\r\n return { selectable: context.selectable, selected, handleSelection };\r\n}\r\n\r\n/**\r\nRiga del body della tabella.\r\n */\r\nconst Row = ({\r\n children, className, onClick, id, object, renderExpanded, height, disabled, selectionDisabled, disabledTooltip,\r\n}) => {\r\n const [expanded, setExpandedState] = useState(false);\r\n const expandedContext = useExpandedContext();\r\n useEffect(() => {\r\n const callback = () => setExpandedState(false);\r\n expandedContext.subscribe(callback);\r\n return () => expandedContext.unsubscribe(callback);\r\n }, [expandedContext]);\r\n const setExpanded = useCallback((state) => {\r\n if (state) expandedContext.collapseAll();\r\n setExpandedState(state);\r\n }, [expandedContext]);\r\n\r\n const checkboxDisabled = disabled || selectionDisabled;\r\n const { selectable, selected, handleSelection } = useRowSelection(id, object, checkboxDisabled);\r\n\r\n const handleClick = disabled ? NOOP : onClick;\r\n\r\n const cName = cns('v2-table__row', `v2-table__row--${height}`, {\r\n 'v2-table__row--clickable': handleClick !== NOOP,\r\n 'v2-table__row--selected': selected,\r\n 'v2-table__row--expanded': expanded,\r\n 'v2-table__row--disabled': disabled,\r\n }, className);\r\n\r\n const checkboxCell = selectable\r\n && ;\r\n\r\n const context = useMemo(() => ({ expanded, setExpanded }), [expanded, setExpanded]);\r\n\r\n if (renderExpanded) {\r\n return (\r\n \r\n {\r\n expanded ? (\r\n \r\n {checkboxCell}\r\n {renderExpanded()}\r\n \r\n )\r\n : (\r\n \r\n {checkboxCell}\r\n {children}\r\n \r\n )\r\n }\r\n \r\n );\r\n }\r\n return (\r\n \r\n {checkboxCell}\r\n {children}\r\n \r\n );\r\n};\r\n\r\nRow.propTypes = {\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n\r\n /** Children del componente. */\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node,\r\n ]).isRequired,\r\n\r\n /** callback richiamata al click */\r\n onClick: PropTypes.func,\r\n\r\n /** oggetto associato alla riga (usato ad esempio nella selezione) */\r\n object: PropTypes.any,\r\n\r\n /** chiave che identifica la riga */\r\n id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\r\n\r\n /**\r\nFunzione che restituisce la riga se la riga è espansa.\r\n */\r\n renderExpanded: PropTypes.func,\r\n\r\n /**\r\nCambia l'altezza della riga (tipicamente per contenere bottoni con enfasi media).\r\n */\r\n height: PropTypes.oneOf(['medium', 'high']),\r\n\r\n /**\r\nLa riga è disabilitata e non può essere selezionata.\r\n */\r\n disabled: PropTypes.bool,\r\n\r\n /**\r\nLa selezione della riga è disabilitata.\r\n */\r\n selectionDisabled: PropTypes.bool,\r\n\r\n /**\r\nContenuto della tooltip mostrata nel caso in cui la checkbox sia disabled.\r\n */\r\n disabledTooltip: PropTypes.string,\r\n};\r\n\r\nRow.defaultProps = {\r\n className: undefined,\r\n onClick: NOOP,\r\n object: undefined,\r\n id: undefined,\r\n renderExpanded: undefined,\r\n height: 'medium',\r\n disabled: false,\r\n selectionDisabled: false,\r\n disabledTooltip: undefined,\r\n};\r\n\r\nexport default Row;\r\n","import React, { useMemo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\nimport { alignment, formatValueCurrency } from '../../../Utils/numeriHelper';\r\nimport formattedDate from '../../../Formatter/formatter-date';\r\n\r\n/**\r\nCella di una riga della tabella.\r\n */\r\nexport default function Cell({\r\n value, children, className, style,\r\n align, format, precision, colSpan, rowSpan, onClick, hoverVisibility,\r\n}) {\r\n const text = useMemo(\r\n () => {\r\n if (format === 'date') {\r\n return formattedDate(value, format);\r\n }\r\n return formatValueCurrency(value, format, precision);\r\n },\r\n [format, precision, value],\r\n );\r\n const cName = cns(\r\n 'v2-table__cell',\r\n `v2-table__cell--align-${alignment(format, align)}`,\r\n `v2-table__cell--${hoverVisibility}`,\r\n className,\r\n );\r\n return (\r\n // eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-noninteractive-element-interactions\r\n \r\n {children || {text}}\r\n \r\n );\r\n}\r\n\r\nCell.propTypes = {\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n /** Stile del componente */\r\n // eslint-disable-next-line react/forbid-prop-types\r\n style: PropTypes.object,\r\n\r\n /** Children del componente. Deve essere un nodo di tipo `Table.Column` o `Table.ColumnGroup`. */\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node,\r\n ]),\r\n\r\n /** Valore della cella */\r\n value: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\r\n\r\n /** Indica come formattare il campo (number, currency) */\r\n format: PropTypes.oneOf(['currency', 'number', 'date']),\r\n /**\r\n * Allineamento del testo.\r\n *\r\n * Tutti i numerici devono essere allineati a destra.\r\n */\r\n align: PropTypes.oneOf(['left', 'right', 'center']),\r\n\r\n /** Precisione numerica */\r\n precision: PropTypes.number,\r\n\r\n /** Defines the number of columns a cell should span */\r\n colSpan: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\r\n\r\n /** Defines the number of rows a cell should span */\r\n rowSpan: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\r\n\r\n /**\r\nCallback evento click.\r\n\r\nIn alcuni casi è necessario bloccare la propagazione dell'evento di click verso i componenti di livello più alto (vedi Row).\r\nEsempio:\r\n```js\r\nimport {STOP_EVENT_PROPAGATION} from 'framework-ui-components/util/const';\r\n...\r\nonClick={STOP_EVENT_PROPAGATION}\r\n```\r\n*/\r\n onClick: PropTypes.func,\r\n\r\n /**\r\n * Indica se la cella deve essere visualizzata solamente in modalità hover o in modalità no-hover\r\n */\r\n hoverVisibility: PropTypes.oneOf(['always', 'hover', 'no-hover']),\r\n};\r\n\r\nCell.defaultProps = {\r\n style: undefined,\r\n className: undefined,\r\n value: undefined,\r\n children: undefined,\r\n format: undefined,\r\n align: undefined,\r\n precision: undefined,\r\n colSpan: undefined,\r\n rowSpan: undefined,\r\n onClick: undefined,\r\n hoverVisibility: 'always',\r\n};\r\n","/* eslint-disable max-len */\r\nimport React from 'react';\r\nimport Icon from './Icon';\r\n\r\nexport default Icon(\r\n \r\n \r\n \r\n \r\n \r\n ,\r\n '0 0 16 16', 'BadgeAlarmIcon',\r\n);\r\n","import React from 'react';\r\nimport Icon from './Icon';\r\n\r\nexport default Icon(\r\n \r\n \r\n \r\n \r\n \r\n ,\r\n '0 0 16 16',\r\n 'BadgeWarningIcon',\r\n);\r\n","import React from 'react';\r\nimport Icon from './Icon';\r\n\r\nexport default Icon(\r\n \r\n \r\n \r\n \r\n \r\n ,\r\n '0 0 16 16',\r\n 'BadgeSuccessIcon',\r\n);\r\n","import React from 'react';\r\nimport Icon from './Icon';\r\n\r\nexport default Icon(\r\n \r\n \r\n \r\n \r\n \r\n ,\r\n '0 0 16 16', 'BadgeInfoIcon',\r\n);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\nimport BadgeAlarmIcon from '../../Icons/BadgeAlarmIcon';\r\nimport BadgeWarningIcon from '../../Icons/BadgeWarningIcon';\r\nimport BadgeSuccessIcon from '../../Icons/BadgeSuccessIcon';\r\nimport BadgeInfoIcon from '../../Icons/BadgeInfoIcon';\r\n\r\n/**\r\nVeicola un messaggio di potenziale interesse per l'utente.\r\n\r\nVedi [Design System di CGN - Panel](https://zeroheight.com/1b5e94371/p/3507d4-panel/b/47e92f)\r\n*/\r\nconst MiniPanel = ({\r\n className, type, position, message,\r\n}) => (\r\n
    \r\n {type === 'info' && }\r\n {type === 'success' && }\r\n {type === 'warning' && }\r\n {type === 'alarm' && }\r\n \r\n

    {message}

    \r\n
    \r\n);\r\n\r\nMiniPanel.propTypes = {\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n /** Messaggio da visualizzare */\r\n message: PropTypes.oneOfType([PropTypes.string, PropTypes.node]).isRequired,\r\n /** Indica la tipologia del tooltip */\r\n type: PropTypes.oneOf(['info', 'alarm', 'warning', 'success']),\r\n /** Indica la posizione del messaggio rispetto all'icona */\r\n position: PropTypes.oneOf(['top', 'bottom', 'left', 'right']),\r\n};\r\n\r\nMiniPanel.defaultProps = {\r\n className: undefined,\r\n type: 'info',\r\n position: 'right',\r\n};\r\n\r\nconst Arrow = () => (\r\n \r\n \r\n \r\n\r\n);\r\n\r\nexport default MiniPanel;\r\n","import React, {\r\n useEffect, useState,\r\n} from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport Panel from '../Panel/Panel';\r\nimport MiniPanel from '../Panel/MiniPanel';\r\nimport useSelectionContext from './useSelectionContext';\r\nimport useViewport, { MAIN } from '../Hooks/useViewport';\r\n\r\n/**\r\n * Mosta un pannello che riporta una sintesti della selezione con la possibilità di selezionare tutte le righe del dataset.\r\n*/\r\nconst SelectionPanel = ({ totalNumberOfItems, itemDescriptions }) => {\r\n const context = useSelectionContext();\r\n const [selection, setSelection] = useState(context.getSelection());\r\n\r\n useEffect(() => {\r\n const callback = () => setSelection(context.getSelection());\r\n context.selectionSubscribe(callback);\r\n return () => context.selectionUnsubscribe(callback);\r\n }, [context]);\r\n\r\n const selectAll = (event) => {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n context.onSelectedAll();\r\n };\r\n\r\n const deselectAll = (event) => {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n context.onSelectedNone();\r\n };\r\n\r\n const { resolution } = useViewport();\r\n const main = resolution.width >= MAIN.width;\r\n\r\n const descriptions = typeof itemDescriptions === 'string' ? [itemDescriptions, itemDescriptions] : itemDescriptions;\r\n const description = selection.rows.length === 1 ? descriptions[0] : descriptions[1];\r\n\r\n if (selection.rows.length === 0) return
    ;\r\n\r\n const title = (\r\n \r\n Hai selezionato {context.isSelectedAll() ? totalNumberOfItems : selection.rows.length} {description}    \r\n \r\n );\r\n let message;\r\n if (context.isSelectedAll()) {\r\n message = Deseleziona tutte le {totalNumberOfItems} {descriptions[1]};\r\n } else if (totalNumberOfItems > selection.rows.length) {\r\n message = Seleziona tutte le {totalNumberOfItems} {descriptions[1]};\r\n }\r\n\r\n return (\r\n \r\n {main && }\r\n {!main && {title}{message}} />}\r\n \r\n );\r\n};\r\n\r\nSelectionPanel.propTypes = {\r\n /**\r\nSpecifica il numero totale delle righe, che può essere diverso dal numero totale di quelle presentate ad esempio nel caso della paginazione.\r\n\r\nE' utilizzato nella selezione per chiedere all'utente se selezionare o meno tutte le righe.\r\nSe non definito, non mostra all'utente \"selezionare tutte le righe?\"\r\n */\r\n totalNumberOfItems: PropTypes.number,\r\n\r\n /**\r\nSpecifica una o più descrizioni per gli elementi presentati dalla tabella.\r\n\r\nSe viene specificato un array di stringhe, la prima stringa rappresenta una descrizione al singolare, la seconda al plurale.\r\n\r\nEsempio: `['dichiarazione', 'dichirazioni']`\r\n */\r\n itemDescriptions: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]),\r\n};\r\n\r\nSelectionPanel.defaultProps = {\r\n totalNumberOfItems: undefined,\r\n itemDescriptions: ['riga', 'righe'],\r\n};\r\n\r\nexport default SelectionPanel;\r\n","import React from 'react';\r\nimport Icon from './Icon';\r\n\r\nexport default Icon(\r\n \r\n \r\n \r\n ,\r\n '0 0 16 16', 'ExpandIcon',\r\n);\r\n","import { useContext } from 'react';\r\nimport TableRowContext from './TableRowContext';\r\n\r\nexport default function useTableRowContext() {\r\n return useContext(TableRowContext);\r\n}\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\nimport MaximizeIcon from '../../../Icons/MaximizeIcon';\r\nimport Button from '../../Button/Button';\r\nimport useTableRowContext from './useTableRowContext';\r\n/**\r\n * Bottone utilizzato per espandere la riga di una tabella.\r\n * Viene tipicamente posizionato nella parte finale della riga.\r\n*/\r\nexport default function ExpandButton({\r\n className, emphasis, vertical, label,\r\n}) {\r\n const { setExpanded } = useTableRowContext();\r\n\r\n const cName = cns('v2-table__expand-button', className);\r\n\r\n return (\r\n \r\n );\r\n}\r\n\r\nExpandButton.propTypes = {\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n /** Enfasi del bottone */\r\n emphasis: PropTypes.oneOf([Button.Emphasis.LOW, Button.Emphasis.MEDIUM]),\r\n\r\n /** Presenta i `children` in verticale (Solo per emphasis = LOW). */\r\n vertical: PropTypes.bool,\r\n\r\n /** Label del bottone. */\r\n label: PropTypes.string,\r\n};\r\n\r\nExpandButton.defaultProps = {\r\n className: undefined,\r\n emphasis: Button.Emphasis.MEDIUM,\r\n vertical: false,\r\n label: 'Altre informazioni',\r\n};\r\n","import { createContext } from 'react';\r\n\r\nexport function buildContext(scrollable = true) {\r\n if (!scrollable) return undefined;\r\n return {\r\n hasScrollbar: false,\r\n listener: undefined,\r\n setHasScrollbar(value) {\r\n this.hasScrollbar = value;\r\n this.notify();\r\n },\r\n subscribe(callback) {\r\n this.listener = callback;\r\n },\r\n unsubscribe() {\r\n this.listener = undefined;\r\n },\r\n notify() {\r\n this.listener && this.listener(this.hasScrollbar);\r\n },\r\n };\r\n}\r\n\r\nconst ScrollbarContext = createContext();\r\n\r\nexport default ScrollbarContext;\r\n","import React, {\r\n useMemo, Children, useImperativeHandle, useRef,\r\n} from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\nimport SelectionContext, { buildContext, Selection } from './SelectionContext';\r\nimport ExpandedContext, { buildContext as buildExpandedContext } from './ExpandedContext';\r\nimport Head from './Head/Head';\r\nimport Column from './Head/Column';\r\nimport ColumnGroup from './Head/ColumnGroup';\r\nimport Body from './Body/Body';\r\nimport Row from './Body/Row';\r\nimport Cell from './Body/Cell';\r\nimport { NOOP } from '../../../utils/const';\r\nimport SelectionPanel from './SelectionPanel';\r\nimport ExpandButton from './Body/ExpandButton';\r\nimport { sameType } from '../../../utils/react';\r\nimport ScrollbarContext, { buildContext as buildScrollbarContext } from '../Scrollbar/ScrollbarContext';\r\nimport useScrollbarListener from '../Scrollbar/useScrollbarListener';\r\nimport useComponentWithScroolbar from '../Scrollbar/useComponentWithScroolbar';\r\nimport useTableSelectionState from './useTableSelectionState';\r\n\r\nconst TableContainer = React.forwardRef(({\r\n className, children, selectable, onSelectionChange, initialSelection,\r\n}, ref) => {\r\n const selectionContext = useMemo(\r\n () => buildContext(selectable, onSelectionChange, initialSelection),\r\n [selectable, onSelectionChange, initialSelection],\r\n );\r\n\r\n // mantenere allinata la ref di ODataTable\r\n useImperativeHandle(ref, () => ({\r\n resetSelection: () => selectionContext.onSelectedNone(),\r\n }), [selectionContext]);\r\n\r\n return (\r\n
    \r\n \r\n \r\n {children}\r\n \r\n \r\n
    \r\n );\r\n});\r\n\r\nTableContainer.propTypes = {\r\n className: PropTypes.string.isRequired,\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node,\r\n ]).isRequired,\r\n selectable: PropTypes.bool.isRequired,\r\n onSelectionChange: PropTypes.func.isRequired,\r\n initialSelection: PropTypes.arrayOf(PropTypes.shape({\r\n id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\r\n // eslint-disable-next-line react/forbid-prop-types\r\n object: PropTypes.any,\r\n })),\r\n};\r\n\r\nTableContainer.defaultProps = {\r\n initialSelection: [],\r\n};\r\n\r\nconst ScrollableTableHead = ({ children }) => {\r\n const hasScrollbar = useScrollbarListener();\r\n return (\r\n
    \r\n \r\n {children}\r\n
    \r\n
    \r\n );\r\n};\r\n\r\nScrollableTableHead.propTypes = {\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node,\r\n ]).isRequired,\r\n};\r\n\r\nScrollableTableHead.defaultProps = {\r\n};\r\n\r\nconst ScrollableTableBody = ({ children, height }) => {\r\n const ref = useRef();\r\n useComponentWithScroolbar(ref);\r\n return (\r\n \r\n \r\n {children}\r\n
    \r\n
    \r\n );\r\n};\r\n\r\nScrollableTableBody.propTypes = {\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node,\r\n ]).isRequired,\r\n\r\n /** Altezza del body, da usare con la prop `scrollable` */\r\n height: PropTypes.string,\r\n\r\n};\r\n\r\nScrollableTableBody.defaultProps = {\r\n height: undefined,\r\n};\r\n\r\n/**\r\nLa Table è un componente per disporre un lista di elementi che hanno attributi in comune.\r\n\r\nVedi [Design System di CGN - Tabella](https://zeroheight.com/1b5e94371/p/497adf-tabella/b/02c4ad)\r\n\r\nPer specificare le colonne della tablla, aggiungere come child di `Table` il componente `Table.Head`.\r\nI children di `Table.Head` sono di tipo `Table.Column` o `Table.ColumnGroup`.\r\nPer specificare le righe della tabella, aggiungere come child di `Table` il componente `Table.Body`.\r\nI children di `Table.Body` sono di tipo `Table.Row`.\r\n\r\n_ATTENZIONE: Se non esiste al primo livello un child di tipo `Table.Head` non sarà possibile identificare le colonne della tabella;_\r\n_se non esiste al primo livello un child di tipo `Table.Body` non sarà possibile identificare le righe della tabella._\r\n */\r\nconst Table = React.forwardRef(({\r\n children, className, height, scrollable, selectable, onSelectionChange, initialSelection,\r\n highligthColumns,\r\n}, ref) => {\r\n const cName = cns(\r\n 'v2-table',\r\n {\r\n 'v2-table--scrollable': scrollable,\r\n 'v2-table--columns-highlighted': highligthColumns,\r\n },\r\n\r\n className,\r\n );\r\n\r\n const [headChildren, bodyChildren, othersChildren] = useMemo(() => {\r\n let [head, body] = [];\r\n const others = [];\r\n Children.forEach(children, (child) => {\r\n if (!child) return;\r\n if (sameType(child, Head) || child.type.IS_TABLE_HEAD) head = child;\r\n else if (sameType(child, Body)) body = child;\r\n else {\r\n others.push(child);\r\n }\r\n });\r\n return [head, body, others];\r\n }, [children]);\r\n\r\n if (scrollable) {\r\n return (\r\n \r\n \r\n {othersChildren}\r\n {headChildren && (\r\n \r\n {headChildren}\r\n \r\n )}\r\n \r\n {headChildren}\r\n {bodyChildren}\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n {othersChildren}\r\n
    \r\n \r\n {headChildren}\r\n {bodyChildren}\r\n
    \r\n
    \r\n \r\n );\r\n});\r\n\r\nTable.propTypes = {\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n\r\n /**\r\nDetermina se la tabella ha un compoertamento \"scrollabile\" ossia presenta a dx un scrolla solo sulle righe.\r\n\r\nATTENZIONE: la dimensione delle colonne DEVE ESSERE determinata dalla dimensione dell'intestazione\r\ne non cambiare in base al contenuto delle celle.\r\n\r\nVedi prop `width` o `className` di `Table.Column`.\r\n\r\nE' possibile definire una altezza fissa, utilizzando la prop `height`,\r\noppure permettere al componente di occupare tutta l'altezza disponibile se ad un certo livello è specificata una altezza con display 'flex'\r\ne tutti i figli hanno un overflow che permette di non allungare il div (tipo overlay).\r\n */\r\n scrollable: PropTypes.bool,\r\n\r\n /** Altezza del body, da usare con la prop `scrollable` */\r\n height: PropTypes.string,\r\n\r\n /** Children del componente. Deve essere un nodo di tipo `Table.Column` o `Table.ColumnGroup`. */\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node,\r\n ]).isRequired,\r\n\r\n /**\r\nSpecifica se la tabella permette la selezione multipla delle righe.\r\n\r\nPer identificare la riga selezionata verrà utilizzato l'attibuto object, se definito, o id di Row.\r\n\r\nUtilizzando la reference dell'oggetto react è possibile accedere al metodo resetSelection che permette di cancellare la selezione.\r\n\r\n```js\r\n const ref = useRef();\r\n ...\r\n ref.current.resetSelection();\r\n ...\r\n \r\n ...\r\n```\r\n\r\nSe esisten una selezione, la tabella mostrerà un pannello informativo di forma diversa in base alla viewport.\r\nQuesta gestione si abilita solo se il componente è figlio di un ViewportProvider.\r\n */\r\n selectable: PropTypes.bool,\r\n\r\n /**\r\nCallback richiamata al cambio della selezione\r\n\r\nPer identificare la riga selezionata verrà utilizzato l'attibuto object, se definito, o id di Row.\r\nIl primo parametro è la lista delle righe visibili e selezionate,\r\nil secondo parametro è il tipo di azione compiuta:\r\n\r\n```js\r\n {type: Table.Selection.DESELECTED, id: ..., object: ...}\r\n {type: Table.Selection.SELECTED_ALL}\r\n {type: Table.Selection.SELECTED_ALL_IN_PAGE}\r\n {type: Table.Selection.SELECTED_NONE}\r\n {type: Table.Selection.SELECTED_NONE_IN_PAGA}\r\n {type: Table.Selection.SELECTED, id: ..., object: ...}\r\n```\r\n\r\n*/\r\n onSelectionChange: PropTypes.func,\r\n /**\r\n * elenco opzionale con le righe selezionate di default al primo render. Per identificare le righe può essere passato l'id oppure l'intero oggetto\r\n */\r\n initialSelection: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.shape({\r\n id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\r\n // eslint-disable-next-line react/forbid-prop-types\r\n object: PropTypes.any,\r\n })),\r\n PropTypes.shape({\r\n rows: PropTypes.arrayOf(PropTypes.shape({\r\n id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\r\n // eslint-disable-next-line react/forbid-prop-types\r\n object: PropTypes.any,\r\n })),\r\n lastSelection: PropTypes.oneOf([\r\n Selection.DESELECTED, Selection.SELECTED, Selection.SELECTED_ALL, Selection.SELECTED_ALL_IN_PAGE,\r\n Selection.SELECTED_NONE, Selection.SELECTED_NONE_IN_PAGE,\r\n ]),\r\n }),\r\n ]),\r\n /**\r\nVisualizza le colonne con un piccolo bordo. DA USARE SOLO PER TEST\r\n*/\r\n highligthColumns: PropTypes.bool,\r\n\r\n};\r\n\r\nTable.defaultProps = {\r\n className: undefined,\r\n height: undefined,\r\n selectable: false,\r\n onSelectionChange: NOOP,\r\n scrollable: false,\r\n initialSelection: [],\r\n highligthColumns: false,\r\n};\r\n\r\nTable.Head = Head;\r\nTable.Column = Column;\r\nTable.ColumnGroup = ColumnGroup;\r\nTable.Body = Body;\r\nTable.Row = Row;\r\nTable.Cell = Cell;\r\nTable.ExpandButton = ExpandButton;\r\nTable.useSelectionState = useTableSelectionState;\r\n\r\nTable.Selection = Selection;\r\n\r\nTable.SelectionPanel = SelectionPanel;\r\n\r\nexport default Table;\r\n","/* eslint-disable no-param-reassign */\r\nimport { useState, useContext, useEffect } from 'react';\r\nimport { NOOP } from '../../../utils/const';\r\nimport ScrollableContext from './ScrollbarContext';\r\n\r\n/**\r\n * Hook per mettersi sapere se un componente ha o meno la scrollbar\r\n * @returns {bool}\r\n */\r\nexport default function useScrollbarListener() {\r\n const context = useContext(ScrollableContext);\r\n\r\n const [hasScroolbar, setHasScroolbar] = useState(false);\r\n\r\n useEffect(() => {\r\n if (context) {\r\n setHasScroolbar(context.hasScrollbar);\r\n context.subscribe(setHasScroolbar);\r\n return () => context.unsubscribe();\r\n }\r\n return NOOP;\r\n }, [context]);\r\n\r\n return hasScroolbar;\r\n}\r\n","/* eslint-disable no-param-reassign */\r\nimport { useContext, useEffect } from 'react';\r\nimport ScrollableContext from './ScrollbarContext';\r\n\r\nfunction checkScroll(ref) {\r\n ref.current.scrollTop = 1;\r\n const hasScroll = ref.current.scrollTop === 1;\r\n ref.current.scrollTop = 0;\r\n return hasScroll;\r\n}\r\n\r\n/**\r\n * Hook per definire il componente che ha la scrollbar\r\n * @param {node || undefined} ref component reference\r\n */\r\nexport default function useComponentWithScroolbar(ref) {\r\n const context = useContext(ScrollableContext);\r\n\r\n useEffect(() => {\r\n if (context && ref && ref.current) {\r\n context.setHasScrollbar(ref.current.scrollTop > 0 || checkScroll(ref));\r\n }\r\n });\r\n}\r\n","import { useCallback, useState } from 'react';\r\n\r\nexport default function useTableSelectionState(onSelectionChangeCallback, initialSelection = []) {\r\n const [selection, setSelection] = useState({ rows: initialSelection });\r\n const onSelectionChange = useCallback((rows, lastSelection) => {\r\n setSelection({ rows, lastSelection });\r\n onSelectionChangeCallback && onSelectionChangeCallback(rows, lastSelection);\r\n }, [onSelectionChangeCallback]);\r\n return [selection, onSelectionChange];\r\n}\r\n","import React, { useCallback } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\nimport {\r\n EllipsisText, InfoTooltip,\r\n} from 'framework-ui-components';\r\nimport { Button, Panel, Table } from 'framework-ui-components/Components/V2';\r\nimport { format } from 'framework-ui-components/Components/Utils/numeriHelper';\r\nimport EditIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/EditIcon';\r\nimport DeleteIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/DeleteIcon';\r\nimport NewAccordion from '../../../components/custom/NewAccordion';\r\nimport { getCurrencyValueNoSymbol } from '../../../utils/format';\r\nimport LabelValueDetail from '../../../components/custom/LabelValueDetail';\r\n\r\nconst SezioneErario = ({\r\n listaTributi,\r\n modificaUtilizzo,\r\n showModaleModificaUtilizzo,\r\n rimuoviUtilizzo,\r\n mostraModifica,\r\n showPanelTributiErario,\r\n setShowPanelTributiErario,\r\n}) => (\r\n 0)}\r\n isCollapsable\r\n >\r\n {showPanelTributiErario && (\r\n setShowPanelTributiErario(false)}\r\n />\r\n )}\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {listaTributi && listaTributi.Tributi.length > 0 ? (\r\n \r\n {listaTributi && listaTributi.Tributi.map((tributo, idx) => (\r\n // eslint-disable-next-line react/no-array-index-key\r\n \r\n \r\n {tributo.Codice}\r\n {tributo.Descrizione && (\r\n
    \r\n 13}>\r\n {tributo.Descrizione}\r\n \r\n
    \r\n )}\r\n
    \r\n \r\n \r\n
    \r\n {tributo.ValoreColonnaMultiuso || '-'}\r\n
    \r\n
    \r\n \r\n {tributo.AnnoRiferimento || '-'}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {mostraModifica\r\n && (\r\n
    \r\n {\r\n modificaUtilizzo(\r\n {\r\n idTributo: tributo.IdTributo,\r\n importo: tributo.Importo,\r\n descrizione: `Modifica ${tributo.IsDebito ? 'debito' : 'credito'}: ${tributo.Codice}`,\r\n isDebito: tributo.IsDebito,\r\n sezione: 'Erario',\r\n },\r\n );\r\n showModaleModificaUtilizzo(true);\r\n }}\r\n >\r\n \r\n \r\n
    \r\n rimuoviUtilizzo.func(tributo.IdTributo, tributo.IsDebito, rimuoviUtilizzo.onSuccessCallback)}\r\n >\r\n \r\n \r\n
    \r\n
    \r\n )}\r\n
    \r\n
    \r\n ))}\r\n {listaTributi && listaTributi.Tributi.length > 0 && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n
    \r\n ) : (\r\n \r\n \r\n \r\n -\r\n \r\n \r\n \r\n -\r\n \r\n \r\n -\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n
    \r\n \r\n);\r\n\r\nSezioneErario.defaultProps = {\r\n mostraModifica: false,\r\n showPanelTributiErario: false,\r\n};\r\n\r\nSezioneErario.propTypes = {\r\n listaTributi: PropTypes.shape({\r\n CodiceAttoAdE: PropTypes.string,\r\n CodiceUfficioAdE: PropTypes.string,\r\n Tributi: PropTypes.arrayOf(PropTypes.shape({\r\n AnnoRiferimento: PropTypes.number.isRequired,\r\n Codice: PropTypes.string.isRequired,\r\n Descrizione: PropTypes.string.isRequired,\r\n Importo: PropTypes.number.isRequired,\r\n IsCredito: PropTypes.bool.isRequired,\r\n IsDebito: PropTypes.bool.isRequired,\r\n ValoreColonnaMultiuso: PropTypes.string,\r\n })),\r\n TotaleImportiDebito: PropTypes.number.isRequired,\r\n TotaleImportiCredito: PropTypes.number.isRequired,\r\n Saldo: PropTypes.number.isRequired,\r\n }).isRequired,\r\n modificaUtilizzo: PropTypes.func.isRequired,\r\n showModaleModificaUtilizzo: PropTypes.func.isRequired,\r\n rimuoviUtilizzo: PropTypes.shape({\r\n func: PropTypes.func.isRequired,\r\n onSuccessCallback: PropTypes.func.isRequired,\r\n }).isRequired,\r\n mostraModifica: PropTypes.bool,\r\n showPanelTributiErario: PropTypes.bool,\r\n setShowPanelTributiErario: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default SezioneErario;\r\n","import React, { useCallback } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\nimport {\r\n Checkbox, EllipsisText, InfoTooltip,\r\n} from 'framework-ui-components';\r\nimport { Button, Panel, Table } from 'framework-ui-components/Components/V2';\r\nimport { format } from 'framework-ui-components/Components/Utils/numeriHelper';\r\nimport EditIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/EditIcon';\r\nimport DeleteIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/DeleteIcon';\r\nimport NewAccordion from '../../../components/custom/NewAccordion';\r\nimport { getCurrencyValueNoSymbol } from '../../../utils/format';\r\nimport LabelValueDetail from '../../../components/custom/LabelValueDetail';\r\n\r\nconst SezioneTributiLocali = ({\r\n listaTributi,\r\n modificaUtilizzo,\r\n showModaleModificaUtilizzo,\r\n rimuoviUtilizzo,\r\n mostraModifica,\r\n showPanelTributiLocali,\r\n setShowPanelTributiLocali,\r\n}) => (\r\n 0)}\r\n isCollapsable\r\n >\r\n {showPanelTributiLocali && (\r\n setShowPanelTributiLocali(false)}\r\n />\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {listaTributi && listaTributi.Tributi.length > 0 ? (\r\n \r\n {listaTributi && listaTributi.Tributi.map((tributo) => (\r\n \r\n \r\n
    \r\n {tributo.ValoreColonnaEnte}\r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {tributo.Codice}\r\n {tributo.Descrizione && (\r\n
    \r\n 13}>\r\n {tributo.Descrizione}\r\n \r\n
    \r\n )}\r\n
    \r\n \r\n \r\n
    \r\n {tributo.ValoreColonnaMultiuso}\r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {mostraModifica\r\n && (\r\n
    \r\n {\r\n modificaUtilizzo(\r\n {\r\n idTributo: tributo.IdTributo,\r\n importo: tributo.Importo,\r\n descrizione: `Modifica ${tributo.IsDebito ? 'debito' : 'credito'}: ${tributo.Codice}`,\r\n isDebito: tributo.IsDebito,\r\n sezione: 'TributiLocali',\r\n },\r\n );\r\n showModaleModificaUtilizzo(true);\r\n }}\r\n >\r\n \r\n \r\n
    \r\n rimuoviUtilizzo.func(tributo.IdTributo, tributo.IsDebito, rimuoviUtilizzo.onSuccessCallback)}\r\n >\r\n \r\n \r\n
    \r\n
    \r\n )}\r\n
    \r\n
    \r\n ))}\r\n {listaTributi && listaTributi.Tributi.length > 0 && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n
    \r\n ) : (\r\n \r\n \r\n \r\n -\r\n \r\n \r\n \r\n -\r\n \r\n \r\n \r\n -\r\n \r\n \r\n \r\n -\r\n \r\n \r\n \r\n -\r\n \r\n \r\n \r\n \r\n \r\n -\r\n \r\n \r\n \r\n -\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n
    \r\n \r\n);\r\n\r\nSezioneTributiLocali.defaultProps = {\r\n mostraModifica: false,\r\n showPanelTributiLocali: false,\r\n};\r\n\r\nSezioneTributiLocali.propTypes = {\r\n listaTributi: PropTypes.shape({\r\n IdentificativoOperazione: PropTypes.string,\r\n Tributi: PropTypes.arrayOf(PropTypes.shape({\r\n AnnoRiferimento: PropTypes.number.isRequired,\r\n Codice: PropTypes.string.isRequired,\r\n CodiceAttoAdE: PropTypes.string,\r\n CodiceUfficioAdE: PropTypes.string,\r\n Descrizione: PropTypes.string.isRequired,\r\n Importo: PropTypes.number.isRequired,\r\n IsCredito: PropTypes.bool.isRequired,\r\n IsDebito: PropTypes.bool.isRequired,\r\n ValoreColonnaMultiuso: PropTypes.string,\r\n })),\r\n TotaleDetrazioni: PropTypes.number,\r\n TotaleImportiDebito: PropTypes.number.isRequired,\r\n TotaleImportiCredito: PropTypes.number.isRequired,\r\n Saldo: PropTypes.number.isRequired,\r\n Detrazione: PropTypes.number,\r\n }).isRequired,\r\n modificaUtilizzo: PropTypes.func.isRequired,\r\n showModaleModificaUtilizzo: PropTypes.func.isRequired,\r\n rimuoviUtilizzo: PropTypes.shape({\r\n func: PropTypes.func.isRequired,\r\n onSuccessCallback: PropTypes.func.isRequired,\r\n }).isRequired,\r\n mostraModifica: PropTypes.bool,\r\n showPanelTributiLocali: PropTypes.bool,\r\n setShowPanelTributiLocali: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default SezioneTributiLocali;\r\n","import React, { useCallback } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\nimport {\r\n EllipsisText, InfoTooltip,\r\n} from 'framework-ui-components';\r\nimport { Button, Panel, Table } from 'framework-ui-components/Components/V2';\r\nimport { format } from 'framework-ui-components/Components/Utils/numeriHelper';\r\nimport EditIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/EditIcon';\r\nimport DeleteIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/DeleteIcon';\r\nimport NewAccordion from '../../../components/custom/NewAccordion';\r\nimport { getCurrencyValueNoSymbol } from '../../../utils/format';\r\nimport LabelValueDetail from '../../../components/custom/LabelValueDetail';\r\n\r\nconst SezioneInps = ({\r\n listaTributi,\r\n modificaUtilizzo,\r\n showModaleModificaUtilizzo,\r\n rimuoviUtilizzo,\r\n mostraModifica,\r\n showPanelTributiInps,\r\n setShowPanelTributiInps,\r\n}) => (\r\n 0)}\r\n isCollapsable\r\n >\r\n {showPanelTributiInps && (\r\n setShowPanelTributiInps(false)}\r\n />\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {listaTributi && listaTributi.Tributi.length > 0 ? (\r\n \r\n {listaTributi && listaTributi.Tributi.map((tributo, idx) => (\r\n // eslint-disable-next-line react/no-array-index-key\r\n \r\n \r\n
    \r\n {tributo.DescrizioneCompostaSede}\r\n
    \r\n
    \r\n \r\n \r\n {tributo.Codice}\r\n {tributo.Descrizione && (\r\n
    \r\n 13}>\r\n {tributo.Descrizione}\r\n \r\n
    \r\n )}\r\n
    \r\n \r\n {tributo.Matricola}\r\n \r\n {tributo.MeseRiferimentoDa\r\n ? `${tributo.MeseRiferimentoDa}/${tributo.AnnoRiferimentoDa}` : tributo.AnnoRiferimentoDa || '-'}\r\n \r\n \r\n {tributo.MeseRiferimentoA\r\n ? `${tributo.MeseRiferimentoA}/${tributo.AnnoRiferimentoA}` : tributo.AnnoRiferimentoA || '-'}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {mostraModifica\r\n && (\r\n
    \r\n {\r\n modificaUtilizzo(\r\n {\r\n idTributo: tributo.IdTributo,\r\n importo: tributo.Importo,\r\n descrizione: `Modifica ${tributo.IsDebito ? 'debito' : 'credito'}: ${tributo.Codice}`,\r\n isDebito: tributo.IsDebito,\r\n sezione: 'Inps',\r\n },\r\n );\r\n showModaleModificaUtilizzo(true);\r\n }}\r\n >\r\n \r\n \r\n
    \r\n rimuoviUtilizzo.func(tributo.IdTributo, tributo.IsDebito, rimuoviUtilizzo.onSuccessCallback)}\r\n >\r\n \r\n \r\n
    \r\n
    \r\n )}\r\n
    \r\n
    \r\n ))}\r\n {listaTributi && listaTributi.Tributi.length > 0 && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n
    \r\n ) : (\r\n \r\n \r\n \r\n -\r\n \r\n \r\n \r\n -\r\n \r\n \r\n -\r\n \r\n -\r\n \r\n -\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n
    \r\n \r\n);\r\n\r\nSezioneInps.defaultProps = {\r\n mostraModifica: false,\r\n showPanelTributiInps: false,\r\n};\r\n\r\nSezioneInps.propTypes = {\r\n listaTributi: PropTypes.shape({\r\n Tributi: PropTypes.arrayOf(PropTypes.shape({\r\n AnnoRiferimento: PropTypes.number.isRequired,\r\n Codice: PropTypes.string.isRequired,\r\n CodiceAttoAdE: PropTypes.string,\r\n CodiceUfficioAdE: PropTypes.string,\r\n Descrizione: PropTypes.string.isRequired,\r\n Importo: PropTypes.number.isRequired,\r\n IsCredito: PropTypes.bool.isRequired,\r\n IsDebito: PropTypes.bool.isRequired,\r\n ValoreColonnaMultiuso: PropTypes.string,\r\n })),\r\n TotaleImportiDebito: PropTypes.number.isRequired,\r\n TotaleImportiCredito: PropTypes.number.isRequired,\r\n Saldo: PropTypes.number.isRequired,\r\n }).isRequired,\r\n modificaUtilizzo: PropTypes.func.isRequired,\r\n showModaleModificaUtilizzo: PropTypes.func.isRequired,\r\n rimuoviUtilizzo: PropTypes.shape({\r\n func: PropTypes.func.isRequired,\r\n onSuccessCallback: PropTypes.func.isRequired,\r\n }).isRequired,\r\n mostraModifica: PropTypes.bool,\r\n showPanelTributiInps: PropTypes.bool,\r\n setShowPanelTributiInps: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default SezioneInps;\r\n","import React, { useCallback } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\nimport {\r\n Autocomplete, DatePicker, EllipsisText, InfoTooltip, Input, Restriction, Validation,\r\n} from 'framework-ui-components';\r\nimport { Button, Panel, Table } from 'framework-ui-components/Components/V2';\r\nimport { format } from 'framework-ui-components/Components/Utils/numeriHelper';\r\nimport EditIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/EditIcon';\r\nimport DeleteIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/DeleteIcon';\r\nimport NewAccordion from '../../../components/custom/NewAccordion';\r\nimport { getCurrencyValueNoSymbol } from '../../../utils/format';\r\nimport LabelValueDetail from '../../../components/custom/LabelValueDetail';\r\n\r\nconst SezioneRegioni = ({\r\n listaTributi,\r\n modificaUtilizzo,\r\n showModaleModificaUtilizzo,\r\n rimuoviUtilizzo,\r\n mostraModifica,\r\n showPanelTributiRegioni,\r\n setShowPanelTributiRegioni,\r\n}) => (\r\n 0)}\r\n isCollapsable\r\n >\r\n {showPanelTributiRegioni && (\r\n setShowPanelTributiRegioni(false)}\r\n />\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {listaTributi && listaTributi.Tributi.length > 0 ? (\r\n \r\n {listaTributi && listaTributi.Tributi.map((tributo, idx) => (\r\n // eslint-disable-next-line react/no-array-index-key\r\n \r\n \r\n \r\n
    \r\n {tributo.DescrizioneCompostaRegione}\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n {tributo.Codice}\r\n {tributo.Descrizione && (\r\n
    \r\n 13}>\r\n {tributo.Descrizione}\r\n \r\n
    \r\n )}\r\n
    \r\n \r\n {tributo.ValoreColonnaMultiuso}\r\n \r\n {tributo.AnnoRiferimento}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {mostraModifica\r\n && (\r\n
    \r\n {\r\n modificaUtilizzo(\r\n {\r\n idTributo: tributo.IdTributo,\r\n importo: tributo.Importo,\r\n descrizione: `Modifica ${tributo.IsDebito ? 'debito' : 'credito'}: ${tributo.Codice}`,\r\n isDebito: tributo.IsDebito,\r\n sezione: 'Regioni',\r\n },\r\n );\r\n showModaleModificaUtilizzo(true);\r\n }}\r\n >\r\n \r\n \r\n
    \r\n rimuoviUtilizzo.func(tributo.IdTributo, tributo.IsDebito, rimuoviUtilizzo.onSuccessCallback)}\r\n >\r\n \r\n \r\n
    \r\n
    \r\n )}\r\n
    \r\n
    \r\n ))}\r\n {listaTributi && listaTributi.Tributi.length > 0 && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n
    \r\n ) : (\r\n \r\n \r\n \r\n -\r\n \r\n \r\n \r\n -\r\n \r\n \r\n -\r\n \r\n -\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n
    \r\n \r\n);\r\n\r\nSezioneRegioni.defaultProps = {\r\n mostraModifica: false,\r\n showPanelTributiRegioni: false,\r\n};\r\n\r\nSezioneRegioni.propTypes = {\r\n listaTributi: PropTypes.shape({\r\n Tributi: PropTypes.arrayOf(PropTypes.shape({\r\n AnnoRiferimento: PropTypes.number.isRequired,\r\n Codice: PropTypes.string.isRequired,\r\n CodiceAttoAdE: PropTypes.string,\r\n CodiceUfficioAdE: PropTypes.string,\r\n Descrizione: PropTypes.string.isRequired,\r\n Importo: PropTypes.number.isRequired,\r\n IsCredito: PropTypes.bool.isRequired,\r\n IsDebito: PropTypes.bool.isRequired,\r\n ValoreColonnaMultiuso: PropTypes.string,\r\n })),\r\n TotaleImportiDebito: PropTypes.number.isRequired,\r\n TotaleImportiCredito: PropTypes.number.isRequired,\r\n Saldo: PropTypes.number.isRequired,\r\n }).isRequired,\r\n modificaUtilizzo: PropTypes.func.isRequired,\r\n showModaleModificaUtilizzo: PropTypes.func.isRequired,\r\n rimuoviUtilizzo: PropTypes.shape({\r\n func: PropTypes.func.isRequired,\r\n onSuccessCallback: PropTypes.func.isRequired,\r\n }).isRequired,\r\n mostraModifica: PropTypes.bool,\r\n showPanelTributiRegioni: PropTypes.bool,\r\n setShowPanelTributiRegioni: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default SezioneRegioni;\r\n","import React, { useCallback } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Button, Panel, Table } from 'framework-ui-components/Components/V2';\r\nimport { EllipsisText } from 'framework-ui-components';\r\nimport EditIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/EditIcon';\r\nimport DeleteIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/DeleteIcon';\r\nimport { format } from 'framework-ui-components/Components/Utils/numeriHelper';\r\nimport NewAccordion from '../../../components/custom/NewAccordion';\r\nimport { getCurrencyValueNoSymbol } from '../../../utils/format';\r\nimport LabelValueDetail from '../../../components/custom/LabelValueDetail';\r\n\r\nconst SezioneInail = ({\r\n listaTributi,\r\n modificaUtilizzo,\r\n showModaleModificaUtilizzo,\r\n rimuoviUtilizzo,\r\n mostraModifica,\r\n showPanelTributiInail,\r\n setShowPanelTributiInail,\r\n}) => (\r\n 0)}\r\n isCollapsable\r\n >\r\n {showPanelTributiInail && (\r\n setShowPanelTributiInail(false)}\r\n />\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {listaTributi && listaTributi.Tributi.length > 0 ? (\r\n \r\n {listaTributi && listaTributi.Tributi.map((tributo, idx) => (\r\n // eslint-disable-next-line react/no-array-index-key\r\n \r\n \r\n
    \r\n {tributo.DescrizioneCompostaSede}\r\n
    \r\n
    \r\n \r\n \r\n {tributo.PosizioneAssicurativaNumero}\r\n \r\n \r\n {tributo.PosizioneAssicurativaCodiceControllo}\r\n \r\n {tributo.NumeroRiferimento}\r\n \r\n {tributo.Causale}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {mostraModifica\r\n && (\r\n
    \r\n {\r\n modificaUtilizzo(\r\n {\r\n idTributo: tributo.IdTributo,\r\n importo: tributo.Importo,\r\n descrizione: `Modifica ${tributo.IsDebito ? 'debito' : 'credito'}: ${tributo.Codice}`,\r\n isDebito: tributo.IsDebito,\r\n sezione: 'Inail',\r\n },\r\n );\r\n showModaleModificaUtilizzo(true);\r\n }}\r\n >\r\n \r\n \r\n
    \r\n rimuoviUtilizzo.func(tributo.IdTributo, tributo.IsDebito, rimuoviUtilizzo.onSuccessCallback)}\r\n >\r\n \r\n \r\n
    \r\n
    \r\n )}\r\n
    \r\n
    \r\n ))}\r\n {listaTributi && listaTributi.Tributi.length > 0 && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n
    \r\n ) : (\r\n \r\n \r\n \r\n -\r\n \r\n \r\n \r\n -\r\n \r\n \r\n -\r\n \r\n -\r\n \r\n -\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n
    \r\n \r\n);\r\n\r\nSezioneInail.defaultProps = {\r\n mostraModifica: false,\r\n showPanelTributiInail: false,\r\n};\r\n\r\nSezioneInail.propTypes = {\r\n listaTributi: PropTypes.shape({\r\n Tributi: PropTypes.arrayOf(PropTypes.shape({\r\n AnnoRiferimento: PropTypes.number.isRequired,\r\n Codice: PropTypes.string.isRequired,\r\n CodiceAttoAdE: PropTypes.string,\r\n CodiceUfficioAdE: PropTypes.string,\r\n Descrizione: PropTypes.string.isRequired,\r\n Importo: PropTypes.number.isRequired,\r\n IsCredito: PropTypes.bool.isRequired,\r\n IsDebito: PropTypes.bool.isRequired,\r\n ValoreColonnaMultiuso: PropTypes.string,\r\n })),\r\n TotaleImportiDebito: PropTypes.number.isRequired,\r\n TotaleImportiCredito: PropTypes.number.isRequired,\r\n Saldo: PropTypes.number.isRequired,\r\n }).isRequired,\r\n modificaUtilizzo: PropTypes.func.isRequired,\r\n showModaleModificaUtilizzo: PropTypes.func.isRequired,\r\n rimuoviUtilizzo: PropTypes.shape({\r\n func: PropTypes.func.isRequired,\r\n onSuccessCallback: PropTypes.func.isRequired,\r\n }).isRequired,\r\n mostraModifica: PropTypes.bool,\r\n showPanelTributiInail: PropTypes.bool,\r\n setShowPanelTributiInail: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default SezioneInail;\r\n","import React, { useCallback } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Button, Panel, Table } from 'framework-ui-components/Components/V2';\r\nimport { format } from 'framework-ui-components/Components/Utils/numeriHelper';\r\nimport { EllipsisText, InfoTooltip } from 'framework-ui-components';\r\nimport EditIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/EditIcon';\r\nimport DeleteIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/DeleteIcon';\r\nimport { NOOP } from 'framework-ui-components/utils/const';\r\nimport NewAccordion from '../../../components/custom/NewAccordion';\r\nimport { getCurrencyValueNoSymbol } from '../../../utils/format';\r\nimport LabelValueDetail from '../../../components/custom/LabelValueDetail';\r\n\r\nconst SezioneAltriEnti = ({\r\n listaTributi,\r\n modificaUtilizzo,\r\n showModaleModificaUtilizzo,\r\n rimuoviUtilizzo,\r\n mostraModifica,\r\n visualizzazione,\r\n showPanelTributiAltriEnti,\r\n setShowPanelTributiAltriEnti,\r\n}) => (\r\n 0)}\r\n isCollapsable\r\n >\r\n {showPanelTributiAltriEnti && (\r\n setShowPanelTributiAltriEnti(false)}\r\n />\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {listaTributi && listaTributi.Tributi.length > 0 ? (\r\n \r\n {listaTributi && listaTributi.Tributi.map((tributo, idx) => (\r\n // eslint-disable-next-line react/no-array-index-key\r\n \r\n \r\n {tributo.DescrizioneCompostaEnte}\r\n \r\n \r\n \r\n
    \r\n {tributo.DescrizioneCompostaSede}\r\n
    \r\n
    \r\n \r\n \r\n {tributo.Codice}\r\n {tributo.Descrizione && (\r\n
    \r\n 13}>\r\n {tributo.Descrizione}\r\n \r\n
    \r\n )}\r\n
    \r\n \r\n \r\n {tributo.CodicePosizione}\r\n \r\n \r\n {tributo.MeseRiferimentoDa}/{tributo.AnnoRiferimentoDa}\r\n \r\n {tributo.MeseRiferimentoA}/{tributo.AnnoRiferimentoA}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {mostraModifica\r\n && (\r\n
    \r\n {\r\n modificaUtilizzo(\r\n {\r\n idTributo: tributo.IdTributo,\r\n importo: tributo.Importo,\r\n descrizione: `Modifica ${tributo.IsDebito ? 'debito' : 'credito'}: ${tributo.Codice}`,\r\n isDebito: tributo.IsDebito,\r\n sezione: 'AltriEnti',\r\n },\r\n );\r\n showModaleModificaUtilizzo(true);\r\n }}\r\n >\r\n \r\n \r\n
    \r\n rimuoviUtilizzo.func(tributo.IdTributo, tributo.IsDebito, rimuoviUtilizzo.onSuccessCallback)}\r\n >\r\n \r\n \r\n
    \r\n
    \r\n )}\r\n
    \r\n
    \r\n ))}\r\n {listaTributi && listaTributi.Tributi.length > 0 && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n
    \r\n ) : (\r\n \r\n \r\n \r\n -\r\n \r\n \r\n \r\n -\r\n \r\n \r\n \r\n -\r\n \r\n \r\n \r\n -\r\n \r\n \r\n \r\n -\r\n \r\n \r\n \r\n -\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n
    \r\n \r\n);\r\n\r\nSezioneAltriEnti.defaultProps = {\r\n mostraModifica: false,\r\n visualizzazione: false,\r\n showPanelTributiAltriEnti: false,\r\n setShowPanelTributiAltriEnti: NOOP,\r\n};\r\n\r\nSezioneAltriEnti.propTypes = {\r\n listaTributi: PropTypes.shape({\r\n Tributi: PropTypes.arrayOf(PropTypes.shape({\r\n AnnoRiferimento: PropTypes.number.isRequired,\r\n Codice: PropTypes.string.isRequired,\r\n CodiceAttoAdE: PropTypes.string,\r\n CodiceUfficioAdE: PropTypes.string,\r\n Descrizione: PropTypes.string.isRequired,\r\n Importo: PropTypes.number.isRequired,\r\n IsCredito: PropTypes.bool.isRequired,\r\n IsDebito: PropTypes.bool.isRequired,\r\n ValoreColonnaMultiuso: PropTypes.string,\r\n })),\r\n TotaleImportiDebito: PropTypes.number.isRequired,\r\n TotaleImportiCredito: PropTypes.number.isRequired,\r\n Saldo: PropTypes.number.isRequired,\r\n }).isRequired,\r\n modificaUtilizzo: PropTypes.func.isRequired,\r\n showModaleModificaUtilizzo: PropTypes.func.isRequired,\r\n rimuoviUtilizzo: PropTypes.shape({\r\n func: PropTypes.func.isRequired,\r\n onSuccessCallback: PropTypes.func.isRequired,\r\n }).isRequired,\r\n mostraModifica: PropTypes.bool,\r\n visualizzazione: PropTypes.bool,\r\n showPanelTributiAltriEnti: PropTypes.bool,\r\n setShowPanelTributiAltriEnti: PropTypes.func,\r\n};\r\n\r\nexport default SezioneAltriEnti;\r\n","import React from 'react';\r\nimport {\r\n InfoTooltip,\r\n Spinner,\r\n EllipsisText,\r\n Tooltip,\r\n IconBadge,\r\n} from 'framework-ui-components';\r\nimport { useSelector } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport { JustADate } from 'framework-taskforce/utils/date';\r\nimport {\r\n Button,\r\n} from 'framework-ui-components/Components/V2';\r\nimport DeleteIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/DeleteIcon';\r\nimport useViewport, {\r\n} from 'framework-ui-components/Components/V2/Hooks/useViewport';\r\nimport EditIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/EditIcon';\r\nimport NewAccordion from '../../components/custom/NewAccordion';\r\nimport LabelValueDetail from '../../components/custom/LabelValueDetail';\r\nimport TemplateGrid from '../../components/TemplateGrid/TemplateGrid';\r\nimport SezioneErario from './sezioneErario/SezioneErario';\r\nimport SezioneTributiLocali from './sezioneTributiLocali/SezioneTributiLocali';\r\nimport SezioneInps from './sezioneInps/SezioneInps';\r\nimport SezioneRegioni from './sezioneRegioni/SezioneRegioni';\r\nimport SezioneInail from './sezioneInail/SezioneInail';\r\nimport SezioneAltriEnti from './sezioneAltriEnti/SezioneAltriEnti';\r\nimport { TIPO_PERSONA } from '../../models/anagrafica';\r\nimport { MODALITA_PRESENTAZIONE, STATO_DELEGA } from '../../models/delega';\r\n\r\nconst TipoDelegaOrdinario = ({\r\n datiDelega,\r\n loading,\r\n datiDelegaDaAggiornare,\r\n setShowModaleCoobbligato,\r\n setConfirmEliminaCoobbligato,\r\n setShowModaleVersamento,\r\n setConfirmEliminaContoCorrente,\r\n loadingErario,\r\n tributiErario,\r\n setShowModaleUtilizzoTributo,\r\n setTributoUtilizzoDaModificare,\r\n apriConfirmRimuoviUtilizzo,\r\n ottieniTributiErario,\r\n loadingInps,\r\n tributiInps,\r\n ottieniTributiInps,\r\n loadingRegioni,\r\n tributiRegioni,\r\n ottieniTributiRegioni,\r\n loadingTributiLocali,\r\n tributiLocali,\r\n ottieniTributiLocali,\r\n loadingInail,\r\n tributiInail,\r\n ottieniTributiInail,\r\n loadingAltriEnti,\r\n tributiAltriEnti,\r\n ottieniTributiAltriEnti,\r\n setTributiInseribili,\r\n showPanelTributiErario,\r\n setShowPanelTributiErario,\r\n showPanelTributiLocali,\r\n setShowPanelTributiLocali,\r\n showPanelTributiInps,\r\n setShowPanelTributiInps,\r\n showPanelTributiRegioni,\r\n setShowPanelTributiRegioni,\r\n showPanelTributiInail,\r\n setShowPanelTributiInail,\r\n showPanelTributiAltriEnti,\r\n setShowPanelTributiAltriEnti,\r\n setShowModaleAnagraficaContribuente,\r\n setShowModaleIndirizzoContribuente,\r\n isIndirizzoDaAggiornare,\r\n}) => {\r\n const appParamVisualizzazione = useSelector((store) => !!store.appParams.visualizzazione);\r\n\r\n const { width } = useViewport();\r\n\r\n return (\r\n
    \r\n {datiDelega && datiDelegaDaAggiornare && (\r\n
    \r\n \r\n \r\n \r\n \r\n 1280 ? ([\r\n {\r\n cols: [\r\n { className: '', width: '122px' },\r\n { className: 'ml-24', width: '155px' },\r\n { className: 'ml-40', width: '155px' },\r\n { className: 'ml-40', width: '80px' },\r\n { className: 'ml-40', width: '80px' },\r\n ],\r\n },\r\n ])\r\n : ([\r\n {\r\n cols: [\r\n { className: '', width: '122px' },\r\n { className: 'ml-24', width: '155px' },\r\n { className: 'ml-32', width: '155px' },\r\n { className: 'ml-32', width: '80px' },\r\n { className: 'ml-32', width: '40px' },\r\n { className: 'ml-32', width: '120px' },\r\n { className: 'ml-32', width: '54px' },\r\n { className: 'ml-32', width: '22px' },\r\n ],\r\n rows: [{ className: '' }],\r\n },\r\n {\r\n // piccolo\r\n cols: [\r\n { className: '', width: '122px' },\r\n { className: 'ml-24', width: '155px' },\r\n { className: 'ml-24', width: '155px' },\r\n { className: 'ml-24', width: '80px' },\r\n { className: 'ml-24', width: '40px' },\r\n { className: 'ml-24', width: '120px' },\r\n { className: 'ml-24', width: '54px' },\r\n { className: 'ml-24', width: '5px' },\r\n ],\r\n rows: [],\r\n mediaQuery: '(max-width:1645px)',\r\n },\r\n ])}\r\n >\r\n

    Dati Anagrafici

    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {width < 1440 && width > 1280 &&
    }\r\n \r\n \r\n {!appParamVisualizzazione && (\r\n datiDelega.Stato === STATO_DELEGA.APERTA && (\r\n setShowModaleAnagraficaContribuente(true)}\r\n >\r\n \r\n \r\n )\r\n )}\r\n \r\n \r\n
    \r\n

    Domicilio fiscale

    \r\n
    \r\n \r\n \r\n \r\n {/* \r\n \r\n */}\r\n {!appParamVisualizzazione && (\r\n datiDelega.Stato === STATO_DELEGA.APERTA && (\r\n setShowModaleIndirizzoContribuente(true)}\r\n >\r\n {isIndirizzoDaAggiornare ? (\r\n \r\n \r\n \r\n \r\n \r\n ) : (\r\n \r\n )}\r\n \r\n )\r\n )}\r\n \r\n \r\n
    \r\n
    Coobbligato\r\n
    \r\n \r\n Coobbligato, erede, genitore, tutore o curatore fallimentare\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n {!appParamVisualizzazione && (\r\n datiDelega.Stato === STATO_DELEGA.APERTA ? ([\r\n setShowModaleCoobbligato(true)}\r\n >\r\n \r\n ,\r\n datiDelega.CodiceFiscaleCoobbligato && (\r\n setConfirmEliminaCoobbligato({ show: true })}\r\n >\r\n \r\n \r\n ),\r\n ]\r\n ) : [
    ,
    ]\r\n )}\r\n {/* \r\n \r\n */}\r\n \r\n \r\n
    \r\n \r\n \r\n
    \r\n

    Addebito su c/c

    \r\n
    \r\n \r\n {!datiDelega.Iban\r\n && datiDelega.ModalitaPresentazione !== MODALITA_PRESENTAZIONE.PAGO_F24\r\n && datiDelega.ModalitaPresentazione !== MODALITA_PRESENTAZIONE.CGN_POS\r\n ? (\r\n \r\n
    L'assenza di IBAN non permette
    l'invio telematico della delega.
    \r\n
    \r\n )\r\n : (
    )}\r\n {!appParamVisualizzazione && (\r\n datiDelega.Stato === STATO_DELEGA.APERTA ? ([\r\n ,\r\n datiDelega.Iban && (\r\n setConfirmEliminaContoCorrente({ show: true })}\r\n >\r\n \r\n \r\n ),\r\n ]\r\n ) : [
    ,
    ]\r\n )}\r\n \r\n \r\n
    \r\n {loadingErario && !tributiErario\r\n ? \r\n : (\r\n {\r\n ottieniTributiErario();\r\n setTributiInseribili(null);\r\n setShowPanelTributiErario(false);\r\n },\r\n }}\r\n mostraModifica={datiDelega.Stato === STATO_DELEGA.APERTA && !appParamVisualizzazione}\r\n showPanelTributiErario={showPanelTributiErario}\r\n setShowPanelTributiErario={setShowPanelTributiErario}\r\n />\r\n )}\r\n
    \r\n {loadingInps && !tributiInps\r\n ? \r\n : (\r\n {\r\n ottieniTributiInps();\r\n setTributiInseribili(null);\r\n setShowPanelTributiInps(false);\r\n },\r\n }}\r\n mostraModifica={datiDelega.Stato === STATO_DELEGA.APERTA && !appParamVisualizzazione}\r\n showPanelTributiInps={showPanelTributiInps}\r\n setShowPanelTributiInps={setShowPanelTributiInps}\r\n />\r\n )}\r\n
    \r\n
    \r\n {loadingRegioni && !tributiRegioni\r\n ? \r\n : (\r\n {\r\n ottieniTributiRegioni();\r\n setTributiInseribili(null);\r\n setShowPanelTributiRegioni();\r\n },\r\n }}\r\n mostraModifica={datiDelega.Stato === STATO_DELEGA.APERTA && !appParamVisualizzazione}\r\n showPanelTributiRegioni={showPanelTributiRegioni}\r\n setShowPanelTributiRegioni={setShowPanelTributiRegioni}\r\n />\r\n )}\r\n
    \r\n
    \r\n {loadingTributiLocali && !tributiLocali\r\n ? \r\n : (\r\n {\r\n ottieniTributiLocali();\r\n setTributiInseribili(null);\r\n setShowPanelTributiLocali(false);\r\n },\r\n }}\r\n mostraModifica={datiDelega.Stato === STATO_DELEGA.APERTA && !appParamVisualizzazione}\r\n showPanelTributiLocali={showPanelTributiLocali}\r\n setShowPanelTributiLocali={setShowPanelTributiLocali}\r\n />\r\n )}\r\n
    \r\n
    \r\n {loadingInail && !tributiInail\r\n ? \r\n : (\r\n {\r\n ottieniTributiInail();\r\n setTributiInseribili(null);\r\n setShowPanelTributiInail(false);\r\n },\r\n }}\r\n mostraModifica={datiDelega.Stato === STATO_DELEGA.APERTA && !appParamVisualizzazione}\r\n showPanelTributiInail={showPanelTributiInail}\r\n setShowPanelTributiInail={setShowPanelTributiInail}\r\n />\r\n )}\r\n
    \r\n
    \r\n {loadingAltriEnti && !tributiAltriEnti\r\n ? \r\n : (\r\n {\r\n ottieniTributiAltriEnti();\r\n setTributiInseribili(null);\r\n setShowPanelTributiAltriEnti(false);\r\n },\r\n }}\r\n mostraModifica={datiDelega.Stato === STATO_DELEGA.APERTA && !appParamVisualizzazione}\r\n showPanelTributiAltriEnti={showPanelTributiAltriEnti}\r\n setShowPanelTributiAltriEnti={setShowPanelTributiAltriEnti}\r\n />\r\n )}\r\n
    \r\n
    \r\n ) }\r\n
    \r\n );\r\n};\r\n\r\nTipoDelegaOrdinario.defaultProps = {\r\n tributiErario: null,\r\n tributiInps: null,\r\n tributiRegioni: null,\r\n tributiLocali: null,\r\n tributiInail: null,\r\n tributiAltriEnti: null,\r\n\r\n showPanelTributiInail: false,\r\n showPanelTributiErario: false,\r\n showPanelTributiLocali: false,\r\n showPanelTributiInps: false,\r\n showPanelTributiRegioni: false,\r\n showPanelTributiAltriEnti: false,\r\n};\r\n\r\nTipoDelegaOrdinario.propTypes = {\r\n datiDelega: PropTypes.shape({\r\n TipoPersona: PropTypes.number,\r\n Nome: PropTypes.string,\r\n CodiceFiscale: PropTypes.string,\r\n RagioneSociale: PropTypes.string,\r\n DataDiNascita: PropTypes.string,\r\n ComuneNascita: PropTypes.string,\r\n Sesso: PropTypes.string,\r\n ProvinciaNascita: PropTypes.string,\r\n ComuneDomicilio: PropTypes.string,\r\n ProvinciaDomicilio: PropTypes.string,\r\n IndirizzoDomicilio: PropTypes.string,\r\n Cognome: PropTypes.string,\r\n CodiceFiscaleCoobbligato: PropTypes.string,\r\n CodiceAdECoobbligato: PropTypes.string,\r\n Iban: PropTypes.string,\r\n IdDelega: PropTypes.number,\r\n ScadenzaVersamento: PropTypes.string,\r\n Stato: PropTypes.number,\r\n UsaContoCoobbligato: PropTypes.bool,\r\n UsaContoIntermediario: PropTypes.bool,\r\n DescrizioneStato: PropTypes.string,\r\n DescrizioneTipoDelega: PropTypes.string,\r\n ModalitaPresentazione: PropTypes.number,\r\n SoggettoVersante: PropTypes.number,\r\n DenominazioneIntermediario: PropTypes.string,\r\n StatoInvioTelematico: PropTypes.number,\r\n StatoSessioneVersamentoPagoF24: PropTypes.number,\r\n Errata: PropTypes.bool,\r\n IsDaNonPresentare: PropTypes.bool,\r\n }).isRequired,\r\n loading: PropTypes.bool.isRequired,\r\n datiDelegaDaAggiornare: PropTypes.shape({}).isRequired,\r\n setShowModaleCoobbligato: PropTypes.func.isRequired,\r\n setConfirmEliminaCoobbligato: PropTypes.func.isRequired,\r\n setShowModaleVersamento: PropTypes.func.isRequired,\r\n setConfirmEliminaContoCorrente: PropTypes.func.isRequired,\r\n loadingErario: PropTypes.bool.isRequired,\r\n tributiErario: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.shape({})),\r\n PropTypes.shape({}),\r\n ]),\r\n setShowModaleUtilizzoTributo: PropTypes.func.isRequired,\r\n setTributoUtilizzoDaModificare: PropTypes.func.isRequired,\r\n apriConfirmRimuoviUtilizzo: PropTypes.func.isRequired,\r\n ottieniTributiErario: PropTypes.func.isRequired,\r\n loadingInps: PropTypes.bool.isRequired,\r\n tributiInps: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.shape({})),\r\n PropTypes.shape({}),\r\n ]),\r\n ottieniTributiInps: PropTypes.func.isRequired,\r\n loadingRegioni: PropTypes.bool.isRequired,\r\n tributiRegioni: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.shape({})),\r\n PropTypes.shape({}),\r\n ]),\r\n ottieniTributiRegioni: PropTypes.func.isRequired,\r\n loadingTributiLocali: PropTypes.bool.isRequired,\r\n tributiLocali: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.shape({})),\r\n PropTypes.shape({}),\r\n ]),\r\n ottieniTributiLocali: PropTypes.func.isRequired,\r\n loadingInail: PropTypes.bool.isRequired,\r\n tributiInail: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.shape({})),\r\n PropTypes.shape({}),\r\n ]),\r\n ottieniTributiInail: PropTypes.func.isRequired,\r\n loadingAltriEnti: PropTypes.bool.isRequired,\r\n tributiAltriEnti: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.shape({})),\r\n PropTypes.shape({}),\r\n ]),\r\n ottieniTributiAltriEnti: PropTypes.func.isRequired,\r\n setTributiInseribili: PropTypes.func.isRequired,\r\n showPanelTributiErario: PropTypes.bool,\r\n setShowPanelTributiErario: PropTypes.func.isRequired,\r\n showPanelTributiLocali: PropTypes.bool,\r\n setShowPanelTributiLocali: PropTypes.func.isRequired,\r\n showPanelTributiInps: PropTypes.bool,\r\n setShowPanelTributiInps: PropTypes.func.isRequired,\r\n showPanelTributiRegioni: PropTypes.bool,\r\n setShowPanelTributiRegioni: PropTypes.func.isRequired,\r\n showPanelTributiInail: PropTypes.bool,\r\n setShowPanelTributiInail: PropTypes.func.isRequired,\r\n showPanelTributiAltriEnti: PropTypes.bool,\r\n setShowPanelTributiAltriEnti: PropTypes.func.isRequired,\r\n setShowModaleAnagraficaContribuente: PropTypes.func.isRequired,\r\n setShowModaleIndirizzoContribuente: PropTypes.func.isRequired,\r\n isIndirizzoDaAggiornare: PropTypes.bool.isRequired,\r\n};\r\n\r\nexport default TipoDelegaOrdinario;\r\n","import React, { useCallback } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Button, Panel, Table } from 'framework-ui-components/Components/V2';\r\nimport { format } from 'framework-ui-components/Components/Utils/numeriHelper';\r\nimport { EllipsisText, InfoTooltip } from 'framework-ui-components';\r\nimport EditIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/EditIcon';\r\nimport DeleteIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/DeleteIcon';\r\nimport NewAccordion from '../../../components/custom/NewAccordion';\r\nimport { getCurrencyValueNoSymbol } from '../../../utils/format';\r\nimport LabelValueDetail from '../../../components/custom/LabelValueDetail';\r\n\r\nconst SezioneAccise = ({\r\n listaTributi,\r\n modificaUtilizzo,\r\n showModaleModificaUtilizzo,\r\n rimuoviUtilizzo,\r\n mostraModifica,\r\n visualizzazione,\r\n showPanelTributiAccise,\r\n setShowPanelTributiAccise,\r\n}) => (\r\n 0)}\r\n isCollapsable\r\n >\r\n {showPanelTributiAccise && (\r\n setShowPanelTributiAccise(false)}\r\n />\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {listaTributi && listaTributi.Tributi.length > 0 ? (\r\n \r\n {listaTributi && listaTributi.Tributi.map((tributo, idx) => (\r\n // eslint-disable-next-line react/no-array-index-key\r\n \r\n \r\n {tributo.CodiceEnte}\r\n \r\n \r\n \r\n
    \r\n {tributo.DescrizioneCompostaProvincia || '-'}\r\n
    \r\n
    \r\n \r\n \r\n {tributo.Codice}\r\n {tributo.Descrizione && (\r\n
    \r\n 13}>\r\n {tributo.Descrizione}\r\n \r\n
    \r\n )}\r\n
    \r\n \r\n \r\n {tributo.CodiceIdentificativo || '-'}\r\n \r\n \r\n \r\n {tributo.DescrizioneRateazione || '-'}\r\n \r\n \r\n {tributo.MeseRiferimento || '-'}\r\n \r\n \r\n {tributo.AnnoRiferimento || '-'}\r\n \r\n \r\n \r\n \r\n \r\n {mostraModifica\r\n && (\r\n
    \r\n {\r\n modificaUtilizzo(\r\n {\r\n idTributo: tributo.IdTributo,\r\n importo: tributo.Importo,\r\n descrizione: `Modifica debito: ${tributo.Codice}`,\r\n isDebito: true,\r\n sezione: 'Accise',\r\n },\r\n );\r\n showModaleModificaUtilizzo(true);\r\n }}\r\n >\r\n \r\n \r\n
    \r\n rimuoviUtilizzo.func(tributo.IdTributo, true, rimuoviUtilizzo.onSuccessCallback)}\r\n >\r\n \r\n \r\n
    \r\n
    \r\n )}\r\n
    \r\n
    \r\n ))}\r\n {listaTributi && listaTributi.Tributi.length > 0 && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n
    \r\n ) : (\r\n \r\n \r\n \r\n -\r\n \r\n \r\n \r\n -\r\n \r\n \r\n \r\n -\r\n \r\n \r\n \r\n -\r\n \r\n \r\n \r\n -\r\n \r\n \r\n -\r\n \r\n \r\n -\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n
    \r\n \r\n);\r\n\r\nSezioneAccise.defaultProps = {\r\n mostraModifica: false,\r\n visualizzazione: false,\r\n showPanelTributiAccise: false,\r\n};\r\n\r\nSezioneAccise.propTypes = {\r\n listaTributi: PropTypes.shape({\r\n CodiceAttoAdE: PropTypes.string,\r\n CodiceUfficioAdE: PropTypes.string,\r\n Tributi: PropTypes.arrayOf(PropTypes.shape({\r\n AnnoRiferimento: PropTypes.number.isRequired,\r\n Codice: PropTypes.string.isRequired,\r\n CodiceAttoAdE: PropTypes.string,\r\n CodiceUfficioAdE: PropTypes.string,\r\n Descrizione: PropTypes.string.isRequired,\r\n Importo: PropTypes.number.isRequired,\r\n IsCredito: PropTypes.bool.isRequired,\r\n ValoreColonnaMultiuso: PropTypes.string,\r\n })),\r\n TotaleImportiDebito: PropTypes.number.isRequired,\r\n TotaleImportiCredito: PropTypes.number.isRequired,\r\n Saldo: PropTypes.number.isRequired,\r\n }).isRequired,\r\n modificaUtilizzo: PropTypes.func.isRequired,\r\n showModaleModificaUtilizzo: PropTypes.func.isRequired,\r\n rimuoviUtilizzo: PropTypes.shape({\r\n func: PropTypes.func.isRequired,\r\n onSuccessCallback: PropTypes.func.isRequired,\r\n }).isRequired,\r\n mostraModifica: PropTypes.bool,\r\n visualizzazione: PropTypes.bool,\r\n showPanelTributiAccise: PropTypes.bool,\r\n setShowPanelTributiAccise: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default SezioneAccise;\r\n","import React from 'react';\r\nimport {\r\n InfoTooltip,\r\n Spinner,\r\n EllipsisText,\r\n IconBadge,\r\n Tooltip,\r\n} from 'framework-ui-components';\r\nimport { useSelector } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport { JustADate } from 'framework-taskforce/utils/date';\r\nimport {\r\n Button,\r\n} from 'framework-ui-components/Components/V2';\r\nimport DeleteIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/DeleteIcon';\r\nimport useViewport, {\r\n} from 'framework-ui-components/Components/V2/Hooks/useViewport';\r\nimport EditIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/EditIcon';\r\nimport NewAccordion from '../../components/custom/NewAccordion';\r\nimport LabelValueDetail from '../../components/custom/LabelValueDetail';\r\nimport TemplateGrid from '../../components/TemplateGrid/TemplateGrid';\r\nimport SezioneErario from './sezioneErario/SezioneErario';\r\nimport SezioneTributiLocali from './sezioneTributiLocali/SezioneTributiLocali';\r\nimport SezioneInps from './sezioneInps/SezioneInps';\r\nimport SezioneRegioni from './sezioneRegioni/SezioneRegioni';\r\nimport { TIPO_PERSONA } from '../../models/anagrafica';\r\nimport { MODALITA_PRESENTAZIONE, STATO_DELEGA } from '../../models/delega';\r\nimport SezioneAccise from './sezioneAccise/SezioneAccise';\r\n\r\nconst TipoDelegaAccise = ({\r\n datiDelega,\r\n loading,\r\n datiDelegaDaAggiornare,\r\n setShowModaleCoobbligato,\r\n setConfirmEliminaCoobbligato,\r\n setShowModaleVersamento,\r\n setConfirmEliminaContoCorrente,\r\n loadingErario,\r\n tributiErario,\r\n setShowModaleUtilizzoTributo,\r\n setTributoUtilizzoDaModificare,\r\n apriConfirmRimuoviUtilizzo,\r\n ottieniTributiErario,\r\n loadingInps,\r\n tributiInps,\r\n ottieniTributiInps,\r\n loadingRegioni,\r\n tributiRegioni,\r\n ottieniTributiRegioni,\r\n loadingTributiLocali,\r\n tributiLocali,\r\n ottieniTributiLocali,\r\n setTributiInseribili,\r\n showPanelTributiErario,\r\n setShowPanelTributiErario,\r\n showPanelTributiLocali,\r\n setShowPanelTributiLocali,\r\n showPanelTributiInps,\r\n setShowPanelTributiInps,\r\n showPanelTributiRegioni,\r\n setShowPanelTributiRegioni,\r\n loadingAccise,\r\n tributiAccise,\r\n ottieniTributiAccise,\r\n showPanelTributiAccise,\r\n setShowPanelTributiAccise,\r\n setShowModaleAnagraficaContribuente,\r\n setShowModaleIndirizzoContribuente,\r\n isIndirizzoDaAggiornare,\r\n}) => {\r\n const appParamVisualizzazione = useSelector((store) => !!store.appParams.visualizzazione);\r\n\r\n const { width } = useViewport();\r\n\r\n return (\r\n
    \r\n {datiDelega && datiDelegaDaAggiornare && (\r\n
    \r\n \r\n \r\n \r\n \r\n 1280 ? ([\r\n {\r\n cols: [\r\n { className: '', width: '122px' },\r\n { className: 'ml-24', width: '155px' },\r\n { className: 'ml-40', width: '155px' },\r\n { className: 'ml-40', width: '80px' },\r\n { className: 'ml-40', width: '80px' },\r\n ],\r\n },\r\n ])\r\n : ([\r\n {\r\n cols: [\r\n { className: '', width: '122px' },\r\n { className: 'ml-24', width: '155px' },\r\n { className: 'ml-32', width: '155px' },\r\n { className: 'ml-32', width: '80px' },\r\n { className: 'ml-32', width: '40px' },\r\n { className: 'ml-32', width: '120px' },\r\n { className: 'ml-32', width: '54px' },\r\n { className: 'ml-32', width: '22px' },\r\n ],\r\n rows: [{ className: '' }],\r\n },\r\n {\r\n // piccolo\r\n cols: [\r\n { className: '', width: '122px' },\r\n { className: 'ml-24', width: '155px' },\r\n { className: 'ml-24', width: '155px' },\r\n { className: 'ml-24', width: '80px' },\r\n { className: 'ml-24', width: '40px' },\r\n { className: 'ml-24', width: '120px' },\r\n { className: 'ml-24', width: '54px' },\r\n { className: 'ml-24', width: '5px' },\r\n ],\r\n rows: [],\r\n mediaQuery: '(max-width:1645px)',\r\n },\r\n ])}\r\n >\r\n

    Dati Anagrafici

    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {width < 1440 && width > 1280 &&
    }\r\n \r\n \r\n {!appParamVisualizzazione && (\r\n datiDelega.Stato === STATO_DELEGA.APERTA && (\r\n setShowModaleAnagraficaContribuente(true)}\r\n >\r\n \r\n \r\n )\r\n )}\r\n \r\n \r\n
    \r\n

    Domicilio fiscale

    \r\n
    \r\n \r\n \r\n \r\n {/* \r\n \r\n */}\r\n {!appParamVisualizzazione && (\r\n datiDelega.Stato === STATO_DELEGA.APERTA && (\r\n setShowModaleIndirizzoContribuente(true)}\r\n >\r\n {isIndirizzoDaAggiornare ? (\r\n \r\n \r\n \r\n \r\n \r\n ) : (\r\n \r\n )}\r\n \r\n )\r\n )}\r\n \r\n \r\n
    \r\n
    Coobbligato\r\n
    \r\n \r\n Coobbligato, erede, genitore, tutore o curatore fallimentare\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n {!appParamVisualizzazione && (\r\n datiDelega.Stato === STATO_DELEGA.APERTA ? ([\r\n setShowModaleCoobbligato(true)}\r\n >\r\n \r\n ,\r\n datiDelega.CodiceFiscaleCoobbligato && (\r\n setConfirmEliminaCoobbligato({ show: true })}\r\n >\r\n \r\n \r\n ),\r\n ]\r\n ) : [
    ,
    ]\r\n )}\r\n {/* \r\n \r\n */}\r\n \r\n \r\n
    \r\n \r\n \r\n
    \r\n

    Addebito su c/c

    \r\n
    \r\n \r\n {!datiDelega.Iban\r\n && datiDelega.ModalitaPresentazione !== MODALITA_PRESENTAZIONE.PAGO_F24\r\n && datiDelega.ModalitaPresentazione !== MODALITA_PRESENTAZIONE.CGN_POS\r\n ? (\r\n \r\n
    L'assenza di IBAN non permette
    l'invio telematico della delega.
    \r\n
    \r\n )\r\n : (
    )}\r\n {!appParamVisualizzazione && (\r\n datiDelega.Stato === STATO_DELEGA.APERTA ? ([\r\n ,\r\n datiDelega.Iban && (\r\n setConfirmEliminaContoCorrente({ show: true })}\r\n >\r\n \r\n \r\n ),\r\n ]\r\n ) : [
    ,
    ]\r\n )}\r\n \r\n \r\n
    \r\n {loadingErario && !tributiErario\r\n ? \r\n : (\r\n {\r\n ottieniTributiErario();\r\n setTributiInseribili(null);\r\n setShowPanelTributiErario(false);\r\n },\r\n }}\r\n mostraModifica={datiDelega.Stato === STATO_DELEGA.APERTA && !appParamVisualizzazione}\r\n showPanelTributiErario={showPanelTributiErario}\r\n setShowPanelTributiErario={setShowPanelTributiErario}\r\n />\r\n )}\r\n
    \r\n {loadingInps && !tributiInps\r\n ? \r\n : (\r\n {\r\n ottieniTributiInps();\r\n setTributiInseribili(null);\r\n setShowPanelTributiInps(false);\r\n },\r\n }}\r\n mostraModifica={datiDelega.Stato === STATO_DELEGA.APERTA && !appParamVisualizzazione}\r\n showPanelTributiInps={showPanelTributiInps}\r\n setShowPanelTributiInps={setShowPanelTributiInps}\r\n />\r\n )}\r\n
    \r\n
    \r\n {loadingRegioni && !tributiRegioni\r\n ? \r\n : (\r\n {\r\n ottieniTributiRegioni();\r\n setTributiInseribili(null);\r\n setShowPanelTributiRegioni();\r\n },\r\n }}\r\n mostraModifica={datiDelega.Stato === STATO_DELEGA.APERTA && !appParamVisualizzazione}\r\n showPanelTributiRegioni={showPanelTributiRegioni}\r\n setShowPanelTributiRegioni={setShowPanelTributiRegioni}\r\n />\r\n )}\r\n
    \r\n
    \r\n {loadingTributiLocali && !tributiLocali\r\n ? \r\n : (\r\n {\r\n ottieniTributiLocali();\r\n setTributiInseribili(null);\r\n setShowPanelTributiLocali(false);\r\n },\r\n }}\r\n mostraModifica={datiDelega.Stato === STATO_DELEGA.APERTA && !appParamVisualizzazione}\r\n showPanelTributiLocali={showPanelTributiLocali}\r\n setShowPanelTributiLocali={setShowPanelTributiLocali}\r\n />\r\n )}\r\n
    \r\n
    \r\n {loadingAccise && !tributiAccise\r\n ? \r\n : (\r\n {\r\n ottieniTributiAccise();\r\n setTributiInseribili(null);\r\n setShowPanelTributiAccise(false);\r\n },\r\n }}\r\n mostraModifica={datiDelega.Stato === STATO_DELEGA.APERTA && !appParamVisualizzazione}\r\n showPanelTributiAccise={showPanelTributiAccise}\r\n setShowPanelTributiAccise={setShowPanelTributiAccise}\r\n />\r\n )}\r\n
    \r\n
    \r\n ) }\r\n
    \r\n );\r\n};\r\n\r\nTipoDelegaAccise.defaultProps = {\r\n};\r\n\r\nTipoDelegaAccise.propTypes = {\r\n datiDelega: PropTypes.shape({\r\n TipoPersona: PropTypes.number,\r\n Nome: PropTypes.string,\r\n CodiceFiscale: PropTypes.string,\r\n RagioneSociale: PropTypes.string,\r\n DataDiNascita: PropTypes.string,\r\n ComuneNascita: PropTypes.string,\r\n Sesso: PropTypes.string,\r\n ProvinciaNascita: PropTypes.string,\r\n ComuneDomicilio: PropTypes.string,\r\n ProvinciaDomicilio: PropTypes.string,\r\n IndirizzoDomicilio: PropTypes.string,\r\n Cognome: PropTypes.string,\r\n CodiceFiscaleCoobbligato: PropTypes.string,\r\n CodiceAdECoobbligato: PropTypes.string,\r\n Iban: PropTypes.string,\r\n IdDelega: PropTypes.number,\r\n ScadenzaVersamento: PropTypes.string,\r\n Stato: PropTypes.number,\r\n UsaContoCoobbligato: PropTypes.bool,\r\n UsaContoIntermediario: PropTypes.bool,\r\n DescrizioneStato: PropTypes.string,\r\n DescrizioneTipoDelega: PropTypes.string,\r\n ModalitaPresentazione: PropTypes.number,\r\n SoggettoVersante: PropTypes.number,\r\n DenominazioneIntermediario: PropTypes.string,\r\n StatoInvioTelematico: PropTypes.number,\r\n StatoSessioneVersamentoPagoF24: PropTypes.number,\r\n Errata: PropTypes.bool,\r\n IsDelegaConCompensazioneVerticale: PropTypes.bool,\r\n IsDelegaConCompensazioneOrizzontale: PropTypes.bool,\r\n IsDaNonPresentare: PropTypes.bool,\r\n }).isRequired,\r\n loading: PropTypes.bool.isRequired,\r\n datiDelegaDaAggiornare: PropTypes.bool.isRequired,\r\n setShowModaleCoobbligato: PropTypes.func.isRequired,\r\n setConfirmEliminaCoobbligato: PropTypes.func.isRequired,\r\n setShowModaleVersamento: PropTypes.func.isRequired,\r\n setConfirmEliminaContoCorrente: PropTypes.func.isRequired,\r\n loadingErario: PropTypes.bool.isRequired,\r\n tributiErario: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\r\n setShowModaleUtilizzoTributo: PropTypes.func.isRequired,\r\n setTributoUtilizzoDaModificare: PropTypes.func.isRequired,\r\n apriConfirmRimuoviUtilizzo: PropTypes.func.isRequired,\r\n ottieniTributiErario: PropTypes.func.isRequired,\r\n loadingInps: PropTypes.bool.isRequired,\r\n tributiInps: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\r\n ottieniTributiInps: PropTypes.func.isRequired,\r\n loadingRegioni: PropTypes.bool.isRequired,\r\n tributiRegioni: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\r\n ottieniTributiRegioni: PropTypes.func.isRequired,\r\n loadingTributiLocali: PropTypes.bool.isRequired,\r\n tributiLocali: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\r\n ottieniTributiLocali: PropTypes.func.isRequired,\r\n loadingAccise: PropTypes.bool.isRequired,\r\n tributiAccise: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\r\n ottieniTributiAccise: PropTypes.func.isRequired,\r\n setTributiInseribili: PropTypes.func.isRequired,\r\n showPanelTributiErario: PropTypes.bool.isRequired,\r\n setShowPanelTributiErario: PropTypes.func.isRequired,\r\n showPanelTributiLocali: PropTypes.bool.isRequired,\r\n setShowPanelTributiLocali: PropTypes.func.isRequired,\r\n showPanelTributiInps: PropTypes.bool.isRequired,\r\n setShowPanelTributiInps: PropTypes.func.isRequired,\r\n showPanelTributiRegioni: PropTypes.bool.isRequired,\r\n setShowPanelTributiRegioni: PropTypes.func.isRequired,\r\n showPanelTributiAccise: PropTypes.bool.isRequired,\r\n setShowPanelTributiAccise: PropTypes.func.isRequired,\r\n setShowModaleAnagraficaContribuente: PropTypes.func.isRequired,\r\n setShowModaleIndirizzoContribuente: PropTypes.func.isRequired,\r\n isIndirizzoDaAggiornare: PropTypes.bool.isRequired,\r\n};\r\n\r\nexport default TipoDelegaAccise;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n EllipsisText, InfoTooltip,\r\n} from 'framework-ui-components';\r\nimport { Button, Panel, Table } from 'framework-ui-components/Components/V2';\r\nimport { format } from 'framework-ui-components/Components/Utils/numeriHelper';\r\nimport EditIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/EditIcon';\r\nimport DeleteIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/DeleteIcon';\r\nimport NewAccordion from '../../../components/custom/NewAccordion';\r\nimport { getCurrencyValueNoSymbol } from '../../../utils/format';\r\nimport LabelValueDetail from '../../../components/custom/LabelValueDetail';\r\n\r\nconst SezioneElide = ({\r\n listaTributi,\r\n modificaUtilizzo,\r\n showModaleModificaUtilizzo,\r\n rimuoviUtilizzo,\r\n mostraModifica,\r\n showPanelTributiElide,\r\n setShowPanelTributiElide,\r\n}) => (\r\n 0)}\r\n isCollapsable\r\n >\r\n {showPanelTributiElide && (\r\n setShowPanelTributiElide(false)}\r\n />\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {listaTributi && listaTributi.Tributi.length > 0 ? (\r\n \r\n {listaTributi && listaTributi.Tributi.map((tributo, idx) => (\r\n // eslint-disable-next-line react/no-array-index-key\r\n \r\n \r\n
    \r\n {tributo.TipoVersamento || '-'}\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n {tributo.ElementiIdentificativi || '-'}\r\n
    \r\n
    \r\n \r\n \r\n {tributo.Codice}\r\n {tributo.Descrizione && (\r\n
    \r\n 13}>\r\n {tributo.Descrizione}\r\n \r\n
    \r\n )}\r\n
    \r\n \r\n {tributo.AnnoRiferimento || '-'}\r\n \r\n \r\n \r\n \r\n {mostraModifica\r\n && (\r\n
    \r\n {\r\n modificaUtilizzo(\r\n {\r\n idTributo: tributo.IdTributo,\r\n importo: tributo.Importo,\r\n descrizione: `Modifica ${tributo.IsDebito ? 'debito' : 'credito'}: ${tributo.Codice}`,\r\n isDebito: tributo.IsDebito,\r\n sezione: 'Elide',\r\n },\r\n );\r\n showModaleModificaUtilizzo(true);\r\n }}\r\n >\r\n \r\n \r\n
    \r\n rimuoviUtilizzo.func(tributo.IdTributo, tributo.IsDebito, rimuoviUtilizzo.onSuccessCallback)}\r\n >\r\n \r\n \r\n
    \r\n
    \r\n )}\r\n
    \r\n \r\n
    \r\n ))}\r\n {listaTributi && listaTributi.Tributi.length > 0 && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n
    \r\n ) : (\r\n \r\n \r\n \r\n -\r\n \r\n \r\n \r\n -\r\n \r\n \r\n -\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n
    \r\n \r\n);\r\n\r\nSezioneElide.defaultProps = {\r\n mostraModifica: false,\r\n showPanelTributiElide: false,\r\n};\r\n\r\nSezioneElide.propTypes = {\r\n listaTributi: PropTypes.shape({\r\n CodiceAttoAdE: PropTypes.string,\r\n CodiceUfficioAdE: PropTypes.string,\r\n Tributi: PropTypes.arrayOf(PropTypes.shape({\r\n AnnoRiferimento: PropTypes.number.isRequired,\r\n Codice: PropTypes.string.isRequired,\r\n Descrizione: PropTypes.string.isRequired,\r\n Importo: PropTypes.number.isRequired,\r\n IsCredito: PropTypes.bool.isRequired,\r\n IsDebito: PropTypes.bool.isRequired,\r\n ValoreColonnaMultiuso: PropTypes.string,\r\n })),\r\n TotaleImportiDebito: PropTypes.number.isRequired,\r\n TotaleImportiCredito: PropTypes.number.isRequired,\r\n Saldo: PropTypes.number.isRequired,\r\n }).isRequired,\r\n modificaUtilizzo: PropTypes.func.isRequired,\r\n showModaleModificaUtilizzo: PropTypes.func.isRequired,\r\n rimuoviUtilizzo: PropTypes.shape({\r\n func: PropTypes.func.isRequired,\r\n onSuccessCallback: PropTypes.func.isRequired,\r\n }).isRequired,\r\n mostraModifica: PropTypes.bool,\r\n showPanelTributiElide: PropTypes.bool,\r\n setShowPanelTributiElide: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default SezioneElide;\r\n","import React from 'react';\r\nimport {\r\n InfoTooltip,\r\n Spinner,\r\n EllipsisText,\r\n Tooltip,\r\n IconBadge,\r\n} from 'framework-ui-components';\r\nimport { useSelector } from 'react-redux';\r\nimport { JustADate } from 'framework-taskforce/utils/date';\r\nimport {\r\n Button,\r\n} from 'framework-ui-components/Components/V2';\r\nimport DeleteIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/DeleteIcon';\r\nimport useViewport, {\r\n} from 'framework-ui-components/Components/V2/Hooks/useViewport';\r\nimport EditIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/EditIcon';\r\nimport PropTypes from 'prop-types';\r\nimport NewAccordion from '../../components/custom/NewAccordion';\r\nimport LabelValueDetail from '../../components/custom/LabelValueDetail';\r\nimport TemplateGrid from '../../components/TemplateGrid/TemplateGrid';\r\nimport { TIPO_PERSONA } from '../../models/anagrafica';\r\nimport { MODALITA_PRESENTAZIONE, STATO_DELEGA } from '../../models/delega';\r\nimport SezioneElide from './sezioneElide/SezioneElide';\r\n\r\nconst TipoDelegaElide = ({\r\n datiDelega,\r\n loading,\r\n datiDelegaDaAggiornare,\r\n setShowModaleCoobbligato,\r\n setConfirmEliminaCoobbligato,\r\n setShowModaleVersamento,\r\n setConfirmEliminaContoCorrente,\r\n setShowModaleUtilizzoTributo,\r\n setTributoUtilizzoDaModificare,\r\n apriConfirmRimuoviUtilizzo,\r\n setTributiInseribili,\r\n loadingElide,\r\n tributiElide,\r\n ottieniTributiElide,\r\n showPanelTributiElide,\r\n setShowPanelTributiElide,\r\n setShowModaleAnagraficaContribuente,\r\n setShowModaleIndirizzoContribuente,\r\n isIndirizzoDaAggiornare,\r\n}) => {\r\n const appParamVisualizzazione = useSelector((store) => !!store.appParams.visualizzazione);\r\n\r\n const { width } = useViewport();\r\n\r\n return (\r\n
    \r\n {datiDelega && datiDelegaDaAggiornare && (\r\n
    \r\n \r\n \r\n \r\n \r\n 1280 ? ([\r\n {\r\n cols: [\r\n { className: '', width: '122px' },\r\n { className: 'ml-24', width: '155px' },\r\n { className: 'ml-40', width: '155px' },\r\n { className: 'ml-40', width: '80px' },\r\n { className: 'ml-40', width: '80px' },\r\n ],\r\n },\r\n ])\r\n : ([\r\n {\r\n cols: [\r\n { className: '', width: '122px' },\r\n { className: 'ml-24', width: '155px' },\r\n { className: 'ml-32', width: '155px' },\r\n { className: 'ml-32', width: '80px' },\r\n { className: 'ml-32', width: '40px' },\r\n { className: 'ml-32', width: '120px' },\r\n { className: 'ml-32', width: '54px' },\r\n { className: 'ml-32', width: '22px' },\r\n ],\r\n rows: [{ className: '' }],\r\n },\r\n {\r\n // piccolo\r\n cols: [\r\n { className: '', width: '122px' },\r\n { className: 'ml-24', width: '155px' },\r\n { className: 'ml-24', width: '155px' },\r\n { className: 'ml-24', width: '80px' },\r\n { className: 'ml-24', width: '40px' },\r\n { className: 'ml-24', width: '120px' },\r\n { className: 'ml-24', width: '54px' },\r\n { className: 'ml-24', width: '5px' },\r\n ],\r\n rows: [],\r\n mediaQuery: '(max-width:1645px)',\r\n },\r\n ])}\r\n >\r\n

    Dati Anagrafici

    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {width < 1440 && width > 1280 &&
    }\r\n \r\n \r\n {!appParamVisualizzazione && (\r\n datiDelega.Stato === STATO_DELEGA.APERTA && (\r\n setShowModaleAnagraficaContribuente(true)}\r\n >\r\n \r\n \r\n )\r\n )}\r\n \r\n \r\n
    \r\n

    Domicilio fiscale

    \r\n
    \r\n \r\n \r\n \r\n {!appParamVisualizzazione && (\r\n datiDelega.Stato === STATO_DELEGA.APERTA && (\r\n setShowModaleIndirizzoContribuente(true)}\r\n >\r\n {isIndirizzoDaAggiornare ? (\r\n \r\n \r\n \r\n \r\n \r\n ) : (\r\n \r\n )}\r\n \r\n )\r\n )}\r\n \r\n \r\n
    \r\n
    Coobbligato\r\n
    \r\n \r\n Coobbligato, erede, genitore, tutore o curatore fallimentare\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n {!appParamVisualizzazione && (\r\n datiDelega.Stato === STATO_DELEGA.APERTA ? ([\r\n setShowModaleCoobbligato(true)}\r\n >\r\n \r\n ,\r\n datiDelega.CodiceFiscaleCoobbligato && (\r\n setConfirmEliminaCoobbligato({ show: true })}\r\n >\r\n \r\n \r\n ),\r\n ]\r\n ) : [
    ,
    ]\r\n )}\r\n \r\n \r\n
    \r\n \r\n \r\n
    \r\n

    Addebito su c/c

    \r\n
    \r\n \r\n {!datiDelega.Iban\r\n && datiDelega.ModalitaPresentazione !== MODALITA_PRESENTAZIONE.PAGO_F24\r\n && datiDelega.ModalitaPresentazione !== MODALITA_PRESENTAZIONE.CGN_POS\r\n ? (\r\n \r\n
    L'assenza di IBAN non permette
    l'invio telematico della delega.
    \r\n
    \r\n )\r\n : (
    )}\r\n {!appParamVisualizzazione && (\r\n datiDelega.Stato === STATO_DELEGA.APERTA ? ([\r\n ,\r\n datiDelega.Iban && (\r\n setConfirmEliminaContoCorrente({ show: true })}\r\n >\r\n \r\n \r\n ),\r\n ]\r\n ) : [
    ,
    ]\r\n )}\r\n \r\n \r\n
    \r\n {loadingElide && !tributiElide\r\n ? \r\n : (\r\n {\r\n ottieniTributiElide();\r\n setTributiInseribili(null);\r\n setShowPanelTributiElide(false);\r\n },\r\n }}\r\n mostraModifica={datiDelega.Stato === STATO_DELEGA.APERTA && !appParamVisualizzazione}\r\n showPanelTributiElide={showPanelTributiElide}\r\n setShowPanelTributiElide={setShowPanelTributiElide}\r\n />\r\n )}\r\n
    \r\n ) }\r\n
    \r\n );\r\n};\r\n\r\nTipoDelegaElide.defaultProps = {\r\n};\r\n\r\nTipoDelegaElide.propTypes = {\r\n datiDelega: PropTypes.shape({\r\n TipoPersona: PropTypes.number,\r\n Nome: PropTypes.string,\r\n CodiceFiscale: PropTypes.string,\r\n RagioneSociale: PropTypes.string,\r\n DataDiNascita: PropTypes.string,\r\n ComuneNascita: PropTypes.string,\r\n Sesso: PropTypes.string,\r\n ProvinciaNascita: PropTypes.string,\r\n ComuneDomicilio: PropTypes.string,\r\n ProvinciaDomicilio: PropTypes.string,\r\n IndirizzoDomicilio: PropTypes.string,\r\n Cognome: PropTypes.string,\r\n CodiceFiscaleCoobbligato: PropTypes.string,\r\n CodiceAdECoobbligato: PropTypes.string,\r\n Iban: PropTypes.string,\r\n IdDelega: PropTypes.number,\r\n ScadenzaVersamento: PropTypes.string,\r\n Stato: PropTypes.number,\r\n UsaContoCoobbligato: PropTypes.bool,\r\n UsaContoIntermediario: PropTypes.bool,\r\n DescrizioneStato: PropTypes.string,\r\n DescrizioneTipoDelega: PropTypes.string,\r\n ModalitaPresentazione: PropTypes.number,\r\n SoggettoVersante: PropTypes.number,\r\n DenominazioneIntermediario: PropTypes.string,\r\n StatoInvioTelematico: PropTypes.number,\r\n StatoSessioneVersamentoPagoF24: PropTypes.number,\r\n Errata: PropTypes.bool,\r\n IsDelegaConCompensazioneVerticale: PropTypes.bool,\r\n IsDelegaConCompensazioneOrizzontale: PropTypes.bool,\r\n IsDaNonPresentare: PropTypes.bool,\r\n }).isRequired,\r\n loading: PropTypes.bool.isRequired,\r\n datiDelegaDaAggiornare: PropTypes.bool.isRequired,\r\n setShowModaleCoobbligato: PropTypes.func.isRequired,\r\n setConfirmEliminaCoobbligato: PropTypes.func.isRequired,\r\n setShowModaleVersamento: PropTypes.func.isRequired,\r\n setConfirmEliminaContoCorrente: PropTypes.func.isRequired,\r\n setShowModaleUtilizzoTributo: PropTypes.func.isRequired,\r\n setTributoUtilizzoDaModificare: PropTypes.func.isRequired,\r\n apriConfirmRimuoviUtilizzo: PropTypes.func.isRequired,\r\n loadingElide: PropTypes.bool.isRequired,\r\n tributiElide: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.shape({})),\r\n PropTypes.shape({}),\r\n ]).isRequired,\r\n ottieniTributiElide: PropTypes.func.isRequired,\r\n setTributiInseribili: PropTypes.func.isRequired,\r\n showPanelTributiElide: PropTypes.bool.isRequired,\r\n setShowPanelTributiElide: PropTypes.func.isRequired,\r\n setShowModaleAnagraficaContribuente: PropTypes.func.isRequired,\r\n setShowModaleIndirizzoContribuente: PropTypes.func.isRequired,\r\n isIndirizzoDaAggiornare: PropTypes.bool.isRequired,\r\n};\r\n\r\nexport default TipoDelegaElide;\r\n","import React from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport useViewport from 'framework-ui-components/Components/V2/Hooks/useViewport';\r\nimport { TIPO_DELEGA } from '../../models/delega';\r\nimport TipoDelegaOrdinario from './TipoDelegaOrdinario';\r\nimport TipoDelegaAccise from './TipoDelegaAccise';\r\nimport TipoDelegaElide from './TipoDelegaElide';\r\n\r\nconst SezioniDelega = ({\r\n datiDelega,\r\n loading,\r\n datiDelegaDaAggiornare,\r\n setShowModaleCoobbligato,\r\n setConfirmEliminaCoobbligato,\r\n setShowModaleVersamento,\r\n setConfirmEliminaContoCorrente,\r\n loadingErario,\r\n tributiErario,\r\n setShowModaleUtilizzoTributo,\r\n setTributoUtilizzoDaModificare,\r\n apriConfirmRimuoviUtilizzo,\r\n ottieniTributiErario,\r\n loadingInps,\r\n tributiInps,\r\n ottieniTributiInps,\r\n loadingRegioni,\r\n tributiRegioni,\r\n ottieniTributiRegioni,\r\n loadingTributiLocali,\r\n tributiLocali,\r\n ottieniTributiLocali,\r\n loadingInail,\r\n tributiInail,\r\n ottieniTributiInail,\r\n loadingAltriEnti,\r\n tributiAltriEnti,\r\n ottieniTributiAltriEnti,\r\n setTributiInseribili,\r\n showPanelTributiErario,\r\n setShowPanelTributiErario,\r\n showPanelTributiLocali,\r\n setShowPanelTributiLocali,\r\n showPanelTributiInps,\r\n setShowPanelTributiInps,\r\n showPanelTributiRegioni,\r\n setShowPanelTributiRegioni,\r\n showPanelTributiInail,\r\n setShowPanelTributiInail,\r\n showPanelTributiAltriEnti,\r\n setShowPanelTributiAltriEnti,\r\n loadingAccise,\r\n tributiAccise,\r\n ottieniTributiAccise,\r\n showPanelTributiAccise,\r\n setShowPanelTributiAccise,\r\n loadingElide,\r\n tributiElide,\r\n ottieniTributiElide,\r\n showPanelTributiElide,\r\n setShowPanelTributiElide,\r\n setShowModaleAnagraficaContribuente,\r\n setShowModaleIndirizzoContribuente,\r\n isIndirizzoDaAggiornare,\r\n}) => {\r\n const noToolbar = useSelector((store) => !!store.appParams.noToolbar);\r\n const noBack = useSelector((store) => !!store.appParams.noBack);\r\n\r\n const { width } = useViewport();\r\n\r\n return (\r\n
    = 1280 ? 'div__left_smol' : 'div__left'}`\r\n }\r\n >\r\n {datiDelega.TipoDelega === TIPO_DELEGA.ORDINARIO && (\r\n \r\n )}\r\n {datiDelega.TipoDelega === TIPO_DELEGA.ACCISE && (\r\n \r\n )}\r\n {datiDelega.TipoDelega === TIPO_DELEGA.ELIDE && (\r\n \r\n )}\r\n
    \r\n );\r\n};\r\n\r\nSezioniDelega.defaultProps = {\r\n tributiErario: null,\r\n tributiInps: null,\r\n tributiRegioni: null,\r\n tributiLocali: null,\r\n tributiInail: null,\r\n tributiAltriEnti: null,\r\n tributiAccise: null,\r\n tributiElide: null,\r\n showPanelTributiErario: false,\r\n showPanelTributiLocali: false,\r\n showPanelTributiAccise: false,\r\n showPanelTributiInps: false,\r\n showPanelTributiRegioni: false,\r\n showPanelTributiInail: false,\r\n showPanelTributiAltriEnti: false,\r\n showPanelTributiElide: false,\r\n};\r\n\r\nSezioniDelega.propTypes = {\r\n datiDelega: PropTypes.shape({\r\n TipoDelega: PropTypes.number,\r\n TipoPersona: PropTypes.number,\r\n Nome: PropTypes.string,\r\n CodiceFiscale: PropTypes.string,\r\n RagioneSociale: PropTypes.string,\r\n DataDiNascita: PropTypes.string,\r\n ComuneNascita: PropTypes.string,\r\n Sesso: PropTypes.string,\r\n ProvinciaNascita: PropTypes.string,\r\n ComuneDomicilio: PropTypes.string,\r\n ProvinciaDomicilio: PropTypes.string,\r\n IndirizzoDomicilio: PropTypes.string,\r\n Cognome: PropTypes.string,\r\n CodiceFiscaleCoobbligato: PropTypes.string,\r\n CodiceAdECoobbligato: PropTypes.string,\r\n Iban: PropTypes.string,\r\n IdDelega: PropTypes.number,\r\n ScadenzaVersamento: PropTypes.string,\r\n Stato: PropTypes.number,\r\n UsaContoCoobbligato: PropTypes.bool,\r\n UsaContoIntermediario: PropTypes.bool,\r\n DescrizioneStato: PropTypes.string,\r\n DescrizioneTipoDelega: PropTypes.string,\r\n ModalitaPresentazione: PropTypes.number,\r\n SoggettoVersante: PropTypes.number,\r\n DenominazioneIntermediario: PropTypes.string,\r\n StatoInvioTelematico: PropTypes.number,\r\n Errata: PropTypes.bool,\r\n IsDelegaConCompensazioneVerticale: PropTypes.bool,\r\n IsDelegaConCompensazioneOrizzontale: PropTypes.bool,\r\n IsDaNonPresentare: PropTypes.bool,\r\n }).isRequired,\r\n loading: PropTypes.bool.isRequired,\r\n datiDelegaDaAggiornare: PropTypes.PropTypes.shape({}).isRequired,\r\n setShowModaleCoobbligato: PropTypes.func.isRequired,\r\n setConfirmEliminaCoobbligato: PropTypes.func.isRequired,\r\n setShowModaleVersamento: PropTypes.func.isRequired,\r\n setConfirmEliminaContoCorrente: PropTypes.func.isRequired,\r\n loadingErario: PropTypes.bool.isRequired,\r\n tributiErario: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.shape({})),\r\n PropTypes.shape({}),\r\n ]),\r\n setShowModaleUtilizzoTributo: PropTypes.func.isRequired,\r\n setTributoUtilizzoDaModificare: PropTypes.func.isRequired,\r\n apriConfirmRimuoviUtilizzo: PropTypes.func.isRequired,\r\n ottieniTributiErario: PropTypes.func.isRequired,\r\n loadingInps: PropTypes.bool.isRequired,\r\n tributiInps: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.shape({})),\r\n PropTypes.shape({}),\r\n ]),\r\n ottieniTributiInps: PropTypes.func.isRequired,\r\n loadingRegioni: PropTypes.bool.isRequired,\r\n tributiRegioni: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.shape({})),\r\n PropTypes.shape({}),\r\n ]),\r\n ottieniTributiRegioni: PropTypes.func.isRequired,\r\n loadingTributiLocali: PropTypes.bool.isRequired,\r\n tributiLocali: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.shape({})),\r\n PropTypes.shape({}),\r\n ]),\r\n ottieniTributiLocali: PropTypes.func.isRequired,\r\n loadingInail: PropTypes.bool.isRequired,\r\n tributiInail: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.shape({})),\r\n PropTypes.shape({}),\r\n ]),\r\n ottieniTributiInail: PropTypes.func.isRequired,\r\n loadingAltriEnti: PropTypes.bool.isRequired,\r\n tributiAltriEnti: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.shape({})),\r\n PropTypes.shape({}),\r\n ]),\r\n ottieniTributiAltriEnti: PropTypes.func.isRequired,\r\n setTributiInseribili: PropTypes.func.isRequired,\r\n showPanelTributiErario: PropTypes.bool,\r\n setShowPanelTributiErario: PropTypes.func.isRequired,\r\n showPanelTributiLocali: PropTypes.bool,\r\n setShowPanelTributiLocali: PropTypes.func.isRequired,\r\n showPanelTributiInps: PropTypes.bool,\r\n setShowPanelTributiInps: PropTypes.func.isRequired,\r\n showPanelTributiRegioni: PropTypes.bool,\r\n setShowPanelTributiRegioni: PropTypes.func.isRequired,\r\n showPanelTributiInail: PropTypes.bool,\r\n setShowPanelTributiInail: PropTypes.func.isRequired,\r\n showPanelTributiAltriEnti: PropTypes.bool,\r\n setShowPanelTributiAltriEnti: PropTypes.func.isRequired,\r\n loadingAccise: PropTypes.bool.isRequired,\r\n tributiAccise: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.shape({})),\r\n PropTypes.shape({}),\r\n ]),\r\n ottieniTributiAccise: PropTypes.func.isRequired,\r\n showPanelTributiAccise: PropTypes.bool,\r\n setShowPanelTributiAccise: PropTypes.func.isRequired,\r\n loadingElide: PropTypes.bool.isRequired,\r\n tributiElide: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.shape({})),\r\n PropTypes.shape({}),\r\n ]),\r\n ottieniTributiElide: PropTypes.func.isRequired,\r\n showPanelTributiElide: PropTypes.bool,\r\n setShowPanelTributiElide: PropTypes.func.isRequired,\r\n setShowModaleAnagraficaContribuente: PropTypes.func.isRequired,\r\n setShowModaleIndirizzoContribuente: PropTypes.func.isRequired,\r\n isIndirizzoDaAggiornare: PropTypes.bool.isRequired,\r\n};\r\n\r\nexport default SezioniDelega;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Modal } from 'framework-ui-components/Components/V2';\r\nimport { Spinner } from 'framework-ui-components';\r\nimport TemplateGrid from './TemplateGrid/TemplateGrid';\r\n\r\nconst ModaleLoading = ({\r\n show, onClose, title,\r\n}) => (\r\n \r\n \r\n {title}\r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n);\r\n\r\nModaleLoading.propTypes = {\r\n show: PropTypes.bool.isRequired,\r\n onClose: PropTypes.func.isRequired,\r\n title: PropTypes.string.isRequired,\r\n};\r\n\r\nexport default ModaleLoading;\r\n","const ACTION_PRESENTAZIONE_DELEGHE_CBI = 'DELEGHE_PRESENTATE_TRAMITE_CBI';\r\n\r\nconst setPresentaDelegheCbiAction = (stato) => (dispatch) => dispatch({\r\n type: ACTION_PRESENTAZIONE_DELEGHE_CBI,\r\n payload: stato,\r\n});\r\n\r\nexport {\r\n ACTION_PRESENTAZIONE_DELEGHE_CBI,\r\n setPresentaDelegheCbiAction,\r\n};\r\n","/* eslint-disable no-nested-ternary */\r\nimport React, {\r\n useState, useEffect, useCallback, useRef, useMemo,\r\n} from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Autocomplete,\r\n DatePicker, Form, Input, Restriction, Validation,\r\n} from 'framework-ui-components';\r\nimport {\r\n Modal, Button, FeedbackPanel,\r\n} from 'framework-ui-components/Components/V2';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport { useHistory } from 'react-router';\r\nimport Log, { logApiError } from 'framework-taskforce/utils/log';\r\nimport { isEmptyObject } from 'framework-taskforce/utils/object';\r\nimport { getSegnalazioneError } from 'framework-taskforce/models/segnalazioni';\r\nimport { TIPO_PERSONA } from '../../../../../models/anagrafica';\r\nimport TemplateGrid from '../../../../../components/TemplateGrid/TemplateGrid';\r\nimport SegnalazioniViewer from '../../../../../components/custom/SegnalazioniViewer';\r\nimport { getOttieniContribuente } from '../../../../../apis/contribuente';\r\nimport { setSoggettoAction } from '../../../../../actions/soggetto';\r\nimport { cercaNatureGiuridiche, postModificaAnagraficaPersonaFisica, postModificaAnagraficaPersonaGiuridica } from '../../../../../apis/anagrafiche';\r\n\r\nconst ModaleDatiAnagrafica = ({\r\n onClose,\r\n idAnagrafica,\r\n show,\r\n oggettoModifica,\r\n tipoPersona,\r\n}) => {\r\n const studioSelezionato = useSelector((store) => store.appParams.studioSelezionato);\r\n\r\n const history = useHistory();\r\n\r\n const [loading, setLoading] = useState(false);\r\n const [isFormValid, setIsFormValid] = useState(false);\r\n const [esito, setEsito] = useState(null);\r\n const [formData, setFormData] = useState({ });\r\n const [segnalazioni, setSegnalazioni] = useState([]);\r\n\r\n const isModifica = useMemo(\r\n () => (!isEmptyObject(oggettoModifica)),\r\n [oggettoModifica],\r\n );\r\n\r\n const dispatch = useDispatch();\r\n\r\n const formRef = useRef();\r\n\r\n const presetForm = useCallback(({ FormErrors, ...datoModificato }) => {\r\n if (!formData || isEmptyObject(datoModificato)) return;\r\n const newStato = { ...formData, ...datoModificato };\r\n setFormData(newStato);\r\n }, [formData]);\r\n\r\n const resetDati = useCallback(() => {\r\n setLoading(false);\r\n setIsFormValid(false);\r\n setSegnalazioni([]);\r\n setEsito(null);\r\n setFormData({});\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (show) {\r\n resetDati();\r\n }\r\n }, [resetDati, show]);\r\n\r\n useEffect(() => {\r\n if (show && isModifica && isEmptyObject(formData)) {\r\n presetForm({ ...oggettoModifica });\r\n }\r\n });\r\n\r\n useEffect(() => {\r\n if (!show) {\r\n // reset data on close\r\n resetDati();\r\n }\r\n }, [resetDati, setFormData, show]);\r\n\r\n const onChangeAutocompletes = (campo, elemento) => {\r\n const autocompleteVals = [];\r\n\r\n if (campo === 'CodiceComune') {\r\n autocompleteVals.IdComune = elemento.Id;\r\n autocompleteVals.CodiceComuneDescrizioneComposta = elemento.DescrizioneComposta;\r\n autocompleteVals.ComuneDescrizione = elemento.Descrizione;\r\n autocompleteVals.ComuneCodiceProvincia = elemento.CodiceProvincia;\r\n autocompleteVals.Cap = elemento.Cap;\r\n }\r\n if (campo === 'Toponimo') {\r\n autocompleteVals.IdToponimo = elemento.Id_Toponimo;\r\n autocompleteVals.ToponimoDescrizione = elemento.Descrizione;\r\n }\r\n if (campo === 'NaturaGiuridica') {\r\n autocompleteVals.IdNaturaGiuridica = elemento.IdNaturaGiuridica;\r\n autocompleteVals.NaturaGiuridica = elemento.Descrizione;\r\n }\r\n presetForm(autocompleteVals);\r\n };\r\n\r\n const modificaAnagrafica = useCallback(() => {\r\n const newOggettoModifica = {\r\n ...oggettoModifica,\r\n ...formData,\r\n };\r\n (`${tipoPersona}` === `${TIPO_PERSONA.PERSONA_FISICA}`\r\n ? postModificaAnagraficaPersonaFisica : postModificaAnagraficaPersonaGiuridica)(newOggettoModifica)\r\n .then((res) => {\r\n if (res.Success) {\r\n getOttieniContribuente(\r\n studioSelezionato,\r\n newOggettoModifica.CodiceFiscale,\r\n )\r\n .then((response) => {\r\n if (res.Success) {\r\n dispatch(setSoggettoAction({\r\n idAnagrafica: response.Result.IdAnagrafica,\r\n idContribuente: response.Result.IdContribuente,\r\n codiceFiscale: response.Result.CodiceFiscale,\r\n nominativo: response.Result.Denominazione,\r\n tipoPersona: response.Result.TipoPersona,\r\n haPartitaIva: !!response.Result.PartitaIva,\r\n partitaIva: response.Result.PartitaIva,\r\n }));\r\n } else {\r\n history.push('/errore');\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n })\r\n .catch((e) => {\r\n });\r\n onClose(true);\r\n } else {\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n // eslint-disable-next-line max-len\r\n }, [dispatch, formData, history, oggettoModifica, onClose, studioSelezionato, tipoPersona]);\r\n\r\n return (\r\n onClose(esito)}\r\n className=\"contribuenti--modale-creazione\"\r\n initialPos={{ x: 'auto', y: window.innerHeight * 0.1 }}\r\n >\r\n \r\n {isModifica ? 'Modifica ' : 'Nuovo '} anagrafica\r\n \r\n \r\n setIsFormValid(validity)}\r\n >\r\n {!loading && segnalazioni.length > 0\r\n ? (\r\n \r\n
      \r\n {segnalazioni.map((segnalazione, idx) => (\r\n {segnalazione.msg}\r\n \r\n ))}\r\n
    \r\n
    \r\n )}\r\n type=\"alarm\"\r\n />\r\n )\r\n : (\r\n \r\n {segnalazioni && segnalazioni.length > 0 && (\r\n \r\n )}\r\n {tipoPersona === `${TIPO_PERSONA.PERSONA_FISICA}` ? (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n\r\n \r\n onChangeAutocompletes('NaturaGiuridica', val)}\r\n validations={[Validation.DefaultRules.required]}\r\n />\r\n \r\n )}\r\n \r\n )}\r\n \r\n \r\n \r\n {segnalazioni.length === 0 ? (\r\n { isModifica && modificaAnagrafica(); }}\r\n emphasis={Button.Emphasis.HIGH}\r\n primary\r\n disabled={!isFormValid}\r\n running={loading}\r\n >\r\n {isModifica ? 'MODIFICA ' : 'AGGIUNGI '}Anagrafica\r\n \r\n ) : (\r\n setSegnalazioni([])}\r\n emphasis={Button.Emphasis.HIGH}\r\n primary\r\n disabled={!isFormValid}\r\n running={loading}\r\n >\r\n RIPROVA\r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nModaleDatiAnagrafica.defaultProps = {\r\n oggettoModifica: {},\r\n idAnagrafica: null,\r\n};\r\n\r\nModaleDatiAnagrafica.propTypes = {\r\n onClose: PropTypes.func.isRequired,\r\n show: PropTypes.bool.isRequired,\r\n idAnagrafica: PropTypes.number,\r\n oggettoModifica: PropTypes.shape({\r\n TipoAnagrafica: PropTypes.string,\r\n Comune: PropTypes.string,\r\n Provincia: PropTypes.string,\r\n Toponimo: PropTypes.string,\r\n Descrizione: PropTypes.string,\r\n NumeroCivico: PropTypes.string,\r\n Cap: PropTypes.string,\r\n Frazione: PropTypes.string,\r\n }),\r\n tipoPersona: PropTypes.string.isRequired,\r\n};\r\n\r\nexport default ModaleDatiAnagrafica;\r\n","import React, { useMemo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\nimport Button from '../Button/Button';\r\n\r\nconst cssBlock = 'v2-button-group';\r\n\r\n/**\r\nGruppo di bottoni.\r\n\r\nVedi [Design System di CGN - Gruppo di pulsanti](https://zeroheight.com/1b5e94371/p/195a4e-gruppo-di-pulsanti/b/031c6f)\r\n */\r\nconst ButtonGroup = ({ className, children }) => {\r\n const emphasisOfComps = useMemo(() => {\r\n // prendo l'enfasi del primo componente, visto che tutti devono avere la stessa enfasi.\r\n const comps = React.Children.toArray(children);\r\n let result = Button.Emphasis.LOW;\r\n if (comps.length > 0 && comps[0].props.emphasis) result = comps[0].props.emphasis;\r\n return result;\r\n }, [children]);\r\n\r\n const classes = cns(\r\n cssBlock,\r\n `${cssBlock}--${emphasisOfComps.toLowerCase()}`,\r\n className,\r\n );\r\n\r\n return (\r\n
    \r\n {children}\r\n
    \r\n );\r\n};\r\n\r\nButtonGroup.propTypes = {\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n\r\n /** Children del componente di tipo Button */\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node,\r\n ]).isRequired,\r\n};\r\n\r\nButtonGroup.defaultProps = {\r\n className: undefined,\r\n};\r\n\r\nexport default ButtonGroup;\r\n","/* eslint-disable jsx-a11y/click-events-have-key-events */\r\nimport React, { useCallback, useRef } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\nimport Radio from '../Radio/Radio';\r\nimport { NOOP } from '../../utils/const';\r\n\r\n/**\r\nQuesto componente è una Radio utilizzato per evidenziare scelte importanti.\r\nIl primo figlio è posizionato come header, il secondo come footer.\r\n\r\nVedi [Design System di CGN - Scelta Importante](https://zeroheight.com/1b5e94371/p/38c61e-scelta-importante/b/78108c)\r\n*/\r\nconst ImportantRadio = (props) => {\r\n const {\r\n className, children, name, value, checked, disabled, onChange, ...radioProps\r\n } = props;\r\n const inputRef = useRef();\r\n\r\n const handleChange = useCallback((event) => {\r\n /*\r\n Dato che la Radio non usa gli eventi dell'input, non posso bloccare il click su Radio in modo che non arrivi al div padre.\r\n */\r\n if (event.target !== inputRef.current) {\r\n inputRef.current.click();\r\n } else {\r\n onChange(event);\r\n }\r\n }, [onChange]);\r\n\r\n const childrenArray = React.Children.toArray(children);\r\n\r\n /**\r\n * Attenzione:\r\n * la posizione di 'important-radio__status' è fondamentale rispetto ai suoi fratelli,\r\n * perchè lo stile si basa su alcune classi di Radio.\r\n */\r\n return (\r\n \r\n
    \r\n
    \r\n {childrenArray[0]}\r\n
    \r\n \r\n
    \r\n {childrenArray[1]}\r\n
    \r\n
    \r\n );\r\n};\r\n\r\nImportantRadio.propTypes = {\r\n /** Contenuto da renderizzare all'interno del componente.Il primo figlio è posizionato come header, il secondo come footer. */\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node,\r\n ]).isRequired,\r\n\r\n /** Indica se il campo è selezionato */\r\n checked: PropTypes.bool,\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n /** Indica se il componente è disabilitato */\r\n disabled: PropTypes.bool,\r\n /** Nome del campo da bindare se il componente è contenuto all'interno di un componente Form */\r\n name: PropTypes.string,\r\n /**\r\nFunzione invocata alla selezione di un elemento.\r\ndove:\r\n\r\n- `event`: evento scatenante al click. ATTENZIONE: non è l'evento dell'input.\r\n */\r\n onChange: PropTypes.func,\r\n /** Indica il valore bindato al campo */\r\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.bool]),\r\n /** Etichetta da associare al radio button */\r\n label: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\r\n /** Tooltip da visualizzare nell'hover del radio */\r\n tooltip: PropTypes.string,\r\n};\r\n\r\nImportantRadio.defaultProps = {\r\n checked: false,\r\n className: '',\r\n disabled: false,\r\n name: '',\r\n onChange: null,\r\n value: null,\r\n label: null,\r\n tooltip: null,\r\n};\r\n\r\nexport default ImportantRadio;\r\n","import ImportantRadio from './ImportantRadio';\r\n\r\nexport default ImportantRadio;\r\n","/* eslint-disable max-len */\r\nimport React from 'react';\r\n\r\nconst NovitaRibbon = () => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {'Novit\\xE0'}\r\n \r\n \r\n \r\n \r\n);\r\nexport default NovitaRibbon;\r\n","import React from 'react';\r\n\r\nconst PagamentoDigitale = () => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n);\r\nexport default PagamentoDigitale;\r\n","import React from 'react';\r\n\r\nconst FileTelematico = () => (\r\n \r\n \r\n \r\n \r\n);\r\nexport default FileTelematico;\r\n","import React from 'react';\r\n\r\nconst StampaCartacea = () => (\r\n \r\n \r\n \r\n \r\n);\r\nexport default StampaCartacea;\r\n","import React from 'react';\r\n\r\nconst StampaCartaceaDisabled = () => (\r\n \r\n \r\n \r\n \r\n);\r\nexport default StampaCartaceaDisabled;\r\n","import React from 'react';\r\nimport {\r\n Layout,\r\n} from 'framework-ui-components/Components/V2';\r\nimport { ImportantRadio } from 'framework-ui-components';\r\n\r\nimport PropTypes from 'prop-types';\r\nimport NovitaRibbon from '../icons/custom/NovitaRibbon';\r\nimport PagamentoDigitale from '../icons/material/PagamentoDigitale';\r\nimport FileTelematico from '../icons/material/FileTelematico';\r\nimport StampaCartacea from '../icons/material/StampaCartacea';\r\nimport { MODALITA_PRESENTAZIONE2 } from '../../models/delega';\r\nimport StampaCartaceaDisabled from '../icons/material/StampaCartacea copy';\r\n\r\nconst StepSceltaModalita = ({\r\n sceltaModalitaPresentazione,\r\n setSceltaModalitaPresentazione,\r\n isCreaStampaDaConsegnareAttivo,\r\n motivoCreaStampaDaConsegnareNonAttivo,\r\n}) => (\r\n \r\n \r\n \r\n \r\n Scegli il metodo di presentazione:\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n setSceltaModalitaPresentazione(MODALITA_PRESENTAZIONE2.PAGAMENTO_DIGITALE)}\r\n label=\"Pagamento digitale\"\r\n >\r\n \r\n {/* Il contribuente paga con carta presso il tuo ufficio tramite CGN POS Nexi */}\r\n \r\n
    \r\n
    \r\n \r\n \r\n setSceltaModalitaPresentazione(MODALITA_PRESENTAZIONE2.FILE_TELEMATICO)}\r\n label=\"File telematico\"\r\n >\r\n \r\n \r\n \r\n \r\n \r\n isCreaStampaDaConsegnareAttivo && setSceltaModalitaPresentazione(MODALITA_PRESENTAZIONE2.STAMPA)}\r\n label=\"Stampa\"\r\n disabled={!isCreaStampaDaConsegnareAttivo}\r\n tooltip={!isCreaStampaDaConsegnareAttivo ? motivoCreaStampaDaConsegnareNonAttivo : null}\r\n >\r\n {isCreaStampaDaConsegnareAttivo ? : }\r\n \r\n \r\n
    \r\n
    \r\n);\r\nStepSceltaModalita.defaultProps = {\r\n sceltaModalitaPresentazione: null,\r\n isCreaStampaDaConsegnareAttivo: false,\r\n motivoCreaStampaDaConsegnareNonAttivo: null,\r\n};\r\n\r\nStepSceltaModalita.propTypes = {\r\n sceltaModalitaPresentazione: PropTypes.number,\r\n setSceltaModalitaPresentazione: PropTypes.func.isRequired,\r\n isCreaStampaDaConsegnareAttivo: PropTypes.bool,\r\n motivoCreaStampaDaConsegnareNonAttivo: PropTypes.string,\r\n};\r\nexport default StepSceltaModalita;\r\n","import React from 'react';\r\n\r\nconst FileTContrib = () => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n);\r\nexport default FileTContrib;\r\n","import React from 'react';\r\n\r\nconst FileTInterm = () => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n);\r\nexport default FileTInterm;\r\n","import React from 'react';\r\n\r\nconst InvioTelematico = () => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n);\r\nexport default InvioTelematico;\r\n","import React from 'react';\r\n\r\nconst FileTContribDisabled = () => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n);\r\nexport default FileTContribDisabled;\r\n","/* eslint-disable max-len */\r\nimport React from 'react';\r\n\r\nconst FileTIntermDisabled = () => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n);\r\nexport default FileTIntermDisabled;\r\n","/* eslint-disable max-len */\r\nimport React from 'react';\r\n\r\nconst InvioTelematicoDisabled = () => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n);\r\nexport default InvioTelematicoDisabled;\r\n","import React from 'react';\r\nimport {\r\n Layout, MiniPanel,\r\n} from 'framework-ui-components/Components/V2';\r\nimport { ImportantRadio, Link } from 'framework-ui-components';\r\n\r\nimport PropTypes from 'prop-types';\r\nimport { useSelector } from 'react-redux';\r\nimport { MODALITA_PRESENTAZIONE2 } from '../../models/delega';\r\nimport FileTContrib from '../icons/material/FileTContrib';\r\nimport FileTInterm from '../icons/material/FileTInterm';\r\nimport InvioTelematico from '../icons/material/InvioTelematico';\r\nimport FileTContribDisabled from '../icons/material/FileTContribDisabled';\r\nimport FileTIntermDisabled from '../icons/material/FileTIntermDisabled';\r\nimport InvioTelematicoDisabled from '../icons/material/InvioTelematicoDisabled';\r\n\r\nconst StepSceltaTipoFileTelematico = ({\r\n sceltaModalitaPresentazione,\r\n setSceltaModalitaPresentazione,\r\n isCreaFileTelematicoContribuenteAttivo,\r\n motivoCreaFileTelematicoContribuenteNonAttivo,\r\n isCreaFileTelematicoIntermediarioAttivo,\r\n motivoCreaFileTelematicoIntermediarioNonAttivo,\r\n isInviaFileTelematicoIntermediarioConAdeleAttivo,\r\n motivoInviaFileTelematicoIntermediarioConAdeleNonAttivo,\r\n}) => {\r\n const isInvioTelematicoAttivo = useSelector((store) => store.appParams.isInvioTelematicoAttivo);\r\n const homeUrl = useSelector((store) => store.appParams.HomeUrl);\r\n const codiceUfficioSelezionato = useSelector((store) => store.appParams.ufficioSelezionato);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n Presentazione tramite file telematico\r\n \r\n \r\n \r\n \r\n \r\n isCreaFileTelematicoContribuenteAttivo && setSceltaModalitaPresentazione(MODALITA_PRESENTAZIONE2.FILE_TELEMATICO_CONTRIBUENTE)}\r\n label={(File telematico
    contribuente
    )}\r\n tooltip={motivoCreaFileTelematicoContribuenteNonAttivo || null}\r\n disabled={!isCreaFileTelematicoContribuenteAttivo}\r\n >\r\n {isCreaFileTelematicoContribuenteAttivo ? () : ()}\r\n
    \r\n
    \r\n Scarica il file telematico
    e consegnalo
    al contribuente\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n isCreaFileTelematicoIntermediarioAttivo && setSceltaModalitaPresentazione(MODALITA_PRESENTAZIONE2.FILE_TELEMATICO_INTERMEDIARIO)}\r\n label={(File telematico
    intermediario
    )}\r\n tooltip={!isCreaFileTelematicoIntermediarioAttivo ? motivoCreaFileTelematicoIntermediarioNonAttivo : null}\r\n disabled={!isCreaFileTelematicoIntermediarioAttivo}\r\n >\r\n {isCreaFileTelematicoIntermediarioAttivo ? () : ()}\r\n
    \r\n
    \r\n Scarica il file telematico
    e invialo tramite i servizi
    dell'Agenzia delle Entrate\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n isInviaFileTelematicoIntermediarioConAdeleAttivo && isInvioTelematicoAttivo\r\n && setSceltaModalitaPresentazione(MODALITA_PRESENTAZIONE2.INVIO_TELEMATICO)}\r\n label={(Invio Telematico
    CGN
    )}\r\n tooltip={isInvioTelematicoAttivo\r\n ? motivoInviaFileTelematicoIntermediarioConAdeleNonAttivo : 'Invio telematico CGN non attivo'}\r\n disabled={!isInviaFileTelematicoIntermediarioConAdeleAttivo || !isInvioTelematicoAttivo}\r\n >\r\n {isInviaFileTelematicoIntermediarioConAdeleAttivo && isInvioTelematicoAttivo ? () : ()}\r\n
    \r\n
    \r\n Invia subito la delega all'Agenzia delle Entrate
    grazie al software di CGN\r\n
    \r\n
    \r\n \r\n {!isInvioTelematicoAttivo && (\r\n
    \r\n \r\n \r\n Attiva
    Invio Telematico\r\n \r\n
    \r\n )}\r\n />\r\n
    \r\n )}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nStepSceltaTipoFileTelematico.defaultProps = {\r\n sceltaModalitaPresentazione: null,\r\n isCreaFileTelematicoContribuenteAttivo: false,\r\n motivoCreaFileTelematicoContribuenteNonAttivo: null,\r\n isCreaFileTelematicoIntermediarioAttivo: false,\r\n motivoCreaFileTelematicoIntermediarioNonAttivo: null,\r\n isInviaFileTelematicoIntermediarioConAdeleAttivo: false,\r\n motivoInviaFileTelematicoIntermediarioConAdeleNonAttivo: null,\r\n};\r\n\r\nStepSceltaTipoFileTelematico.propTypes = {\r\n sceltaModalitaPresentazione: PropTypes.number,\r\n setSceltaModalitaPresentazione: PropTypes.func.isRequired,\r\n isCreaFileTelematicoContribuenteAttivo: PropTypes.bool,\r\n motivoCreaFileTelematicoContribuenteNonAttivo: PropTypes.string,\r\n isCreaFileTelematicoIntermediarioAttivo: PropTypes.bool,\r\n motivoCreaFileTelematicoIntermediarioNonAttivo: PropTypes.string,\r\n isInviaFileTelematicoIntermediarioConAdeleAttivo: PropTypes.bool,\r\n motivoInviaFileTelematicoIntermediarioConAdeleNonAttivo: PropTypes.string,\r\n};\r\nexport default StepSceltaTipoFileTelematico;\r\n","import React, { useMemo, useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\nimport {\r\n Button,\r\n} from 'framework-ui-components/Components/V2';\r\nimport { NOOP } from 'framework-ui-components/utils/const';\r\nimport DontShowAgain from 'framework-ui-components/Components/DontShowAgain/DontShowAgain';\r\nimport Body from 'framework-ui-components/Components/V2/Modals/Modal/Body';\r\nimport Item from 'framework-ui-components/Components/V2/Modals/Modal/Item';\r\nimport useModalContext from 'framework-ui-components/Components/V2/Modals/Modal/useModalContext';\r\n\r\nfunction createWrappedAsyncCallback(func, beforeCallback, afterCallback) {\r\n return () => {\r\n if (func) {\r\n const result = func();\r\n if (result instanceof Promise) {\r\n beforeCallback();\r\n return result.then(\r\n (res) => {\r\n afterCallback();\r\n return res;\r\n },\r\n (err) => {\r\n afterCallback();\r\n throw err;\r\n },\r\n );\r\n }\r\n }\r\n return undefined;\r\n };\r\n}\r\n\r\n/**\r\nUn item di tipo Confirm di `Modal`. Per avvertire l'utente che quello che sta per fare è irreversibile.\r\n\r\n_Quando si utilizza?_\r\n\r\n- Usare le confirm solo quando è strettamente necessario e non per azioni di routine.\r\n- Essere molto specifici (vedi sezione Testi) ed informare gli utenti delle conseguenze che stanno per avvenire,\r\nfacendo riconoscere il possibile errore in maniera semplice.\r\n- Usare opzioni di risposta (testi dei pulsanti) parlanti, che sintetizzino bene le conseguenze ed evitare risposte Sì/No.\r\nAd es. in caso di eliminazione di un file scrivere \"Elimina il file\" \"Mantieni il file\"\r\n- Essendo che l'utente deve controllare e ricontrollare quello che sta facendo e\r\nche bisogna evitare che compia delle azioni automatiche (come cliccare subito sul pulsante a enfasi alta)\r\ndobbiamo creare delle situazioni diverse da quelle a cui è abituato.\r\n- Prevedere una checkbox \"Non mostrare più questo messaggio\" nel caso di confirm create per educare l'utente all'utilizzo di nuove\r\nfeature del software con effetti indesiderati. In questo caso la confirm sarà mostrata per un periodo di tempo prestabilito.\r\n\r\n*/\r\nconst ConfirmItem = ({\r\n id, className, title, message, image, onClose,\r\n primaryLabel, onPrimaryClick,\r\n secondaryLabel, onSecondaryClick,\r\n dontShowAgainId, dontShowAgainMessage,\r\n classNameBody,\r\n}) => {\r\n const { dragging, onMouseDown } = useModalContext();\r\n\r\n const [working, setWorking] = useState(false);\r\n\r\n const [primaryCallback, secondaryCallback] = useMemo(() => {\r\n const startWorking = () => setWorking(true);\r\n const stopWorking = () => setWorking(false);\r\n\r\n const primaryCB = createWrappedAsyncCallback(onPrimaryClick, startWorking, stopWorking);\r\n const secondaryCB = createWrappedAsyncCallback(onSecondaryClick, startWorking, stopWorking);\r\n\r\n return [primaryCB, secondaryCB];\r\n }, [onPrimaryClick, onSecondaryClick]);\r\n\r\n return (\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n {image}\r\n
    \r\n
    \r\n \r\n {title}\r\n \r\n
    {message}
    \r\n
    \r\n
    {/* empty space to align footer buttons */}\r\n
    \r\n \r\n \r\n
    \r\n {dontShowAgainId &&
    } {/* empty space to align don't show again message */}\r\n {dontShowAgainId && }\r\n
    \r\n
    \r\n \r\n \r\n );\r\n};\r\n\r\nConfirmItem.propTypes = {\r\n /**\r\n * Identificativo dell'item.\r\n */\r\n id: PropTypes.string.isRequired,\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n /** Classi css personalizzate da aggiungere al body della modale */\r\n classNameBody: PropTypes.string,\r\n\r\n /** Immagine da mostrare per dare enfasi al messaggio. L'immagine deve stare in un quadrato di 120px. */\r\n image: PropTypes.node,\r\n\r\n /**\r\nCallback di chiusura della modale per la gestione dontShowAgain.\r\nRitorna un oggetto con `id` pari all'id della modale e\r\n`dontShowAgainId` pari alla prop `dontShowAgainId` della modale.\r\nPer verificate che la chiusura sia conseguenza della gestione dontShowAgain, usare il metodo `Modal.isClosedByDontShowAgainEvent`.\r\n */\r\n onClose: PropTypes.func,\r\n\r\n /** Etichetta del bottone di scelta primaria */\r\n primaryLabel: PropTypes.string.isRequired,\r\n /**\r\nCallback alla pressione della scelta primaria. Il primo parametro è l'evento scatenante.\r\n */\r\n onPrimaryClick: PropTypes.func,\r\n\r\n /** Etichetta del bottone di scelta secondaria */\r\n secondaryLabel: PropTypes.string.isRequired,\r\n /**\r\nCallback alla pressione della scelta secondaria. Il primo parametro è l'evento scatenante.\r\n */\r\n onSecondaryClick: PropTypes.func,\r\n\r\n /**\r\nIdentificativo del componente per la gestione 'Non visualizzare più'. Se impostato abilita la gestione.\r\nLo stato è salvato nella sessione locale del browser quindi è necessario un identificativo per gestire il salvataggio.\r\n\r\nTipicamente è composto dall'id dell'utente e da un identificativo del messaggio.\r\n\r\nUtilizzare `ConfirmModal.clearMessageStatus` per pulire lo stato.\r\n */\r\n dontShowAgainId: PropTypes.string,\r\n\r\n /**\r\nMessaggio del componente per la gestione 'Non visualizzare più'.\r\n */\r\n dontShowAgainMessage: PropTypes.string,\r\n\r\n /** Titolo */\r\n title: PropTypes.string.isRequired,\r\n /** Messaggio o contenuto */\r\n message: PropTypes.oneOfType([PropTypes.string, PropTypes.node]).isRequired,\r\n};\r\n\r\nConfirmItem.defaultProps = {\r\n onPrimaryClick: NOOP,\r\n onSecondaryClick: NOOP,\r\n onClose: NOOP,\r\n className: undefined,\r\n classNameBody: undefined,\r\n dontShowAgainId: undefined,\r\n dontShowAgainMessage: 'Non mostrare più questo messaggio',\r\n image: undefined,\r\n};\r\n\r\nexport default ConfirmItem;\r\n","import { WebRequest } from 'framework-ui-components';\r\n\r\nconst postCreaFileTelematicoIntermediarioDelega = (command) => WebRequest.post('Studio/CreaFileTelematicoIntermediarioDelega', command);\r\n\r\nconst postInviaFileTelematicoIntermediarioDelegaConAdele = (command) => WebRequest.post('Studio/InviaFileTelematicoIntermediarioDelegaConAdele', command);\r\n\r\nconst postGeneraFileTelematicoIntermediarioDeleghe = (command) => WebRequest.post('Studio/GeneraFileTelematicoIntermediarioDeleghe', command);\r\n\r\nconst postInviaFileTelematiciIntermediarioDelegheConAdele = (command) => WebRequest.post('Studio/InviaFileTelematiciIntermediarioDelegheConAdele', command);\r\n\r\nconst getOttieniFileTelematicoIntermediarioInDownload = (idFileTelematicoIntermediario) => WebRequest.getFile(\r\n 'Studio/OttieniFileTelematicoIntermediarioInDownload',\r\n {\r\n idFileTelematicoIntermediario,\r\n },\r\n null,\r\n true,\r\n);\r\n\r\nconst getOttieniIntermediariSelect = (\r\n idStudio,\r\n) => WebRequest.get('Studio/OttieniIntermediariSelect', {\r\n idStudio,\r\n});\r\n\r\nexport {\r\n postCreaFileTelematicoIntermediarioDelega,\r\n postInviaFileTelematicoIntermediarioDelegaConAdele,\r\n postGeneraFileTelematicoIntermediarioDeleghe,\r\n postInviaFileTelematiciIntermediarioDelegheConAdele,\r\n getOttieniFileTelematicoIntermediarioInDownload,\r\n getOttieniIntermediariSelect,\r\n};\r\n","import React, {\r\n useCallback, useEffect, useRef, useState,\r\n} from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport { Button } from 'framework-ui-components/Components/V2';\r\nimport {\r\n Radio, DatePicker, EllipsisText, Validation, Form, Autocomplete, Input, Restriction,\r\n} from 'framework-ui-components';\r\nimport PropTypes from 'prop-types';\r\nimport { isEmptyObject } from 'framework-taskforce/utils/object';\r\nimport RemoveIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/RemoveIcon';\r\nimport { SOGGETTO_VERSANTE } from '../../models/delega';\r\nimport { cercaBanche, cercaFilialiBanca, getGeneraIBAN } from '../../apis/anagrafiche';\r\nimport TemplateGrid from '../TemplateGrid/TemplateGrid';\r\nimport CheckboxTitle from '../custom/CheckboxTitle';\r\nimport LabelOnly from '../custom/LabelOnly';\r\nimport AddCircleOutlineIcon from '../icons/google/AddCircleOutlineIcon';\r\n\r\nconst StepPresentazioneFileTelematicoContribuente = ({\r\n setSegnalazioni,\r\n dataVersamento,\r\n setDataVersamento,\r\n datiDelega,\r\n setIdContoSelezionato,\r\n setIsFormValid,\r\n aggiuntaNuovoContoCorrente,\r\n setAggiuntaNuovoContoCorrente,\r\n formData,\r\n setFormData,\r\n specificaConto,\r\n setSpecificaConto,\r\n ibanManuale,\r\n setIbanManuale,\r\n listaContiCorrente,\r\n setListaContiCorrente,\r\n idSoggettoVersante,\r\n setIdSoggettoVersante,\r\n}) => {\r\n const formRef = useRef();\r\n\r\n const studioSelezionato = useSelector((store) => store.appParams.studioSelezionato);\r\n const [nominativoSoggettoVersante, setNominativoSoggettoVersante] = useState(null);\r\n\r\n const presetForm = useCallback(({ FormErrors, ...datoModificato }) => {\r\n if (!formData || isEmptyObject(datoModificato)) return;\r\n\r\n const newStato = { ...formData, ...datoModificato };\r\n setFormData(newStato);\r\n\r\n if (newStato.IdContoSelezionato || newStato.IdContoSelezionato === 0) {\r\n setIdContoSelezionato(newStato.IdContoSelezionato);\r\n }\r\n\r\n // eslint-disable-next-line no-prototype-builtins\r\n if (datoModificato.hasOwnProperty('NumeroConto') || datoModificato.hasOwnProperty('AbiBanca') || datoModificato.hasOwnProperty('CabBanca')) {\r\n newStato.IbanGenerato = null;\r\n }\r\n }, [formData, setFormData, setIdContoSelezionato]);\r\n\r\n const settaValidita = useCallback((validita) => {\r\n if (aggiuntaNuovoContoCorrente) {\r\n setIsFormValid(validita);\r\n } else if (!specificaConto) {\r\n setIsFormValid(true);\r\n } else {\r\n setIsFormValid(formData.IdContoSelezionato > 0 || (datiDelega && datiDelega.Iban) || formData.IbanGenerato || formData.IbanManuale);\r\n }\r\n }, [aggiuntaNuovoContoCorrente, datiDelega, formData.IbanManuale, formData.IbanGenerato, formData.IdContoSelezionato, setIsFormValid, specificaConto]);\r\n\r\n useEffect(() => {\r\n if (datiDelega && !idSoggettoVersante && !nominativoSoggettoVersante) {\r\n if (datiDelega.SoggettoVersante === SOGGETTO_VERSANTE.COOBBLIGATO) {\r\n setIdSoggettoVersante(datiDelega.IdAnagraficaCoobbligato);\r\n setNominativoSoggettoVersante(`${datiDelega.CodiceFiscaleCoobbligato} - ${datiDelega.DenominazioneCoobbligato}`);\r\n } else {\r\n setIdSoggettoVersante(datiDelega.IdAnagraficaContribuente);\r\n setNominativoSoggettoVersante(`${datiDelega.CodiceFiscale} - ${datiDelega.Denominazione}`);\r\n }\r\n }\r\n }, [datiDelega, idSoggettoVersante, nominativoSoggettoVersante, setIdSoggettoVersante]);\r\n\r\n useEffect(() => {\r\n if (datiDelega && datiDelega.SoggettoVersante === SOGGETTO_VERSANTE.INTERMADIARIO) {\r\n setListaContiCorrente(null);\r\n setIdSoggettoVersante(datiDelega.IdAnagraficaContribuente);\r\n setNominativoSoggettoVersante(`${datiDelega.CodiceFiscale} - ${datiDelega.Denominazione}`);\r\n }\r\n }, [setListaContiCorrente, datiDelega, idSoggettoVersante, setIdSoggettoVersante]);\r\n\r\n const onChangeDataVersamento = useCallback((val) => {\r\n setDataVersamento(val);\r\n setSegnalazioni([]);\r\n }, [setDataVersamento, setSegnalazioni]);\r\n\r\n useEffect(() => {\r\n if (listaContiCorrente) {\r\n if (!formData.IdContoSelezionato) {\r\n if (listaContiCorrente.length === 1) {\r\n presetForm({\r\n IdContoSelezionato: listaContiCorrente[0].Id,\r\n });\r\n }\r\n }\r\n }\r\n }, [formData.IdContoSelezionato, listaContiCorrente, presetForm]);\r\n\r\n useEffect(() => {\r\n if (formData) {\r\n if (aggiuntaNuovoContoCorrente && !formData.IbanGenerato\r\n && formData.AbiBanca && formData.CabBanca && formData.NumeroConto) {\r\n getGeneraIBAN(formData.AbiBanca, formData.CabBanca, formData.NumeroConto)\r\n .then((res) => {\r\n if (res.Success) {\r\n presetForm({\r\n IbanGenerato: res.Result,\r\n });\r\n }\r\n })\r\n .catch((e) => {\r\n });\r\n }\r\n }\r\n }, [aggiuntaNuovoContoCorrente, formData, presetForm, setIsFormValid, studioSelezionato]);\r\n\r\n const nuovoConto = useCallback(() => {\r\n setAggiuntaNuovoContoCorrente(true);\r\n settaValidita(false);\r\n setFormData({});\r\n }, [setAggiuntaNuovoContoCorrente, setFormData, settaValidita]);\r\n\r\n const onChangeAutocompletes = (campo, elemento) => {\r\n const autocompleteVals = [];\r\n\r\n if (campo === 'Banca') {\r\n autocompleteVals.AbiBanca = elemento.Abi;\r\n autocompleteVals.DescrizioneBanca = elemento.Descrizione;\r\n autocompleteVals.Banca = elemento.DescrizioneComposta;\r\n autocompleteVals.CabBanca = null;\r\n autocompleteVals.Filiale = null;\r\n }\r\n if (campo === 'Filiale') {\r\n autocompleteVals.CabBanca = elemento.Cab;\r\n autocompleteVals.Filiale = elemento.DescrizioneComposta;\r\n }\r\n\r\n presetForm(autocompleteVals);\r\n };\r\n\r\n const cambioIbanManuale = useCallback((event) => {\r\n setIbanManuale(event.target.checked);\r\n if (event.target.checked) {\r\n presetForm({\r\n AbiBanca: null,\r\n CabBanca: null,\r\n DescrizioneBanca: null,\r\n Banca: null,\r\n FilialeCab: null,\r\n Filiale: null,\r\n NumeroConto: null,\r\n IbanGenerato: null,\r\n });\r\n } else {\r\n presetForm({\r\n IbanManuale: null,\r\n });\r\n }\r\n }, [presetForm, setIbanManuale]);\r\n\r\n return (\r\n \r\n \r\n
    \r\n Indica la data di versamento\r\n {/* La data di versamento deve essere compresa tra la data\r\n
    \r\n odierna e la data di scadenza della delega. */}\r\n
    \r\n \r\n \r\n onChangeDataVersamento(val)}\r\n autoFocus\r\n date={dataVersamento}\r\n />\r\n \r\n \r\n { setSpecificaConto(ev.target.checked); settaValidita(true); }}\r\n // eslint-disable-next-line no-nested-ternary\r\n title={`Aggiungi IBAN del ${datiDelega\r\n ? (datiDelega.SoggettoVersante !== SOGGETTO_VERSANTE.INTERMADIARIO ? SOGGETTO_VERSANTE.toString(datiDelega.SoggettoVersante) : 'Contribuente')\r\n : 'soggetto versante'}`}\r\n noMargin\r\n switch\r\n />\r\n \r\n {specificaConto && (\r\n datiDelega && datiDelega.Iban ? (\r\n
    \r\n \r\n
    Il versamento verrà effettuato sull'IBAN del {SOGGETTO_VERSANTE.toString(datiDelega.SoggettoVersante)}
    \r\n
    IBAN: {datiDelega.Iban}
    \r\n \r\n
    \r\n ) : (\r\n
    \r\n {listaContiCorrente && listaContiCorrente.length > 0 ?
    IBAN
    :
    }\r\n settaValidita(validity)}\r\n >\r\n conto.Predefinito) ? '200px' : '0px' },\r\n ],\r\n rows: [{ className: 'mt-8' }],\r\n },\r\n ]}\r\n >\r\n {listaContiCorrente && (\r\n listaContiCorrente.map((conto) => [\r\n ,\r\n {conto.DescrizioneSede}\r\n
    ,\r\n {conto.DescrizioneFiliale}\r\n
    ,\r\n listaContiCorrente.find((contoPredefinito) => contoPredefinito.Predefinito)\r\n ? (\r\n \r\n {conto.Predefinito && (Predefinito)}\r\n \r\n ) :
    ,\r\n ])\r\n )}\r\n \r\n
    \r\n \r\n {!aggiuntaNuovoContoCorrente ? (\r\n nuovoConto()}\r\n >\r\n \r\n Aggiungi un nuovo conto corrente\r\n \r\n ) : (\r\n {\r\n setAggiuntaNuovoContoCorrente(false);\r\n setFormData({});\r\n }}\r\n >\r\n \r\n Non aggiungere un nuovo conto corrente\r\n \r\n )}\r\n \r\n
    \r\n {aggiuntaNuovoContoCorrente && (\r\n
    \r\n \r\n onChangeAutocompletes('Banca', val)}\r\n validations={ibanManuale ? [] : [Validation.DefaultRules.required]}\r\n disabled={ibanManuale}\r\n />\r\n onChangeAutocompletes('Filiale', val)}\r\n validations={ibanManuale ? [] : [Validation.DefaultRules.required]}\r\n readOnly={!ibanManuale && !formData.AbiBanca}\r\n disabled={ibanManuale}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n )}\r\n \r\n
    \r\n )\r\n )}\r\n \r\n );\r\n};\r\nStepPresentazioneFileTelematicoContribuente.defaultProps = {\r\n ibanManuale: null,\r\n setIbanManuale: null,\r\n idSoggettoVersante: null,\r\n listaContiCorrente: null,\r\n};\r\n\r\nStepPresentazioneFileTelematicoContribuente.propTypes = {\r\n setSegnalazioni: PropTypes.func.isRequired,\r\n dataVersamento: PropTypes.string.isRequired,\r\n setDataVersamento: PropTypes.func.isRequired,\r\n setIdContoSelezionato: PropTypes.func.isRequired,\r\n setIsFormValid: PropTypes.func.isRequired,\r\n aggiuntaNuovoContoCorrente: PropTypes.bool.isRequired,\r\n setAggiuntaNuovoContoCorrente: PropTypes.func.isRequired,\r\n formData: PropTypes.shape({\r\n IdAnagraficaCoobbligato: PropTypes.number,\r\n IbanGenerato: PropTypes.string,\r\n NumeroConto: PropTypes.string,\r\n AbiBanca: PropTypes.string,\r\n CabBanca: PropTypes.string,\r\n IdContoSelezionato: PropTypes.number,\r\n IbanManuale: PropTypes.string,\r\n }).isRequired,\r\n setFormData: PropTypes.func.isRequired,\r\n specificaConto: PropTypes.bool.isRequired,\r\n setSpecificaConto: PropTypes.func.isRequired,\r\n datiDelega: PropTypes.shape({\r\n SoggettoVersante: PropTypes.number,\r\n IdAnagraficaCoobbligato: PropTypes.number,\r\n CodiceFiscaleCoobbligato: PropTypes.string,\r\n IdAnagraficaIntermediario: PropTypes.number,\r\n DenominazioneCoobbligato: PropTypes.string,\r\n CodiceFiscaleIntermediario: PropTypes.string,\r\n IdAnagraficaContribuente: PropTypes.string,\r\n CodiceFiscale: PropTypes.string,\r\n Iban: PropTypes.string,\r\n DenominazioneIntermediario: PropTypes.string,\r\n Denominazione: PropTypes.string,\r\n }).isRequired,\r\n ibanManuale: PropTypes.string,\r\n setIbanManuale: PropTypes.func,\r\n listaContiCorrente: PropTypes.arrayOf(PropTypes.shape({\r\n Id: PropTypes.number,\r\n })),\r\n setListaContiCorrente: PropTypes.func.isRequired,\r\n idSoggettoVersante: PropTypes.number,\r\n setIdSoggettoVersante: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default StepPresentazioneFileTelematicoContribuente;\r\n","import React, {\r\n useCallback, useEffect, useRef, useState,\r\n} from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport { Button } from 'framework-ui-components/Components/V2';\r\nimport {\r\n Radio, DatePicker, EllipsisText, Validation, Form, Autocomplete, Input, Restriction,\r\n} from 'framework-ui-components';\r\nimport PropTypes from 'prop-types';\r\nimport { isEmptyObject } from 'framework-taskforce/utils/object';\r\nimport RemoveIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/RemoveIcon';\r\nimport { SOGGETTO_VERSANTE } from '../../models/delega';\r\nimport { cercaBanche, cercaFilialiBanca, getGeneraIBAN } from '../../apis/anagrafiche';\r\nimport TemplateGrid from '../TemplateGrid/TemplateGrid';\r\nimport { cercaIntermediari } from '../../apis/intermediari';\r\nimport LabelOnly from '../custom/LabelOnly';\r\nimport AddCircleOutlineIcon from '../icons/google/AddCircleOutlineIcon';\r\nimport CheckboxTitle from '../custom/CheckboxTitle';\r\n\r\nconst StepPresentazioneFileTelematicoIntermediario = ({\r\n setSegnalazioni,\r\n loading,\r\n dataVersamento,\r\n setDataVersamento,\r\n datiDelega,\r\n setIdContoSelezionato,\r\n setIdIntermediario,\r\n setUsaContoIntermediario,\r\n formData,\r\n setFormData,\r\n setIsFormValid,\r\n aggiuntaNuovoContoCorrente,\r\n setAggiuntaNuovoContoCorrente,\r\n ibanManuale,\r\n setIbanManuale,\r\n listaContiCorrente,\r\n setListaContiCorrente,\r\n idSoggettoVersante,\r\n setIdSoggettoVersante,\r\n}) => {\r\n const formRef = useRef();\r\n\r\n const studioSelezionato = useSelector((store) => store.appParams.studioSelezionato);\r\n\r\n const [nominativoSoggettoVersante, setNominativoSoggettoVersante] = useState(null);\r\n\r\n const presetForm = useCallback(({ FormErrors, ...datoModificato }) => {\r\n if (!formData || isEmptyObject(datoModificato)) return;\r\n\r\n if (datoModificato.SoggettoContoDiAddebito || datoModificato.IdIntermediario) {\r\n setListaContiCorrente(null);\r\n setAggiuntaNuovoContoCorrente(false);\r\n }\r\n\r\n const newStato = { ...formData, ...datoModificato };\r\n\r\n if (datoModificato.SoggettoContoDiAddebito) {\r\n newStato.IdContoSelezionato = 0;\r\n setIdContoSelezionato(null);\r\n\r\n if (datoModificato.SoggettoContoDiAddebito === '0') {\r\n setUsaContoIntermediario(false);\r\n setListaContiCorrente(null);\r\n setIdSoggettoVersante(null);\r\n setNominativoSoggettoVersante(null);\r\n } else if (datoModificato.SoggettoContoDiAddebito === '1') {\r\n setUsaContoIntermediario(true);\r\n setIdSoggettoVersante(formData.IdAnagraficaIntermediario);\r\n setListaContiCorrente(null);\r\n }\r\n }\r\n\r\n if (newStato.IdContoSelezionato || newStato.IdContoSelezionato === 0) {\r\n setIdContoSelezionato(newStato.IdContoSelezionato);\r\n }\r\n\r\n // eslint-disable-next-line no-prototype-builtins\r\n if (datoModificato.hasOwnProperty('NumeroConto') || datoModificato.hasOwnProperty('AbiBanca') || datoModificato.hasOwnProperty('CabBanca')) {\r\n newStato.IbanGenerato = null;\r\n }\r\n\r\n setFormData(newStato);\r\n }, [formData, setAggiuntaNuovoContoCorrente, setFormData, setIdContoSelezionato, setIdSoggettoVersante, setListaContiCorrente, setUsaContoIntermediario]);\r\n\r\n const settaValidita = useCallback((validita) => {\r\n if (aggiuntaNuovoContoCorrente) {\r\n setIsFormValid(validita);\r\n } else {\r\n setIsFormValid(formData.IdContoSelezionato > 0);\r\n }\r\n }, [aggiuntaNuovoContoCorrente, formData, setIsFormValid]);\r\n\r\n const onChangeAutocompletes = (campo, elemento) => {\r\n const autocompleteVals = [];\r\n\r\n if (campo === 'SelezioneIntermediario') {\r\n autocompleteVals.IdIntermediario = elemento.IdIntermediario;\r\n autocompleteVals.IdAnagraficaIntermediario = elemento.IdAnagrafica;\r\n autocompleteVals.CodiceFiscaleDenominazione = elemento.CodiceFiscaleDenominazione;\r\n autocompleteVals.IdContoSelezionato = null;\r\n }\r\n\r\n if (campo === 'Banca') {\r\n autocompleteVals.AbiBanca = elemento.Abi;\r\n autocompleteVals.DescrizioneBanca = elemento.Descrizione;\r\n autocompleteVals.Banca = elemento.DescrizioneComposta;\r\n autocompleteVals.CabBanca = null;\r\n autocompleteVals.Filiale = null;\r\n }\r\n if (campo === 'Filiale') {\r\n autocompleteVals.CabBanca = elemento.Cab;\r\n autocompleteVals.Filiale = elemento.DescrizioneComposta;\r\n }\r\n\r\n presetForm(autocompleteVals);\r\n };\r\n\r\n useEffect(() => {\r\n if (listaContiCorrente) {\r\n if (!formData.IdContoSelezionato) {\r\n if (listaContiCorrente.length === 1) {\r\n presetForm({\r\n IdContoSelezionato: listaContiCorrente[0].Id,\r\n });\r\n }\r\n }\r\n }\r\n }, [formData.IdContoSelezionato, listaContiCorrente, presetForm]);\r\n\r\n useEffect(() => {\r\n if (formData.IdIntermediario && formData.SoggettoContoDiAddebito) {\r\n setIdIntermediario({ id: formData.IdIntermediario, idAnagrafica: formData.IdAnagraficaIntermediario });\r\n }\r\n }, [formData.IdAnagraficaIntermediario, formData.IdIntermediario, formData.SoggettoContoDiAddebito, setIdIntermediario]);\r\n\r\n useEffect(() => {\r\n if (formData.SoggettoContoDiAddebito === '0') {\r\n if (datiDelega && !idSoggettoVersante && !nominativoSoggettoVersante) {\r\n if (datiDelega.SoggettoVersante === SOGGETTO_VERSANTE.COOBBLIGATO) {\r\n setIdSoggettoVersante(datiDelega.IdAnagraficaCoobbligato);\r\n setNominativoSoggettoVersante(`${datiDelega.CodiceFiscaleCoobbligato} - ${datiDelega.DenominazioneCoobbligato}`);\r\n } else if (datiDelega.SoggettoVersante === SOGGETTO_VERSANTE.INTERMADIARIO) {\r\n setIdSoggettoVersante(datiDelega.IdAnagraficaIntermediario);\r\n setNominativoSoggettoVersante(`${datiDelega.CodiceFiscaleIntermediario} - ${datiDelega.DenominazioneIntermediario}`);\r\n } else {\r\n setIdSoggettoVersante(datiDelega.IdAnagraficaContribuente);\r\n setNominativoSoggettoVersante(`${datiDelega.CodiceFiscale} - ${datiDelega.Denominazione}`);\r\n }\r\n }\r\n }\r\n }, [datiDelega, formData.SoggettoContoDiAddebito, idSoggettoVersante, nominativoSoggettoVersante, setIdSoggettoVersante]);\r\n\r\n const onChangeDataVersamento = useCallback((val) => {\r\n setDataVersamento(val);\r\n setSegnalazioni([]);\r\n }, [setDataVersamento, setSegnalazioni]);\r\n\r\n const cambioIbanManuale = useCallback((event) => {\r\n setIbanManuale(event.target.checked);\r\n if (event.target.checked) {\r\n presetForm({\r\n AbiBanca: null,\r\n CabBanca: null,\r\n DescrizioneBanca: null,\r\n Banca: null,\r\n Filiale: null,\r\n NumeroConto: null,\r\n IbanGenerato: null,\r\n });\r\n } else {\r\n presetForm({\r\n IbanManuale: null,\r\n });\r\n }\r\n }, [presetForm, setIbanManuale]);\r\n\r\n useEffect(() => {\r\n if (formData.SoggettoContoDiAddebito !== '0' && formData.SoggettoContoDiAddebito !== '1') {\r\n settaValidita(false);\r\n }\r\n }, [formData.SoggettoContoDiAddebito, settaValidita]);\r\n\r\n useEffect(() => {\r\n if (formData) {\r\n if (aggiuntaNuovoContoCorrente && !formData.IbanGenerato\r\n && formData.AbiBanca && formData.CabBanca && formData.NumeroConto) {\r\n getGeneraIBAN(formData.AbiBanca, formData.CabBanca, formData.NumeroConto)\r\n .then((res) => {\r\n if (res.Success) {\r\n presetForm({\r\n IbanGenerato: res.Result,\r\n });\r\n }\r\n })\r\n .catch((e) => {\r\n });\r\n }\r\n }\r\n }, [aggiuntaNuovoContoCorrente, formData, presetForm]);\r\n\r\n const nuovoConto = useCallback(() => {\r\n setAggiuntaNuovoContoCorrente(true);\r\n settaValidita(false);\r\n presetForm({\r\n IdContoSelezionato: null,\r\n AbiBanca: null,\r\n CabBanca: null,\r\n DescrizioneBanca: null,\r\n Banca: null,\r\n Filiale: null,\r\n NumeroConto: null,\r\n });\r\n }, [presetForm, setAggiuntaNuovoContoCorrente, settaValidita]);\r\n\r\n return (\r\n {\r\n settaValidita(validity);\r\n }}\r\n >\r\n \r\n
    \r\n Indica la data di versamento\r\n {/* La data di versamento deve essere compresa tra la data\r\n
    \r\n odierna e la data di scadenza della delega. */}\r\n
    \r\n \r\n \r\n onChangeDataVersamento(val)}\r\n autoFocus\r\n date={dataVersamento}\r\n disabled={loading}\r\n />\r\n \r\n \r\n onChangeAutocompletes('SelezioneIntermediario', val)}\r\n validations={[Validation.DefaultRules.required]}\r\n disabled={loading}\r\n />\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n {formData.SoggettoContoDiAddebito === '0' && (\r\n
    \r\n {listaContiCorrente && listaContiCorrente.length > 0\r\n ? Seleziona IBAN del {SOGGETTO_VERSANTE.toString(datiDelega && datiDelega.SoggettoVersante)} :
    }\r\n conto.Predefinito) ? '200px' : '0px' },\r\n ],\r\n rows: [{ className: 'mt-8' }],\r\n },\r\n ]}\r\n >\r\n {listaContiCorrente && (\r\n listaContiCorrente.map((conto) => [\r\n
    ,\r\n ,\r\n {conto.DescrizioneSede}\r\n
    ,\r\n {conto.DescrizioneFiliale}\r\n
    ,\r\n listaContiCorrente.find((contoPredefinito) => contoPredefinito.Predefinito)\r\n ? (\r\n \r\n {conto.Predefinito && (Predefinito)}\r\n \r\n ) :
    ,\r\n ])\r\n )}\r\n \r\n
    \r\n \r\n
    \r\n {!aggiuntaNuovoContoCorrente ? (\r\n nuovoConto()}\r\n >\r\n \r\n Aggiungi un nuovo conto corrente\r\n \r\n ) : (\r\n {\r\n setAggiuntaNuovoContoCorrente(false);\r\n presetForm({\r\n IdContoSelezionato: null,\r\n AbiBanca: null,\r\n CabBanca: null,\r\n DescrizioneBanca: null,\r\n Banca: null,\r\n Filiale: null,\r\n NumeroConto: null,\r\n });\r\n }}\r\n >\r\n \r\n Non aggiungere un nuovo conto corrente\r\n \r\n )}\r\n \r\n
    \r\n {aggiuntaNuovoContoCorrente && (\r\n
    \r\n \r\n
    \r\n onChangeAutocompletes('Banca', val)}\r\n validations={ibanManuale ? [] : [Validation.DefaultRules.required]}\r\n autoFocus\r\n disabled={ibanManuale}\r\n />\r\n onChangeAutocompletes('Filiale', val)}\r\n validations={ibanManuale ? [] : [Validation.DefaultRules.required]}\r\n readOnly={!ibanManuale && !formData.AbiBanca}\r\n disabled={ibanManuale}\r\n />\r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n )}\r\n
    \r\n )}\r\n
    \r\n \r\n
    \r\n
    \r\n {formData.SoggettoContoDiAddebito === '1' && (\r\n
    \r\n {listaContiCorrente && listaContiCorrente.length > 0\r\n ? Seleziona IBAN :
    }\r\n conto.Predefinito) ? '200px' : '0px' },\r\n ],\r\n rows: [{ className: 'mt-8' }],\r\n },\r\n ]}\r\n >\r\n {listaContiCorrente && (\r\n listaContiCorrente.map((conto) => [\r\n
    ,\r\n ,\r\n {conto.DescrizioneSede}\r\n
    ,\r\n {conto.DescrizioneFiliale}\r\n
    ,\r\n listaContiCorrente.find((contoPredefinito) => contoPredefinito.Predefinito)\r\n ? (\r\n \r\n {conto.Predefinito && (Predefinito)}\r\n \r\n ) :
    ,\r\n ])\r\n )}\r\n \r\n
    \r\n \r\n
    \r\n {!aggiuntaNuovoContoCorrente ? (\r\n nuovoConto()}\r\n >\r\n \r\n Aggiungi un nuovo conto corrente\r\n \r\n ) : (\r\n {\r\n setAggiuntaNuovoContoCorrente(false);\r\n presetForm({\r\n IdContoSelezionato: null,\r\n AbiBanca: null,\r\n CabBanca: null,\r\n DescrizioneBanca: null,\r\n Banca: null,\r\n Filiale: null,\r\n NumeroConto: null,\r\n });\r\n }}\r\n >\r\n \r\n Non aggiungere un nuovo conto corrente\r\n \r\n )}\r\n \r\n
    \r\n {aggiuntaNuovoContoCorrente && (\r\n
    \r\n \r\n
    \r\n onChangeAutocompletes('Banca', val)}\r\n validations={ibanManuale ? [] : [Validation.DefaultRules.required]}\r\n autoFocus\r\n disabled={ibanManuale}\r\n />\r\n onChangeAutocompletes('Filiale', val)}\r\n validations={ibanManuale ? [] : [Validation.DefaultRules.required]}\r\n readOnly={!ibanManuale && !formData.AbiBanca}\r\n disabled={ibanManuale}\r\n />\r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n )}\r\n
    \r\n )}\r\n \r\n );\r\n};\r\nStepPresentazioneFileTelematicoIntermediario.defaultProps = {\r\n datiDelega: {},\r\n idSoggettoVersante: null,\r\n listaContiCorrente: null,\r\n ibanManuale: false,\r\n aggiuntaNuovoContoCorrente: false,\r\n};\r\n\r\nStepPresentazioneFileTelematicoIntermediario.propTypes = {\r\n setSegnalazioni: PropTypes.func.isRequired,\r\n loading: PropTypes.bool.isRequired,\r\n dataVersamento: PropTypes.instanceOf(Date).isRequired,\r\n setDataVersamento: PropTypes.func.isRequired,\r\n datiDelega: PropTypes.shape({\r\n CodiceFiscaleCoobbligato: PropTypes.string,\r\n SoggettoVersante: PropTypes.number,\r\n IdAnagraficaCoobbligato: PropTypes.number,\r\n DenominazioneCoobbligato: PropTypes.string,\r\n IdAnagraficaIntermediario: PropTypes.number,\r\n DenominazioneIntermediario: PropTypes.string,\r\n CodiceFiscaleIntermediario: PropTypes.string,\r\n IdAnagraficaContribuente: PropTypes.number,\r\n CodiceFiscale: PropTypes.string,\r\n Denominazione: PropTypes.string,\r\n }),\r\n setIdContoSelezionato: PropTypes.func.isRequired,\r\n setIdIntermediario: PropTypes.func.isRequired,\r\n setUsaContoIntermediario: PropTypes.func.isRequired,\r\n formData: PropTypes.shape({\r\n CodiceFiscale: PropTypes.string,\r\n TipoPersona: PropTypes.number,\r\n IdAnagraficaCoobbligato: PropTypes.number,\r\n IbanGenerato: PropTypes.string,\r\n NumeroConto: PropTypes.string,\r\n AbiBanca: PropTypes.string,\r\n CabBanca: PropTypes.string,\r\n SoggettoContoDiAddebito: PropTypes.string,\r\n IdIntermediario: PropTypes.number,\r\n IdContoSelezionato: PropTypes.number,\r\n CodiceFiscaleDenominazione: PropTypes.string,\r\n IdAnagraficaIntermediario: PropTypes.number,\r\n }).isRequired,\r\n setFormData: PropTypes.func.isRequired,\r\n setIsFormValid: PropTypes.func.isRequired,\r\n aggiuntaNuovoContoCorrente: PropTypes.bool,\r\n setAggiuntaNuovoContoCorrente: PropTypes.func.isRequired,\r\n ibanManuale: PropTypes.bool,\r\n setIbanManuale: PropTypes.func.isRequired,\r\n listaContiCorrente: PropTypes.arrayOf(PropTypes.shape({\r\n Id: PropTypes.number,\r\n })),\r\n idSoggettoVersante: PropTypes.number,\r\n setListaContiCorrente: PropTypes.func.isRequired,\r\n setIdSoggettoVersante: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default StepPresentazioneFileTelematicoIntermediario;\r\n","import React from 'react';\r\n\r\nconst Cbi = () => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n);\r\nexport default Cbi;\r\n","import React from 'react';\r\n\r\nconst CbiDisabled = () => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n);\r\nexport default CbiDisabled;\r\n","import React from 'react';\r\n\r\nconst PagoF24 = () => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n);\r\nexport default PagoF24;\r\n","import React from 'react';\r\n\r\nconst PagoF24Disabled = () => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n);\r\nexport default PagoF24Disabled;\r\n","import React from 'react';\r\n\r\nconst CgnPos = () => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n);\r\nexport default CgnPos;\r\n","import React from 'react';\r\n\r\nconst CgnPosDisabled = () => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n);\r\nexport default CgnPosDisabled;\r\n","import React from 'react';\r\nimport {\r\n Layout, MiniPanel,\r\n} from 'framework-ui-components/Components/V2';\r\nimport { ImportantRadio, Link } from 'framework-ui-components';\r\nimport PropTypes from 'prop-types';\r\nimport { useSelector } from 'react-redux';\r\nimport { MODALITA_PRESENTAZIONE2 } from '../../models/delega';\r\nimport Cbi from '../icons/material/Cbi';\r\nimport CbiDisabled from '../icons/material/CbiDisabled';\r\nimport PagoF24 from '../icons/material/PagoF24';\r\nimport PagoF24Disabled from '../icons/material/PagoF24Disabled';\r\nimport CgnPos from '../icons/material/CgnPos';\r\nimport CgnPosDisabled from '../icons/material/CgnPosDisabled';\r\nimport NovitaRibbon from '../icons/custom/NovitaRibbon';\r\n\r\nconst StepSceltaTipoPagamentoDigitale = ({\r\n sceltaModalitaPresentazione,\r\n setSceltaModalitaPresentazione,\r\n isInvioCgnPosAttivo,\r\n haRichiestoAlmenoUnPos,\r\n motivoInvioTramiteCgnPosNonAttivo,\r\n isInvioTramitePagoF24Attivo,\r\n motivoInvioTramitePagoF24NonAttivo,\r\n isInviaFileTelematicoContribuenteConCbiAttivo,\r\n motivoInviaFileTelematicoContribuenteConCbiNonAttivo,\r\n}) => {\r\n const isInvioTelematicoCbiAttivo = useSelector((store) => store.appParams.isInvioTelematicoCbiAttivo);\r\n const sestioneContrattiRdv = useSelector((store) => store.appParams.GestioneContrattiRdv);\r\n const codiciUfficioAbilitatiPagoF24 = useSelector((store) => store.appParams.CodiciUfficioAbilitatiPagoF24);\r\n const codiciUfficioAbilitatiCgnPos = useSelector((store) => store.appParams.CodiciUfficioAbilitatiCgnPos);\r\n const codiceUfficioSelezionato = useSelector((store) => store.appParams.ufficioSelezionato);\r\n const paginaDiServizioCgnPosUrl = useSelector((store) => store.appParams.PaginaDiServizioCgnPosUrl);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n Presentazione tramite pagamento digitale\r\n \r\n \r\n \r\n \r\n {(codiciUfficioAbilitatiCgnPos ? codiciUfficioAbilitatiCgnPos.find((x) => (x === codiceUfficioSelezionato)) : true) && (\r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n isInvioCgnPosAttivo && haRichiestoAlmenoUnPos && setSceltaModalitaPresentazione(MODALITA_PRESENTAZIONE2.CGN_POS)}\r\n label=\"CGN POS\"\r\n tooltip={haRichiestoAlmenoUnPos ? (motivoInvioTramiteCgnPosNonAttivo || null) : 'Attiva CGN POS'}\r\n disabled={!isInvioCgnPosAttivo || !haRichiestoAlmenoUnPos}\r\n >\r\n {isInvioCgnPosAttivo && haRichiestoAlmenoUnPos ? () : ()}\r\n
    \r\n
    \r\n Il contribuente paga con
    carta presso il tuo ufficio
    tramite CGN POS Nexi
     \r\n
    \r\n
    \r\n \r\n {!haRichiestoAlmenoUnPos && (\r\n
    \r\n \r\n \r\n Attiva
    CGN POS\r\n \r\n
    \r\n )}\r\n />\r\n
    \r\n )}\r\n
    \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n isInvioTramitePagoF24Attivo && setSceltaModalitaPresentazione(MODALITA_PRESENTAZIONE2.PAGO_F24)}\r\n label=\"pagoF24\"\r\n tooltip={!isInvioTramitePagoF24Attivo ? motivoInvioTramitePagoF24NonAttivo : null}\r\n disabled={!isInvioTramitePagoF24Attivo\r\n || !(codiciUfficioAbilitatiPagoF24 ? codiciUfficioAbilitatiPagoF24.find((x) => (x === codiceUfficioSelezionato)) : true)}\r\n >\r\n {!isInvioTramitePagoF24Attivo\r\n || !(codiciUfficioAbilitatiPagoF24 ? codiciUfficioAbilitatiPagoF24.find((x) => (x === codiceUfficioSelezionato)) : true)\r\n ? () : ()}\r\n
    \r\n
    \r\n Invia un'e-mail al
    contribuente, che può
    pagare con bonifico o
    con carta ovunque\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n isInviaFileTelematicoContribuenteConCbiAttivo && isInvioTelematicoCbiAttivo\r\n && setSceltaModalitaPresentazione(MODALITA_PRESENTAZIONE2.INVIO_CBI)}\r\n label=\"CBI\"\r\n tooltip={isInvioTelematicoCbiAttivo\r\n ? motivoInviaFileTelematicoContribuenteConCbiNonAttivo : 'Invio telematico CGN non attivo'}\r\n disabled={!isInviaFileTelematicoContribuenteConCbiAttivo || !isInvioTelematicoCbiAttivo}\r\n >\r\n {isInviaFileTelematicoContribuenteConCbiAttivo && isInvioTelematicoCbiAttivo ? () : ()}\r\n
    \r\n
    \r\n Il servizio che addebita
    direttamente sul C/C
    bancario del contribuente
     \r\n
    \r\n
    \r\n \r\n {!isInvioTelematicoCbiAttivo && (\r\n \r\n \r\n Attiva CBI\r\n \r\n
    \r\n )}\r\n />\r\n )}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nStepSceltaTipoPagamentoDigitale.defaultProps = {\r\n sceltaModalitaPresentazione: null,\r\n isInvioCgnPosAttivo: false,\r\n haRichiestoAlmenoUnPos: false,\r\n motivoInvioTramiteCgnPosNonAttivo: null,\r\n isInvioTramitePagoF24Attivo: false,\r\n motivoInvioTramitePagoF24NonAttivo: null,\r\n isInviaFileTelematicoContribuenteConCbiAttivo: false,\r\n motivoInviaFileTelematicoContribuenteConCbiNonAttivo: null,\r\n};\r\n\r\nStepSceltaTipoPagamentoDigitale.propTypes = {\r\n sceltaModalitaPresentazione: PropTypes.number,\r\n setSceltaModalitaPresentazione: PropTypes.func.isRequired,\r\n isInvioCgnPosAttivo: PropTypes.bool,\r\n haRichiestoAlmenoUnPos: PropTypes.bool,\r\n motivoInvioTramiteCgnPosNonAttivo: PropTypes.string,\r\n isInvioTramitePagoF24Attivo: PropTypes.bool,\r\n motivoInvioTramitePagoF24NonAttivo: PropTypes.string,\r\n isInviaFileTelematicoContribuenteConCbiAttivo: PropTypes.bool,\r\n motivoInviaFileTelematicoContribuenteConCbiNonAttivo: PropTypes.string,\r\n};\r\nexport default StepSceltaTipoPagamentoDigitale;\r\n","import React, {\r\n useCallback, useEffect, useRef, useState,\r\n} from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport { Button, DrawAttention } from 'framework-ui-components/Components/V2';\r\nimport {\r\n Radio, DatePicker, EllipsisText, Validation, Form, Autocomplete, Input, Restriction,\r\n} from 'framework-ui-components';\r\nimport PropTypes from 'prop-types';\r\nimport { isEmptyObject } from 'framework-taskforce/utils/object';\r\nimport RemoveIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/RemoveIcon';\r\nimport { JustADate } from 'framework-taskforce/utils/date';\r\nimport InfoIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/InfoIcon';\r\nimport { SOGGETTO_VERSANTE } from '../../models/delega';\r\nimport { cercaBanche, cercaFilialiBanca, getGeneraIBAN } from '../../apis/anagrafiche';\r\nimport TemplateGrid from '../TemplateGrid/TemplateGrid';\r\nimport LabelOnly from '../custom/LabelOnly';\r\nimport AddCircleOutlineIcon from '../icons/google/AddCircleOutlineIcon';\r\nimport CheckboxTitle from '../custom/CheckboxTitle';\r\n\r\nconst StepPresentazioneCBI = ({\r\n setSegnalazioni,\r\n dataVersamento,\r\n setDataVersamento,\r\n datiDelega,\r\n setIdContoSelezionato,\r\n setIsFormValid,\r\n aggiuntaNuovoContoCorrente,\r\n setAggiuntaNuovoContoCorrente,\r\n formData,\r\n setFormData,\r\n ibanManuale,\r\n setIbanManuale,\r\n listaContiCorrente,\r\n idSoggettoVersante,\r\n setIdSoggettoVersante,\r\n}) => {\r\n const formRef = useRef();\r\n\r\n const studioSelezionato = useSelector((store) => store.appParams.studioSelezionato);\r\n\r\n const [nominativoSoggettoVersante, setNominativoSoggettoVersante] = useState(null);\r\n\r\n const presetForm = useCallback(({ FormErrors, ...datoModificato }) => {\r\n if (!formData || isEmptyObject(datoModificato)) return;\r\n\r\n const newStato = { ...formData, ...datoModificato };\r\n setFormData(newStato);\r\n\r\n if (newStato.IdContoSelezionato) {\r\n setIdContoSelezionato(newStato.IdContoSelezionato);\r\n }\r\n\r\n if (datoModificato.NumeroConto) {\r\n newStato.IbanGenerato = null;\r\n }\r\n }, [formData, setFormData, setIdContoSelezionato]);\r\n\r\n const settaValidita = useCallback((validita) => {\r\n if (aggiuntaNuovoContoCorrente) {\r\n setIsFormValid(validita);\r\n } else {\r\n setIsFormValid(formData.IdContoSelezionato > 0);\r\n }\r\n }, [aggiuntaNuovoContoCorrente, formData.IdContoSelezionato, setIsFormValid]);\r\n\r\n useEffect(() => {\r\n if (listaContiCorrente) {\r\n if (!formData.IdContoSelezionato) {\r\n if (listaContiCorrente.length === 1) {\r\n presetForm({\r\n IdContoSelezionato: listaContiCorrente[0].Id,\r\n });\r\n }\r\n }\r\n }\r\n }, [formData.IdContoSelezionato, listaContiCorrente, presetForm]);\r\n\r\n useEffect(() => {\r\n if (datiDelega && !idSoggettoVersante && !nominativoSoggettoVersante) {\r\n if (datiDelega.SoggettoVersante === SOGGETTO_VERSANTE.COOBBLIGATO) {\r\n setIdSoggettoVersante(datiDelega.IdAnagraficaCoobbligato);\r\n setNominativoSoggettoVersante(`${datiDelega.CodiceFiscaleCoobbligato} - ${datiDelega.DenominazioneCoobbligato}`);\r\n } else if (datiDelega.SoggettoVersante === SOGGETTO_VERSANTE.INTERMADIARIO) {\r\n setIdSoggettoVersante(datiDelega.IdAnagraficaIntermediario);\r\n setNominativoSoggettoVersante(`${datiDelega.CodiceFiscaleIntermediario} - ${datiDelega.DenominazioneIntermediario}`);\r\n } else {\r\n setIdSoggettoVersante(datiDelega.IdAnagraficaContribuente);\r\n setNominativoSoggettoVersante(`${datiDelega.CodiceFiscale} - ${datiDelega.Denominazione}`);\r\n }\r\n }\r\n }, [datiDelega, idSoggettoVersante, nominativoSoggettoVersante, setIdSoggettoVersante]);\r\n\r\n const onChangeDataVersamento = useCallback((val) => {\r\n setDataVersamento(JustADate(val).getDate());\r\n setSegnalazioni([]);\r\n }, [setDataVersamento, setSegnalazioni]);\r\n\r\n useEffect(() => {\r\n if (formData) {\r\n if (aggiuntaNuovoContoCorrente && !formData.IbanGenerato\r\n && formData.AbiBanca && formData.CabBanca && formData.NumeroConto) {\r\n getGeneraIBAN(formData.AbiBanca, formData.CabBanca, formData.NumeroConto)\r\n .then((res) => {\r\n if (res.Success) {\r\n presetForm({\r\n IbanGenerato: res.Result,\r\n });\r\n }\r\n })\r\n .catch((e) => {\r\n });\r\n }\r\n }\r\n }, [aggiuntaNuovoContoCorrente, formData, presetForm, studioSelezionato]);\r\n\r\n const nuovoConto = useCallback(() => {\r\n setAggiuntaNuovoContoCorrente(true);\r\n setFormData({});\r\n setIsFormValid(false);\r\n }, [setAggiuntaNuovoContoCorrente, setFormData, setIsFormValid]);\r\n\r\n const onChangeAutocompletes = (campo, elemento) => {\r\n const autocompleteVals = [];\r\n\r\n if (campo === 'Banca') {\r\n autocompleteVals.AbiBanca = elemento.Abi;\r\n autocompleteVals.DescrizioneBanca = elemento.Descrizione;\r\n autocompleteVals.Banca = elemento.DescrizioneComposta;\r\n autocompleteVals.CabBanca = null;\r\n autocompleteVals.Filiale = null;\r\n }\r\n if (campo === 'Filiale') {\r\n autocompleteVals.CabBanca = elemento.Cab;\r\n autocompleteVals.Filiale = elemento.DescrizioneComposta;\r\n }\r\n\r\n presetForm(autocompleteVals);\r\n };\r\n\r\n const cambioIbanManuale = useCallback((event) => {\r\n setIbanManuale(event.target.checked);\r\n if (event.target.checked) {\r\n presetForm({\r\n AbiBanca: null,\r\n CabBanca: null,\r\n DescrizioneBanca: null,\r\n Banca: null,\r\n FilialeCab: null,\r\n Filiale: null,\r\n NumeroConto: null,\r\n IbanGenerato: null,\r\n });\r\n } else {\r\n presetForm({\r\n IbanManuale: null,\r\n });\r\n }\r\n }, [presetForm, setIbanManuale]);\r\n\r\n return (\r\n \r\n \r\n
    \r\n Indica la data di versamento\r\n {/* La data di versamento deve essere compresa tra la data\r\n
    \r\n odierna e la data di scadenza della delega. */}\r\n
    \r\n \r\n \r\n onChangeDataVersamento(val)}\r\n autoFocus\r\n date={dataVersamento}\r\n />\r\n \r\n Considera le seguenti condizioni per impostare la data di versamento:\r\n
      \r\n
    • Non utilizzare la data odierna
    • \r\n
    • Non utilizzare una data eccedente i 25 giorni dalla data odierna
    • \r\n
    \r\n
    \r\n )}\r\n icon={}\r\n />\r\n \r\n {datiDelega && datiDelega.Iban ? (\r\n
    \r\n \r\n
    IBAN del {datiDelega ? SOGGETTO_VERSANTE.toString(datiDelega.SoggettoVersante) : 'contribuente'} nella delega:
    \r\n
    {datiDelega.Iban}
    \r\n \r\n
    \r\n ) : (\r\n
    \r\n
    Scegli IBAN del {datiDelega ? SOGGETTO_VERSANTE.toString(datiDelega.SoggettoVersante) : 'contribuente'}
    \r\n settaValidita(validity)}\r\n >\r\n conto.Predefinito) ? '200px' : '0px' },\r\n ],\r\n rows: [{ className: 'mt-8' }],\r\n },\r\n ]}\r\n >\r\n {listaContiCorrente && (\r\n listaContiCorrente.map((conto) => [\r\n ,\r\n {conto.DescrizioneSede}\r\n
    ,\r\n {conto.DescrizioneFiliale}\r\n
    ,\r\n listaContiCorrente.find((contoPredefinito) => contoPredefinito.Predefinito)\r\n ? (\r\n \r\n {conto.Predefinito && (Predefinito)}\r\n \r\n ) :
    ,\r\n ])\r\n )}\r\n \r\n
    \r\n \r\n {!aggiuntaNuovoContoCorrente ? (\r\n nuovoConto()}\r\n >\r\n \r\n Aggiungi un nuovo conto corrente\r\n \r\n ) : (\r\n {\r\n setAggiuntaNuovoContoCorrente(false);\r\n setFormData({});\r\n }}\r\n >\r\n \r\n Non aggiungere un nuovo conto corrente\r\n \r\n )}\r\n \r\n
    \r\n {aggiuntaNuovoContoCorrente && (\r\n
    \r\n \r\n onChangeAutocompletes('Banca', val)}\r\n validations={ibanManuale ? [] : [Validation.DefaultRules.required]}\r\n disabled={ibanManuale}\r\n />\r\n onChangeAutocompletes('Filiale', val)}\r\n validations={ibanManuale ? [] : [Validation.DefaultRules.required]}\r\n readOnly={!ibanManuale && !formData.AbiBanca}\r\n disabled={ibanManuale}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n )}\r\n \r\n
    \r\n )}\r\n \r\n );\r\n};\r\nStepPresentazioneCBI.defaultProps = {\r\n idSoggettoVersante: null,\r\n listaContiCorrente: null,\r\n};\r\n\r\nStepPresentazioneCBI.propTypes = {\r\n setSegnalazioni: PropTypes.func.isRequired,\r\n dataVersamento: PropTypes.string.isRequired,\r\n setDataVersamento: PropTypes.func.isRequired,\r\n setIdContoSelezionato: PropTypes.func.isRequired,\r\n setIsFormValid: PropTypes.func.isRequired,\r\n aggiuntaNuovoContoCorrente: PropTypes.bool.isRequired,\r\n setAggiuntaNuovoContoCorrente: PropTypes.func.isRequired,\r\n formData: PropTypes.shape({\r\n IdAnagraficaCoobbligato: PropTypes.number,\r\n IbanGenerato: PropTypes.string,\r\n NumeroConto: PropTypes.string,\r\n AbiBanca: PropTypes.string,\r\n CabBanca: PropTypes.string,\r\n IdContoSelezionato: PropTypes.number,\r\n }).isRequired,\r\n setFormData: PropTypes.func.isRequired,\r\n datiDelega: PropTypes.shape({\r\n SoggettoVersante: PropTypes.number,\r\n IdAnagraficaCoobbligato: PropTypes.number,\r\n CodiceFiscaleCoobbligato: PropTypes.string,\r\n IdAnagraficaIntermediario: PropTypes.number,\r\n DenominazioneCoobbligato: PropTypes.string,\r\n CodiceFiscaleIntermediario: PropTypes.string,\r\n IdAnagraficaContribuente: PropTypes.string,\r\n CodiceFiscale: PropTypes.string,\r\n Iban: PropTypes.string,\r\n DenominazioneIntermediario: PropTypes.string,\r\n Denominazione: PropTypes.string,\r\n }).isRequired,\r\n ibanManuale: PropTypes.bool.isRequired,\r\n setIbanManuale: PropTypes.func.isRequired,\r\n listaContiCorrente: PropTypes.arrayOf(PropTypes.shape({\r\n Id: PropTypes.number,\r\n })),\r\n idSoggettoVersante: PropTypes.number,\r\n setIdSoggettoVersante: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default StepPresentazioneCBI;\r\n","import { WebRequest } from 'framework-ui-components';\r\n\r\nconst postAccettaCondizioniUtilizzo = (payload) => WebRequest.post('/PagoF24/AccettaCondizioniUtilizzo', payload);\r\n\r\nconst getHaAccettatoCondizioniUtilizzo = (\r\n // identificativoUtente,\r\n codiceUfficio,\r\n tipoModelloDichiarazione,\r\n campagna,\r\n) => WebRequest.get('/PagoF24/HaAccettatoCondizioniUtilizzo', {\r\n // identificativoUtente,\r\n codiceUfficio,\r\n tipoModelloDichiarazione,\r\n campagna,\r\n});\r\n\r\nconst getOttieniDatiUtenteUfficio = (\r\n codiceUfficio,\r\n) => WebRequest.get('/PagoF24/OttieniDatiUtenteUfficio', {\r\n codiceUfficio,\r\n});\r\n\r\nconst postAggiornaDatiUtenteUfficio = (payload) => WebRequest.post('/PagoF24/AggiornaDatiUtenteUfficio', payload);\r\n\r\nconst postPresentaConPagoF24Pos = (idDelega) => WebRequest.post('/Deleghe/PresentaConPagoF24Pos', idDelega);\r\n\r\nconst postAggiornaSceltQrCodePagoF24 = (payload) => WebRequest.post('/PagoF24/AggiornaSceltQrCodePagoF24', payload);\r\n\r\nconst getOttieniSceltaQrCode = (\r\n codiceUfficio,\r\n) => WebRequest.get('/PagoF24/OttieniSceltaQrCode', {\r\n codiceUfficio,\r\n});\r\n\r\nexport {\r\n postAccettaCondizioniUtilizzo,\r\n getHaAccettatoCondizioniUtilizzo,\r\n getOttieniDatiUtenteUfficio,\r\n postAggiornaDatiUtenteUfficio,\r\n postPresentaConPagoF24Pos,\r\n postAggiornaSceltQrCodePagoF24,\r\n getOttieniSceltaQrCode,\r\n};\r\n","const authorizedServices = ['730', '7OL', 'DIC', 'SUC'];\r\n\r\nconst TABS_MENU_CONTRIBUENTE = {\r\n TRIBUTI: 0,\r\n DELEGHE: 1,\r\n DEBITI_PER_SCADENZA: 2,\r\n ANAGRAFICA: 3,\r\n INTERMEDIARI: 4,\r\n\r\n toString(val) {\r\n switch (val) {\r\n case this.TRIBUTI: return 'Tributi';\r\n case this.DELEGHE: return 'Deleghe';\r\n case this.DEBITI_PER_SCADENZA: return 'Debiti per scadenza';\r\n case this.ANAGRAFICA: return 'Anagrafica';\r\n case this.INTERMEDIARI: return 'Intermediari';\r\n default: return '';\r\n }\r\n },\r\n};\r\n\r\nconst TABS_MENU_MASSIVA = {\r\n TRIBUTI: 0,\r\n DELEGHE: 1,\r\n\r\n toString(val) {\r\n switch (val) {\r\n case this.TRIBUTI: return 'Tributi';\r\n case this.DELEGHE: return 'Deleghe';\r\n default: return '';\r\n }\r\n },\r\n};\r\n\r\nconst STEP_PLUGIN_PAGOF24 = {\r\n PROVA: 0,\r\n ACCETTAZIONE: 1,\r\n ANAGRAFICA: 2,\r\n EMAIL: 3,\r\n DELEGHE: 4,\r\n FEEDBACK: 5,\r\n FEEDBACK_GRANDE: 6,\r\n PLUGIN_FINTECH: 7,\r\n};\r\n\r\nconst CODICE_RISPOSTA_QUESTIONARIO = {\r\n NON_MI_INTERESSA: 1,\r\n PREZZO: 2,\r\n NON_CHIARO: 3,\r\n RICONTATTARE: 4,\r\n\r\n toString(val) {\r\n switch (val) {\r\n case this.NON_MI_INTERESSA: return 'Questo servizio non risponde alle mie esigenze';\r\n case this.PREZZO: return 'Il prezzo non corrisponde alle mie aspettative';\r\n case this.NON_CHIARO: return 'Non mi sono chiare le finalità del servizio';\r\n case this.RICONTATTARE: return 'Vorrei essere ricontattato/a per maggiori informazioni';\r\n default: return '';\r\n }\r\n },\r\n};\r\n\r\nexport {\r\n authorizedServices,\r\n TABS_MENU_CONTRIBUENTE,\r\n TABS_MENU_MASSIVA,\r\n STEP_PLUGIN_PAGOF24,\r\n CODICE_RISPOSTA_QUESTIONARIO,\r\n};\r\n","/* eslint-disable no-nested-ternary */\r\nimport React, {\r\n useCallback, useEffect, useState, useRef,\r\n} from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport {\r\n Spinner, Form, Input, Link,\r\n} from 'framework-ui-components';\r\nimport {\r\n Button, FeedbackPanel,\r\n} from 'framework-ui-components/Components/V2';\r\nimport { logApiError } from 'framework-taskforce/utils/log';\r\nimport FwPlugins from 'framework-plugins';\r\nimport { getSegnalazioneError } from 'framework-taskforce/models/segnalazioni';\r\nimport { isEmptyObject } from 'framework-taskforce/utils/object';\r\nimport EditIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/EditIcon';\r\nimport PropTypes from 'prop-types';\r\nimport { primaLetteraMaiuscola } from 'framework-taskforce/utils/text';\r\nimport { getOttieniRecapiti, postAggiungiRecapito, postModificaRecapito } from '../../../apis/anagrafiche';\r\nimport { AnteprimaMailPagoF24Link } from '../../../models/urls';\r\nimport TemplateGrid from '../../TemplateGrid/TemplateGrid';\r\nimport { STEP_PLUGIN_PAGOF24 } from '../../../models/f24';\r\n\r\nconst ConfermaEmailPagoF24 = ({ proseguiInvio }) => {\r\n const studioSelezionato = useSelector((store) => store.appParams.studioSelezionato);\r\n const nominativoSogg = useSelector((store) => store.soggetto.nominativo);\r\n const contribuenteIdAnagrafica = useSelector((store) => store.soggetto.idAnagrafica);\r\n\r\n const [loading, setLoading] = useState(true);\r\n const [formData, setFormData] = useState({ });\r\n const [isFormValid, setIsFormValid] = useState(false);\r\n const [emailPresente, setEmailPresente] = useState(null);\r\n const [emailConfermata, setEmailConfermata] = useState(null);\r\n const [modificaMail, setModificaMail] = useState(false);\r\n const [segnalazioni, setSegnalazioni] = useState(false);\r\n const [recapiti, setRecapiti] = useState([]);\r\n\r\n const formRef = useRef();\r\n\r\n const presetForm = useCallback(({ FormErrors, ...datoModificato }) => {\r\n if (!formData || isEmptyObject(datoModificato)) return;\r\n\r\n let cambiataEmail = false;\r\n if (datoModificato.Email) {\r\n cambiataEmail = true;\r\n }\r\n\r\n const newStato = { ...formData, ...datoModificato };\r\n\r\n if (cambiataEmail) {\r\n newStato.ConfermaEmail = null;\r\n }\r\n\r\n setFormData(newStato);\r\n }, [formData]);\r\n\r\n const aggiungiRecapito = useCallback(() => {\r\n const oggettoCreazione = {\r\n IdStudio: studioSelezionato,\r\n IdAnagrafica: contribuenteIdAnagrafica,\r\n ...formData,\r\n Predefinito: true,\r\n };\r\n\r\n const emailGiaPresente = recapiti.find((x) => (x.Email === formData.Email ? x : false));\r\n if (emailGiaPresente) {\r\n emailGiaPresente.Predefinito = true;\r\n emailGiaPresente.IdRecapito = emailGiaPresente.Id;\r\n postModificaRecapito(emailGiaPresente)\r\n .then((resModifica) => {\r\n if (resModifica.Success) {\r\n setEmailConfermata(true);\r\n } else {\r\n setSegnalazioni(resModifica.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n } else {\r\n postAggiungiRecapito(oggettoCreazione)\r\n .then((res) => {\r\n if (res.Success) {\r\n setEmailConfermata(true);\r\n } else {\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n }\r\n }, [studioSelezionato, contribuenteIdAnagrafica, formData, recapiti]);\r\n\r\n const confermaMail = useCallback(() => {\r\n if (emailPresente.Email !== formData.Email) {\r\n const newOggettoModifica = {\r\n ...emailPresente,\r\n IdRecapito: emailPresente.Id,\r\n };\r\n newOggettoModifica.Predefinito = false;\r\n postModificaRecapito(newOggettoModifica)\r\n .then((res) => {\r\n if (res.Success) {\r\n aggiungiRecapito();\r\n } else {\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n } else {\r\n setEmailConfermata(true);\r\n }\r\n }, [aggiungiRecapito, emailPresente, formData.Email]);\r\n\r\n const recuperaEmailPredefinita = useCallback(() => {\r\n if (emailPresente === null) {\r\n getOttieniRecapiti(contribuenteIdAnagrafica)\r\n .then((res) => {\r\n if (res.Success && res.Result) {\r\n setRecapiti(res.Result);\r\n const recapito = res.Result.find((x) => (x.Predefinito ? x : false));\r\n if (recapito) {\r\n setEmailPresente(recapito);\r\n setFormData({ ...recapito, ConfermaEmail: recapito.Email });\r\n } else {\r\n setEmailPresente(false);\r\n setFormData({ ...recapito, ConfermaEmail: null });\r\n }\r\n } else {\r\n setEmailPresente(false);\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n } else {\r\n setEmailPresente(false);\r\n setLoading(false);\r\n }\r\n }, [contribuenteIdAnagrafica, emailPresente]);\r\n\r\n useEffect(() => {\r\n if (contribuenteIdAnagrafica\r\n && emailPresente === null) {\r\n setLoading(true);\r\n recuperaEmailPredefinita();\r\n }\r\n }, [emailPresente, contribuenteIdAnagrafica, recuperaEmailPredefinita]);\r\n\r\n const scaricaAnteprimaEmail = useCallback((event) => {\r\n event.preventDefault();\r\n const link = document.createElement('a');\r\n link.href = AnteprimaMailPagoF24Link;\r\n link.target = '_blank';\r\n link.rel = 'noreferrer';\r\n link.setAttribute('download', '');\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (emailConfermata) {\r\n proseguiInvio();\r\n }\r\n }, [emailConfermata, proseguiInvio]);\r\n\r\n return (\r\n
    \r\n {loading ? (\r\n
    \r\n
    \r\n \r\n
      Sto impostando i dati...
    \r\n
    \r\n
    \r\n ) : (\r\n 0 && '100%',\r\n }}\r\n >\r\n {!loading && segnalazioni.length > 0\r\n ? (\r\n \r\n
      \r\n {segnalazioni.map((segnalazione, idx) => (\r\n {segnalazione.msg}\r\n \r\n ))}\r\n
    \r\n
    \r\n )}\r\n type=\"alarm\"\r\n />\r\n )\r\n : (\r\n
    \r\n
    \r\n Destinatario\r\n
    \r\n
    \r\n Inserisci l'e-mail di {primaLetteraMaiuscola(nominativoSogg)} a cui verrà inviato\r\n un collegamento con la delega F24 da pagare.\r\n
    \r\n {!emailConfermata && (\r\n
    \r\n setIsFormValid(validity)}\r\n >\r\n
    \r\n \r\n \r\n {emailPresente && emailPresente.Id && !modificaMail ? (\r\n
    \r\n { setModificaMail(true); presetForm({ ConfermaEmail: null }); }}\r\n emphasis={Button.Emphasis.LOW}\r\n >\r\n \r\n Modifica\r\n \r\n
    \r\n ) : [\r\n
    ,\r\n ,\r\n ]}\r\n \r\n
    \r\n \r\n
    \r\n )}\r\n
    \r\n )}\r\n
    \r\n
    \r\n Proteggi il contribuente dalle e-mail contraffatte, \r\n \r\n vedi il fac-simile\r\n \r\n
    \r\n
    \r\n {!segnalazioni.length > 0 ? (\r\n confermaMail() : () => aggiungiRecapito()}\r\n emphasis={Button.Emphasis.HIGH}\r\n primary\r\n disabled={!isFormValid}\r\n running={loading}\r\n >\r\n INVIA F24 AL CONTRIBUENTE\r\n \r\n ) : (\r\n { FwPlugins.postMessageToParent('SERVIZIO_PAGOF24_RIPROVA', STEP_PLUGIN_PAGOF24.EMAIL); setSegnalazioni([]); }}\r\n emphasis={Button.Emphasis.HIGH}\r\n primary\r\n running={loading}\r\n >\r\n RIPROVA\r\n \r\n )}\r\n
    \r\n
    \r\n
    \r\n )}\r\n
    \r\n );\r\n};\r\n\r\nConfermaEmailPagoF24.defaultProps = {\r\n\r\n};\r\n\r\nConfermaEmailPagoF24.propTypes = {\r\n proseguiInvio: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default ConfermaEmailPagoF24;\r\n","/* eslint-disable no-nested-ternary */\r\nimport React, {\r\n useCallback, useEffect, useState, useRef,\r\n} from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport {\r\n Spinner, Form, Input, Link,\r\n} from 'framework-ui-components';\r\nimport {\r\n Button, FeedbackPanel,\r\n} from 'framework-ui-components/Components/V2';\r\nimport { logApiError } from 'framework-taskforce/utils/log';\r\nimport FwPlugins from 'framework-plugins';\r\nimport { getSegnalazioneError } from 'framework-taskforce/models/segnalazioni';\r\nimport { isEmptyObject } from 'framework-taskforce/utils/object';\r\nimport { useHistory } from 'react-router';\r\nimport PropTypes from 'prop-types';\r\nimport { getOttieniDatiUtenteUfficio, postAggiornaDatiUtenteUfficio } from '../../../apis/pagoF24';\r\nimport TemplateGrid from '../../TemplateGrid/TemplateGrid';\r\nimport { AnteprimaMailPagoF24Link } from '../../../models/urls';\r\nimport { STEP_PLUGIN_PAGOF24 } from '../../../models/f24';\r\n\r\nconst DatiUtenteUfficioPerMail = ({ proseguiInvio }) => {\r\n const codiceUfficioSelezionato = useSelector((store) => store.appParams.ufficioSelezionato);\r\n\r\n const [loading, setLoading] = useState(true);\r\n const [formData, setFormData] = useState({ });\r\n const [isFormValid, setIsFormValid] = useState(false);\r\n const [datiUtenteUfficio, setDatiUtenteUfficio] = useState(null);\r\n const [segnalazioni, setSegnalazioni] = useState(false);\r\n\r\n const formRef = useRef();\r\n const history = useHistory();\r\n\r\n const presetForm = useCallback(({ FormErrors, ...datoModificato }) => {\r\n if (!formData || isEmptyObject(datoModificato)) return;\r\n\r\n const newStato = { ...formData, ...datoModificato };\r\n\r\n setFormData(newStato);\r\n }, [formData]);\r\n\r\n const ottieniDatiUtenteUfficio = useCallback(() => {\r\n if (datiUtenteUfficio === null) {\r\n getOttieniDatiUtenteUfficio(codiceUfficioSelezionato)\r\n .then((res) => {\r\n if (res.Success) {\r\n setDatiUtenteUfficio(res.Result || false);\r\n if (res.Result) {\r\n setFormData(res.Result);\r\n }\r\n } else {\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n }\r\n }, [codiceUfficioSelezionato, datiUtenteUfficio]);\r\n\r\n useEffect(() => {\r\n if (datiUtenteUfficio === null) {\r\n setLoading(true);\r\n ottieniDatiUtenteUfficio();\r\n }\r\n }, [datiUtenteUfficio, ottieniDatiUtenteUfficio]);\r\n\r\n const aggiornaDatiUtenteUfficio = useCallback(() => {\r\n setLoading(true);\r\n postAggiornaDatiUtenteUfficio({\r\n CodiceUfficio: codiceUfficioSelezionato,\r\n Email: 'no-reply-cgnf24@cgn.it',\r\n ...formData,\r\n })\r\n .then((response) => {\r\n if (response.Success) {\r\n setLoading(true);\r\n proseguiInvio();\r\n } else {\r\n setSegnalazioni(response.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n }, [codiceUfficioSelezionato, formData, proseguiInvio]);\r\n\r\n return (\r\n
    \r\n {loading ? (\r\n
    \r\n
    \r\n \r\n
      Sto impostando i dati...
    \r\n
    \r\n
    \r\n ) : (\r\n 0 && '100%',\r\n }}\r\n >\r\n {!loading && segnalazioni.length > 0\r\n ? (\r\n \r\n
      \r\n {segnalazioni.map((segnalazione, idx) => (\r\n {segnalazione.msg}\r\n \r\n ))}\r\n
    \r\n
    \r\n )}\r\n type=\"alarm\"\r\n />\r\n )\r\n : (\r\n
    \r\n
    \r\n Mittente\r\n
    \r\n
    \r\n Fatti riconoscere dai tuoi clienti. Inserisci una descrizione che indichi chi sta inviando questa comunicazione.\r\n
    \r\n
    \r\n setIsFormValid(validity)}\r\n >\r\n
    \r\n \r\n \r\n
    \r\n {/* */}\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n Vedi un'anteprima\r\n  della e-mail che verrà inviata\r\n\r\n
    \r\n
    \r\n )}\r\n
    \r\n
    \r\n {!segnalazioni.length > 0 ? (\r\n aggiornaDatiUtenteUfficio()}\r\n emphasis={Button.Emphasis.HIGH}\r\n primary\r\n disabled={!isFormValid}\r\n running={loading}\r\n >\r\n AVANTI\r\n \r\n ) : (\r\n { FwPlugins.postMessageToParent('SERVIZIO_PAGOF24_RIPROVA', STEP_PLUGIN_PAGOF24.EMAIL); setSegnalazioni([]); }}\r\n emphasis={Button.Emphasis.HIGH}\r\n primary\r\n running={loading}\r\n >\r\n RIPROVA\r\n \r\n )}\r\n
    \r\n
    \r\n
    \r\n )}\r\n
    \r\n );\r\n};\r\n\r\nDatiUtenteUfficioPerMail.defaultProps = {\r\n\r\n};\r\n\r\nDatiUtenteUfficioPerMail.propTypes = {\r\n proseguiInvio: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default DatiUtenteUfficioPerMail;\r\n","/* eslint-disable max-len */\r\nimport React from 'react';\r\nimport Icon from '../../Icons/Icon';\r\n\r\nexport default Icon(\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ,\r\n '0 0 24 24',\r\n 'FileDownloadIcon',\r\n);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nconst YoutubeEmbed = ({ embedId }) => (\r\n
    \r\n \r\n
    \r\n);\r\n\r\nYoutubeEmbed.propTypes = {\r\n embedId: PropTypes.string.isRequired,\r\n};\r\n\r\nexport default YoutubeEmbed;\r\n","/* eslint-disable no-tabs */\r\n/* eslint-disable max-len */\r\n/* eslint-disable no-nested-ternary */\r\nimport React, {\r\n useCallback, useEffect, useState,\r\n} from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useSelector } from 'react-redux';\r\nimport {\r\n Spinner,\r\n} from 'framework-ui-components';\r\nimport {\r\n Button, FeedbackPanel, Layout,\r\n} from 'framework-ui-components/Components/V2';\r\nimport Log, { logApiError } from 'framework-taskforce/utils/log';\r\nimport FwPlugins from 'framework-plugins';\r\nimport FileDownloadIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/FileDownloadIcon';\r\nimport { getSegnalazioneError } from 'framework-taskforce/models/segnalazioni';\r\nimport { getHaAccettatoCondizioniUtilizzo, postAccettaCondizioniUtilizzo } from '../../../apis/pagoF24';\r\nimport { PdfCondizioneUtilizzoPagoF24Link } from '../../../models/urls';\r\nimport YoutubeEmbed from '../../YoutubeEmbed';\r\nimport { STEP_PLUGIN_PAGOF24 } from '../../../models/f24';\r\n\r\nconst AccettazionePagoF24 = ({\r\n annoCampagna, tipoModelloDichiarativo, proseguiInvio, servizioAccettato, setServizioAccettato,\r\n}) => {\r\n const codiceUfficioSelezionato = useSelector((store) => store.appParams.ufficioSelezionato);\r\n\r\n const [loading, setLoading] = useState(false);\r\n const [pdfScaricato, setPdfScaricato] = useState(false);\r\n const [segnalazioni, setSegnalazioni] = useState(false);\r\n const [primaVisualizzazione, setPrimaVisualizzazione] = useState(false); // bypassato il video per ora perchè non aggiornato\r\n\r\n useEffect(() => {\r\n if (servizioAccettato === null) {\r\n setLoading(true);\r\n FwPlugins.postMessageToParent('SERVIZIO_PAGOF24_FEEDBACK', STEP_PLUGIN_PAGOF24.FEEDBACK);\r\n getHaAccettatoCondizioniUtilizzo(\r\n // guidUtente,\r\n codiceUfficioSelezionato,\r\n tipoModelloDichiarativo,\r\n annoCampagna,\r\n )\r\n .then((res) => {\r\n setServizioAccettato(res.Result);\r\n\r\n if (res.Success) {\r\n FwPlugins.postMessageToParent('SERVIZIO_PAGOF24_FEEDBACK', res.Result ? STEP_PLUGIN_PAGOF24.ANAGRAFICA : STEP_PLUGIN_PAGOF24.PROVA);\r\n setLoading(false);\r\n } else {\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n setLoading(false);\r\n }\r\n })\r\n .catch((e) => {\r\n setLoading(false);\r\n setSegnalazioni(getSegnalazioneError('Non è stato possibile recuperaro lo stato di accettazione del servizio'));\r\n logApiError(e);\r\n });\r\n }\r\n }, [annoCampagna, codiceUfficioSelezionato, servizioAccettato, setServizioAccettato, tipoModelloDichiarativo]);\r\n\r\n useEffect(() => {\r\n if (servizioAccettato) {\r\n proseguiInvio();\r\n }\r\n }, [proseguiInvio, servizioAccettato]);\r\n\r\n const accettaServizio = useCallback(() => {\r\n setLoading(true);\r\n postAccettaCondizioniUtilizzo({\r\n TipoModelloDichiarazione: tipoModelloDichiarativo,\r\n Campagna: annoCampagna,\r\n CodiceUfficio: codiceUfficioSelezionato,\r\n }).then((response) => {\r\n setLoading(false);\r\n if (response.Success) {\r\n proseguiInvio();\r\n } else {\r\n setSegnalazioni(response.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n }).catch((err) => {\r\n Log.error(err);\r\n setLoading(false);\r\n });\r\n }, [annoCampagna, codiceUfficioSelezionato, proseguiInvio, tipoModelloDichiarativo]);\r\n\r\n const scaricaPdfAccettazioneServizio = useCallback(() => {\r\n setLoading(true);\r\n setPdfScaricato(true);\r\n const link = document.createElement('a');\r\n link.href = PdfCondizioneUtilizzoPagoF24Link;\r\n link.target = '_blank';\r\n link.rel = 'noreferrer';\r\n link.setAttribute('download', '');\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n setLoading(false);\r\n }, [setPdfScaricato]);\r\n\r\n return (\r\n
    \r\n {loading ? (\r\n
    \r\n
    \r\n \r\n
      Sto impostando i dati...
    \r\n
    \r\n
    \r\n ) : !servizioAccettato ? (\r\n 0 && '100%',\r\n }}\r\n >\r\n {!loading && segnalazioni.length > 0\r\n ? (\r\n \r\n
      \r\n {segnalazioni.map((segnalazione, idx) => (\r\n {segnalazione.msg}\r\n \r\n ))}\r\n
    \r\n
    \r\n )}\r\n type=\"alarm\"\r\n />\r\n )\r\n : (\r\n
    \r\n {primaVisualizzazione ? (\r\n
    \r\n \r\n\r\n \r\n \r\n
    \r\n Con pagoF24 è facile far pagare la delega F24 ai contribuenti.\r\n Direttamente dal software, puoi inviare via e-mail ai tuoi clienti il link per il pagamento della delega.\r\n I tuoi clienti cliccano sul link e pagano, in sicurezza, tramite home banking o SPID.\r\n
    \r\n Il tutto in pochi click!\r\n
    \r\n
    \r\n
    \r\n
    \r\n ) : (\r\n
    \r\n {/*
    */}\r\n \r\n \r\n
    \r\n

    Il servizio "pagoF24" permette all'utente CGN di inviare, attraverso apposita procedura telematica online,\r\n deleghe in pagamento ai propri clienti per consentire a questi ultimi di avviarne il pagamento mediante lo strumento F24 CBI,\r\n nonché di ricevere notifiche circa l'avanzamento del relativo processo di pagamento.\r\n

    \r\n

    Il servizio è comprensivo di assistenza online gratuita e 24/7 per il tramite dell'Assistente CGN attraverso la consultazione\r\n delle guide presenti e la possibilità di inviare quesiti telematici al Team dedicato.\r\n

    \r\n

    Per conoscere le condizioni economiche e attivare il servizio scarica il PDF.

    \r\n
    \r\n
    \r\n scaricaPdfAccettazioneServizio()}\r\n primary={!pdfScaricato}\r\n >\r\n \r\n Scarica il PDF\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n )}\r\n
    \r\n )}\r\n
    \r\n
    \r\n {!segnalazioni.length > 0 ? (\r\n { FwPlugins.postMessageToParent('SERVIZIO_PAGOF24_ACCETTATO', STEP_PLUGIN_PAGOF24.ACCETTAZIONE); setPrimaVisualizzazione(false); }\r\n : () => accettaServizio()}\r\n emphasis={Button.Emphasis.HIGH}\r\n primary\r\n disabled={!pdfScaricato && !primaVisualizzazione}\r\n running={loading}\r\n >\r\n {primaVisualizzazione ? 'VAI ALL\\'ATTIVAZIONE' : 'ATTIVA IL SERVIZIO'}\r\n \r\n\r\n ) : (\r\n { FwPlugins.postMessageToParent('SERVIZIO_PAGOF24_RIPROVA', STEP_PLUGIN_PAGOF24.DELEGHE); setSegnalazioni([]); }}\r\n emphasis={Button.Emphasis.HIGH}\r\n primary\r\n running={loading}\r\n >\r\n RIPROVA\r\n \r\n )}\r\n
    \r\n
    \r\n
    \r\n ) : proseguiInvio()}\r\n
    \r\n );\r\n};\r\n\r\nAccettazionePagoF24.defaultProps = {\r\n servizioAccettato: null,\r\n};\r\n\r\nAccettazionePagoF24.propTypes = {\r\n annoCampagna: PropTypes.number.isRequired,\r\n tipoModelloDichiarativo: PropTypes.string.isRequired,\r\n proseguiInvio: PropTypes.func.isRequired,\r\n servizioAccettato: PropTypes.bool,\r\n setServizioAccettato: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default AccettazionePagoF24;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Autocomplete, Heading, Input, Restriction, Validation,\r\n} from 'framework-ui-components';\r\nimport TemplateGrid from '../../../components/TemplateGrid/TemplateGrid';\r\nimport { cercaComuni, cercaToponimi } from '../../../apis/anagrafiche';\r\n\r\nconst SezioneResidenza = ({\r\n presetForm,\r\n onChangeAutocompletes,\r\n residenzaSedeLegaleEditabili,\r\n// idEnte,\r\n// campiSpecifici,\r\n// idCodiceTributo,\r\n// periodoDa,\r\n// periodoA,\r\n// annoRiferimentoDa,\r\n// erroreImportoLimitato,\r\n// limiteUnico,\r\n}) => (\r\n
    \r\n \r\n \r\n onChangeAutocompletes('CodiceComune', val)}\r\n name=\"CodiceComuneDescrizioneComposta\"\r\n title=\"Comune\"\r\n url={cercaComuni()}\r\n renderProperty=\"DescrizioneComposta\"\r\n validations={[\r\n Validation.DefaultRules.required,\r\n ]}\r\n readOnly={!residenzaSedeLegaleEditabili}\r\n />\r\n \r\n \r\n \r\n onChangeAutocompletes('Toponimo', val)}\r\n name=\"ToponimoDescrizione\"\r\n title=\"Toponimo\"\r\n url={cercaToponimi()}\r\n renderProperty=\"Descrizione\"\r\n validations={[\r\n Validation.DefaultRules.required,\r\n ]}\r\n readOnly={!residenzaSedeLegaleEditabili}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n);\r\n\r\nSezioneResidenza.defaultProps = {\r\n// annoRiferimentoDa: 0,\r\n// erroreImportoLimitato: false,\r\n};\r\n\r\nSezioneResidenza.propTypes = {\r\n presetForm: PropTypes.func.isRequired,\r\n onChangeAutocompletes: PropTypes.func.isRequired,\r\n residenzaSedeLegaleEditabili: PropTypes.bool.isRequired,\r\n// campiSpecifici: PropTypes.arrayOf(PropTypes.object).isRequired,\r\n// idCodiceTributo: PropTypes.number.isRequired,\r\n// periodoDa: PropTypes.string.isRequired,\r\n// periodoA: PropTypes.string.isRequired,\r\n// idEnte: PropTypes.number.isRequired,\r\n// annoRiferimentoDa: PropTypes.number,\r\n// erroreImportoLimitato: PropTypes.bool,\r\n// limiteUnico: PropTypes.bool.isRequired,\r\n};\r\n\r\nexport default SezioneResidenza;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Autocomplete, Heading, Input, Restriction, Validation,\r\n} from 'framework-ui-components';\r\nimport TemplateGrid from '../../../components/TemplateGrid/TemplateGrid';\r\nimport { cercaComuni, cercaToponimi } from '../../../apis/anagrafiche';\r\n\r\nconst SezioneSedeLegale = ({\r\n presetForm,\r\n onChangeAutocompletes,\r\n residenzaSedeLegaleEditabili,\r\n// idEnte,\r\n// campiSpecifici,\r\n// idCodiceTributo,\r\n// periodoDa,\r\n// periodoA,\r\n// annoRiferimentoDa,\r\n// erroreImportoLimitato,\r\n// limiteUnico,\r\n}) => (\r\n
    \r\n \r\n \r\n onChangeAutocompletes('CodiceComune', val)}\r\n name=\"CodiceComuneDescrizioneComposta\"\r\n title=\"Comune\"\r\n url={cercaComuni()}\r\n renderProperty=\"DescrizioneComposta\"\r\n validations={[\r\n Validation.DefaultRules.required,\r\n ]}\r\n readOnly={!residenzaSedeLegaleEditabili}\r\n />\r\n \r\n \r\n \r\n onChangeAutocompletes('Toponimo', val)}\r\n name=\"ToponimoDescrizione\"\r\n title=\"Toponimo\"\r\n url={cercaToponimi()}\r\n renderProperty=\"Descrizione\"\r\n validations={[\r\n Validation.DefaultRules.required,\r\n ]}\r\n readOnly={!residenzaSedeLegaleEditabili}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n);\r\n\r\nSezioneSedeLegale.defaultProps = {\r\n// annoRiferimentoDa: 0,\r\n// erroreImportoLimitato: false,\r\n};\r\n\r\nSezioneSedeLegale.propTypes = {\r\n presetForm: PropTypes.func.isRequired,\r\n onChangeAutocompletes: PropTypes.func.isRequired,\r\n residenzaSedeLegaleEditabili: PropTypes.bool.isRequired,\r\n// campiSpecifici: PropTypes.arrayOf(PropTypes.object).isRequired,\r\n// idCodiceTributo: PropTypes.number.isRequired,\r\n// periodoDa: PropTypes.string.isRequired,\r\n// periodoA: PropTypes.string.isRequired,\r\n// idEnte: PropTypes.number.isRequired,\r\n// annoRiferimentoDa: PropTypes.number,\r\n// erroreImportoLimitato: PropTypes.bool,\r\n// limiteUnico: PropTypes.bool.isRequired,\r\n};\r\n\r\nexport default SezioneSedeLegale;\r\n","/* eslint-disable no-nested-ternary */\r\nimport React, {\r\n useCallback, useEffect, useState, useRef,\r\n} from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport {\r\n Spinner, Form,\r\n} from 'framework-ui-components';\r\nimport {\r\n Button, FeedbackPanel, MiniPanel,\r\n} from 'framework-ui-components/Components/V2';\r\nimport Log, { logApiError } from 'framework-taskforce/utils/log';\r\nimport FwPlugins from 'framework-plugins';\r\nimport { getSegnalazioneError } from 'framework-taskforce/models/segnalazioni';\r\nimport { isEmptyObject } from 'framework-taskforce/utils/object';\r\nimport { useHistory } from 'react-router';\r\nimport PropTypes from 'prop-types';\r\nimport { getOttieniIndirizzoResidenzaFiscale, getOttieniIndirizzoSedeLegale, postAggiungiIndirizzo } from '../../../apis/anagrafiche';\r\nimport SezioneResidenza from '../../../areas/listaContribuenti/creazioneContribuente/SezioneResidenza';\r\nimport { STEP_PLUGIN_PAGOF24 } from '../../../models/f24';\r\nimport { TIPO_INDIRIZZO, TIPO_PERSONA } from '../../../models/anagrafica';\r\nimport SezioneSedeLegale from '../../../areas/listaContribuenti/creazioneContribuente/SezioneSedeLegale';\r\n\r\nconst CompletaContribuente = ({ proseguiInvio }) => {\r\n const codiceUfficioSelezionato = useSelector((store) => store.appParams.ufficioSelezionato);\r\n const studioSelezionato = useSelector((store) => store.appParams.studioSelezionato);\r\n const soggetto = useSelector((store) => store.soggetto);\r\n\r\n const [loading, setLoading] = useState(true);\r\n const [formData, setFormData] = useState({ });\r\n const [isFormValid, setIsFormValid] = useState(false);\r\n const [esisteResidenzaOSedeLegale, setEsisteResidenzaOSedeLegale] = useState(null);\r\n const [segnalazioni, setSegnalazioni] = useState(false);\r\n\r\n const formRef = useRef();\r\n\r\n const presetForm = useCallback(({ FormErrors, ...datoModificato }) => {\r\n if (!formData || isEmptyObject(datoModificato)) return;\r\n\r\n const newStato = { ...formData, ...datoModificato };\r\n\r\n setFormData(newStato);\r\n }, [formData]);\r\n\r\n const aggiungiResidenzaFiscaleSedeLegale = useCallback((datiCreazione) => {\r\n FwPlugins.postMessageToParent('SERVIZIO_PAGOF24_FEEDBACK', STEP_PLUGIN_PAGOF24.FEEDBACK);\r\n setLoading(true);\r\n\r\n const oggettoCreazione = {\r\n IdStudio: studioSelezionato,\r\n CodiceUfficio: codiceUfficioSelezionato,\r\n IdTipoIndirizzo: soggetto.tipoPersona === TIPO_PERSONA.PERSONA_FISICA ? TIPO_INDIRIZZO.RESIDENZA_FISCALE : TIPO_INDIRIZZO.SEDE_LEGALE,\r\n descrizione: formData.IndirizzoDescrizione,\r\n ...datiCreazione,\r\n };\r\n\r\n postAggiungiIndirizzo(oggettoCreazione)\r\n .then((res) => {\r\n if (res.Success) {\r\n setEsisteResidenzaOSedeLegale(true);\r\n } else {\r\n FwPlugins.postMessageToParent('SERVIZIO_PAGOF24_FEEDBACK', STEP_PLUGIN_PAGOF24.FEEDBACK);\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n }, [codiceUfficioSelezionato, formData.IndirizzoDescrizione, soggetto, studioSelezionato]);\r\n\r\n const recuperaResidenzaOSedeLegale = useCallback((datiAnagrafici) => {\r\n if (datiAnagrafici.idAnagrafica) {\r\n (datiAnagrafici.tipoPersona === TIPO_PERSONA.PERSONA_FISICA\r\n ? getOttieniIndirizzoResidenzaFiscale : getOttieniIndirizzoSedeLegale)(datiAnagrafici.idAnagrafica)\r\n .then((res) => {\r\n if (res.Success && res.Result) {\r\n setEsisteResidenzaOSedeLegale(!!res.Result);\r\n } else {\r\n setEsisteResidenzaOSedeLegale(false);\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n } else {\r\n setEsisteResidenzaOSedeLegale(false);\r\n\r\n setLoading(false);\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (soggetto && esisteResidenzaOSedeLegale === null) {\r\n if (soggetto.idContribuente) {\r\n recuperaResidenzaOSedeLegale(soggetto);\r\n } else {\r\n setLoading(false);\r\n setEsisteResidenzaOSedeLegale(false);\r\n }\r\n }\r\n }, [esisteResidenzaOSedeLegale, recuperaResidenzaOSedeLegale, soggetto]);\r\n\r\n useEffect(() => {\r\n if (esisteResidenzaOSedeLegale) {\r\n proseguiInvio();\r\n }\r\n }, [esisteResidenzaOSedeLegale, proseguiInvio]);\r\n\r\n const onChangeAutocompletes = (campo, elemento) => {\r\n const autocompleteVals = [];\r\n\r\n if (campo === 'CodiceComune') {\r\n autocompleteVals.IdComune = elemento.Id;\r\n autocompleteVals.CodiceComuneDescrizioneComposta = elemento.DescrizioneComposta;\r\n autocompleteVals.ComuneDescrizione = elemento.Descrizione;\r\n autocompleteVals.ComuneCodiceProvincia = elemento.CodiceProvincia;\r\n autocompleteVals.Cap = elemento.Cap;\r\n }\r\n if (campo === 'Toponimo') {\r\n autocompleteVals.IdToponimo = elemento.Id_Toponimo;\r\n autocompleteVals.ToponimoDescrizione = elemento.Descrizione;\r\n }\r\n if (campo === 'NaturaGiuridica') {\r\n autocompleteVals.IdNaturaGiuridica = elemento.IdNaturaGiuridica;\r\n autocompleteVals.NaturaGiuridica = elemento.Descrizione;\r\n }\r\n\r\n presetForm(autocompleteVals);\r\n };\r\n\r\n return (\r\n
    \r\n {loading ? (\r\n
    \r\n
    \r\n \r\n
      Sto impostando i dati...
    \r\n
    \r\n
    \r\n ) : (\r\n 0 && '100%',\r\n }}\r\n >\r\n {!loading && segnalazioni.length > 0\r\n ? (\r\n \r\n
      \r\n {segnalazioni.map((segnalazione, idx) => (\r\n {segnalazione.msg}\r\n \r\n ))}\r\n
    \r\n
    \r\n )}\r\n type=\"alarm\"\r\n />\r\n )\r\n : (\r\n
    \r\n
    \r\n Per creare la delega F24 servono prima alcune informazioni di {soggetto.nominativo}.\r\n
    \r\n {!esisteResidenzaOSedeLegale && (\r\n
    \r\n setIsFormValid(validity)}\r\n >\r\n {soggetto.tipoPersona === TIPO_PERSONA.PERSONA_FISICA ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n
    \r\n )}\r\n
    \r\n )}\r\n
    \r\n
    \r\n {!segnalazioni.length > 0 ? (\r\n (\r\n aggiungiResidenzaFiscaleSedeLegale({ ...soggetto, ...formData })\r\n )}\r\n emphasis={Button.Emphasis.HIGH}\r\n primary\r\n disabled={!isFormValid}\r\n running={loading}\r\n >\r\n AVANTI\r\n \r\n ) : (\r\n { FwPlugins.postMessageToParent('SERVIZIO_PAGOF24_RIPROVA', STEP_PLUGIN_PAGOF24.ANAGRAFICA); setSegnalazioni([]); }}\r\n emphasis={Button.Emphasis.HIGH}\r\n primary\r\n running={loading}\r\n >\r\n RIPROVA\r\n \r\n )}\r\n
    \r\n
    \r\n
    \r\n )}\r\n
    \r\n );\r\n};\r\n\r\nCompletaContribuente.defaultProps = {\r\n\r\n};\r\n\r\nCompletaContribuente.propTypes = {\r\n proseguiInvio: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default CompletaContribuente;\r\n","import React, {\r\n useCallback, useEffect, useRef, useState,\r\n} from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport { Button } from 'framework-ui-components/Components/V2';\r\nimport {\r\n Radio, DatePicker, EllipsisText, Validation, Form, Autocomplete, Input, Restriction,\r\n} from 'framework-ui-components';\r\nimport PropTypes from 'prop-types';\r\nimport { isEmptyObject } from 'framework-taskforce/utils/object';\r\nimport RemoveIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/RemoveIcon';\r\nimport { SOGGETTO_VERSANTE } from '../../models/delega';\r\nimport { cercaBanche, cercaFilialiBanca, getGeneraIBAN } from '../../apis/anagrafiche';\r\nimport TemplateGrid from '../TemplateGrid/TemplateGrid';\r\nimport { cercaIntermediari } from '../../apis/intermediari';\r\nimport LabelOnly from '../custom/LabelOnly';\r\nimport AddCircleOutlineIcon from '../icons/google/AddCircleOutlineIcon';\r\nimport CheckboxTitle from '../custom/CheckboxTitle';\r\n\r\nconst StepPresentazioneInvioTelematico = ({\r\n setSegnalazioni,\r\n loading,\r\n dataVersamento,\r\n setDataVersamento,\r\n datiDelega,\r\n setIdContoSelezionato,\r\n setIdIntermediario,\r\n setUsaContoIntermediario,\r\n formData,\r\n setFormData,\r\n setIsFormValid,\r\n aggiuntaNuovoContoCorrente,\r\n setAggiuntaNuovoContoCorrente,\r\n ibanManuale,\r\n setIbanManuale,\r\n listaContiCorrente,\r\n setListaContiCorrente,\r\n idSoggettoVersante,\r\n setIdSoggettoVersante,\r\n}) => {\r\n const formRef = useRef();\r\n\r\n const studioSelezionato = useSelector((store) => store.appParams.studioSelezionato);\r\n\r\n const [nominativoSoggettoVersante, setNominativoSoggettoVersante] = useState(null);\r\n\r\n const presetForm = useCallback(({ FormErrors, ...datoModificato }) => {\r\n if (!formData || isEmptyObject(datoModificato)) return;\r\n\r\n if (datoModificato.SoggettoContoDiAddebito || datoModificato.IdIntermediario) {\r\n setListaContiCorrente(null);\r\n setAggiuntaNuovoContoCorrente(false);\r\n }\r\n\r\n const newStato = { ...formData, ...datoModificato };\r\n\r\n if (datoModificato.SoggettoContoDiAddebito) {\r\n newStato.IdContoSelezionato = 0;\r\n setIdContoSelezionato(null);\r\n\r\n if (datoModificato.SoggettoContoDiAddebito === '0') {\r\n setUsaContoIntermediario(false);\r\n setListaContiCorrente(null);\r\n setIdSoggettoVersante(null);\r\n setNominativoSoggettoVersante(null);\r\n } else if (datoModificato.SoggettoContoDiAddebito === '1') {\r\n setUsaContoIntermediario(true);\r\n setIdSoggettoVersante(formData.IdAnagraficaIntermediario);\r\n setListaContiCorrente(null);\r\n }\r\n }\r\n\r\n if (newStato.IdContoSelezionato || newStato.IdContoSelezionato === 0) {\r\n setIdContoSelezionato(newStato.IdContoSelezionato);\r\n }\r\n\r\n // eslint-disable-next-line no-prototype-builtins\r\n if (datoModificato.hasOwnProperty('NumeroConto') || datoModificato.hasOwnProperty('AbiBanca') || datoModificato.hasOwnProperty('CabBanca')) {\r\n newStato.IbanGenerato = null;\r\n }\r\n\r\n setFormData(newStato);\r\n }, [formData,\r\n setAggiuntaNuovoContoCorrente,\r\n setFormData,\r\n setIdContoSelezionato,\r\n setIdSoggettoVersante,\r\n setListaContiCorrente,\r\n setUsaContoIntermediario]);\r\n\r\n const settaValidita = useCallback((validita) => {\r\n if (aggiuntaNuovoContoCorrente) {\r\n setIsFormValid(validita);\r\n } else {\r\n setIsFormValid(formData.IdContoSelezionato > 0 || (datiDelega && datiDelega.Iban));\r\n }\r\n }, [aggiuntaNuovoContoCorrente, datiDelega, formData.IdContoSelezionato, setIsFormValid]);\r\n\r\n const onChangeAutocompletes = (campo, elemento) => {\r\n const autocompleteVals = [];\r\n\r\n if (campo === 'SelezioneIntermediario') {\r\n autocompleteVals.IdIntermediario = elemento.IdIntermediario;\r\n autocompleteVals.IdAnagraficaIntermediario = elemento.IdAnagrafica;\r\n autocompleteVals.CodiceFiscaleDenominazione = elemento.CodiceFiscaleDenominazione;\r\n autocompleteVals.IdContoSelezionato = null;\r\n }\r\n\r\n if (campo === 'Banca') {\r\n autocompleteVals.AbiBanca = elemento.Abi;\r\n autocompleteVals.DescrizioneBanca = elemento.Descrizione;\r\n autocompleteVals.Banca = elemento.DescrizioneComposta;\r\n autocompleteVals.CabBanca = null;\r\n autocompleteVals.Filiale = null;\r\n }\r\n if (campo === 'Filiale') {\r\n autocompleteVals.CabBanca = elemento.Cab;\r\n autocompleteVals.Filiale = elemento.DescrizioneComposta;\r\n }\r\n\r\n presetForm(autocompleteVals);\r\n };\r\n\r\n useEffect(() => {\r\n if (formData.IdIntermediario) {\r\n setIdIntermediario({ id: formData.IdIntermediario, idAnagrafica: formData.IdAnagraficaIntermediario });\r\n }\r\n }, [formData.IdAnagraficaIntermediario, formData.IdIntermediario, setIdIntermediario]);\r\n\r\n useEffect(() => {\r\n if (formData.SoggettoContoDiAddebito === '0') {\r\n if (datiDelega && !idSoggettoVersante && !nominativoSoggettoVersante) {\r\n if (datiDelega.SoggettoVersante === SOGGETTO_VERSANTE.COOBBLIGATO) {\r\n setIdSoggettoVersante(datiDelega.IdAnagraficaCoobbligato);\r\n setNominativoSoggettoVersante(`${datiDelega.CodiceFiscaleCoobbligato} - ${datiDelega.DenominazioneCoobbligato}`);\r\n } else if (datiDelega.SoggettoVersante === SOGGETTO_VERSANTE.INTERMADIARIO) {\r\n setIdSoggettoVersante(datiDelega.IdAnagraficaIntermediario);\r\n setNominativoSoggettoVersante(`${datiDelega.CodiceFiscaleIntermediario} - ${datiDelega.DenominazioneIntermediario}`);\r\n } else {\r\n setIdSoggettoVersante(datiDelega.IdAnagraficaContribuente);\r\n setNominativoSoggettoVersante(`${datiDelega.CodiceFiscale} - ${datiDelega.Denominazione}`);\r\n }\r\n }\r\n }\r\n }, [datiDelega, formData, idSoggettoVersante, nominativoSoggettoVersante, setIdSoggettoVersante]);\r\n\r\n useEffect(() => {\r\n if (listaContiCorrente) {\r\n if (!formData.IdContoSelezionato) {\r\n if (listaContiCorrente.length === 1) {\r\n presetForm({\r\n IdContoSelezionato: listaContiCorrente[0].Id,\r\n });\r\n }\r\n }\r\n }\r\n }, [formData.IdContoSelezionato, listaContiCorrente, presetForm]);\r\n\r\n const onChangeDataVersamento = useCallback((val) => {\r\n setDataVersamento(val);\r\n setSegnalazioni([]);\r\n }, [setDataVersamento, setSegnalazioni]);\r\n\r\n useEffect(() => {\r\n if (formData) {\r\n if (aggiuntaNuovoContoCorrente && !formData.IbanGenerato\r\n && formData.AbiBanca && formData.CabBanca && formData.NumeroConto) {\r\n getGeneraIBAN(formData.AbiBanca, formData.CabBanca, formData.NumeroConto)\r\n .then((res) => {\r\n if (res.Success) {\r\n presetForm({\r\n IbanGenerato: res.Result,\r\n });\r\n }\r\n })\r\n .catch((e) => {\r\n });\r\n }\r\n }\r\n }, [aggiuntaNuovoContoCorrente, formData, presetForm]);\r\n\r\n const nuovoConto = useCallback(() => {\r\n setAggiuntaNuovoContoCorrente(true);\r\n settaValidita(false);\r\n presetForm({\r\n IdContoSelezionato: null,\r\n AbiBanca: null,\r\n CabBanca: null,\r\n DescrizioneBanca: null,\r\n Banca: null,\r\n Filiale: null,\r\n NumeroConto: null,\r\n });\r\n }, [presetForm, setAggiuntaNuovoContoCorrente, settaValidita]);\r\n\r\n const cambioIbanManuale = useCallback((event) => {\r\n setIbanManuale(event.target.checked);\r\n if (event.target.checked) {\r\n presetForm({\r\n AbiBanca: null,\r\n CabBanca: null,\r\n DescrizioneBanca: null,\r\n Banca: null,\r\n Filiale: null,\r\n NumeroConto: null,\r\n IbanGenerato: null,\r\n });\r\n } else {\r\n presetForm({\r\n IbanManuale: null,\r\n });\r\n }\r\n }, [presetForm, setIbanManuale]);\r\n\r\n return (\r\n settaValidita(validity)}\r\n >\r\n \r\n
    \r\n Indica la data di versamento\r\n {/* La data di versamento deve essere compresa tra la data\r\n
    \r\n odierna e la data di scadenza della delega. */}\r\n
    \r\n \r\n \r\n onChangeDataVersamento(val)}\r\n autoFocus\r\n date={dataVersamento}\r\n disabled={loading}\r\n />\r\n \r\n \r\n onChangeAutocompletes('SelezioneIntermediario', val)}\r\n validations={[Validation.DefaultRules.required]}\r\n disabled={loading}\r\n />\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n {formData.SoggettoContoDiAddebito === '0' && (\r\n
    \r\n {listaContiCorrente && listaContiCorrente.length > 0\r\n ? Seleziona IBAN del {SOGGETTO_VERSANTE.toString(datiDelega && datiDelega.SoggettoVersante)} :
    }\r\n conto.Predefinito) ? '200px' : '0px' },\r\n ],\r\n rows: [{ className: 'mt-8' }],\r\n },\r\n ]}\r\n >\r\n {listaContiCorrente && (\r\n listaContiCorrente.map((conto) => [\r\n
    ,\r\n ,\r\n {conto.DescrizioneSede}\r\n
    ,\r\n {conto.DescrizioneFiliale}\r\n
    ,\r\n listaContiCorrente.find((contoPredefinito) => contoPredefinito.Predefinito)\r\n ? (\r\n \r\n {conto.Predefinito && (Predefinito)}\r\n \r\n ) :
    ,\r\n ])\r\n )}\r\n \r\n
    \r\n \r\n
    \r\n {!aggiuntaNuovoContoCorrente ? (\r\n nuovoConto()}\r\n >\r\n \r\n Aggiungi un nuovo conto corrente\r\n \r\n ) : (\r\n {\r\n setAggiuntaNuovoContoCorrente(false);\r\n presetForm({\r\n IdContoSelezionato: null,\r\n AbiBanca: null,\r\n CabBanca: null,\r\n DescrizioneBanca: null,\r\n Banca: null,\r\n Filiale: null,\r\n NumeroConto: null,\r\n });\r\n }}\r\n >\r\n \r\n Non aggiungere un nuovo conto corrente\r\n \r\n )}\r\n \r\n
    \r\n {aggiuntaNuovoContoCorrente && (\r\n
    \r\n \r\n
    \r\n onChangeAutocompletes('Banca', val)}\r\n validations={ibanManuale ? [] : [Validation.DefaultRules.required]}\r\n autoFocus\r\n disabled={ibanManuale}\r\n />\r\n onChangeAutocompletes('Filiale', val)}\r\n validations={ibanManuale ? [] : [Validation.DefaultRules.required]}\r\n readOnly={!ibanManuale && !formData.AbiBanca}\r\n disabled={ibanManuale}\r\n />\r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n )}\r\n
    \r\n )}\r\n
    \r\n \r\n
    \r\n
    \r\n {formData.SoggettoContoDiAddebito === '1' && (\r\n
    \r\n {listaContiCorrente && listaContiCorrente.length > 0\r\n ? Seleziona IBAN :
    }\r\n conto.Predefinito) ? '200px' : '0px' },\r\n ],\r\n rows: [{ className: 'mt-8' }],\r\n },\r\n ]}\r\n >\r\n {listaContiCorrente && (\r\n listaContiCorrente.map((conto) => [\r\n
    ,\r\n ,\r\n {conto.DescrizioneSede}\r\n
    ,\r\n {conto.DescrizioneFiliale}\r\n
    ,\r\n listaContiCorrente.find((contoPredefinito) => contoPredefinito.Predefinito)\r\n ? (\r\n \r\n {conto.Predefinito && (Predefinito)}\r\n \r\n ) :
    ,\r\n ])\r\n )}\r\n \r\n
    \r\n \r\n
    \r\n {!aggiuntaNuovoContoCorrente ? (\r\n nuovoConto()}\r\n >\r\n \r\n Aggiungi un nuovo conto corrente\r\n \r\n ) : (\r\n {\r\n setAggiuntaNuovoContoCorrente(false);\r\n presetForm({\r\n IdContoSelezionato: null,\r\n AbiBanca: null,\r\n CabBanca: null,\r\n DescrizioneBanca: null,\r\n Banca: null,\r\n Filiale: null,\r\n NumeroConto: null,\r\n });\r\n }}\r\n >\r\n \r\n Non aggiungere un nuovo conto corrente\r\n \r\n )}\r\n \r\n
    \r\n {aggiuntaNuovoContoCorrente && (\r\n
    \r\n \r\n
    \r\n onChangeAutocompletes('Banca', val)}\r\n validations={ibanManuale ? [] : [Validation.DefaultRules.required]}\r\n autoFocus\r\n disabled={ibanManuale}\r\n />\r\n onChangeAutocompletes('Filiale', val)}\r\n validations={ibanManuale ? [] : [Validation.DefaultRules.required]}\r\n readOnly={!ibanManuale && !formData.AbiBanca}\r\n disabled={ibanManuale}\r\n />\r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n )}\r\n
    \r\n )}\r\n \r\n );\r\n};\r\nStepPresentazioneInvioTelematico.defaultProps = {\r\n datiDelega: {},\r\n idSoggettoVersante: null,\r\n listaContiCorrente: null,\r\n ibanManuale: false,\r\n aggiuntaNuovoContoCorrente: false,\r\n};\r\n\r\nStepPresentazioneInvioTelematico.propTypes = {\r\n setSegnalazioni: PropTypes.func.isRequired,\r\n loading: PropTypes.bool.isRequired,\r\n dataVersamento: PropTypes.string.isRequired,\r\n setDataVersamento: PropTypes.func.isRequired,\r\n datiDelega: PropTypes.shape({\r\n CodiceFiscaleCoobbligato: PropTypes.string,\r\n SoggettoVersante: PropTypes.string,\r\n IdAnagraficaCoobbligato: PropTypes.number,\r\n DenominazioneCoobbligato: PropTypes.string,\r\n IdAnagraficaIntermediario: PropTypes.number,\r\n DenominazioneIntermediario: PropTypes.string,\r\n CodiceFiscaleIntermediario: PropTypes.string,\r\n IdAnagraficaContribuente: PropTypes.number,\r\n CodiceFiscale: PropTypes.string,\r\n Denominazione: PropTypes.string,\r\n Iban: PropTypes.string,\r\n }),\r\n setIdContoSelezionato: PropTypes.func.isRequired,\r\n setIdIntermediario: PropTypes.func.isRequired,\r\n setUsaContoIntermediario: PropTypes.func.isRequired,\r\n formData: PropTypes.shape({\r\n CodiceFiscale: PropTypes.string,\r\n TipoPersona: PropTypes.number,\r\n IdAnagraficaCoobbligato: PropTypes.number,\r\n IbanGenerato: PropTypes.string,\r\n NumeroConto: PropTypes.string,\r\n AbiBanca: PropTypes.string,\r\n CabBanca: PropTypes.string,\r\n SoggettoContoDiAddebito: PropTypes.string,\r\n IdIntermediario: PropTypes.number,\r\n IdContoSelezionato: PropTypes.number,\r\n CodiceFiscaleDenominazione: PropTypes.string,\r\n IdAnagraficaIntermediario: PropTypes.number,\r\n }).isRequired,\r\n setFormData: PropTypes.func.isRequired,\r\n setIsFormValid: PropTypes.func.isRequired,\r\n aggiuntaNuovoContoCorrente: PropTypes.bool,\r\n setAggiuntaNuovoContoCorrente: PropTypes.func.isRequired,\r\n ibanManuale: PropTypes.bool,\r\n setIbanManuale: PropTypes.func.isRequired,\r\n listaContiCorrente: PropTypes.arrayOf(PropTypes.shape({\r\n Id: PropTypes.number,\r\n })),\r\n idSoggettoVersante: PropTypes.number,\r\n setListaContiCorrente: PropTypes.func.isRequired,\r\n setIdSoggettoVersante: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default StepPresentazioneInvioTelematico;\r\n","/* eslint-disable no-nested-ternary */\r\nimport React, {\r\n useCallback, useEffect, useState, useRef,\r\n} from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport {\r\n Spinner, Form, Input, Link,\r\n} from 'framework-ui-components';\r\nimport {\r\n Button, FeedbackPanel,\r\n} from 'framework-ui-components/Components/V2';\r\nimport { logApiError } from 'framework-taskforce/utils/log';\r\nimport FwPlugins from 'framework-plugins';\r\nimport { getSegnalazioneError } from 'framework-taskforce/models/segnalazioni';\r\nimport { isEmptyObject } from 'framework-taskforce/utils/object';\r\nimport { useHistory } from 'react-router';\r\nimport PropTypes from 'prop-types';\r\nimport { primaLetteraMaiuscola } from 'framework-taskforce/utils/text';\r\nimport EditIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/EditIcon';\r\nimport { getOttieniDatiUtenteUfficio, postAggiornaDatiUtenteUfficio } from '../../../apis/pagoF24';\r\nimport TemplateGrid from '../../TemplateGrid/TemplateGrid';\r\nimport { AnteprimaMailPagoF24Link } from '../../../models/urls';\r\nimport { getOttieniRecapiti, postAggiungiRecapito, postModificaRecapito } from '../../../apis/anagrafiche';\r\nimport { STEP_PLUGIN_PAGOF24 } from '../../../models/f24';\r\n\r\nconst DatiUtenteUfficioPerMailPos = ({ proseguiInvio }) => {\r\n const studioSelezionato = useSelector((store) => store.appParams.studioSelezionato);\r\n const nominativoSogg = useSelector((store) => store.soggetto.nominativo);\r\n const codiceUfficioSelezionato = useSelector((store) => store.appParams.ufficioSelezionato);\r\n const contribuenteIdAnagrafica = useSelector((store) => store.soggetto.idAnagrafica);\r\n\r\n const [loading, setLoading] = useState(true);\r\n const [formData, setFormData] = useState({ });\r\n const [isFormValid, setIsFormValid] = useState(false);\r\n const [datiUtenteUfficio, setDatiUtenteUfficio] = useState(null);\r\n const [segnalazioni, setSegnalazioni] = useState(false);\r\n const [emailPresente, setEmailPresente] = useState(null);\r\n const [emailConfermata, setEmailConfermata] = useState(null);\r\n const [modificaMail, setModificaMail] = useState(false);\r\n const [recapiti, setRecapiti] = useState([]);\r\n\r\n const formRef = useRef();\r\n const history = useHistory();\r\n\r\n const presetForm = useCallback(({ FormErrors, ...datoModificato }) => {\r\n if (!formData || isEmptyObject(datoModificato)) return;\r\n\r\n let cambiataEmail = false;\r\n if (datoModificato.EmailDestinatario) {\r\n cambiataEmail = true;\r\n }\r\n\r\n const newStato = { ...formData, ...datoModificato };\r\n\r\n if (cambiataEmail) {\r\n newStato.ConfermaEmail = null;\r\n }\r\n\r\n setFormData(newStato);\r\n }, [formData]);\r\n\r\n const recuperaEmailPredefinita = useCallback((risultatiPrecedenti) => {\r\n if (emailPresente === null) {\r\n getOttieniRecapiti(contribuenteIdAnagrafica)\r\n .then((res) => {\r\n if (res.Success && res.Result) {\r\n const recapito = res.Result.find((x) => (x.Predefinito ? x : false));\r\n if (recapito) {\r\n setEmailPresente(recapito);\r\n setFormData({ ...risultatiPrecedenti, EmailDestinatario: recapito.Email, ConfermaEmail: recapito.Email });\r\n } else {\r\n setEmailPresente(false);\r\n setFormData({ ...risultatiPrecedenti, EmailDestinatario: null, ConfermaEmail: null });\r\n }\r\n } else {\r\n setEmailPresente(false);\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n } else {\r\n setEmailPresente(false);\r\n setLoading(false);\r\n }\r\n }, [contribuenteIdAnagrafica, emailPresente]);\r\n\r\n const ottieniDatiUtenteUfficio = useCallback(() => {\r\n if (datiUtenteUfficio === null) {\r\n getOttieniDatiUtenteUfficio(codiceUfficioSelezionato)\r\n .then((res) => {\r\n if (res.Success) {\r\n setDatiUtenteUfficio(res.Result || false);\r\n if (res.Result) {\r\n if (contribuenteIdAnagrafica\r\n && emailPresente === null) {\r\n setLoading(true);\r\n recuperaEmailPredefinita(res.Result);\r\n }\r\n }\r\n } else {\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n }\r\n }, [codiceUfficioSelezionato, contribuenteIdAnagrafica, datiUtenteUfficio, emailPresente, recuperaEmailPredefinita]);\r\n\r\n useEffect(() => {\r\n if (datiUtenteUfficio === null) {\r\n setLoading(true);\r\n ottieniDatiUtenteUfficio();\r\n }\r\n }, [datiUtenteUfficio, ottieniDatiUtenteUfficio]);\r\n\r\n const aggiungiRecapito = useCallback(() => {\r\n const oggettoCreazione = {\r\n IdStudio: studioSelezionato,\r\n IdAnagrafica: contribuenteIdAnagrafica,\r\n ...formData,\r\n Predefinito: true,\r\n };\r\n\r\n oggettoCreazione.Email = formData.EmailDestinatario;\r\n\r\n const emailGiaPresente = recapiti.find((x) => (x.Email === formData.EmailDestinatario ? x : false));\r\n if (emailGiaPresente) {\r\n emailGiaPresente.Predefinito = true;\r\n emailGiaPresente.IdRecapito = emailGiaPresente.Id;\r\n postModificaRecapito(emailGiaPresente)\r\n .then((resModifica) => {\r\n if (resModifica.Success) {\r\n setEmailConfermata(true);\r\n } else {\r\n setSegnalazioni(resModifica.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n } else {\r\n postAggiungiRecapito(oggettoCreazione)\r\n .then((res) => {\r\n if (res.Success) {\r\n setEmailConfermata(true);\r\n } else {\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n }\r\n }, [studioSelezionato, contribuenteIdAnagrafica, formData, recapiti]);\r\n\r\n const confermaMail = useCallback(() => {\r\n if (emailPresente.Email !== formData.EmailDestinatario) {\r\n const newOggettoModifica = {\r\n ...emailPresente,\r\n IdRecapito: emailPresente.Id,\r\n };\r\n newOggettoModifica.Predefinito = false;\r\n newOggettoModifica.Email = formData.EmailDestinatario;\r\n\r\n postModificaRecapito(newOggettoModifica)\r\n .then((res) => {\r\n if (res.Success) {\r\n if (recapiti) {\r\n const emailGiaPresente = recapiti.find((x) => (x.Email === formData.Email ? x : false));\r\n if (emailGiaPresente) {\r\n emailGiaPresente.Predefinito = true;\r\n emailGiaPresente.IdRecapito = emailGiaPresente.Id;\r\n postModificaRecapito(emailGiaPresente)\r\n .then((resModifica) => {\r\n if (resModifica.Success) {\r\n setEmailConfermata(true);\r\n } else {\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n } else {\r\n aggiungiRecapito();\r\n }\r\n }\r\n } else {\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n } else {\r\n setEmailConfermata(true);\r\n }\r\n }, [aggiungiRecapito, emailPresente, formData, recapiti]);\r\n\r\n const aggiornaDatiUtenteUfficio = useCallback(() => {\r\n setLoading(true);\r\n postAggiornaDatiUtenteUfficio({\r\n CodiceUfficio: codiceUfficioSelezionato,\r\n Email: 'no-reply-cgnf24@cgn.it',\r\n ...formData,\r\n })\r\n .then((response) => {\r\n if (response.Success) {\r\n setLoading(true);\r\n if (emailPresente && emailPresente.Id) {\r\n confermaMail();\r\n } else { aggiungiRecapito(); }\r\n // proseguiInvio();\r\n } else {\r\n setSegnalazioni(response.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n }, [aggiungiRecapito, codiceUfficioSelezionato, confermaMail, emailPresente, formData]);\r\n\r\n useEffect(() => {\r\n if (emailConfermata) {\r\n proseguiInvio();\r\n }\r\n }, [emailConfermata, proseguiInvio]);\r\n\r\n return (\r\n
    \r\n {loading ? (\r\n
    \r\n
    \r\n \r\n
      Sto impostando i dati...
    \r\n
    \r\n
    \r\n ) : (\r\n 0 && '100%',\r\n }}\r\n >\r\n {!loading && segnalazioni.length > 0\r\n ? (\r\n \r\n
      \r\n {segnalazioni.map((segnalazione, idx) => (\r\n {segnalazione.msg}\r\n \r\n ))}\r\n
    \r\n
    \r\n )}\r\n type=\"alarm\"\r\n />\r\n )\r\n : (\r\n setIsFormValid(validity)}\r\n >\r\n
    \r\n Comunicazioni via e-mail\r\n
    \r\n
    \r\n CGN POS include una funzione di comunicazione automatica tramite e-mail per\r\n
    \r\n mantenere i clienti informati sull'esito del pagamento.\r\n
    \r\n
    \r\n Il mittente sei tu\r\n
    \r\n
    \r\n Qui puoi scegliere il nome che desideri utilizzare come mittente nell'intestazione\r\n
    \r\n dell'e-mail.\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Il destinatario è il tuo cliente\r\n
    \r\n
    \r\n Chiedi al cliente a quale indirizzo e-mail preferisce farsi spedire queste\r\n
    \r\n comunicazioni.\r\n
    \r\n {!emailConfermata && (\r\n
    \r\n
    \r\n \r\n \r\n {emailPresente && emailPresente.Id && !modificaMail ? (\r\n
    \r\n { setModificaMail(true); presetForm({ ConfermaEmail: null }); }}\r\n emphasis={Button.Emphasis.LOW}\r\n >\r\n \r\n Modifica\r\n \r\n
    \r\n ) : [\r\n
    ,\r\n ,\r\n ]}\r\n \r\n
    \r\n
    \r\n )}\r\n
    \r\n \r\n )}\r\n
    \r\n
    \r\n {!segnalazioni.length > 0 ? (\r\n aggiornaDatiUtenteUfficio()}\r\n emphasis={Button.Emphasis.HIGH}\r\n primary\r\n disabled={!isFormValid}\r\n running={loading}\r\n >\r\n AVANTI\r\n \r\n ) : (\r\n { FwPlugins.postMessageToParent('SERVIZIO_PAGOF24_RIPROVA', STEP_PLUGIN_PAGOF24.EMAIL); setSegnalazioni([]); }}\r\n emphasis={Button.Emphasis.HIGH}\r\n primary\r\n running={loading}\r\n >\r\n RIPROVA\r\n \r\n )}\r\n
    \r\n
    \r\n
    \r\n )}\r\n
    \r\n );\r\n};\r\n\r\nDatiUtenteUfficioPerMailPos.defaultProps = {\r\n\r\n};\r\n\r\nDatiUtenteUfficioPerMailPos.propTypes = {\r\n proseguiInvio: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default DatiUtenteUfficioPerMailPos;\r\n","/* eslint-disable no-nested-ternary */\r\nimport React, {\r\n useState, useEffect, useCallback,\r\n} from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Spinner,\r\n} from 'framework-ui-components';\r\nimport {\r\n Modal,\r\n Button,\r\n FeedbackPanel,\r\n ButtonGroup,\r\n} from 'framework-ui-components/Components/V2';\r\nimport FwPlugins, { IFrame } from 'framework-plugins';\r\nimport { SnackbarWrapper } from 'framework-ui-components/Components/Snackbar';\r\nimport { logApiError } from 'framework-taskforce/utils/log';\r\nimport { callDownloadFile } from 'framework-taskforce/utils/file';\r\nimport { getSegnalazioneError } from 'framework-taskforce/models/segnalazioni';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport DontShowAgain from 'framework-ui-components/Components/DontShowAgain/DontShowAgain';\r\nimport { JustADate, getYearAnnoCorso } from 'framework-taskforce/utils/date';\r\nimport StepSceltaModalita from './StepSceltaModalita';\r\nimport StepSceltaTipoFileTelematico from './StepSceltaTipoFileTelematico';\r\nimport { MODALITA_PRESENTAZIONE2, SOGGETTO_VERSANTE } from '../../models/delega';\r\nimport ConfirmItem from '../custom/ConfirmItem';\r\nimport ConfirmImage from '../icons/ConfirmImage';\r\nimport {\r\n getOttieniDelega,\r\n getOttieniInfoModalitaPresentazione,\r\n getOttieniUltimaStampaInDownload,\r\n getOttieniUltimoFileTelematicoContribuenteInDownload,\r\n postAssociaContoCorrente,\r\n postAssociaIntermediario,\r\n postCreaDelegaCopiaConformeTrasmissioneTelematica,\r\n postCreaFileTelematicoCbiContribuente,\r\n postCreaFileTelematicoContribuente,\r\n postPresentaConPagoF24,\r\n postRimuoviContoCorrente,\r\n postStampaCopiaConformeDelega,\r\n postStampaDelega,\r\n} from '../../apis/deleghe';\r\nimport apiDownloadFile from '../../apis/file';\r\nimport {\r\n getOttieniContiCorrenti, postAggiungiContoCorrente, postAggiungiContoCorrenteDaIban, postModificaContoCorrente,\r\n} from '../../apis/anagrafiche';\r\nimport {\r\n getOttieniFileTelematicoIntermediarioInDownload,\r\n postCreaFileTelematicoIntermediarioDelega,\r\n postInviaFileTelematicoIntermediarioDelegaConAdele,\r\n} from '../../apis/studio';\r\nimport StepPresentazioneFileTelematicoContribuente from './StepPresentazioneFileTelematicoContribuente';\r\nimport StepPresentazioneFileTelematicoIntermediario from './StepPresentazioneFileTelematicoIntermediario';\r\nimport StepSceltaTipoPagamentoDigitale from './StepSceltaTipoPagamentoDigitale';\r\nimport StepPresentazioneCBI from './StepPresentazioneCBI';\r\nimport { setPresentaDelegheCbiAction } from '../../actions/presentazioneDeleghe';\r\nimport { getHaAccettatoCondizioniUtilizzo, postPresentaConPagoF24Pos } from '../../apis/pagoF24';\r\nimport ConfermaEmailPagoF24 from './pagoF24/ConfermaEmailPagoF24';\r\nimport DatiUtenteUfficioPerMail from './pagoF24/DatiUtenteUfficioPerMail';\r\nimport AccettazionePagoF24 from './pagoF24/AccettazionePagoF24';\r\nimport CompletaContribuente from './pagoF24/CompletaContribuente';\r\nimport StepPresentazioneInvioTelematico from './StepPresentazioneInvioTelematico';\r\nimport { getOttieniContribuente } from '../../apis/contribuente';\r\nimport { setSoggettoAction } from '../../actions/soggetto';\r\nimport DatiUtenteUfficioPerMailPos from './pagoF24/DatiUtenteUfficioPerMailPos';\r\n\r\nconst ModalePresentaDelega = ({\r\n onClose,\r\n show,\r\n current,\r\n setCurrent,\r\n idDelega,\r\n datiDelegaDettaglio,\r\n dataScadenzaVersamento,\r\n modalitaPresentazione,\r\n infoModalitaPresentazioneProp,\r\n windowHeight,\r\n tipoModelloDichiarativoProp,\r\n}) => {\r\n const studioSelezionato = useSelector((store) => store.appParams.studioSelezionato);\r\n const codiceUfficioSelezionato = useSelector((store) => store.appParams.ufficioSelezionato);\r\n const soggetto = useSelector((store) => store.soggetto);\r\n\r\n const dispatch = useDispatch();\r\n\r\n const [loading, setLoading] = useState(false);\r\n const [esito, setEsito] = useState(null);\r\n const [segnalazioni, setSegnalazioni] = useState([]);\r\n const [sceltaModalitaPresentazioneRadio, setSceltaModalitaPresentazioneRadio] = useState(null);\r\n const [datiDelega, setDatiDelega] = useState(datiDelegaDettaglio);\r\n const [idContoSelezionato, setIdContoSelezionato] = useState(null);\r\n const [dataVersamento, setDataVersamento] = useState(new Date());\r\n const [stepModalitaPresentazione, setStepModalitaPresentazione] = useState(modalitaPresentazione);\r\n const [idIntermediario, setIdIntermediario] = useState(null);\r\n const [usaContoIntermediario, setUsaContoIntermediario] = useState(false);\r\n const [isFormValid, setIsFormValid] = useState(false);\r\n const [formData, setFormData] = useState({ });\r\n const [aggiuntaNuovoContoCorrente, setAggiuntaNuovoContoCorrente] = useState(false);\r\n const [specificaConto, setSpecificaConto] = useState(false);\r\n const [ibanManuale, setIbanManuale] = useState(false);\r\n const [infoModalitaPresentazione, setInfoModalitaPresentazione] = useState(infoModalitaPresentazioneProp);\r\n const [listaContiCorrente, setListaContiCorrente] = useState(null);\r\n const [idSoggettoVersante, setIdSoggettoVersante] = useState(null);\r\n const [servizioAccettato, setServizioAccettato] = useState(null);\r\n\r\n const [tipoModelloDichiarativo, setTipoModelloDichiarativo] = useState(null);\r\n const [linkPagoF24Carta, setLinkPagoF24Carta] = useState(null);\r\n\r\n const resetDati = useCallback(() => {\r\n setCurrent('scelta-presentazione');\r\n setSceltaModalitaPresentazioneRadio(null);\r\n setEsito(false);\r\n setInfoModalitaPresentazione(infoModalitaPresentazioneProp);\r\n setLoading(false);\r\n setSegnalazioni([]);\r\n setStepModalitaPresentazione(modalitaPresentazione);\r\n setAggiuntaNuovoContoCorrente(false);\r\n setSpecificaConto(datiDelegaDettaglio ? datiDelegaDettaglio.Iban : false);\r\n setIdIntermediario(null);\r\n setFormData({});\r\n setDatiDelega(null);\r\n setServizioAccettato(null);\r\n setLinkPagoF24Carta(null);\r\n }, [datiDelegaDettaglio, infoModalitaPresentazioneProp, modalitaPresentazione, setCurrent]);\r\n\r\n useEffect(() => {\r\n if (!show) {\r\n resetDati();\r\n }\r\n }, [resetDati, show]);\r\n\r\n useEffect(() => {\r\n if (show) {\r\n setStepModalitaPresentazione(modalitaPresentazione);\r\n }\r\n }, [modalitaPresentazione, resetDati, show]);\r\n\r\n useEffect(() => {\r\n if (idDelega && !infoModalitaPresentazioneProp && !infoModalitaPresentazione) {\r\n getOttieniInfoModalitaPresentazione(idDelega)\r\n .then((res) => {\r\n if (res.Success) {\r\n setInfoModalitaPresentazione(res.Result);\r\n }\r\n })\r\n .catch((e) => {\r\n setInfoModalitaPresentazione(infoModalitaPresentazioneProp);\r\n logApiError(e);\r\n });\r\n } else if (infoModalitaPresentazioneProp) {\r\n setInfoModalitaPresentazione(infoModalitaPresentazioneProp);\r\n }\r\n }, [idDelega, infoModalitaPresentazione, infoModalitaPresentazioneProp]);\r\n\r\n const stampaCartacea = useCallback(() => {\r\n setCurrent('scelta-presentazione');\r\n setLoading(true);\r\n postStampaDelega({ idDelega }).then((res) => {\r\n if (res.Success) {\r\n callDownloadFile(\r\n getOttieniUltimaStampaInDownload,\r\n 'Stampa cartacea', // dafultname,\r\n idDelega, // params\r\n ).then((resDownload) => {\r\n setLoading(false);\r\n setEsito(true);\r\n onClose(true);\r\n }).catch((e) => {\r\n setCurrent('scelta-presentazione');\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n } else {\r\n setCurrent('scelta-presentazione');\r\n setLoading(false);\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n })\r\n .catch((e) => {\r\n setCurrent('scelta-presentazione');\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n }, [idDelega, onClose, setCurrent, setSegnalazioni]);\r\n\r\n useEffect(() => {\r\n if (show && !datiDelega && !datiDelegaDettaglio && (\r\n sceltaModalitaPresentazioneRadio === MODALITA_PRESENTAZIONE2.FILE_TELEMATICO_CONTRIBUENTE\r\n || sceltaModalitaPresentazioneRadio === MODALITA_PRESENTAZIONE2.FILE_TELEMATICO_INTERMEDIARIO\r\n || sceltaModalitaPresentazioneRadio === MODALITA_PRESENTAZIONE2.INVIO_TELEMATICO\r\n || sceltaModalitaPresentazioneRadio === MODALITA_PRESENTAZIONE2.INVIO_CBI\r\n )) {\r\n // setLoading(true);\r\n getOttieniDelega(idDelega)\r\n .then((res) => {\r\n if (res.Success) {\r\n setDatiDelega(res.Result.Delega);\r\n setSpecificaConto(res.Result.Delega ? !!res.Result.Delega.Iban : false);\r\n setIsFormValid(res.Result.Delega ? !!res.Result.Delega.Iban : false);\r\n } else {\r\n SnackbarWrapper.notifyError(res.DetectedProblems);\r\n }\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n setLoading(false);\r\n logApiError(e);\r\n });\r\n } else if (show && !datiDelega && datiDelegaDettaglio) {\r\n setDatiDelega(datiDelegaDettaglio);\r\n setSpecificaConto(!!datiDelegaDettaglio.Iban);\r\n setIsFormValid(!!datiDelegaDettaglio.Iban);\r\n }\r\n }, [datiDelega, datiDelegaDettaglio, idDelega, sceltaModalitaPresentazioneRadio, show]);\r\n\r\n const setShowWarningPresentaDelegaCallback = useCallback(() => {\r\n setCurrent('stampa-cartacea');\r\n setLoading(true);\r\n }, [setCurrent]);\r\n\r\n const avviaPagoF24 = useCallback((conPos = false) => {\r\n if (conPos) {\r\n setCurrent('pagoF24-Pos-Anagrafica');\r\n } else {\r\n setCurrent('pagoF24-Accettazione');\r\n }\r\n setTipoModelloDichiarativo('0');\r\n }, [setCurrent]);\r\n\r\n const avviaPagoF24Carta = useCallback(() => {\r\n setLoading(true);\r\n setCurrent('pagoF24-carta-plugin');\r\n if (segnalazioni.length === 0) {\r\n postPresentaConPagoF24Pos(idDelega)\r\n .then((res) => {\r\n if (res.Success) {\r\n setLinkPagoF24Carta(res.Result.Link);\r\n } else {\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n setCurrent('scelta-presentazione');\r\n }\r\n setLoading(false);\r\n })\r\n .catch((err) => {\r\n setLoading(false);\r\n setSegnalazioni(['Si è verificato un errore']);\r\n });\r\n }\r\n setTipoModelloDichiarativo('0');\r\n }, [idDelega, segnalazioni.length, setCurrent]);\r\n\r\n useEffect(() => {\r\n // const params = new URLSearchParams(res.Result.Link.split('?')[1]);\r\n // setLinkPagoF24Carta(res.Result.Link.split('?')[0]);\r\n // setIdPagamentoF24POS(params.get('idPagamentoF24POS'));\r\n // setCodice(params.get('codice'));\r\n if (linkPagoF24Carta) {\r\n setCurrent('pagoF24-carta-plugin');\r\n }\r\n }, [linkPagoF24Carta, setCurrent]);\r\n\r\n useEffect(() => {\r\n if (show && (stepModalitaPresentazione === MODALITA_PRESENTAZIONE2.PAGO_F24 || stepModalitaPresentazione === MODALITA_PRESENTAZIONE2.CGN_POS)) {\r\n avviaPagoF24(stepModalitaPresentazione === MODALITA_PRESENTAZIONE2.CGN_POS);\r\n }\r\n }, [avviaPagoF24, show, stepModalitaPresentazione]);\r\n\r\n const proseguiAccettazionePagoF24 = useCallback(() => {\r\n if (current === 'pagoF24-Accettazione') {\r\n setCurrent('pagoF24-Anagrafica');\r\n }\r\n }, [current, setCurrent]);\r\n\r\n const proseguiAnagraficaPagoF24 = useCallback(() => {\r\n if (current === 'pagoF24-Anagrafica') {\r\n setCurrent('pagoF24-DatiUfficio');\r\n }\r\n }, [current, setCurrent]);\r\n\r\n const proseguiDatiUfficioPagoF24 = useCallback(() => {\r\n if (current === 'pagoF24-DatiUfficio') {\r\n setCurrent('pagoF24-Email');\r\n }\r\n }, [current, setCurrent]);\r\n\r\n const proseguiAnagraficaPagoF24Pos = useCallback(() => {\r\n if (current === 'pagoF24-Pos-Anagrafica') {\r\n setCurrent('pagoF24-Pos-DatiUfficio');\r\n }\r\n }, [current, setCurrent]);\r\n\r\n const proseguiEmailPagoF24 = useCallback(() => {\r\n setLoading(true);\r\n setCurrent('scelta-presentazione');\r\n if (segnalazioni.length === 0) {\r\n postPresentaConPagoF24([idDelega])\r\n .then((res) => {\r\n if (res.Success) {\r\n setCurrent('scelta-presentazione');\r\n setLoading(false);\r\n setEsito(true);\r\n onClose(\r\n true,\r\n false,\r\n null,\r\n null,\r\n null,\r\n true,\r\n );\r\n } else {\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n setLoading(false);\r\n setCurrent('scelta-presentazione');\r\n }\r\n })\r\n .catch((err) => {\r\n setLoading(false);\r\n setSegnalazioni(['Si è verificato un errore']);\r\n });\r\n }\r\n }, [idDelega, onClose, setCurrent, segnalazioni]);\r\n\r\n useEffect(() => {\r\n if (sceltaModalitaPresentazioneRadio === null) {\r\n if (modalitaPresentazione === MODALITA_PRESENTAZIONE2.FILE_TELEMATICO_CONTRIBUENTE\r\n || modalitaPresentazione === MODALITA_PRESENTAZIONE2.FILE_TELEMATICO_INTERMEDIARIO\r\n || modalitaPresentazione === MODALITA_PRESENTAZIONE2.INVIO_CBI\r\n || modalitaPresentazione === MODALITA_PRESENTAZIONE2.INVIO_TELEMATICO) {\r\n setSceltaModalitaPresentazioneRadio(modalitaPresentazione);\r\n }\r\n }\r\n }, [modalitaPresentazione, sceltaModalitaPresentazioneRadio]);\r\n\r\n const avantiFasePresentazione = useCallback(() => {\r\n if (sceltaModalitaPresentazioneRadio === MODALITA_PRESENTAZIONE2.STAMPA) {\r\n if (DontShowAgain.isDontShowAgainOptionSelected('stampa-cartacea-non-visualizza-piu')) {\r\n stampaCartacea();\r\n } else {\r\n setShowWarningPresentaDelegaCallback(true);\r\n }\r\n } else if (sceltaModalitaPresentazioneRadio === MODALITA_PRESENTAZIONE2.PAGAMENTO_DIGITALE) {\r\n setCurrent('pagamento-digitale');\r\n setSceltaModalitaPresentazioneRadio(null);\r\n } else if (sceltaModalitaPresentazioneRadio === MODALITA_PRESENTAZIONE2.FILE_TELEMATICO) {\r\n setCurrent('file-telematico');\r\n setSceltaModalitaPresentazioneRadio(null);\r\n } else if (sceltaModalitaPresentazioneRadio === MODALITA_PRESENTAZIONE2.FILE_TELEMATICO_CONTRIBUENTE) {\r\n setFormData({});\r\n setCurrent('form-file-telematico-contribuente');\r\n } else if (sceltaModalitaPresentazioneRadio === MODALITA_PRESENTAZIONE2.FILE_TELEMATICO_INTERMEDIARIO) {\r\n setCurrent('form-file-telematico-intermediario');\r\n } else if (sceltaModalitaPresentazioneRadio === MODALITA_PRESENTAZIONE2.INVIO_TELEMATICO) {\r\n setCurrent('form-invio-telematico');\r\n } else if (sceltaModalitaPresentazioneRadio === MODALITA_PRESENTAZIONE2.INVIO_CBI) {\r\n setFormData({});\r\n setDataVersamento(JustADate(dataScadenzaVersamento).getDate());\r\n setCurrent('form-cbi');\r\n } else if (sceltaModalitaPresentazioneRadio === MODALITA_PRESENTAZIONE2.PAGO_F24) {\r\n avviaPagoF24(false);\r\n } else if (sceltaModalitaPresentazioneRadio === MODALITA_PRESENTAZIONE2.CGN_POS) {\r\n avviaPagoF24(true);\r\n }\r\n }, [avviaPagoF24, dataScadenzaVersamento, sceltaModalitaPresentazioneRadio, setCurrent, setShowWarningPresentaDelegaCallback, stampaCartacea]);\r\n\r\n const indietroFasePresentazione = useCallback(() => {\r\n setCurrent('scelta-presentazione');\r\n setSceltaModalitaPresentazioneRadio(null);\r\n }, [setCurrent]);\r\n\r\n const scaricaCopiaConforme = useCallback(() => {\r\n postCreaDelegaCopiaConformeTrasmissioneTelematica(idDelega).then((res) => {\r\n if (res.Success) {\r\n callDownloadFile(\r\n apiDownloadFile,\r\n res.Result.NomeFile,\r\n res.Result.IdFile,\r\n codiceUfficioSelezionato,\r\n res.Result.NomeFile,\r\n ).then((resDownload) => {\r\n\r\n }).catch((e) => {\r\n setCurrent('scelta-presentazione');\r\n logApiError(e);\r\n });\r\n }\r\n })\r\n .catch((e) => {\r\n setCurrent('scelta-presentazione');\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n }, [codiceUfficioSelezionato, idDelega, setCurrent]);\r\n\r\n const fileTelematicoOrdinario = useCallback(() => {\r\n const DataVersamento = JustADate(dataVersamento).toISOString();\r\n setLoading(true);\r\n postCreaFileTelematicoContribuente({ idDelega, DataVersamento }).then((res) => {\r\n if (res.Success) {\r\n callDownloadFile(\r\n getOttieniUltimoFileTelematicoContribuenteInDownload,\r\n 'File telematico ordinario', // dafultname,\r\n idDelega, // params\r\n ).then((resDownload) => {\r\n scaricaCopiaConforme();\r\n setCurrent('scelta-presentazione');\r\n setLoading(false);\r\n setEsito(true);\r\n onClose(true);\r\n }).catch((e) => {\r\n setCurrent('scelta-presentazione');\r\n setDatiDelega(null);\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n } else {\r\n setCurrent('scelta-presentazione');\r\n setDatiDelega(null);\r\n setLoading(false);\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n })\r\n .catch((e) => {\r\n setCurrent('scelta-presentazione');\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n }, [dataVersamento, idDelega, onClose, scaricaCopiaConforme, setCurrent, setSegnalazioni]);\r\n\r\n const fileTelematicoOrdinarioCbi = useCallback(() => {\r\n const DataVersamento = JustADate(dataVersamento).toISOString();\r\n\r\n setLoading(true);\r\n setCurrent('loading-presentazione');\r\n postCreaFileTelematicoCbiContribuente({ idDelega, DataVersamento }).then((res) => {\r\n if (res.Success) {\r\n const fileTelematicoContribuente = {\r\n Id: res.Result.IdFile,\r\n Nome: res.Result.NomeFile,\r\n };\r\n postStampaCopiaConformeDelega(idDelega).then((resCopia) => {\r\n if (resCopia.Success) {\r\n const fileCopiaConforme = {\r\n Id: resCopia.Result.IdFile,\r\n Nome: resCopia.Result.NomeFile,\r\n };\r\n dispatch(\r\n setPresentaDelegheCbiAction({\r\n idDelega,\r\n dataVersamento: DataVersamento,\r\n }),\r\n );\r\n setLoading(true);\r\n setCurrent('scelta-presentazione');\r\n onClose(true, true, dataVersamento, fileCopiaConforme, fileTelematicoContribuente);\r\n setLoading(false);\r\n } else {\r\n setCurrent('scelta-presentazione');\r\n setLoading(false);\r\n setSegnalazioni(resCopia.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n })\r\n .catch((e) => {\r\n setCurrent('scelta-presentazione');\r\n logApiError(e);\r\n });\r\n } else {\r\n setCurrent('scelta-presentazione');\r\n setDatiDelega(null);\r\n setLoading(false);\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n })\r\n .catch((e) => {\r\n setCurrent('scelta-presentazione');\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n }, [dataVersamento, dispatch, idDelega, onClose, setCurrent, setSegnalazioni]);\r\n\r\n const fileTelematicoIntermediario = useCallback(() => {\r\n const DataVersamento = JustADate(dataVersamento).toISOString();\r\n setCurrent('loading-presentazione');\r\n setLoading(true);\r\n\r\n postCreaFileTelematicoIntermediarioDelega({\r\n idStudio: studioSelezionato, idDelega, DataVersamento, usaContoIntermediario,\r\n }).then((res) => {\r\n if (res.Success) {\r\n const idFileTelematicoIntermediario = res.Result;\r\n callDownloadFile(\r\n getOttieniFileTelematicoIntermediarioInDownload,\r\n 'File telematico intermediario', // dafultname,\r\n idFileTelematicoIntermediario, // params\r\n ).then((resDownload) => {\r\n scaricaCopiaConforme(idDelega);\r\n setCurrent('scelta-presentazione');\r\n setLoading(false);\r\n setEsito(true);\r\n onClose(true);\r\n }).catch((e) => {\r\n setDatiDelega(null);\r\n logApiError(e);\r\n setLoading(false);\r\n setCurrent('scelta-presentazione');\r\n });\r\n } else {\r\n setCurrent('scelta-presentazione');\r\n setDatiDelega(null);\r\n setLoading(false);\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n })\r\n .catch((e) => {\r\n setCurrent('scelta-presentazione');\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n }, [dataVersamento, idDelega, onClose, scaricaCopiaConforme, setCurrent, setSegnalazioni, studioSelezionato, usaContoIntermediario]);\r\n\r\n const inviaFileTelematicoIntermediarioConAdele = useCallback(() => {\r\n const DataVersamento = JustADate(dataVersamento).toISOString();\r\n setLoading(true);\r\n setCurrent('loading-presentazione');\r\n postInviaFileTelematicoIntermediarioDelegaConAdele({\r\n idStudio: studioSelezionato, idDelega, DataVersamento, usaContoIntermediario,\r\n }).then((res) => {\r\n if (res.Success) {\r\n scaricaCopiaConforme();\r\n setDatiDelega(null);\r\n setCurrent('scelta-presentazione');\r\n setLoading(false);\r\n setEsito(true);\r\n onClose(true);\r\n } else {\r\n setDatiDelega(null);\r\n setLoading(false);\r\n setCurrent('scelta-presentazione');\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n setCurrent('scelta-presentazione');\r\n });\r\n }, [dataVersamento, idDelega, onClose, scaricaCopiaConforme, setCurrent, setSegnalazioni, studioSelezionato, usaContoIntermediario]);\r\n\r\n const associaContoConPresentazioneFileTelematicoCbi = useCallback((\r\n abiBanca = null,\r\n cabBanca = null,\r\n numeroConto = null,\r\n isIbanManuale = false,\r\n iban = null,\r\n predefinito = false,\r\n contoPredefinitoPrecedente = null,\r\n ) => {\r\n setCurrent('loading-presentazione');\r\n setSpecificaConto(false);\r\n const oggettoAssociareConto = {\r\n IdDelega: idDelega,\r\n IdContoCorrente: idContoSelezionato,\r\n };\r\n\r\n setLoading(true);\r\n\r\n const oggettoCreazione = {\r\n IdStudio: studioSelezionato,\r\n AbiBanca: abiBanca,\r\n CabBanca: cabBanca,\r\n NumeroConto: numeroConto,\r\n Iban: iban,\r\n Predefinito: predefinito,\r\n };\r\n\r\n if (datiDelega.Iban) {\r\n fileTelematicoOrdinarioCbi(idDelega, dataVersamento);\r\n } else if ((abiBanca && cabBanca && numeroConto) || iban) {\r\n if (datiDelega.SoggettoVersante === SOGGETTO_VERSANTE.COOBBLIGATO) {\r\n oggettoCreazione.IdAnagrafica = datiDelega.IdAnagraficaCoobbligato;\r\n } else if (datiDelega.SoggettoVersante === SOGGETTO_VERSANTE.INTERMADIARIO) {\r\n oggettoCreazione.IdAnagrafica = datiDelega.IdAnagraficaIntermediario;\r\n } else {\r\n oggettoCreazione.IdAnagrafica = datiDelega.IdAnagraficaContribuente;\r\n }\r\n if (predefinito && contoPredefinitoPrecedente) {\r\n const exContoPredefinito = {\r\n IdContoCorrente: contoPredefinitoPrecedente.Id,\r\n IdAnagrafica: oggettoCreazione.IdAnagrafica,\r\n Iban: contoPredefinitoPrecedente.IbanManuale,\r\n AbiBanca: contoPredefinitoPrecedente.AbiBanca,\r\n CabBanca: contoPredefinitoPrecedente.CabBanca,\r\n NumeroConto: contoPredefinitoPrecedente.NumeroConto,\r\n Predefinito: false,\r\n };\r\n\r\n postModificaContoCorrente(exContoPredefinito).then((result) => {\r\n if (result.Success) {\r\n (isIbanManuale ? postAggiungiContoCorrenteDaIban : postAggiungiContoCorrente)(oggettoCreazione)\r\n .then((resAggiungiConto) => {\r\n if (resAggiungiConto.Success) {\r\n oggettoAssociareConto.IdContoCorrente = resAggiungiConto.Result;\r\n postAssociaContoCorrente(oggettoAssociareConto)\r\n .then((res) => {\r\n if (res.Success) {\r\n fileTelematicoOrdinarioCbi(idDelega, dataVersamento);\r\n } else {\r\n setCurrent('scelta-presentazione');\r\n setLoading(false);\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setCurrent('scelta-presentazione');\r\n setLoading(false);\r\n });\r\n } else {\r\n setSegnalazioni(resAggiungiConto.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n setCurrent('scelta-presentazione');\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n setCurrent('scelta-presentazione');\r\n });\r\n } else {\r\n setSegnalazioni(result.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n } else {\r\n (isIbanManuale ? postAggiungiContoCorrenteDaIban : postAggiungiContoCorrente)(oggettoCreazione)\r\n .then((resAggiungiConto) => {\r\n if (resAggiungiConto.Success) {\r\n oggettoAssociareConto.IdContoCorrente = resAggiungiConto.Result;\r\n postAssociaContoCorrente(oggettoAssociareConto)\r\n .then((res) => {\r\n if (res.Success) {\r\n fileTelematicoOrdinarioCbi(idDelega, dataVersamento);\r\n } else {\r\n setCurrent('scelta-presentazione');\r\n setLoading(false);\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setCurrent('scelta-presentazione');\r\n setLoading(false);\r\n });\r\n } else {\r\n setSegnalazioni(resAggiungiConto.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n setCurrent('scelta-presentazione');\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n setCurrent('scelta-presentazione');\r\n });\r\n }\r\n } else {\r\n postAssociaContoCorrente(oggettoAssociareConto)\r\n .then((res) => {\r\n if (res.Success) {\r\n fileTelematicoOrdinarioCbi(idDelega, dataVersamento);\r\n\r\n setLoading(false);\r\n } else {\r\n setCurrent('scelta-presentazione');\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n setCurrent('scelta-presentazione');\r\n });\r\n }\r\n }, [dataVersamento, datiDelega, fileTelematicoOrdinarioCbi, idContoSelezionato, idDelega, setCurrent, studioSelezionato]);\r\n\r\n const associaContoConPresentazioneFileTelematicoContribuente = useCallback((\r\n abiBanca = null,\r\n cabBanca = null,\r\n numeroConto = null,\r\n isIbanManuale = false,\r\n iban = null,\r\n predefinito = false,\r\n contoPredefinitoPrecedente = null,\r\n ) => {\r\n setCurrent('loading-presentazione');\r\n setSpecificaConto(false);\r\n const oggettoAssociareConto = {\r\n IdDelega: idDelega,\r\n IdContoCorrente: idContoSelezionato,\r\n };\r\n setLoading(true);\r\n if (specificaConto) {\r\n const oggettoCreazione = {\r\n IdStudio: studioSelezionato,\r\n AbiBanca: abiBanca,\r\n CabBanca: cabBanca,\r\n NumeroConto: numeroConto,\r\n Iban: iban,\r\n Predefinito: predefinito,\r\n };\r\n if (datiDelega.Iban) {\r\n fileTelematicoOrdinario(idDelega, dataVersamento);\r\n } else if ((abiBanca && cabBanca && numeroConto) || iban) {\r\n if (datiDelega.SoggettoVersante === SOGGETTO_VERSANTE.COOBBLIGATO) {\r\n oggettoCreazione.IdAnagrafica = datiDelega.IdAnagraficaCoobbligato;\r\n } else if (datiDelega.SoggettoVersante === SOGGETTO_VERSANTE.INTERMADIARIO) {\r\n oggettoCreazione.IdAnagrafica = datiDelega.IdAnagraficaIntermediario;\r\n } else {\r\n oggettoCreazione.IdAnagrafica = datiDelega.IdAnagraficaContribuente;\r\n }\r\n\r\n if (predefinito && contoPredefinitoPrecedente) {\r\n const exContoPredefinito = {\r\n IdContoCorrente: contoPredefinitoPrecedente.Id,\r\n IdAnagrafica: oggettoCreazione.IdAnagrafica,\r\n Iban: contoPredefinitoPrecedente.IbanManuale,\r\n AbiBanca: contoPredefinitoPrecedente.AbiBanca,\r\n CabBanca: contoPredefinitoPrecedente.CabBanca,\r\n NumeroConto: contoPredefinitoPrecedente.NumeroConto,\r\n Predefinito: false,\r\n };\r\n\r\n postModificaContoCorrente(exContoPredefinito).then((result) => {\r\n if (result.Success) {\r\n (isIbanManuale ? postAggiungiContoCorrenteDaIban : postAggiungiContoCorrente)(oggettoCreazione)\r\n .then((resAggiungiConto) => {\r\n if (resAggiungiConto.Success) {\r\n oggettoAssociareConto.IdContoCorrente = resAggiungiConto.Result;\r\n postAssociaContoCorrente(oggettoAssociareConto)\r\n .then((res) => {\r\n if (res.Success) {\r\n fileTelematicoOrdinario(idDelega, dataVersamento);\r\n setLoading(false);\r\n } else {\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n setCurrent('scelta-presentazione');\r\n }\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n setCurrent('scelta-presentazione');\r\n });\r\n } else {\r\n setSegnalazioni(resAggiungiConto.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n setCurrent('scelta-presentazione');\r\n }\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n setCurrent('scelta-presentazione');\r\n });\r\n } else {\r\n setSegnalazioni(result.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n } else {\r\n (isIbanManuale ? postAggiungiContoCorrenteDaIban : postAggiungiContoCorrente)(oggettoCreazione)\r\n .then((resAggiungiConto) => {\r\n if (resAggiungiConto.Success) {\r\n oggettoAssociareConto.IdContoCorrente = resAggiungiConto.Result;\r\n postAssociaContoCorrente(oggettoAssociareConto)\r\n .then((res) => {\r\n if (res.Success) {\r\n fileTelematicoOrdinario(idDelega, dataVersamento);\r\n setLoading(false);\r\n } else {\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n setCurrent('scelta-presentazione');\r\n }\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n setCurrent('scelta-presentazione');\r\n });\r\n } else {\r\n setSegnalazioni(resAggiungiConto.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n setCurrent('scelta-presentazione');\r\n }\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n setCurrent('scelta-presentazione');\r\n });\r\n }\r\n } else {\r\n postAssociaContoCorrente(oggettoAssociareConto)\r\n .then((res) => {\r\n if (res.Success) {\r\n fileTelematicoOrdinario(idDelega, dataVersamento);\r\n setLoading(false);\r\n } else {\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n setCurrent('scelta-presentazione');\r\n }\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n setCurrent('scelta-presentazione');\r\n });\r\n }\r\n } else if (!datiDelega.Iban) {\r\n fileTelematicoOrdinario(idDelega, dataVersamento);\r\n } else {\r\n postRimuoviContoCorrente(datiDelega.IdDelega)\r\n .then((res) => {\r\n if (res.Success) {\r\n fileTelematicoOrdinario(idDelega, dataVersamento);\r\n } else {\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n setCurrent('scelta-presentazione');\r\n }\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n setCurrent('scelta-presentazione');\r\n });\r\n }\r\n }, [dataVersamento,\r\n datiDelega,\r\n fileTelematicoOrdinario,\r\n idContoSelezionato,\r\n idDelega, setCurrent,\r\n specificaConto,\r\n studioSelezionato]);\r\n\r\n const associaContoConPresentazioneFileTelematicoIntermediario = useCallback((\r\n abiBanca = null,\r\n cabBanca = null,\r\n numeroConto = null,\r\n isIbanManuale = false,\r\n iban = null,\r\n predefinito = false,\r\n contoPredefinitoPrecedente = null,\r\n ) => {\r\n setCurrent('loading-presentazione');\r\n setSpecificaConto(false);\r\n const oggettoAssociareConto = {\r\n IdDelega: idDelega,\r\n IdContoCorrente: idContoSelezionato,\r\n };\r\n setLoading(true);\r\n\r\n const oggettoAssociareIntermediario = {\r\n IdDelega: idDelega,\r\n IdIntermediario: idIntermediario.id,\r\n UsaContoIntermediario: usaContoIntermediario,\r\n };\r\n\r\n const oggettoCreazione = {\r\n IdStudio: studioSelezionato,\r\n AbiBanca: abiBanca,\r\n CabBanca: cabBanca,\r\n NumeroConto: numeroConto,\r\n Iban: iban,\r\n Predefinito: predefinito,\r\n };\r\n if ((abiBanca && cabBanca && numeroConto) || iban) {\r\n if (datiDelega.SoggettoVersante === SOGGETTO_VERSANTE.COOBBLIGATO) {\r\n oggettoCreazione.IdAnagrafica = datiDelega.IdAnagraficaCoobbligato;\r\n } else if (datiDelega.SoggettoVersante === SOGGETTO_VERSANTE.INTERMADIARIO) {\r\n oggettoCreazione.IdAnagrafica = datiDelega.IdAnagraficaIntermediario;\r\n } else {\r\n oggettoCreazione.IdAnagrafica = datiDelega.IdAnagraficaContribuente;\r\n }\r\n\r\n postAssociaIntermediario(oggettoAssociareIntermediario)\r\n .then((resInt) => {\r\n if (resInt.Success) {\r\n if (usaContoIntermediario) {\r\n oggettoCreazione.IdAnagrafica = idIntermediario.idAnagrafica;\r\n }\r\n if (predefinito && contoPredefinitoPrecedente) {\r\n const exContoPredefinito = {\r\n IdContoCorrente: contoPredefinitoPrecedente.Id,\r\n IdAnagrafica: oggettoCreazione.IdAnagrafica,\r\n Iban: contoPredefinitoPrecedente.IbanManuale,\r\n AbiBanca: contoPredefinitoPrecedente.AbiBanca,\r\n CabBanca: contoPredefinitoPrecedente.CabBanca,\r\n NumeroConto: contoPredefinitoPrecedente.NumeroConto,\r\n Predefinito: false,\r\n };\r\n\r\n postModificaContoCorrente(exContoPredefinito).then((result) => {\r\n if (result.Success) {\r\n (isIbanManuale ? postAggiungiContoCorrenteDaIban : postAggiungiContoCorrente)(oggettoCreazione)\r\n .then((resAggiungiConto) => {\r\n if (resAggiungiConto.Success) {\r\n oggettoAssociareConto.IdContoCorrente = resAggiungiConto.Result;\r\n postAssociaContoCorrente(oggettoAssociareConto)\r\n .then((res) => {\r\n if (res.Success) {\r\n if (sceltaModalitaPresentazioneRadio === MODALITA_PRESENTAZIONE2.FILE_TELEMATICO_INTERMEDIARIO) {\r\n fileTelematicoIntermediario(idDelega, dataVersamento);\r\n } else if (sceltaModalitaPresentazioneRadio === MODALITA_PRESENTAZIONE2.INVIO_TELEMATICO) {\r\n inviaFileTelematicoIntermediarioConAdele(idDelega, dataVersamento);\r\n } else {\r\n fileTelematicoOrdinario(idDelega, dataVersamento);\r\n }\r\n\r\n setLoading(false);\r\n } else {\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n setCurrent('scelta-presentazione');\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n setCurrent('scelta-presentazione');\r\n });\r\n } else {\r\n setCurrent('scelta-presentazione');\r\n setSegnalazioni(resAggiungiConto.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n setCurrent('scelta-presentazione');\r\n });\r\n } else {\r\n setSegnalazioni(result.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n setCurrent('scelta-presentazione');\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n setCurrent('scelta-presentazione');\r\n });\r\n } else {\r\n (isIbanManuale ? postAggiungiContoCorrenteDaIban : postAggiungiContoCorrente)(oggettoCreazione)\r\n .then((resAggiungiConto) => {\r\n if (resAggiungiConto.Success) {\r\n oggettoAssociareConto.IdContoCorrente = resAggiungiConto.Result;\r\n postAssociaContoCorrente(oggettoAssociareConto)\r\n .then((res) => {\r\n if (res.Success) {\r\n if (sceltaModalitaPresentazioneRadio === MODALITA_PRESENTAZIONE2.FILE_TELEMATICO_INTERMEDIARIO) {\r\n fileTelematicoIntermediario(idDelega, dataVersamento);\r\n } else if (sceltaModalitaPresentazioneRadio === MODALITA_PRESENTAZIONE2.INVIO_TELEMATICO) {\r\n inviaFileTelematicoIntermediarioConAdele(idDelega, dataVersamento);\r\n }\r\n setLoading(false);\r\n } else {\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n setCurrent('scelta-presentazione');\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n setCurrent('scelta-presentazione');\r\n });\r\n } else {\r\n setCurrent('scelta-presentazione');\r\n setSegnalazioni(resAggiungiConto.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n setCurrent('scelta-presentazione');\r\n });\r\n }\r\n } else {\r\n setSegnalazioni(resInt.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n setCurrent('scelta-presentazione');\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n setCurrent('scelta-presentazione');\r\n });\r\n } else {\r\n postAssociaIntermediario(oggettoAssociareIntermediario)\r\n .then((resInt) => {\r\n if (resInt.Success) {\r\n if (usaContoIntermediario) {\r\n oggettoCreazione.IdAnagrafica = idIntermediario.idAnagrafica;\r\n }\r\n postAssociaContoCorrente(oggettoAssociareConto)\r\n .then((res) => {\r\n if (res.Success) {\r\n if (sceltaModalitaPresentazioneRadio === MODALITA_PRESENTAZIONE2.FILE_TELEMATICO_INTERMEDIARIO) {\r\n fileTelematicoIntermediario(idDelega, dataVersamento);\r\n } else if (sceltaModalitaPresentazioneRadio === MODALITA_PRESENTAZIONE2.INVIO_TELEMATICO) {\r\n inviaFileTelematicoIntermediarioConAdele(idDelega, dataVersamento);\r\n }\r\n setLoading(false);\r\n } else {\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n setCurrent('scelta-presentazione');\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n setCurrent('scelta-presentazione');\r\n });\r\n } else {\r\n setSegnalazioni(resInt.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n setCurrent('scelta-presentazione');\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n setCurrent('scelta-presentazione');\r\n });\r\n }\r\n }, [dataVersamento,\r\n datiDelega,\r\n fileTelematicoIntermediario,\r\n fileTelematicoOrdinario,\r\n idContoSelezionato,\r\n idDelega,\r\n idIntermediario,\r\n inviaFileTelematicoIntermediarioConAdele,\r\n sceltaModalitaPresentazioneRadio,\r\n setCurrent,\r\n studioSelezionato,\r\n usaContoIntermediario]);\r\n\r\n const associaContoConPresentazioneFileTelematico = useCallback((\r\n abiBanca = null,\r\n cabBanca = null,\r\n numeroConto = null,\r\n isIbanManuale = false,\r\n iban = null,\r\n predefinito = false,\r\n contoPredefinitoPrecedente = null,\r\n ) => {\r\n if (sceltaModalitaPresentazioneRadio === MODALITA_PRESENTAZIONE2.FILE_TELEMATICO_CONTRIBUENTE) {\r\n associaContoConPresentazioneFileTelematicoContribuente(\r\n abiBanca,\r\n cabBanca,\r\n numeroConto,\r\n isIbanManuale,\r\n iban,\r\n predefinito,\r\n contoPredefinitoPrecedente,\r\n );\r\n } else if (sceltaModalitaPresentazioneRadio === MODALITA_PRESENTAZIONE2.FILE_TELEMATICO_INTERMEDIARIO\r\n || sceltaModalitaPresentazioneRadio === MODALITA_PRESENTAZIONE2.INVIO_TELEMATICO) {\r\n associaContoConPresentazioneFileTelematicoIntermediario(\r\n abiBanca,\r\n cabBanca,\r\n numeroConto,\r\n isIbanManuale,\r\n iban,\r\n predefinito,\r\n contoPredefinitoPrecedente,\r\n );\r\n }\r\n }, [associaContoConPresentazioneFileTelematicoContribuente, associaContoConPresentazioneFileTelematicoIntermediario, sceltaModalitaPresentazioneRadio]);\r\n\r\n useEffect(() => {\r\n if (sceltaModalitaPresentazioneRadio === MODALITA_PRESENTAZIONE2.FILE_TELEMATICO_CONTRIBUENTE\r\n && dataVersamento\r\n && !specificaConto) {\r\n setIsFormValid(true);\r\n }\r\n }, [dataVersamento, sceltaModalitaPresentazioneRadio, specificaConto]);\r\n\r\n useEffect(() => {\r\n if (sceltaModalitaPresentazioneRadio === MODALITA_PRESENTAZIONE2.INVIO_CBI\r\n && formData\r\n && formData.IdContoSelezionato > 0\r\n && !aggiuntaNuovoContoCorrente) {\r\n setIsFormValid(true);\r\n }\r\n }, [aggiuntaNuovoContoCorrente, formData, sceltaModalitaPresentazioneRadio]);\r\n\r\n useEffect(() => {\r\n if (sceltaModalitaPresentazioneRadio === MODALITA_PRESENTAZIONE2.FILE_TELEMATICO_INTERMEDIARIO) {\r\n if (formData\r\n && formData.IdContoSelezionato > 0\r\n && !aggiuntaNuovoContoCorrente) {\r\n setIsFormValid(true);\r\n } else if (formData\r\n && !formData.IdContoSelezionato\r\n && !aggiuntaNuovoContoCorrente\r\n ) {\r\n setIsFormValid(false);\r\n }\r\n }\r\n }, [aggiuntaNuovoContoCorrente, formData, listaContiCorrente, sceltaModalitaPresentazioneRadio, specificaConto]);\r\n\r\n useEffect(() => {\r\n if (sceltaModalitaPresentazioneRadio === MODALITA_PRESENTAZIONE2.INVIO_TELEMATICO) {\r\n if (formData\r\n && formData.IdContoSelezionato > 0\r\n && !aggiuntaNuovoContoCorrente) {\r\n setIsFormValid(true);\r\n } else if (formData\r\n && !formData.IdContoSelezionato\r\n && !aggiuntaNuovoContoCorrente\r\n ) {\r\n setIsFormValid(false);\r\n }\r\n }\r\n }, [aggiuntaNuovoContoCorrente, formData, listaContiCorrente, sceltaModalitaPresentazioneRadio, specificaConto]);\r\n\r\n useEffect(() => {\r\n if (idSoggettoVersante && !listaContiCorrente) {\r\n setLoading(true);\r\n getOttieniContiCorrenti(idSoggettoVersante)\r\n .then((res) => {\r\n if (res.Success && res.Result) {\r\n setListaContiCorrente(res.Result);\r\n const idContoPredefinito = res.Result.find((conto) => conto.Predefinito)?.Id;\r\n setFormData({\r\n ...formData,\r\n IdContoSelezionato: idContoPredefinito || (res.Result.length === 1 ? res.Result[0].Id : null),\r\n });\r\n setIdContoSelezionato(idContoPredefinito || (res.Result.length === 1 ? res.Result[0].Id : null));\r\n } else {\r\n setListaContiCorrente([]);\r\n }\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n }\r\n }, [formData, idSoggettoVersante, listaContiCorrente]);\r\n\r\n useEffect(() => {\r\n if (show && stepModalitaPresentazione === MODALITA_PRESENTAZIONE2.STAMPA) {\r\n stampaCartacea();\r\n }\r\n }, [show, stampaCartacea, stepModalitaPresentazione]);\r\n\r\n // Fix evenienza non ci sia il soggetto per completamento anagrafica (fintech/cbi) in modale da pagina tutte le deleghe\r\n useEffect(() => {\r\n if (datiDelega && datiDelega.IdAnagraficaContribuente !== soggetto.idAnagrafica) {\r\n getOttieniContribuente(\r\n studioSelezionato,\r\n datiDelega.CodiceFiscale,\r\n )\r\n .then((res) => {\r\n if (res.Success) {\r\n dispatch(setSoggettoAction({\r\n idAnagrafica: res.Result.IdAnagrafica,\r\n idContribuente: res.Result.IdContribuente,\r\n codiceFiscale: res.Result.CodiceFiscale,\r\n nominativo: res.Result.Denominazione,\r\n tipoPersona: res.Result.TipoPersona,\r\n haPartitaIva: !!res.Result.PartitaIva,\r\n partitaIva: res.Result.PartitaIva,\r\n }));\r\n }\r\n })\r\n .catch((e) => {\r\n });\r\n }\r\n }, [datiDelega, dispatch, soggetto, studioSelezionato]);\r\n\r\n return (\r\n \r\n onClose(esito)}\r\n >\r\n \r\n Presenta la delega\r\n \r\n \r\n {loading\r\n ? (\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n )\r\n : (\r\n
    \r\n {segnalazioni.length > 0\r\n ? (\r\n \r\n
      \r\n {segnalazioni.map((segnalazione, idx) => (\r\n {segnalazione.msg}\r\n \r\n ))}\r\n
    \r\n
    \r\n )}\r\n type=\"alarm\"\r\n />\r\n )\r\n : (\r\n \r\n )}\r\n
    \r\n )}\r\n \r\n \r\n {segnalazioni.length === 0 ? (\r\n avantiFasePresentazione()}\r\n emphasis={Button.Emphasis.HIGH}\r\n disabled={!sceltaModalitaPresentazioneRadio || loading}\r\n primary\r\n >\r\n AVANTI\r\n \r\n ) : (\r\n { setSegnalazioni([]); setLoading(false); }}\r\n emphasis={Button.Emphasis.HIGH}\r\n primary\r\n running={loading}\r\n >\r\n RIPROVA\r\n \r\n )}\r\n \r\n \r\n onClose(esito)}\r\n >\r\n \r\n Presenta la delega\r\n \r\n \r\n {loading\r\n ? (\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n ) : (\r\n
    \r\n {segnalazioni.length > 0\r\n ? (\r\n \r\n
      \r\n {segnalazioni.map((segnalazione, idx) => (\r\n {segnalazione.msg}\r\n \r\n ))}\r\n
    \r\n
    \r\n )}\r\n type=\"alarm\"\r\n />\r\n )\r\n : (\r\n \r\n )}\r\n
    \r\n )}\r\n \r\n \r\n {segnalazioni.length === 0 ? (\r\n \r\n indietroFasePresentazione()}\r\n emphasis={Button.Emphasis.HIGH}\r\n >\r\n INDIETRO\r\n \r\n avantiFasePresentazione()}\r\n emphasis={Button.Emphasis.HIGH}\r\n disabled={!sceltaModalitaPresentazioneRadio || loading}\r\n primary\r\n >\r\n AVANTI\r\n \r\n \r\n ) : (\r\n { setSegnalazioni([]); setLoading(false); }}\r\n emphasis={Button.Emphasis.HIGH}\r\n primary\r\n running={loading}\r\n >\r\n RIPROVA\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n
    \r\n Presenta la delega\r\n
    \r\n
    \r\n \r\n {current === 'form-cbi' && (\r\n \r\n )}\r\n \r\n \r\n \r\n onClose(false)}\r\n emphasis={Button.Emphasis.HIGH}\r\n >\r\n ANNULLA\r\n \r\n {\r\n associaContoConPresentazioneFileTelematicoCbi(\r\n ibanManuale ? null : formData.AbiBanca,\r\n ibanManuale ? null : formData.CabBanca,\r\n ibanManuale ? null : formData.NumeroConto,\r\n ibanManuale,\r\n ibanManuale ? formData.IbanManuale : null,\r\n formData.Predefinito,\r\n listaContiCorrente && listaContiCorrente.find((conto) => conto.Predefinito),\r\n );\r\n }}\r\n emphasis={Button.Emphasis.HIGH}\r\n disabled={!isFormValid || loading || !dataVersamento}\r\n primary\r\n >\r\n INVIA\r\n \r\n \r\n \r\n \r\n onClose(esito)}\r\n >\r\n \r\n Presenta la delega\r\n \r\n \r\n {loading\r\n ? (\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n )\r\n : (\r\n
    \r\n {segnalazioni.length > 0\r\n ? (\r\n \r\n
      \r\n {segnalazioni.map((segnalazione, idx) => (\r\n {segnalazione.msg}\r\n \r\n ))}\r\n
    \r\n
    \r\n )}\r\n type=\"alarm\"\r\n />\r\n )\r\n : (\r\n \r\n )}\r\n
    \r\n )}\r\n \r\n \r\n {segnalazioni.length === 0 ? (\r\n \r\n indietroFasePresentazione()}\r\n emphasis={Button.Emphasis.HIGH}\r\n >\r\n INDIETRO\r\n \r\n avantiFasePresentazione()}\r\n emphasis={Button.Emphasis.HIGH}\r\n disabled={!sceltaModalitaPresentazioneRadio || loading}\r\n primary\r\n >\r\n AVANTI\r\n \r\n \r\n ) : (\r\n { setSegnalazioni([]); setLoading(false); }}\r\n emphasis={Button.Emphasis.HIGH}\r\n primary\r\n running={loading}\r\n >\r\n RIPROVA\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n
    \r\n Presenta la delega\r\n
    \r\n
    \r\n \r\n {current === 'form-file-telematico-contribuente' && (\r\n \r\n ) }\r\n \r\n \r\n \r\n onClose(false)}\r\n emphasis={Button.Emphasis.HIGH}\r\n >\r\n ANNULLA\r\n \r\n {\r\n JSON.parse(window.localStorage.getItem('file-telematico-ordinario-non-visualizza-piu')) === 'messageRead'\r\n ? associaContoConPresentazioneFileTelematico(\r\n ibanManuale ? null : formData.AbiBanca,\r\n ibanManuale ? null : formData.CabBanca,\r\n ibanManuale ? null : formData.NumeroConto,\r\n ibanManuale,\r\n ibanManuale ? formData.IbanManuale : null,\r\n formData.Predefinito,\r\n listaContiCorrente && listaContiCorrente.find((conto) => conto.Predefinito),\r\n ) : setCurrent('confirm-file-telematico');\r\n }}\r\n emphasis={Button.Emphasis.HIGH}\r\n disabled={!isFormValid || loading || !dataVersamento}\r\n primary\r\n >\r\n SCARICA\r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n Presenta la delega\r\n
    \r\n
    \r\n \r\n {current === 'form-file-telematico-intermediario' && (\r\n \r\n )}\r\n \r\n \r\n \r\n onClose(false)}\r\n emphasis={Button.Emphasis.HIGH}\r\n >\r\n ANNULLA\r\n \r\n {\r\n JSON.parse(window.localStorage.getItem('file-telematico-ordinario-non-visualizza-piu')) === 'messageRead'\r\n ? associaContoConPresentazioneFileTelematico(\r\n ibanManuale ? null : formData.AbiBanca,\r\n ibanManuale ? null : formData.CabBanca,\r\n ibanManuale ? null : formData.NumeroConto,\r\n ibanManuale,\r\n ibanManuale ? formData.IbanManuale : null,\r\n formData.Predefinito,\r\n listaContiCorrente && listaContiCorrente.find((conto) => conto.Predefinito),\r\n ) : setCurrent('confirm-file-telematico');\r\n }}\r\n emphasis={Button.Emphasis.HIGH}\r\n disabled={!isFormValid || loading || !dataVersamento}\r\n primary\r\n >\r\n SCARICA\r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n Presenta la delega\r\n
    \r\n
    \r\n \r\n {current === 'form-invio-telematico' && (\r\n \r\n )}\r\n \r\n \r\n \r\n onClose(false)}\r\n emphasis={Button.Emphasis.HIGH}\r\n >\r\n ANNULLA\r\n \r\n {\r\n JSON.parse(window.localStorage.getItem('file-telematico-ordinario-non-visualizza-piu')) === 'messageRead'\r\n ? associaContoConPresentazioneFileTelematico(\r\n ibanManuale ? null : formData.AbiBanca,\r\n ibanManuale ? null : formData.CabBanca,\r\n ibanManuale ? null : formData.NumeroConto,\r\n ibanManuale,\r\n ibanManuale ? formData.IbanManuale : null,\r\n formData.Predefinito,\r\n listaContiCorrente && listaContiCorrente.find((conto) => conto.Predefinito),\r\n ) : setCurrent('confirm-file-telematico');\r\n }}\r\n emphasis={Button.Emphasis.HIGH}\r\n disabled={!isFormValid || loading || !dataVersamento}\r\n primary\r\n >\r\n INVIA\r\n \r\n \r\n \r\n \r\n }\r\n onClose={() => { onClose(false); setLoading(false); }}\r\n primaryLabel=\"Non Presentare\"\r\n onPrimaryClick={() => { setCurrent('scelta-presentazione'); onClose(false); setLoading(false); }}\r\n secondaryLabel=\"Presenta in forma cartacea\"\r\n onSecondaryClick={() => stampaCartacea()}\r\n title={'La delega assumerà lo stato \"In presentazione\"'}\r\n message={(\r\n
    \r\n Verrà scaricato il modello definitivo (in triplice copia) e, successivamente,\r\n
    \r\n troverai la delega all' interno del tab "Presentate".\r\n
    \r\n )}\r\n dontShowAgainMessage=\"Non mostrare più questo messaggio\"\r\n dontShowAgainId=\"stampa-cartacea-non-visualizza-piu\"\r\n />\r\n }\r\n onClose={() => { setCurrent('scelta-presentazione'); setLoading(false); }}\r\n primaryLabel=\"Non Presentare\"\r\n onPrimaryClick={() => { setCurrent('scelta-presentazione'); setLoading(false); }}\r\n secondaryLabel={sceltaModalitaPresentazioneRadio === MODALITA_PRESENTAZIONE2.INVIO_TELEMATICO\r\n ? 'PRESENTA CON INVIO TELEMATICO CGN' : 'Presenta per via telematica'}\r\n onSecondaryClick={() => {\r\n setCurrent('loading-presentazione');\r\n associaContoConPresentazioneFileTelematico(\r\n ibanManuale ? null : formData.AbiBanca,\r\n ibanManuale ? null : formData.CabBanca,\r\n ibanManuale ? null : formData.NumeroConto,\r\n ibanManuale,\r\n ibanManuale ? formData.IbanManuale : null,\r\n formData.Predefinito,\r\n listaContiCorrente && listaContiCorrente.find((conto) => conto.Predefinito),\r\n );\r\n }}\r\n title={'La delega assumerà lo stato \"In presentazione\"'}\r\n message={sceltaModalitaPresentazioneRadio === MODALITA_PRESENTAZIONE2.INVIO_TELEMATICO ? (\r\n
    \r\n La delega verrà trasmessa tramite Invio Telematico CGN e, successivamente, la
    \r\n troverai all'interno del tab "Presentate".\r\n
    \r\n ) : (\r\n
    \r\n Verrà scaricato il file telematico e, successivamente, troverai la delega\r\n
    \r\n all'interno del tab "Presentate".\r\n
    \r\n )}\r\n dontShowAgainMessage=\"Non mostrare più questo messaggio\"\r\n dontShowAgainId=\"file-telematico-ordinario-non-visualizza-piu\"\r\n />\r\n \r\n \r\n
    \r\n Presenta la delega\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n onClose(false)}\r\n emphasis={Button.Emphasis.HIGH}\r\n >\r\n ANNULLA\r\n \r\n {}}\r\n emphasis={Button.Emphasis.HIGH}\r\n primary\r\n disabled\r\n >\r\n {sceltaModalitaPresentazioneRadio === MODALITA_PRESENTAZIONE2.INVIO_TELEMATICO\r\n || sceltaModalitaPresentazioneRadio === MODALITA_PRESENTAZIONE2.INVIO_CBI ? 'INVIA' : 'SCARICA'}\r\n \r\n \r\n \r\n onClose(esito)}\r\n className=\"modalePluginF24--feedbackGrande\"\r\n >\r\n \r\n CGN POS\r\n \r\n \r\n {linkPagoF24Carta ? (\r\n \r\n ) : ()}\r\n \r\n \r\n onClose(esito)}\r\n >\r\n \r\n Fai pagare le deleghe F24 ai tuoi clienti con un link\r\n \r\n \r\n {current === 'pagoF24-Accettazione' && (\r\n proseguiAccettazionePagoF24()}\r\n servizioAccettato={servizioAccettato}\r\n setServizioAccettato={setServizioAccettato}\r\n />\r\n )}\r\n \r\n \r\n onClose(esito)}\r\n className=\"modalePresentaF24--sameSize\"\r\n >\r\n \r\n Invia con pagoF24\r\n \r\n \r\n proseguiAnagraficaPagoF24()} />\r\n \r\n \r\n onClose(esito)}\r\n className=\"modalePresentaF24--sameSize\"\r\n >\r\n \r\n
    \r\n Invia con pagoF24\r\n
    \r\n
    \r\n \r\n {current === 'pagoF24-DatiUfficio' && (\r\n proseguiDatiUfficioPagoF24()} />\r\n )}\r\n \r\n \r\n onClose(esito)}\r\n className=\"modalePresentaF24--sameSize\"\r\n >\r\n \r\n Invia con pagoF24\r\n \r\n \r\n {current === 'pagoF24-Email' && (\r\n proseguiEmailPagoF24()} />\r\n )}\r\n \r\n \r\n onClose(esito)}\r\n className=\"modalePresentaF24--sameSize\"\r\n >\r\n \r\n CGN POS\r\n \r\n \r\n proseguiAnagraficaPagoF24Pos()} />\r\n \r\n \r\n onClose(esito)}\r\n className=\"modalePresentaF24--sameSize\"\r\n >\r\n \r\n
    \r\n CGN POS\r\n
    \r\n
    \r\n \r\n {current === 'pagoF24-Pos-DatiUfficio' && (\r\n avviaPagoF24Carta()} />\r\n )}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nModalePresentaDelega.defaultProps = {\r\n tipoModelloDichiarativoProp: null,\r\n infoModalitaPresentazioneProp: null,\r\n};\r\n\r\nModalePresentaDelega.propTypes = {\r\n onClose: PropTypes.func.isRequired,\r\n show: PropTypes.bool.isRequired,\r\n datiDelega: PropTypes.shape({\r\n IdDelega: PropTypes.number,\r\n Iban: PropTypes.string,\r\n ScadenzaVersamento: PropTypes.string,\r\n }).isRequired,\r\n infoModalitaPresentazione: PropTypes.shape({\r\n IsCreaFileTelematicoContribuenteAttivo: PropTypes.bool,\r\n IsCreaFileTelematicoIntermediarioAttivo: PropTypes.bool,\r\n IsCreaStampaDaConsegnareAttivo: PropTypes.bool,\r\n IsInviaFileTelematicoContribuenteConCbiAttivo: PropTypes.bool,\r\n IsInviaFileTelematicoIntermediarioConAdeleAttivo: PropTypes.bool,\r\n MotivoCreaFileTelematicoContribuenteNonAttivo: PropTypes.string,\r\n MotivoCreaFileTelematicoIntermediarioNonAttivo: PropTypes.string,\r\n MotivoCreaStampaDaConsegnareNonAttivo: PropTypes.string,\r\n MotivoInviaFileTelematicoContribuenteConCbiNonAttivo: PropTypes.string,\r\n MotivoInviaFileTelematicoIntermediarioConAdeleNonAttivo: PropTypes.string,\r\n }).isRequired,\r\n idDelega: PropTypes.func.isRequired,\r\n datiDelegaDettaglio: PropTypes.shape({ Iban: PropTypes.string }).isRequired,\r\n dataScadenzaVersamento: PropTypes.func.isRequired,\r\n modalitaPresentazione: PropTypes.func.isRequired,\r\n infoModalitaPresentazioneProp: PropTypes.shape({}),\r\n current: PropTypes.string.isRequired,\r\n setCurrent: PropTypes.func.isRequired,\r\n windowHeight: PropTypes.number.isRequired,\r\n tipoModelloDichiarativoProp: PropTypes.string,\r\n};\r\n\r\nexport default ModalePresentaDelega;\r\n","import React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\n\r\n// Non trasformare in pure function\r\n/* eslint-disable react/prefer-stateless-function */\r\nclass Option extends Component {\r\n render() {\r\n const {\r\n children,\r\n additionalData,\r\n className,\r\n notifica,\r\n isSelected,\r\n value,\r\n ...others\r\n } = this.props;\r\n const classes = cns(\r\n 'select__option',\r\n {\r\n 'select__option--selected': isSelected === true,\r\n },\r\n className,\r\n );\r\n return (\r\n notifica(evt, value, additionalData, true)}\r\n value={value}\r\n {...others}\r\n >\r\n {children}\r\n \r\n );\r\n }\r\n}\r\n\r\nOption.defaultProps = {\r\n additionalData: null,\r\n className: '',\r\n children: null,\r\n isSelected: false,\r\n notifica: null,\r\n value: null,\r\n};\r\n\r\nOption.propTypes = {\r\n /** Dati aggiuntivi */\r\n additionalData: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\r\n /** Contenuto da renderizzare all'interno del componente */\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node,\r\n ]),\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n /** @ignore Indica se l'opzione è selezionata: prop inviata dal Select in base\r\n * al suo value */\r\n isSelected: PropTypes.bool,\r\n /**\r\n * Funzione di callback dell'onClick dell'option:\r\n * ```\r\n * notifica(event, value, additionalData)\r\n * ```\r\n * dove:\r\n * * *event*: evento click\r\n * * *value*: valore associato all'option\r\n * * *additionalData*: eventuali dati aggiuntivi associati all'option\r\n */\r\n notifica: PropTypes.func,\r\n /** Valore bindato all'opzione */\r\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.bool]),\r\n};\r\n\r\nexport default Option;\r\n","import React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\n// Non trasformare in pure function\r\n/* eslint-disable react/prefer-stateless-function */\r\nclass Divider extends Component {\r\n render() {\r\n const {\r\n children,\r\n notifica,\r\n additionalData,\r\n isSelected,\r\n ...others\r\n } = this.props;\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n }\r\n}\r\n\r\nDivider.defaultProps = {\r\n additionalData: null,\r\n children: null,\r\n isSelected: false,\r\n notifica: null,\r\n};\r\n\r\nDivider.propTypes = {\r\n /**\r\n * @ignore\r\n */\r\n additionalData: PropTypes.object, // eslint-disable-line react/forbid-prop-types\r\n /** Contenuto da renderizzare all'interno del componente */\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node,\r\n ]),\r\n /**\r\n * @ignore\r\n */\r\n isSelected: PropTypes.bool,\r\n /**\r\n * @ignore\r\n */\r\n notifica: PropTypes.any, // eslint-disable-line react/forbid-prop-types\r\n};\r\n\r\nexport default Divider;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport { findDOMNode } from 'react-dom';\r\nimport cns from 'classnames';\r\nimport { getProp, setProp } from '../Utils/formHelpers';\r\nimport Validation from '../Validation';\r\nimport Helpers from '../Utils/nodeHelpers';\r\nimport Option from './Option';\r\nimport Divider from './Divider';\r\nimport doesNodeContainClick from '../Utils/doesNodeContainClick';\r\nimport { getTitle, getRandomId, Presentation } from '../Utils/baseComponentHelper';\r\nimport { FormWrapperPropTypes } from '../Form/withForm';\r\nimport EllipsisText from '../EllipsisText';\r\nimport useValidations from '../Hooks/useValidations';\r\nimport ValidationViewer from '../Validation/ValidationViewer';\r\nimport useActivation from '../Hooks/useActivation';\r\n\r\nOption.displayName = 'Select.Option';\r\n\r\n/**\r\nLe select vengono utilizzate quando si ha la necessità di mostrare una serie di contenuti e\r\npermettere all’utente di fare una scelta fra questi.\r\nLe voci del menu possono essere disabilitate se non applicabili ad un certo contesto.\r\n */\r\nclass Select extends React.Component {\r\n static Option = Option;\r\n\r\n static Divider = Divider;\r\n\r\n constructor(props) {\r\n super(props);\r\n this.uniqueid = getRandomId();\r\n }\r\n\r\n state = {\r\n dirty: false,\r\n visible: false,\r\n selected: null,\r\n };\r\n\r\n componentDidMount() {\r\n const { name, addToForm } = this.props;\r\n\r\n document.addEventListener('click', this.closeIfClickOutside);\r\n\r\n if (addToForm && name) {\r\n addToForm(name, this.valida(), this.reset);\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n const { name, removeFromForm } = this.props;\r\n\r\n document.removeEventListener('click', this.closeIfClickOutside);\r\n\r\n if (removeFromForm && name) {\r\n removeFromForm(name);\r\n }\r\n }\r\n\r\n getTitle = () => {\r\n const { title, validations } = this.props;\r\n return getTitle(title, validations);\r\n };\r\n\r\n isValid = () => this.valida().valid;\r\n\r\n reset = () => {\r\n this.setState({\r\n dirty: false,\r\n });\r\n };\r\n\r\n clear = () => {\r\n this.setState({\r\n selected: null,\r\n });\r\n };\r\n\r\n close = (e) => {\r\n if (e.relatedTarget !== e.target && e.relatedTarget != null) {\r\n setTimeout(() => { this.setState({ visible: false }); }, 100);\r\n }\r\n };\r\n\r\n closeIfClickOutside = (e) => {\r\n const { visible } = this.state;\r\n if (!doesNodeContainClick(this.refNode, e) && visible) {\r\n this.setState({ visible: false });\r\n }\r\n };\r\n\r\n valida = () => {\r\n const {\r\n name, value, validations, stato,\r\n } = this.props;\r\n if (!validations) return { valid: true };\r\n let contesto;\r\n if (stato && name) {\r\n contesto = stato && name && getProp(name, stato);\r\n } else {\r\n const { selected } = this.state;\r\n contesto = value || selected;\r\n }\r\n return Validation.validateAll(validations, contesto);\r\n };\r\n\r\n notifica = (evt, value, additionalData, closeSelect) => {\r\n const {\r\n name, onChange, onFormChange, stato, value: valueProp,\r\n } = this.props;\r\n this.setState({\r\n selected: !name && !valueProp ? value : null,\r\n visible: !closeSelect,\r\n dirty: true,\r\n });\r\n if (onFormChange && name) {\r\n const obj = {};\r\n setProp(name, value, obj, stato);\r\n onFormChange(obj, name, value);\r\n }\r\n onChange && onChange(evt, value, additionalData);\r\n };\r\n\r\n changeVisibility = () => {\r\n const { visible } = this.state;\r\n if (this.isActive()) {\r\n if (!visible) {\r\n this.lastFocus = true;\r\n }\r\n this.setState({ visible: true });\r\n }\r\n };\r\n\r\n closeIfOpen = () => {\r\n if (!this.isActive()) return;\r\n setTimeout(() => {\r\n if (this.lastFocus) {\r\n this.lastFocus = false;\r\n } else {\r\n const { visible } = this.state;\r\n if (!visible) {\r\n this.setState({ visible: true });\r\n return;\r\n }\r\n this.setState({ visible: false });\r\n }\r\n }, 0);\r\n };\r\n\r\n getValue = () => {\r\n const { name, value, stato } = this.props;\r\n let contesto;\r\n if (name) {\r\n contesto = stato && name && getProp(name, stato);\r\n if (Array.isArray(contesto)) {\r\n contesto = contesto[0]; // eslint-disable-line prefer-destructuring\r\n }\r\n if (contesto === '') {\r\n contesto = null;\r\n }\r\n } else {\r\n const { selected } = this.state;\r\n contesto = value || selected;\r\n }\r\n return contesto;\r\n };\r\n\r\n chiudiTab = (evt) => {\r\n if (!this.isActive()) return;\r\n switch (evt.keyCode) {\r\n case 9:\r\n this.setState({ visible: false });\r\n break;\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n seleziona = (evt) => {\r\n const { children } = this.props;\r\n if (!this.isActive()) return;\r\n const contestoTxt = `${this.getValue()}`;\r\n let index = -1;\r\n React.Children.map(children, (x, i) => {\r\n if (`${x.props.value}` === contestoTxt || contestoTxt === '') {\r\n index = i;\r\n }\r\n });\r\n if (index === -1) return;\r\n switch (evt.keyCode) {\r\n // Tab\r\n case 9:\r\n if (evt.target !== evt.relatedTarget && evt.relatedTarget != null) {\r\n this.setState({ visible: false });\r\n }\r\n return;\r\n // Enter\r\n case 13:\r\n this.setState({ visible: false });\r\n Helpers.focusNextElement(evt.target);\r\n return;\r\n // Arrow up\r\n case 38:\r\n evt.preventDefault();\r\n index -= 1;\r\n while (index > -1 && index < React.Children.toArray(children).length\r\n && React.Children.toArray(children)[index].props.value == null) {\r\n index -= 1;\r\n }\r\n break;\r\n // Arrow down\r\n case 40:\r\n evt.preventDefault();\r\n index += 1;\r\n while (index > -1 && index < React.Children.toArray(children).length\r\n && React.Children.toArray(children)[index].props.value == null) {\r\n index += 1;\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n if (index > -1 && index < React.Children.toArray(children).length) {\r\n const el = React.Children.toArray(children)[index];\r\n this.notifica(evt, el.props.value, el.props.additionalData, false);\r\n }\r\n };\r\n\r\n scrollOptionIntoView = () => {\r\n if (this.refSelected == null || this.refList == null) return;\r\n const menuDOM = this.refList;\r\n const menuRect = menuDOM.getBoundingClientRect();\r\n setTimeout(() => {\r\n const n = findDOMNode(this.refSelected); // eslint-disable-line react/no-find-dom-node\r\n if (n) {\r\n const selectedRect = n.getBoundingClientRect();\r\n if (selectedRect.bottom > (menuRect.bottom - 5) || selectedRect.top < menuRect.top) {\r\n menuDOM.scrollTop = (n.offsetTop + n.clientHeight - menuDOM.offsetHeight);\r\n }\r\n }\r\n });\r\n };\r\n\r\n renderMenu = (children) => {\r\n const { customList } = this.props;\r\n if (customList) {\r\n return customList(children);\r\n }\r\n return (\r\n { this.refList = r; }}\r\n >\r\n {children}\r\n \r\n );\r\n };\r\n\r\n isActive = () => {\r\n const { disabled, readOnly } = this.props;\r\n return !disabled && !readOnly;\r\n };\r\n\r\n render() {\r\n const {\r\n actions,\r\n children,\r\n className,\r\n isValid,\r\n name,\r\n right,\r\n title,\r\n validare,\r\n readOnly: readOnlyProp,\r\n disabled: disabledProp,\r\n ellipsis,\r\n placeholder,\r\n } = this.props;\r\n const { dirty, visible } = this.state;\r\n\r\n const { disabled, readOnly } = useActivation(disabledProp, readOnlyProp);\r\n\r\n const contesto = this.getValue();\r\n const contestoTxt = `${contesto}`;\r\n const validazione = this.valida();\r\n if (isValid != null && name) {\r\n isValid(name, validazione.valid, validazione.messages || []);\r\n }\r\n\r\n const { hasError, hasWarning } = useValidations(validare, dirty, validazione);\r\n\r\n const classes = cns(\r\n 'select input',\r\n hasError ? 'select--invalid' : 'select--valid',\r\n {\r\n 'select--right': right,\r\n 'select--disabled': !this.isActive(),\r\n },\r\n className,\r\n );\r\n const listTitleClasses = cns(\r\n 'select__listTitle',\r\n {\r\n 'select__listTitle--disabled': disabled,\r\n 'select__listTitle--default': false,\r\n 'select__listTitle--readOnly': readOnly,\r\n },\r\n );\r\n const inputTitleClass = cns('select__title', { 'select__title--readOnly': readOnly });\r\n const childrenWithProps = React.Children.map(\r\n children,\r\n (child) => React.cloneElement(child, {\r\n notifica: this.notifica,\r\n ref: (`${child.props.value}` === contestoTxt || contestoTxt === '') ? (r) => { this.refSelected = r; } : () => { },\r\n value: child.props.value,\r\n isSelected: `${child.props.value}` === contestoTxt || contestoTxt === '',\r\n }),\r\n ) || [];\r\n const value = childrenWithProps.find((x) => `${x.props.value}` === contestoTxt || contestoTxt === '')\r\n ? childrenWithProps.find((x) => `${x.props.value}` === contestoTxt || contestoTxt === '').props.children\r\n : contesto || '';\r\n const tabIndex = {};\r\n if (disabled) {\r\n tabIndex.tabIndex = -1;\r\n }\r\n if (visible && childrenWithProps.length > 0 && this.refSelected) {\r\n this.scrollOptionIntoView();\r\n }\r\n const label = name || title;\r\n return (\r\n
    { this.refNode = r; }}>\r\n
    \r\n
    \r\n {readOnly\r\n ? (\r\n \r\n \r\n {new Presentation({ readOnly }).format(value)}\r\n \r\n \r\n ) : (\r\n \r\n )}\r\n {label && }\r\n {title && {this.getTitle()}}\r\n {!readOnly && }\r\n \r\n {visible && this.renderMenu(childrenWithProps)}\r\n
    \r\n \r\n
    \r\n {!readOnly && actions &&
    {actions}
    }\r\n
    \r\n );\r\n }\r\n}\r\n\r\nSelect.defaultProps = {\r\n className: null,\r\n name: null,\r\n onChange: null,\r\n title: null,\r\n validations: null,\r\n value: null,\r\n disabled: false,\r\n readOnly: false,\r\n ellipsis: {\r\n left: false,\r\n top: true,\r\n disabled: false,\r\n },\r\n placeholder: undefined,\r\n};\r\n\r\nSelect.propTypes = {\r\n ...FormWrapperPropTypes,\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n /** Nome del campo da bindare se il componente è contenuto all'interno di un componente Form */\r\n name: PropTypes.string,\r\n /**\r\n * Funzione invocata alla selezione di un elemento della Select:\r\n * ```\r\n * onChange(event, value, additionalData)\r\n * ```\r\n * dove:\r\n * * *event*: evento click\r\n * * *value*: valore dell'elemento selezionato\r\n * * *additionalData*: eventuali dati aggiuntivi associati all'option\r\n */\r\n onChange: PropTypes.func,\r\n /** Etichetta da visualizzare nel campo che renderizza il componente */\r\n title: PropTypes.string,\r\n /** Array di validazioni da applicare */\r\n validations: PropTypes.arrayOf(PropTypes.oneOfType(\r\n [\r\n PropTypes.string,\r\n PropTypes.object,\r\n PropTypes.func,\r\n ],\r\n )),\r\n /** Valore attribuito al componente se non gestito in una Form (attraverso il *name*).\r\n * In questa configurazione (senza *name*) per selezionare un determinato *Option* è\r\n * sufficiente popolare questa prop e attribuirle lo stesso valore indicato nella prop\r\n * *value* del child *Option*.\r\n */\r\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.bool]),\r\n /** Presenta il campo in modalità disabilitato */\r\n disabled: PropTypes.bool,\r\n /** Presenta il campo in modalità read only */\r\n readOnly: PropTypes.bool,\r\n /**\r\nProprietà che definisce il comporamento delle ellipsis nel caso di componente in modalità readOnly.\r\nE' possibile definire se presentatorlo top o bottom, left o right oppure se disabilitare la visualizzazione della tooltip.\r\n\r\nVedi componente EllipsisText.\r\n */\r\n ellipsis: PropTypes.shape({\r\n /** mostra la tooltip nella parte alta/bassa */\r\n top: PropTypes.bool,\r\n\r\n /** mostra la tooltip nella parte sinistra/destra */\r\n left: PropTypes.bool,\r\n\r\n /** mostra o nasconde la tooltip */\r\n disabled: PropTypes.bool,\r\n }),\r\n\r\n /** Esempio testuale del dato da inserire nel campo */\r\n placeholder: PropTypes.string,\r\n};\r\n\r\nexport default Select;\r\n","import Select from './Select';\r\nimport withForm from '../Form/withForm';\r\n\r\nconst FormSelect = withForm(Select);\r\n\r\nFormSelect.Option = Select.Option;\r\nFormSelect.Divider = Select.Divider;\r\n\r\nexport default FormSelect;\r\n","/* eslint-disable no-nested-ternary */\r\nimport React, {\r\n useState, useEffect, useCallback, useRef, useMemo,\r\n} from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Autocomplete,\r\n Form, Input, Restriction, Select, Validation,\r\n} from 'framework-ui-components';\r\nimport {\r\n Modal, Button, FeedbackPanel,\r\n} from 'framework-ui-components/Components/V2';\r\nimport { useSelector } from 'react-redux';\r\nimport { logApiError } from 'framework-taskforce/utils/log';\r\nimport { isEmptyObject } from 'framework-taskforce/utils/object';\r\nimport { getSegnalazioneError } from 'framework-taskforce/models/segnalazioni';\r\nimport TemplateGrid from '../../../../../components/TemplateGrid/TemplateGrid';\r\nimport SegnalazioniViewer from '../../../../../components/custom/SegnalazioniViewer';\r\nimport {\r\n postAggiungiIndirizzo,\r\n postModificaIndirizzo,\r\n cercaToponimi,\r\n cercaComuni,\r\n} from '../../../../../apis/anagrafiche';\r\nimport { postAggiornaIndirizzi } from '../../../../../apis/deleghe';\r\nimport { TIPO_INDIRIZZO, TIPO_PERSONA } from '../../../../../models/anagrafica';\r\n\r\nconst ModaleIndirizzo = ({\r\n onClose,\r\n idAnagrafica,\r\n show,\r\n oggettoModifica,\r\n idDelega,\r\n isIndirizzoDaAggiornare,\r\n tipoPersona,\r\n}) => {\r\n const studioSelezionato = useSelector((store) => store.appParams.studioSelezionato);\r\n\r\n const [loading, setLoading] = useState(false);\r\n const [isFormValid, setIsFormValid] = useState(false);\r\n const [esito, setEsito] = useState(null);\r\n const [formData, setFormData] = useState({ });\r\n const [segnalazioni, setSegnalazioni] = useState([]);\r\n\r\n const isModifica = useMemo(\r\n () => (!isEmptyObject(oggettoModifica)),\r\n [oggettoModifica],\r\n );\r\n\r\n const formRef = useRef();\r\n\r\n const presetForm = useCallback(({ FormErrors, ...datoModificato }) => {\r\n if (!formData || isEmptyObject(datoModificato)) return;\r\n const newStato = { ...formData, ...datoModificato };\r\n setFormData(newStato);\r\n }, [formData]);\r\n\r\n const resetDati = useCallback(() => {\r\n setLoading(false);\r\n setIsFormValid(false);\r\n setSegnalazioni([]);\r\n setEsito(null);\r\n setFormData({});\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (show) {\r\n resetDati();\r\n }\r\n }, [resetDati, show]);\r\n\r\n useEffect(() => {\r\n if (show && isModifica && isEmptyObject(formData)) {\r\n presetForm({\r\n TipoIndirizzo: oggettoModifica.TipoIndirizzo,\r\n CodiceComuneDescrizioneComposta: oggettoModifica.Comune,\r\n ComuneCodiceProvincia: oggettoModifica.Provincia,\r\n ToponimoDescrizione: oggettoModifica.Toponimo,\r\n Descrizione: oggettoModifica.Descrizione,\r\n NumeroCivico: oggettoModifica.NumeroCivico,\r\n Cap: oggettoModifica.Cap,\r\n Frazione: oggettoModifica.Frazione,\r\n });\r\n }\r\n });\r\n\r\n useEffect(() => {\r\n if (idDelega !== null && show && !oggettoModifica) {\r\n const tipologiaIndirizzo = tipoPersona\r\n ? tipoPersona === TIPO_PERSONA.PERSONA_GIURIDICA\r\n ? TIPO_INDIRIZZO.SEDE_LEGALE : TIPO_INDIRIZZO.RESIDENZA_FISCALE : null;\r\n\r\n presetForm({\r\n TipoIndirizzo: tipologiaIndirizzo,\r\n });\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [idDelega, oggettoModifica, show, tipoPersona]);\r\n\r\n useEffect(() => {\r\n if (!show) {\r\n // reset data on close\r\n resetDati();\r\n }\r\n }, [resetDati, setFormData, show]);\r\n\r\n const onChangeAutocompletes = (campo, elemento) => {\r\n const autocompleteVals = [];\r\n\r\n if (campo === 'CodiceComune') {\r\n autocompleteVals.IdComune = elemento.Id;\r\n autocompleteVals.CodiceComuneDescrizioneComposta = elemento.DescrizioneComposta;\r\n autocompleteVals.ComuneDescrizione = elemento.Descrizione;\r\n autocompleteVals.ComuneCodiceProvincia = elemento.CodiceProvincia;\r\n autocompleteVals.Cap = elemento.Cap;\r\n }\r\n if (campo === 'Toponimo') {\r\n autocompleteVals.IdToponimo = elemento.Id_Toponimo;\r\n autocompleteVals.ToponimoDescrizione = elemento.Descrizione;\r\n }\r\n\r\n presetForm(autocompleteVals);\r\n };\r\n\r\n const modificaIndirizzo = useCallback(() => {\r\n const newOggettoModifica = {\r\n ...oggettoModifica,\r\n ...formData,\r\n };\r\n newOggettoModifica.IdIndirizzo = newOggettoModifica.Id;\r\n newOggettoModifica.IdTipoIndirizzo = newOggettoModifica.TipoIndirizzo;\r\n\r\n postModificaIndirizzo(newOggettoModifica)\r\n .then((res) => {\r\n if (res.Success) {\r\n if (idDelega) {\r\n postAggiornaIndirizzi({ idDelega })\r\n .then((result) => {\r\n if (result.Success) {\r\n onClose(true);\r\n } else {\r\n setSegnalazioni(result.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n }\r\n onClose(true);\r\n } else {\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n }, [formData, oggettoModifica, onClose, idDelega]);\r\n\r\n const aggiungiIndirizzo = useCallback(() => {\r\n const oggettoCreazione = {\r\n IdStudio: studioSelezionato,\r\n IdAnagrafica: idAnagrafica,\r\n IdTipoIndirizzo: formData.TipoIndirizzo,\r\n IdComune: formData.IdComune,\r\n IdToponimo: formData.IdToponimo,\r\n NumeroCivico: formData.NumeroCivico,\r\n Cap: formData.Cap,\r\n Frazione: formData.Frazione,\r\n Descrizione: formData.Descrizione,\r\n };\r\n\r\n postAggiungiIndirizzo(oggettoCreazione)\r\n .then((res) => {\r\n if (res.Success) {\r\n if (idDelega) {\r\n postAggiornaIndirizzi({ idDelega })\r\n .then((result) => {\r\n if (result.Success) {\r\n onClose(true);\r\n } else {\r\n setSegnalazioni(result.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n }\r\n onClose(true);\r\n } else {\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n }, [formData, idAnagrafica, onClose, studioSelezionato, idDelega]);\r\n\r\n return (\r\n onClose(esito)}\r\n className=\"contribuenti--modale-creazione\"\r\n initialPos={{ x: 'auto', y: window.innerHeight * 0.1 }}\r\n >\r\n \r\n {isIndirizzoDaAggiornare ? 'Aggiorna ' : isModifica ? 'Modifica ' : 'Nuovo '} indirizzo\r\n \r\n \r\n setIsFormValid(validity)}\r\n >\r\n {!loading && segnalazioni.length > 0\r\n ? (\r\n \r\n
      \r\n {segnalazioni.map((segnalazione, idx) => (\r\n {segnalazione.msg}\r\n \r\n ))}\r\n
    \r\n
    \r\n )}\r\n type=\"alarm\"\r\n />\r\n )\r\n : (\r\n \r\n {segnalazioni && segnalazioni.length > 0 && (\r\n \r\n )}\r\n
    \r\n \r\n \r\n Residenza fiscale\r\n Sede legale\r\n Domicilio fiscale\r\n Sede attività\r\n \r\n \r\n \r\n onChangeAutocompletes('CodiceComune', val)}\r\n name=\"CodiceComuneDescrizioneComposta\"\r\n title=\"Comune\"\r\n url={cercaComuni()}\r\n renderProperty=\"DescrizioneComposta\"\r\n validations={[\r\n Validation.DefaultRules.required,\r\n ]}\r\n\r\n />\r\n \r\n \r\n \r\n onChangeAutocompletes('Toponimo', val)}\r\n name=\"ToponimoDescrizione\"\r\n title=\"Toponimo\"\r\n url={cercaToponimi()}\r\n renderProperty=\"Descrizione\"\r\n validations={[\r\n Validation.DefaultRules.required,\r\n ]}\r\n\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n )}\r\n \r\n \r\n \r\n {segnalazioni.length === 0 ? (\r\n { isModifica ? modificaIndirizzo() : aggiungiIndirizzo(); }}\r\n emphasis={Button.Emphasis.HIGH}\r\n primary\r\n disabled={!isFormValid}\r\n running={loading}\r\n >\r\n {isIndirizzoDaAggiornare ? 'AGGIORNA ' : isModifica ? 'MODIFICA ' : 'AGGIUNGI '}INDIRIZZO\r\n \r\n ) : (\r\n setSegnalazioni([])}\r\n emphasis={Button.Emphasis.HIGH}\r\n primary\r\n disabled={!isFormValid}\r\n running={loading}\r\n >\r\n RIPROVA\r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nModaleIndirizzo.defaultProps = {\r\n oggettoModifica: {},\r\n idAnagrafica: null,\r\n idDelega: null,\r\n isIndirizzoDaAggiornare: false,\r\n tipoPersona: null,\r\n};\r\n\r\nModaleIndirizzo.propTypes = {\r\n onClose: PropTypes.func.isRequired,\r\n show: PropTypes.bool.isRequired,\r\n idAnagrafica: PropTypes.number,\r\n oggettoModifica: PropTypes.shape({\r\n TipoIndirizzo: PropTypes.number,\r\n Comune: PropTypes.string,\r\n Provincia: PropTypes.string,\r\n Toponimo: PropTypes.string,\r\n Descrizione: PropTypes.string,\r\n NumeroCivico: PropTypes.string,\r\n Cap: PropTypes.string,\r\n Frazione: PropTypes.string,\r\n }),\r\n idDelega: PropTypes.number,\r\n isIndirizzoDaAggiornare: PropTypes.bool,\r\n tipoPersona: PropTypes.number,\r\n};\r\n\r\nexport default ModaleIndirizzo;\r\n","/* eslint-disable no-nested-ternary */\r\nimport Log, { logApiError } from 'framework-taskforce/utils/log';\r\nimport {\r\n Spinner,\r\n} from 'framework-ui-components';\r\nimport usePluginsReducer from 'framework-plugins/hooks/usePluginReducer';\r\nimport { SnackbarWrapper } from 'framework-ui-components/Components/Snackbar';\r\nimport React, { useState, useEffect, useCallback } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { useHistory, useParams } from 'react-router';\r\nimport PropTypes from 'prop-types';\r\nimport { JustADate } from 'framework-taskforce/utils/date';\r\nimport {\r\n FeedbackModal,\r\n} from 'framework-ui-components/Components/V2';\r\nimport { getSegnalazioneError } from 'framework-taskforce/models/segnalazioni';\r\nimport useSignalR from 'framework-ui-components/Components/Hooks/useSignalR';\r\nimport { ModalIFrame } from 'framework-plugins';\r\nimport {\r\n getOttieniDelega,\r\n getOttieniSezioneAltriEnti,\r\n getOttieniSezioneErario,\r\n getOttieniSezioneInail,\r\n getOttieniSezioneInps,\r\n getOttieniSezioneRegioni,\r\n getOttieniSezioneTributiLocali,\r\n postRimuoviUtilizzoDebito,\r\n postRimuoviUtilizzoCredito,\r\n postRimuoviCoobbligato,\r\n postRimuoviContoCorrente,\r\n postDichiaraCompleta,\r\n postDichiaraAperta,\r\n postDichiaraPagata,\r\n postEliminaDelega,\r\n getEtichetteDelega,\r\n postDichiaraDaNonPresentare,\r\n postDichiaraDaPresentare,\r\n getOttieniIbanContoCorrente,\r\n postImpostaDelegaInviataConCbi,\r\n getOttieniInfoModalitaPresentazione,\r\n getOttieniSezioneAccise,\r\n getOttieniSezioneElide,\r\n} from '../../apis/deleghe';\r\nimport PageWrapper from '../../components/PageWrapper';\r\nimport ToolbarDiProva from '../listaContribuenti/riepilogoContribuente/ToolbarDiProva';\r\nimport { setSoggettoAction } from '../../actions/soggetto';\r\nimport { getOttieniContribuente } from '../../apis/contribuente';\r\nimport ModaleModificaUtilizzoTributo from './ModaleModificaUtilizzoTributo';\r\nimport { MODALITA_PRESENTAZIONE2, SOGGETTO_VERSANTE, STEP_SCELTA_TELEMATICO } from '../../models/delega';\r\nimport ModaleCoobbligato from './coobbligato/ModaleCoobbligato';\r\nimport ModaleVersamento from './sezioneVersamento/ModaleVersamento';\r\nimport ModaleConfermaEliminazione from '../../components/ModaleConfermaEliminazione';\r\nimport { getOttieniIntermediario } from '../../apis/intermediari';\r\nimport { convertUTCDateToLocalDate } from '../../utils/format';\r\nimport ModaleDichiaraPagata from '../listaContribuenti/riepilogoContribuente/listaDeleghe/tabella/presentate/ModaleDichiaraPagata';\r\nimport RiepilogoDelega from './RiepilogoDelega';\r\nimport { delegheUrl, dettaglioIntermediarioUrl, tributiContribuenteUrl } from '../../models/urls';\r\nimport SezioniDelega from './SezioniDelega';\r\nimport ModaleLoading from '../../components/ModaleLoading';\r\nimport { setPresentaDelegheCbiAction } from '../../actions/presentazioneDeleghe';\r\nimport { TIPOLOGIA_SEZIONE } from '../../models/tributi';\r\nimport { puliziaDatiLocali } from '../../components/note/NoteInit';\r\nimport ModaleDatiAnagrafica from '../listaContribuenti/dettaglioContribuente/sezioneDatiAnagrafici/modaleDatiAnagrafici/ModaleDatiAnagrafica';\r\nimport ModalePresentaDelega from '../../components/modalePresentaDelega/ModalePresentaDelega';\r\nimport ModaleIndirizzo from '../listaContribuenti/dettaglioContribuente/sezioneIndirizzi/modificaIndirizzo/ModaleIndirizzo';\r\nimport {\r\n getOttieniIndirizzoResidenzaFiscale,\r\n getOttieniIndirizzoSedeLegale,\r\n getOttieniPersonaFisica,\r\n getOttieniPersonaGiuridica,\r\n} from '../../apis/anagrafiche';\r\nimport { TIPO_PERSONA } from '../../models/anagrafica';\r\n\r\nconst DettaglioDelega = ({ fromIntermediario, fromMassive, fromScadenzario }) => {\r\n const dispatch = useDispatch();\r\n\r\n const { id, idIntermediario } = useParams();\r\n\r\n const nominativo = useSelector((store) => store.soggetto.nominativo);\r\n const studioSelezionato = useSelector((store) => store.appParams.studioSelezionato);\r\n const codiceUfficioSelezionato = useSelector((store) => store.appParams.ufficioSelezionato);\r\n const noBack = useSelector((store) => !!store.appParams.noBack);\r\n const appParamVisualizzazione = useSelector((store) => !!store.appParams.visualizzazione);\r\n const codiceUfficioOperatore = useSelector((store) => store.appParams.codiceUfficioOperatore);\r\n const noToolbar = useSelector((store) => store.appParams.noToolbar);\r\n const f24CBIUrl = useSelector((store) => store.appParams.F24CBIUrl);\r\n const f24Url = useSelector((store) => store.appParams.F24Url);\r\n const profiloUtente = useSelector((store) => store.utente.Profilo);\r\n const soggetto = useSelector((store) => store.soggetto);\r\n const presentazioneDelegheCbi = useSelector((store) => store.presentazioneDeleghe.cbi);\r\n const applicationId = useSelector((store) => store.appParams.ApplicationId);\r\n\r\n const [primoLoading, setPrimoLoading] = useState(true);\r\n const [loading, setLoading] = useState(true);\r\n const [loadingErario, setLoadingErario] = useState(true);\r\n const [loadingTributiLocali, setLoadingTributiLocali] = useState(true);\r\n const [loadingInps, setLoadingInps] = useState(true);\r\n const [loadingRegioni, setLoadingRegioni] = useState(true);\r\n const [loadingInail, setLoadingInail] = useState(true);\r\n const [loadingAltriEnti, setLoadingAltriEnti] = useState(true);\r\n const [loadingAccise, setLoadingAccise] = useState(true);\r\n const [loadingElide, setLoadingElide] = useState(true);\r\n const [datiDelega, setDatiDelega] = useState(null);\r\n const [etichetteDelega, setEtichetteDelega] = useState([]);\r\n const [infoModalitaPresentazione, setInfoModalitaPresentazione] = useState({});\r\n const [datiDelegaDaAggiornare, setDatiDelegaDaAggiornare] = useState(null);\r\n const [datiDelegaAggiornati, setDatiDelegaAggiornati] = useState(null);\r\n const [isDichiaraDaNonPresentareAttivo, setIsDichiaraDaNonPresentareAttivo] = useState(true);\r\n const [isDichiaraDaPresentareAttivo, setIsDichiaraDaPresentareAttivo] = useState(true);\r\n const [isDichiaraCompletaAttivo, setIsDichiaraCompletaAttivo] = useState(true);\r\n const [isDichiaraApertaAttivo, setIsDichiaraApertaAttivo] = useState(true);\r\n const [isDichiaraPagataAttivo, setIsDichiaraPagataAttivo] = useState(true);\r\n const [tributiErario, setTributiErario] = useState(null);\r\n const [tributiLocali, setTributiLocali] = useState(null);\r\n const [tributiInps, setTributiInps] = useState(null);\r\n const [tributiRegioni, setTributiRegioni] = useState(null);\r\n const [tributiInail, setTributiInail] = useState(null);\r\n const [tributiAltriEnti, setTributiAltriEnti] = useState(null);\r\n const [tributiAccise, setTributiAccise] = useState(null);\r\n const [tributiElide, setTributiElide] = useState(null);\r\n const [showPanelTributiErario, setShowPanelTributiErario] = useState(null);\r\n const [showPanelTributiLocali, setShowPanelTributiLocali] = useState(null);\r\n const [showPanelTributiInps, setShowPanelTributiInps] = useState(null);\r\n const [showPanelTributiRegioni, setShowPanelTributiRegioni] = useState(null);\r\n const [showPanelTributiInail, setShowPanelTributiInail] = useState(null);\r\n const [showPanelTributiAltriEnti, setShowPanelTributiAltriEnti] = useState(null);\r\n const [showPanelTributiAccise, setShowPanelTributiAccise] = useState(null);\r\n const [showPanelTributiElide, setShowPanelTributiElide] = useState(null);\r\n const [totaleDelega, setTotaleDelega] = useState(null);\r\n const [tributoUtilizzoDaModificare, setTributoUtilizzoDaModificare] = useState({});\r\n const [showModaleUtilizzoTributo, setShowModaleUtilizzoTributo] = useState(false);\r\n const [idSoggettoVersante, setIdSoggettoVersante] = useState(null);\r\n const [nominativoSoggettoVersante, setNominativoSoggettoVersante] = useState(null);\r\n const [showModaleCoobbligato, setShowModaleCoobbligato] = useState(false);\r\n const [showModaleVersamento, setShowModaleVersamento] = useState(false);\r\n const [showModalePresentazione, setShowModalePresentazione] = useState(false);\r\n const [current, setCurrent] = useState('scelta-presentazione');\r\n const [modalitaPresentazione, setModalitaPresentazione] = useState(null);\r\n const [showModaleDichiaraPagata, setShowModaleDichiaraPagata] = useState(false);\r\n const [confirmEliminaCoobbligato, setConfirmEliminaCoobbligato] = useState({ show: false });\r\n const [confirmEliminaTributo, setConfirmEliminaTributo] = useState({\r\n show: false,\r\n tributo: null,\r\n });\r\n const [confirmEliminaDelega, setConfirmEliminaDelega] = useState({\r\n show: false,\r\n idDelega: null,\r\n });\r\n const [showModaleLoading, setShowModaleLoading] = useState({\r\n show: false,\r\n title: '',\r\n });\r\n const [nominativoIntermediario, setNominativoIntermediario] = useState(null);\r\n const [segnalazioni, setSegnalazioni] = useState([]);\r\n const [titoloFeedbackModal, setTitoloFeedbackModal] = useState('');\r\n const [modalTitleFeedbackModal, setModalTitleFeedbackModal] = useState('');\r\n const [idIntermediarioModale, setIdIntermediarioModale] = useState(null);\r\n const [specificaConto, setSpecificaConto] = useState(false);\r\n const [segnalazioniDichiaraPagata, setSegnalazioniDichiaraPagata] = useState([]);\r\n const [confirmEliminaContoCorrente, setConfirmEliminaContoCorrente] = useState({ show: false });\r\n const [datiPerInvioDeleghe, setDatiPerInvioDeleghe] = useState();\r\n const [showModalIFrameCbi, setShowModalIFrameCbi] = useState(false);\r\n const [tributiInseribili, setTributiInseribili] = useState(null);\r\n const [showSuccessPagoF24, setShowSuccessPagoF24] = useState(false);\r\n const [windowHeight, setWindowHeight] = useState(0);\r\n const [showModaleAnagraficaContribuente, setShowModaleAnagraficaContribuente] = useState(false);\r\n const [showModaleIndirizzoContribuente, setShowModaleIndirizzoContribuente] = useState(false);\r\n const [oggettoAnagraficaContribuente, setOggettoAnagraficaContribuente] = useState(null);\r\n const [oggettoIndirizzoContribuente, setOggettoIndirizzoContribuente] = useState(null);\r\n const [isIndirizzoDaAggiornare, setIsIndirizzoDaAggiornare] = useState(false);\r\n\r\n const history = useHistory();\r\n\r\n const apriConfirmRimuoviUtilizzo = (idTributo, isDebito, onSuccessCallback) => {\r\n setConfirmEliminaTributo({\r\n show: true,\r\n tributo: { id: idTributo, isDebito, onSuccessCallback },\r\n });\r\n };\r\n\r\n const rimuoviUtilizzo = (idTributo, isDebito, onSuccessCallback) => {\r\n (isDebito ? postRimuoviUtilizzoDebito(idTributo, datiDelega.IdDelega, datiDelega.IdContribuente)\r\n : postRimuoviUtilizzoCredito(idTributo, datiDelega.IdDelega, datiDelega.IdContribuente))\r\n .then((res) => {\r\n if (res.Success) {\r\n // ale mi segnala che non funziona quindi ho scommentato\r\n onSuccessCallback();\r\n setDatiDelegaAggiornati(null);\r\n setConfirmEliminaTributo({\r\n show: false,\r\n tributo: null,\r\n });\r\n } else {\r\n setTitoloFeedbackModal('Eliminazione non riuscita');\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n // SnackbarWrapper.notifyError(res.DetectedProblems || 'Si è verificato un errore');\r\n }\r\n })\r\n .catch((e) => {\r\n SnackbarWrapper.notifyError('Si è verificato un errore');\r\n });\r\n };\r\n\r\n const eseguiEliminaDelega = useCallback((idDelega) => {\r\n setConfirmEliminaDelega({ show: false });\r\n setLoading(true);\r\n postEliminaDelega(idDelega).then((response) => {\r\n if (!response.Success) {\r\n setLoading(false);\r\n setTitoloFeedbackModal('Eliminazione non riuscita');\r\n setSegnalazioni(response.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n setConfirmEliminaDelega({ show: false });\r\n } else {\r\n setShowModaleLoading({ show: true, title: 'Eliminazione in corso' });\r\n }\r\n }).catch((err) => {\r\n Log.error(err);\r\n });\r\n }, []);\r\n\r\n useSignalR('DelegaEliminata', (data) => {\r\n if (fromIntermediario) {\r\n history.push(dettaglioIntermediarioUrl(idIntermediario));\r\n } else if (fromMassive) {\r\n history.push(delegheUrl(appParamVisualizzazione, codiceUfficioOperatore));\r\n } else {\r\n history.push(tributiContribuenteUrl(datiDelega.CodiceFiscale, appParamVisualizzazione, codiceUfficioOperatore));\r\n }\r\n });\r\n\r\n const rimuoviCoobbligato = () => {\r\n postRimuoviCoobbligato(datiDelega.IdDelega)\r\n .then((res) => {\r\n setDatiDelegaAggiornati(null);\r\n setConfirmEliminaCoobbligato({ show: false });\r\n setIdSoggettoVersante(null);\r\n setNominativoSoggettoVersante(null);\r\n })\r\n .catch((e) => {\r\n });\r\n };\r\n\r\n const rimuoviContoCorrente = () => {\r\n postRimuoviContoCorrente(datiDelega.IdDelega)\r\n .then((res) => {\r\n setDatiDelegaAggiornati(null);\r\n setIdSoggettoVersante(null);\r\n setNominativoSoggettoVersante(null);\r\n setConfirmEliminaContoCorrente({ show: false });\r\n })\r\n .catch((e) => {\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n if (datiDelega && datiDelega.IdAnagraficaContribuente !== soggetto.idAnagrafica) {\r\n getOttieniContribuente(\r\n studioSelezionato,\r\n datiDelega.CodiceFiscale,\r\n )\r\n .then((res) => {\r\n if (res.Success) {\r\n dispatch(setSoggettoAction({\r\n idAnagrafica: res.Result.IdAnagrafica,\r\n idContribuente: res.Result.IdContribuente,\r\n codiceFiscale: res.Result.CodiceFiscale,\r\n nominativo: res.Result.Denominazione,\r\n tipoPersona: res.Result.TipoPersona,\r\n haPartitaIva: !!res.Result.PartitaIva,\r\n partitaIva: res.Result.PartitaIva,\r\n }));\r\n } else {\r\n history.push('/errore');\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n })\r\n .catch((e) => {\r\n });\r\n }\r\n }, [datiDelega, dispatch, history, nominativo, soggetto, studioSelezionato]);\r\n\r\n useEffect(() => {\r\n if (datiDelega) {\r\n setOggettoAnagraficaContribuente({\r\n CodiceFiscale: datiDelega.CodiceFiscale,\r\n RagioneSociale: datiDelega.RagioneSociale,\r\n Cognome: datiDelega.Cognome,\r\n Nome: datiDelega.Nome,\r\n DataDiNascita: datiDelega.DataDiNascita,\r\n Sesso: datiDelega.Sesso,\r\n ProvinciaNascita: datiDelega.ProvinciaNascita,\r\n ComuneNascita: datiDelega.ComuneNascita,\r\n IdAnagrafica: datiDelega.IdAnagraficaContribuente,\r\n });\r\n\r\n if (datiDelega.TipoPersona === TIPO_PERSONA.PERSONA_GIURIDICA) {\r\n getOttieniPersonaGiuridica(studioSelezionato, datiDelega.CodiceFiscale)\r\n .then((res) => {\r\n if (res.Success && res.Result) {\r\n setOggettoAnagraficaContribuente((oggettoOld) => ({\r\n ...oggettoOld,\r\n PartitaIva: res.Result.PartitaIva,\r\n NaturaGiuridica: res.Result.NaturaGiuridica,\r\n IdNaturaGiuridica: res.Result.IdNaturaGiuridica,\r\n }));\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n });\r\n getOttieniIndirizzoSedeLegale(datiDelega.IdAnagraficaContribuente)\r\n .then((res) => {\r\n if (res.Success && res.Result) {\r\n setOggettoIndirizzoContribuente(res.Result);\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n });\r\n } else {\r\n getOttieniPersonaFisica(studioSelezionato, datiDelega.CodiceFiscale)\r\n .then((res) => {\r\n if (res.Success && res.Result) {\r\n setOggettoAnagraficaContribuente((oggettoOld) => ({\r\n ...oggettoOld,\r\n PartitaIva: res.Result.PartitaIva,\r\n IdLuogoDiNascita: res.Result.IdLuogoDiNascita,\r\n }));\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n });\r\n getOttieniIndirizzoResidenzaFiscale(datiDelega.IdAnagraficaContribuente)\r\n .then((res) => {\r\n if (res.Success && res.Result) {\r\n setOggettoIndirizzoContribuente(res.Result);\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n });\r\n }\r\n }\r\n }, [datiDelega, history, studioSelezionato]);\r\n\r\n useEffect(() => {\r\n if (oggettoIndirizzoContribuente) {\r\n // eslint-disable-next-line max-len\r\n const indirizzoContribuente = `${oggettoIndirizzoContribuente.Toponimo} ${oggettoIndirizzoContribuente.Descrizione} ${oggettoIndirizzoContribuente.NumeroCivico}`;\r\n if (datiDelega.ComuneDomicilio !== oggettoIndirizzoContribuente.Comune\r\n || datiDelega.IndirizzoDomicilio !== indirizzoContribuente\r\n || datiDelega.ProvinciaDomicilio !== oggettoIndirizzoContribuente.Provincia) {\r\n setIsIndirizzoDaAggiornare(true);\r\n } else {\r\n setIsIndirizzoDaAggiornare(false);\r\n }\r\n } else {\r\n setIsIndirizzoDaAggiornare(false);\r\n }\r\n }, [datiDelega, oggettoIndirizzoContribuente]);\r\n\r\n useEffect(() => {\r\n if (datiDelega && (!idSoggettoVersante || !nominativoSoggettoVersante)) {\r\n if (datiDelega.SoggettoVersante === SOGGETTO_VERSANTE.COOBBLIGATO) {\r\n setIdSoggettoVersante(datiDelega.IdAnagraficaCoobbligato);\r\n setNominativoSoggettoVersante(`${datiDelega.CodiceFiscaleCoobbligato} - ${datiDelega.DenominazioneCoobbligato}`);\r\n } else if (datiDelega.SoggettoVersante === SOGGETTO_VERSANTE.INTERMADIARIO) {\r\n setIdSoggettoVersante(datiDelega.IdAnagraficaIntermediario);\r\n setNominativoSoggettoVersante(`${datiDelega.CodiceFiscaleIntermediario} - ${datiDelega.DenominazioneIntermediario}`);\r\n } else {\r\n setIdSoggettoVersante(datiDelega.IdAnagraficaContribuente);\r\n setNominativoSoggettoVersante(`${datiDelega.CodiceFiscale} - ${datiDelega.Denominazione}`);\r\n }\r\n }\r\n }, [datiDelega, idSoggettoVersante, nominativoSoggettoVersante]);\r\n\r\n const ottieniTributiErario = useCallback((ricalcolaTotaleDelega = true) => {\r\n setLoadingErario(true);\r\n getOttieniSezioneErario(id)\r\n .then((resTributi) => {\r\n if (resTributi.Success) {\r\n setTributiErario(resTributi.Result);\r\n } else {\r\n SnackbarWrapper.notifyError(resTributi.DetectedProblems);\r\n }\r\n\r\n setLoadingErario(false);\r\n\r\n if (ricalcolaTotaleDelega) {\r\n setTotaleDelega(null);\r\n }\r\n })\r\n .catch((e) => {\r\n setLoadingErario(false);\r\n logApiError(e);\r\n });\r\n }, [id]);\r\n\r\n const ottieniTributiLocali = useCallback((ricalcolaTotaleDelega = true) => {\r\n setLoadingTributiLocali(true);\r\n getOttieniSezioneTributiLocali(id)\r\n .then((resTributi) => {\r\n if (resTributi.Success) {\r\n setTributiLocali(resTributi.Result);\r\n } else {\r\n SnackbarWrapper.notifyError(resTributi.DetectedProblems);\r\n }\r\n\r\n setLoadingTributiLocali(false);\r\n\r\n if (ricalcolaTotaleDelega) {\r\n setTotaleDelega(null);\r\n }\r\n })\r\n .catch((e) => {\r\n setTributiLocali(false);\r\n logApiError(e);\r\n });\r\n }, [id]);\r\n\r\n const ottieniTributiInps = useCallback((ricalcolaTotaleDelega = true) => {\r\n setLoadingInps(true);\r\n getOttieniSezioneInps(id)\r\n .then((resTributi) => {\r\n if (resTributi.Success) {\r\n setTributiInps(resTributi.Result);\r\n } else {\r\n SnackbarWrapper.notifyError(resTributi.DetectedProblems);\r\n }\r\n\r\n setLoadingInps(false);\r\n\r\n if (ricalcolaTotaleDelega) {\r\n setTotaleDelega(null);\r\n }\r\n })\r\n .catch((e) => {\r\n setLoadingInps(false);\r\n logApiError(e);\r\n });\r\n }, [id]);\r\n\r\n const ottieniTributiRegioni = useCallback((ricalcolaTotaleDelega = true) => {\r\n setLoadingRegioni(true);\r\n getOttieniSezioneRegioni(id)\r\n .then((resTributi) => {\r\n if (resTributi.Success) {\r\n setTributiRegioni(resTributi.Result);\r\n } else {\r\n SnackbarWrapper.notifyError(resTributi.DetectedProblems);\r\n }\r\n\r\n setLoadingRegioni(false);\r\n\r\n if (ricalcolaTotaleDelega) {\r\n setTotaleDelega(null);\r\n }\r\n })\r\n .catch((e) => {\r\n setLoadingRegioni(false);\r\n logApiError(e);\r\n });\r\n }, [id]);\r\n\r\n const ottieniTributiInail = useCallback((ricalcolaTotaleDelega = true) => {\r\n setLoadingInail(true);\r\n getOttieniSezioneInail(id)\r\n .then((resTributi) => {\r\n if (resTributi.Success) {\r\n setTributiInail(resTributi.Result);\r\n } else {\r\n SnackbarWrapper.notifyError(resTributi.DetectedProblems);\r\n }\r\n\r\n setLoadingInail(false);\r\n\r\n if (ricalcolaTotaleDelega) {\r\n setTotaleDelega(null);\r\n }\r\n })\r\n .catch((e) => {\r\n setLoadingInail(false);\r\n logApiError(e);\r\n });\r\n }, [id]);\r\n\r\n const ottieniTributiAltriEnti = useCallback((ricalcolaTotaleDelega = true) => {\r\n setLoadingAltriEnti(true);\r\n getOttieniSezioneAltriEnti(id)\r\n .then((resTributi) => {\r\n if (resTributi.Success) {\r\n setTributiAltriEnti(resTributi.Result);\r\n } else {\r\n SnackbarWrapper.notifyError(resTributi.DetectedProblems);\r\n }\r\n\r\n setLoadingAltriEnti(false);\r\n\r\n if (ricalcolaTotaleDelega) {\r\n setTotaleDelega(null);\r\n }\r\n })\r\n .catch((e) => {\r\n setLoadingAltriEnti(false);\r\n logApiError(e);\r\n });\r\n }, [id]);\r\n\r\n const ottieniTributiAccise = useCallback((ricalcolaTotaleDelega = true) => {\r\n setLoadingAccise(true);\r\n getOttieniSezioneAccise(id)\r\n .then((resTributi) => {\r\n if (resTributi.Success) {\r\n setTributiAccise(resTributi.Result);\r\n } else {\r\n SnackbarWrapper.notifyError(resTributi.DetectedProblems);\r\n }\r\n\r\n setLoadingAccise(false);\r\n\r\n if (ricalcolaTotaleDelega) {\r\n setTotaleDelega(null);\r\n }\r\n })\r\n .catch((e) => {\r\n setLoadingAccise(false);\r\n logApiError(e);\r\n });\r\n }, [id]);\r\n\r\n const ottieniTributiElide = useCallback((ricalcolaTotaleDelega = true) => {\r\n setLoadingElide(true);\r\n getOttieniSezioneElide(id)\r\n .then((resTributi) => {\r\n if (resTributi.Success) {\r\n setTributiElide(resTributi.Result);\r\n } else {\r\n SnackbarWrapper.notifyError(resTributi.DetectedProblems);\r\n }\r\n\r\n setLoadingElide(false);\r\n\r\n if (ricalcolaTotaleDelega) {\r\n setTotaleDelega(null);\r\n }\r\n })\r\n .catch((e) => {\r\n setLoadingElide(false);\r\n logApiError(e);\r\n });\r\n }, [id]);\r\n\r\n useEffect(() => {\r\n if (!totaleDelega\r\n && tributiErario\r\n && tributiLocali\r\n && tributiInps\r\n && tributiRegioni\r\n && tributiInail\r\n && tributiAltriEnti\r\n && tributiAccise\r\n && tributiElide) {\r\n setTotaleDelega((0\r\n - (tributiErario ? tributiErario.Saldo * 100 : 0)\r\n - (tributiLocali ? tributiLocali.Saldo * 100 : 0)\r\n - (tributiInps ? tributiInps.Saldo * 100 : 0)\r\n - (tributiRegioni ? tributiRegioni.Saldo * 100 : 0)\r\n - (tributiInail ? tributiInail.Saldo * 100 : 0)\r\n - (tributiAltriEnti ? tributiAltriEnti.Saldo * 100 : 0)\r\n - (tributiAccise ? tributiAccise.Saldo * 100 : 0)\r\n - (tributiElide ? tributiElide.Saldo * 100 : 0)) / 100);\r\n // totaleDelega negativo indica una delega con saldo a debito\r\n }\r\n }, [totaleDelega, tributiAltriEnti, tributiErario, tributiInail, tributiInps, tributiLocali, tributiRegioni, tributiAccise, tributiElide]);\r\n\r\n useEffect(() => {\r\n if (!datiDelega) {\r\n puliziaDatiLocali();\r\n }\r\n }, [datiDelega]);\r\n\r\n useEffect(() => {\r\n if (datiDelegaAggiornati) {\r\n setDatiDelega(datiDelegaAggiornati);\r\n } else {\r\n setDatiDelega(datiDelegaDaAggiornare);\r\n }\r\n }, [datiDelegaAggiornati, datiDelegaDaAggiornare]);\r\n\r\n useEffect(() => {\r\n if (id && !datiDelegaAggiornati) {\r\n setLoading(true);\r\n setLoadingErario(true);\r\n setLoadingInps(true);\r\n setLoadingTributiLocali(true);\r\n setLoadingRegioni(true);\r\n setLoadingInail(true);\r\n setLoadingAltriEnti(true);\r\n setLoadingAccise(true);\r\n setLoadingElide(true);\r\n\r\n getOttieniDelega(id)\r\n .then((res) => {\r\n if (res.Success) {\r\n setPrimoLoading(false);\r\n setDatiDelegaAggiornati(res.Result.Delega);\r\n setDatiDelegaDaAggiornare(res.Result.Delega);\r\n setIdSoggettoVersante(null);\r\n setNominativoSoggettoVersante(null);\r\n setIsDichiaraDaNonPresentareAttivo(res.Result.IsDichiaraDaNonPresentareAttivo);\r\n setIsDichiaraDaPresentareAttivo(res.Result.IsDichiaraDaPresentareAttivo);\r\n setIsDichiaraCompletaAttivo(res.Result.IsDichiaraCompletaAttivo);\r\n setIsDichiaraApertaAttivo(res.Result.IsDichiaraApertaAttivo);\r\n setIsDichiaraPagataAttivo(res.Result.IsDichiaraPagataAttivo);\r\n setSpecificaConto(!!res.Result.Delega.Iban);\r\n\r\n ottieniEtichetteDelega(id);\r\n ottieniInfoModalitaPresentazione(id);\r\n\r\n if (!tributiErario) {\r\n ottieniTributiErario();\r\n } else {\r\n setLoadingErario(false);\r\n }\r\n\r\n if (!tributiLocali) {\r\n ottieniTributiLocali();\r\n } else {\r\n setLoadingTributiLocali(false);\r\n }\r\n\r\n if (!tributiInps) {\r\n ottieniTributiInps();\r\n } else {\r\n setLoadingInps(false);\r\n }\r\n\r\n if (!tributiRegioni) {\r\n ottieniTributiRegioni();\r\n } else {\r\n setLoadingRegioni(false);\r\n }\r\n\r\n if (!tributiInail) {\r\n ottieniTributiInail();\r\n } else {\r\n setLoadingInail(false);\r\n }\r\n\r\n if (!tributiAltriEnti) {\r\n ottieniTributiAltriEnti();\r\n } else {\r\n setLoadingAltriEnti(false);\r\n }\r\n\r\n if (!tributiAccise) {\r\n ottieniTributiAccise();\r\n } else {\r\n setLoadingAccise(false);\r\n }\r\n\r\n if (!tributiElide) {\r\n ottieniTributiElide();\r\n } else {\r\n setLoadingElide(false);\r\n }\r\n\r\n setLoading(false);\r\n } else {\r\n SnackbarWrapper.notifyError(res.DetectedProblems);\r\n setLoading(false);\r\n }\r\n })\r\n .catch((e) => {\r\n setLoading(false);\r\n logApiError(e);\r\n });\r\n }\r\n }, [datiDelega,\r\n id,\r\n ottieniTributiAltriEnti,\r\n ottieniTributiErario,\r\n ottieniTributiInail,\r\n ottieniTributiInps,\r\n ottieniTributiLocali,\r\n ottieniTributiRegioni,\r\n tributiAltriEnti,\r\n tributiErario,\r\n tributiInail,\r\n tributiInps,\r\n tributiLocali,\r\n tributiRegioni,\r\n datiDelegaAggiornati,\r\n ottieniTributiAccise,\r\n tributiAccise,\r\n tributiElide,\r\n ottieniTributiElide]);\r\n\r\n const ottieniEtichetteDelega = (idDelega) => {\r\n getEtichetteDelega(idDelega)\r\n .then((res) => {\r\n if (res.Success) {\r\n setEtichetteDelega(res.Result);\r\n }\r\n })\r\n .catch((e) => {\r\n setLoading(false);\r\n logApiError(e);\r\n });\r\n };\r\n\r\n const ottieniInfoModalitaPresentazione = (idDelega) => {\r\n getOttieniInfoModalitaPresentazione(idDelega)\r\n .then((res) => {\r\n if (res.Success) {\r\n setInfoModalitaPresentazione(res.Result);\r\n }\r\n })\r\n .catch((e) => {\r\n setInfoModalitaPresentazione({});\r\n logApiError(e);\r\n });\r\n };\r\n\r\n const ottieniSezioneSpecifica = useCallback((sezione = '') => {\r\n if (sezione === 'AltriEnti') {\r\n ottieniTributiAltriEnti(true);\r\n } else if (sezione === 'Erario') {\r\n ottieniTributiErario(true);\r\n } else if (sezione === 'Inail') {\r\n ottieniTributiInail(true);\r\n } else if (sezione === 'Inps') {\r\n ottieniTributiInps(true);\r\n } else if (sezione === 'Regioni') {\r\n ottieniTributiRegioni(true);\r\n } else if (sezione === 'TributiLocali') {\r\n ottieniTributiLocali(true);\r\n } else if (sezione === 'Accise') {\r\n ottieniTributiAccise(true);\r\n } else if (sezione === 'Elide') {\r\n ottieniTributiElide(true);\r\n }\r\n }, [ottieniTributiAltriEnti,\r\n ottieniTributiErario,\r\n ottieniTributiInail,\r\n ottieniTributiInps,\r\n ottieniTributiLocali,\r\n ottieniTributiRegioni,\r\n ottieniTributiAccise,\r\n ottieniTributiElide]);\r\n\r\n const ottieniSezioneSpecificaById = useCallback((idSezione) => {\r\n setShowPanelTributiErario(false);\r\n setShowPanelTributiLocali(false);\r\n setShowPanelTributiInps(false);\r\n setShowPanelTributiRegioni(false);\r\n setShowPanelTributiInail(false);\r\n setShowPanelTributiAltriEnti(false);\r\n setShowPanelTributiAccise(false);\r\n\r\n if (idSezione === TIPOLOGIA_SEZIONE.ALTRI_ENTI) {\r\n ottieniTributiAltriEnti(true);\r\n setShowPanelTributiAltriEnti(true);\r\n } else if (idSezione === TIPOLOGIA_SEZIONE.ERARIO) {\r\n ottieniTributiErario(true);\r\n setShowPanelTributiErario(true);\r\n } else if (idSezione === TIPOLOGIA_SEZIONE.INAIL) {\r\n ottieniTributiInail(true);\r\n setShowPanelTributiInail(true);\r\n } else if (idSezione === TIPOLOGIA_SEZIONE.INPS) {\r\n ottieniTributiInps(true);\r\n setShowPanelTributiInps(true);\r\n } else if (idSezione === TIPOLOGIA_SEZIONE.REGIONI) {\r\n ottieniTributiRegioni(true);\r\n setShowPanelTributiRegioni(true);\r\n } else if (idSezione === TIPOLOGIA_SEZIONE.TRIBUTI_LOCALI) {\r\n ottieniTributiLocali(true);\r\n setShowPanelTributiLocali(true);\r\n } else if (idSezione === TIPOLOGIA_SEZIONE.ACCISE) {\r\n ottieniTributiAccise(true);\r\n setShowPanelTributiAccise(true);\r\n } else if (idSezione === TIPOLOGIA_SEZIONE.ELIDE) {\r\n ottieniTributiElide(true);\r\n setShowPanelTributiElide(true);\r\n }\r\n }, [ottieniTributiAccise,\r\n ottieniTributiAltriEnti,\r\n ottieniTributiErario,\r\n ottieniTributiInail,\r\n ottieniTributiInps,\r\n ottieniTributiLocali,\r\n ottieniTributiRegioni,\r\n ottieniTributiElide]);\r\n\r\n const chiusuraModaleModificaUtilizzoTributo = useCallback((successo, sezione = '') => {\r\n setDatiDelegaAggiornati(null);\r\n\r\n setShowModaleUtilizzoTributo(false);\r\n\r\n setTributoUtilizzoDaModificare({});\r\n if (successo) {\r\n ottieniSezioneSpecifica(sezione);\r\n setTributiInseribili(null);\r\n }\r\n }, [id, ottieniSezioneSpecifica]);\r\n\r\n const chiusuraModaleCoobbligato = useCallback((successo) => {\r\n setShowModaleCoobbligato(false);\r\n if (successo) {\r\n setLoading(true);\r\n getOttieniDelega(id)\r\n .then((res) => {\r\n if (res.Success) {\r\n setDatiDelegaAggiornati(res.Result.Delega);\r\n setIsDichiaraDaNonPresentareAttivo(res.Result.IsDichiaraDaNonPresentareAttivo);\r\n setIsDichiaraDaPresentareAttivo(res.Result.IsDichiaraDaPresentareAttivo);\r\n setIsDichiaraCompletaAttivo(res.Result.IsDichiaraCompletaAttivo);\r\n setIsDichiaraApertaAttivo(res.Result.IsDichiaraApertaAttivo);\r\n setIsDichiaraPagataAttivo(res.Result.IsDichiaraPagataAttivo);\r\n setSpecificaConto(!!res.Result.Delega.Iban);\r\n setIdSoggettoVersante(null);\r\n setNominativoSoggettoVersante(null);\r\n setLoading(false);\r\n\r\n ottieniInfoModalitaPresentazione(id);\r\n } else {\r\n SnackbarWrapper.notifyError(res.DetectedProblems);\r\n setLoading(false);\r\n }\r\n })\r\n .catch((e) => {\r\n setLoading(false);\r\n logApiError(e);\r\n });\r\n }\r\n }, [id]);\r\n\r\n const chiusuraModaleVersamento = useCallback((successo) => {\r\n setShowModaleVersamento(false);\r\n if (successo) {\r\n setLoading(true);\r\n getOttieniDelega(id)\r\n .then((res) => {\r\n if (res.Success) {\r\n setDatiDelegaAggiornati(res.Result.Delega);\r\n setIdSoggettoVersante(null);\r\n setNominativoSoggettoVersante(null);\r\n setIsDichiaraDaNonPresentareAttivo(res.Result.IsDichiaraDaNonPresentareAttivo);\r\n setIsDichiaraDaPresentareAttivo(res.Result.IsDichiaraDaPresentareAttivo);\r\n setIsDichiaraCompletaAttivo(res.Result.IsDichiaraCompletaAttivo);\r\n setIsDichiaraApertaAttivo(res.Result.IsDichiaraApertaAttivo);\r\n setIsDichiaraPagataAttivo(res.Result.IsDichiaraPagataAttivo);\r\n setSpecificaConto(!!res.Result.Delega.Iban);\r\n setLoading(false);\r\n\r\n ottieniInfoModalitaPresentazione(id);\r\n } else {\r\n SnackbarWrapper.notifyError(res.DetectedProblems);\r\n setLoading(false);\r\n }\r\n })\r\n .catch((e) => {\r\n setLoading(false);\r\n logApiError(e);\r\n });\r\n }\r\n }, [id]);\r\n\r\n const chiusuraModaleAnagrafica = useCallback((successo) => {\r\n setShowModaleAnagraficaContribuente(false);\r\n if (successo) {\r\n setLoading(true);\r\n getOttieniDelega(id)\r\n .then((res) => {\r\n if (res.Success) {\r\n setDatiDelegaAggiornati(res.Result.Delega);\r\n setIsDichiaraDaNonPresentareAttivo(res.Result.IsDichiaraDaNonPresentareAttivo);\r\n setIsDichiaraDaPresentareAttivo(res.Result.IsDichiaraDaPresentareAttivo);\r\n setIsDichiaraCompletaAttivo(res.Result.IsDichiaraCompletaAttivo);\r\n setIsDichiaraApertaAttivo(res.Result.IsDichiaraApertaAttivo);\r\n setIsDichiaraPagataAttivo(res.Result.IsDichiaraPagataAttivo);\r\n setSpecificaConto(!!res.Result.Delega.Iban);\r\n setIdSoggettoVersante(null);\r\n setNominativoSoggettoVersante(null);\r\n setLoading(false);\r\n\r\n ottieniInfoModalitaPresentazione(id);\r\n } else {\r\n SnackbarWrapper.notifyError(res.DetectedProblems);\r\n setLoading(false);\r\n }\r\n })\r\n .catch((e) => {\r\n setLoading(false);\r\n logApiError(e);\r\n });\r\n }\r\n }, [id]);\r\n\r\n const chiusuraModaleModificaIndirizzo = useCallback((successo) => {\r\n setShowModaleIndirizzoContribuente(false);\r\n if (successo) {\r\n setLoading(true);\r\n getOttieniDelega(id)\r\n .then((res) => {\r\n if (res.Success) {\r\n setDatiDelegaAggiornati(res.Result.Delega);\r\n setIsDichiaraDaNonPresentareAttivo(res.Result.IsDichiaraDaNonPresentareAttivo);\r\n setIsDichiaraDaPresentareAttivo(res.Result.IsDichiaraDaPresentareAttivo);\r\n setIsDichiaraCompletaAttivo(res.Result.IsDichiaraCompletaAttivo);\r\n setIsDichiaraApertaAttivo(res.Result.IsDichiaraApertaAttivo);\r\n setIsDichiaraPagataAttivo(res.Result.IsDichiaraPagataAttivo);\r\n setSpecificaConto(!!res.Result.Delega.Iban);\r\n setIdSoggettoVersante(null);\r\n setNominativoSoggettoVersante(null);\r\n setLoading(false);\r\n\r\n ottieniInfoModalitaPresentazione(id);\r\n } else {\r\n SnackbarWrapper.notifyError(res.DetectedProblems);\r\n setLoading(false);\r\n }\r\n })\r\n .catch((e) => {\r\n setLoading(false);\r\n logApiError(e);\r\n });\r\n }\r\n }, [id]);\r\n\r\n const getDatoFromDelega = useCallback(\r\n (delega, dataVersamento, codiceUfficio, fileCopiaConforme, fileTelematicoContribuente) => (\r\n {\r\n Contribuente: {\r\n IdAnagrafica: soggetto.idAnagrafica,\r\n Nominativo: soggetto.nominativo,\r\n CodiceFiscale: soggetto.codiceFiscale,\r\n PartitaIva: soggetto.partitaIva,\r\n Email: null,\r\n },\r\n Deleghe: [\r\n {\r\n IdDelegaOrigine: delega.Id,\r\n DataScadenzaVersamento: delega.ScadenzaVersamento,\r\n DataPagamento: dataVersamento,\r\n ModelloDelega: delega.TipoDelegaDescrizione === 'Ordinario'\r\n ? 'F24' : `F24 ${delega.TipoDelegaDescrizione}`,\r\n Saldo: delega.Saldo,\r\n Iban: delega.Iban,\r\n LinkDownloadPdf:\r\n `${f24Url}/api/v6/File/Download?idFile=${fileCopiaConforme.Id}&nomeFile=${fileCopiaConforme.Nome}&codiceUfficio=${codiceUfficio}`,\r\n LinkDownloadEntratel:\r\n `${f24Url}/api/v6/File/Download?idFile=${fileTelematicoContribuente.Id}&nomeFile=${fileTelematicoContribuente.Nome}&codiceUfficio=${codiceUfficio}`,\r\n LinkDettaglio: `${f24Url}/#/Delega/${delega.Id}?ufficio=${codiceUfficio}`,\r\n }],\r\n }),\r\n [f24Url, soggetto.codiceFiscale, soggetto.idAnagrafica, soggetto.nominativo, soggetto.partitaIva],\r\n );\r\n\r\n const componiRichieste = useCallback(\r\n (deleghe, dataVersamento, codiceUfficio, fileCopiaConforme, fileTelematicoContribuente) => (\r\n deleghe.map((delega) => getDatoFromDelega(delega, dataVersamento, codiceUfficio, fileCopiaConforme, fileTelematicoContribuente))),\r\n [getDatoFromDelega],\r\n );\r\n\r\n const inserisciDatiDaSelezione = useCallback((\r\n dataVersamento,\r\n selezione,\r\n fileCopiaConforme,\r\n fileTelematicoContribuente,\r\n ) => ({\r\n ApplicationId: applicationId,\r\n Titolo: 'Invio deleghe F24 CBI',\r\n IdOrganizzazione: codiceUfficioSelezionato,\r\n Richiedente: {\r\n Nominativo: `${profiloUtente.Nome} ${profiloUtente.Cognome}`, // TODO: commento dei muppets fare lato BE?\r\n NotificheAbilitate: true, // TODO abilitate anche se forse non server\r\n Email: `${profiloUtente.Email}`,\r\n },\r\n Richieste: componiRichieste(\r\n selezione,\r\n dataVersamento,\r\n codiceUfficioSelezionato,\r\n fileCopiaConforme,\r\n fileTelematicoContribuente,\r\n ),\r\n InformazioniAggiuntive: {\r\n TipoApplicativo: 'F24Online',\r\n },\r\n }), [applicationId, codiceUfficioSelezionato, componiRichieste, profiloUtente.Cognome, profiloUtente.Email, profiloUtente.Nome]);\r\n\r\n const chiusuraModalePresentazione = useCallback((\r\n esito,\r\n proseguiInCbi = false,\r\n dataVersamento = null,\r\n fileCopiaConforme = null,\r\n fileTelematicoContribuente = null,\r\n successoPagoF24 = false,\r\n ) => {\r\n setShowModalePresentazione(false);\r\n setCurrent('scelta-presentazione');\r\n setModalitaPresentazione(null);\r\n setIdIntermediarioModale(null);\r\n if (proseguiInCbi) {\r\n setLoading(true);\r\n getOttieniIbanContoCorrente(datiDelega.IdDelega)\r\n .then((res) => {\r\n if (res.Success) {\r\n setDatiPerInvioDeleghe(inserisciDatiDaSelezione(\r\n dataVersamento.toISOString(),\r\n [{\r\n Id: datiDelega.IdDelega,\r\n ScadenzaVersamento: datiDelega.ScadenzaVersamento,\r\n TipoDelegaDescrizione: datiDelega.DescrizioneTipoDelega,\r\n Saldo: totaleDelega >= 0 ? -Math.abs(totaleDelega) : Math.abs(totaleDelega),\r\n Iban: res.Result,\r\n }],\r\n fileCopiaConforme,\r\n fileTelematicoContribuente,\r\n ));\r\n setLoading(false);\r\n setShowModalIFrameCbi(true);\r\n // setDatiModalePresentazione(null);\r\n setCurrent('scelta-presentazione');\r\n } else {\r\n SnackbarWrapper.notifyError(res.DetectedProblems);\r\n setLoading(false);\r\n }\r\n })\r\n .catch((e) => {\r\n setLoading(false);\r\n logApiError(e);\r\n });\r\n } else if (successoPagoF24) {\r\n if (esito) {\r\n setShowSuccessPagoF24(true);\r\n setLoading(true);\r\n getOttieniDelega(id)\r\n .then((res) => {\r\n if (res.Success) {\r\n setDatiDelegaAggiornati(res.Result.Delega);\r\n setIsDichiaraDaNonPresentareAttivo(res.Result.IsDichiaraDaNonPresentareAttivo);\r\n setIsDichiaraDaPresentareAttivo(res.Result.IsDichiaraDaPresentareAttivo);\r\n setIsDichiaraCompletaAttivo(res.Result.IsDichiaraCompletaAttivo);\r\n setIsDichiaraApertaAttivo(res.Result.IsDichiaraApertaAttivo);\r\n setIsDichiaraPagataAttivo(res.Result.IsDichiaraPagataAttivo);\r\n setSpecificaConto(!!res.Result.Delega.Iban);\r\n setLoading(false);\r\n\r\n ottieniInfoModalitaPresentazione(id);\r\n } else {\r\n SnackbarWrapper.notifyError(res.DetectedProblems);\r\n setLoading(false);\r\n }\r\n })\r\n .catch((e) => {\r\n setLoading(false);\r\n logApiError(e);\r\n });\r\n }\r\n } else if (esito) {\r\n setCurrent('scelta-presentazione');\r\n setLoading(true);\r\n getOttieniDelega(id)\r\n .then((res) => {\r\n if (res.Success) {\r\n setDatiDelegaAggiornati(res.Result.Delega);\r\n setIsDichiaraDaNonPresentareAttivo(res.Result.IsDichiaraDaNonPresentareAttivo);\r\n setIsDichiaraDaPresentareAttivo(res.Result.IsDichiaraDaPresentareAttivo);\r\n setIsDichiaraCompletaAttivo(res.Result.IsDichiaraCompletaAttivo);\r\n setIsDichiaraApertaAttivo(res.Result.IsDichiaraApertaAttivo);\r\n setIsDichiaraPagataAttivo(res.Result.IsDichiaraPagataAttivo);\r\n setSpecificaConto(!!res.Result.Delega.Iban);\r\n setLoading(false);\r\n\r\n ottieniInfoModalitaPresentazione(id);\r\n } else {\r\n SnackbarWrapper.notifyError(res.DetectedProblems);\r\n setLoading(false);\r\n }\r\n })\r\n .catch((e) => {\r\n setLoading(false);\r\n logApiError(e);\r\n });\r\n }\r\n }, [datiDelega, id, inserisciDatiDaSelezione, totaleDelega]);\r\n\r\n const chiusuraModaleDichiaraPagata = useCallback((successo) => {\r\n setShowModaleDichiaraPagata(false);\r\n setSegnalazioniDichiaraPagata([]);\r\n\r\n if (successo) {\r\n setLoading(true);\r\n getOttieniDelega(id)\r\n .then((res) => {\r\n if (res.Success) {\r\n setDatiDelegaAggiornati(res.Result.Delega);\r\n setIsDichiaraDaNonPresentareAttivo(res.Result.IsDichiaraDaNonPresentareAttivo);\r\n setIsDichiaraDaPresentareAttivo(res.Result.IsDichiaraDaPresentareAttivo);\r\n setIsDichiaraCompletaAttivo(res.Result.IsDichiaraCompletaAttivo);\r\n setIsDichiaraApertaAttivo(res.Result.IsDichiaraApertaAttivo);\r\n setIsDichiaraPagataAttivo(res.Result.IsDichiaraPagataAttivo);\r\n setSpecificaConto(!!res.Result.Delega.Iban);\r\n setLoading(false);\r\n } else {\r\n SnackbarWrapper.notifyError(res.DetectedProblems);\r\n setLoading(false);\r\n }\r\n })\r\n .catch((e) => {\r\n setLoading(false);\r\n logApiError(e);\r\n });\r\n }\r\n }, [id]);\r\n\r\n const dichiaraChiusa = useCallback((idDelega, stato) => {\r\n setLoading(true);\r\n postDichiaraCompleta({ idDelega, stato }).then((response) => {\r\n if (response.Success) {\r\n setDatiDelegaAggiornati(null);\r\n } else {\r\n setTitoloFeedbackModal('Sposta a \"Complete\" non riuscito');\r\n setSegnalazioni(response.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n setLoading(false);\r\n }).catch((err) => {\r\n // Log.error(err);\r\n setLoading(false);\r\n setTitoloFeedbackModal('Sposta a \"Complete\" non riuscito');\r\n setSegnalazioni([{ msg: 'Errore generico' }]);\r\n });\r\n }, []);\r\n\r\n const dichiaraAperta = useCallback((idDelega) => {\r\n setLoading(true);\r\n postDichiaraAperta({ idDelega }).then((response) => {\r\n if (response.Success) {\r\n setDatiDelegaAggiornati(null);\r\n } else {\r\n setTitoloFeedbackModal('Sposta a \"In lavorazione\" non riuscito');\r\n setSegnalazioni(response.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n setLoading(false);\r\n }).catch((err) => {\r\n Log.error(err);\r\n setLoading(false);\r\n });\r\n }, []);\r\n\r\n const dichiaraPagata = useCallback((idDelega, dataVersamento) => {\r\n setLoading(true);\r\n const DataVersamento = convertUTCDateToLocalDate(dataVersamento);\r\n postDichiaraPagata({ idDelega, DataVersamento }).then((response) => {\r\n if (response.Success) {\r\n setDatiDelegaAggiornati(null);\r\n setShowModaleDichiaraPagata(false);\r\n setSegnalazioniDichiaraPagata([]);\r\n } else {\r\n setSegnalazioniDichiaraPagata(response.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n setLoading(false);\r\n }).catch((err) => {\r\n Log.error(err);\r\n setLoading(false);\r\n });\r\n }, []);\r\n\r\n const dichiaraDaNonPresentare = useCallback((idDelega) => {\r\n postDichiaraDaNonPresentare({ idDelega }).then((response) => {\r\n if (response.Success) {\r\n setDatiDelegaAggiornati(null);\r\n setShowModaleDichiaraPagata(false);\r\n setSegnalazioniDichiaraPagata([]);\r\n } else {\r\n setTitoloFeedbackModal('Dichiara da \"non presentare\" non riuscito');\r\n setSegnalazioni(response.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n }).catch((err) => {\r\n Log.error(err);\r\n });\r\n }, []);\r\n\r\n const dichiaraDaPresentare = useCallback((idDelega, stato) => {\r\n postDichiaraDaPresentare({ idDelega, stato }).then((response) => {\r\n if (response.Success) {\r\n setDatiDelegaAggiornati(null);\r\n setShowModaleDichiaraPagata(false);\r\n setSegnalazioniDichiaraPagata([]);\r\n } else {\r\n setTitoloFeedbackModal('Dichiara \"da presentare\" non riuscito');\r\n setSegnalazioni(response.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n }).catch((err) => {\r\n Log.error(err);\r\n });\r\n }, []);\r\n\r\n const ottieniIntermediario = useCallback(() => {\r\n if (datiDelega) {\r\n getOttieniContribuente(\r\n studioSelezionato,\r\n datiDelega.CodiceFiscale,\r\n )\r\n .then((res) => {\r\n if (res.Success) {\r\n dispatch(setSoggettoAction({\r\n idAnagrafica: res.Result.IdAnagrafica,\r\n idContribuente: res.Result.IdContribuente,\r\n codiceFiscale: res.Result.CodiceFiscale,\r\n nominativo: res.Result.Denominazione,\r\n tipoPersona: res.Result.TipoPersona,\r\n haPartitaIva: !!res.Result.PartitaIva,\r\n partitaIva: res.Result.PartitaIva,\r\n }));\r\n } else {\r\n history.push('/errore');\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n })\r\n .catch((e) => {\r\n });\r\n }\r\n\r\n getOttieniIntermediario(idIntermediario)\r\n .then((res) => {\r\n if (res.Success && res.Result) {\r\n setNominativoIntermediario(res.Result.Denominazione);\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n }, [datiDelega, dispatch, history, idIntermediario, studioSelezionato]);\r\n\r\n useEffect(() => {\r\n if (datiDelega) {\r\n if (fromIntermediario && !nominativoIntermediario) {\r\n ottieniIntermediario();\r\n }\r\n }\r\n }, [datiDelega, fromIntermediario, nominativoIntermediario, ottieniIntermediario]);\r\n\r\n const impostaPresentataCbi = useCallback((esito) => {\r\n const oggettoPresentazione = {\r\n idDelega: presentazioneDelegheCbi.idDelega,\r\n dataVersamento: presentazioneDelegheCbi.dataVersamento,\r\n };\r\n\r\n if (oggettoPresentazione.idDelega) {\r\n if (!esito) {\r\n dispatch(\r\n setPresentaDelegheCbiAction({\r\n\r\n }),\r\n );\r\n\r\n return;\r\n }\r\n postImpostaDelegaInviataConCbi(oggettoPresentazione).then((response) => {\r\n if (response.Success) {\r\n setDatiDelegaAggiornati(null);\r\n dispatch(\r\n setPresentaDelegheCbiAction({\r\n\r\n }),\r\n );\r\n } else {\r\n setTitoloFeedbackModal('Presenta con CBI');\r\n setSegnalazioni(response.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n }).catch((err) => {\r\n Log.error(err);\r\n setLoading(false);\r\n });\r\n }\r\n }, [dispatch, presentazioneDelegheCbi]);\r\n\r\n usePluginsReducer(\r\n () => ({\r\n EsitoInvioF24CBI: (payload) => {\r\n impostaPresentataCbi(payload);\r\n },\r\n }),\r\n [impostaPresentataCbi],\r\n );\r\n\r\n const handlePostMessageFintech = useCallback((payload) => {\r\n if (datiDelega && datiDelega.IdDelega\r\n && showModalePresentazione) {\r\n const { IdDelega } = datiDelega;\r\n\r\n if ((payload.esito === 'CHIUSO_PLUGIN'\r\n || payload.esito === 'ANNULLATA'\r\n || payload.esito === 'ERRORE'\r\n || payload.esito === 'KO') && IdDelega && !loading) {\r\n setLoading(true);\r\n postDichiaraCompleta({ IdDelega }).then((response) => {\r\n setLoading(false);\r\n if (response.Success) {\r\n chiusuraModalePresentazione(true);\r\n if (payload.descrizione && payload.esito !== 'CHIUSO_PLUGIN') {\r\n setSegnalazioni([{ msg: payload.descrizione }]);\r\n }\r\n } else {\r\n chiusuraModalePresentazione(true);\r\n // setTitoloFeedbackModal('Ops...');\r\n // setSegnalazioni([{ msg: 'Qualcosa è andato storto e la tua delega potrebbe essere rimasta in presentazione' }]);\r\n }\r\n }).catch((err) => {\r\n // Log.error(err);\r\n setLoading(false);\r\n // setTitoloFeedbackModal('Ops...');\r\n // setSegnalazioni([{ msg: 'Qualcosa è andato storto e la tua delega potrebbe essere rimasta in presentazione' }]);\r\n });\r\n } else if (payload.esito === 'OK') {\r\n chiusuraModalePresentazione(true);\r\n }\r\n }\r\n }, [chiusuraModalePresentazione, datiDelega, loading, showModalePresentazione]);\r\n\r\n usePluginsReducer(\r\n () => ({\r\n ESITO_INVIO_CGNPOS: (payload) => {\r\n handlePostMessageFintech(payload);\r\n },\r\n }),\r\n [handlePostMessageFintech],\r\n );\r\n\r\n return (\r\n
    \r\n {primoLoading && !datiDelega\r\n ? \r\n : (\r\n \r\n ))}\r\n >\r\n
    \r\n {datiDelega && (\r\n \r\n )}\r\n {\r\n setShowModalePresentazione(true);\r\n\r\n setModalitaPresentazione(MODALITA_PRESENTAZIONE2.FILE_TELEMATICO_CONTRIBUENTE);\r\n\r\n setCurrent('form-file-telematico-contribuente');\r\n }}\r\n setShowModalePresentazioneIntermediario={() => {\r\n setShowModalePresentazione(true);\r\n\r\n setModalitaPresentazione(MODALITA_PRESENTAZIONE2.FILE_TELEMATICO_INTERMEDIARIO);\r\n\r\n setCurrent('form-file-telematico-intermediario');\r\n }}\r\n setShowModalePresentazioneCbi={() => {\r\n setShowModalePresentazione(true);\r\n\r\n setModalitaPresentazione(MODALITA_PRESENTAZIONE2.INVIO_CBI);\r\n\r\n setCurrent('form-cbi');\r\n }}\r\n setShowModalePresentazioneInvioTelematico={() => {\r\n setShowModalePresentazione(true);\r\n\r\n setModalitaPresentazione(MODALITA_PRESENTAZIONE2.INVIO_TELEMATICO);\r\n\r\n setCurrent('form-invio-telematico');\r\n }}\r\n setShowModalePresentazionePagoF24={(pos) => {\r\n setShowModalePresentazione(true);\r\n\r\n if (pos) {\r\n setLoading(false);\r\n setCurrent('pagoF24-Pos-Anagrafica');\r\n setModalitaPresentazione(MODALITA_PRESENTAZIONE2.CGN_POS);\r\n } else {\r\n setCurrent('pagoF24-Accettazione');\r\n setModalitaPresentazione(MODALITA_PRESENTAZIONE2.PAGO_F24);\r\n }\r\n }}\r\n stampaCartacea={() => {\r\n setModalitaPresentazione(MODALITA_PRESENTAZIONE2.STAMPA);\r\n setLoading(true);\r\n setShowModalePresentazione(true);\r\n }}\r\n apriWarningStampaCartacea={() => {\r\n setCurrent('stampa-cartacea');\r\n setShowModalePresentazione(true);\r\n }}\r\n dichiaraAperta={dichiaraAperta}\r\n isDichiaraApertaAttivo={isDichiaraApertaAttivo}\r\n setShowModaleDichiaraPagata={setShowModaleDichiaraPagata}\r\n dichiaraChiusa={dichiaraChiusa}\r\n dichiaraDaNonPresentare={dichiaraDaNonPresentare}\r\n dichiaraDaPresentare={dichiaraDaPresentare}\r\n isDichiaraPagataAttivo={isDichiaraPagataAttivo}\r\n isDichiaraCompletaAttivo={isDichiaraCompletaAttivo}\r\n totaleDelega={totaleDelega}\r\n setConfirmEliminaDelega={setConfirmEliminaDelega}\r\n setDatiDelegaAggiornati={setDatiDelegaAggiornati}\r\n tributiInseribili={tributiInseribili}\r\n setTributiInseribili={setTributiInseribili}\r\n ottieniSezioneSpecificaById={ottieniSezioneSpecificaById}\r\n setWindowHeight={setWindowHeight}\r\n />\r\n
    \r\n {datiDelega\r\n && (\r\n \r\n )}\r\n {datiDelega\r\n && (\r\n \r\n )}\r\n {datiDelega\r\n && (\r\n \r\n )}\r\n {datiDelega\r\n && (\r\n setConfirmEliminaCoobbligato({ show: false })}\r\n elimina={() => rimuoviCoobbligato()}\r\n nomeElementoEliminato=\"il coobbligato\"\r\n />\r\n )}\r\n {datiDelega\r\n && (\r\n setConfirmEliminaContoCorrente({ show: false })}\r\n elimina={() => rimuoviContoCorrente()}\r\n nomeElementoEliminato=\"l'IBAN associato\"\r\n />\r\n )}\r\n {datiDelega && showModalePresentazione\r\n && (\r\n \r\n )}\r\n {datiDelega\r\n && (\r\n \r\n )}\r\n setConfirmEliminaTributo({\r\n show: false,\r\n tributo: null,\r\n })}\r\n elimina={\r\n () => rimuoviUtilizzo(confirmEliminaTributo.tributo.id, confirmEliminaTributo.tributo.isDebito, confirmEliminaTributo.tributo.onSuccessCallback)\r\n }\r\n nomeElementoEliminato=\"il tributo\"\r\n />\r\n setConfirmEliminaDelega({ show: false })}\r\n elimina={() => eseguiEliminaDelega(confirmEliminaDelega.idDelega)}\r\n nomeElementoEliminato=\"la delega\"\r\n />\r\n {segnalazioni && segnalazioni.length > 0 && (\r\n 0}\r\n title={titoloFeedbackModal}\r\n modalTitle={modalTitleFeedbackModal}\r\n onClose={() => setSegnalazioni([])}\r\n buttonLabel=\"ok\"\r\n type=\"alarm\"\r\n message={segnalazioni[0].msg}\r\n />\r\n )}\r\n {showModaleLoading && showModaleLoading.show && (\r\n setShowModaleLoading({ show: false })}\r\n title={showModaleLoading.title}\r\n />\r\n )}\r\n {\r\n // Assistente.mostraPermalink(enumPermalink.toString(enumPermalink.F24CBI));\r\n setShowModalIFrameCbi(false);\r\n }}\r\n show={showModalIFrameCbi}\r\n title=\"Invia F24 mediante CBI\"\r\n iframeProps={{ extraParams: datiPerInvioDeleghe }}\r\n defaultModalSize={{ width: 990, height: 500 }}\r\n fixedModalSize\r\n />\r\n setShowSuccessPagoF24(false)}\r\n message={(\r\n
    \r\n Una volta che la banca del contribuente confermerà\r\n
    \r\n il pagamento, la sua situazione si aggiornerà e i tributi\r\n
    \r\n risulteranno versati.\r\n
    \r\n )}\r\n />\r\n {datiDelega && (\r\n \r\n )}\r\n {datiDelega && (\r\n \r\n )}\r\n \r\n )}\r\n
    \r\n );\r\n};\r\n\r\nDettaglioDelega.defaultProps = {\r\n fromIntermediario: false,\r\n fromMassive: false,\r\n fromScadenzario: false,\r\n};\r\n\r\nDettaglioDelega.propTypes = {\r\n fromIntermediario: PropTypes.bool,\r\n fromMassive: PropTypes.bool,\r\n fromScadenzario: PropTypes.bool,\r\n};\r\n\r\nexport default DettaglioDelega;\r\n","import { AuthorizedApp } from 'framework-taskforce';\r\nimport React from 'react';\r\nimport ContenutoPaginaDiSospensione from '../ContenutoPaginaDiSospensione';\r\nimport DettaglioDelega from '../areas/dettaglioDelega/DettaglioDelega';\r\nimport { authorizedServices } from '../models/f24';\r\n\r\nconst DettaglioDelegaFromScadenziarioRoute = () => (\r\n )}\r\n >\r\n \r\n \r\n);\r\n\r\nDettaglioDelegaFromScadenziarioRoute.defaultProps = {\r\n};\r\n\r\nDettaglioDelegaFromScadenziarioRoute.propTypes = {\r\n};\r\n\r\nexport default DettaglioDelegaFromScadenziarioRoute;\r\n","/* eslint-disable no-nested-ternary */\r\nimport React, { } from 'react';\r\nimport { Toolbar } from 'framework-ui-components/Components/V2';\r\nimport PropTypes from 'prop-types';\r\nimport { useHistory } from 'react-router-dom';\r\nimport { useSelector } from 'react-redux';\r\nimport { NOOP } from 'framework-ui-components/utils/const';\r\nimport { tributiContribuenteUrl } from '../../models/urls';\r\nimport { addParamVisualizzazioneToUrl } from '../../utils/urls';\r\n\r\nconst ToolbarDiProva = ({ breadcrumbs, children, noBack }) => {\r\n const nominativo = useSelector((store) => store.soggetto.nominativo);\r\n const soggetto = useSelector((store) => store.soggetto);\r\n const appParamVisualizzazione = useSelector((store) => !!store.appParams.visualizzazione);\r\n const codiceUfficioOperatore = useSelector((store) => store.appParams.codiceUfficioOperatore);\r\n const annoCampagnaServizioEsterno = useSelector((store) => store.appParams.annoCampagnaServizioEsterno);\r\n\r\n const [penultimo, ultimo] = ['F24', nominativo].slice(-2);\r\n const history = useHistory();\r\n\r\n const selezionaBreadcrumb = (breadcrumb) => {\r\n if (breadcrumb.startsWith('Scadenzario')) {\r\n return history.push(appParamVisualizzazione\r\n ? addParamVisualizzazioneToUrl(`/Scadenzario${annoCampagnaServizioEsterno ? `/${annoCampagnaServizioEsterno}` : ''}`, codiceUfficioOperatore)\r\n : `/Scadenzario${annoCampagnaServizioEsterno ? `/${annoCampagnaServizioEsterno}` : ''}`);\r\n }\r\n\r\n if (breadcrumb === 'Contribuenti') {\r\n return history.push(appParamVisualizzazione\r\n ? addParamVisualizzazioneToUrl('/Contribuenti', codiceUfficioOperatore) : '/Contribuenti');\r\n }\r\n if (breadcrumb === 'F24') {\r\n return history.push(appParamVisualizzazione\r\n ? addParamVisualizzazioneToUrl('/Home', codiceUfficioOperatore) : '/');\r\n }\r\n if (breadcrumb === soggetto.nominativo) {\r\n return history.push(tributiContribuenteUrl(soggetto.codiceFiscale, appParamVisualizzazione, codiceUfficioOperatore));\r\n }\r\n\r\n if (!!breadcrumb && !!breadcrumb.props && !!breadcrumb.props.onClick) {\r\n return breadcrumb.props.onClick();\r\n }\r\n\r\n if (breadcrumb === 'Contribuente') {\r\n // non fa nulla\r\n return null;\r\n }\r\n\r\n return history.push(appParamVisualizzazione\r\n ? addParamVisualizzazioneToUrl('/Contribuenti', codiceUfficioOperatore) : '/');\r\n };\r\n\r\n return (\r\n selezionaBreadcrumb(penultimo) : NOOP}\r\n onSelect={({ id }) => id !== ultimo && selezionaBreadcrumb(id)}\r\n breadcrumbs={breadcrumbs.map((x) => ({ id: x, label: x, selectable: true }))}\r\n >\r\n {children}\r\n \r\n );\r\n};\r\n\r\nToolbarDiProva.defaultProps = {\r\n children: null,\r\n breadcrumbs: [],\r\n noBack: false,\r\n};\r\n\r\nToolbarDiProva.propTypes = {\r\n breadcrumbs: PropTypes.arrayOf(PropTypes.node),\r\n children: PropTypes.node,\r\n noBack: PropTypes.bool,\r\n};\r\n\r\nexport default ToolbarDiProva;\r\n","/* eslint-disable max-len */\r\nimport React from 'react';\r\nimport Icon from '../../Icons/Icon';\r\n\r\nexport default Icon(\r\n \r\n \r\n \r\n ,\r\n '0 0 24 24',\r\n 'SearchIcon',\r\n);\r\n","import { WebRequest } from 'framework-ui-components';\r\n\r\nexport const getOttieniAnnualita = (\r\n idStudio,\r\n) => WebRequest.get('HomeF24/OttieniAnnualita', {\r\n idStudio,\r\n});\r\n\r\nexport const getOttieniRiepilogoScadenzario = (idStudio, annualita) => WebRequest.get('HomeF24/OttieniRiepilogoScadenzario', {\r\n idStudio, annualita,\r\n});\r\n\r\nexport const getOttieniRiepilogoDeleghePresentate = (idStudio, annualita) => WebRequest.get('HomeF24/OttieniRiepilogoDeleghePresentate', {\r\n idStudio, annualita,\r\n});\r\n\r\nexport const getOttieniRiepilogoDelegheScartate = (idStudio, annualita) => WebRequest.get('HomeF24/OttieniRiepilogoDelegheScartate', {\r\n idStudio, annualita,\r\n});\r\n\r\nexport const getCercaContribuenti = (term, idStudio) => WebRequest.get('Contribuenti/CercaContribuenti', {\r\n term, idStudio,\r\n});\r\n","import { WebRequest } from 'framework-ui-components';\r\n\r\nconst getOttieniContribuentePersonaFisica = (idStudio, codiceFiscale) => WebRequest.get('/Contribuenti/OttieniPersonaFisica', {\r\n idStudio,\r\n codiceFiscale,\r\n});\r\n\r\nconst getOttieniContribuentePersonaGiuridica = (idStudio, codiceFiscale) => WebRequest.get('/Contribuenti/OttieniPersonaGiuridica', {\r\n idStudio,\r\n codiceFiscale,\r\n});\r\n\r\nconst getVerificaCodiceFiscale = (cf) => WebRequest.get('/Anagrafica/VerificaCodiceFiscale', {\r\n cf,\r\n});\r\n\r\nconst postCreaContribuentePersonaFisica = (command) => WebRequest.post('/Contribuenti/CreaPersonaFisica', command);\r\n\r\nconst postCreaContribuentePersonaGiuridica = (command) => WebRequest.post('/Contribuenti/CreaPersonaGiuridica', command);\r\n\r\nconst postAggiungiDatiEsoneroISA = (command) => WebRequest.post('/Contribuenti/AggiungiDatiEsoneroISA', command);\r\n\r\nconst postModificaDatiEsoneroISA = (command) => WebRequest.post('/Contribuenti/ModificaDatiEsoneroISA', command);\r\n\r\nconst postEliminaDatiEsoneroISA = (command) => WebRequest.post('/Contribuenti/EliminaDatiEsoneroISA', command);\r\n\r\nconst postAggiungiCodiceSIA = (command) => WebRequest.post('/Contribuenti/AggiungiCodiceSIA', command);\r\n\r\nconst postModificaCodiceSIA = (command) => WebRequest.post('/Contribuenti/ModificaCodiceSIA', command);\r\n\r\nconst postEliminaCodiceSia = (command) => WebRequest.post('/Contribuenti/EliminaCodiceSIA', command);\r\n\r\nconst postAggiornaDatiDichiarativo = (command) => WebRequest.post('/Contribuenti/AggiornaDatiDichiarativo ', command);\r\n\r\nconst postEliminaDatiDichiarativo = (command) => WebRequest.post('/Contribuenti/EliminaDatiDichiarativo', command);\r\n\r\nconst getOttieniDatiEsoneroISA = (idContribuente) => WebRequest.get('/Contribuenti/OttieniDatiEsoneroISA', { idContribuente });\r\n\r\nconst getOttieniScaglioniEsoneroISA = () => WebRequest.get('/Contribuenti/OttieniScaglioniEsoneroISA');\r\n\r\nconst getOttieniDatiDichiarativi = (idContribuente, annoDichiarativo) => WebRequest.get(\r\n '/Contribuenti/OttieniDatiDichiarativi',\r\n { idContribuente, annoDichiarativo },\r\n);\r\n\r\nexport {\r\n getOttieniContribuentePersonaFisica,\r\n getOttieniContribuentePersonaGiuridica,\r\n getVerificaCodiceFiscale,\r\n getOttieniDatiEsoneroISA,\r\n getOttieniDatiDichiarativi,\r\n getOttieniScaglioniEsoneroISA,\r\n postCreaContribuentePersonaFisica,\r\n postCreaContribuentePersonaGiuridica,\r\n postAggiungiDatiEsoneroISA,\r\n postModificaDatiEsoneroISA,\r\n postEliminaDatiEsoneroISA,\r\n postAggiungiCodiceSIA,\r\n postModificaCodiceSIA,\r\n postEliminaCodiceSia,\r\n postAggiornaDatiDichiarativo,\r\n postEliminaDatiDichiarativo,\r\n};\r\n","import React, { useCallback, useEffect } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Autocomplete, DatePicker, Heading, Input, Restriction, Validation,\r\n} from 'framework-ui-components';\r\nimport TemplateGrid from '../../../components/TemplateGrid/TemplateGrid';\r\n\r\nconst SezioneDatiAnagraficiPersonaFisica = ({\r\n presetForm,\r\n valutaEsistenzaAnagrafica,\r\n datiAnagraficiEditabili,\r\n dataDiNascitaEditabile,\r\n partitaIvaEditabile,\r\n// idEnte,\r\n// campiSpecifici,\r\n// idCodiceTributo,\r\n// periodoDa,\r\n// periodoA,\r\n// annoRiferimentoDa,\r\n// erroreImportoLimitato,\r\n// limiteUnico,\r\n}) => (\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n);\r\n\r\nSezioneDatiAnagraficiPersonaFisica.defaultProps = {\r\n// annoRiferimentoDa: 0,\r\n// erroreImportoLimitato: false,\r\n};\r\n\r\nSezioneDatiAnagraficiPersonaFisica.propTypes = {\r\n presetForm: PropTypes.func.isRequired,\r\n valutaEsistenzaAnagrafica: PropTypes.func.isRequired,\r\n datiAnagraficiEditabili: PropTypes.bool.isRequired,\r\n dataDiNascitaEditabile: PropTypes.bool.isRequired,\r\n partitaIvaEditabile: PropTypes.bool.isRequired,\r\n// campiSpecifici: PropTypes.arrayOf(PropTypes.object).isRequired,\r\n// idCodiceTributo: PropTypes.number.isRequired,\r\n// periodoDa: PropTypes.string.isRequired,\r\n// periodoA: PropTypes.string.isRequired,\r\n// idEnte: PropTypes.number.isRequired,\r\n// annoRiferimentoDa: PropTypes.number,\r\n// erroreImportoLimitato: PropTypes.bool,\r\n// limiteUnico: PropTypes.bool.isRequired,\r\n};\r\n\r\nexport default SezioneDatiAnagraficiPersonaFisica;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Autocomplete, Heading, Input, Restriction, Validation,\r\n} from 'framework-ui-components';\r\nimport TemplateGrid from '../../../components/TemplateGrid/TemplateGrid';\r\nimport { cercaNatureGiuridiche } from '../../../apis/anagrafiche';\r\n\r\nconst SezioneDatiAnagraficiPersonaFisica = ({\r\n presetForm,\r\n valutaEsistenzaAnagrafica,\r\n datiAnagraficiEditabili,\r\n dataDiNascitaEditabile,\r\n partitaIvaEditabile,\r\n onChangeAutocompletes,\r\n// idEnte,\r\n// campiSpecifici,\r\n// idCodiceTributo,\r\n// periodoDa,\r\n// periodoA,\r\n// annoRiferimentoDa,\r\n// erroreImportoLimitato,\r\n// limiteUnico,\r\n}) => (\r\n
    \r\n \r\n \r\n \r\n \r\n\r\n \r\n onChangeAutocompletes('NaturaGiuridica', val)}\r\n validations={[Validation.DefaultRules.required]}\r\n />\r\n \r\n
    \r\n);\r\n\r\nSezioneDatiAnagraficiPersonaFisica.defaultProps = {\r\n// annoRiferimentoDa: 0,\r\n// erroreImportoLimitato: false,\r\n};\r\n\r\nSezioneDatiAnagraficiPersonaFisica.propTypes = {\r\n presetForm: PropTypes.func.isRequired,\r\n valutaEsistenzaAnagrafica: PropTypes.func.isRequired,\r\n datiAnagraficiEditabili: PropTypes.bool.isRequired,\r\n dataDiNascitaEditabile: PropTypes.bool.isRequired,\r\n partitaIvaEditabile: PropTypes.bool.isRequired,\r\n onChangeAutocompletes: PropTypes.func.isRequired,\r\n// campiSpecifici: PropTypes.arrayOf(PropTypes.object).isRequired,\r\n// idCodiceTributo: PropTypes.number.isRequired,\r\n// periodoDa: PropTypes.string.isRequired,\r\n// periodoA: PropTypes.string.isRequired,\r\n// idEnte: PropTypes.number.isRequired,\r\n// annoRiferimentoDa: PropTypes.number,\r\n// erroreImportoLimitato: PropTypes.bool,\r\n// limiteUnico: PropTypes.bool.isRequired,\r\n};\r\n\r\nexport default SezioneDatiAnagraficiPersonaFisica;\r\n","/* eslint-disable no-nested-ternary */\r\nimport React, {\r\n useState, useEffect, useCallback, useRef, useMemo,\r\n} from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Form,\r\n} from 'framework-ui-components';\r\nimport {\r\n Modal, Button, FeedbackPanel, Panel,\r\n} from 'framework-ui-components/Components/V2';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport { useHistory } from 'react-router';\r\nimport Log, { logApiError } from 'framework-taskforce/utils/log';\r\nimport { isEmptyObject } from 'framework-taskforce/utils/object';\r\nimport { getSegnalazioneError } from 'framework-taskforce/models/segnalazioni';\r\nimport {\r\n getOttieniContribuentePersonaGiuridica,\r\n postCreaContribuentePersonaFisica,\r\n postCreaContribuentePersonaGiuridica,\r\n getOttieniContribuentePersonaFisica,\r\n} from '../../../apis/anagraficaContribuente';\r\nimport {\r\n getOttieniDatiDaCodiceFiscale,\r\n getOttieniIndirizzoResidenzaFiscale,\r\n getOttieniIndirizzoSedeLegale,\r\n postAggiungiIndirizzo,\r\n postModificaIndirizzo,\r\n} from '../../../apis/anagrafiche';\r\nimport { TIPO_INDIRIZZO, TIPO_PERSONA } from '../../../models/anagrafica';\r\nimport SezioneDatiAnagraficiPersonaFisica from './SezioneDatiAnagraficiPersonaFisica';\r\nimport SezioneSedeLegale from './SezioneSedeLegale';\r\nimport { dettaglioContribuenteUrl, tributiContribuenteFromHomeUrl } from '../../../models/urls';\r\nimport SezioneDatiAnagraficiPersonaGiuridica from './SezioneDatiAnagraficiPersonaGiuridica';\r\nimport SezioneResidenza from './SezioneResidenza';\r\nimport SegnalazioniViewer from '../../../components/custom/SegnalazioniViewer';\r\nimport { setSoggettoAction } from '../../../actions/soggetto';\r\nimport { getOttieniContribuente } from '../../../apis/contribuente';\r\n\r\nconst ModaleCreazioneContribuente = ({\r\n onClose,\r\n tipologia,\r\n show,\r\n fromHome,\r\n}) => {\r\n const codiceUfficioSelezionato = useSelector((store) => store.appParams.ufficioSelezionato);\r\n const studioSelezionato = useSelector((store) => store.appParams.studioSelezionato);\r\n\r\n const history = useHistory();\r\n const dispatch = useDispatch();\r\n\r\n const [loading, setLoading] = useState(false);\r\n const [isFormValid, setIsFormValid] = useState(false);\r\n const [esito, setEsito] = useState(null);\r\n const [formData, setFormData] = useState({ });\r\n const [codiceFiscaleOld, setCodiceFiscaleOld] = useState(formData.CodiceFiscale);\r\n const [segnalazioni, setSegnalazioni] = useState([]);\r\n const [datiAnagraficiEditabili, setDatiAnagraficiEditabili] = useState(false);\r\n const [residenzaSedeLegaleEditabili, setResidenzaSedeLegaleEditabili] = useState(true);\r\n const [dataDiNascitaEditabile, setDataDiNascitaEditabile] = useState(true);\r\n const [partitaIvaEditabile, setPartitaIvaEditabile] = useState(true);\r\n const [showPanelCompletaDatiResidenza, setShowPanelCompletaDatiResidenza] = useState(false);\r\n\r\n const formRef = useRef();\r\n\r\n const presetForm = useCallback(({ FormErrors, ...datoModificato }) => {\r\n if (!formData || isEmptyObject(datoModificato)) return;\r\n setCodiceFiscaleOld(formData.CodiceFiscale);\r\n\r\n const newStato = { ...formData, ...datoModificato };\r\n\r\n setFormData(newStato);\r\n }, [formData]);\r\n\r\n useEffect(() => {\r\n if (formData && formData.IdContribuente) {\r\n setPartitaIvaEditabile(false);\r\n }\r\n }, [formData]);\r\n\r\n useEffect(() => {\r\n if (formData && formData.IdContribuente && residenzaSedeLegaleEditabili) {\r\n setShowPanelCompletaDatiResidenza(true);\r\n } else {\r\n setShowPanelCompletaDatiResidenza(false);\r\n }\r\n }, [formData, residenzaSedeLegaleEditabili, showPanelCompletaDatiResidenza]);\r\n\r\n const recuperaResidenzaOSedeLegale = useCallback((idAnagrafica, datiAnagrafici) => {\r\n if (idAnagrafica) {\r\n (tipologia === TIPO_PERSONA.PERSONA_FISICA ? getOttieniIndirizzoResidenzaFiscale : getOttieniIndirizzoSedeLegale)(idAnagrafica)\r\n .then((res) => {\r\n if (res.Success && res.Result) {\r\n presetForm({\r\n ...datiAnagrafici,\r\n Id: res.Result.Id,\r\n TipoIndirizzo: res.Result.TipoIndirizzo,\r\n TipoPersona: res.Result.TipoPersona,\r\n IdComune: res.Result.IdComune,\r\n IdToponimo: res.Result.IdToponimo,\r\n DescrizioneTipoIndirizzo: res.Result.DescrizioneTipoIndirizzo,\r\n CodiceComuneDescrizioneComposta: res.Result.Comune,\r\n ComuneCodiceProvincia: res.Result.Provincia,\r\n IndirizzoDescrizione: res.Result.Descrizione,\r\n NumeroCivico: res.Result.NumeroCivico,\r\n Frazione: res.Result.Frazione,\r\n ToponimoDescrizione: res.Result.Toponimo,\r\n Cap: res.Result.Cap,\r\n });\r\n if (res.Result.NumeroCivico) {\r\n setResidenzaSedeLegaleEditabili(false);\r\n }\r\n } else {\r\n presetForm({\r\n ...datiAnagrafici,\r\n });\r\n setResidenzaSedeLegaleEditabili(true);\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n presetForm({\r\n ...datiAnagrafici,\r\n });\r\n setResidenzaSedeLegaleEditabili(true);\r\n\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n } else {\r\n presetForm({\r\n ...datiAnagrafici,\r\n Id: null,\r\n TipoIndirizzo: null,\r\n TipoPersona: null,\r\n IdComune: null,\r\n IdToponimo: null,\r\n DescrizioneTipoIndirizzo: null,\r\n CodiceComuneDescrizioneComposta: null,\r\n ComuneCodiceProvincia: null,\r\n IndirizzoDescrizione: null,\r\n NumeroCivico: null,\r\n Frazione: null,\r\n ToponimoDescrizione: null,\r\n Cap: null,\r\n });\r\n\r\n setLoading(false);\r\n }\r\n }, [tipologia, presetForm]);\r\n\r\n // controlla l'esistenza di una anagrafica\r\n const esisteOttieniAnagrafica = useCallback((codiceFiscale) => {\r\n setLoading(true);\r\n (tipologia === TIPO_PERSONA.PERSONA_FISICA\r\n ? getOttieniContribuentePersonaFisica : getOttieniContribuentePersonaGiuridica)(studioSelezionato, codiceFiscale)\r\n .then((res) => {\r\n if (res.Success && res.Result) {\r\n // caso particolare partita iva editabile perchè non in anagrafica unica\r\n if (!res.Result.PartitaIva) {\r\n setPartitaIvaEditabile(true);\r\n } else {\r\n setPartitaIvaEditabile(false);\r\n }\r\n\r\n // Esiste l'anagrafica e valorizzo i dati\r\n const datiAnagrafici = {\r\n // Contribuente\r\n IdContribuente: res.Result.IdContribuente,\r\n CodiceSIA: res.Result.CodiceSIA,\r\n\r\n // Anagrafica\r\n IdAnagrafica: res.Result.IdAnagrafica,\r\n CodiceFiscale: res.Result.CodiceFiscale,\r\n PartitaIva: tipologia === TIPO_PERSONA.PERSONA_GIURIDICA ? (res.Result.PartitaIva || res.Result.CodiceFiscale) : res.Result.PartitaIva,\r\n Cognome: res.Result.Cognome,\r\n Nome: res.Result.Nome,\r\n Sesso: res.Result.Sesso,\r\n DataDiNascita: res.Result.DataDiNascita,\r\n IdLuogoDiNascita: res.Result.IdLuogoDiNascita,\r\n RagioneSociale: res.Result.RagioneSociale,\r\n IdNaturaGiuridica: res.Result.IdNaturaGiuridica,\r\n NaturaGiuridica: res.Result.NaturaGiuridica,\r\n };\r\n\r\n // caso particolare data di nascita editabile perchè non in anagrafica unica\r\n if (res.Result.DataDiNascita === '0001-01-01T00:00:00Z' || !res.Result.DataDiNascita) {\r\n getOttieniDatiDaCodiceFiscale(codiceFiscale)\r\n .then((response) => {\r\n if (response.Success) {\r\n datiAnagrafici.Sesso = response.Result.Sesso;\r\n datiAnagrafici.DataDiNascita = response.Result.DataDiNascita;\r\n datiAnagrafici.IdLuogoDiNascita = response.Result.IdCodiceComuneDiNascita;\r\n }\r\n\r\n setDatiAnagraficiEditabili(false);\r\n recuperaResidenzaOSedeLegale(res.Result.IdAnagrafica, datiAnagrafici);\r\n }).catch((err) => {\r\n Log.error(err);\r\n });\r\n setDataDiNascitaEditabile(true);\r\n } else {\r\n setDataDiNascitaEditabile(false);\r\n setDatiAnagraficiEditabili(false);\r\n recuperaResidenzaOSedeLegale(res.Result.IdAnagrafica, datiAnagrafici);\r\n }\r\n } else {\r\n getOttieniDatiDaCodiceFiscale(codiceFiscale)\r\n .then((response) => {\r\n if (response.Success) {\r\n presetForm({\r\n // Contribuente\r\n IdContribuente: null,\r\n CodiceSIA: null,\r\n\r\n // Anagrafica\r\n IdAnagrafica: null,\r\n CodiceFiscale: codiceFiscale,\r\n PartitaIva: tipologia === TIPO_PERSONA.PERSONA_GIURIDICA ? codiceFiscale : null,\r\n Cognome: null,\r\n Nome: null,\r\n Sesso: response.Result.Sesso,\r\n DataDiNascita: response.Result.DataDiNascita,\r\n IdLuogoDiNascita: response.Result.IdCodiceComuneDiNascita,\r\n RagioneSociale: null,\r\n IdNaturaGiuridica: null,\r\n NaturaGiuridica: null,\r\n });\r\n } else {\r\n presetForm({\r\n // Contribuente\r\n IdContribuente: null,\r\n CodiceSIA: null,\r\n\r\n // Anagrafica\r\n IdAnagrafica: null,\r\n CodiceFiscale: codiceFiscale,\r\n PartitaIva: tipologia === TIPO_PERSONA.PERSONA_GIURIDICA ? codiceFiscale : null,\r\n Cognome: null,\r\n Nome: null,\r\n Sesso: null,\r\n DataDiNascita: null,\r\n IdLuogoDiNascita: null,\r\n RagioneSociale: null,\r\n IdNaturaGiuridica: null,\r\n NaturaGiuridica: null,\r\n });\r\n }\r\n }).catch((err) => {\r\n Log.error(err);\r\n });\r\n setLoading(false);\r\n setDatiAnagraficiEditabili(true);\r\n setDataDiNascitaEditabile(true);\r\n setPartitaIvaEditabile(true);\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n }, [tipologia, studioSelezionato, recuperaResidenzaOSedeLegale, presetForm]);\r\n\r\n const resetDati = useCallback(() => {\r\n setLoading(false);\r\n setIsFormValid(false);\r\n setSegnalazioni([]);\r\n setEsito(null);\r\n setFormData({});\r\n setDatiAnagraficiEditabili(true);\r\n setResidenzaSedeLegaleEditabili(true);\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (show) {\r\n resetDati();\r\n }\r\n }, [resetDati, show]);\r\n\r\n useEffect(() => {\r\n if (!show) {\r\n // reset data on close\r\n resetDati();\r\n }\r\n }, [resetDati, setFormData, show]);\r\n\r\n const onChangeAutocompletes = (campo, elemento) => {\r\n const autocompleteVals = [];\r\n\r\n if (campo === 'CodiceComune') {\r\n autocompleteVals.IdComune = elemento.Id;\r\n autocompleteVals.CodiceComuneDescrizioneComposta = elemento.DescrizioneComposta;\r\n autocompleteVals.ComuneDescrizione = elemento.Descrizione;\r\n autocompleteVals.ComuneCodiceProvincia = elemento.CodiceProvincia;\r\n autocompleteVals.Cap = elemento.Cap;\r\n }\r\n if (campo === 'Toponimo') {\r\n autocompleteVals.IdToponimo = elemento.Id_Toponimo;\r\n autocompleteVals.ToponimoDescrizione = elemento.Descrizione;\r\n }\r\n if (campo === 'NaturaGiuridica') {\r\n autocompleteVals.IdNaturaGiuridica = elemento.IdNaturaGiuridica;\r\n autocompleteVals.NaturaGiuridica = elemento.Descrizione;\r\n }\r\n\r\n presetForm(autocompleteVals);\r\n };\r\n\r\n const valutaEsistenzaAnagrafica = useCallback((event) => {\r\n if (formRef.current.errori.CodiceFiscale.length === 0) {\r\n if (event && event.target && (event.target.value.length === 11 || event.target.value.length === 16)\r\n && codiceFiscaleOld !== event.target.value) {\r\n esisteOttieniAnagrafica(event.target.value);\r\n }\r\n } else if (event && event.target && event.target.value) {\r\n setFormData({ CodiceFiscale: event.target.value });\r\n setDatiAnagraficiEditabili(true);\r\n setResidenzaSedeLegaleEditabili(true);\r\n }\r\n }, [codiceFiscaleOld, esisteOttieniAnagrafica]);\r\n\r\n const creaContribuente = useCallback(() => {\r\n if (formData.IdContribuente) {\r\n history.push((fromHome ? tributiContribuenteFromHomeUrl : dettaglioContribuenteUrl)(formData.CodiceFiscale, tipologia));\r\n return;\r\n }\r\n\r\n setLoading(true);\r\n\r\n const oggettoCreazione = {\r\n IdStudio: studioSelezionato,\r\n CodiceUfficio: codiceUfficioSelezionato,\r\n Indirizzo: formData.IndirizzoDescrizione,\r\n ...formData,\r\n };\r\n\r\n (tipologia === TIPO_PERSONA.PERSONA_FISICA\r\n ? postCreaContribuentePersonaFisica : postCreaContribuentePersonaGiuridica)(oggettoCreazione)\r\n .then((res) => {\r\n if (res.Success) {\r\n getOttieniContribuente(\r\n studioSelezionato,\r\n oggettoCreazione.CodiceFiscale,\r\n )\r\n .then((response) => {\r\n if (response.Success) {\r\n dispatch(setSoggettoAction({\r\n idAnagrafica: response.Result.IdAnagrafica,\r\n idContribuente: response.Result.IdContribuente,\r\n codiceFiscale: response.Result.CodiceFiscale,\r\n nominativo: response.Result.Denominazione,\r\n tipoPersona: response.Result.TipoPersona,\r\n haPartitaIva: !!response.Result.PartitaIva,\r\n partitaIva: response.Result.PartitaIva,\r\n }));\r\n if (fromHome) {\r\n history.push(tributiContribuenteFromHomeUrl(oggettoCreazione.CodiceFiscale));\r\n } else {\r\n history.push(dettaglioContribuenteUrl(oggettoCreazione.CodiceFiscale, tipologia));\r\n }\r\n } else {\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n })\r\n .catch((e) => {\r\n });\r\n } else {\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n }, [codiceUfficioSelezionato, dispatch, formData, fromHome, history, studioSelezionato, tipologia]);\r\n\r\n const aggiungiSoloResidenza = useCallback(() => {\r\n if (!residenzaSedeLegaleEditabili) {\r\n history.push((fromHome ? tributiContribuenteFromHomeUrl : dettaglioContribuenteUrl)(formData.CodiceFiscale, tipologia));\r\n return;\r\n }\r\n\r\n setShowPanelCompletaDatiResidenza(true);\r\n setLoading(true);\r\n\r\n const oggettoIndirizzo = {\r\n IdAnagrafica: formData.IdAnagraficaRappresentante,\r\n IdTipoIndirizzo: tipologia === TIPO_PERSONA.PERSONA_FISICA ? TIPO_INDIRIZZO.RESIDENZA_FISCALE : TIPO_INDIRIZZO.SEDE_LEGALE,\r\n IdComune: formData.IdComune,\r\n IdToponimo: formData.IdToponimo,\r\n Indirizzo: formData.IndirizzoDescrizione,\r\n Descrizione: formData.IndirizzoDescrizione,\r\n NumeroCivico: formData.NumeroCivico,\r\n Cap: formData.Cap,\r\n Frazione: formData.Frazione,\r\n };\r\n\r\n if (formData.Id) {\r\n // Modifica indirizzo\r\n const oggettoModificaIndirizzo = {\r\n ...oggettoIndirizzo,\r\n IdIndirizzo: formData.Id,\r\n IdAnagrafica: formData.IdAnagrafica,\r\n };\r\n\r\n postModificaIndirizzo(oggettoModificaIndirizzo)\r\n .then((res) => {\r\n if (res.Success) {\r\n history.push((fromHome ? tributiContribuenteFromHomeUrl : dettaglioContribuenteUrl)(formData.CodiceFiscale, tipologia));\r\n } else {\r\n history.push('/errore');\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n } else {\r\n const oggettoCreazione = {\r\n IdStudio: studioSelezionato,\r\n IdAnagrafica: formData.IdAnagrafica,\r\n IdTipoIndirizzo: tipologia === TIPO_PERSONA.PERSONA_FISICA ? TIPO_INDIRIZZO.RESIDENZA_FISCALE : TIPO_INDIRIZZO.SEDE_LEGALE,\r\n IdComune: formData.IdComune,\r\n IdToponimo: formData.IdToponimo,\r\n NumeroCivico: formData.NumeroCivico,\r\n Cap: formData.Cap,\r\n Frazione: formData.Frazione,\r\n Descrizione: formData.IndirizzoDescrizione,\r\n };\r\n\r\n postAggiungiIndirizzo(oggettoCreazione)\r\n .then((res) => {\r\n if (res.Success) {\r\n history.push((fromHome ? tributiContribuenteFromHomeUrl : dettaglioContribuenteUrl)(formData.CodiceFiscale, tipologia));\r\n } else {\r\n history.push('/errore');\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n }\r\n }, [formData, fromHome, history, residenzaSedeLegaleEditabili, studioSelezionato, tipologia]);\r\n\r\n return (\r\n onClose(esito)}\r\n className=\"contribuenti--modale-creazione\"\r\n initialPos={{ x: 'auto', y: window.innerHeight * 0.1 }}\r\n >\r\n \r\n Nuovo contribuente\r\n \r\n \r\n setIsFormValid(validity)}\r\n >\r\n {!loading && segnalazioni.length > 0\r\n ? (\r\n \r\n
      \r\n {segnalazioni.map((segnalazione, idx) => (\r\n {segnalazione.msg}\r\n \r\n ))}\r\n
    \r\n
    \r\n )}\r\n type=\"alarm\"\r\n />\r\n )\r\n : (\r\n \r\n {segnalazioni && segnalazioni.length > 0 && (\r\n \r\n )}\r\n {tipologia === TIPO_PERSONA.PERSONA_FISICA ? (\r\n \r\n ) : (\r\n \r\n )}\r\n {showPanelCompletaDatiResidenza && (\r\n
    \r\n \r\n
    \r\n )}\r\n
    \r\n {tipologia === TIPO_PERSONA.PERSONA_FISICA ? (\r\n \r\n ) : (\r\n \r\n )}\r\n
    \r\n
    \r\n )}\r\n \r\n \r\n \r\n {segnalazioni.length === 0 ? (\r\n (!formData.IdContribuente ? creaContribuente() : aggiungiSoloResidenza())}\r\n emphasis={Button.Emphasis.HIGH}\r\n primary\r\n disabled={!isFormValid}\r\n running={loading}\r\n >\r\n {formData.IdContribuente ? (!residenzaSedeLegaleEditabili ? 'VAI A DETTAGLIO' : 'COMPLETA I DATI E VAI AL DETTAGLIO') : 'CREA'}\r\n \r\n ) : (\r\n setSegnalazioni([])}\r\n emphasis={Button.Emphasis.HIGH}\r\n primary\r\n disabled={!isFormValid}\r\n running={loading}\r\n >\r\n RIPROVA\r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nModaleCreazioneContribuente.defaultProps = {\r\n fromHome: false,\r\n};\r\n\r\nModaleCreazioneContribuente.propTypes = {\r\n onClose: PropTypes.func.isRequired,\r\n show: PropTypes.bool.isRequired,\r\n tipologia: PropTypes.number.isRequired,\r\n fromHome: PropTypes.bool,\r\n};\r\n\r\nexport default ModaleCreazioneContribuente;\r\n","import React, { useMemo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport Highlighter from '../../../Highlighter/Highlighter';\r\n\r\n/**\r\n * Componente di una lista\r\n*/\r\nconst Item = ({ title, description, highlightedText }) => {\r\n const titleComp = useMemo(() => {\r\n const clazz = 'v2-select-field__item-content-title text-regular';\r\n if (typeof title === 'string' && highlightedText) {\r\n return ;\r\n }\r\n return {title};\r\n }, [highlightedText, title]);\r\n\r\n const descriptionComp = useMemo(() => {\r\n const clazz = 'v2-select-field__item-content-description text-regular';\r\n if (typeof description === 'string' && highlightedText) {\r\n return ;\r\n }\r\n return {description};\r\n }, [highlightedText, description]);\r\n\r\n return (\r\n
    \r\n {titleComp}\r\n {descriptionComp}\r\n
    \r\n );\r\n};\r\n\r\nItem.propTypes = {\r\n /** Titolo del componente, tipicamente una stringa */\r\n title: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\r\n\r\n /** Descrizione del componente, tipicamente una stringa */\r\n description: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\r\n\r\n /**\r\nValore di testo da evidenziare.\r\nIl testo verrà evidenziato su title o description SOLO se i componenti sono delle stringhe.\r\n */\r\n highlightedText: PropTypes.string,\r\n};\r\n\r\nItem.defaultProps = {\r\n title: undefined,\r\n description: undefined,\r\n highlightedText: undefined,\r\n};\r\n\r\nexport default Item;\r\n","import { useRef } from 'react';\r\nimport { getRandomId } from '../../Utils/baseComponentHelper';\r\n\r\n/**\r\n * Crea un id univoco per il componente\r\n * @returns {string} component id\r\n */\r\nfunction useComponentId() {\r\n const idRef = useRef(getRandomId());\r\n return idRef.current;\r\n}\r\n\r\nexport default useComponentId;\r\n","import React from 'react';\r\n\r\nimport BadgeAlarmIcon from '../../Icons/BadgeAlarmIcon';\r\nimport BadgeSuccessIcon from '../../Icons/BadgeSuccessIcon';\r\nimport BadgeWarningIcon from '../../Icons/BadgeWarningIcon';\r\nimport Spinner from '../../Spinner';\r\n\r\nexport const InputStates = {\r\n alarm: 'alarm',\r\n success: 'success',\r\n warning: 'warning',\r\n loading: 'loading',\r\n};\r\n\r\nexport const InputStatesList = [InputStates.alarm, InputStates.success, InputStates.warning, InputStates.loading];\r\n\r\nexport function createBadgeStatus(state) {\r\n switch (state) {\r\n case InputStates.loading: return ;\r\n case InputStates.alarm: return ;\r\n case InputStates.warning: return ;\r\n case InputStates.success: return ;\r\n default:\r\n return null;\r\n }\r\n}\r\n\r\nexport const SelectStates = {\r\n ...InputStates,\r\n loadingPage: 'loading-page',\r\n};\r\n\r\nexport const SelectStatesList = [SelectStates.alarm, SelectStates.success, SelectStates.warning, SelectStates.loading, SelectStates.loadingPage];\r\n","/* eslint-disable jsx-a11y/no-noninteractive-element-interactions */\r\n/* eslint-disable jsx-a11y/click-events-have-key-events */\r\nimport React, { useMemo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\nimport Button from '../../Button/Button';\r\nimport { NOOP } from '../../../../utils/const';\r\nimport { createBadgeStatus } from '../common';\r\nimport EllipsisText from '../../../EllipsisText/EllipsisText';\r\n\r\nfunction getHelperTextClassname(componentHeight) {\r\n return cns(\r\n 'v2-form-field-frame__message',\r\n 'v2-form-field-frame__message--helper',\r\n {\r\n 'v2-form-field-frame__message--helper-height-placeholder': componentHeight === 'with-helper-text',\r\n },\r\n );\r\n}\r\n\r\n/**\r\n * Costruisce un bordo attorno ad un componente di input con titolo.\r\n*/\r\nconst FormFieldFrame = ({\r\n className, onClick, children, title, titleIcon, state, stateMessage, helperText,\r\n icon, disabled, readOnly, action, onActionClick, rootProps, size, componentHeight,\r\n}) => {\r\n const badgeState = useMemo(() => createBadgeStatus(state), [state]);\r\n\r\n // se faccio click \"in giro\" do il focus all'input\r\n const handleActionClick = (evt) => {\r\n // evito la propagazione che darebbe il focus all'input\r\n evt.stopPropagation();\r\n onActionClick(evt);\r\n };\r\n\r\n const legendComp = useMemo(() => (\r\n \r\n {title || ' '} \r\n {titleIcon &&
    {titleIcon}
    }\r\n
    \r\n ), [title, titleIcon]);\r\n\r\n const existAction = !readOnly && action;\r\n\r\n return (\r\n
    \r\n
    \r\n {legendComp}\r\n
    \r\n {icon &&
    {icon}
    }\r\n {children}\r\n {badgeState &&
    {badgeState}
    }\r\n {existAction &&
    }\r\n {existAction && (\r\n \r\n )}\r\n
    \r\n
    \r\n {!readOnly && stateMessage && {stateMessage}}\r\n {!readOnly && helperText && {helperText}}\r\n
    \r\n );\r\n};\r\n\r\nFormFieldFrame.propTypes = {\r\n /** Componente di input */\r\n children: PropTypes.node.isRequired,\r\n\r\n /**\r\nModalità di calcolo dell'altezza del componente.\r\nSe uguale a 'with-helper-text' l'altezza del componente è comprensiva del messaggio helperText.\r\n */\r\n componentHeight: PropTypes.oneOf(['minimal', 'with-helper-text']),\r\n\r\n /** Funzione invocata al click per richiede il focus del componente */\r\n onClick: PropTypes.func,\r\n\r\n /** Icona rappresentativa del campo */\r\n action: PropTypes.element,\r\n\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n\r\n /** Messaggio di supporto all'utilizzo del componente */\r\n helperText: PropTypes.string,\r\n\r\n /** Icona rappresentativa del campo */\r\n icon: PropTypes.element,\r\n\r\n /** Funzione invocata alla pressione del componente action. restituisce l'evento. */\r\n onActionClick: PropTypes.func,\r\n\r\n /** Presenta il campo disabled */\r\n disabled: PropTypes.bool,\r\n\r\n /** Presenta il campo in modalità sola lettura */\r\n readOnly: PropTypes.bool,\r\n\r\n state: PropTypes.oneOf(['alarm', 'warning', 'success', 'loading']),\r\n\r\n /** Messaggio di descrizione dello stato */\r\n stateMessage: PropTypes.string,\r\n\r\n /** Etichetta del titolo, tipicamente una stringa */\r\n title: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\r\n\r\n /** Icona del titolo, da utilizzare SOLO per info o per tooltip */\r\n titleIcon: PropTypes.element,\r\n\r\n /* Proprietà aggiunte al componente root */\r\n // eslint-disable-next-line react/forbid-prop-types\r\n rootProps: PropTypes.object,\r\n\r\n /** Dimensioni */\r\n size: PropTypes.shape(\r\n {\r\n /**\r\n * Altezza\r\n */\r\n height: PropTypes.string,\r\n /**\r\n * Larghezza\r\n */\r\n width: PropTypes.string,\r\n },\r\n ),\r\n};\r\n\r\nFormFieldFrame.defaultProps = {\r\n action: undefined,\r\n className: undefined,\r\n onActionClick: NOOP,\r\n onClick: NOOP,\r\n readOnly: false,\r\n disabled: false,\r\n state: undefined,\r\n stateMessage: undefined,\r\n title: undefined,\r\n titleIcon: undefined,\r\n icon: undefined,\r\n rootProps: {},\r\n size: {},\r\n helperText: undefined,\r\n componentHeight: 'minimal',\r\n};\r\n\r\nexport default FormFieldFrame;\r\n","import { isUndefinedOrEmpty } from '../../../utils/js';\r\nimport {\r\n formatDate, formatDateRange, formatMonth, parseDate, parseDateRange, parseTime, parseMonthToDate,\r\n} from '../../Utils/dateHelper';\r\nimport { formatValue as formatValueFunc, getPrecision, parse as parseValueFunc } from '../../Utils/numeriHelper';\r\n\r\nconst RANGE_SEP = '...';\r\n\r\nexport const InputFormats = {\r\n capitalize: 'capitalize',\r\n lowercase: 'lowercase',\r\n uppercase: 'uppercase',\r\n number: 'number',\r\n currency: 'currency',\r\n currencyRange: 'currencyRange',\r\n date: 'date',\r\n dateRange: 'dateRange',\r\n month: 'month',\r\n time: 'time',\r\n bool: 'bool',\r\n};\r\n\r\nconst DefaultInputFormatObjects = {\r\n /**\r\n * Data un testo ne normalizza la rappresentazione.\r\n * @param {any} value valore\r\n * @returns {string} valore formattato\r\n */\r\n normalizeText: (value) => value,\r\n /**\r\n * Formatta il valore di un componente Input\r\n * @param {number|string|Date|array} value valore\r\n * @param {number|null|undefined} precision precisione\r\n * @returns {string} ritorna la stringa che rappresenta il valore\r\n */\r\n format: (value, precision) => value,\r\n /**\r\n * Parserizza il valore testuale del componente input ritornando il valore atteso in base al formato.\r\n * @param {string} value valore del componente input\r\n * @param {number|null|undefined} precision precisione\r\n * @returns {number|string|Date|array} value valore\r\n */\r\n parse: (value, precision) => value,\r\n};\r\n\r\nconst InputFormatObjects = {\r\n [InputFormats.capitalize]: {\r\n mapTextTransorm: () => InputFormats.capitalize,\r\n normalizeText: (value) => (typeof value === 'string' ? capitalizeString(value) : ''),\r\n format: (value) => (typeof value === 'string' ? capitalizeString(value) : ''),\r\n parse: (value) => (typeof value === 'string' ? capitalizeString(value) : ''),\r\n\r\n },\r\n [InputFormats.lowercase]: {\r\n mapTextTransorm: () => InputFormats.lowercase,\r\n normalizeText: (value) => (typeof value === 'string' ? value.toLowerCase() : ''),\r\n format: (value) => (typeof value === 'string' ? value.toLowerCase() : ''),\r\n parse: (value) => (typeof value === 'string' ? value.toLowerCase() : ''),\r\n },\r\n [InputFormats.uppercase]: {\r\n mapTextTransorm: () => InputFormats.uppercase,\r\n normalizeText: (value) => (typeof value === 'string' ? value.toUpperCase() : ''),\r\n format: (value) => (typeof value === 'string' ? value.toUpperCase() : ''),\r\n parse: (value) => (typeof value === 'string' ? value.toUpperCase() : ''),\r\n },\r\n [InputFormats.number]: {\r\n normalizeText: (value, precision) => formatNumber(value, precision),\r\n format: (value, precision) => (typeof value === 'number' ? formatValueFunc(value, InputFormats.number, precision) : ''),\r\n parse: (value, precision) => (\r\n typeof value === 'string' && !isUndefinedOrEmpty(value)\r\n ? Number(parseValueFunc(value).toFixed(getPrecision(InputFormats.number, precision)))\r\n : undefined\r\n ),\r\n },\r\n [InputFormats.currency]: {\r\n normalizeText: (value, precision) => formatNumber(value, getPrecision(InputFormats.currency, precision)),\r\n format: (value, precision) => (\r\n typeof value === 'number'\r\n ? formatValueFunc(value, InputFormats.currency, getPrecision(InputFormats.currency, precision))\r\n : ''),\r\n parse: (value, precision) => (\r\n typeof value === 'string' && !isUndefinedOrEmpty(value)\r\n ? Number(parseValueFunc(value).toFixed(getPrecision(InputFormats.currency, precision)))\r\n : undefined),\r\n },\r\n [InputFormats.currencyRange]: {\r\n normalizeText: (value, precision) => formatNumberRange(value, precision),\r\n format: (value, precision) => (Array.isArray(value) ? formatCurrencyRange(value, precision) : value),\r\n parse: (value, precision) => (typeof value === 'string' ? parseCurrencyRange(normalizeTextRagne(value), precision) : value),\r\n },\r\n [InputFormats.date]: {\r\n normalizeText: (value) => (typeof value === 'string' ? value.replace(/[^0-9/]/g, '') : ''),\r\n format: (value) => (value instanceof Date ? formatDate(value.getDate(), value.getMonth() + 1, value.getFullYear(), '/') : value),\r\n parse: (value) => (typeof value === 'string' ? parseDate(value, true, true) : value),\r\n },\r\n [InputFormats.dateRange]: {\r\n normalizeText: (value) => (typeof value === 'string' ? value.replace(/[^0-9 /-\\s]/g, '') : ''),\r\n format: (value) => (Array.isArray(value) ? formatDateRange(value[0], value[1]) : value),\r\n parse: (value) => (typeof value === 'string' ? parseDateRange(normalizeTextRagne(value), true, true, undefined, RANGE_SEP) : value),\r\n },\r\n [InputFormats.month]: {\r\n normalizeText: (value) => (typeof value === 'string' ? value.replace(/[^0-9/]/g, '') : ''),\r\n format: (value) => (value instanceof Date ? formatMonth(value.getMonth() + 1, value.getFullYear(), '/') : value),\r\n parse: (value) => (typeof value === 'string' ? parseMonthToDate(value, true, true) : value),\r\n },\r\n [InputFormats.time]: {\r\n normalizeText: (value) => (typeof value === 'string' ? value.replace(/[^0-9:]/g, '') : ''),\r\n format: (value) => value,\r\n parse: (value) => (typeof value === 'string' ? parseTime(value) : value),\r\n },\r\n [InputFormats.bool]: {\r\n format: (value) => (typeof value === 'boolean' ? `${value}` : ''),\r\n parse: (value) => (\r\n typeof value === 'string' && !isUndefinedOrEmpty(value)\r\n ? value === `${true}`\r\n : undefined\r\n ),\r\n },\r\n};\r\n\r\n/**\r\n * Dato un formato, ritorna l'oggetto associato per formattazione/parserizzazione del testo.\r\n * @param {InputFormats | object} format formato nei tipi codificati o in oggetto\r\n */\r\nexport function getInputFormat(format) {\r\n if (typeof format === 'string') {\r\n return InputFormatObjects[format];\r\n }\r\n if (typeof format === 'object' && format !== null) {\r\n return format;\r\n }\r\n return DefaultInputFormatObjects;\r\n}\r\n\r\nfunction normalizeTextRagne(text) {\r\n return text.replace(/ - +/g, RANGE_SEP).replace(/ +/g, ' ').trim().replace(' ', RANGE_SEP);\r\n}\r\n\r\nexport function capitalizeString(text) {\r\n return text.toLowerCase().replace(/[ '-]([a-z])/g, (x) => x.toUpperCase()).replace(/^([a-z])/g, (x) => x.toUpperCase());\r\n}\r\n\r\nfunction formatNumber(value, precision) {\r\n if (typeof value !== 'string') {\r\n return '';\r\n }\r\n if (precision > 0) {\r\n return value.replace(/[^0-9-,.]/g, '').replace('.', ',');\r\n }\r\n return value.replace(/[^0-9-]/g, '');\r\n}\r\n\r\nfunction formatNumberRange(value, precision) {\r\n if (typeof value !== 'string') {\r\n return '';\r\n }\r\n if (precision > 0) {\r\n return value.replace(/[^0-9-,. ]/g, '').replace('.', ',');\r\n }\r\n return value.replace(/[^0-9- ]/g, '');\r\n}\r\n\r\n/**\r\n * Parserizza un range di valori.\r\n * @param {string} value valore del componente input\r\n * @param {string} format proprietà format di Input\r\n * @returns {number | undefined} value valore\r\n */\r\nfunction parseCurrency(value, format, precision) {\r\n if (typeof value !== 'string' || isUndefinedOrEmpty(value)) return undefined;\r\n return Number(parseValueFunc(value).toFixed(getPrecision(format, precision)));\r\n}\r\n\r\n/**\r\n * Parserizza un range di valori.\r\n * @param {string} value valore del componente input\r\n * @param {string} format proprietà format di Input\r\n * @returns {number[] | undefined} value valore\r\n */\r\nfunction parseCurrencyRange(value, precision) {\r\n if (!value) return undefined;\r\n const values = value.split(RANGE_SEP);\r\n if (values.length !== 2) {\r\n return undefined;\r\n }\r\n return values.map((s) => s.trim()).map((s) => parseCurrency(s, 'currency', precision));\r\n}\r\n\r\n/**\r\n * Formatta un range di valori in una stringa.\r\n * @param {string[]} values valori\r\n * @param {string} format proprietà format di Input\r\n * @returns {string | undefined} value valore\r\n */\r\nfunction formatCurrencyRange(values, precision) {\r\n if (!values) return undefined;\r\n return `${formatValueFunc(values[0], 'currency', precision)} - ${formatValueFunc(values[1], 'currency', precision)}`;\r\n}\r\n","import cns from 'classnames';\r\nimport { InputStates } from './common';\r\n\r\n/**\r\n * Calcola le classi base ai componenti ai form fileds\r\n * @param {bool} disabled stato disabilitato\r\n * @param {bool} readOnly stato sola lettura\r\n * @returns {string} classe\r\n */\r\nexport function getFormFieldClassNameBase(disabled, readOnly) {\r\n return cns(\r\n 'v2-form-field',\r\n {\r\n 'v2-form-field--disabled': disabled,\r\n 'v2-form-field--readonly': readOnly,\r\n },\r\n );\r\n}\r\n\r\n/**\r\n * Calcola le classi comuni ai componenti ai form fields (base + state)\r\n * @param {string} state stato di InputStates\r\n * @param {bool} disabled stato disabilitato\r\n * @param {bool} readOnly stato sola lettura\r\n * @returns {string} classe\r\n */\r\nexport function getFormFieldClassName(state, disabled, readOnly) {\r\n return cns(\r\n getFormFieldClassNameBase(disabled, readOnly),\r\n {\r\n 'v2-form-field--alarm': state === InputStates.alarm,\r\n 'v2-form-field--warning': state === InputStates.warning,\r\n 'v2-form-field--success': state === InputStates.success,\r\n 'v2-form-field--loading': state === InputStates.loading,\r\n },\r\n );\r\n}\r\n","import React, { useCallback, useEffect, useRef } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\nimport useComponentId from '../../Hooks/useComponentId';\r\nimport { NOOP } from '../../../../utils/const';\r\nimport FormFieldFrame from '../FormFieldFrame/FormFieldFrame';\r\nimport { isUndefined } from '../../../../utils/js';\r\nimport useRestrictions from './useRestrictions';\r\nimport { getInputFormat, InputFormats } from '../shared';\r\nimport useForwardRefOrRef from '../../../Hooks/useForwardRefOrRef';\r\nimport { getFormFieldClassName } from '../classUtilities';\r\nimport { InputStates } from '../common';\r\nimport Restriction from '../../../Restriction';\r\nimport EllipsisText from '../../../EllipsisText/EllipsisText';\r\nimport useRefWithSelectionRange from '../../Hooks/useRefWithSelectionRange';\r\n\r\nfunction getInputClassName({\r\n state, disabled, readOnly, className,\r\n}) {\r\n return cns(\r\n 'v2-text-field',\r\n getFormFieldClassName(state, disabled, readOnly),\r\n className,\r\n );\r\n}\r\n\r\nfunction getBaseInputClassName({ format, align }) {\r\n const inputFormat = getInputFormat(format);\r\n return cns(\r\n 'v2-text-field__input',\r\n `v2-text-field__input--align-${align}`,\r\n inputFormat.mapTextTransorm ? `v2-text-field__input--text-format-${inputFormat.mapTextTransorm()}` : undefined,\r\n );\r\n}\r\n\r\n/**\r\nComponente per l'inserimento non assistito di un dato.\r\n\r\n__Il componente è la versione controlled di `Input`. Se possibile utilizzare questo componente__\r\n\r\nIl componente è \"controlled\" questo significa che il valore dell'input è gestito esternamente dal componente mediante\r\nla proprietà value e onChange.\r\nLo stesso vale per la quasi totalità di proprietà, non ci sono automatismi particolari.\r\n\r\nRef:\r\n- input reference. ATTENZIONE: la input ref è definita solo nel caso NON readOnly.\r\n\r\nConstants:\r\n\r\n- `TextField.Formats`: formati ammessi per la proprietà format;\r\n- `TextField.States`: stati ammessi per la proprietà state;\r\n- `TextField.Restrictions`: restrizioni ammesse, vedi Restrictions;\r\n\r\n_Differenze con componente V1:_\r\n\r\n- Non ha gestione un controlled/form. Utilizzare componente V2/Input\r\n- nameCase sostituito da format=TextField.Formats.capitalize\r\n- actions non gestito, vedere se è possibile coprire la funzionalità con action/icon\r\n- titleLines non gestito, i titolo vanno messi su una sola riga\r\n- zeroValid non gestito. Utilizzare V2/Input con format=Input.Formats.number\r\n- required non gestito. Per evidenziare questo stato il programmatore deve gestire autonomamente\r\nil titolo in base alle indicazioni UX (tipicamente mettendo \"opzionale\")\r\n*/\r\nconst TextField = React.forwardRef(({\r\n action, align, className, disabled, inputProps, onActionClick, onChange, onKeyDown,\r\n placeholder, precision, readOnly, restrictions, state, stateMessage, title, helperText, componentHeight, titleIcon, value, icon,\r\n format,\r\n}, ref) => {\r\n const id = useComponentId();\r\n const inputRef = useForwardRefOrRef(ref);\r\n const handleKeyDown = useRestrictions(restrictions, format, precision, onKeyDown);\r\n\r\n const handleChange = useCallback((evt) => {\r\n const targetValue = getInputFormat(format).normalizeText(evt.target.value, precision);\r\n onChange(targetValue, evt);\r\n }, [format, onChange, precision]);\r\n\r\n const stringValue = isUndefined(value) ? '' : value;\r\n useRefWithSelectionRange(inputRef, stringValue);\r\n return (\r\n { !readOnly && inputRef.current.focus(); }}\r\n id={id}\r\n title={title}\r\n titleIcon={titleIcon}\r\n state={state}\r\n stateMessage={stateMessage}\r\n componentHeight={componentHeight}\r\n helperText={helperText}\r\n icon={icon}\r\n readOnly={readOnly}\r\n disabled={disabled}\r\n action={action}\r\n onActionClick={onActionClick}\r\n >\r\n {readOnly && {stringValue === '' ? '-' : stringValue}}\r\n {!readOnly && typeof title === 'string' && }\r\n {!readOnly && (\r\n \r\n )}\r\n \r\n );\r\n});\r\n\r\nTextField.propTypes = {\r\n /** Icona rappresentativa del campo */\r\n action: PropTypes.element,\r\n\r\n /** Allineamento del testo */\r\n align: PropTypes.oneOf(['left', 'right']),\r\n\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n\r\n /**\r\nModalità di calcolo dell'altezza del componente.\r\nSe uguale a 'with-helper-text' l'altezza del componente è comprensiva del messaggio helperText.\r\n */\r\n componentHeight: PropTypes.oneOf(['minimal', 'with-helper-text']),\r\n\r\n /** Presenta il campo in modalità disabilitato */\r\n disabled: PropTypes.bool,\r\n\r\n /**\r\nSpecifica il formato del valore (vedi `TextField.Formats`).\r\n\r\nPuò essere un oggetto nel caso si voglia gestire in modo custom il formato. In questo caso l'oggetto deve avere le seguenti proprietà:\r\n\r\n- parse: funzione che restitusce un oggetto dato un testo e una lista di oggetti\r\n- format: funzione che restituisce il testo dato un item\r\n*/\r\n format: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.shape({\r\n normalizeText: PropTypes.func.isRequired,\r\n format: PropTypes.func.isRequired,\r\n parse: PropTypes.func.isRequired,\r\n }),\r\n ]),\r\n\r\n /** Messaggio di supporto all'utilizzo del componente */\r\n helperText: PropTypes.string,\r\n\r\n /** Icona rappresentativa del campo */\r\n icon: PropTypes.element,\r\n\r\n /** Proprietà specifiche del componente input. ATTENZIONE: queste proprità possono essere sovrascitte dal framework. */\r\n // eslint-disable-next-line react/forbid-prop-types\r\n inputProps: PropTypes.object,\r\n\r\n /** Funzione invocata alla pressione del componente action. restituisce l'evento. */\r\n onActionClick: PropTypes.func,\r\n\r\n /** Funzione invocata alla modifica del valore. restituisce il nuovo valore e l'evento come secondo parametro. */\r\n onChange: PropTypes.func,\r\n\r\n /** Funzione invocata alla pressione di un tasto qualsiasi. */\r\n onKeyDown: PropTypes.func,\r\n\r\n /** Esempio testuale del dato da inserire nel campo */\r\n placeholder: PropTypes.string,\r\n\r\n /** Nel caso di formati numerici, specifica il numero massimo di cifre dopo la virgola */\r\n precision: PropTypes.number,\r\n\r\n /** Presenta il campo in modalità sola lettura */\r\n readOnly: PropTypes.bool,\r\n\r\n /** Restrizione sui caratteri ammessi nel campo. Per dettagli vedi\r\n * documentazione su *Restriction* */\r\n restrictions: PropTypes.arrayOf(PropTypes.string),\r\n\r\n /** Stato presentato dal componente (vedi `TextField.States`) */\r\n state: PropTypes.oneOf(['alarm', 'warning', 'success', 'loading']),\r\n\r\n /** Messaggio di descrizione dello stato */\r\n stateMessage: PropTypes.string,\r\n\r\n /** Etichetta del titolo, tipicamente una stringa */\r\n title: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\r\n\r\n /** Icona del titolo, da utilizzare SOLO per info o per tooltip */\r\n titleIcon: PropTypes.element,\r\n\r\n /** Valore presentato dalla input */\r\n value: PropTypes.string,\r\n};\r\n\r\nTextField.defaultProps = {\r\n action: undefined,\r\n className: undefined,\r\n componentHeight: undefined,\r\n disabled: false,\r\n onActionClick: NOOP,\r\n onChange: NOOP,\r\n onKeyDown: undefined,\r\n placeholder: undefined,\r\n readOnly: false,\r\n helperText: undefined,\r\n state: undefined,\r\n stateMessage: undefined,\r\n title: undefined,\r\n titleIcon: undefined,\r\n icon: undefined,\r\n inputProps: undefined,\r\n format: undefined,\r\n value: undefined,\r\n restrictions: undefined,\r\n precision: undefined,\r\n align: 'left',\r\n};\r\n\r\nexport default TextField;\r\n\r\nTextField.Formats = InputFormats;\r\nTextField.States = InputStates;\r\nTextField.Restrictions = Restriction.DefaultValues;\r\n","import { useMemo } from 'react';\r\nimport Restriction from '../../../Restriction';\r\nimport { getPrecision } from '../../../Utils/numeriHelper';\r\n\r\nfunction isNumberFormat(format) {\r\n return format === 'currency' || format === 'number';\r\n}\r\n\r\nfunction isKeyPressed(event) {\r\n return event.key && event.key.length === 1;\r\n}\r\n\r\nexport default function useRestrictions(restrictions, format, precision, onKeyDown) {\r\n const handleKeyPress = useMemo(() => {\r\n let compRestrictions = restrictions;\r\n if (isNumberFormat(format)) {\r\n const numberRestriction = getPrecision(format, precision) === 0\r\n ? Restriction.DefaultValues.numerinegativi\r\n : Restriction.DefaultValues.numeridecimalinegativi;\r\n compRestrictions = [numberRestriction, ...(restrictions || [])];\r\n }\r\n return (event) => {\r\n if (isKeyPressed(event)) {\r\n if (compRestrictions && compRestrictions.length > 0) {\r\n if (!Restriction.isValid(event, compRestrictions)) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n }\r\n }\r\n }\r\n onKeyDown && onKeyDown(event);\r\n };\r\n }, [format, onKeyDown, precision, restrictions]);\r\n\r\n return handleKeyPress;\r\n}\r\n","import { useEffect, useRef } from 'react';\r\n\r\n/**\r\nUn hook che mantiene il posizionamento del selettore in un input.\r\n * @param {node} ref input ref.\r\n * @param {string} value valore del'input che cambia.\r\n */\r\n\r\nconst useRefWithSelectionRange = (ref, value) => {\r\n const targetInfo = useRef();\r\n\r\n const handleBeforeInput = (event) => {\r\n targetInfo.current = {\r\n selectionEnd: event.target.selectionEnd,\r\n length: event.target.value ? event.target.value.length : 0,\r\n };\r\n };\r\n\r\n useEffect(() => {\r\n requestAnimationFrame(() => {\r\n if (ref.current && targetInfo.current) {\r\n const { selectionEnd, length } = targetInfo.current;\r\n const updatedLength = ref.current.value ? (ref.current.value.length - length) : 0;\r\n const updatedSelectionEnd = selectionEnd + updatedLength;\r\n ref.current.setSelectionRange(updatedSelectionEnd, updatedSelectionEnd);\r\n }\r\n });\r\n }, [ref, value]);\r\n\r\n useEffect(() => {\r\n const currentRef = ref.current;\r\n currentRef && currentRef.addEventListener('beforeinput', handleBeforeInput);\r\n\r\n return () => {\r\n currentRef && currentRef.removeEventListener('beforeinput', handleBeforeInput);\r\n };\r\n }, [ref]);\r\n};\r\n\r\nexport default useRefWithSelectionRange;\r\n","/* eslint-disable max-len */\r\nimport React from 'react';\r\nimport Icon from '../../Icons/Icon';\r\n\r\nexport default Icon(\r\n \r\n \r\n \r\n ,\r\n '0 0 24 24',\r\n 'ExpandMoreIcon',\r\n);\r\n","/* eslint-disable max-len */\r\nimport React from 'react';\r\nimport Icon from '../../Icons/Icon';\r\n\r\nexport default Icon(\r\n \r\n \r\n \r\n ,\r\n '0 0 24 24',\r\n 'ExpandLessIcon',\r\n);\r\n","import Log from '../../../../utils/log';\r\n\r\nexport function getItemId(item, itemKeyProperty = 'id') {\r\n if (typeof item === 'object') {\r\n const key = item[itemKeyProperty];\r\n if (key === undefined) {\r\n Log.warn(`La proprietà ${itemKeyProperty} dell'item è undefined`);\r\n }\r\n return key;\r\n }\r\n return item;\r\n}\r\n\r\nexport function isDisabled(item) {\r\n if (typeof item === 'object') {\r\n return item.disabled;\r\n }\r\n return false;\r\n}\r\n","/* eslint-disable jsx-a11y/click-events-have-key-events */\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\nimport Button from '../../Button/Button';\r\nimport DeleteIcon from '../../../GoogleIcons/Outlined/DeleteIcon';\r\nimport EditIcon from '../../../GoogleIcons/Outlined/EditIcon';\r\nimport { getItemId, isDisabled } from './listUtils';\r\nimport useKeepElementVisible from './useKeepElementVisible';\r\n\r\n/**\r\n * Lista degli elementi\r\n*/\r\nconst List = ({\r\n className, current, items, onUpdateItem, onRemoveItem, onSelected, renderItem, onShowLastItem, itemKeyProperty,\r\n}) => {\r\n useKeepElementVisible(items, itemKeyProperty, onShowLastItem, current);\r\n\r\n return (\r\n
      \r\n {items.map((item) => {\r\n const key = getItemId(item, itemKeyProperty);\r\n const disabled = isDisabled(item);\r\n return (\r\n {\r\n if (!disabled) {\r\n onSelected(item, event);\r\n }\r\n }}\r\n >\r\n {renderItem(item)}\r\n {(onUpdateItem || onRemoveItem) && item.enableUpdate && !disabled\r\n && (\r\n
      \r\n {onUpdateItem && (\r\n {\r\n event.stopPropagation();\r\n onUpdateItem(item, event);\r\n }}\r\n >\r\n \r\n \r\n )}\r\n {onRemoveItem && (\r\n {\r\n event.stopPropagation();\r\n onRemoveItem(item, event);\r\n }}\r\n >\r\n \r\n \r\n )}\r\n
      \r\n )}\r\n \r\n );\r\n })}\r\n {items.length === 0\r\n && (\r\n
      \r\n Nessun risultato per questa ricerca\r\n
      \r\n )}\r\n
    \r\n );\r\n};\r\n\r\nList.propTypes = {\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n\r\n current: PropTypes.oneOfType([\r\n PropTypes.shape({\r\n /** Specifica la chiave dell'oggetto */\r\n key: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\r\n\r\n /** Specifica se l'oggetto può essere modificato o rimosso dalla lista */\r\n enableUpdate: PropTypes.bool,\r\n }),\r\n PropTypes.string,\r\n PropTypes.number]),\r\n items: PropTypes.arrayOf(PropTypes.oneOfType([\r\n PropTypes.shape({\r\n /** Specifica la chiave dell'oggetto */\r\n key: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\r\n\r\n /** Specifica se l'oggetto può essere modificato o rimosso dalla lista */\r\n enableUpdate: PropTypes.bool,\r\n }),\r\n PropTypes.string,\r\n PropTypes.number])).isRequired,\r\n onUpdateItem: PropTypes.func,\r\n onRemoveItem: PropTypes.func,\r\n onSelected: PropTypes.func.isRequired,\r\n renderItem: PropTypes.func.isRequired,\r\n onShowLastItem: PropTypes.func,\r\n itemKeyProperty: PropTypes.string,\r\n};\r\n\r\nList.defaultProps = {\r\n className: undefined,\r\n current: undefined,\r\n onUpdateItem: undefined,\r\n onRemoveItem: undefined,\r\n onShowLastItem: undefined,\r\n itemKeyProperty: undefined,\r\n};\r\n\r\nexport default List;\r\n","import { useEffect, useRef } from 'react';\r\nimport { getItemId } from './listUtils';\r\n\r\nexport default function useKeepElementVisible(items, itemKeyProperty, onShowLastItem, currentItem) {\r\n const itemsObserverRef = useRef();\r\n const itemsPositionRef = useRef({});\r\n\r\n useEffect(() => {\r\n if (items && window.IntersectionObserver) {\r\n const lastId = getItemId(items[items.length - 1], itemKeyProperty);\r\n itemsObserverRef.current = new window.IntersectionObserver(((entries) => {\r\n entries.forEach((element) => {\r\n itemsPositionRef.current[element.target.id] = { isIntersecting: element.intersectionRatio > 0.9 };\r\n\r\n if (itemsPositionRef.current[element.target.id].isIntersecting && element.target.id === lastId) {\r\n onShowLastItem && onShowLastItem();\r\n }\r\n });\r\n }), { threshold: [0] });\r\n\r\n items.forEach((item) => {\r\n const id = getItemId(item, itemKeyProperty);\r\n itemsObserverRef.current.observe(document.getElementById(getItemId(id, itemKeyProperty)));\r\n });\r\n }\r\n\r\n const observer = itemsObserverRef.current;\r\n return () => {\r\n if (observer) {\r\n observer.disconnect();\r\n }\r\n };\r\n }, [itemKeyProperty, items, onShowLastItem]);\r\n\r\n useEffect(() => {\r\n if (currentItem) {\r\n const elementId = getItemId(currentItem, itemKeyProperty);\r\n if (itemsPositionRef.current[elementId] && !itemsPositionRef.current[elementId].isIntersecting) {\r\n const element = document.getElementById(getItemId(currentItem, itemKeyProperty));\r\n element && typeof element.scrollIntoView === 'function' && element.scrollIntoView({\r\n behavior: 'smooth',\r\n });\r\n }\r\n }\r\n }, [currentItem, itemKeyProperty]);\r\n}\r\n","/* eslint-disable max-len */\r\n/* eslint-disable import/prefer-default-export */\r\n\r\nimport { NOOP } from '../../utils/const';\r\n\r\n/**\r\n * Esegue la callback associata all'evento.\r\n */\r\nclass KeyboardEventDisparcher {\r\n constructor(event) {\r\n this.event = event;\r\n }\r\n\r\n /**\r\n * Esegue `callback` alla pressione del tasto Enter.\r\n * @param {func} callback callback.\r\n */\r\n onEnter(callback = NOOP) {\r\n if (this.event.keyCode === 13) callback();\r\n return this;\r\n }\r\n\r\n /**\r\n * Esegue `callback` alla pressione del tasto Key Up.\r\n * @param {func} callback callback.\r\n */\r\n onUp(callback = NOOP) {\r\n if (this.event.keyCode === 38) callback();\r\n return this;\r\n }\r\n\r\n /**\r\n * Esegue `callback` alla pressione del tasto Key Down.\r\n * @param {func} callback callback.\r\n */\r\n onDown(callback = NOOP) {\r\n if (this.event.keyCode === 40) callback();\r\n return this;\r\n }\r\n}\r\n\r\nexport { KeyboardEventDisparcher };\r\n","/* eslint-disable jsx-a11y/no-static-element-interactions */\r\nimport React, {\r\n useCallback, useRef, useState, useImperativeHandle, useMemo,\r\n} from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\nimport Item from './Item';\r\nimport { NOOP } from '../../../../utils/const';\r\nimport TextField from '../TextField/TextField';\r\nimport ExpandMoreIcon from '../../../GoogleIcons/Outlined/ExpandMoreIcon';\r\nimport ExpandLessIcon from '../../../GoogleIcons/Outlined/ExpandLessIcon';\r\nimport AddIcon from '../../../GoogleIcons/Outlined/AddIcon';\r\nimport Button from '../../Button/Button';\r\nimport List from './List';\r\nimport useOnClickOutside from '../../../Hooks/useOnClickOutside';\r\nimport useCurrentListItem from './useCurrentListItem';\r\nimport Spinner from '../../../Spinner';\r\nimport { InputStatesList, SelectStates } from '../common';\r\n\r\nconst DefaultItemRender = (item) => (\r\n \r\n);\r\n\r\n/**\r\nComponente che permette di scegliere un valore tra una lista di elementi.\r\n\r\n__Il componente è la versione controlled di `Combobox`. Se possibile utilizzare questo componente__\r\n\r\nVedi [Design System di CGN - Campi di Input - Combobox](https://zeroheight.com/1b5e94371/p/940c42-campi-di-input/b/405dcb)\r\n\r\nAlla scrittura delle testo verrà attivata una callback (`onLoadItems`) e comparirà il popup.\r\nAl click di un elemento del popup il valore verrà selezionato (`onSelected`).\r\n\r\nLa lista gestisce anche le operazioni CUD.\r\nPer inserire un elemento, aggiungere la callback `onAddItem`.\r\nPer modificare/cancellare un elemento aggiungere la callback onUpdateItem/onRemoveItem e impostare la proprietà `enableUpdate=true` sull'elemento della lista.\r\n\r\nE' possibile anche disabilitare la scelta di un elemento aggiungendo la proprietà `disabled=true`,\r\n\r\nIl rendering dei componenti è svolto dalla funzione `renderItem`. Si consiglia l'utilizzo del componente `Select.Item`.\r\nNel caso di liste di oggetti, usare la proprietà `key` per definire un identificativo univoco dell'elemento.\r\n\r\nRef:\r\n- `selectItem`: funzione per selezionare un valore.\r\n- `focus`: funzione per tentare di acquisire il focus.\r\n- `contains`: funzione per verificare se il componente \"contiene\" un altro componente nel suo sotto albero.\r\n- `getValue`: ritorna il valore nell'input.\r\n- `hidePopup`: nasconde la lista degli elementi.\r\n\r\nConstants:\r\n- `Select.States`: stati ammessi per la proprietà state;\r\n\r\n*/\r\nconst SelectField = React.forwardRef(({\r\n className, listClassName, disabled, icon, inputProps, onKeyDown, placeholder, readOnly, title, titleIcon, state, helperText, componentHeight, stateMessage,\r\n searchValue, items, onSelected, onSearchValueChange, renderItem, onAddItem, onUpdateItem, onRemoveItem,\r\n listRight, listTop, onShowLastItem, itemKeyProperty,\r\n}, ref) => {\r\n const [showPopup, setShowPopup] = useState(false);\r\n const containerRef = useRef();\r\n useOnClickOutside(containerRef, () => { setShowPopup(false); });\r\n\r\n const [currentListItem, selectItem, handleKeyDown] = useCurrentListItem(items, onSelected, setShowPopup, onKeyDown);\r\n\r\n const handleItemSelected = useCallback((value, event) => {\r\n selectItem(value, event);\r\n setShowPopup(false);\r\n }, [selectItem]);\r\n\r\n const handleInputChange = useCallback((value, event) => {\r\n onSearchValueChange(value, event);\r\n setShowPopup(true);\r\n }, [onSearchValueChange]);\r\n\r\n const renderListItem = useCallback((item) => renderItem(item, searchValue), [renderItem, searchValue]);\r\n\r\n const inputRef = useRef();\r\n useImperativeHandle(ref, () => ({\r\n selectItem,\r\n hidePopup: () => setShowPopup(false),\r\n focus: () => inputRef.current.focus(),\r\n contains: (...args) => inputRef.current.contains(...args),\r\n getSearchValue: () => (inputRef.current ? inputRef.current.value : undefined),\r\n }), [selectItem]);\r\n\r\n const textFieldState = useMemo(() => (InputStatesList.includes(state) ? state : undefined), [state]);\r\n\r\n return (\r\n
    \r\n : }\r\n onActionClick={() => { setShowPopup((visible) => !visible); }}\r\n onChange={handleInputChange}\r\n className=\"v2-select-field__input\"\r\n disabled={disabled}\r\n icon={icon}\r\n inputProps={inputProps}\r\n onKeyDown={onKeyDown}\r\n placeholder={placeholder}\r\n readOnly={readOnly}\r\n title={title}\r\n titleIcon={titleIcon}\r\n state={textFieldState}\r\n stateMessage={stateMessage}\r\n componentHeight={componentHeight}\r\n helperText={helperText}\r\n />\r\n {showPopup && !disabled && !readOnly && (\r\n
    \r\n {state !== SelectField.States.loading\r\n && (\r\n <>\r\n \r\n {state === SelectField.States.loadingPage && (\r\n
    \r\n \r\n
    \r\n )}\r\n {onAddItem && (\r\n
    \r\n \r\n
    \r\n )}\r\n \r\n )}\r\n {state === SelectField.States.loading && }\r\n
    \r\n )}\r\n
    \r\n );\r\n});\r\n\r\nSelectField.propTypes = {\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n\r\n /**\r\nModalità di calcolo dell'altezza del componente.\r\nSe uguale a 'with-helper-text' l'altezza del componente è comprensiva del messaggio helperText.\r\n */\r\n componentHeight: PropTypes.oneOf(['minimal', 'with-helper-text']),\r\n\r\n /** Presenta il campo in modalità disabilitato */\r\n disabled: PropTypes.bool,\r\n\r\n /** Messaggio di supporto all'utilizzo del componente */\r\n helperText: PropTypes.string,\r\n\r\n /** Icona rappresentativa del campo */\r\n icon: PropTypes.element,\r\n\r\n /** Proprietà specifiche del componente input. ATTENZIONE: queste proprità possono essere sovrascitte dal framework. */\r\n // eslint-disable-next-line react/forbid-prop-types\r\n inputProps: PropTypes.object,\r\n\r\n /** Nome della proprietà dell'item che è chiave */\r\n itemKeyProperty: PropTypes.string,\r\n\r\n /**\r\n * Elementi della lista tra cui scegliere\r\n */\r\n items: PropTypes.arrayOf(PropTypes.oneOfType([\r\n PropTypes.shape({\r\n /** Specifica se l'oggetto può essere modificato o rimosso dalla lista */\r\n enableUpdate: PropTypes.bool,\r\n }),\r\n PropTypes.string,\r\n PropTypes.number])).isRequired,\r\n\r\n /** Classi css personalizzate da aggiungere alla lista componente */\r\n listClassName: PropTypes.string,\r\n\r\n /** Presenta la lista a partire dal margine destro dell'input. */\r\n listRight: PropTypes.bool,\r\n\r\n /** Presenta la lista sopra l'input. */\r\n listTop: PropTypes.bool,\r\n\r\n /** Funzione invocata per aggiungere un nuovo elemento alla lista. */\r\n onAddItem: PropTypes.func,\r\n\r\n /** Funzione invocata alla pressione di un tasto qualsiasi. */\r\n onKeyDown: PropTypes.func,\r\n\r\n /** Funzione invocata per rimuovere un elemento della lista. */\r\n onRemoveItem: PropTypes.func,\r\n\r\n /**\r\nFunzione invocata alla selezione di un elemento.\r\n\r\nI parametri sono:\r\n- item selezionato\r\n- evento\r\n */\r\n onSelected: PropTypes.func,\r\n\r\n /** Funzione invocata alla selezione di un elemento. */\r\n onSearchValueChange: PropTypes.func,\r\n\r\n /** Funzione invocata per modifica un elemento della lista. */\r\n onUpdateItem: PropTypes.func,\r\n\r\n /** Callback invocata quando viene visualizzato l'ultimo elemento della lista */\r\n onShowLastItem: PropTypes.func,\r\n\r\n /** Esempio testuale del dato da inserire nel campo */\r\n placeholder: PropTypes.string,\r\n\r\n /** Presenta il campo in modalità sola lettura */\r\n readOnly: PropTypes.bool,\r\n\r\n /**\r\nFunzione per il rendering di un componente della lista.\r\n\r\nParametri:\r\n- item: elemento della lista.\r\n- filterValue: valore del filtro.\r\n */\r\n renderItem: PropTypes.func,\r\n\r\n /** Elemento selezionato */\r\n searchValue: PropTypes.string,\r\n\r\n /** Stato presentato dal componente (vedi `Select.States`) */\r\n state: PropTypes.oneOf(['alarm', 'warning', 'success', 'loading', 'loading-page']),\r\n\r\n /** Messaggio di descrizione dello stato */\r\n stateMessage: PropTypes.string,\r\n\r\n /** Etichetta/Componente del titolo */\r\n title: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\r\n\r\n /** Icona del titolo, da utilizzare SOLO per info o per tooltip */\r\n titleIcon: PropTypes.element,\r\n};\r\n\r\nSelectField.defaultProps = {\r\n searchValue: undefined,\r\n onSelected: NOOP,\r\n className: undefined,\r\n componentHeight: undefined,\r\n listClassName: undefined,\r\n disabled: false,\r\n onKeyDown: undefined,\r\n placeholder: undefined,\r\n readOnly: false,\r\n title: undefined,\r\n titleIcon: undefined,\r\n icon: undefined,\r\n inputProps: undefined,\r\n state: undefined,\r\n stateMessage: undefined,\r\n helperText: undefined,\r\n onSearchValueChange: NOOP,\r\n renderItem: DefaultItemRender,\r\n onAddItem: undefined,\r\n onRemoveItem: undefined,\r\n onUpdateItem: undefined,\r\n listRight: false,\r\n listTop: false,\r\n onShowLastItem: undefined,\r\n itemKeyProperty: undefined,\r\n};\r\n\r\nSelectField.Item = Item;\r\nSelectField.States = SelectStates;\r\n\r\nexport default SelectField;\r\n","import { useEffect } from 'react';\r\n\r\n/**\r\n * Hook per lil click fuori dal ref passato\r\n */\r\nfunction useOnClickOutside(ref, handler) {\r\n useEffect(\r\n () => {\r\n const listener = (event) => {\r\n // se clicco i il ref o un figlio non serve fare nulla\r\n if (!ref.current || ref.current.contains(event.target)) {\r\n return;\r\n }\r\n handler(event);\r\n };\r\n\r\n document.addEventListener('mousedown', listener);\r\n document.addEventListener('touchstart', listener);\r\n return () => {\r\n document.removeEventListener('mousedown', listener);\r\n document.removeEventListener('touchstart', listener);\r\n };\r\n },\r\n // Add ref and handler to effect dependencies\r\n // It's worth noting that because passed in handler is a new ...\r\n // ... function on every render that will cause this effect ...\r\n // ... callback/cleanup to run every render. It's not a big deal ...\r\n // ... but to optimize you can wrap handler in useCallback before ...\r\n // ... passing it into this hook.\r\n [ref, handler],\r\n );\r\n}\r\n\r\nexport default useOnClickOutside;\r\n","import { useCallback, useState } from 'react';\r\nimport { NOOP } from '../../../../utils/const';\r\nimport { KeyboardEventDisparcher } from '../../../Utils/events';\r\n\r\n/**\r\n * Custom hook per la gestione dell'elemento corrente di una lista.\r\n * Gestisce anche la pressione dei tasti (Up, Down, Enter)\r\n */\r\nexport default function useCurrentListItem(items, onSelected, setShowPopup, onKeyDown = NOOP) {\r\n const [currentListItem, setCurrentListItem] = useState();\r\n const handleKeyDown = useCallback((event) => {\r\n new KeyboardEventDisparcher(event)\r\n .onEnter(() => {\r\n if (currentListItem) {\r\n onSelected(currentListItem, event);\r\n setShowPopup(false);\r\n }\r\n })\r\n .onUp(() => {\r\n const index = items.indexOf(currentListItem);\r\n if (index > 0) { setCurrentListItem(items[index - 1]); }\r\n })\r\n .onDown(() => {\r\n setShowPopup(true);\r\n const index = items.indexOf(currentListItem);\r\n if (index < items.length - 1) { setCurrentListItem(items[index + 1]); }\r\n });\r\n onKeyDown(event);\r\n }, [currentListItem, items, onKeyDown, onSelected, setShowPopup]);\r\n\r\n const handleItemSelected = useCallback((item, event) => {\r\n setCurrentListItem(item);\r\n onSelected(item, event);\r\n }, [onSelected]);\r\n\r\n return [currentListItem, handleItemSelected, handleKeyDown];\r\n}\r\n","/* eslint-disable no-param-reassign */\r\nimport {\r\n useCallback, useEffect, useRef, useState,\r\n} from 'react';\r\nimport { SelectStates } from 'framework-ui-components/Components/V2/FieldControlled/common';\r\nimport useDebouncedFunc from 'framework-ui-components/Components/Hooks/useDebouncedFunc';\r\nimport Log from 'framework-ui-components/utils/log';\r\n\r\nconst NO_ITEMS = [];\r\n\r\nconst LOADED = {\r\n state: undefined, message: undefined, items: NO_ITEMS, moreItems: false,\r\n};\r\n\r\nfunction useLoadItemsFunction(onLoadItems, paging, lastLoading, setItemsLoadingState) {\r\n const loadItems = useCallback(() => {\r\n if (paging.page > 0) {\r\n // controllo se è cambiato qualcosa dall'ultimo caricamento fatto\r\n if (lastLoading.current.lastPageSize === paging.pageSize\r\n && lastLoading.current.lastPage === paging.page\r\n && lastLoading.current.lastSearchTerm === lastLoading.current.searchTerm) {\r\n return;\r\n }\r\n lastLoading.current.lastPageSize = paging.pageSize;\r\n lastLoading.current.lastPage = paging.page;\r\n lastLoading.current.lastSearchTerm = lastLoading.current.searchTerm;\r\n\r\n const isFirstPage = paging.page === 1;\r\n setItemsLoadingState((s) => ({\r\n ...s, state: isFirstPage ? SelectStates.loading : SelectStates.loadingPage, message: undefined,\r\n }));\r\n onLoadItems(...(paging.pageSize ? [lastLoading.current.searchTerm, paging] : [lastLoading.current.searchTerm]))\r\n .then((itemsResponse) => {\r\n let items = paging.pageSize ? itemsResponse.Items : itemsResponse;\r\n if (!items) {\r\n Log.warn('Verifica la chiamata onLoadItems');\r\n items = [];\r\n }\r\n const moreItems = paging.pageSize ? itemsResponse.Count > paging.pageSize * paging.page : false;\r\n setItemsLoadingState((s) => ({ ...LOADED, items: isFirstPage ? items : [...s.items, ...items], moreItems }));\r\n })\r\n .catch((error) => {\r\n setItemsLoadingState((s) => ({ items: isFirstPage ? NO_ITEMS : s.items, state: SelectStates.alarm, message: error.message }));\r\n });\r\n }\r\n }, [lastLoading, onLoadItems, paging, setItemsLoadingState]);\r\n\r\n return loadItems;\r\n}\r\n\r\n/**\r\n * Hook che si occupa del caricamento degli items della combobox. E' sua responsabilità anche la gestione del pageSize e dello scroll infinito\r\n * @param {*} onLoadItems\r\n * @param {*} debounceDelay\r\n * @param {*} pageSize\r\n * @returns\r\n */\r\nexport default function useComboboxItems(onLoadItems, debounceDelay, pageSize) {\r\n const [itemsLoadingState, setItemsLoadingState] = useState(LOADED);\r\n const lastLoading = useRef({ searchTerm: '' });\r\n const [paging, setPaging] = useState({ page: 0, pageSize });\r\n\r\n // solo se il searchTerm è differente dall'ultimo, allora viene forzato un ri-caricamento degli items\r\n const handleSearch = useDebouncedFunc((searchText) => {\r\n if (lastLoading.current.searchTerm !== searchText) {\r\n lastLoading.current.searchTerm = searchText;\r\n setPaging((oldCurrentPage) => ({ ...oldCurrentPage, page: 1 }));\r\n }\r\n }, debounceDelay, []);\r\n\r\n // al cambiamento del pageSize viene resettato il paging per forzare un ri-caricamento degli items\r\n useEffect(() => {\r\n lastLoading.current.lastPageSize = pageSize;\r\n setPaging({ pageSize, page: 1 });\r\n }, [pageSize]);\r\n\r\n // forzatura esterna (by ref) per il ri-caricamento degli items\r\n const reloadItems = useCallback(() => {\r\n lastLoading.current.lastPageSize = 0;\r\n setPaging((oldCurrentPage) => ({ ...oldCurrentPage, page: 1 }));\r\n }, []);\r\n\r\n // callback per caricare altri items (paginazione infinita)\r\n const loadMoreItems = useCallback(() => {\r\n setPaging((oldCurrentPage) => ({ ...oldCurrentPage, page: oldCurrentPage.page + 1 }));\r\n }, []);\r\n\r\n const loadItems = useLoadItemsFunction(onLoadItems, paging, lastLoading, setItemsLoadingState);\r\n\r\n useEffect(() => {\r\n loadItems();\r\n }, [loadItems]);\r\n\r\n return {\r\n items: itemsLoadingState.items,\r\n reloadItems,\r\n handleSearch,\r\n stateItems: itemsLoadingState.state,\r\n messageItems: itemsLoadingState.message,\r\n moreItems: itemsLoadingState.moreItems,\r\n loadMoreItems,\r\n };\r\n}\r\n","import React, {\r\n useContext, useEffect, useCallback,\r\n} from 'react';\r\nimport { NOOP } from '../../../utils/const';\r\n\r\nexport class FormContextValue {\r\n constructor(keepValueOnFormFieldRemoved) {\r\n this.fieldComponentRefs = {};\r\n this.changeValueCallback = NOOP;\r\n this.keepValueOnFormFieldRemoved = keepValueOnFormFieldRemoved;\r\n }\r\n\r\n // aggiorna lo stato dei componenti\r\n updateState(values = {}) {\r\n Object.keys(this.fieldComponentRefs)\r\n .filter((fieldName) => !!this.fieldComponentRefs[fieldName])\r\n .map((fieldName) => [values[fieldName], this.fieldComponentRefs[fieldName]])\r\n .forEach(([value, component]) => {\r\n component.reference.current.initializeValue(value);\r\n });\r\n }\r\n\r\n onChangeValue(fieldName, value, validation) {\r\n this.changeValueCallback(fieldName, value, validation);\r\n }\r\n\r\n /**\r\n * valida tutti i componenti\r\n */\r\n validate() {\r\n Object.values(this.fieldComponentRefs).forEach(\r\n (component) => {\r\n component.reference.current.validate();\r\n },\r\n );\r\n }\r\n\r\n /**\r\n * funzione di regitrazione del componente.\r\n * In componente deve avere initializeValue e validate.\r\n */\r\n registerComponent(name, componentRef) {\r\n const oldRef = this.fieldComponentRefs[name];\r\n if (oldRef) {\r\n this.unregisterComponent(name);\r\n }\r\n\r\n this.fieldComponentRefs[name] = {\r\n reference: componentRef,\r\n };\r\n }\r\n\r\n /**\r\n * funzione di deregitrazione del componente.\r\n */\r\n unregisterComponent(name) {\r\n delete this.fieldComponentRefs[name];\r\n if (!this.keepValueOnFormFieldRemoved) {\r\n this.onChangeValue(name, undefined, undefined);\r\n }\r\n }\r\n\r\n /**\r\n * Dispose del componente\r\n */\r\n dispose() {\r\n this.onChangeValue = NOOP; // disabilito ogni notifica\r\n this.fieldComponentRefs = {};\r\n }\r\n}\r\n\r\nconst FormContext = React.createContext(new FormContextValue());\r\n\r\nexport default FormContext;\r\n\r\n/**\r\n * Custom hook per gestire un campo di form restando in ascolto dell'evento di onChangeValue.\r\n * @param {string} fieldName nome del campo\r\n * @param {object} componentRef oggetto con metodi validate e initializeValue\r\n * @returns {object} oggetto con metodo onChangeValue\r\n */\r\nexport function useFormField(fieldName, componentRef) {\r\n const form = useContext(FormContext);\r\n\r\n const onChangeValue = useCallback((value, validation) => {\r\n if (fieldName) {\r\n form.onChangeValue(fieldName, value, validation);\r\n }\r\n }, [form, fieldName]);\r\n\r\n useEffect(() => {\r\n if (fieldName) {\r\n form.registerComponent(fieldName, componentRef);\r\n return () => form.unregisterComponent(fieldName);\r\n }\r\n return undefined;\r\n }, [form, fieldName, componentRef]);\r\n\r\n return { onChangeValue };\r\n}\r\n","import { useCallback, useState } from 'react';\r\nimport Validation from '../../../Validation';\r\nimport { InputStates } from '../../FieldControlled/common';\r\n\r\nconst EmptyState = { state: undefined, stateMessage: undefined, showState: false };\r\n\r\nexport function getInputStateByValidations(validations, value) {\r\n const { valid, messages: alarms, warnings } = Validation.validateAll(validations, value);\r\n let validation = { state: undefined, stateMessage: undefined };\r\n if (!valid && alarms && alarms.length > 0) {\r\n validation = { state: InputStates.alarm, stateMessage: alarms.join(', ') };\r\n } else if (!valid && warnings && warnings.length > 0) {\r\n validation = { state: InputStates.warning, stateMessage: warnings.join(', ') };\r\n }\r\n return validation;\r\n}\r\n/**\r\n * Ritorna lo stato corrente del componente in base alle validazioni e allo stato controllato dall'utente\r\n * @param {(string | object | function)[]} validationRules regole di validazione\r\n * @returns {[state, stateMessage, updateState,setComponentState]} stato, messaggio di stato e callback al cambiamento del valore\r\n */\r\nexport default function useComponentStateWithValidations(validationRules) {\r\n const [componentState, setComponentState] = useState(EmptyState);\r\n\r\n const updateState = useCallback((value, showState) => {\r\n const validationState = getInputStateByValidations(validationRules, value);\r\n setComponentState((s) => {\r\n // una volta che lo stato viene mostrato (ad es. perchè il componente è \"toccato\" dall'utente), lo mostro sempre\r\n if (showState || s.showState) {\r\n if (s.state !== validationState.state || s.stateMessage !== validationState.stateMessage || s.showState !== showState) {\r\n return { ...validationState, showState: true };\r\n }\r\n }\r\n return s;\r\n });\r\n return validationState;\r\n }, [validationRules]);\r\n\r\n return [\r\n componentState && componentState.state,\r\n componentState && componentState.stateMessage,\r\n updateState,\r\n ];\r\n}\r\n","import {\r\n useState, useCallback, useRef,\r\n} from 'react';\r\nimport { useFormField } from 'framework-ui-components/Components/V2//Form/FormContext';\r\nimport useComponentStateWithValidations from 'framework-ui-components/Components/V2/Field/Input/useComponentStateWithValidations';\r\n\r\nexport class ChangeValueListener {\r\n constructor() {\r\n this.listeners = {};\r\n this.value = undefined;\r\n this.validation = {};\r\n }\r\n\r\n isDifferentByLastNotification(newValue, newValidation) {\r\n if (this.value !== newValue) {\r\n return true;\r\n }\r\n if (this.validation.state !== newValidation.state || this.validation.stateMessage !== newValidation.stateMessage) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n initialize(value) {\r\n this.value = value;\r\n }\r\n\r\n onChangeValue(newValue, newValidation) {\r\n if (this.isDifferentByLastNotification(newValue, newValidation)) {\r\n this.value = newValue;\r\n this.validation = newValidation;\r\n Object.values(this.listeners).forEach((listener) => listener(newValue, newValidation));\r\n }\r\n }\r\n\r\n add(key, listener) {\r\n this.listeners[key] = listener;\r\n }\r\n}\r\n\r\n/**\r\n * Custom hook per il controllo/allineamento del valore di un componenete di inputcon lo stato della form.\r\n * @param {func} onChangeValue callback di conferma del valore\r\n * @param {func} onChange callback di modifica del valore stringa\r\n * @param {string | undefined} formFieldName campo della forma a cui collegare valore e stato\r\n * @param {array} validations validazioni\r\n * @param {object} componentRef reference del componente\r\n * @param {object} inputRef reference del componente di input\r\n * @param {string | object | undefined } format formato del valore per parsing/formatting/input dei valori\r\n * @param {number} precision precisione per formato numerico\r\n * @returns {array} stringValue, state, stateMessage, handleChange, setValue, setText, setComponentState, confirmValue\r\n */\r\nexport default function useControlledByValue(\r\n onChangeValue,\r\n onChange,\r\n formFieldName,\r\n validations,\r\n) {\r\n const [internalValue, setInternalValue] = useState();\r\n const [\r\n state, stateMessage, updateState,\r\n ] = useComponentStateWithValidations(validations);\r\n\r\n /**\r\n * Dato che ci sono delle dipendenze incrociate per creare i listerne di changeValue,\r\n * li metto in changeValueListener in modo da poterli aggiungere o rimuvere dinamicamente.\r\n */\r\n const changeValueListener = useRef(new ChangeValueListener());\r\n changeValueListener.current.add('onChangeValue', onChangeValue);\r\n\r\n const setValue = useCallback((newValue, evt, showValidation = true) => {\r\n setInternalValue(newValue);\r\n onChange(newValue, evt);\r\n const validation = updateState(newValue, showValidation);\r\n changeValueListener.current.onChangeValue(newValue, validation);\r\n }, [onChange, updateState]);\r\n\r\n const validate = useCallback(() => {\r\n const validation = updateState(internalValue, true);\r\n changeValueListener.current.onChangeValue(internalValue, validation);\r\n }, [internalValue, updateState]);\r\n\r\n const formComponentRef = useRef({});\r\n formComponentRef.current = {\r\n initializeValue: (value) => {\r\n changeValueListener.current.initialize(value);\r\n setValue(value, undefined, false);\r\n },\r\n validate,\r\n };\r\n\r\n const { onChangeValue: onFormChangeValue } = useFormField(formFieldName, formComponentRef);\r\n changeValueListener.current.add('onFormChangeValue', onFormChangeValue);\r\n\r\n return {\r\n state, stateMessage, value: internalValue, setValue, validate,\r\n };\r\n}\r\n","import {\r\n useCallback, useEffect, useMemo, useRef, useState,\r\n} from 'react';\r\nimport Log from 'framework-ui-components//utils/log';\r\nimport useSelectFirstItemOnBlur from './useSelectFirstItemOnBlur';\r\nimport useControlledByValue from './useControlledByValue';\r\n\r\nconst useCombobox = (\r\n formFieldName,\r\n validations,\r\n loading,\r\n selectRef,\r\n getItemByValue,\r\n items,\r\n search,\r\n inputProps,\r\n onSelected,\r\n getValueByItem,\r\n getSearchValueByItem = (v) => v,\r\n) => {\r\n const dirtyValueRef = useRef(false);\r\n const itemSelectedRef = useRef(false);\r\n\r\n const [\r\n resetSelectFirstItemPendingRequests,\r\n onBlur,\r\n ] = useSelectFirstItemOnBlur(loading, items, selectRef, dirtyValueRef, itemSelectedRef);\r\n\r\n const onChange = useCallback((newValue) => {\r\n itemSelectedRef.current = !!newValue;\r\n resetSelectFirstItemPendingRequests();\r\n }, [resetSelectFirstItemPendingRequests]);\r\n\r\n const handleSelected = useCallback((newValue, validation) => {\r\n itemSelectedRef.current = !!newValue;\r\n if (itemSelectedRef.current) {\r\n search('');\r\n }\r\n if (onSelected) {\r\n onSelected(newValue, validation);\r\n }\r\n }, [onSelected, search]);\r\n\r\n const {\r\n value, state, stateMessage, setValue, validate,\r\n } = useControlledByValue(\r\n handleSelected,\r\n onChange,\r\n formFieldName,\r\n validations,\r\n );\r\n\r\n const [searchValue, setSearchValue] = useState('');\r\n\r\n const redefInputProps = useMemo(() => (\r\n {\r\n ...inputProps,\r\n onBlur,\r\n onFocus: (...args) => {\r\n dirtyValueRef.current = true;\r\n if (inputProps && inputProps.onFocus) inputProps.onFocus(args);\r\n },\r\n }), [inputProps, onBlur]);\r\n\r\n useEffect(() => {\r\n if (dirtyValueRef.current) {\r\n search(searchValue);\r\n }\r\n }, [search, searchValue]);\r\n\r\n useEffect(() => {\r\n if (value === undefined) return;\r\n if (getItemByValue) {\r\n getItemByValue(value).then((result) => {\r\n setSearchValue(getSearchValueByItem(result));\r\n }).catch((error) => {\r\n Log.error(error);\r\n });\r\n } else {\r\n setSearchValue(getSearchValueByItem(value));\r\n }\r\n }, [getItemByValue, getSearchValueByItem, value]);\r\n\r\n const setFormValue = useCallback((item, showValidation) => {\r\n setValue(getValueByItem ? getValueByItem(item) : item, null, showValidation);\r\n }, [getValueByItem, setValue]);\r\n\r\n const onSelect = useCallback((item) => {\r\n dirtyValueRef.current = false;\r\n resetSelectFirstItemPendingRequests();\r\n setSearchValue(getSearchValueByItem(item));\r\n setFormValue(item, true);\r\n // nel caso in cui avvenga un cambiamento di select senza item (elemento non trovato) allora richiamo la search full\r\n if (!item) {\r\n search('');\r\n }\r\n }, [getSearchValueByItem, resetSelectFirstItemPendingRequests, search, setFormValue]);\r\n\r\n const onSearchValueChange = useCallback((searchValueChanged) => {\r\n dirtyValueRef.current = true;\r\n setSearchValue(searchValueChanged);\r\n setFormValue(undefined, false);\r\n }, [setFormValue]);\r\n\r\n return {\r\n setFormValue,\r\n searchValue,\r\n setSearchValue,\r\n validate,\r\n redefInputProps,\r\n state,\r\n stateMessage,\r\n onSelect,\r\n onSearchValueChange,\r\n };\r\n};\r\n\r\nexport default useCombobox;\r\n","import React, {\r\n useImperativeHandle, useRef,\r\n} from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport SelectField from 'framework-ui-components/Components/V2/FieldControlled/SelectField/SelectField';\r\nimport Validation from 'framework-ui-components/Components/Validation';\r\n// import useCombobox from 'framework-ui-components/Components/V2/Field/Combobox/useCombobox';\r\nimport useComboboxItems from './useComboboxItems';\r\nimport useCombobox from './useCombobox';\r\n\r\n/**\r\nComponente che permette di scegliere un valore tra una lista di elementi.\r\n\r\nVedi [Design System di CGN - Campi di Input - Combobox](https://zeroheight.com/1b5e94371/p/940c42-campi-di-input/b/405dcb)\r\n\r\nAlla scrittura delle testo verrà attivata una callback (`onLoadItems`) e comparirà il popup.\r\nAl click di un elemento del popup il valore verrà selezionato (`onSelected`).\r\n\r\nLa lista gestisce anche le operazioni CUD.\r\nPer inserire un elemento, aggiungere la callback `onAddItem`.\r\nPer modificare/cancellare un elemento aggiungere la callback onUpdateItem/onRemoveItem e impostare la proprietà `enableUpdate=true` sull'elemento della lista.\r\n\r\nE' possibile anche disabilitare la scelta di un elemento aggiungendo la proprietà `disabled=true`,\r\n\r\nIl rendering dei componenti è svolto dalla funzione `renderItem`. Si consiglia l'utilizzo del componente `Select.Item`.\r\nNel caso di liste di oggetti, usare la proprietà `key` per definire un identificativo univoco dell'elemento.\r\n\r\nRef:\r\n- `setValue`: funzione per cambiare il valore della combobox.\r\n- `setSearchValue`: funzione per cambiare il valore dell'input.\r\n- `reloadItems`: ricarica tutti gli elementi con onLoadItems (se paginato reinizia dalla prima pagina).\r\n- `validate`: valida il valore attualmente inserito.\r\n- `focus`: funzione per tentare di acquisire il focus.\r\n- `contains`: funzione per verificare se il componente \"contiene\" un altro componente nel suo sotto albero.\r\n\r\nConstants:\r\n- `Combobox.Validations`: validazioni fornite dal framework (vedi proprietà `validations`)\r\n- `Combobox.States`: stati ammessi per la proprietà state;\r\n\r\n*/\r\nconst Combobox = React.forwardRef(({\r\n className, listClassName, disabled, icon, inputProps, onKeyDown, placeholder, readOnly, title, titleIcon,\r\n onSelected, onLoadItems, renderItem, onAddItem, onUpdateItem, onRemoveItem,\r\n listRight, listTop, validations, formFieldName, helperText, componentHeight, getValueByItem, getItemByValue,\r\n getSearchValueByItem, debounceSearchTextDelay, itemKeyProperty, pageSize,\r\n}, ref) => {\r\n const selectRef = useRef();\r\n\r\n const {\r\n items,\r\n reloadItems,\r\n handleSearch,\r\n stateItems,\r\n messageItems,\r\n moreItems,\r\n loadMoreItems,\r\n } = useComboboxItems(onLoadItems, debounceSearchTextDelay, pageSize);\r\n\r\n const {\r\n setFormValue,\r\n searchValue,\r\n setSearchValue,\r\n validate,\r\n redefInputProps,\r\n state,\r\n stateMessage,\r\n onSelect,\r\n onSearchValueChange,\r\n } = useCombobox(\r\n formFieldName,\r\n validations,\r\n stateItems === SelectField.States.loading,\r\n selectRef,\r\n getItemByValue,\r\n items,\r\n handleSearch,\r\n inputProps,\r\n onSelected,\r\n getValueByItem,\r\n getSearchValueByItem,\r\n );\r\n\r\n useImperativeHandle(ref, () => ({\r\n setValue: (value) => { setFormValue(value, true); },\r\n setSearchValue: (value) => { setSearchValue(value); },\r\n reloadItems,\r\n validate,\r\n focus: () => selectRef.current.focus(),\r\n contains: (...args) => selectRef.current.contains(...args),\r\n }), [setFormValue, reloadItems, setSearchValue, validate]);\r\n\r\n return (\r\n onAddItem(items))}\r\n onRemoveItem={onRemoveItem && ((item) => onRemoveItem(item, items))}\r\n onUpdateItem={onUpdateItem && ((item) => onUpdateItem(item, items))}\r\n onSelected={onSelect}\r\n onSearchValueChange={onSearchValueChange}\r\n searchValue={searchValue}\r\n state={stateItems || state}\r\n stateMessage={stateItems ? messageItems : stateMessage}\r\n helperText={helperText}\r\n componentHeight={componentHeight}\r\n onShowLastItem={pageSize && moreItems && stateItems !== SelectField.States.loadingPage ? loadMoreItems : undefined}\r\n itemKeyProperty={itemKeyProperty}\r\n />\r\n );\r\n});\r\n\r\nCombobox.propTypes = {\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n\r\n /**\r\nModalità di calcolo dell'altezza del componente.\r\nSe uguale a 'with-helper-text' l'altezza del componente è comprensiva del messaggio helperText.\r\n */\r\n componentHeight: PropTypes.oneOf(['minimal', 'with-helper-text']),\r\n\r\n /** Tempo di debounce per avviare la ricerca da modifica del testo */\r\n debounceSearchTextDelay: PropTypes.number,\r\n\r\n /** Presenta il campo in modalità disabilitato */\r\n disabled: PropTypes.bool,\r\n\r\n /** Nome del campo della form per collegare il componente */\r\n formFieldName: PropTypes.string,\r\n\r\n /** Messaggio di supporto all'utilizzo del componente */\r\n helperText: PropTypes.string,\r\n\r\n /** Icona rappresentativa del campo */\r\n icon: PropTypes.element,\r\n\r\n /** Proprietà specifiche del componente input. ATTENZIONE: queste proprità possono essere sovrascitte dal framework. */\r\n // eslint-disable-next-line react/forbid-prop-types\r\n inputProps: PropTypes.object,\r\n\r\n /** Nome della proprietà dell'item che ne determina la chiave (non utilizzato se gli item non sono oggetti) */\r\n itemKeyProperty: PropTypes.string,\r\n\r\n /** Classi css personalizzate da aggiungere alla lista componente */\r\n listClassName: PropTypes.string,\r\n\r\n /** Presenta la lista a partire dal margine destro dell'input. */\r\n listRight: PropTypes.bool,\r\n\r\n /** Presenta la lista sopra l'input. */\r\n listTop: PropTypes.bool,\r\n\r\n /**\r\nFunzione invocata per aggiungere un nuovo elemento alla lista.\r\nAccetta come parametro la lista degli items.\r\nInvocare ref.setItems per aggiornare la lista.\r\n */\r\n onAddItem: PropTypes.func,\r\n\r\n /** Funzione invocata alla pressione di un tasto qualsiasi. */\r\n onKeyDown: PropTypes.func,\r\n\r\n /**\r\nFunzione invocata alla selezione di un elemento.\r\nLa funzione deve restituire una Promise con la lista degli elementi presentati.\r\nIn caso di errore la lista presentata sarà vuota.\r\n\r\nParametri:\r\n- text: testo di ricerca.\r\n- oggetto di paginazione (restituito solo se parametro PageSize viene popolato):\r\n\r\n { page: , pageSize: }\r\n\r\nNel caso venga popolato il parametro PageSize dovrà ritornare gli items nel seguente formato:\r\n\r\n { Count: , Items: }\r\n\r\n*/\r\n onLoadItems: PropTypes.func.isRequired,\r\n\r\n /** Funzione invocata per rimuovere un elemento dalla lista. Accetta come parametri l'item e la lista degli items.\r\n *\r\n * Invocare ref.setItems per aggiornare la lista.\r\n */\r\n onRemoveItem: PropTypes.func,\r\n\r\n /** Funzione invocata alla selezione di un elemento. */\r\n onSelected: PropTypes.func,\r\n\r\n /** Funzione invocata per modifcare un elemento dalla lista. Accetta come parametri l'item e la lista degli items.\r\n *\r\n * Invocare ref.setItems per aggiornare la lista.\r\n */\r\n onUpdateItem: PropTypes.func,\r\n\r\n /** Funzione che dato un item, determina cosa visualizzare nell'input di ricerca.\r\n *\r\n * Non necessaria se viene visualizzato l'intero item (ad esempio quando l'item corrisponde ad una stringa).\r\n */\r\n getSearchValueByItem: PropTypes.func,\r\n\r\n /**\r\n * Funzione che determina cosa salvare nella form dall'item selezionato (item -> value). Non necessaria se viene salvato l'intero item.\r\n */\r\n getValueByItem: PropTypes.func,\r\n\r\n /**\r\n * Promise che restituisce l'item dal valore iniziale salvato nella form (value -> item). Non necessaria se viene salvato l'intero item.\r\n */\r\n getItemByValue: PropTypes.func,\r\n\r\n /** Dimensione della pagina. Se passato questo argomento verrà gestito l'infiniteScroll (*vedi proprietà onLoadItems*) */\r\n pageSize: PropTypes.number,\r\n\r\n /** Esempio testuale del dato da inserire nel campo */\r\n placeholder: PropTypes.string,\r\n\r\n /** Presenta il campo in modalità sola lettura */\r\n readOnly: PropTypes.bool,\r\n\r\n /**\r\nFunzione per il rendering di un componente della lista.\r\n\r\nParametri:\r\n- item: elemento della lista.\r\n- filterValue: valore del filtro.\r\n */\r\n renderItem: PropTypes.func,\r\n\r\n /** Etichetta/Componente del titolo */\r\n title: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\r\n\r\n /** Icona del titolo, da utilizzare SOLO per info o per tooltip */\r\n titleIcon: PropTypes.element,\r\n\r\n /**\r\n * Controlli da effettuare sul campo. Per dettagli vedi documentazione su *Validation*\r\n * */\r\n validations: PropTypes.arrayOf(PropTypes.oneOfType(\r\n [\r\n PropTypes.string,\r\n PropTypes.object,\r\n PropTypes.func,\r\n ],\r\n )),\r\n};\r\n\r\nCombobox.defaultProps = {\r\n onSelected: undefined,\r\n className: undefined,\r\n listClassName: undefined,\r\n disabled: false,\r\n onKeyDown: undefined,\r\n placeholder: undefined,\r\n readOnly: false,\r\n title: undefined,\r\n titleIcon: undefined,\r\n icon: undefined,\r\n inputProps: undefined,\r\n renderItem: undefined,\r\n onAddItem: undefined,\r\n onRemoveItem: undefined,\r\n onUpdateItem: undefined,\r\n listRight: false,\r\n listTop: false,\r\n validations: undefined,\r\n formFieldName: undefined,\r\n helperText: undefined,\r\n componentHeight: undefined,\r\n getValueByItem: undefined,\r\n getSearchValueByItem: undefined,\r\n getItemByValue: undefined,\r\n debounceSearchTextDelay: 300,\r\n itemKeyProperty: undefined,\r\n pageSize: undefined,\r\n};\r\n\r\nCombobox.Item = SelectField.Item;\r\nCombobox.Validations = Validation.DefaultRules;\r\nCombobox.States = SelectField.States;\r\n\r\nexport default Combobox;\r\n","import {\r\n useCallback, useEffect, useRef,\r\n} from 'react';\r\n\r\nexport default function useSelectFirstItemOnBlur(loading, items, selectRef, dirtyValueRef, itemSelectedRef) {\r\n const selectFirstItemRef = useRef({ required: false });\r\n\r\n const selectFirstItem = useCallback(() => {\r\n // selectRef.current === null il componente è unmounted\r\n if (selectRef.current && selectFirstItemRef.current.required && dirtyValueRef.current && !itemSelectedRef.current) {\r\n selectFirstItemRef.current.required = false;\r\n // attenzione non seleziona il primo elemento !!!\r\n selectRef.current.selectItem(undefined);\r\n }\r\n }, [dirtyValueRef, itemSelectedRef, selectRef]);\r\n\r\n const resetPendingRequests = useCallback(() => {\r\n selectFirstItemRef.current.required = false;\r\n }, []);\r\n\r\n const onBlur = useCallback(() => {\r\n selectFirstItemRef.current.required = true;\r\n if (!loading) {\r\n // attenzione se l'evento arriva a seguito delle pressione del item sulla lista, non devo scegliere questo elemento\r\n setTimeout(selectFirstItem, 300);\r\n }\r\n }, [loading, selectFirstItem]);\r\n\r\n useEffect(selectFirstItem, [selectFirstItem]);\r\n\r\n return [resetPendingRequests, onBlur];\r\n}\r\n","/* eslint-disable jsx-a11y/label-has-associated-control */\r\n/* eslint-disable jsx-a11y/no-autofocus */\r\nimport React, {\r\n useState, useCallback, useEffect, useRef,\r\n} from 'react';\r\nimport { useHistory } from 'react-router';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport {\r\n Button, ButtonGroup, DropdownButton, Layout,\r\n} from 'framework-ui-components/Components/V2';\r\nimport AddIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/AddIcon';\r\nimport SearchIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/SearchIcon';\r\nimport { tributiContribuenteFromHomeUrl } from '../../models/urls';\r\nimport { getCercaContribuenti } from '../../apis/home';\r\nimport { setSoggettoAction } from '../../actions/soggetto';\r\nimport { TIPO_PERSONA } from '../../models/anagrafica';\r\nimport ModaleCreazioneContribuente from '../../areas/listaContribuenti/creazioneContribuente/ModaleCreazioneContribuente';\r\nimport Combobox from '../custom/ComboBox/CustomCombobox';\r\n\r\nconst CercaConVaiAllaLista = ({\r\n ...props\r\n}) => {\r\n const history = useHistory();\r\n const dispatch = useDispatch();\r\n\r\n const autocompleteRef = useRef();\r\n\r\n const studioSelezionato = useSelector((store) => store.appParams.studioSelezionato);\r\n const appParamVisualizzazione = useSelector((store) => !!store.appParams.visualizzazione);\r\n const codiceUfficioOperatore = useSelector((store) => store.appParams.codiceUfficioOperatore);\r\n\r\n const [contribuentiStudio, setContribuentiStudio] = useState(null);\r\n const [creaContribuente, setCreaContribuente] = useState({ aperto: false, tipologiaAnagrafica: TIPO_PERSONA.PERSONA_FISICA });\r\n const [creazioneInCorso, setCreazioneInCorso] = useState(false);\r\n\r\n useEffect(() => {\r\n if (studioSelezionato && !contribuentiStudio) {\r\n getCercaContribuenti('', studioSelezionato)\r\n .then((resp) => {\r\n if (resp) {\r\n const estp = resp.map((obj) => ({ ...obj, key: obj.IdAnagrafica }));\r\n setContribuentiStudio(estp);\r\n }\r\n }).catch((err) => {\r\n alert('Ups');\r\n });\r\n }\r\n }, [contribuentiStudio, history, studioSelezionato]);\r\n\r\n const gotoTibutiSoggetto = useCallback((item, val) => {\r\n if (item !== '' && item) {\r\n dispatch(setSoggettoAction({\r\n idAnagrafica: item.IdAnagrafica,\r\n idContribuente: item.IdContribuente,\r\n codiceFiscale: item.CodiceFiscale,\r\n nominativo: item.Denominazione,\r\n tipoPersona: item.TipoPersona,\r\n haPartitaIva: !!item.PartitaIva,\r\n partitaIva: item.PartitaIva,\r\n }));\r\n history.push(tributiContribuenteFromHomeUrl(item.CodiceFiscale, appParamVisualizzazione, codiceUfficioOperatore));\r\n }\r\n }, [appParamVisualizzazione, codiceUfficioOperatore, dispatch, history]);\r\n\r\n const aperturaModaleCreazioneAnagrafica = useCallback((tipologiaAnagrafica) => {\r\n setCreaContribuente({ aperto: true, tipologiaAnagrafica });\r\n setCreazioneInCorso(true);\r\n }, []);\r\n\r\n const chiusuraModaleCreazioneContribuente = useCallback((successo) => {\r\n setCreaContribuente({ aperto: false, tipologiaAnagrafica: TIPO_PERSONA.PERSONA_FISICA });\r\n setCreazioneInCorso(false);\r\n if (successo) {\r\n // il redirect al tronbuente lo fa la modale\r\n }\r\n }, []);\r\n\r\n const cercaContribuenti = (searchTerm) => new Promise((resolve) => {\r\n if (studioSelezionato > 0 && searchTerm) {\r\n getCercaContribuenti(searchTerm, studioSelezionato)\r\n .then((resp) => {\r\n if (resp) {\r\n const estp = resp.map((obj) => ({ ...obj, key: obj.IdAnagrafica }));\r\n resolve(estp);\r\n }\r\n }).catch((err) => {\r\n alert('Errore nel recupero dei contribuenti');\r\n });\r\n } else {\r\n resolve([]);\r\n }\r\n });\r\n\r\n return (\r\n
    \r\n
    Contribuenti
    \r\n
    \r\n
    \r\n \r\n \r\n (item ? item.CodiceFiscale : ''),\r\n // parse: (text, items) => items.find((i) => text && i.CodiceFiscale.toLowerCase() === text.toLowerCase()),\r\n // }}\r\n getSearchValueByItem={(soggetto) => (soggetto ? soggetto.CodiceFiscale : '')}\r\n renderItem={({ CodiceFiscale, Denominazione }, filterValue) => (\r\n \r\n )}\r\n onSelected={gotoTibutiSoggetto}\r\n onLoadItems={cercaContribuenti}\r\n placeholder=\"Cerca contribuenti per nome, cognome, o codice fiscale\"\r\n className=\"Combobox__no-style\"\r\n icon={()}\r\n itemKeyProperty=\"CodiceFiscale\"\r\n ref={autocompleteRef}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n Crea contribuente\r\n \r\n aperturaModaleCreazioneAnagrafica(TIPO_PERSONA.PERSONA_FISICA)}\r\n running={creazioneInCorso}\r\n >\r\n Persona fisica\r\n \r\n aperturaModaleCreazioneAnagrafica(TIPO_PERSONA.PERSONA_GIURIDICA)}\r\n running={creazioneInCorso}\r\n >\r\n Persona giuridica\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n );\r\n};\r\n\r\nCercaConVaiAllaLista.propTypes = {\r\n};\r\n\r\nexport default CercaConVaiAllaLista;\r\n","/* eslint-disable max-len */\r\nimport React from 'react';\r\nimport Icon from '../../Icons/Icon';\r\n\r\nexport default Icon(\r\n \r\n \r\n \r\n ,\r\n '0 0 24 24',\r\n 'OpenInNewIcon',\r\n);\r\n","import * as React from 'react';\r\n\r\nconst SvgComponent = (props) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n);\r\n\r\nexport default SvgComponent;\r\n","import * as React from 'react';\r\n\r\nconst SvgComponent = (props) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n F24\r\n \r\n \r\n \r\n \r\n \r\n);\r\n\r\nexport default SvgComponent;\r\n","import * as React from 'react';\r\n\r\nconst SvgComponent = (props) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 16\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n);\r\n\r\nexport default SvgComponent;\r\n","/* eslint-disable jsx-a11y/no-static-element-interactions */\r\n/* eslint-disable jsx-a11y/click-events-have-key-events */\r\n/* eslint-disable no-nested-ternary */\r\nimport React, { useState, useCallback, useEffect } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Button } from 'framework-ui-components/Components/V2';\r\nimport ExpandMoreIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/ExpandMoreIcon';\r\nimport ExpandLessIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/ExpandLessIcon';\r\nimport SvegliaIcon from '../icons/custom/SvegliaIcon';\r\n\r\n/*\r\n QUESTO È UN CUSTON NON COPIATELO SENZA CONSULTO UX\r\n */\r\nconst ListaAnniIntelligente = ({\r\n annualita, cambioAnnualita, annoSelezionato, width,\r\n}) => {\r\n const [elementiVisualizzati, setElementiVisualizzati] = useState(null);\r\n const [fading, setFading] = useState(null);\r\n const [scorriPremutoUp, setScorriPremutoUp] = useState(null);\r\n const [scorriPremutoDown, setScorriPremutoDown] = useState(null);\r\n\r\n useEffect(() => {\r\n setElementiVisualizzati(width > 1599 ? [0, 1, 2] : [0, 1, 2, 3, 4, 5]);\r\n }, [width]);\r\n\r\n const controllerSliderAnni = useCallback((event, idx) => {\r\n event.stopPropagation();\r\n setFading(idx > 0 ? 'up' : 'down');\r\n if (idx > 0) {\r\n setScorriPremutoDown(true);\r\n } else {\r\n setScorriPremutoUp(true);\r\n }\r\n\r\n setTimeout(() => {\r\n if (idx > 0) {\r\n setTimeout(() => {\r\n setFading(null);\r\n setElementiVisualizzati(elementiVisualizzati.map((elem) => elem + idx));\r\n }, 150);\r\n } else {\r\n setElementiVisualizzati(elementiVisualizzati.map((elem) => elem + idx));\r\n setFading(null);\r\n }\r\n }, 350);\r\n\r\n if (idx > 0) {\r\n setTimeout(() => {\r\n setScorriPremutoDown(false);\r\n }, 500);\r\n } else {\r\n setTimeout(() => {\r\n setScorriPremutoUp(false);\r\n }, 200);\r\n }\r\n }, [elementiVisualizzati]);\r\n\r\n return (\r\n
    1599 ? 'blocchetti-anni' : 'blocchetti-anni-no-height-limit'}>\r\n {annualita && elementiVisualizzati && annualita.map((anno, idx) => elementiVisualizzati.includes(idx) && (\r\n // eslint-disable-next-line react/no-array-index-key\r\n
    \r\n {idx !== 0 && idx !== elementiVisualizzati.length && idx === elementiVisualizzati[0] && annualita[idx - 1] && (\r\n \r\n
    Annualità
    \r\n
    {annualita[idx - 1]}
    \r\n
    \r\n )}\r\n cambioAnnualita(anno)}\r\n >\r\n
    Annualità
    \r\n
    {anno}
    \r\n {idx !== 0 && idx === elementiVisualizzati[0] && annualita[idx - 1] && !fading && (\r\n
    \r\n \r\n
    \r\n )}\r\n {(idx + 1) !== annualita.length && idx === elementiVisualizzati[elementiVisualizzati.length - 1] && annualita[idx + 1] && !fading && (\r\n
    \r\n \r\n
    \r\n )}\r\n
    \r\n {(idx + 1) !== annualita.length && idx === elementiVisualizzati[elementiVisualizzati.length - 1] && annualita[idx + 1] && (\r\n \r\n
    Annualità
    \r\n
    {annualita[idx + 1]}
    \r\n
    \r\n )}\r\n
    \r\n ))}\r\n {elementiVisualizzati && annualita.length < elementiVisualizzati.length && (\r\n \r\n )}\r\n
    \r\n );\r\n};\r\n\r\nListaAnniIntelligente.defaultProps = {\r\n annualita: [],\r\n annoSelezionato: null,\r\n width: null,\r\n};\r\n\r\nListaAnniIntelligente.propTypes = {\r\n annualita: PropTypes.arrayOf(\r\n PropTypes.number,\r\n ),\r\n cambioAnnualita: PropTypes.func.isRequired,\r\n annoSelezionato: PropTypes.number,\r\n width: PropTypes.number,\r\n};\r\n\r\nexport default ListaAnniIntelligente;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Tour } from 'framework-ui-components';\r\n\r\nconst TourScadenzario = ({ resolutionMAIN, chiudiTour }) => (\r\n chiudiTour(false)}\r\n slides={[\r\n './Content/images/tour/scadenzario/1.png',\r\n './Content/images/tour/scadenzario/2.png',\r\n './Content/images/tour/scadenzario/3.png',\r\n './Content/images/tour/scadenzario/4.png',\r\n ]}\r\n />\r\n);\r\n\r\nTourScadenzario.defaultProps = {\r\n resolutionMAIN: true,\r\n};\r\n\r\nTourScadenzario.propTypes = {\r\n resolutionMAIN: PropTypes.bool,\r\n chiudiTour: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default TourScadenzario;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Button, Layout } from 'framework-ui-components/Components/V2';\r\nimport { Formatter } from 'framework-ui-components';\r\nimport TourScadenzario from '../TourScadenzario';\r\n\r\nconst BlocchettoBottomScadenzario = ({\r\n riepilogoScadenzario, mostraTour, setMostraTour, resolutionMAIN, chiudiTour,\r\n}) => (\r\n
    \r\n
    \r\n
    \r\n \r\n  \r\n \r\n {riepilogoScadenzario.ProssimaScadenza && (\r\n \r\n \r\n \r\n \r\n
    \r\n Prossima scadenza\r\n
    \r\n
    \r\n \r\n
    \r\n |\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n  \r\n \r\n
    \r\n )}\r\n \r\n \r\n \r\n
    \r\n Tributi da ravvedere\r\n
    \r\n
    \r\n \r\n
    \r\n |\r\n
    \r\n
    \r\n \r\n
    \r\n {riepilogoScadenzario.TributiDaRavvedere}\r\n
    \r\n
    \r\n
    \r\n \r\n  \r\n \r\n \r\n \r\n \r\n
    \r\n Deleghe da ravvedere\r\n
    \r\n
    \r\n \r\n
    \r\n |\r\n
    \r\n
    \r\n \r\n
    \r\n {riepilogoScadenzario.NumeroDelegheNonPresentate}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n setMostraTour(true)}\r\n >\r\n Cos'è scadenzario\r\n \r\n {mostraTour && (\r\n \r\n )}\r\n
    \r\n
    \r\n);\r\n\r\nBlocchettoBottomScadenzario.defaultProps = {\r\n mostraTour: false,\r\n};\r\n\r\nBlocchettoBottomScadenzario.propTypes = {\r\n riepilogoScadenzario: PropTypes.shape({\r\n ProssimaScadenza: PropTypes.shape({\r\n DataScadenza: PropTypes.string,\r\n }),\r\n NumeroDelegheNonPresentate: PropTypes.number,\r\n TributiDaRavvedere: PropTypes.number,\r\n }).isRequired,\r\n mostraTour: PropTypes.bool,\r\n setMostraTour: PropTypes.func.isRequired,\r\n resolutionMAIN: PropTypes.bool.isRequired,\r\n chiudiTour: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default BlocchettoBottomScadenzario;\r\n","import * as React from 'react';\r\n\r\nconst SvgComponent = (props) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n);\r\n\r\nexport default SvgComponent;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Button, Layout } from 'framework-ui-components/Components/V2';\r\nimport OpenInNewIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/OpenInNewIcon';\r\nimport { useSelector } from 'react-redux';\r\nimport SignorinaClessidra from '../icons/custom/SignorinaClessidra';\r\n\r\nconst BlocchettoBottomPresentazione = ({\r\n riepilogoDeleghePresentateCartaceamente,\r\n riepilogoDeleghePresentateTelematicamente,\r\n riepilogoDeleghePresentateCbi,\r\n riepilogoDeleghePresentatePago,\r\n riepilogoDeleghePresentateFileTelematico,\r\n riepilogoDeleghePresentateCgnPos,\r\n}) => {\r\n const invioTelematicoCgnUrl = useSelector((store) => store.appParams.AdeleUrl);\r\n const f24CbiUrl = useSelector((store) => store.appParams.F24CBIUrl);\r\n const codiceUfficioSelezionato = useSelector((store) => store.appParams.ufficioSelezionato);\r\n\r\n return (\r\n
    \r\n {\r\n (riepilogoDeleghePresentateCartaceamente > 0\r\n || riepilogoDeleghePresentateTelematicamente > 0\r\n || riepilogoDeleghePresentateCbi > 0\r\n || riepilogoDeleghePresentatePago > 0\r\n || riepilogoDeleghePresentateFileTelematico > 0\r\n || riepilogoDeleghePresentateCgnPos > 0)\r\n ? (\r\n
    \r\n
    \r\n \r\n  \r\n \r\n {riepilogoDeleghePresentateCartaceamente > 0 && (\r\n \r\n \r\n \r\n \r\n
    \r\n Cartacea\r\n
    \r\n
    \r\n \r\n
    \r\n |\r\n
    \r\n
    \r\n \r\n
    \r\n {riepilogoDeleghePresentateCartaceamente}\r\n
    \r\n
    \r\n
    \r\n \r\n  \r\n \r\n
    \r\n )}\r\n { riepilogoDeleghePresentateTelematicamente > 0 && (\r\n \r\n \r\n \r\n \r\n
    \r\n Invio Telematico\r\n
    \r\n
    \r\n \r\n
    \r\n |\r\n
    \r\n
    \r\n \r\n
    \r\n {riepilogoDeleghePresentateTelematicamente}\r\n
    \r\n
    \r\n \r\n \r\n window.open(invioTelematicoCgnUrl, '_blank')}\r\n >\r\n \r\n \r\n \r\n
    \r\n \r\n  \r\n \r\n
    \r\n )}\r\n { riepilogoDeleghePresentateCbi > 0 && (\r\n \r\n \r\n \r\n \r\n
    \r\n F24 CBI\r\n
    \r\n
    \r\n \r\n
    \r\n |\r\n
    \r\n
    \r\n \r\n
    \r\n {riepilogoDeleghePresentateCbi}\r\n
    \r\n
    \r\n \r\n \r\n window.open(`${f24CbiUrl}/#/?codiceUfficio=${codiceUfficioSelezionato}`, '_blank')}\r\n >\r\n \r\n \r\n \r\n
    \r\n \r\n  \r\n \r\n
    \r\n )}\r\n { riepilogoDeleghePresentatePago > 0 && (\r\n \r\n \r\n \r\n \r\n
    \r\n pagoF24\r\n
    \r\n
    \r\n \r\n
    \r\n |\r\n
    \r\n
    \r\n \r\n
    \r\n {riepilogoDeleghePresentatePago}\r\n
    \r\n
    \r\n
    \r\n \r\n  \r\n \r\n
    \r\n )}\r\n {riepilogoDeleghePresentateFileTelematico > 0 && (\r\n \r\n \r\n \r\n \r\n
    \r\n File telematico\r\n
    \r\n
    \r\n \r\n
    \r\n |\r\n
    \r\n
    \r\n \r\n
    \r\n {riepilogoDeleghePresentateFileTelematico}\r\n
    \r\n
    \r\n
    \r\n \r\n  \r\n \r\n
    \r\n )}\r\n {riepilogoDeleghePresentateCgnPos > 0 && (\r\n \r\n \r\n \r\n
    \r\n CGN POS\r\n
    \r\n
    \r\n \r\n
    \r\n |\r\n
    \r\n
    \r\n \r\n
    \r\n {riepilogoDeleghePresentateCgnPos}\r\n
    \r\n
    \r\n
    \r\n )}\r\n
    \r\n
    \r\n ) : (\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n Nessuna delega in presentazione\r\n
    \r\n
    \r\n
    \r\n
    \r\n )\r\n }\r\n
    \r\n );\r\n};\r\n\r\nBlocchettoBottomPresentazione.defaultProps = {\r\n};\r\n\r\nBlocchettoBottomPresentazione.propTypes = {\r\n riepilogoDeleghePresentateCartaceamente: PropTypes.number.isRequired,\r\n riepilogoDeleghePresentateTelematicamente: PropTypes.number.isRequired,\r\n riepilogoDeleghePresentateCbi: PropTypes.number.isRequired,\r\n riepilogoDeleghePresentatePago: PropTypes.number.isRequired,\r\n riepilogoDeleghePresentateFileTelematico: PropTypes.number.isRequired,\r\n riepilogoDeleghePresentateCgnPos: PropTypes.number.isRequired,\r\n};\r\n\r\nexport default BlocchettoBottomPresentazione;\r\n","import * as React from 'react';\r\n\r\nconst SvgComponent = (props) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n);\r\n\r\nexport default SvgComponent;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Button, Layout } from 'framework-ui-components/Components/V2';\r\nimport OpenInNewIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/OpenInNewIcon';\r\nimport { useSelector } from 'react-redux';\r\nimport SignorinaFelice from '../icons/custom/SignorinaFelice';\r\n\r\nconst BlocchettoBottomScartate = ({\r\n riepilogoDelegheScartateTelematicamente,\r\n riepilogoDelegheScartateCbi,\r\n riepilogoDelegheScartatePago,\r\n riepilogoDelegheScartateCgnPos,\r\n}) => {\r\n const invioTelematicoCgnUrl = useSelector((store) => store.appParams.AdeleUrl);\r\n const f24CbiUrl = useSelector((store) => store.appParams.F24CBIUrl);\r\n const codiceUfficioSelezionato = useSelector((store) => store.appParams.ufficioSelezionato);\r\n\r\n return (\r\n
    \r\n {\r\n (riepilogoDelegheScartateTelematicamente > 0\r\n || riepilogoDelegheScartateCbi > 0\r\n || riepilogoDelegheScartatePago > 0\r\n || riepilogoDelegheScartateCgnPos > 0)\r\n ? (\r\n
    \r\n
    \r\n \r\n  \r\n \r\n { riepilogoDelegheScartateTelematicamente > 0 && (\r\n \r\n \r\n \r\n \r\n
    \r\n Invio telematico\r\n
    \r\n
    \r\n \r\n
    \r\n |\r\n
    \r\n
    \r\n \r\n
    \r\n {riepilogoDelegheScartateTelematicamente}\r\n
    \r\n
    \r\n \r\n \r\n window.open(invioTelematicoCgnUrl, '_blank')}\r\n >\r\n \r\n \r\n \r\n
    \r\n \r\n  \r\n \r\n
    \r\n )}\r\n { riepilogoDelegheScartateCbi > 0 && (\r\n \r\n \r\n \r\n \r\n
    \r\n F24 CBI\r\n
    \r\n
    \r\n \r\n
    \r\n |\r\n
    \r\n
    \r\n \r\n
    \r\n {riepilogoDelegheScartateCbi}\r\n
    \r\n
    \r\n \r\n \r\n window.open(`${f24CbiUrl}/#/?codiceUfficio=${codiceUfficioSelezionato}`, '_blank')}\r\n >\r\n \r\n \r\n \r\n
    \r\n \r\n  \r\n \r\n
    \r\n )}\r\n { riepilogoDelegheScartatePago > 0 && (\r\n \r\n \r\n \r\n \r\n
    \r\n pagoF24\r\n
    \r\n
    \r\n \r\n
    \r\n |\r\n
    \r\n
    \r\n \r\n
    \r\n {riepilogoDelegheScartatePago}\r\n
    \r\n
    \r\n
    \r\n \r\n  \r\n \r\n
    \r\n )}\r\n {riepilogoDelegheScartateCgnPos > 0 && (\r\n \r\n \r\n \r\n
    \r\n CGN POS\r\n
    \r\n
    \r\n \r\n
    \r\n |\r\n
    \r\n
    \r\n \r\n
    \r\n {riepilogoDelegheScartateCgnPos}\r\n
    \r\n
    \r\n
    \r\n )}\r\n
    \r\n
    \r\n ) : (\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n Nessuna delega scartata\r\n
    \r\n
    \r\n
    \r\n
    \r\n )\r\n }\r\n
    \r\n );\r\n};\r\n\r\nBlocchettoBottomScartate.defaultProps = {\r\n};\r\n\r\nBlocchettoBottomScartate.propTypes = {\r\n riepilogoDelegheScartateTelematicamente: PropTypes.number.isRequired,\r\n riepilogoDelegheScartateCbi: PropTypes.number.isRequired,\r\n riepilogoDelegheScartatePago: PropTypes.number.isRequired,\r\n riepilogoDelegheScartateCgnPos: PropTypes.number.isRequired,\r\n};\r\n\r\nexport default BlocchettoBottomScartate;\r\n","/* eslint-disable jsx-a11y/no-static-element-interactions */\r\n/* eslint-disable jsx-a11y/click-events-have-key-events */\r\n/* eslint-disable no-nested-ternary */\r\nimport React, { useEffect, useState } from 'react';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport { setAppParamsAction } from 'framework-taskforce/actions/appParams';\r\nimport Log from 'framework-taskforce/utils/log';\r\nimport { Layout, ViewportProvider } from 'framework-ui-components/Components/V2';\r\nimport useViewport, {\r\n MAIN,\r\n} from 'framework-ui-components/Components/V2/Hooks/useViewport';\r\nimport OpenInNewIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/OpenInNewIcon';\r\nimport { useHistory } from 'react-router';\r\nimport { Spinner } from 'framework-ui-components';\r\nimport {\r\n getOttieniAnnualita,\r\n getOttieniRiepilogoDeleghePresentate,\r\n getOttieniRiepilogoDelegheScartate,\r\n getOttieniRiepilogoScadenzario,\r\n} from '../../apis/home';\r\nimport OminoDioBono from '../icons/custom/OminoDioBono';\r\nimport SignorinaCheSpostaF24 from '../icons/custom/SignorinaCheSpostaF24';\r\nimport ListaAnniIntelligente from './ListaAnniIntelligente';\r\nimport { delegheUrl, urlScadenzario } from '../../models/urls';\r\nimport { MODALITA_PRESENTAZIONE } from '../../models/delega';\r\nimport BlocchettoBottomScadenzario from './BlocchettoBottomScadenzario';\r\nimport BlocchettoBottomPresentazione from './BlocchettoBottomPresentazione';\r\nimport BlocchettoBottomScartate from './BlocchettoBottomScartate';\r\n\r\nconst SituazioneTributiDeleghe = ({ ...props }) => {\r\n const dispatch = useDispatch();\r\n\r\n const { width } = useViewport();\r\n\r\n const studioSelezionato = useSelector((store) => store.appParams.studioSelezionato);\r\n const appParamVisualizzazione = useSelector((store) => !!store.appParams.visualizzazione);\r\n const codiceUfficioOperatore = useSelector((store) => store.appParams.codiceUfficioOperatore);\r\n\r\n const [annualita, setAnnualita] = useState(null);\r\n const [annualitaSelezionato, setAnnualitaSelezionato] = useState(null);\r\n const [riepilogoScadenzario, setRiepilogoScadenzario] = useState(null);\r\n const [riepilogoDeleghePresentate, setRiepilogoDeleghePresentate] = useState(null);\r\n const [riepilogoDeleghePresentateCartaceamente, setRiepilogoDeleghePresentateCartaceamente] = useState(null);\r\n const [riepilogoDeleghePresentateTelematicamente, setRiepilogoDeleghePresentateTelematicamente] = useState(null);\r\n const [riepilogoDeleghePresentateCbi, setRiepilogoDeleghePresentateCbi] = useState(null);\r\n const [riepilogoDeleghePresentatePago, setRiepilogoDeleghePresentatePago] = useState(null);\r\n const [riepilogoDeleghePresentateFileTelematico, setRiepilogoDeleghePresentateFileTelematico] = useState(null);\r\n const [riepilogoDeleghePresentateCgnPos, setRiepilogoDeleghePresentateCgnPos] = useState(0);\r\n const [riepilogoDelegheScartate, setRiepilogoDelegheScartate] = useState(null);\r\n const [riepilogoDelegheScartateTelematicamente, setRiepilogoDelegheScartateTelematicamente] = useState(null);\r\n const [riepilogoDelegheScartateCbi, setRiepilogoDelegheScartateCbi] = useState(null);\r\n const [riepilogoDelegheScartatePago, setRiepilogoDelegheScartatePago] = useState(null);\r\n const [riepilogoDelegheScartateCgnPos, setRiepilogoDelegheScartateCgnPos] = useState(null);\r\n const [mostraTour, setMostraTour] = useState(false);\r\n\r\n const history = useHistory();\r\n const { resolution } = useViewport();\r\n const resolutionMAIN = resolution === MAIN;\r\n\r\n const chiudiTour = () => {\r\n localStorage.setItem('mostraTour-scadenzario', false);\r\n setMostraTour(false);\r\n };\r\n\r\n useEffect(() => {\r\n if (!annualita && studioSelezionato) {\r\n // reset data on close\r\n getOttieniAnnualita(studioSelezionato)\r\n .then((res) => {\r\n if (res.Success && res.Result) {\r\n setAnnualita(res.Result);\r\n } else {\r\n setAnnualita([]);\r\n }\r\n }).catch((err) => {\r\n Log.error(err);\r\n setAnnualita([(new Date()).getFullYear()]);\r\n });\r\n }\r\n }, [annualita, studioSelezionato]);\r\n\r\n useEffect(() => {\r\n if (annualita && !annualitaSelezionato) {\r\n const questAnno = (new Date()).getFullYear();\r\n setAnnualitaSelezionato(annualita.includes(questAnno) ? questAnno : annualita[0]);\r\n }\r\n }, [annualita, annualitaSelezionato, studioSelezionato]);\r\n\r\n useEffect(() => {\r\n if (annualitaSelezionato) {\r\n setRiepilogoScadenzario(null);\r\n getOttieniRiepilogoScadenzario(studioSelezionato, annualitaSelezionato)\r\n .then((res) => {\r\n if (res.Success && res.Result) {\r\n setRiepilogoScadenzario(res.Result);\r\n } else {\r\n setRiepilogoScadenzario(null);\r\n }\r\n }).catch((err) => {\r\n Log.error(err);\r\n setAnnualita([(new Date()).getFullYear()]);\r\n });\r\n\r\n setRiepilogoDeleghePresentate(null);\r\n setRiepilogoDeleghePresentateCartaceamente(null);\r\n setRiepilogoDeleghePresentateTelematicamente(null);\r\n setRiepilogoDeleghePresentateCbi(null);\r\n setRiepilogoDeleghePresentatePago(null);\r\n setRiepilogoDeleghePresentateFileTelematico(null);\r\n setRiepilogoDeleghePresentateCgnPos(null);\r\n\r\n getOttieniRiepilogoDeleghePresentate(studioSelezionato, annualitaSelezionato)\r\n .then((res) => {\r\n if (res.Success && res.Result) {\r\n setRiepilogoDeleghePresentate(res.Result);\r\n } else {\r\n setRiepilogoDeleghePresentate(null);\r\n }\r\n }).catch((err) => {\r\n Log.error(err);\r\n setAnnualita([(new Date()).getFullYear()]);\r\n });\r\n\r\n setRiepilogoDelegheScartate(null);\r\n setRiepilogoDelegheScartateTelematicamente(null);\r\n setRiepilogoDelegheScartateCbi(null);\r\n setRiepilogoDelegheScartatePago(null);\r\n setRiepilogoDelegheScartateCgnPos(null);\r\n\r\n getOttieniRiepilogoDelegheScartate(studioSelezionato, annualitaSelezionato)\r\n .then((res) => {\r\n if (res.Success && res.Result) {\r\n setRiepilogoDelegheScartate(res.Result);\r\n } else {\r\n setRiepilogoDelegheScartate(null);\r\n }\r\n }).catch((err) => {\r\n Log.error(err);\r\n setAnnualita([(new Date()).getFullYear()]);\r\n });\r\n } else {\r\n setRiepilogoScadenzario(null);\r\n setRiepilogoDeleghePresentate(null);\r\n setRiepilogoDelegheScartate(null);\r\n }\r\n }, [annualita, annualitaSelezionato, studioSelezionato]);\r\n\r\n useEffect(() => {\r\n if (riepilogoDeleghePresentate\r\n && !riepilogoDeleghePresentateCartaceamente) {\r\n const cartacee = riepilogoDeleghePresentate\r\n .TotaleDeleghePerModalitaPresentazione\r\n .find((oggetto) => oggetto.ModalitaPresentazione === MODALITA_PRESENTAZIONE.CARTACEA) || { Totale: 0 };\r\n\r\n setRiepilogoDeleghePresentateCartaceamente(cartacee.Totale || 0);\r\n }\r\n }, [riepilogoDeleghePresentate, riepilogoDeleghePresentateCartaceamente]);\r\n\r\n useEffect(() => {\r\n if (riepilogoDeleghePresentate\r\n && riepilogoDeleghePresentate.TotaleDeleghePerModalitaPresentazione\r\n && !riepilogoDeleghePresentateTelematicamente) {\r\n const telematicamente = riepilogoDeleghePresentate\r\n .TotaleDeleghePerModalitaPresentazione\r\n .find((oggetto) => oggetto.ModalitaPresentazione === MODALITA_PRESENTAZIONE.INVIO_TELEMATICO_INTERMEDIARIO_ADELE) || { Totale: 0 };\r\n\r\n setRiepilogoDeleghePresentateTelematicamente(telematicamente.Totale || 0);\r\n }\r\n }, [riepilogoDeleghePresentate, riepilogoDeleghePresentateTelematicamente]);\r\n\r\n useEffect(() => {\r\n if (riepilogoDeleghePresentate\r\n && riepilogoDeleghePresentate.TotaleDeleghePerModalitaPresentazione\r\n && !riepilogoDeleghePresentateCbi) {\r\n const cbi = riepilogoDeleghePresentate\r\n .TotaleDeleghePerModalitaPresentazione\r\n .find((oggetto) => oggetto.ModalitaPresentazione === MODALITA_PRESENTAZIONE.INVIO_TELEMATICO_INTERMEDIARIO_CBI) || { Totale: 0 };\r\n\r\n setRiepilogoDeleghePresentateCbi(cbi.Totale || 0);\r\n }\r\n }, [riepilogoDeleghePresentate, riepilogoDeleghePresentateCbi]);\r\n\r\n useEffect(() => {\r\n if (riepilogoDeleghePresentate\r\n && riepilogoDeleghePresentate.TotaleDeleghePerModalitaPresentazione\r\n && !riepilogoDeleghePresentatePago) {\r\n const pago = riepilogoDeleghePresentate\r\n .TotaleDeleghePerModalitaPresentazione.find((oggetto) => oggetto.ModalitaPresentazione === MODALITA_PRESENTAZIONE.PAGO_F24) || { Totale: 0 };\r\n\r\n setRiepilogoDeleghePresentatePago(pago.Totale || 0);\r\n }\r\n }, [riepilogoDeleghePresentate, riepilogoDeleghePresentatePago]);\r\n\r\n useEffect(() => {\r\n if (riepilogoDeleghePresentate\r\n && riepilogoDeleghePresentate.TotaleDeleghePerModalitaPresentazione\r\n && !riepilogoDeleghePresentateCgnPos) {\r\n const pago = riepilogoDeleghePresentate\r\n .TotaleDeleghePerModalitaPresentazione.find((oggetto) => oggetto.ModalitaPresentazione === MODALITA_PRESENTAZIONE.CGN_POS) || { Totale: 0 };\r\n\r\n setRiepilogoDeleghePresentateCgnPos(pago.Totale || 0);\r\n }\r\n }, [riepilogoDeleghePresentate, riepilogoDeleghePresentateCgnPos]);\r\n\r\n useEffect(() => {\r\n if (riepilogoDeleghePresentate\r\n && riepilogoDeleghePresentate.TotaleDeleghePerModalitaPresentazione\r\n && !riepilogoDeleghePresentateFileTelematico) {\r\n const fileContribuente = riepilogoDeleghePresentate\r\n .TotaleDeleghePerModalitaPresentazione\r\n .find((oggetto) => oggetto.ModalitaPresentazione === MODALITA_PRESENTAZIONE.FILE_TELEMATICO_CONTRIBUENTE) || { Totale: 0 };\r\n const fileIntermediario = riepilogoDeleghePresentate\r\n .TotaleDeleghePerModalitaPresentazione\r\n .find((oggetto) => oggetto.ModalitaPresentazione === MODALITA_PRESENTAZIONE.FILE_TELEMATICO_INTERMEDIARIO) || { Totale: 0 };\r\n\r\n setRiepilogoDeleghePresentateFileTelematico(fileContribuente.Totale + fileIntermediario.Totale);\r\n }\r\n }, [riepilogoDeleghePresentate, riepilogoDeleghePresentateFileTelematico]);\r\n\r\n useEffect(() => {\r\n if (riepilogoDelegheScartate\r\n && riepilogoDelegheScartate.TotaleDelegheScartatePerModalitaPresentazione\r\n && !riepilogoDelegheScartateTelematicamente) {\r\n const telematico = riepilogoDelegheScartate\r\n .TotaleDelegheScartatePerModalitaPresentazione\r\n .find((oggetto) => oggetto.ModalitaPresentazione === MODALITA_PRESENTAZIONE.INVIO_TELEMATICO_INTERMEDIARIO_ADELE) || { Totale: 0 };\r\n\r\n setRiepilogoDelegheScartateTelematicamente(telematico.Totale || 0);\r\n }\r\n }, [riepilogoDelegheScartate, riepilogoDelegheScartateTelematicamente]);\r\n\r\n useEffect(() => {\r\n if (riepilogoDelegheScartate\r\n && riepilogoDelegheScartate.TotaleDelegheScartatePerModalitaPresentazione\r\n && !riepilogoDelegheScartateCbi) {\r\n const cbi = riepilogoDelegheScartate\r\n .TotaleDelegheScartatePerModalitaPresentazione\r\n .find((oggetto) => oggetto.ModalitaPresentazione === MODALITA_PRESENTAZIONE.INVIO_TELEMATICO_INTERMEDIARIO_CBI) || { Totale: 0 };\r\n\r\n setRiepilogoDelegheScartateCbi(cbi.Totale || 0);\r\n }\r\n }, [riepilogoDelegheScartate, riepilogoDelegheScartateCbi]);\r\n\r\n useEffect(() => {\r\n if (riepilogoDelegheScartate\r\n && riepilogoDelegheScartate.TotaleDelegheScartatePerModalitaPresentazione\r\n && !riepilogoDelegheScartatePago) {\r\n const pago = riepilogoDelegheScartate\r\n .TotaleDelegheScartatePerModalitaPresentazione\r\n .find((oggetto) => oggetto.ModalitaPresentazione === MODALITA_PRESENTAZIONE.PAGO_F24) || { Totale: 0 };\r\n\r\n setRiepilogoDelegheScartatePago(pago.Totale || 0);\r\n }\r\n }, [riepilogoDelegheScartate, riepilogoDelegheScartatePago]);\r\n\r\n useEffect(() => {\r\n if (riepilogoDelegheScartate\r\n && riepilogoDelegheScartate.TotaleDelegheScartatePerModalitaPresentazione\r\n && !riepilogoDelegheScartateCgnPos) {\r\n const pago = riepilogoDelegheScartate\r\n .TotaleDelegheScartatePerModalitaPresentazione\r\n .find((oggetto) => oggetto.ModalitaPresentazione === MODALITA_PRESENTAZIONE.CGN_POS) || { Totale: 0 };\r\n\r\n setRiepilogoDelegheScartateCgnPos(pago.Totale || 0);\r\n }\r\n }, [riepilogoDelegheScartate, riepilogoDelegheScartateCgnPos]);\r\n\r\n return (\r\n \r\n
    \r\n
    Situazione tributi e deleghe
    \r\n
    \r\n {!annualita && ()}\r\n {annualita && annualita.length > 0 && (\r\n \r\n )}\r\n {annualita && annualita.length === 0 && (\r\n
    \r\n \r\n
    \r\n Perbacco! Non ho trovato niente!\r\n
    \r\n
    \r\n )}\r\n {!riepilogoScadenzario && ()}\r\n {width > 1599 ? (\r\n riepilogoScadenzario && (\r\n
    \r\n \r\n \r\n 0 ? 'blocco-dettaglio-top' : 'blocco-stato-zero'}\r\n onClick={\r\n riepilogoScadenzario.TotaleScadenze > 0\r\n ? () => history.push(urlScadenzario(annualitaSelezionato))\r\n : () => {}\r\n }\r\n >\r\n \r\n \r\n
    \r\n Scadenzario\r\n
    \r\n
    \r\n \r\n {riepilogoScadenzario.TotaleScadenze > 0 && (\r\n \r\n )}\r\n \r\n
    \r\n {riepilogoScadenzario.TotaleScadenze > 0 && (
    {riepilogoScadenzario.TotaleScadenze}
    )}\r\n
    \r\n {riepilogoScadenzario.TotaleScadenze > 0 ? 'Scadenze ancora da gestire' : 'Nessuna scadenza da gestire'}\r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n {riepilogoDeleghePresentate && (\r\n \r\n {\r\n dispatch(setAppParamsAction({\r\n tabSelected: 3,\r\n inPresentazione: true,\r\n }));\r\n history.push(delegheUrl(appParamVisualizzazione, codiceUfficioOperatore, false, true, annualitaSelezionato));\r\n }}\r\n >\r\n \r\n \r\n
    \r\n Deleghe in presentazione\r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    {riepilogoDeleghePresentate.TotaleDelegheInPresentazione}
    \r\n
    \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n {riepilogoDelegheScartate && (\r\n \r\n {\r\n dispatch(setAppParamsAction({\r\n tabSelected: 3,\r\n scartate: true,\r\n }));\r\n history.push(delegheUrl(appParamVisualizzazione, codiceUfficioOperatore, true, false, annualitaSelezionato));\r\n }}\r\n >\r\n \r\n \r\n
    \r\n Deleghe scartate\r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    {riepilogoDelegheScartate.TotaleDelegheScartate}
    \r\n
    \r\n \r\n \r\n )}\r\n \r\n {width > 1919 && (\r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n )}\r\n \r\n
    \r\n )\r\n ) : (\r\n
    \r\n {riepilogoScadenzario && (\r\n \r\n \r\n 0 ? 'blocco-dettaglio-big-left' : 'blocco-dettaglio-big-left-zero'}\r\n onClick={\r\n riepilogoScadenzario.TotaleScadenze > 0\r\n ? () => history.push(urlScadenzario(annualitaSelezionato))\r\n : () => {}\r\n }\r\n >\r\n \r\n \r\n
    \r\n Scadenzario\r\n
    \r\n
    \r\n \r\n {riepilogoScadenzario.TotaleScadenze > 0 && (\r\n \r\n )}\r\n \r\n
    \r\n {riepilogoScadenzario.TotaleScadenze > 0 && (
    {riepilogoScadenzario.TotaleScadenze}
    )}\r\n
    \r\n {riepilogoScadenzario.TotaleScadenze > 0 ? 'Scadenze ancora da gestire' : 'Nessuna scadenza da gestire'}\r\n
    \r\n
    \r\n \r\n \r\n \r\n {riepilogoScadenzario && (\r\n \r\n \r\n
    \r\n )}\r\n \r\n {width > 1480 && (\r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n )}\r\n \r\n )}\r\n {riepilogoDeleghePresentate && (\r\n \r\n \r\n {\r\n dispatch(setAppParamsAction({\r\n tabSelected: 3,\r\n inPresentazione: true,\r\n }));\r\n history.push(delegheUrl(appParamVisualizzazione, codiceUfficioOperatore, false, true, annualitaSelezionato));\r\n }}\r\n >\r\n \r\n \r\n
    \r\n Deleghe in presentazione\r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    {riepilogoDeleghePresentate.TotaleDelegheInPresentazione}
    \r\n
    \r\n \r\n \r\n \r\n {riepilogoDeleghePresentate && (\r\n \r\n \r\n
    \r\n )}\r\n \r\n \r\n )}\r\n {riepilogoDelegheScartate && (\r\n \r\n \r\n {\r\n dispatch(setAppParamsAction({\r\n tabSelected: 3,\r\n scartate: true,\r\n }));\r\n history.push(delegheUrl(appParamVisualizzazione, codiceUfficioOperatore, true, false, annualitaSelezionato));\r\n }}\r\n >\r\n \r\n \r\n
    \r\n Deleghe scartate\r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    {riepilogoDelegheScartate.TotaleDelegheScartate}
    \r\n
    \r\n \r\n \r\n \r\n {riepilogoDelegheScartate && (\r\n \r\n \r\n
    \r\n )}\r\n \r\n \r\n )}\r\n
    \r\n )}\r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nSituazioneTributiDeleghe.propTypes = {\r\n};\r\n\r\nexport default SituazioneTributiDeleghe;\r\n","import React, { useMemo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Panel } from 'framework-ui-components/Components/V2';\r\nimport { TIPO_SEGNALAZIONE } from '../models/segnalazioni';\r\n\r\nconst SegnalazioniViewer = ({\r\n segnalazioni, className,\r\n}) => {\r\n const [\r\n segnalazionErr,\r\n segnalazioniWarn,\r\n segnalazioniInfo] = useMemo(() => segnalazioni.reduce((res, el) => {\r\n // eslint-disable-next-line no-nested-ternary\r\n res[el.type === TIPO_SEGNALAZIONE.Errore\r\n ? 0 : el.type === TIPO_SEGNALAZIONE.Avviso\r\n ? 1 : 2].push(el);\r\n return res;\r\n }, [[], [], []]), [segnalazioni]);\r\n return (\r\n
    \r\n {(segnalazionErr.length > 0) && (\r\n \r\n {segnalazionErr.map((errore, idx) => (\r\n {errore.msg}\r\n
    \r\n ))}\r\n
    \r\n )}\r\n />\r\n ) }\r\n {(segnalazioniWarn.length > 0) && (\r\n \r\n {segnalazioniWarn.map((warning, idx) => (\r\n {warning.msg}\r\n
    \r\n ))}\r\n
    \r\n )}\r\n />\r\n ) }\r\n {(segnalazioniInfo.length > 0) && (\r\n \r\n {segnalazioniInfo.map((info, idx) => (\r\n {info.msg}\r\n
    \r\n ))}\r\n
    \r\n )}\r\n />\r\n ) }\r\n
    \r\n );\r\n};\r\n\r\nSegnalazioniViewer.defaultProps = {\r\n segnalazioni: [],\r\n className: null,\r\n};\r\n\r\nSegnalazioniViewer.propTypes = {\r\n segnalazioni: PropTypes.arrayOf(\r\n PropTypes.shape({\r\n type: PropTypes.number.isRequired,\r\n msg: PropTypes.string.isRequired,\r\n }),\r\n ),\r\n className: PropTypes.string,\r\n};\r\n\r\nexport default SegnalazioniViewer;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\nimport useComponentId from '../../Hooks/useComponentId';\r\nimport { NOOP } from '../../../../utils/const';\r\nimport useForwardRefOrRef from '../../../Hooks/useForwardRefOrRef';\r\n\r\nfunction getCheckboxClassName({\r\n disabled, readOnly, className, switchMode, checked,\r\n}) {\r\n return cns(\r\n 'v2-checkbox-field',\r\n {\r\n 'v2-checkbox-field--check': !switchMode,\r\n 'v2-checkbox-field--switch': switchMode,\r\n 'v2-checkbox-field--checked': checked,\r\n 'v2-checkbox-field--readOnly': readOnly,\r\n 'v2-checkbox-field--disabled': disabled,\r\n },\r\n className,\r\n );\r\n}\r\n\r\n/**\r\nComponente per l'inserimento non assistito di un dato.\r\n\r\n__Il componente è la versione controlled di `Checkbox`. Se possibile utilizzare questo componente__\r\n\r\nIl componente è \"controlled\" questo significa che il valore dell'input è gestito esternamente dal componente mediante\r\nla proprietà checked e onChange.\r\n\r\nRef: Input reference.\r\n*/\r\nconst CheckboxField = React.forwardRef(({\r\n className, disabled, onChange, readOnly, label, checked, inputProps, switch: switchMode,\r\n}, ref) => {\r\n const id = useComponentId();\r\n const inputRef = useForwardRefOrRef(ref);\r\n\r\n return (\r\n \r\n onChange(!checked, evt)}\r\n onChange={NOOP}\r\n type=\"checkbox\"\r\n />\r\n \r\n
    \r\n );\r\n});\r\n\r\nCheckboxField.propTypes = {\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n\r\n /** Presenta il campo in modalità disabilitato */\r\n disabled: PropTypes.bool,\r\n\r\n /** Proprietà specifiche del componente input. ATTENZIONE: queste proprità possono essere sovrascitte dal framework. */\r\n // eslint-disable-next-line react/forbid-prop-types\r\n inputProps: PropTypes.object,\r\n\r\n /** Funzione invocata alla modifica del valore. restituisce il nuovo valore e l'evento come secondo parametro. */\r\n onChange: PropTypes.func,\r\n\r\n /** Presenta il campo in modalità sola lettura */\r\n readOnly: PropTypes.bool,\r\n\r\n /** Etichetta del titolo, tipicamente una stringa */\r\n label: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\r\n\r\n /** Indica se mostrare uno switch al posto della checkbox */\r\n switch: PropTypes.bool,\r\n\r\n /** Valore presentato dalla input */\r\n checked: PropTypes.bool,\r\n};\r\n\r\nCheckboxField.defaultProps = {\r\n className: undefined,\r\n disabled: false,\r\n onChange: NOOP,\r\n readOnly: false,\r\n label: undefined,\r\n inputProps: undefined,\r\n switch: false,\r\n checked: false,\r\n};\r\n\r\nexport default CheckboxField;\r\n","import React, {\r\n useState, useEffect, useCallback, useRef,\r\n} from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useSelector } from 'react-redux';\r\nimport { SegnalazioniViewer } from 'framework-taskforce';\r\nimport { logApiError } from 'framework-taskforce/utils/log';\r\nimport { CheckboxField, Modal, Button } from 'framework-ui-components/Components/V2';\r\nimport { getOttieniSceltaQrCode, postAggiornaSceltQrCodePagoF24 } from '../../apis/pagoF24';\r\n\r\nconst ModaleSceltaStampaConQr = ({\r\n onClose,\r\n}) => {\r\n const codiceUfficio = useSelector((store) => store.appParams.ufficioSelezionato);\r\n\r\n const [loading, setLoading] = useState(false);\r\n const [valoreQr, setValoreQr] = useState(null);\r\n const [cambiato, setCambiato] = useState(false);\r\n const [segnalazioni, setSegnalazioni] = useState([]);\r\n\r\n const onToggle = (val) => {\r\n setCambiato(`${val}` !== `${valoreQr}`);\r\n setValoreQr(val);\r\n };\r\n\r\n useEffect(() => {\r\n if (valoreQr === null) {\r\n getOttieniSceltaQrCode(codiceUfficio)\r\n .then((response) => {\r\n if (response.Success) {\r\n setValoreQr(response.Result);\r\n }\r\n }).catch((err) => {\r\n logApiError(err);\r\n setLoading(false);\r\n });\r\n }\r\n }, [codiceUfficio, valoreQr]);\r\n\r\n const salvaOpzioneQr = useCallback(() => {\r\n setLoading(true);\r\n postAggiornaSceltQrCodePagoF24({ codiceUfficio, permetteQrCode: valoreQr })\r\n .then((res) => {\r\n setLoading(false);\r\n if (res.Success) {\r\n onClose(true);\r\n } else {\r\n setSegnalazioni(res.DetectedProblems);\r\n setLoading(false);\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n }, [codiceUfficio, valoreQr, onClose]);\r\n\r\n return (\r\n \r\n \r\n QR in delega\r\n \r\n \r\n \r\n
    \r\n Grazie al QR stampato direttamente in delega, il tuo\r\n
    \r\n cliente potrà pagare comodamente i tributi con il\r\n
    \r\n servizio di pagamenti digitali tramite carta di credito\r\n
    messo a disposizione da CGN Fintech.\r\n
    \r\n
    \r\n Non dovrai sottoscrivere nessun contratto, il servizio è\r\n
    \r\n già incluso in F24.\r\n
    \r\n
    \r\n Impostazioni\r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nModaleSceltaStampaConQr.defaultProps = {\r\n};\r\n\r\nModaleSceltaStampaConQr.propTypes = {\r\n onClose: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default ModaleSceltaStampaConQr;\r\n","/* eslint-disable jsx-a11y/no-static-element-interactions */\r\n/* eslint-disable jsx-a11y/click-events-have-key-events */\r\nimport React, { useState } from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport { Button } from 'framework-ui-components/Components/V2';\r\nimport ModaleSceltaStampaConQr from '../qr/ModaleSceltaStampaConQr';\r\n\r\nconst ServiziDiPresentazione = ({\r\n ...props\r\n}) => {\r\n const invioTelematicoCgnUrl = useSelector((store) => store.appParams.AdeleUrl);\r\n const f24CbiUrl = useSelector((store) => store.appParams.F24CBIUrl);\r\n const homeUrl = useSelector((store) => store.appParams.HomeUrl);\r\n const codiceUfficioSelezionato = useSelector((store) => store.appParams.ufficioSelezionato);\r\n const sestioneContrattiRdv = useSelector((store) => store.appParams.GestioneContrattiRdv);\r\n const isInvioTelematicoAttivo = useSelector((store) => store.appParams.isInvioTelematicoAttivo);\r\n const isInvioTelematicoCbiAttivo = useSelector((store) => store.appParams.isInvioTelematicoCbiAttivo);\r\n const codiciUfficioAbilitatiCgnPos = useSelector((store) => store.appParams.CodiciUfficioAbilitatiCgnPos);\r\n const paginaDiServizioCgnPosUrl = useSelector((store) => store.appParams.PaginaDiServizioCgnPosUrl);\r\n\r\n const [showModaleSceltaStampaConQr, setShowModaleSceltaStampaConQr] = useState(false);\r\n\r\n return (\r\n
    \r\n
    Servizi per la presentazione
    \r\n
    \r\n window.open(invioTelematicoCgnUrl, '_blank')\r\n : () => {}}\r\n >\r\n {!isInvioTelematicoAttivo ? (\r\n
    \r\n Invia le deleghe direttamente all'Agenzia delle Entrate.\r\n

    \r\n window.open(`${homeUrl}#/?codiceUfficio=${codiceUfficioSelezionato}&codiceServizioDaAttivare=INVIOTELEMATICO`, '_blank')}\r\n >\r\n Attiva il servizio qui\r\n \r\n
    \r\n ) : (
    Vai a
    )}\r\n
    Invio Telematico
    \r\n
    \r\n window.open('https://www.cgn.it/pagof24', '_blank')}\r\n >\r\n
    \r\n Fai pagare le deleghe F24 ai tuoi clienti con un link\r\n

    \r\n window.open('https://www.cgn.it/pagof24', '_blank')}\r\n >\r\n Scopri di più qui\r\n \r\n
    \r\n
    pagoF24
    \r\n
    \r\n window.open(`${f24CbiUrl}/#/?codiceUfficio=${codiceUfficioSelezionato}`, '_blank')\r\n : () => {}}\r\n >\r\n {!isInvioTelematicoCbiAttivo ? (\r\n
    \r\n Addebita direttamente sul\r\n C/C bancario del\r\n contribuente\r\n

    \r\n window.open(`${sestioneContrattiRdv}`, '_blank')}\r\n >\r\n Scopri di più qui\r\n \r\n
    \r\n ) : (\r\n
    Vai a
    \r\n )}\r\n
    F24 CBI
    \r\n
    \r\n {(codiciUfficioAbilitatiCgnPos ? codiciUfficioAbilitatiCgnPos.find((x) => (x === codiceUfficioSelezionato)) : true) && (\r\n \r\n
    \r\n Fai pagare le deleghe F24 ai tuoi clienti direttamente in studio\r\n

    \r\n window.open(`${paginaDiServizioCgnPosUrl}`, '_blank')}\r\n >\r\n Scopri di più qui\r\n \r\n
    \r\n
    CGN POS
    \r\n
    \r\n )}\r\n setShowModaleSceltaStampaConQr(true)}\r\n >\r\n
    \r\n I pagamenti digitali anche\r\n nei PDF cartacei\r\n

    \r\n setShowModaleSceltaStampaConQr(true)}\r\n >\r\n Scopri di più qui\r\n \r\n
    \r\n
    Cartacea
    \r\n
    \r\n
    \r\n {showModaleSceltaStampaConQr && (\r\n setShowModaleSceltaStampaConQr(false)}\r\n />\r\n )}\r\n
    \r\n );\r\n};\r\n\r\nServiziDiPresentazione.propTypes = {\r\n};\r\n\r\nexport default ServiziDiPresentazione;\r\n","import React, {\r\n useEffect,\r\n} from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { setAppParamsAction } from 'framework-taskforce/actions/appParams';\r\nimport {\r\n Grid,\r\n} from 'framework-ui-components';\r\nimport {\r\n ViewportProvider,\r\n} from 'framework-ui-components/Components/V2';\r\nimport PageWrapper from '../../components/PageWrapper';\r\nimport ToolbarSpecifica from '../listaContribuenti/ToolbarSpecifica';\r\nimport CercaConVaiAllaLista from '../../components/home/CercaConVaiAllaLista';\r\nimport SituazioneTributiDeleghe from '../../components/home/SituazioneTributiDeleghe';\r\nimport ServiziDiPresentazione from '../../components/home/ServiziDiPresentazione';\r\n\r\nconst Home = () => {\r\n const fromPluginWithNoSidebar = useSelector((store) => store.appParams.fromPluginWithNoSidebar);\r\n const noToolbar = useSelector((store) => store.appParams.noToolbar);\r\n\r\n const dispatch = useDispatch();\r\n\r\n useEffect(() => {\r\n dispatch(setAppParamsAction({\r\n sidebarSelected: '0', tabSelected: 0, scartate: null, inPresentazione: null,\r\n }));\r\n });\r\n\r\n return (\r\n \r\n \r\n )}\r\n >\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n );\r\n};\r\n\r\nexport default Home;\r\n","import { AuthorizedApp } from 'framework-taskforce';\r\nimport React from 'react';\r\nimport Home from '../areas/home/Home';\r\nimport ContenutoPaginaDiSospensione from '../ContenutoPaginaDiSospensione';\r\nimport { authorizedServices } from '../models/f24';\r\n\r\nconst HomeRoute = () => (\r\n )}\r\n >\r\n \r\n \r\n);\r\n\r\nHomeRoute.defaultProps = {\r\n};\r\n\r\nHomeRoute.propTypes = {\r\n};\r\n\r\nexport default HomeRoute;\r\n","/* eslint-disable max-len */\r\nimport { useState, useMemo, useCallback } from 'react';\r\nimport { NOOP } from '../../../utils/const';\r\n\r\nexport function getStartEndIndexes(currentPage, pageSize, numberOfItems) {\r\n const startIndex = currentPage * pageSize;\r\n let endIndex = numberOfItems === 0 ? 0 : (currentPage + 1) * pageSize - 1;\r\n if (endIndex > numberOfItems) {\r\n endIndex = numberOfItems - 1;\r\n }\r\n return { startIndex, endIndex };\r\n}\r\n\r\nexport function getNumberOfPages(numberOfItems, pageSize) {\r\n return Math.ceil(numberOfItems / pageSize);\r\n}\r\n\r\nfunction checkCurrentPage(current, numberOfPages) {\r\n return current >= 0 && current < numberOfPages;\r\n}\r\n\r\nexport function changeCurrentPage(newCurrentPage, setCurrentPage, pageSize, numberOfItems, numberOfPages, onChange) {\r\n if (checkCurrentPage(newCurrentPage, numberOfPages)) {\r\n setCurrentPage(newCurrentPage);\r\n onChange({ currentPage: newCurrentPage, ...getStartEndIndexes(newCurrentPage, pageSize, numberOfItems), pageSize });\r\n }\r\n}\r\n\r\n/**\r\nUn hook che mantiene lo stato della paginazione di una serie di elementi.\r\n\r\nL'oggetto di ritorno fornisce:\r\n\r\n- **currentPage** pagina corrente\r\n- **numberOfItems** numero di elementi\r\n- **setPageSize** modifica la dimensione della pagina\r\n- **pageSize** dimensione della pagina\r\n- **numberOfPages** numero di pagine\r\n- **startIndex** indice dell'elemento di partenza della pagina corrente\r\n- **endIndex** indice dell'elemento finale della pagina corrente\r\n- **onPerviousPage** funzione per passare alla pagina precedente (undefined se l'azione non è possibile)\r\n- **onNextPage** funzione per passare alla pagina successiva (undefined se l'azione non è possibile)\r\n- **onFirstPage** funzione per passare alla prima pagina (undefined se l'azione non è possibile)\r\n- **onLastPage** funzione per passare all'ultima pagina (undefined se l'azione non è possibile)\r\n\r\n * @param {number} numberOfItems numero di elementi da paginare.\r\n * @param {func} onChange callback al cambio pagina.\r\n * @param {number} initPageSize numero elementi per pagina.\r\n * @param {number} initCurrentPage numero iniziale della pagina.\r\n * @returns {object} oggetto con proprietà e servizi per gestire lo stato della paginazione.\r\n */\r\nfunction usePagination(numberOfItems, onChange = NOOP, initPageSize = 20, initCurrentPage = 0) {\r\n const [currentPage, setCurrentPage] = useState(initCurrentPage);\r\n const [pageSize, setPageSize] = useState(initPageSize);\r\n\r\n const status = useMemo(() => {\r\n const { startIndex, endIndex } = getStartEndIndexes(currentPage, pageSize, numberOfItems);\r\n\r\n const numberOfPages = getNumberOfPages(numberOfItems, pageSize);\r\n const isFirstPage = currentPage === 0;\r\n const isLastPage = currentPage + 1 >= numberOfPages;\r\n\r\n const myChangeCurrentPage = (newCurrentPage) => {\r\n changeCurrentPage(newCurrentPage, setCurrentPage, pageSize, numberOfItems, numberOfPages, onChange);\r\n };\r\n\r\n const onPerviousPage = isFirstPage ? undefined : () => myChangeCurrentPage(currentPage - 1);\r\n const onNextPage = isLastPage ? undefined : () => myChangeCurrentPage(currentPage + 1);\r\n const onFirstPage = isFirstPage ? undefined : () => myChangeCurrentPage(0);\r\n const onLastPage = isLastPage ? undefined : () => myChangeCurrentPage(numberOfPages - 1);\r\n\r\n return {\r\n numberOfPages, startIndex, endIndex, onPerviousPage, onNextPage, onFirstPage, onLastPage,\r\n };\r\n }, [currentPage, numberOfItems, onChange, pageSize]);\r\n\r\n const changePageSize = useCallback((ps) => {\r\n const numberOfPages = getNumberOfPages(numberOfItems, pageSize);\r\n setPageSize(ps);\r\n changeCurrentPage(0, setCurrentPage, ps, numberOfItems, numberOfPages, onChange);\r\n }, [numberOfItems, onChange, pageSize]);\r\n\r\n return {\r\n currentPage, numberOfItems, setPageSize: changePageSize, pageSize, ...status,\r\n };\r\n}\r\n\r\nexport default usePagination;\r\n","import React, { useImperativeHandle } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport usePagination from '../Hooks/usePagination';\r\nimport DropdownButton from '../DropdownButton/DropdownButton';\r\nimport Button from '../Button/Button';\r\nimport { NOOP } from '../../../utils/const';\r\nimport NavigateBeforeIcon from '../../GoogleIcons/Outlined/NavigateBeforeIcon';\r\nimport NavigateNextIcon from '../../GoogleIcons/Outlined/NavigateNextIcon';\r\n\r\n/**\r\nComponente che gestisce la paginazione.\r\n\r\nLa reference di Paginatio fornisce alcune funzioni di utilità:\r\n\r\n- **goToFirstPage**: riposiziona la pagianzione alla prima pagina.\r\n*/\r\nconst Pagination = React.forwardRef(({\r\n numberOfItems, loading, initPageSize, initCurrentPage, pageSizeOptions, onChange,\r\n}, ref) => {\r\n const {\r\n pageSize, setPageSize,\r\n startIndex, endIndex,\r\n onPerviousPage, onNextPage, onFirstPage, onLastPage,\r\n } = usePagination(numberOfItems, onChange, initPageSize, initCurrentPage);\r\n\r\n useImperativeHandle(ref, () => ({\r\n goToFirstPage: () => onFirstPage && onFirstPage(),\r\n }), [onFirstPage]);\r\n\r\n const currentPageInfo = `Righe ${startIndex + 1}-${endIndex + 1} di ${numberOfItems}`;\r\n\r\n return (\r\n
    \r\n \r\n {currentPageInfo}\r\n \r\n \r\n \r\n {pageSizeOptions.map((size) => {\r\n if (size === pageSize) return undefined;\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\nPagination.propTypes = {\r\n /** Numero di elementi totale */\r\n numberOfItems: PropTypes.number.isRequired,\r\n\r\n /** Definisce se i dati sono in loading (disabilita ogni azione) */\r\n loading: PropTypes.bool,\r\n\r\n /** Dimensione iniziale delle pagine */\r\n initPageSize: PropTypes.number,\r\n\r\n /** Punto di inizio della prima pagina */\r\n initCurrentPage: PropTypes.number,\r\n\r\n /** Opzioni delle dimensioni delle pagine tra cui scegliere */\r\n pageSizeOptions: PropTypes.arrayOf(PropTypes.number),\r\n\r\n /**\r\nCallback chiamata alla modifica della selezione di una pagina.\r\nRitorna un oggetto con { currentIndex, pageSize, startIndex e endIndex}.\r\nL'indice della pagina corrente parte da 0.\r\n */\r\n onChange: PropTypes.func,\r\n};\r\n\r\nPagination.defaultProps = {\r\n initPageSize: 50,\r\n initCurrentPage: 0,\r\n pageSizeOptions: [25, 50, 100],\r\n onChange: NOOP,\r\n loading: false,\r\n};\r\n\r\nexport default Pagination;\r\n","/* eslint-disable react/no-unused-prop-types */\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\n/**\r\nColonna di una della tabella.\r\n\r\nIl componente è utilizzato solo come aggregatore di informazioni e quindi non verrà renderizzato.\r\n\r\nPotranno essere passate anche tutte le props del componente *Table.Column*\r\n */\r\nconst Column = () => ODataTable.Column;\r\n\r\n// Mantenere allineate le prop di Table.Column\r\nColumn.propTypes = {\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n\r\n /** Identificativo della colonna */\r\n id: PropTypes.string,\r\n\r\n /** Titolo della colonna */\r\n title: PropTypes.string,\r\n\r\n /** Indica se posso ordinare per la colonna */\r\n sortable: PropTypes.bool,\r\n\r\n /** Larghezza della colonna */\r\n width: PropTypes.string,\r\n\r\n /** Larghezza minima della colonna */\r\n minWidth: PropTypes.string,\r\n\r\n /** Larghezza massima della colonna */\r\n maxWidth: PropTypes.string,\r\n\r\n /** Larghezza fissa della colonna (equivale a usare fixedWidth per width, minWidth e maxWidth) */\r\n fixedWidth: PropTypes.string,\r\n\r\n /**\r\n * Allineamento del testo dell'header.\r\n */\r\n align: PropTypes.oneOf(['left', 'right', 'center']),\r\n};\r\n\r\nColumn.defaultProps = {\r\n className: undefined,\r\n title: undefined,\r\n sortable: false,\r\n id: undefined,\r\n width: undefined,\r\n minWidth: undefined,\r\n maxWidth: undefined,\r\n fixedWidth: undefined,\r\n align: 'left',\r\n};\r\n\r\nexport default Column;\r\n","import { createContext } from 'react';\r\nimport { NOOP } from '../../../utils/const';\r\n\r\nconst NONE_CONTEXT = {\r\n sortInfo: {},\r\n setSortInfo: NOOP,\r\n filters: [],\r\n setFilters: NOOP,\r\n};\r\n\r\nconst TableContext = createContext(NONE_CONTEXT);\r\nexport default TableContext;\r\n","/* eslint-disable react/no-unused-prop-types */\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\n/**\r\nGruppo di colonne.\r\n\r\nIl componente è utilizzato solo come aggregatore di informazioni e quindi non verrà renderizzato.\r\n*/\r\nconst ColumnGroup = ({ className, title }) => ODataTable.ColumnGroup;\r\n\r\nColumnGroup.propTypes = {\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n\r\n /** Titolo del gruppo */\r\n title: PropTypes.string.isRequired,\r\n};\r\n\r\nColumnGroup.defaultProps = {\r\n className: undefined,\r\n};\r\n\r\nexport default ColumnGroup;\r\n","import React, { Children, useContext, useMemo } from 'react';\r\nimport Column from './Column';\r\nimport Table from '../Table/Table';\r\nimport Log from '../../../utils/log';\r\nimport TableContext from './TableContext';\r\nimport ColumnGroup from './ColumnGroup';\r\nimport { sameType } from '../../../utils/react';\r\n\r\nfunction createColumnProps(props, sortInfo, setSortInfo) {\r\n return {\r\n order: props.id === sortInfo.id ? sortInfo.order : undefined,\r\n onSort: (order) => { order ? setSortInfo({ id: props.id, order }) : setSortInfo({}); },\r\n ...props,\r\n };\r\n}\r\n\r\nfunction createODataTableColumns(children, sortInfo, setSortInfo) {\r\n const result = Children.map(children, (child) => {\r\n // verifico non ci siano child null\r\n if (!child) return null;\r\n if (sameType(child, ColumnGroup)) {\r\n const columnGroupChildren = Children.map(\r\n child.props.children,\r\n // eslint-disable-next-line react/no-array-index-key\r\n (c, idx) => ,\r\n );\r\n const { title, className } = child.props;\r\n return (\r\n \r\n {columnGroupChildren}\r\n \r\n );\r\n }\r\n if (sameType(child, Column)) {\r\n return ;\r\n }\r\n Log.warn('Table column is not one of ODataTable.Column or ODataTable.ColumnGroup');\r\n Log.warn(new Error().stack);\r\n return null;\r\n });\r\n return result;\r\n}\r\n\r\n/**\r\n * Hook che restituisce i dati necessari per la generazione dell'header di una ODataTable.\r\n */\r\nexport default function useTableColumns(children) {\r\n const { sortInfo, setSortInfo } = useContext(TableContext);\r\n return useMemo(() => createODataTableColumns(children, sortInfo, setSortInfo), [children, setSortInfo, sortInfo]);\r\n}\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport useTableColumns from './useTableColumns';\r\nimport Table from '../Table/Table';\r\n\r\n/**\r\nComponente che disegna il Table.Head di una ODataTable.\r\n*/\r\nconst Head = ({ children }) => {\r\n const tableChildren = useTableColumns(children);\r\n return (\r\n \r\n {tableChildren}\r\n \r\n );\r\n};\r\n\r\nHead.IS_TABLE_HEAD = true;\r\n\r\nHead.propTypes = {\r\n /** Children del componente. Deve essere un nodo di tipo `ODataTable.Filter` o `ODataTable.Head`. */\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node,\r\n ]).isRequired,\r\n};\r\n\r\nHead.defaultProps = {\r\n};\r\n\r\nexport default Head;\r\n","import axios from 'axios';\r\n\r\nexport const genera = function (url, top, skip, sortProperty, sortOrder, filters) {\r\n let urlFinale = url;\r\n\r\n if (urlFinale.indexOf('?') == -1) {\r\n urlFinale += '?';\r\n } else {\r\n urlFinale += '&';\r\n }\r\n\r\n if (top != undefined && skip != undefined) {\r\n urlFinale += `$top=${top}&$skip=${skip}`;\r\n }\r\n\r\n if (sortProperty != undefined) {\r\n urlFinale += `&$orderby=${sortProperty}`;\r\n if (sortOrder) {\r\n urlFinale += ' asc';\r\n } else {\r\n urlFinale += ' desc';\r\n }\r\n }\r\n\r\n if (filters != undefined && filters.length > 0) {\r\n urlFinale += `${urlFinale.substring(urlFinale.length - 1) == '?' ? '' : '&'}$filter=${filters.join(' and ')}`;\r\n }\r\n\r\n return urlFinale;\r\n};\r\n\r\nconst OData = {\r\n generaUrl(url, top, skip, sortProperty, sortOrder, filters) {\r\n return genera(url, top, skip, sortProperty, sortOrder, filters);\r\n },\r\n\r\n cerca(url, top, skip, sortProperty, sortOrder, filters) {\r\n const urlFinale = genera(url, top, skip, sortProperty, sortOrder, filters);\r\n\r\n const cors = urlFinale.indexOf('http://') == 0 || urlFinale.indexOf('https://') == 0;\r\n\r\n return axios({\r\n url: urlFinale,\r\n method: 'get',\r\n type: 'json',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n contentType: 'application/json',\r\n withCredentials: cors,\r\n })\r\n .then((response) => response.data);\r\n },\r\n};\r\n\r\nexport default OData;\r\n\r\nexport const ODataV2 = {\r\n getUrl: (u) => u,\r\n load: OData.cerca,\r\n};\r\n","/* eslint-disable max-len */\r\nimport React from 'react';\r\nimport Icon from './Icon';\r\n\r\nexport default Icon(\r\n ,\r\n '0 0 18 17.183',\r\n 'FilterIcon',\r\n);\r\n","const QueryOptions = {\r\n EQUAL: 0,\r\n NOT_EQUAL: 1,\r\n GREATER_THAN: 2,\r\n GREATER_THAN_EQUAL: 3,\r\n LESS_THAN: 4,\r\n LESS_THAN_EQUAL: 5,\r\n SUBSTRING: 6,\r\n ENDS_WITH: 7,\r\n STARTS_WITH: 8,\r\n RANGE: 9,\r\n STRING_EQUAL: 10,\r\n STRING_NOT_EQUAL: 11,\r\n SUBPROPERTY_EQUAL: 12,\r\n SUBPROPERTY_NOT_EQUAL: 13,\r\n SUBPROPERTY_SUBSTRING: 14,\r\n SUBPROPERTY_ENDS_WITH: 15,\r\n SUBPROPERTY_STARTS_WITH: 16,\r\n DATE_EQUAL: 17,\r\n DAY_EQUAL: 18,\r\n DATE_RANGE: 19,\r\n DATE_GREATER_THAN: 20,\r\n DATE_GREATER_THAN_EQUAL: 21,\r\n DATE_LESS_THAN: 22,\r\n DATE_LESS_THAN_EQUAL: 23,\r\n CONTAINS: 24,\r\n SUBPROPERTY_CONTAINS: 25,\r\n CUSTOM_FILTER: 100,\r\n};\r\n\r\nQueryOptions.list = [\r\n QueryOptions.EQUAL,\r\n QueryOptions.NOT_EQUAL,\r\n QueryOptions.GREATER_THAN,\r\n QueryOptions.GREATER_THAN_EQUAL,\r\n QueryOptions.LESS_THAN,\r\n QueryOptions.LESS_THAN_EQUAL,\r\n QueryOptions.SUBSTRING,\r\n QueryOptions.ENDS_WITH,\r\n QueryOptions.STARTS_WITH,\r\n QueryOptions.RANGE,\r\n QueryOptions.STRING_EQUAL,\r\n QueryOptions.STRING_NOT_EQUAL,\r\n QueryOptions.SUBPROPERTY_EQUAL,\r\n QueryOptions.SUBPROPERTY_NOT_EQUAL,\r\n QueryOptions.SUBPROPERTY_SUBSTRING,\r\n QueryOptions.SUBPROPERTY_ENDS_WITH,\r\n QueryOptions.SUBPROPERTY_STARTS_WITH,\r\n QueryOptions.DATE_EQUAL,\r\n QueryOptions.DAY_EQUAL,\r\n QueryOptions.DATE_RANGE,\r\n QueryOptions.DATE_GREATER_THAN,\r\n QueryOptions.DATE_GREATER_THAN_EQUAL,\r\n QueryOptions.DATE_LESS_THAN,\r\n QueryOptions.DATE_LESS_THAN_EQUAL,\r\n QueryOptions.CONTAINS,\r\n QueryOptions.SUBPROPERTY_CONTAINS,\r\n QueryOptions.CUSTOM_FILTER,\r\n];\r\n\r\nexport default QueryOptions;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\nimport DeleteIcon from '../Icons/DeleteIcon';\r\n\r\nconst Tag = ({\r\n children, className, onClose, type, ...others\r\n}) => (\r\n \r\n {children}\r\n {onClose && (\r\n \r\n \r\n \r\n )}\r\n \r\n);\r\n\r\nTag.propTypes = {\r\n /** Contenuto da renderizzare all'interno del componente */\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node,\r\n ]),\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n /**\r\n * Callback da invocare in fase di chiusura:\r\n * ```\r\n * onClose(event)\r\n * ```\r\n * dove:\r\n * * *event*: evento scatenante\r\n */\r\n onClose: PropTypes.func,\r\n /** Tipo del tag, verrà aggiunta la classe tag--type al componente */\r\n type: PropTypes.string,\r\n};\r\n\r\nTag.defaultProps = {\r\n children: null,\r\n className: '',\r\n onClose: null,\r\n type: '',\r\n};\r\n\r\nexport default Tag;\r\n","import Tag from './Tag';\r\n\r\nexport default Tag;\r\n","/* eslint-disable react/forbid-prop-types */\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { QueryOptions } from '../../Utils/QueryOptions';\r\nimport Tag from '../../Tag';\r\nimport { formatDate } from '../../Utils/dateHelper';\r\n\r\nfunction getFilterDescription(filter) {\r\n let { value } = filter;\r\n if (filter.query === QueryOptions.DATE_RANGE) {\r\n value = Object.keys(value).map((x) => {\r\n const timestamp = Date.parse(value[x]);\r\n if (isNaN(timestamp) === false) {\r\n const newDate = new Date(value[x]);\r\n return formatDate(newDate.getDate(), newDate.getMonth() + 1, newDate.getFullYear(), '/');\r\n }\r\n return value[x];\r\n });\r\n value = `da ${value[0]} a ${value[1]}`;\r\n } else if (filter.query === QueryOptions.RANGE) {\r\n value = `da ${value.da} a ${value.a}`;\r\n }\r\n\r\n return (\r\n \r\n {filter.description || filter.propertyName}\r\n {': '}\r\n {filter.displayValue || value}\r\n \r\n );\r\n}\r\n\r\nconst SelectedFilters = ({ state, onRemove }) => {\r\n const filters = [];\r\n Object.keys(state).forEach((k) => {\r\n if (state[k]) {\r\n state[k].forEach((f) => filters.push(f));\r\n }\r\n });\r\n return (\r\n
    \r\n {filters.map((filter, i) => {\r\n const handleClose = () => onRemove(filter);\r\n const filterDescription = getFilterDescription(filter);\r\n return (\r\n // eslint-disable-next-line react/no-array-index-key\r\n {filterDescription}\r\n );\r\n })}\r\n
    \r\n );\r\n};\r\n\r\nSelectedFilters.propTypes = {\r\n /** Stato del filtro */\r\n state: PropTypes.objectOf(PropTypes.arrayOf(PropTypes.shape({\r\n propertyName: PropTypes.string.isRequired,\r\n\r\n description: PropTypes.string,\r\n\r\n value: PropTypes.oneOfType([\r\n PropTypes.any,\r\n PropTypes.shape({\r\n from: PropTypes.any,\r\n to: PropTypes.any,\r\n }),\r\n ]),\r\n\r\n // valore presentato in alternativa a value\r\n displayValue: PropTypes.string,\r\n\r\n // tipo di query (vedo `import {QueryOptions} from \"framework-ui-components\"`)\r\n query: PropTypes.oneOf([...QueryOptions.list]),\r\n }))).isRequired,\r\n\r\n /** Callback invocata al click sul pulsante che rimuove un singolo filtro applicato */\r\n onRemove: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default SelectedFilters;\r\n","import { createContext } from 'react';\r\n\r\nconst FiltersGroupContext = createContext();\r\nexport default FiltersGroupContext;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport FiltersGroupContext from './FiltersGroupContext';\r\n\r\n/**\r\nSezione avanzata dei filtri.\r\n*/\r\nconst AdvancedFilters = ({ children }) => (\r\n \r\n
    \r\n {children}\r\n
    \r\n
    \r\n);\r\n\r\nAdvancedFilters.propTypes = {\r\n /** Children del componente. Deve essere un nodo di tipo `Filter.XXX`. */\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node,\r\n ]).isRequired,\r\n};\r\n\r\nAdvancedFilters.defaultProps = {\r\n};\r\n\r\nexport default AdvancedFilters;\r\n","import { createContext } from 'react';\r\nimport { isDeepEqual } from '../../../utils/js';\r\n\r\nexport function createFilterContext(state, onChange) {\r\n const removeAll = (propertyName) => {\r\n onChange({ ...state, [propertyName]: [] });\r\n };\r\n const removeFilter = (filter) => {\r\n let properties = state[filter.propertyName];\r\n if (properties) {\r\n properties = properties.filter((f) => f.value !== filter.value);\r\n }\r\n onChange({ ...state, [filter.propertyName]: properties });\r\n };\r\n const addFilter = (filter, replaceAll = false) => {\r\n const propFilters = replaceAll ? [] : (state[filter.propertyName] || []);\r\n // blocco inserimenti di filtri vuoti o undefined\r\n if (filter.value === undefined || filter.value === '') return false;\r\n // verifico che non sia già presente il filtro\r\n if (propFilters.some((f) => isDeepEqual(f, filter))) return false;\r\n propFilters.push(filter);\r\n onChange({ ...state, [filter.propertyName]: propFilters });\r\n return true;\r\n };\r\n const addFilters = (filters, replaceAll = false) => {\r\n const newState = { ...state };\r\n filters.forEach((f) => {\r\n const propFilters = replaceAll ? [] : (newState[f.propertyName] || []);\r\n propFilters.push(f);\r\n newState[f.propertyName] = propFilters;\r\n });\r\n onChange(newState);\r\n };\r\n const getFilter = (propertyName) => state[propertyName] || [];\r\n\r\n const propertiesMetaInfo = {};\r\n\r\n return {\r\n propertiesMetaInfo,\r\n removeFilter,\r\n addFilter,\r\n addFilters,\r\n getFilter,\r\n removeAll,\r\n setInfo: (propertyName, info) => { propertiesMetaInfo[propertyName] = info; },\r\n getInfo: (propertyName) => propertiesMetaInfo[propertyName],\r\n };\r\n}\r\n\r\nconst FilterContext = createContext({});\r\nexport default FilterContext;\r\n","import { useContext } from 'react';\r\nimport FilterContext from './FilterContext';\r\n\r\nexport default function useFilterContext() {\r\n return useContext(FilterContext);\r\n}\r\n","import React, {\r\n useCallback, useRef, useState,\r\n} from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\nimport Input from '../../../Input/Input';\r\nimport { QueryOptions } from '../../../Utils/QueryOptions';\r\nimport useFilterContext from '../useFilterContext';\r\nimport { KeyboardEventDisparcher } from '../../../Utils/events';\r\n\r\n/**\r\nInput di un dato per il filtro.\r\n*/\r\nconst InputFilter = (props) => {\r\n const {\r\n propertyName, description, query, className, ...others\r\n } = props;\r\n\r\n const [value, setValue] = useState();\r\n const inputRef = useRef();\r\n\r\n const { addFilter } = useFilterContext();\r\n\r\n const handleChange = useCallback((_, val) => {\r\n setValue(val);\r\n }, []);\r\n\r\n const handleKeyDown = useCallback((event) => {\r\n new KeyboardEventDisparcher(event)\r\n .onEnter(() => {\r\n if (addFilter({\r\n propertyName, value, description, query,\r\n })) {\r\n setTimeout(() => { setValue(''); }, 500);\r\n }\r\n });\r\n }, [addFilter, description, propertyName, query, value]);\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nInputFilter.propTypes = {\r\n /** Etichetta da visualizzare nel campo che renderizza il componente */\r\n description: PropTypes.string,\r\n\r\n /** nome della proprietà del filtro */\r\n propertyName: PropTypes.string.isRequired,\r\n\r\n // tipo di query (vedo `import {QueryOptions} from \"framework-ui-components\"`)\r\n query: PropTypes.oneOf([\r\n QueryOptions.EQUAL,\r\n QueryOptions.NOT_EQUAL,\r\n QueryOptions.GREATER_THAN,\r\n QueryOptions.GREATER_THAN_EQUAL,\r\n QueryOptions.LESS_THAN,\r\n QueryOptions.LESS_THAN_EQUAL,\r\n QueryOptions.SUBSTRING,\r\n QueryOptions.ENDS_WITH,\r\n QueryOptions.STARTS_WITH,\r\n QueryOptions.STRING_EQUAL,\r\n QueryOptions.STRING_NOT_EQUAL,\r\n QueryOptions.SUBPROPERTY_EQUAL,\r\n QueryOptions.SUBPROPERTY_NOT_EQUAL,\r\n QueryOptions.SUBPROPERTY_SUBSTRING,\r\n QueryOptions.SUBPROPERTY_ENDS_WITH,\r\n QueryOptions.SUBPROPERTY_STARTS_WITH,\r\n QueryOptions.DAY_EQUAL, // TODO???\r\n QueryOptions.CONTAINS,\r\n QueryOptions.SUBPROPERTY_CONTAINS,\r\n QueryOptions.CUSTOM_FILTER,\r\n ]),\r\n\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n\r\n /** Indica come formattare il campo (number, currency) */\r\n format: PropTypes.oneOf(['currency', 'number']),\r\n /** Converte il testo in name case */\r\n nameCase: PropTypes.bool,\r\n /** Converte il testo in upper case */\r\n upperCase: PropTypes.bool,\r\n /** Tipo di input da renderizzare */\r\n type: PropTypes.string,\r\n /** Precisione numerica */\r\n precision: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.number,\r\n ]),\r\n /** Permette di visualizzare e gestire il setting del valore zero */\r\n zeroValid: PropTypes.bool,\r\n /** Controlli da effettuare sul campo. Per dettagli vedi\r\n * documentazione su *Validation* */\r\n validations: PropTypes.arrayOf(PropTypes.oneOfType(\r\n [\r\n PropTypes.string,\r\n PropTypes.object,\r\n PropTypes.func,\r\n ],\r\n )),\r\n /** Restrizione sui caratteri ammessi nel campo. Per dettagli vedi\r\n * documentazione su *Restriction* */\r\n restrictions: PropTypes.arrayOf(PropTypes.string),\r\n /**\r\n * Allineamento del testo.\r\n *\r\n * Tutti i numerici devono essere allineati a destra.\r\n */\r\n align: PropTypes.oneOf(['left', 'right']),\r\n};\r\n\r\nInputFilter.defaultProps = {\r\n className: null,\r\n description: null,\r\n query: QueryOptions.STARTS_WITH,\r\n format: null,\r\n nameCase: false,\r\n upperCase: false,\r\n precision: null,\r\n type: null,\r\n zeroValid: false,\r\n validations: null,\r\n restrictions: null,\r\n align: null,\r\n};\r\n\r\nexport default InputFilter;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport FiltersGroupContext from './FiltersGroupContext';\r\n\r\n/**\r\nSezione sempre visibile dei filtri.\r\n*/\r\nconst ExpandedFilters = ({ children }) => (\r\n \r\n
    \r\n {children}\r\n
    \r\n
    \r\n);\r\n\r\nExpandedFilters.propTypes = {\r\n /** Children del componente. Deve essere un nodo di tipo `Filter.XXX`. */\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node,\r\n ]).isRequired,\r\n};\r\n\r\nExpandedFilters.defaultProps = {\r\n};\r\n\r\nexport default ExpandedFilters;\r\n","/* eslint-disable react/forbid-prop-types */\r\nimport React, { useCallback } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\nimport DatePicker from '../../../DatePicker/DatePicker';\r\nimport { QueryOptions } from '../../../Utils/QueryOptions';\r\nimport useFilterContext from '../useFilterContext';\r\nimport { convertDateToISO, formatDate } from '../../../Utils/dateHelper';\r\n\r\n/**\r\nInput di una data per il filtro.\r\n*/\r\nconst DatePickerFilter = (props) => {\r\n const {\r\n propertyName, description, query, className, date: dateInit, ...others\r\n } = props;\r\n\r\n const { addFilter } = useFilterContext();\r\n\r\n const handleChange = useCallback((v) => {\r\n if (v) {\r\n addFilter({\r\n propertyName,\r\n description,\r\n query,\r\n displayValue: formatDate(v.getDate(), v.getMonth() + 1, v.getFullYear(), '/'),\r\n value: convertDateToISO(v),\r\n });\r\n }\r\n }, [addFilter, description, propertyName, query]);\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nDatePickerFilter.propTypes = {\r\n /** Etichetta da visualizzare nel campo che renderizza il componente */\r\n description: PropTypes.string,\r\n\r\n /** nome della proprietà del filtro */\r\n propertyName: PropTypes.string.isRequired,\r\n\r\n // tipo di query (vedo `import {QueryOptions} from \"framework-ui-components\"`)\r\n query: PropTypes.oneOf([\r\n QueryOptions.DATE_EQUAL,\r\n QueryOptions.DAY_EQUAL,\r\n QueryOptions.DATE_GREATER_THAN,\r\n QueryOptions.DATE_GREATER_THAN_EQUAL,\r\n QueryOptions.DATE_LESS_THAN,\r\n QueryOptions.DATE_LESS_THAN_EQUAL,\r\n QueryOptions.CUSTOM_FILTER,\r\n ]),\r\n\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n\r\n /** Lista di validazioni da applicare al campo */\r\n validations: PropTypes.arrayOf(PropTypes.oneOfType(\r\n [\r\n PropTypes.string,\r\n PropTypes.object,\r\n PropTypes.func,\r\n ],\r\n )),\r\n\r\n /** Indica se visualizzare o meno la tendina di selezione */\r\n show: PropTypes.bool,\r\n /** Indica se aprire il menu nell'altro senso */\r\n right: PropTypes.bool,\r\n\r\n /** Data visualizzata di default */\r\n date: PropTypes.any,\r\n\r\n /** Indica se voglio inserire date nel futuro\r\n * e quindi preinserire l'anno 2000 se indico la data con due cifre */\r\n futureDate: PropTypes.bool,\r\n\r\n range: PropTypes.shape({\r\n from: PropTypes.any,\r\n to: PropTypes.any,\r\n }),\r\n};\r\n\r\nDatePickerFilter.defaultProps = {\r\n className: null,\r\n description: null,\r\n query: QueryOptions.DATE_EQUAL,\r\n futureDate: false,\r\n range: null,\r\n right: false,\r\n show: false,\r\n validations: null,\r\n date: null,\r\n};\r\n\r\nexport default DatePickerFilter;\r\n","/* eslint-disable react/forbid-prop-types */\r\nimport React, { useCallback, useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\nimport DatePicker from '../../../DatePicker/DatePicker';\r\nimport { QueryOptions } from '../../../Utils/QueryOptions';\r\nimport useFilterContext from '../useFilterContext';\r\nimport { convertDateToISO } from '../../../Utils/dateHelper';\r\n\r\n/**\r\nInput di una range di date per il filtro.\r\n*/\r\nconst DateRangeFilter = (props) => {\r\n const {\r\n propertyName, description, className, query, range, ...others\r\n } = props;\r\n\r\n const [fromState, setFromState] = useState({ value: undefined, range: { to: range && range.to } });\r\n const [toState, setToState] = useState({ value: undefined, range: { from: range && range.from } });\r\n\r\n const { addFilter } = useFilterContext();\r\n\r\n const handleChange = useCallback((from, to) => {\r\n if (from && to) {\r\n setFromState((s) => ({ value: undefined, range: { to: range && range.to } }));\r\n setToState((s) => ({ value: undefined, range: { from: range && range.from } }));\r\n addFilter({\r\n propertyName,\r\n description,\r\n query,\r\n value: { inizio: convertDateToISO(from), fine: convertDateToISO(to) },\r\n });\r\n }\r\n }, [addFilter, description, propertyName, query, range]);\r\n\r\n const handleFromChange = useCallback((value) => {\r\n setFromState((s) => ({ ...s, value }));\r\n setToState((s) => ({ ...s, range: { from: value } }));\r\n handleChange(value, toState.value);\r\n }, [handleChange, toState.value]);\r\n\r\n const handleToChange = useCallback((value) => {\r\n setToState((s) => ({ ...s, value }));\r\n setFromState((s) => ({ ...s, range: { to: value } }));\r\n handleChange(fromState.value, value);\r\n }, [fromState.value, handleChange]);\r\n\r\n return (\r\n
    \r\n {description || propertyName}\r\n \r\n \r\n
    \r\n );\r\n};\r\n\r\nDateRangeFilter.propTypes = {\r\n /** Etichetta da visualizzare nel campo che renderizza il componente */\r\n description: PropTypes.string,\r\n\r\n /** nome della proprietà del filtro */\r\n propertyName: PropTypes.string.isRequired,\r\n\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n\r\n // tipo di query (vedo `import {QueryOptions} from \"framework-ui-components\"`)\r\n query: PropTypes.oneOf([QueryOptions.DATE_RANGE, QueryOptions.CUSTOM_FILTER]),\r\n\r\n /** Lista di validazioni da applicare al campo */\r\n validations: PropTypes.arrayOf(PropTypes.oneOfType(\r\n [\r\n PropTypes.string,\r\n PropTypes.object,\r\n PropTypes.func,\r\n ],\r\n )),\r\n\r\n /** Indica se visualizzare o meno la tendina di selezione */\r\n show: PropTypes.bool,\r\n /** Indica se aprire il menu nell'altro senso */\r\n right: PropTypes.bool,\r\n\r\n /** Indica se voglio inserire date nel futuro\r\n * e quindi preinserire l'anno 2000 se indico la data con due cifre */\r\n futureDate: PropTypes.bool,\r\n\r\n range: PropTypes.shape({\r\n from: PropTypes.any,\r\n to: PropTypes.any,\r\n }),\r\n};\r\n\r\nDateRangeFilter.defaultProps = {\r\n className: null,\r\n description: null,\r\n futureDate: false,\r\n range: null,\r\n right: false,\r\n show: false,\r\n validations: null,\r\n query: QueryOptions.DATE_RANGE,\r\n};\r\n\r\nexport default DateRangeFilter;\r\n","/* eslint-disable react/forbid-prop-types */\r\nimport React, { useCallback, useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\nimport { QueryOptions } from '../../../Utils/QueryOptions';\r\nimport useFilterContext from '../useFilterContext';\r\nimport Input from '../../../Input/Input';\r\nimport { KeyboardEventDisparcher } from '../../../Utils/events';\r\n\r\n/**\r\nInput di una range per il filtro.\r\n*/\r\nconst InputRangeFilter = (props) => {\r\n const {\r\n propertyName, description, className, query, ...others\r\n } = props;\r\n\r\n const [fromState, setFromState] = useState(undefined);\r\n const [toState, setToState] = useState(undefined);\r\n\r\n const { addFilter } = useFilterContext();\r\n\r\n const handleKeyDown = useCallback((event) => {\r\n new KeyboardEventDisparcher(event)\r\n .onEnter(() => {\r\n if (fromState && toState) {\r\n if (addFilter({\r\n propertyName, value: { da: fromState, a: toState }, description, query,\r\n })) {\r\n setTimeout(() => {\r\n setFromState('');\r\n setToState('');\r\n }, 500);\r\n }\r\n }\r\n });\r\n }, [addFilter, description, fromState, propertyName, query, toState]);\r\n\r\n const handleFromChange = useCallback((_, value) => {\r\n setFromState(value);\r\n }, []);\r\n\r\n const handleToChange = useCallback((_, value) => {\r\n setToState(value);\r\n }, []);\r\n\r\n return (\r\n
    \r\n {description || propertyName}\r\n \r\n \r\n
    \r\n );\r\n};\r\n\r\nInputRangeFilter.propTypes = {\r\n /** Etichetta da visualizzare nel campo che renderizza il componente */\r\n description: PropTypes.string,\r\n\r\n /** nome della proprietà del filtro */\r\n propertyName: PropTypes.string.isRequired,\r\n\r\n // tipo di query (vedo `import {QueryOptions} from \"framework-ui-components\"`)\r\n query: PropTypes.oneOf([QueryOptions.RANGE, QueryOptions.CUSTOM_FILTER]),\r\n\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n\r\n /** Indica come formattare il campo (number, currency) */\r\n format: PropTypes.oneOf(['currency', 'number']),\r\n\r\n /** Converte il testo in name case */\r\n nameCase: PropTypes.bool,\r\n /** Converte il testo in upper case */\r\n upperCase: PropTypes.bool,\r\n /** Tipo di input da renderizzare */\r\n type: PropTypes.string,\r\n /** Precisione numerica */\r\n precision: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.number,\r\n ]),\r\n /** Permette di visualizzare e gestire il setting del valore zero */\r\n zeroValid: PropTypes.bool,\r\n /** Controlli da effettuare sul campo. Per dettagli vedi\r\n * documentazione su *Validation* */\r\n validations: PropTypes.arrayOf(PropTypes.oneOfType(\r\n [\r\n PropTypes.string,\r\n PropTypes.object,\r\n PropTypes.func,\r\n ],\r\n )),\r\n /** Restrizione sui caratteri ammessi nel campo. Per dettagli vedi\r\n * documentazione su *Restriction* */\r\n restrictions: PropTypes.arrayOf(PropTypes.string),\r\n /**\r\n * Allineamento del testo.\r\n *\r\n * Tutti i numerici devono essere allineati a destra.\r\n */\r\n align: PropTypes.oneOf(['left', 'right']),\r\n};\r\n\r\nInputRangeFilter.defaultProps = {\r\n className: null,\r\n description: null,\r\n query: QueryOptions.RANGE,\r\n format: null,\r\n nameCase: false,\r\n upperCase: false,\r\n precision: null,\r\n type: null,\r\n zeroValid: false,\r\n validations: null,\r\n restrictions: null,\r\n align: null,\r\n};\r\n\r\nexport default InputRangeFilter;\r\n","/* eslint-disable react/forbid-prop-types */\r\nimport React, { useCallback, useRef } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\nimport { QueryOptions } from '../../../Utils/QueryOptions';\r\nimport useFilterContext from '../useFilterContext';\r\nimport Select from '../../../Select/Select';\r\nimport { isUndefined } from '../../../../utils/js';\r\n\r\n/**\r\nInput di un dato per il filtro selezionato da un insieme di valori.\r\n*/\r\nconst SelectFilter = (props) => {\r\n const {\r\n propertyName, description, query, className, options, ...others\r\n } = props;\r\n\r\n const selectRef = useRef();\r\n\r\n const { addFilter } = useFilterContext();\r\n\r\n const handleChange = useCallback((_, value, additionalData) => {\r\n addFilter({\r\n propertyName, value, description, query, displayValue: additionalData,\r\n });\r\n selectRef.current.clear();\r\n }, [addFilter, description, propertyName, query]);\r\n\r\n return (\r\n \r\n {options && options.map((x, i) => (\r\n \r\n {x.description}\r\n \r\n ))}\r\n \r\n );\r\n};\r\n\r\nSelectFilter.propTypes = {\r\n /** Etichetta da visualizzare nel campo che renderizza il componente */\r\n description: PropTypes.string,\r\n\r\n /** nome della proprietà del filtro */\r\n propertyName: PropTypes.string.isRequired,\r\n\r\n // tipo di query (vedo `import {QueryOptions} from \"framework-ui-components\"`)\r\n query: PropTypes.oneOf([\r\n QueryOptions.EQUAL,\r\n QueryOptions.NOT_EQUAL,\r\n QueryOptions.GREATER_THAN,\r\n QueryOptions.GREATER_THAN_EQUAL,\r\n QueryOptions.LESS_THAN,\r\n QueryOptions.LESS_THAN_EQUAL,\r\n QueryOptions.SUBSTRING,\r\n QueryOptions.ENDS_WITH,\r\n QueryOptions.STARTS_WITH,\r\n QueryOptions.STRING_EQUAL,\r\n QueryOptions.STRING_NOT_EQUAL,\r\n QueryOptions.SUBPROPERTY_EQUAL,\r\n QueryOptions.SUBPROPERTY_NOT_EQUAL,\r\n QueryOptions.SUBPROPERTY_SUBSTRING,\r\n QueryOptions.SUBPROPERTY_ENDS_WITH,\r\n QueryOptions.SUBPROPERTY_STARTS_WITH,\r\n QueryOptions.DAY_EQUAL, // TODO???\r\n QueryOptions.CONTAINS,\r\n QueryOptions.SUBPROPERTY_CONTAINS,\r\n QueryOptions.CUSTOM_FILTER,\r\n ]),\r\n\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n\r\n /** Controlli da effettuare sul campo. Per dettagli vedi\r\n * documentazione su *Validation* */\r\n validations: PropTypes.arrayOf(PropTypes.oneOfType(\r\n [\r\n PropTypes.string,\r\n PropTypes.object,\r\n PropTypes.func,\r\n ],\r\n )),\r\n\r\n /** Opzioni tra cui scegliere il valore (`description` viene utilizzato per mostrare la\r\n * descrizione del filtro da selezionare e `value` viene utilizzato come valore da applicare via odata) */\r\n options: PropTypes.arrayOf(PropTypes.shape(\r\n {\r\n description: PropTypes.string,\r\n value: PropTypes.any,\r\n },\r\n )),\r\n};\r\n\r\nSelectFilter.defaultProps = {\r\n className: null,\r\n description: null,\r\n query: QueryOptions.EQUAL,\r\n validations: null,\r\n options: [],\r\n};\r\n\r\nexport default SelectFilter;\r\n","import React, { useCallback } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\nimport AutoComplete from '../../../AutoComplete/AutoComplete';\r\nimport { QueryOptions } from '../../../Utils/QueryOptions';\r\nimport useFilterContext from '../useFilterContext';\r\n\r\n/**\r\nInput di un dato per il filtro.\r\n*/\r\nconst AutocompleteFilter = (props) => {\r\n const {\r\n propertyName, description, query, className,\r\n minLength, renderProperty, renderRow, filterProperty, url, dataSource,\r\n } = props;\r\n\r\n const { addFilter } = useFilterContext();\r\n\r\n const handleChange = useCallback((selectedItem) => {\r\n addFilter({\r\n propertyName,\r\n value: selectedItem[filterProperty || renderProperty],\r\n description,\r\n displayValue: selectedItem[renderProperty],\r\n query,\r\n item: selectedItem,\r\n });\r\n }, [addFilter, description, filterProperty, propertyName, query, renderProperty]);\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nAutocompleteFilter.propTypes = {\r\n /** Etichetta da visualizzare nel campo che renderizza il componente */\r\n description: PropTypes.string,\r\n\r\n /** nome della proprietà del filtro */\r\n propertyName: PropTypes.string.isRequired,\r\n\r\n // tipo di query (vedo `import {QueryOptions} from \"framework-ui-components\"`)\r\n query: PropTypes.oneOf([\r\n QueryOptions.EQUAL,\r\n QueryOptions.NOT_EQUAL,\r\n QueryOptions.GREATER_THAN,\r\n QueryOptions.GREATER_THAN_EQUAL,\r\n QueryOptions.LESS_THAN,\r\n QueryOptions.LESS_THAN_EQUAL,\r\n QueryOptions.SUBSTRING,\r\n QueryOptions.ENDS_WITH,\r\n QueryOptions.STARTS_WITH,\r\n QueryOptions.STRING_EQUAL,\r\n QueryOptions.STRING_NOT_EQUAL,\r\n QueryOptions.SUBPROPERTY_EQUAL,\r\n QueryOptions.SUBPROPERTY_NOT_EQUAL,\r\n QueryOptions.SUBPROPERTY_SUBSTRING,\r\n QueryOptions.SUBPROPERTY_ENDS_WITH,\r\n QueryOptions.SUBPROPERTY_STARTS_WITH,\r\n QueryOptions.DAY_EQUAL, // TODO???\r\n QueryOptions.CONTAINS,\r\n QueryOptions.SUBPROPERTY_CONTAINS,\r\n QueryOptions.CUSTOM_FILTER,\r\n ]),\r\n\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n\r\n /** Il numero di caratteri minimo da inserire per scatenare le ricerche */\r\n minLength: PropTypes.number,\r\n /** Proprietà dell'oggetto da visualizzare nelle righe */\r\n renderProperty: PropTypes.string,\r\n /**\r\n * Funzione opzionale che permete di specificare come renderizzare una singola\r\n * riga del risultato:\r\n * ```\r\n * renderRow(value, text, index)\r\n * ```\r\n * dove:\r\n * * *value*: il valore della riga da disegnare\r\n * * *text*: il testo scritto durante la ricerca\r\n * * *index*: indice della riga da disegnare\r\n */\r\n renderRow: PropTypes.func,\r\n /** Proprietà dell'oggetto passata al filtro */\r\n filterProperty: PropTypes.string,\r\n /** Url da chiamare per lo scaricamento dei dati.\r\n * Il testo verrà inviato mediante parametro term */\r\n url: PropTypes.string,\r\n /**\r\nMetodo alternativo alla prop `url` per caricare gli elementi su cui effettuale la ricerca.\r\n\r\nSe `dataSource` è un array, il componente filtrerà la lista in base al testo digitato.\r\n\r\nSe `dataSource` è una function, il componente chiamerà la funzione ad ogni ricerca e si aspetta una `Promise` con la lista degli elementi di ritorno.\r\nI parametri della funzione sono `term`, termine di ricerca e `renderProperty`, proprietà di visualizzazione.\r\n */\r\n dataSource: PropTypes.oneOfType([PropTypes.array, PropTypes.func]),\r\n};\r\n\r\nAutocompleteFilter.defaultProps = {\r\n className: null,\r\n description: null,\r\n query: QueryOptions.STARTS_WITH,\r\n minLength: 3,\r\n renderProperty: undefined,\r\n filterProperty: undefined,\r\n url: null,\r\n dataSource: undefined,\r\n renderRow: undefined,\r\n};\r\n\r\nexport default AutocompleteFilter;\r\n","import { useEffect, useContext } from 'react';\r\nimport useFilterContext from '../useFilterContext';\r\nimport FiltersGroupContext from '../FiltersGroupContext';\r\n\r\n/**\r\n * Imposta le informazioni del componente.\r\n */\r\nexport default function useSetFilterInfo(propertyName, type) {\r\n const group = useContext(FiltersGroupContext);\r\n const context = useFilterContext();\r\n\r\n useEffect(() => {\r\n context.setInfo(propertyName, { type, group });\r\n }, [context, group, propertyName, type]);\r\n}\r\n","import React, { useMemo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\nimport { QueryOptions } from '../../../Utils/QueryOptions';\r\nimport useFilterContext from '../useFilterContext';\r\nimport Radio from '../../../Radio/Radio';\r\nimport Log from '../../../../utils/log';\r\nimport useSetFilterInfo from './useSetFilterInfo';\r\n\r\nexport const ALL_VALUE = {\r\n description: 'Tutti',\r\n value: '__ALL__',\r\n};\r\n\r\nfunction createOnChangeRadio(value, oldValue, displayValue, props, context) {\r\n const { propertyName, description, query } = props;\r\n const { removeFilter, addFilter } = context;\r\n return (event) => {\r\n if (!event.target.checked) return; // sempre una attiva!\r\n if (value === ALL_VALUE.value) {\r\n removeFilter({ propertyName, value: oldValue });\r\n } else {\r\n addFilter({\r\n propertyName, value, displayValue, query, description: description || propertyName,\r\n }, true);\r\n }\r\n };\r\n}\r\n\r\n/**\r\n * Filtro di scelta tra valori tramite un set di Radio.\r\n*/\r\nconst RadiosFilter = ({\r\n description, propertyName, query, className, direction, options,\r\n}) => {\r\n const { removeFilter, addFilter, getFilter } = useFilterContext();\r\n useSetFilterInfo(propertyName, 'RadiosFilter');\r\n\r\n const filterValue = useMemo(() => {\r\n const filter = getFilter(propertyName);\r\n if (!filter || filter.length === 0) return ALL_VALUE.value;\r\n if (filter.length > 1) {\r\n Log.error(`Property ${propertyName} filter has got more than 1 value!`);\r\n }\r\n return filter[0].value;\r\n }, [propertyName, getFilter]);\r\n\r\n const groupClassname = cns('v2-filter__radios-group', `v2-filter__radios-group--${direction}`);\r\n\r\n return (\r\n
    \r\n {description}\r\n
    \r\n {options.map((item) => {\r\n const { description: radioDescr, label, value } = item;\r\n return (\r\n \r\n );\r\n })}\r\n
    \r\n
    \r\n );\r\n};\r\n\r\nRadiosFilter.All = ALL_VALUE;\r\n\r\nRadiosFilter.propTypes = {\r\n /** Etichetta da visualizzare nel campo che renderizza il componente */\r\n description: PropTypes.string,\r\n\r\n /** nome della proprietà del filtro */\r\n propertyName: PropTypes.string.isRequired,\r\n\r\n // tipo di query (vedo `import {QueryOptions} from \"framework-ui-components\"`)\r\n query: PropTypes.oneOf([QueryOptions.EQUAL, QueryOptions.CUSTOM_FILTER]),\r\n\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n\r\n /**\r\n * Direzione dei radio button.\r\n * `row` presenta i radio button in orizzontale, `column` in verticale.\r\n */\r\n direction: PropTypes.oneOf(['row', 'column']),\r\n\r\n /**\r\n * Valori da associare ai Radio buttons.\r\n * Un particolare valore è l'oggetto `Filter.Radios.All` che ha il significato di \"tutti i valori\".\r\n */\r\n options: PropTypes.arrayOf(PropTypes.shape({\r\n description: PropTypes.string.isRequired,\r\n label: PropTypes.string,\r\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\r\n })).isRequired,\r\n};\r\n\r\nRadiosFilter.defaultProps = {\r\n className: null,\r\n description: null,\r\n query: QueryOptions.EQUAL,\r\n direction: 'row',\r\n};\r\n\r\nexport default RadiosFilter;\r\n","import React, { useMemo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\nimport { QueryOptions } from '../../../Utils/QueryOptions';\r\nimport useFilterContext from '../useFilterContext';\r\nimport Checkbox from '../../../Checkbox/Checkbox';\r\nimport useSetFilterInfo from './useSetFilterInfo';\r\n\r\nfunction createOnChangeCheck(item, items, props, context, allValues, lastSelectedValue, lastDeselectedValue) {\r\n const { description: itemDesc, value } = item;\r\n const {\r\n removeAll, removeFilter, addFilters, addFilter,\r\n } = context;\r\n const {\r\n propertyName, description, query,\r\n } = props;\r\n if (allValues) {\r\n return (event) => {\r\n if (!event.target.checked) {\r\n addFilters(items\r\n .filter((v) => v.value !== value)\r\n .map((v) => ({\r\n propertyName, value: v.value, displayValue: v.description, query, description: description || propertyName,\r\n })));\r\n } else {\r\n // impossibile\r\n }\r\n };\r\n }\r\n return (event) => {\r\n if (!event.target.checked && lastSelectedValue) {\r\n // nothing\r\n } else if (!event.target.checked) {\r\n removeFilter({ propertyName, value });\r\n } else if (event.target.checked && lastDeselectedValue) {\r\n removeAll(propertyName);\r\n } else {\r\n addFilter({\r\n propertyName, value, displayValue: itemDesc, query, description: description || propertyName,\r\n });\r\n }\r\n };\r\n}\r\n\r\n/**\r\n * Filtro di scelta tra valori tramite un set di Checkbox.\r\n*/\r\nconst CheckboxesFilter = ({\r\n description, propertyName, query, className, direction, options,\r\n}) => {\r\n const context = useFilterContext();\r\n useSetFilterInfo(propertyName, 'CheckboxesFilter');\r\n\r\n const { values: filterValues, allValues } = useMemo(() => {\r\n const filter = context.getFilter(propertyName);\r\n return { values: filter.map((f) => f.value), allValues: filter.length === 0 };\r\n }, [context, propertyName]);\r\n\r\n const groupClassname = cns('v2-filter__checkboxes-group', `v2-filter__checkboxes-group--${direction}`);\r\n\r\n return (\r\n
    \r\n {description}\r\n
    \r\n {options.map((item) => {\r\n const { description: itemDescr, label, value } = item;\r\n const lastSelectedValue = filterValues.length === 1 && filterValues[0] === value;\r\n const lastDeselectedValue = filterValues.length === options.length - 1 && !filterValues.includes(value);\r\n return (\r\n \r\n );\r\n })}\r\n
    \r\n
    \r\n );\r\n};\r\n\r\nCheckboxesFilter.propTypes = {\r\n /** Etichetta da visualizzare nel campo che renderizza il componente */\r\n description: PropTypes.string,\r\n\r\n /** nome della proprietà del filtro */\r\n propertyName: PropTypes.string.isRequired,\r\n\r\n // tipo di query (vedo `import {QueryOptions} from \"framework-ui-components\"`)\r\n query: PropTypes.oneOf([QueryOptions.EQUAL, QueryOptions.CUSTOM_FILTER]),\r\n\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n\r\n /**\r\n * Direzione delle chackbox.\r\n * `row` presenta le checkbox in orizzontale, `column` in verticale.\r\n */\r\n direction: PropTypes.oneOf(['row', 'column']),\r\n\r\n /**\r\n * Valori da associare ai Radio buttons.\r\n * Un particolare valore è l'oggetto `Filter.checkboxes.All` che ha il significato di \"tutti i valori\".\r\n */\r\n options: PropTypes.arrayOf(PropTypes.shape({\r\n description: PropTypes.string.isRequired,\r\n label: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\r\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\r\n })).isRequired,\r\n};\r\n\r\nCheckboxesFilter.defaultProps = {\r\n className: null,\r\n description: null,\r\n query: QueryOptions.EQUAL,\r\n direction: 'row',\r\n};\r\n\r\nexport default CheckboxesFilter;\r\n","/* eslint-disable react/forbid-prop-types */\r\nimport React, {\r\n useMemo, Children, useState, useEffect,\r\n} from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\nimport FilterIcon from '../../Icons/FilterIcon';\r\nimport Button from '../Button/Button';\r\nimport useToggleState from '../Hooks/useToggleState';\r\nimport { NOOP } from '../../../utils/const';\r\nimport { QueryOptions } from '../../Utils/QueryOptions';\r\nimport SelectedFilters from './SelectedFilters';\r\nimport AdvancedFilters from './AdvancedFilters';\r\nimport InputFilter from './components/InputFilter';\r\nimport FilterContext, { createFilterContext } from './FilterContext';\r\nimport Log from '../../ConsoleLogger/ConsoleLog';\r\nimport ExpandedFilters from './ExpandedFilters';\r\nimport DatePickerFilter from './components/DatePickerFilter';\r\nimport DateRangeFilter from './components/DateRangeFilter';\r\nimport InputRangeFilter from './components/InputRangeFilter';\r\nimport SelectFilter from './components/SelectFilter';\r\nimport AutocompleteFilter from './components/AutocompleteFilter';\r\nimport RadiosFilter from './components/RadiosFilter';\r\nimport CheckboxesFilter from './components/CheckboxesFilter';\r\nimport { sameType } from '../../../utils/react';\r\n\r\nfunction getComponents(children) {\r\n let expandedFilters;\r\n let advancedFilters;\r\n Children.forEach(children, (child) => {\r\n if (sameType(child, AdvancedFilters)) {\r\n advancedFilters = child;\r\n } else if (sameType(child, ExpandedFilters)) {\r\n expandedFilters = child;\r\n } else {\r\n Log.warn('Filter children are not in [AdvancedFilters, ExpandedFilters]');\r\n }\r\n });\r\n return { expandedFilters, advancedFilters };\r\n}\r\n\r\n/**\r\n * Ritorna lo stato dei filtri da visualizzare nell'area SelectedFilters.\r\n *\r\n * Al momento i filtri di tipo Checkboxes e Radios che sono nella sezione espansa, non si devono vedere.\r\n */\r\nfunction useSelectedFitlersState(state, context) {\r\n const [propertiesMetainfo, setPropertiesMetainfo] = useState({});\r\n\r\n useEffect(() => {\r\n setPropertiesMetainfo(context.propertiesMetaInfo);\r\n }, [context]);\r\n\r\n return useMemo(() => {\r\n if (!state) return state;\r\n const result = { ...state };\r\n for (const propertyName of Object.keys(result)) {\r\n const info = propertiesMetainfo[propertyName];\r\n if (result[propertyName]\r\n && info\r\n && (info.type === 'CheckboxesFilter' || info.type === 'RadiosFilter')\r\n && info.group === 'ExpandedFilters') {\r\n delete result[propertyName];\r\n }\r\n }\r\n return result;\r\n }, [state, propertiesMetainfo]);\r\n}\r\n\r\n/**\r\nI filtri avanzati permettono di interrogare i dati nella tabella in maniera più specifica.\r\nSi posizionano nella parte alta a sinistra della tabella.\r\nI filtri semanticamente correlati devono essere ravvicinati e non possono essere separati.\r\n\r\nNel caso di filtri usati molto spesso è possibile porli all'esterno del menu \"Filtri avanzati\"\r\ne lasciarli sempre visibili per rendere più veloce la fruizione.\r\n\r\nPer specificare i filtri sempre visibili aggiungere al componente `Filter` un child di tipo `Filter.ExpandedFilters`.\r\nPer specificare i filtri avanzati aggiungere al componente `Filter` un child di tipo `Filter.AdvancedFilters`.\r\n\r\n_ATTENZIONE: Se non esiste al primo livello un child di tipo `Filter.ExpandedFilters` o `Filter.AdvancedFilters` non sarà possibile identificare i filtri._\r\n\r\n*Attenzione:* Dalla versione del Framework 3.1 viene utilizzato lo standard OData 4 e non più lo standard OData 2.\r\nIl framework-ui-components gestisce di default lo standard OData 2.\r\nPer cambiare il comportamento di default, chiamare il metodo `useODataVersion4` il prima possibile.\r\n\r\n```js\r\nimport { useODataVersion4 } from 'framework-ui-components/Components/Utils/QueryOptions';\r\nuseODataVersion4();\r\n```\r\n\r\nEsiste anche la funzione `useODataVersion2`, ma come detto non dovrebbe mai essere utilizzata in quando imposta la gestione di default.\r\n */\r\nconst Filter = ({\r\n state, onChange, className, children,\r\n advancedFiltersLabels, showAdvancedFilters: initShowAdvancedFilters,\r\n}) => {\r\n const [showAdvancedFilters, changeShowAdvancedFilters] = useToggleState(initShowAdvancedFilters ? [true, false] : [false, true]);\r\n\r\n const context = useMemo(() => createFilterContext(state, onChange), [onChange, state]);\r\n\r\n const { expandedFilters, advancedFilters } = useMemo(() => getComponents(children), [children]);\r\n\r\n const selectedFilterState = useSelectedFitlersState(state, context);\r\n\r\n return (\r\n
    \r\n \r\n {expandedFilters}\r\n {advancedFilters && (\r\n
    \r\n
    \r\n \r\n {showAdvancedFilters && advancedFilters}\r\n
    \r\n
    \r\n )}\r\n
    \r\n \r\n
    \r\n );\r\n};\r\n\r\nFilter.propTypes = {\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n\r\n /** Stato del filtro */\r\n state: PropTypes.objectOf(PropTypes.arrayOf(PropTypes.shape({\r\n propertyName: PropTypes.string.isRequired,\r\n\r\n description: PropTypes.string,\r\n\r\n value: PropTypes.oneOfType([\r\n PropTypes.any,\r\n PropTypes.shape({\r\n from: PropTypes.any,\r\n to: PropTypes.any,\r\n }),\r\n ]),\r\n\r\n // valore presentato in alternativa a value\r\n displayValue: PropTypes.string,\r\n\r\n // tipo di query (vedo `import {QueryOptions} from \"framework-ui-components\"`)\r\n query: PropTypes.oneOf([...QueryOptions.list]),\r\n }))).isRequired,\r\n\r\n /** Callback chiamata al cambio dei valori del filtro. Il primo parametro è lo stato del filtro. */\r\n onChange: PropTypes.func,\r\n\r\n /** Children del componente. Deve essere un nodo di tipo `Filter.AdvancedFilters` o `Filter.ExpandedFilters`. */\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node,\r\n ]).isRequired,\r\n\r\n /**\r\nEtichette del bottone per aprire/chiudere i filtri.\r\n\r\nLe stringhe vengono utilizzate rispettivamente quando gli advanced filters sono nascosti e visibili.\r\n */\r\n advancedFiltersLabels: PropTypes.arrayOf(PropTypes.string),\r\n\r\n /** Indica se i filtri avanzati devono essere inizialmente visibili o meno */\r\n showAdvancedFilters: PropTypes.bool,\r\n};\r\n\r\nFilter.defaultProps = {\r\n className: undefined,\r\n advancedFiltersLabels: ['Mostra altri filtri', 'Nascondi filtri'],\r\n showAdvancedFilters: false,\r\n onChange: NOOP,\r\n};\r\n\r\nFilter.AdvancedFilters = AdvancedFilters;\r\nFilter.ExpandedFilters = ExpandedFilters;\r\n\r\nFilter.Input = InputFilter;\r\nFilter.DatePicker = DatePickerFilter;\r\nFilter.DateRange = DateRangeFilter;\r\nFilter.InputRange = InputRangeFilter;\r\nFilter.Select = SelectFilter;\r\nFilter.Autocomplete = AutocompleteFilter;\r\nFilter.Radios = RadiosFilter;\r\nFilter.Checkboxes = CheckboxesFilter;\r\n\r\nexport default Filter;\r\n","import { useCallback, useState } from 'react';\r\n\r\n/**\r\n * L'hook mantine uno stato a più valori che cambia chiamando la callback.\r\n * Se gli stati non sono specificati, si intende false/true.\r\n * Il primo stato è quello iniziale.\r\n *\r\n * @param {array} states lista degli stati\r\n * @returns {array} array con stato corrente [0] e funzione per passare allo stato successivo [1].\r\n */\r\nfunction useToggleState(states = [false, true]) {\r\n const [index, setIndex] = useState(0);\r\n const onChange = useCallback(() => {\r\n setIndex((oldIndex) => (oldIndex + 1) % states.length);\r\n }, [states.length]);\r\n return [states[index], onChange];\r\n}\r\n\r\nexport default useToggleState;\r\n","/* eslint-disable react/forbid-prop-types */\r\nimport React, { useContext } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport StandardFilter from '../Filter/Filter';\r\nimport TableContext from './TableContext';\r\n\r\n/**\r\nComponente che disegna il Filter di una ODataTable.\r\n*/\r\nexport default function Filter({ children, advancedFiltersLabels, showAdvancedFilters }) {\r\n const { filters, setFilters } = useContext(TableContext);\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n}\r\n\r\nFilter.propTypes = {\r\n /** Children del componente. Vedi `Filter` */\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node,\r\n ]).isRequired,\r\n\r\n /**\r\nEtichette del bottone per aprire/chiudere i filtri.\r\n\r\nLe stringhe vengono utilizzate rispettivamente quando gli advanced filters sono nascosti e visibili.\r\n */\r\n advancedFiltersLabels: PropTypes.arrayOf(PropTypes.string),\r\n\r\n /** Indica se i filtri avanzati devono essere inizialmente visibili o meno */\r\n showAdvancedFilters: PropTypes.bool,\r\n};\r\n\r\nFilter.defaultProps = {\r\n advancedFiltersLabels: ['Mostra altri filtri', 'Nascondi filtri'],\r\n showAdvancedFilters: false,\r\n};\r\n","import { useCallback, useState } from 'react';\r\n\r\nconst EMPTY_RES = { Items: [], Count: 0 };\r\n\r\n/**\r\n * Custom hook che mantiene i dati e lo stato della lettura.\r\n */\r\nexport default function useODataDataState(onPageLoaded) {\r\n const [items, setItems] = useState(EMPTY_RES);\r\n const [loading, setLoading] = useState(false);\r\n\r\n const beforeLoading = useCallback(() => {\r\n setLoading(true);\r\n }, []);\r\n const loadFailed = useCallback(() => {\r\n setItems(EMPTY_RES);\r\n setLoading(false);\r\n }, []);\r\n const loadSuccessful = useCallback(({ Items, Count }, urlFilters, currentPage, sortProperty, sortOrder) => {\r\n setItems({ Items, Count });\r\n setLoading(false);\r\n onPageLoaded(Items, Count, urlFilters, currentPage, sortProperty, sortOrder);\r\n }, [onPageLoaded]);\r\n\r\n return {\r\n loading,\r\n items,\r\n beforeLoading,\r\n loadFailed,\r\n loadSuccessful,\r\n };\r\n}\r\n","import QueryOptions from './QueryOptions';\r\n\r\n/**\r\n * A query service strategy class. It has services to create query strings.\r\n * @abstract\r\n */\r\nexport default class ODataServiceStrategy {\r\n /**\r\n * Ritorna una stringa safe per costruire l'url.\r\n * @param {string} query query\r\n */\r\n // eslint-disable-next-line class-methods-use-this\r\n safeUrlString(query) {\r\n if (typeof query !== 'string') return query;\r\n // rimpiazzo un single quote con due\r\n // http://docs.oasis-open.org/odata/odata/v4.0/cs01/part2-url-conventions/odata-v4.0-cs01-part2-url-conventions.html\r\n return encodeURIComponent(query.replace(/'/g, \"''\"));\r\n }\r\n\r\n toStringValue(query) {\r\n return query === null ? 'null' : `'${this.safeUrlString(query)}'`;\r\n }\r\n\r\n /**\r\n * Resolve a query item.\r\n * @public\r\n */\r\n resolve = (opt, first, second, func) => {\r\n let query = '';\r\n\r\n switch (opt) {\r\n case QueryOptions.EQUAL:\r\n query = `${first} eq ${second}`;\r\n break;\r\n\r\n case QueryOptions.NOT_EQUAL:\r\n query = `${first} ne ${second}`;\r\n break;\r\n\r\n case QueryOptions.GREATER_THAN:\r\n query = `${first} gt ${second}`;\r\n break;\r\n\r\n case QueryOptions.GREATER_THAN_EQUAL:\r\n query = `${first} ge ${second}`;\r\n break;\r\n\r\n case QueryOptions.LESS_THAN:\r\n query = `${first} lt ${second}`;\r\n break;\r\n\r\n case QueryOptions.LESS_THAN_EQUAL:\r\n query = `${first} le ${second}`;\r\n break;\r\n\r\n case QueryOptions.SUBSTRING:\r\n query = `substringof(${this.toStringValue(second)}, ${this.safeUrlString(first)})`;\r\n break;\r\n\r\n case QueryOptions.ENDS_WITH:\r\n query = `endswith(${this.safeUrlString(first)}, ${this.toStringValue(second)})`;\r\n break;\r\n\r\n case QueryOptions.STARTS_WITH:\r\n query = `startswith(${this.safeUrlString(first)}, ${this.toStringValue(second)})`;\r\n break;\r\n\r\n case QueryOptions.RANGE:\r\n query = second.a ? `${first} le '${second.a}'` : '';\r\n query = second.a && second.da ? `${query} and ` : query;\r\n query = second.da ? `${query + first} ge '${second.da}'` : query;\r\n break;\r\n\r\n case QueryOptions.STRING_EQUAL:\r\n query = `${first} eq ${this.toStringValue(second)}`;\r\n break;\r\n\r\n case QueryOptions.STRING_NOT_EQUAL:\r\n query = `${first} ne ${this.toStringValue(second)}`;\r\n break;\r\n\r\n case QueryOptions.SUBPROPERTY_EQUAL:\r\n query = `${first.substring(0, first.indexOf('/'))}/any(a: a/${first.substring(first.indexOf('/') + 1)} eq ${second})`;\r\n break;\r\n\r\n case QueryOptions.SUBPROPERTY_NOT_EQUAL:\r\n query = `${first.substring(0, first.indexOf('/'))}/any(a: a/${first.substring(first.indexOf('/') + 1)} ne ${second})`;\r\n break;\r\n\r\n case QueryOptions.SUBPROPERTY_SUBSTRING:\r\n query = `${first.substring(0, first.indexOf('/'))}/any(a: substringof(${this.toStringValue(second)}, a/${first.substring(first.indexOf('/') + 1)}))`;\r\n break;\r\n\r\n case QueryOptions.SUBPROPERTY_ENDS_WITH:\r\n query = `${first.substring(0, first.indexOf('/'))}/any(a: endswith(a/${first.substring(first.indexOf('/') + 1)},${this.toStringValue(second)}))`;\r\n break;\r\n\r\n case QueryOptions.SUBPROPERTY_STARTS_WITH:\r\n query = `${first.substring(0, first.indexOf('/'))}/any(a: startswith(a/${first.substring(first.indexOf('/') + 1)},${this.toStringValue(second)}))`;\r\n break;\r\n\r\n case QueryOptions.DATE_EQUAL:\r\n query = `${first} eq ${this.formatDateTime(second)}`;\r\n break;\r\n\r\n case QueryOptions.DAY_EQUAL: {\r\n const date = new Date(second);\r\n query = `day(${first}) eq ${date.getDate()} and month(${first}) eq ${date.getMonth() + 1} and year(${first}) eq ${date.getFullYear()}`;\r\n break;\r\n }\r\n\r\n case QueryOptions.DATE_RANGE:\r\n // eslint-disable-next-line max-len\r\n query = `${first} ge ${this.formatDateTime(this.formatDate(second.inizio))} and ${first} le ${this.formatDateTime(this.formatDate(second.fine), '23:59:59')}`;\r\n break;\r\n\r\n case QueryOptions.DATE_GREATER_THAN:\r\n query = `${first} gt ${this.formatDateTime(second)}`;\r\n break;\r\n\r\n case QueryOptions.DATE_GREATER_THAN_EQUAL:\r\n query = `${first} ge ${this.formatDateTime(second)}`;\r\n break;\r\n\r\n case QueryOptions.DATE_LESS_THAN:\r\n query = `${first} lt ${this.formatDateTime(second)}`;\r\n break;\r\n\r\n case QueryOptions.DATE_LESS_THAN_EQUAL:\r\n query = `${first} le ${this.formatDateTime(second)}`;\r\n break;\r\n\r\n case QueryOptions.CONTAINS:\r\n query = `contains(${this.safeUrlString(first)}, ${this.toStringValue(second)})`;\r\n break;\r\n\r\n case QueryOptions.SUBPROPERTY_CONTAINS:\r\n query = `${first.substring(0, first.indexOf('/'))}/any(a: contains(a/${first.substring(first.indexOf('/') + 1)},${this.toStringValue(second)}))`;\r\n break;\r\n\r\n case QueryOptions.CUSTOM_FILTER:\r\n query = func(first, second);\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n\r\n return query;\r\n };\r\n\r\n /**\r\n * Format to OData DateTime.\r\n * @param Date is a string of type 'YYYY-MM-DD'.\r\n * @abstract\r\n * @protected\r\n */\r\n // eslint-disable-next-line class-methods-use-this\r\n formatDateTime(date) {\r\n throw Error('Not implemented');\r\n }\r\n\r\n /**\r\n * Format a date.\r\n * @protected\r\n */\r\n // eslint-disable-next-line class-methods-use-this\r\n formatDate = (date) => {\r\n const d = new Date(date);\r\n return `${d.getFullYear()}-${(`00${d.getMonth() + 1}`).slice(-2)}-${(`00${d.getDate()}`).slice(-2)}`;\r\n };\r\n\r\n /**\r\n * Resolve a filter with a set of values.\r\n * @public\r\n */\r\n resolveFilter = (field, values) => {\r\n const arr = values.map((x) => this.resolve(x.query, field, x.value === false ? x.value : x.value || x.valore, x.customFilter));\r\n return `(${arr.join(' or ')})`;\r\n };\r\n}\r\n","import QueryOptions from './queryServiceStrategy/QueryOptions';\r\nimport ODATA_2_QUERY_SERVICE_STATEGY from './queryServiceStrategy/OData2ServiceStrategy';\r\nimport ODATA_4_QUERY_SERVICE_STATEGY from './queryServiceStrategy/OData4ServiceStrategy';\r\nimport { OData4WithOffsetServiceStrategy } from './queryServiceStrategy/OData4WithOffsetServiceStrategy';\r\n\r\nlet queryServiceStrategy = ODATA_2_QUERY_SERVICE_STATEGY;\r\n\r\nfunction escapef(input) {\r\n const newInput = encodeURIComponent(input);\r\n const path = \"'\";\r\n return newInput.replace(new RegExp(path, 'g'), \"''\");\r\n}\r\n\r\nfunction resolve(opt, first, second, func) {\r\n return queryServiceStrategy.resolve(opt, first, second, func);\r\n}\r\n\r\nfunction resolveFilter(field, values) {\r\n return queryServiceStrategy.resolveFilter(field, values);\r\n}\r\n\r\n/**\r\n * OData version 4 is different from OData previous versions.\r\n * Query services assume OData 2 as default.\r\n * If you want to use OData 4 (BE Framework >= 3.1), you have to declare it.\r\n */\r\nfunction useODataVersion4() {\r\n queryServiceStrategy = ODATA_4_QUERY_SERVICE_STATEGY;\r\n}\r\n\r\n/**\r\n * OData version 4 is different from OData previous versions.\r\n * Query services assume OData 2 as default.\r\n * If you want to use OData 4 (BE Framework >= 3.1), you have to declare it.\r\n *\r\n * The queries with a date consider the current offset.\r\n * So 12/01/2020 00:00:00 +2:00 creates a query with 2020-01-11T22:00:00Z\r\n *\r\n * @param {int} offset offset in minuti\r\n */\r\nfunction useODataVersion4WithOffset(offset) {\r\n queryServiceStrategy = new OData4WithOffsetServiceStrategy(offset);\r\n}\r\n/**\r\n * OData version 4 is different from OData previous versions.\r\n * Query services assume OData 2 as default.\r\n * If you want to use OData 2 (BE Framework < 3.1), you have to declare it.\r\n */\r\nfunction useODataVersion2() {\r\n queryServiceStrategy = ODATA_2_QUERY_SERVICE_STATEGY;\r\n}\r\n\r\nexport {\r\n QueryOptions,\r\n resolveFilter,\r\n resolve,\r\n escapef as escape,\r\n useODataVersion4,\r\n useODataVersion2,\r\n useODataVersion4WithOffset,\r\n};\r\n","import ODataServiceStrategy from './ODataServiceStrategy';\r\n\r\n/**\r\n * A query service strategy class. It has services to create OData 2 query strings.\r\n */\r\nclass OData2ServiceStrategy extends ODataServiceStrategy {\r\n /**\r\n * Format to OData DateTime.\r\n * @param Date is a string of type 'YYYY-MM-DD'.\r\n * @protected\r\n */\r\n // eslint-disable-next-line class-methods-use-this\r\n formatDateTime = (date) => `datetime'${date}'`;\r\n}\r\n\r\nconst ODATA_2_QUERY_SERVICE_STATEGY = new OData2ServiceStrategy();\r\n\r\nexport default ODATA_2_QUERY_SERVICE_STATEGY;\r\n","import { useCallback, useState } from 'react';\r\n\r\n/**\r\n * Custom hook per la gestione dello stato con tutte le informazioni necessarie al caricamento dei dati.\r\n * Cambiando alcune di questi dati, viene attivata la funzione di beforeLoading.\r\n */\r\nexport default function useODataLoaderState(url, sortInfo, filters, pagination, beforeLoading, resetPagination) {\r\n // si utilizza un unico state perchè ci sono situazioni in cui a fronte di una modifica possono cambiare più caratteristiche\r\n // es. al cambio dell'url resetto lo stato.\r\n const [state, setState] = useState({\r\n sortInfo,\r\n filters,\r\n pagination,\r\n });\r\n\r\n const setSortInfo = useCallback(\r\n (sortiInfoParm) => setPartialState(setState, beforeLoading, 'sortInfo', sortiInfoParm),\r\n [beforeLoading],\r\n );\r\n const setFilters = useCallback(\r\n (filtersParam) => setPartialState(setState, beforeLoading, 'filters', filtersParam),\r\n [beforeLoading],\r\n );\r\n const setPagination = useCallback(\r\n (paginationParam) => setPartialState(setState, beforeLoading, 'pagination', paginationParam),\r\n [beforeLoading],\r\n );\r\n\r\n const clearFilters = useCallback(() => {\r\n setState((s) => {\r\n if (Object.keys(s.filters).length === 0) return s;\r\n return { ...s, filters: {} };\r\n });\r\n }, []);\r\n\r\n return {\r\n state,\r\n setFilters,\r\n setSortInfo,\r\n setPagination,\r\n clearFilters,\r\n };\r\n}\r\n\r\nfunction setPartialState(setState, beforeCallback, propName, value, newPartialState) {\r\n beforeCallback();\r\n setState((s) => {\r\n if (s[propName] === value) {\r\n return s;\r\n }\r\n if (newPartialState) {\r\n return { ...s, ...newPartialState };\r\n }\r\n return { ...s, [propName]: value };\r\n });\r\n}\r\n","import { NOOP } from '../../../utils/const';\r\nimport { isUndefined, omit } from '../../../utils/js';\r\nimport { ODataV2 } from '../../Utils/odata';\r\nimport useODataDataState from '../ODataTable/useODataDataState';\r\nimport useODataLoader from '../ODataTable/useODataLoader';\r\nimport useODataLoaderState from '../ODataTable/useODataLoaderState';\r\n\r\n/**\r\nGestisce lo stato interno di una `ODataTable` mantenendo allineati i componenti `Table`, `Filter` e `Pagination`.\r\n\r\nI dati storicizzati (`storedData`) hanno la stessa struttura dei dati di stato `filters`, `sortInfo`, `pagination`.\r\n\r\nLe props iniziali (`props`) sono un oggetto con:\r\n\r\n- **sortProperty** proprietà di ordinamento\r\n- **sortOrder** tipo di ordinamento `asc/desc`\r\n- **initPageSize* dimensione iniziale delle pagine\r\n- **initialFilters** filtri iniziali (vedi ODataTable)\r\n\r\nIl risualto è un oggetto con:\r\n\r\n- **loading** stato del caricamento\r\n- **items** oggetti caticati\r\n- **filters* filtri correnti\r\n- **setFilters* funzione per cambiare i filtri\r\n- **sortInfo** info di ordinamento (id, order)\r\n- **setSortInfo* funzione per cambiare le info di ordinamento\r\n- **pagination** paginazione corrente\r\n- **setPagination* funzione per cambiare la paginazione\r\n- **loadData** funzione per eseguire un ri-caricamento\r\n- **clearFilters** funzione che resetta i filtri riportandoli alle condizioni iniziali\r\n\r\n * @param {string} url indirizzo caricamento dati\r\n * @param {object} storedData dati dello stato salvati temporaneamente\r\n * @param {object} props proprietà iniziali\r\n * @param {func} resetPagination funzione invocata per resettare lo stato della paginazione\r\n * @param {func} onPageLoaded aggancio invocato al caricamento dei dati\r\n * @param {object} odata classe di gestione comunicazione OData (USO TEST)\r\n * @returns stato e funzioni per coordinare i componenti.\r\n */\r\nfunction useODataState(url, storedData, {\r\n sortProperty, sortOrder, initPageSize, initialFilters,\r\n}, resetPagination = NOOP, onPageLoaded = NOOP, odata = ODataV2) {\r\n const {\r\n loading,\r\n items,\r\n beforeLoading,\r\n loadFailed,\r\n loadSuccessful,\r\n } = useODataDataState(onPageLoaded);\r\n\r\n const {\r\n state,\r\n setFilters,\r\n setSortInfo,\r\n setPagination,\r\n clearFilters,\r\n } = useODataLoaderState(\r\n url,\r\n storedData.sortInfo || { id: sortProperty, order: sortOrder },\r\n storedData.filters || getInitialFilter(initialFilters),\r\n storedData.pagination ? storedData.pagination : { currentPage: 0, pageSize: initPageSize },\r\n beforeLoading,\r\n\r\n resetPagination,\r\n );\r\n\r\n const { filters, sortInfo, pagination } = state;\r\n const loadData = useODataLoader(odata, { ...state, url }, pagination, initialFilters, loadFailed, loadSuccessful, beforeLoading, resetPagination);\r\n\r\n return {\r\n loading,\r\n items,\r\n filters,\r\n sortInfo,\r\n pagination,\r\n loadData,\r\n\r\n setFilters,\r\n setSortInfo,\r\n setPagination,\r\n clearFilters,\r\n };\r\n}\r\n\r\nexport function getInitialFilter(filters = []) {\r\n const filtersState = {};\r\n filters\r\n .filter((f) => !isUndefined(f.value))\r\n .forEach((f) => {\r\n if (!filtersState[f.propertyName]) {\r\n filtersState[f.propertyName] = [];\r\n }\r\n\r\n filtersState[f.propertyName].push(omit(f, 'customFilter'));\r\n });\r\n return filtersState;\r\n}\r\n\r\nexport default useODataState;\r\n","import {\r\n useCallback, useEffect, useRef,\r\n} from 'react';\r\nimport { NOOP } from '../../../utils/const';\r\nimport { groupBy } from '../../Utils/ODataLoader';\r\nimport { resolveFilter } from '../../Utils/QueryOptions';\r\n\r\nexport function getUrlFilters(filters, customFilters = []) {\r\n const result = [];\r\n Object.keys(filters || {}).forEach((propertyName) => {\r\n const filtriProp = filters[propertyName];\r\n const { customFilter } = customFilters.find((x) => x.propertyName === propertyName) || {};\r\n const group = groupBy(filtriProp || [], 'query');\r\n Object.keys(group).forEach((z) => {\r\n const query = resolveFilter(propertyName, group[z].map((x) => ({ ...x, customFilter })));\r\n result.push(query);\r\n });\r\n });\r\n return result;\r\n}\r\n\r\n/**\r\n * Custom hook di cariamento dei dati.\r\n */\r\nexport default function useODataLoader(\r\n odata,\r\n state,\r\n pagination,\r\n customFilters,\r\n loadFailed = NOOP,\r\n loadSuccessful = NOOP,\r\n beforeLoading = NOOP,\r\n resetPagination = NOOP,\r\n) {\r\n const { url, filters, sortInfo } = state;\r\n\r\n const loadData = useCallback(\r\n () => {\r\n beforeLoading();\r\n const urlFilters = getUrlFilters(filters, customFilters);\r\n const order = sortInfo.order === 'asc';\r\n const dataUrl = odata.getUrl(\r\n url,\r\n pagination.pageSize,\r\n\r\n pagination.currentPage * pagination.pageSize,\r\n sortInfo.id,\r\n\r\n order,\r\n urlFilters,\r\n );\r\n odata.load(\r\n dataUrl,\r\n pagination.pageSize,\r\n\r\n pagination.currentPage * pagination.pageSize,\r\n sortInfo.id,\r\n\r\n order,\r\n urlFilters,\r\n ).then((results) => {\r\n // Torno alla prima pagina se c'è una incoerenza\r\n if (pagination.currentPage > 0 && results.Count < pagination.startIndex) {\r\n resetPagination();\r\n }\r\n loadSuccessful(results, urlFilters, pagination.currentPage, sortInfo.id, order);\r\n })\r\n .catch(loadFailed);\r\n },\r\n [\r\n beforeLoading, filters, customFilters, sortInfo.order, sortInfo.id, odata, url, pagination.pageSize,\r\n pagination.currentPage, pagination.startIndex, loadFailed, loadSuccessful, resetPagination,\r\n ],\r\n );\r\n\r\n const precUrlRef = useRef(url);\r\n useEffect(() => {\r\n if (precUrlRef.current !== url && state.pagination.currentPage !== 0) {\r\n resetPagination(); // ricarica la pagina e la prox volta farà il load.\r\n } else {\r\n loadData();\r\n }\r\n precUrlRef.current = url;\r\n }, [resetPagination, state.pagination.currentPage, url, loadData]);\r\n\r\n return loadData;\r\n}\r\n","import ODataTableStorage from '../ODataTable/ODataTableStorage';\r\nimport { NOOP } from '../../utils/const';\r\nimport { resolveFilter } from './QueryOptions';\r\nimport odata from './odata';\r\n\r\nexport function groupBy(xs, key) {\r\n return xs.reduce((rv, x) => {\r\n const newRv = rv;\r\n (newRv[x[key]] = newRv[x[key]] || []).push(x);\r\n return newRv;\r\n }, {});\r\n}\r\n\r\n/**\r\n * La classe gestisce il caricamento da sorgente OData.\r\n */\r\nclass ODataLoader {\r\n constructor(onChangeState = NOOP) {\r\n this.onChangeState = onChangeState;\r\n this.store = new ODataTableStorage();\r\n }\r\n\r\n getInitialState(pageSize, sortProperty, sortOrder) {\r\n return {\r\n loading: false,\r\n selected: false,\r\n items: [],\r\n count: 0,\r\n currentPage: 0,\r\n pageSize: pageSize || 20,\r\n sortProperty,\r\n sortOrder,\r\n totalPages: 0,\r\n filter: {},\r\n };\r\n }\r\n\r\n /**\r\n * Assegna i risultati di un caricamento.\r\n * @private\r\n */\r\n setResults(results, pageSize, filtri, state) {\r\n this.onChangeState({\r\n ...state,\r\n filter: filtri,\r\n loading: false,\r\n items: results ? results.Items : [],\r\n totalPages: results ? Math.ceil(results.Count / pageSize) : 0,\r\n count: results ? results.Count : 0,\r\n });\r\n }\r\n\r\n /**\r\n * Carica la pagina.\r\n * @public\r\n */\r\n loadPage({ url, dataSource }, state) {\r\n this.onChangeState({ loading: true, selected: false });\r\n const {\r\n currentPage, filter, pageSize, sortProperty,\r\n sortOrder,\r\n } = state;\r\n const filtri = [];\r\n Object.keys(filter).forEach((x) => {\r\n const filtriProp = filter[x];\r\n const group = groupBy(filtriProp, 'query');\r\n Object.keys(group).forEach((z) => {\r\n const query = resolveFilter(x, group[z]);\r\n filtri.push(query);\r\n });\r\n });\r\n\r\n this.store.salvaStato({\r\n pageSize,\r\n currentPage,\r\n sortProperty,\r\n sortOrder,\r\n filtri: filter,\r\n });\r\n\r\n if (url && typeof (url) === 'string') {\r\n odata.cerca(\r\n url,\r\n pageSize,\r\n currentPage * pageSize,\r\n sortProperty,\r\n sortOrder,\r\n filtri,\r\n ).then((results) => {\r\n this.setResults(results, pageSize, filtri, state);\r\n });\r\n }\r\n\r\n if (dataSource && typeof (dataSource) === 'function') {\r\n const filteredResult = dataSource(pageSize,\r\n currentPage * pageSize, sortProperty, sortOrder, filtri);\r\n // verifico se mi viene ritornata una promise\r\n if (filteredResult.then && typeof filteredResult.then === 'function') {\r\n filteredResult.then((results) => {\r\n this.setResults(results, pageSize, filtri, state);\r\n });\r\n } else {\r\n this.setResults(filteredResult, pageSize, filtri, state);\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport default ODataLoader;\r\n","import React, {\r\n Children, useMemo, useCallback,\r\n useEffect, useImperativeHandle, useRef,\r\n} from 'react';\r\nimport cns from 'classnames';\r\nimport PropTypes from 'prop-types';\r\nimport Table from '../Table/Table';\r\nimport Pagination from '../Pagination/Pagination';\r\nimport Head from './Head';\r\nimport Column from './Column';\r\nimport Spinner from '../../Spinner';\r\nimport { ODataV2 } from '../../Utils/odata';\r\nimport TableContext from './TableContext';\r\nimport Filter from './Filter';\r\nimport ColumnGroup from './ColumnGroup';\r\nimport { NOOP } from '../../../utils/const';\r\nimport { QueryOptions } from '../../Utils/QueryOptions';\r\nimport { storage } from '../../../utils/storage';\r\nimport { sameType } from '../../../utils/react';\r\nimport useODataState from '../Hooks/useODataState';\r\nimport useTableItemsSelection from '../Hooks/useTableItemsSelection';\r\n\r\n/**\r\n * Definisce oDataTableRef facendo anche un forwarding delle funzioni di Table.\r\n * ATTENZIONE: mantenere allinate le funzioni della ref di Table.\r\n */\r\nfunction useODataTableImperativeHandle(oDataTableRef, loadData, clearFilters) {\r\n const tableRef = useRef();\r\n useImperativeHandle(oDataTableRef, () => ({\r\n refreshTable: () => { loadData(); },\r\n resetSelection: () => tableRef.current.resetSelection(),\r\n clearFilters,\r\n }), [loadData, clearFilters]);\r\n return tableRef;\r\n}\r\n\r\nfunction useStoreMemo(store) {\r\n return useMemo(() => {\r\n if (!store) return {};\r\n return storage(store).load() || {};\r\n }, [store]);\r\n}\r\n\r\nfunction useTableChildren(children) {\r\n return useMemo(() => {\r\n let [f, h] = [];\r\n Children.forEach(children, (child) => {\r\n if (sameType(child, Filter)) {\r\n f = child;\r\n } else if (sameType(child, Head)) {\r\n h = child;\r\n }\r\n });\r\n return { filterContent: f, tableHead: h };\r\n }, [children]);\r\n}\r\n\r\nfunction useNoDataFoundMessageNode(filters, noDataFoundMessage) {\r\n return useMemo(() => {\r\n if (typeof noDataFoundMessage === 'function') {\r\n return noDataFoundMessage(filters);\r\n }\r\n return noDataFoundMessage;\r\n }, [filters, noDataFoundMessage]);\r\n}\r\n\r\n/**\r\nE' una tabella alimentata da una sorgente dati OData.\r\n\r\nVedi [Design System di CGN - Tabella](https://zeroheight.com/1b5e94371/p/497adf-tabella/b/02c4ad)\r\n\r\nPer specificare i filtri da applicare alla tabella,\r\naggiungere come child di `ODataTable` il componente `ODataTable.Filter`.\r\nI children di `ODataTable.Filter` sono gli stessi di `Filter`.\r\n\r\nLa reference di ODataTable fornisce alcune funzioni di utilità:\r\n\r\n- **refreshTable**: ricarica i dati.\r\n- **resetSelection**: resetta la selezione.\r\n- **clearFilters**: cancella i filtri.\r\n\r\n_ATTENZIONE: Se non esiste al primo livello un child di tipo `ODataTable.Filter` non sarà possibile identificare i filtri._\r\n\r\nPer specificare le colonne della tablla,\r\naggiungere come child di `ODataTable` il componente `ODataTable.Head`.\r\nI children di `ODataTable.Head` sono di tipo `ODataTable.Column` o `ODataTable.ColumnGroup`.\r\n\r\n_ATTENZIONE: Se non esiste al primo livello un child di tipo `ODataTable.Head` non sarà possibile identificare le colonne della tabella._\r\n\r\n_Gestione filtri custom_: `ODataTable` riusa Filter che non ha una gestione \"custom\" del calcolo dei filtri.\r\nPer questo motivo la definizione di una eventuale funzione per il calcolo del filtro in protocollo OData\r\ndeve essere definita nella proprietà `initialFilters`.\r\n\r\n*/\r\nconst ODataTable = React.forwardRef(({\r\n className, scrollable, height, store,\r\n odata, url, children, afterFilterChildren, initPageSize, pageSizeOptions, rowRender,\r\n selectable, enableSelectAll, onSelectionChange, onPageLoaded,\r\n sortOrder, sortProperty, initialFilters, itemDescriptions, noDataFoundMessage,\r\n}, ref) => {\r\n const storeRef = useRef(store);\r\n const storedData = useStoreMemo(store);\r\n\r\n const paginationRef = useRef();\r\n const resetPagination = useCallback(() => paginationRef.current.goToFirstPage(), []);\r\n\r\n const {\r\n loading,\r\n items,\r\n filters,\r\n sortInfo,\r\n pagination,\r\n loadData,\r\n setFilters,\r\n setSortInfo,\r\n setPagination,\r\n clearFilters,\r\n } = useODataState(url, storedData, {\r\n sortProperty, sortOrder, initPageSize, initialFilters,\r\n }, resetPagination, onPageLoaded, odata);\r\n\r\n useEffect(() => {\r\n if (store) {\r\n // salvataggio nello store solamente se non è cambiato\r\n if (storeRef.current === store) {\r\n storage(store).save({ pagination: pagination || {}, sortInfo, filters });\r\n } else {\r\n storeRef.current = store;\r\n }\r\n }\r\n }, [filters, pagination, sortInfo, store]);\r\n\r\n const tableRef = useODataTableImperativeHandle(ref, loadData, clearFilters);\r\n\r\n const { filterContent, tableHead } = useTableChildren(children);\r\n\r\n const noDataFoundMessageNode = useNoDataFoundMessageNode(filters, noDataFoundMessage);\r\n\r\n const [initialSelection, handleSelectionchange] = useTableItemsSelection(items.Items, onSelectionChange);\r\n\r\n const context = useMemo(() => ({\r\n sortInfo, setSortInfo, filters, setFilters,\r\n }), [filters, setFilters, setSortInfo, sortInfo]);\r\n\r\n // i children disegnano l'head e i filtri della Table\r\n return (\r\n \r\n
    \r\n \r\n {filterContent ||
    }\r\n {afterFilterChildren}\r\n \r\n \r\n {tableHead}\r\n \r\n {loading ? undefined : items.Items && items.Items.map((item) => rowRender(item))}\r\n \r\n \r\n {loading &&
    }\r\n {!loading && items.Count === 0 &&
    {noDataFoundMessageNode}
    }\r\n
    \r\n \r\n );\r\n});\r\n\r\nODataTable.propTypes = {\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n\r\n /**\r\nDetermina se la tabella ha un compoertamento \"scrollabile\" ossia presenta a dx un scrolla solo sulle righe.\r\nUsare `height` per impostare l'altezza del body.\r\n\r\nATTENZIONE: la dimensione delle colonne DEVE ESSERE determinata dalla dimensione dell'intestazione\r\ne non cambiare in base al contenuto delle celle.\r\n\r\nVedi prop `width` o `className` di `Table.Column`.\r\n */\r\n scrollable: PropTypes.bool,\r\n\r\n /** Altezza del body, da usare con la prop `scrollable` */\r\n height: PropTypes.string,\r\n\r\n /**\r\nCustomize l'OData provider. Vedi `Components/Utils/odata`.\r\n */\r\n odata: PropTypes.shape({\r\n load: PropTypes.func.isRequired,\r\n }),\r\n\r\n /**\r\nUrl da chiamare per ottenere i risultati\r\n */\r\n url: PropTypes.string.isRequired,\r\n\r\n /** Funzione che risegna una riga dato un item */\r\n rowRender: PropTypes.func.isRequired,\r\n\r\n /** Children del componente. Deve essere un nodo di tipo `ODataTable.Filter` o `ODataTable.Head`. */\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node,\r\n ]).isRequired,\r\n\r\n /** Dimensione iniziale delle pagine, vedi `Pagination` */\r\n initPageSize: PropTypes.number,\r\n\r\n /** Opzioni delle dimensioni delle pagine tra cui scegliere, vedi `Pagination` */\r\n pageSizeOptions: PropTypes.arrayOf(PropTypes.number),\r\n\r\n /**\r\nSpecifica se la tabella permette la selezione multipla delle righe.\r\n\r\nPer identificare la riga selezinata verrà utilizzato l'attibuto object, se definito, o id di Row.\r\n\r\nUtilizzando la reference dell'oggetto react è possibile accedere al metodo resetSelection che permette di cancellare la selezione.\r\n\r\n```js\r\n const ref = useRef();\r\n ...\r\n ref.current.resetSelection();\r\n ...\r\n \r\n ...\r\n```\r\n\r\nSe esisten una selezione, la tabella mostrerà un pannello informativo di forma diversa in base alla viewport.\r\nQuesta gestione si abilita solo se il componente è figlio di un ViewportProvider.\r\n */\r\n selectable: PropTypes.bool,\r\n\r\n /**\r\nAbilita la selezione di tutti gli elementi, comprensivi di quelli non presenti nella pagina (vedi Table.Selection.SELECTED_ALL).\r\n */\r\n enableSelectAll: PropTypes.bool,\r\n\r\n /**\r\nCallback richiamata al cambio della selezione, vedi `Table`\r\n\r\nPer identificare la riga selezinata verrà utilizzato l'attibuto object, se definito, o id di Row.\r\nIl primo parametro è la lista delle righe visibili e selezionate,\r\nil secondo parametro è il tipo di azione compiuta:\r\n\r\n```js\r\n {type: Table.Selection.DESELECTED, id: ..., object: ...}\r\n {type: Table.Selection.SELECTED_ALL}\r\n {type: Table.Selection.SELECTED_ALL_IN_PAGE}\r\n {type: Table.Selection.SELECTED_NONE}\r\n {type: Table.Selection.SELECTED_NONE_IN_PAGE}\r\n {type: Table.Selection.SELECTED, id: ..., object: ...}\r\n```\r\n\r\n*/\r\n onSelectionChange: PropTypes.func,\r\n\r\n /**\r\nCallback invocata ad ogni caricamento di pagina:\r\n\r\n```\r\n onPageLoaded(pageItems, totalCount, currentFilter, currentPage, sortProperty, sortOrder)\r\n```\r\ndove:\r\n\r\n- `pageItems`: elementi della pagina\r\n- `totalCount`: numero totale di elementi\r\n- `currentFilter`: filtri usati per la chiamata corrente\r\n- `currentPage`: numero della pagina corrente\r\n- `sortProperty`: proprietà usata per l'ordinamento\r\n- `sortOrder`: true = ordinamento crescente\r\n */\r\n onPageLoaded: PropTypes.func,\r\n\r\n /** Definisce l'ordine con cui è ordinata la colonna */\r\n sortOrder: PropTypes.oneOf(['asc', 'desc']),\r\n\r\n /** Definisce il nome della proprietà dell'ordinamento iniziale */\r\n sortProperty: PropTypes.string,\r\n\r\n /**\r\nDefinisce dei filtri iniziali preimpostati.\r\n\r\nGli oggetti contenuti hanno la seguente struttura:\r\n\r\n```\r\n{\r\n propertyName: PropTypes.string.isRequired,\r\n\r\n description: PropTypes.string,\r\n\r\n value: PropTypes.oneOfType([\r\n PropTypes.any,\r\n PropTypes.shape({\r\n from: PropTypes.any,\r\n to: PropTypes.any,\r\n }),\r\n ]),\r\n\r\n displayValue: PropTypes.string,\r\n\r\n query: PropTypes.oneOf([...QueryOptions.list]),\r\n\r\n customFilter: PropTypes.func,\r\n }\r\n```\r\n*/\r\n initialFilters: PropTypes.arrayOf(PropTypes.shape({\r\n propertyName: PropTypes.string.isRequired,\r\n\r\n description: PropTypes.string,\r\n\r\n value: PropTypes.oneOfType([\r\n PropTypes.any,\r\n PropTypes.shape({\r\n // eslint-disable-next-line react/forbid-prop-types\r\n from: PropTypes.any,\r\n // eslint-disable-next-line react/forbid-prop-types\r\n to: PropTypes.any,\r\n }),\r\n ]),\r\n\r\n // valore presentato in alternativa a value\r\n displayValue: PropTypes.string,\r\n\r\n // tipo di query (vedo `import {QueryOptions} from \"framework-ui-components\"`)\r\n query: PropTypes.oneOf([...QueryOptions.list]),\r\n\r\n // funzione per valutare il filtro in modo \"custom\"\r\n customFilter: PropTypes.func,\r\n })),\r\n\r\n /**\r\nAbilita il salvataggio dei dati di filtro, paginazione e ordinamento nello session storage.\r\n */\r\n store: PropTypes.string,\r\n\r\n /**\r\nSpecifica una o più descrizioni per gli elementi presentati dalla tabella.\r\n\r\nSe viene specificato un array di stringhe, la prima stringa rappresenta una descrizione al singolare, la seconda al plurale.\r\n\r\nEsempio: `['dichiarazione', 'dichirazioni']`\r\n */\r\n itemDescriptions: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]),\r\n\r\n /**\r\n * Definisce il messaggio da mostrare in caso non ci siano dati.\r\n *\r\n * Se viene passata una funzione, dovrà restituire un componente React e riceverà in ingresso i filtri applicati.\r\n */\r\n noDataFoundMessage: PropTypes.oneOfType([\r\n PropTypes.node,\r\n PropTypes.func,\r\n PropTypes.string,\r\n ]),\r\n\r\n /**\r\nChildren del componente da inserire dopo il componente `Filter`\r\n\r\nTipicamente è un `V2/Panel` se la risoluzione è >= `MAIN`, un `V2/MiniPanel` se la risoluzione è inferiore a `MAIN`.\r\n */\r\n afterFilterChildren: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node,\r\n ]),\r\n};\r\n\r\nODataTable.defaultProps = {\r\n className: undefined,\r\n height: undefined,\r\n scrollable: false,\r\n odata: ODataV2,\r\n initPageSize: 50,\r\n pageSizeOptions: undefined,\r\n selectable: undefined,\r\n onSelectionChange: undefined,\r\n onPageLoaded: NOOP,\r\n sortOrder: undefined,\r\n sortProperty: undefined,\r\n initialFilters: [],\r\n store: undefined,\r\n itemDescriptions: undefined,\r\n noDataFoundMessage: undefined,\r\n enableSelectAll: true,\r\n afterFilterChildren: undefined,\r\n};\r\n\r\nODataTable.Filter = Filter;\r\nODataTable.Head = Head;\r\nODataTable.Column = Column;\r\nODataTable.ColumnGroup = ColumnGroup;\r\n\r\nexport default ODataTable;\r\n","import { useCallback, useEffect, useRef } from 'react';\r\nimport { NOOP } from '../../../utils/const';\r\nimport Table from '../Table/Table';\r\n\r\n/**\r\nL'hook gestisce la selezione di una tabella al cambio degli elementi rappresentati.\r\nSe erano selezionati degli elementi e cambio la lista degli elementi, notifico la deselezione degli oggetti precedentemente selezionati.\r\n\r\nIl caso tipico è la paginazione. Se cambio la pagina e avevo selezionato degli items, devo notificare che questi non sono più selezioanti.\r\n\r\n@param {array} Items oggetti da renderizzare\r\n@param {func} onSelectionChangeCallback callback di selezione\r\n@returns {array} il primo elemento e l'ultima selezione, il secondo elemento è la nuova callback di selezione.\r\n@returns {array} il primo elemento e l'ultima selezione, il secondo elemento è la nuova callback di selezione.\r\n */\r\nfunction useTableItemsSelection(Items, onSelectionChangeCallback) {\r\n const [selection, onSelectionChange] = Table.useSelectionState(onSelectionChangeCallback);\r\n useEffect(() => {\r\n // quello che non c'è più lo segnalo come deselezionato,\r\n const rows = selection.rows ? [...selection.rows] : [];\r\n while (rows.length > 0) {\r\n const deselected = rows.shift();\r\n onSelectionChangeCallback([...rows], { type: Table.Selection.DESELECTED, ...deselected });\r\n }\r\n // da fare solo la prima volta\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [Items, onSelectionChangeCallback]);\r\n\r\n return [selection, onSelectionChange];\r\n}\r\n\r\nexport default useTableItemsSelection;\r\n","/* eslint-disable no-nested-ternary */\r\nimport React, { useCallback, useState } from 'react';\r\nimport {\r\n EllipsisText,\r\n Grid,\r\n InfoTooltip,\r\n OptionDropdown,\r\n} from 'framework-ui-components';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport { useHistory, useParams } from 'react-router';\r\nimport { Table } from 'framework-ui-components/Components/V2';\r\nimport { STOP_EVENT_PROPAGATION } from 'framework-ui-components/utils/const';\r\nimport { setSoggettoAction } from '../../../actions/soggetto';\r\nimport { dettaglioContribuenteUrl, tributiContribuenteUrl } from '../../../models/urls';\r\n\r\nconst RigaContribuente = ({\r\n item: {\r\n IdAnagrafica,\r\n IdContribuente,\r\n CodiceFiscale,\r\n Denominazione,\r\n TipoPersona,\r\n PartitaIva,\r\n },\r\n additionalRowData: {\r\n codiceUfficioOperatoreParams,\r\n searchTerm,\r\n },\r\n}) => {\r\n const history = useHistory();\r\n const dispatch = useDispatch();\r\n const appParamVisualizzazione = useSelector((store) => !!store.appParams.visualizzazione);\r\n const codiceUfficioOperatore = useSelector((store) => store.appParams.codiceUfficioOperatore);\r\n\r\n const gotoTibutiSoggetto = useCallback(() => {\r\n dispatch(setSoggettoAction({\r\n idAnagrafica: IdAnagrafica,\r\n idContribuente: IdContribuente,\r\n codiceFiscale: CodiceFiscale,\r\n nominativo: Denominazione,\r\n tipoPersona: TipoPersona,\r\n haPartitaIva: !!PartitaIva,\r\n partitaIva: PartitaIva,\r\n }));\r\n // window.open(`/#/TributiContribuente/${CodiceFiscale}/?visualizzazione=false`);\r\n if (!codiceUfficioOperatoreParams || codiceUfficioOperatoreParams === '' || codiceUfficioOperatoreParams === 'null') {\r\n history.push(tributiContribuenteUrl(CodiceFiscale, appParamVisualizzazione, codiceUfficioOperatore));\r\n } else {\r\n window.open(`https://${window.location.host}/#/TributiContribuente/${CodiceFiscale}/?visualizzazione=true&withNoSidebar=true&noToolbar=true&ufficioSelezionato=${codiceUfficioOperatoreParams}`, '_blank');\r\n }\r\n }, [CodiceFiscale,\r\n Denominazione,\r\n IdAnagrafica,\r\n IdContribuente,\r\n PartitaIva, TipoPersona,\r\n appParamVisualizzazione, codiceUfficioOperatore, codiceUfficioOperatoreParams, dispatch, history]);\r\n\r\n const gotoDettaglioSoggetto = useCallback(() => {\r\n dispatch(setSoggettoAction({\r\n idContribuente: IdContribuente,\r\n codiceFiscale: CodiceFiscale,\r\n nominativo: Denominazione,\r\n tipoPersona: TipoPersona,\r\n haPartitaIva: !!PartitaIva,\r\n partitaIva: PartitaIva,\r\n }));\r\n\r\n history.push(dettaglioContribuenteUrl(CodiceFiscale, TipoPersona, appParamVisualizzazione, codiceUfficioOperatore));\r\n }, [CodiceFiscale, Denominazione, IdContribuente, PartitaIva, TipoPersona, appParamVisualizzazione, codiceUfficioOperatore, dispatch, history]);\r\n\r\n return (\r\n gotoTibutiSoggetto()}\r\n >\r\n gotoTibutiSoggetto()}>\r\n {Denominazione}\r\n \r\n gotoTibutiSoggetto()} />\r\n gotoTibutiSoggetto()}>\r\n {CodiceFiscale}\r\n \r\n gotoTibutiSoggetto()} />\r\n gotoTibutiSoggetto()} />\r\n \r\n {/* \r\n gotoDettaglioSoggetto()}>\r\n Vai a dettaglio\r\n \r\n */}\r\n \r\n \r\n );\r\n};\r\n\r\nRigaContribuente.propTypes = {\r\n item: PropTypes.shape({\r\n IdAnagrafica: PropTypes.number,\r\n IdContribuente: PropTypes.number,\r\n CodiceFiscale: PropTypes.string,\r\n Denominazione: PropTypes.string,\r\n TipoPersona: PropTypes.number,\r\n PartitaIva: PropTypes.string,\r\n }).isRequired,\r\n additionalRowData: PropTypes.shape({\r\n codiceUfficioOperatoreParams: PropTypes.string,\r\n searchTerm: PropTypes.string,\r\n // annoImposta: PropTypes.number.isRequired,\r\n }).isRequired,\r\n};\r\n\r\nexport default RigaContribuente;\r\n","import React, {\r\n forwardRef, useCallback, useEffect, useImperativeHandle, useRef,\r\n} from 'react';\r\nimport useDebouncedFunc from 'framework-ui-components/Components/Hooks/useDebouncedFunc';\r\nimport usePluginsReducer from 'framework-plugins/hooks/usePluginReducer';\r\nimport { ODataTable, ViewportProvider } from 'framework-ui-components/Components/V2';\r\nimport PropTypes from 'prop-types';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport useViewport, { MAIN } from 'framework-ui-components/Components/V2/Hooks/useViewport';\r\nimport { FilterTypes, QueryOptions } from 'framework-ui-components';\r\nimport { setAppParamsAction } from 'framework-taskforce/actions/appParams';\r\nimport { ottieniContribuentiUrl } from '../../../apis/contribuente';\r\nimport RigaContribuente from './RigaContribuente';\r\n\r\nconst TabellaContribuenti = forwardRef(({ codiceUfficioOperatore, studioOperatore }, ref) => {\r\n const dispatch = useDispatch();\r\n\r\n const tabellaRef = useRef();\r\n const studioSelezionato = useSelector((store) => store.appParams.studioSelezionato);\r\n const filtroText = useSelector((store) => store.appParams.filtroText);\r\n\r\n const { height, resolution } = useViewport();\r\n const resolutionMAIN = resolution === MAIN;\r\n\r\n const onRowsSelected = useCallback((rows) => {\r\n // const rowsObjectSelected = NUOVO_LAYOUT_LISTA_DICHIARAZIONI ? rows.map((row) => row.object) : rows;\r\n // dispatch({ type: ACTIONS.SET_ROWS_SELECTED, payload: rowsObjectSelected });\r\n }, []);\r\n\r\n const updateOptimisticRows = useCallback(() => {\r\n // dispatch({ type: ACTIONS.UPDATE_OPTIMISTIC_ROWS });\r\n }, []);\r\n\r\n const onPageLoaded = useCallback((pageItems, totalCount, currentFilter, currentPage, sortProperty, sortOrder) => {\r\n dispatch(setAppParamsAction({\r\n tabSelected: 0,\r\n scartate: null,\r\n inPresentazione: null,\r\n }));\r\n }, [dispatch]);\r\n\r\n useEffect(() => {\r\n // updateContatori();\r\n }, []);\r\n\r\n const refreshTabella = useDebouncedFunc(() => {\r\n tabellaRef.current && tabellaRef.current.refreshTable();\r\n // updateContatori();\r\n }, 200, []);\r\n\r\n // permetto di accedere via ref al metodo refreshTabella\r\n useImperativeHandle(ref, () => ({ refreshTabella }), [refreshTabella]);\r\n\r\n const rowRender = useCallback((item) => (\r\n \r\n ), [codiceUfficioOperatore, refreshTabella, resolutionMAIN]);\r\n\r\n return (\r\n \r\n {(studioOperatore || studioSelezionato) && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n});\r\n\r\nTabellaContribuenti.defaultProps = {\r\n codiceUfficioOperatore: null,\r\n studioOperatore: null,\r\n};\r\n\r\nTabellaContribuenti.propTypes = {\r\n codiceUfficioOperatore: PropTypes.string,\r\n studioOperatore: PropTypes.string,\r\n};\r\n\r\nexport default TabellaContribuenti;\r\n","import React, {\r\n useCallback, useEffect, useMemo, useRef, useState,\r\n} from 'react';\r\nimport { Grid, Input } from 'framework-ui-components';\r\nimport DeleteIcon from 'framework-ui-components/Components/Icons/DeleteIcon';\r\nimport { Button } from 'framework-ui-components/Components/V2';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { setAppParamsAction } from 'framework-taskforce/actions/appParams';\r\nimport PropTypes from 'prop-types';\r\n\r\nconst NumMinCharForSearch = 3;\r\n\r\nconst FiltroTesto = ({ updateFiltroText }) => {\r\n const studioSelezionato = useSelector((store) => store.appParams.studioSelezionato);\r\n const filtroTextDefault = useSelector((store) => store.appParams.filtroText);\r\n\r\n const [validare, setValidare] = useState(false);\r\n const [text, setText] = useState(filtroTextDefault || '');\r\n\r\n const dispatch = useDispatch();\r\n\r\n const noMinimaLength = useMemo(() => text.trim().length > 0 && text.trim().length < NumMinCharForSearch, [text]);\r\n\r\n const setFilterText = useCallback(() => {\r\n setValidare(noMinimaLength);\r\n // L'obiettivo è fare in modo che non succeda niente se inserisco almeno un carattere, ma non raggiungo i caratteri minimi\r\n if (!noMinimaLength) updateFiltroText(text);\r\n }, [noMinimaLength, updateFiltroText, text]);\r\n\r\n const resetFilterText = useCallback(() => {\r\n setText('');\r\n updateFiltroText('');\r\n }, [setText, updateFiltroText]);\r\n\r\n const onSearchKeyDown = useCallback((event) => {\r\n if (event.key === 'Enter' || event.keyCode === 13) {\r\n setFilterText();\r\n }\r\n }, [setFilterText]);\r\n\r\n // *TODO questo!\r\n // const validations = useMemo(() => (noMinimaLength\r\n // ? [() => ({\r\n // message: `Per applicare il filtro devono essere inseriti almeno ${NumMinCharForSearch} caratteri`,\r\n // level: 'warning',\r\n // })] : null), [noMinimaLength]);\r\n\r\n useEffect(() => {\r\n if (text.length === 0) {\r\n updateFiltroText('');\r\n }\r\n }, [text.length, updateFiltroText]);\r\n\r\n return (\r\n \r\n \r\n { setText(ev.target.value.trim()); }}\r\n onKeyDown={onSearchKeyDown}\r\n actions={!!text && }\r\n // validations={validations} //TODO in attesa di ulteriori elementi la ricerca parte dal primo carattere non usando vedi sopra*\r\n />\r\n \r\n \r\n updateFiltroText(text)}\r\n className=\"mt-14\"\r\n >\r\n Cerca\r\n \r\n \r\n  \r\n \r\n );\r\n};\r\n\r\nexport default FiltroTesto;\r\n\r\nFiltroTesto.defaultProps = {\r\n text: null,\r\n};\r\n\r\nFiltroTesto.propTypes = {\r\n updateFiltroText: PropTypes.func.isRequired,\r\n setText: PropTypes.func.isRequired,\r\n text: PropTypes.string,\r\n};\r\n","import React, {\r\n useCallback, useEffect, useRef, useState,\r\n} from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { setAppParamsAction } from 'framework-taskforce/actions/appParams';\r\nimport {\r\n Grid, Heading,\r\n} from 'framework-ui-components';\r\nimport {\r\n Button, ButtonGroup, DropdownButton,\r\n} from 'framework-ui-components/Components/V2';\r\nimport AddIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/AddIcon';\r\nimport ToolbarSpecifica from './ToolbarSpecifica';\r\nimport PageWrapper from '../../components/PageWrapper';\r\nimport TabellaContribuenti from './tabella/TabellaContribuenti';\r\nimport { TIPO_PERSONA } from '../../models/anagrafica';\r\nimport ModaleCreazioneContribuente from './creazioneContribuente/ModaleCreazioneContribuente';\r\nimport FiltroTesto from '../../components/filtri/FiltroTesto';\r\n\r\nconst ListaContribuenti = () => {\r\n const dispatch = useDispatch();\r\n\r\n const noToolbar = useSelector((store) => store.appParams.noToolbar);\r\n const appParamVisualizzazione = useSelector((store) => !!store.appParams.visualizzazione);\r\n\r\n const [creaContribuente, setCreaContribuente] = useState({ aperto: false, tipologiaAnagrafica: TIPO_PERSONA.PERSONA_FISICA });\r\n const [creazioneInCorso, setCreazioneInCorso] = useState(false);\r\n\r\n const updateFiltroText = useCallback((testoNuovo) => {\r\n dispatch(setAppParamsAction({ filtroText: testoNuovo }));\r\n }, [dispatch]);\r\n\r\n const tabellaContribuentiRef = useRef();\r\n\r\n const aperturaModaleCreazioneAnagrafica = useCallback((tipologiaAnagrafica) => {\r\n setCreaContribuente({ aperto: true, tipologiaAnagrafica });\r\n setCreazioneInCorso(true);\r\n }, []);\r\n\r\n useEffect(() => {\r\n dispatch(setAppParamsAction({ sidebarSelected: '0', scartate: null, inPresentazione: null }));\r\n });\r\n\r\n const chiusuraModaleCreazioneContribuente = useCallback((successo, codice, sezione, tipo, importo, dataScadenza) => {\r\n setCreaContribuente({ aperto: false, tipologiaAnagrafica: TIPO_PERSONA.PERSONA_FISICA });\r\n setCreazioneInCorso(false);\r\n if (successo) {\r\n // setSuccessoCrezioneTributo({\r\n // successo,\r\n // codice,\r\n // sezione,\r\n // tipo,\r\n // importo,\r\n // dataScadenza,\r\n // });\r\n tabellaContribuentiRef.current.refreshTabella();\r\n }\r\n }, []);\r\n\r\n return (\r\n \r\n {/* alert('prova')}\r\n // running={creazioneInCorso}\r\n >\r\n \r\n Azione pulsante\r\n */}\r\n \r\n )}\r\n >\r\n Contribuenti\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Crea contribuente\r\n \r\n aperturaModaleCreazioneAnagrafica(TIPO_PERSONA.PERSONA_FISICA)}\r\n running={creazioneInCorso}\r\n >\r\n Persona fisica\r\n \r\n aperturaModaleCreazioneAnagrafica(TIPO_PERSONA.PERSONA_GIURIDICA)}\r\n running={creazioneInCorso}\r\n >\r\n Persona giuridica\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n  \r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ListaContribuenti;\r\n","import { AuthorizedApp } from 'framework-taskforce';\r\nimport React from 'react';\r\nimport ContenutoPaginaDiSospensione from '../ContenutoPaginaDiSospensione';\r\nimport ListaContribuenti from '../areas/listaContribuenti/ListaContribuenti';\r\nimport { authorizedServices } from '../models/f24';\r\n\r\nconst ListaContribuentiRoute = () => (\r\n )}\r\n >\r\n \r\n \r\n);\r\n\r\nListaContribuentiRoute.defaultProps = {\r\n};\r\n\r\nListaContribuentiRoute.propTypes = {\r\n};\r\n\r\nexport default ListaContribuentiRoute;\r\n","import React, {\r\n useCallback, useEffect, useMemo, useState,\r\n} from 'react';\r\nimport { Grid, Input, Restriction } from 'framework-ui-components';\r\nimport DeleteIcon from 'framework-ui-components/Components/Icons/DeleteIcon';\r\nimport { Button } from 'framework-ui-components/Components/V2';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport FwPlugins from 'framework-plugins';\r\n\r\nconst NumMinCharForSearch = 3;\r\n\r\nconst FiltroBackoffice = ({ updateCodiceUfficioOperatore, updateFiltroText }) => {\r\n const codiceUfficioAssociato = useSelector((store) => store.appParams.codiceUfficioAssociato);\r\n const filtroTextDefault = useSelector((store) => store.appParams.filtroText);\r\n const codiceUfficioOperatore = useSelector((store) => store.appParams.codiceUfficioOperatore);\r\n\r\n const [validare, setValidare] = useState(false);\r\n const [text, setText] = useState(filtroTextDefault || '');\r\n const [codiceUfficio, setCodiceUfficio] = useState(codiceUfficioOperatore || null);\r\n\r\n const dispatch = useDispatch();\r\n\r\n const pad = '00000';\r\n\r\n const noMinimaLength = useMemo(() => text.trim().length > 0 && text.trim().length < NumMinCharForSearch, [text]);\r\n\r\n const setFilterCodiceUfficio = useCallback(() => {\r\n if (codiceUfficio && codiceUfficio !== '') {\r\n const codiceUfficioZeroFilled = (`${pad}${codiceUfficio}`).slice(-5);\r\n updateCodiceUfficioOperatore(codiceUfficioZeroFilled);\r\n setCodiceUfficio(codiceUfficioZeroFilled);\r\n } else {\r\n // metto qui perché non viene scatenato dall'altra parte non essendoci valore\r\n FwPlugins.postMessageToParent('CODICE_UFFICIO_ASSOCIATO_CHANGED', '');\r\n updateCodiceUfficioOperatore('');\r\n setCodiceUfficio('');\r\n }\r\n }, [codiceUfficio, updateCodiceUfficioOperatore]);\r\n\r\n const setFilterText = useCallback(() => {\r\n setValidare(noMinimaLength);\r\n // L'obiettivo è fare in modo che non succeda niente se inserisco almeno un carattere, ma non raggiungo i caratteri minimi\r\n if (!noMinimaLength) {\r\n updateFiltroText(text);\r\n }\r\n }, [noMinimaLength, updateFiltroText, text]);\r\n\r\n const resetFilterText = useCallback(() => {\r\n setText('');\r\n updateFiltroText('');\r\n }, [updateFiltroText]);\r\n\r\n const onCodiceUfficioKeyDown = useCallback((event) => {\r\n if (event.key === 'Enter' || event.keyCode === 13) {\r\n setFilterCodiceUfficio();\r\n }\r\n }, [setFilterCodiceUfficio]);\r\n\r\n const onSearchKeyDown = useCallback((event) => {\r\n if (event.key === 'Enter' || event.keyCode === 13) {\r\n setFilterText();\r\n }\r\n }, [setFilterText]);\r\n\r\n useEffect(() => {\r\n if (!codiceUfficio && codiceUfficio !== '' && !!codiceUfficioAssociato && codiceUfficioAssociato !== 'null') {\r\n setCodiceUfficio(codiceUfficioAssociato);\r\n updateCodiceUfficioOperatore(codiceUfficioAssociato);\r\n }\r\n }, [codiceUfficio, codiceUfficioAssociato, codiceUfficioOperatore, updateCodiceUfficioOperatore]);\r\n\r\n // *TODO questo!\r\n // const validations = useMemo(() => (noMinimaLength\r\n // ? [() => ({\r\n // message: `Per applicare il filtro devono essere inseriti almeno ${NumMinCharForSearch} caratteri`,\r\n // level: 'warning',\r\n // })] : null), [noMinimaLength]);\r\n\r\n useEffect(() => {\r\n if (text.length === 0) {\r\n updateFiltroText('');\r\n }\r\n }, [text.length, updateFiltroText]);\r\n\r\n useEffect(() => {\r\n if (!codiceUfficio || codiceUfficio.length === 0) {\r\n updateCodiceUfficioOperatore('');\r\n }\r\n }, [codiceUfficio, updateCodiceUfficioOperatore]);\r\n\r\n return (\r\n \r\n \r\n { setCodiceUfficio(ev.target.value.trim()); }}\r\n onKeyDown={onCodiceUfficioKeyDown}\r\n // actions={!!codiceUfficio && }\r\n maxLength={5}\r\n restrictions={[Restriction.DefaultValues.numeri]}\r\n // validations={validations} //TODO in attesa di ulteriori elementi la ricerca parte dal primo carattere non usando vedi sopra*\r\n />\r\n \r\n \r\n { setText(ev.target.value.trim()); }}\r\n onKeyDown={onSearchKeyDown}\r\n actions={!!text && }\r\n // validations={validations} //TODO in attesa di ulteriori elementi la ricerca parte dal primo carattere non usando vedi sopra*\r\n />\r\n \r\n \r\n { setFilterCodiceUfficio(codiceUfficio); updateFiltroText(text); }}\r\n className=\"mt-14\"\r\n >\r\n Cerca\r\n \r\n \r\n  \r\n \r\n );\r\n};\r\n\r\nexport default FiltroBackoffice;\r\n\r\nFiltroBackoffice.defaultProps = {\r\n};\r\n\r\nFiltroBackoffice.propTypes = {\r\n updateCodiceUfficioOperatore: PropTypes.func.isRequired,\r\n updateFiltroText: PropTypes.func.isRequired,\r\n};\r\n","import { WebRequest } from 'framework-ui-components';\r\n\r\nconst getConfigApplicazione = () => WebRequest.get('/Configurazione/ConfigApplicazione');\r\n\r\nconst getOttieniStudio = (codiceUfficio) => WebRequest.get('/Studio/OttieniStudio', {\r\n codiceUfficio,\r\n});\r\n\r\nexport {\r\n getConfigApplicazione,\r\n getOttieniStudio,\r\n};\r\n","import React, {\r\n useCallback, useEffect, useRef,\r\n} from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { setAppParamsAction } from 'framework-taskforce/actions/appParams';\r\nimport {\r\n Grid, Heading,\r\n} from 'framework-ui-components';\r\nimport Log from 'framework-taskforce/utils/log';\r\nimport FwPlugins from 'framework-plugins';\r\nimport ToolbarSpecifica from '../listaContribuenti/ToolbarSpecifica';\r\nimport TabellaContribuenti from '../listaContribuenti/tabella/TabellaContribuenti';\r\nimport FiltroBackoffice from '../../components/filtri/FiltroBackoffice';\r\nimport { getOttieniStudio } from '../../apis/configurazione';\r\n\r\nconst ListaContribuentiOperatoreBackoffice = () => {\r\n const dispatch = useDispatch();\r\n\r\n const codiceUfficioOperatore = useSelector((store) => store.appParams.codiceUfficioOperatore);\r\n const studioOperatore = useSelector((store) => store.appParams.studioOperatore);\r\n const fromPluginWithNoSidebar = useSelector((store) => store.appParams.fromPluginWithNoSidebar);\r\n const noToolbar = useSelector((store) => store.appParams.noToolbar);\r\n\r\n const updateFiltroText = useCallback((testoNuovo) => {\r\n dispatch(setAppParamsAction({ filtroText: testoNuovo }));\r\n }, [dispatch]);\r\n\r\n const updateCodiceUfficioOperatore = useCallback((testoNuovo) => {\r\n if (testoNuovo) {\r\n FwPlugins.postMessageToParent('CODICE_UFFICIO_ASSOCIATO_CHANGED', testoNuovo);\r\n getOttieniStudio(testoNuovo)\r\n .then((response) => {\r\n if (response.Success) {\r\n dispatch(setAppParamsAction({\r\n codiceUfficioOperatore: testoNuovo,\r\n studioOperatore: response.Result,\r\n }));\r\n } else {\r\n Log.error('App error');\r\n dispatch(setAppParamsAction({\r\n codiceUfficioOperatore: testoNuovo,\r\n studioOperatore: null,\r\n }));\r\n }\r\n }).catch((err) => {\r\n Log.error(err);\r\n });\r\n } else {\r\n dispatch(setAppParamsAction({ codiceUfficioOperatore: null, studioOperatore: null }));\r\n }\r\n }, [dispatch]);\r\n\r\n const tabellaContribuentiRef = useRef();\r\n\r\n useEffect(() => {\r\n dispatch(setAppParamsAction({ sidebarSelected: '0' }));\r\n });\r\n\r\n return (\r\n \r\n \r\n {/* alert('prova')}\r\n // running={creazioneInCorso}\r\n >\r\n \r\n Azione pulsante\r\n */}\r\n \r\n )}\r\n >\r\n Contribuenti\r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n  \r\n \r\n \r\n \r\n
    \r\n {studioOperatore ? (\r\n \r\n ) : (\r\n
    Serve prima inserire un codice ufficio per visualizzare i contribuenti
    \r\n )}\r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default ListaContribuentiOperatoreBackoffice;\r\n","import React from 'react';\r\nimport ListaContribuentiOperatoreBackoffice from '../areas/backoffice/ListaContribuentiBackoffice';\r\n\r\nconst ListaContribuentiOperatoreBackofficeRoute = () => (\r\n \r\n);\r\n\r\nListaContribuentiOperatoreBackofficeRoute.defaultProps = {\r\n};\r\n\r\nListaContribuentiOperatoreBackofficeRoute.propTypes = {\r\n};\r\n\r\nexport default ListaContribuentiOperatoreBackofficeRoute;\r\n","import * as React from 'react';\r\n\r\nfunction SvgComponent(props) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default SvgComponent;\r\n","import React, { useCallback } from 'react';\r\nimport {\r\n DatePicker, Validation,\r\n} from 'framework-ui-components';\r\nimport PropTypes from 'prop-types';\r\nimport TemplateGrid from '../../components/TemplateGrid/TemplateGrid';\r\nimport CalendarioIcon from '../../components/icons/CalendarioIcon';\r\nimport SegnalazioniViewer from '../../components/custom/SegnalazioniViewer';\r\n\r\nconst Step1Scadenza = ({\r\n dataScadenzaVersamento, setDataScadenzaVersamento, segnalazioni, setSegnalazioni,\r\n}) => {\r\n const onChangeDataScadenzaVersamento = useCallback((val) => {\r\n setDataScadenzaVersamento(val);\r\n setSegnalazioni([]);\r\n }, [setDataScadenzaVersamento, setSegnalazioni]);\r\n\r\n return (\r\n
    \r\n Inserisci la data di scadenza per la delega, questo inciderà anche
    nell'inserimento dei tributi.\r\n \r\n \r\n onChangeDataScadenzaVersamento(val)}\r\n validations={[Validation.DefaultRules.required]}\r\n autoFocus\r\n />\r\n \r\n \r\n
    \r\n );\r\n};\r\n\r\nStep1Scadenza.defaultProps = {\r\n dataScadenzaVersamento: null,\r\n};\r\n\r\nStep1Scadenza.propTypes = {\r\n dataScadenzaVersamento: PropTypes.string,\r\n setDataScadenzaVersamento: PropTypes.func.isRequired,\r\n segnalazioni: PropTypes.arrayOf(PropTypes.string).isRequired,\r\n setSegnalazioni: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default Step1Scadenza;\r\n","import React from 'react';\r\nimport {\r\n Grid, InfoTooltip, Spinner, Formatter,\r\n} from 'framework-ui-components';\r\nimport PropTypes from 'prop-types';\r\nimport { FeedbackPanel, Table } from 'framework-ui-components/Components/V2';\r\n\r\nconst Step2Elaborazione = ({\r\n dataScadenzaVersamento, listaDeleghe, loading, completato, showTempiLunghi, processoConErrori,\r\n}) => (\r\n
    \r\n \r\n \r\n \r\n {/* showTempiLunghi && */completato && listaDeleghe.length > 0 && (\r\n 1\r\n ? (processoConErrori ? 'Creazione terminata con errori' : 'Deleghe create con successo!')\r\n : (processoConErrori ? 'Delega non creata' : 'Delega creata con successo!')}\r\n // eslint-disable-next-line no-nested-ternary\r\n type={processoConErrori ? (listaDeleghe.length > 1 ? 'warning' : 'alarm') : 'success'}\r\n message=\"\"\r\n />\r\n )}\r\n \r\n \r\n {/* showTempiLunghi && */ listaDeleghe.length > 0 && (\r\n \r\n \r\n  \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {listaDeleghe && listaDeleghe.map((delegaCreata, idx) => (\r\n // eslint-disable-next-line react/no-array-index-key\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {delegaCreata.linkDelega\r\n ? (\r\n 1 ? `${delegaCreata.linkDelega}&noBack=true` : `${delegaCreata.linkDelega}`}\r\n target={listaDeleghe.length > 1 ? '_blank' : '_self'}\r\n rel=\"noreferrer\"\r\n >\r\n Vai alla delega\r\n \r\n ) : (\r\n \r\n {delegaCreata.MotivazioneFallimento || 'Errore durante la creazione'}\r\n \r\n )}\r\n \r\n \r\n ))}\r\n \r\n
    \r\n \r\n  \r\n \r\n {loading && (\r\n \r\n  \r\n \r\n   Sto creando le deleghe ...\r\n \r\n  \r\n \r\n )}\r\n \r\n )}\r\n {(/*! showTempiLunghi || */listaDeleghe.length === 0) && (\r\n \r\n \r\n  \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n  \r\n
    \r\n \r\n  \r\n \r\n   Sto creando le deleghe ...\r\n \r\n  \r\n \r\n
    \r\n )}\r\n {showTempiLunghi && !completato && (\r\n \r\n  \r\n \r\n La creazione delle deleghe sta impiegando più tempo del previsto, puoi chiudere questa\r\n schermata e continuare a lavorare.\r\n
    \r\n Riceverai una notifica quando saranno state create tutte le deleghe.\r\n
    \r\n  \r\n
    \r\n )}\r\n \r\n
    \r\n);\r\n\r\nStep2Elaborazione.defaultProps = {\r\n dataScadenzaVersamento: null,\r\n completato: false,\r\n showTempiLunghi: false,\r\n processoConErrori: false,\r\n};\r\n\r\nStep2Elaborazione.propTypes = {\r\n dataScadenzaVersamento: PropTypes.string,\r\n loading: PropTypes.bool.isRequired,\r\n listaDeleghe: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\r\n completato: PropTypes.bool,\r\n showTempiLunghi: PropTypes.bool,\r\n processoConErrori: PropTypes.bool,\r\n};\r\n\r\nexport default Step2Elaborazione;\r\n","const ACTION_CREAZIONE_DELEGHE_SET = 'CREAZIONE_Deleghe_SET';\r\n\r\nconst setCreazioneDelegheAction = (stato) => (dispatch) => dispatch({\r\n type: ACTION_CREAZIONE_DELEGHE_SET,\r\n payload: stato,\r\n});\r\n\r\nexport {\r\n ACTION_CREAZIONE_DELEGHE_SET,\r\n setCreazioneDelegheAction,\r\n};\r\n","import React, {\r\n useState, useEffect, useCallback, useRef,\r\n} from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Stepper,\r\n} from 'framework-ui-components';\r\nimport {\r\n Modal, Button,\r\n} from 'framework-ui-components/Components/V2';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { useHistory } from 'react-router';\r\nimport Log, { logApiError } from 'framework-taskforce/utils/log';\r\nimport { getSegnalazioneError } from 'framework-taskforce/models/segnalazioni';\r\nimport useSignalR from 'framework-ui-components/Components/Hooks/useSignalR';\r\nimport { primaLetteraMaiuscola } from 'framework-taskforce/utils/text';\r\nimport { postCreaDelega } from '../../apis/deleghe';\r\nimport { delegaSoggettoUrlLink } from '../../models/urls';\r\nimport Step1Scadenza from './Step1Scadenza';\r\nimport Step2Elaborazione from './Step2Elaborazione';\r\nimport { convertUTCDateToLocalDate } from '../../utils/format';\r\nimport { setCreazioneDelegheAction } from '../../actions/creazioneDeleghe';\r\n\r\nconst STEP = {\r\n SELEZIONE_SCADENZA: 1,\r\n ELABORAZIONE_DELEGHE: 2,\r\n};\r\n\r\nconst ModaleCreazione = ({\r\n onClose,\r\n show,\r\n}) => {\r\n const nominativoSogg = useSelector((store) => store.soggetto.nominativo);\r\n const idContribuente = useSelector((store) => store.soggetto.idContribuente);\r\n const studioSelezionato = useSelector((store) => store.appParams.studioSelezionato);\r\n const ufficioSelezionato = useSelector((store) => store.appParams.ufficioSelezionato);\r\n\r\n const completato = useSelector((store) => store.creazioneDeleghe.completato);\r\n const processoConErrori = useSelector((store) => store.creazioneDeleghe.processoConErrori);\r\n const loading = useSelector((store) => store.creazioneDeleghe.loading);\r\n\r\n const history = useHistory();\r\n const dispatch = useDispatch();\r\n\r\n const [currentStep, setCurrentStep] = useState(STEP.SELEZIONE_SCADENZA);\r\n const [segnalazioni, setSegnalazioni] = useState([]);\r\n const [dataScadenzaVersamento, setDataScadenzaVersamento] = useState(null);\r\n const [showTempiLunghi, setShowTempiLunghi] = useState(false);\r\n const [loadingApi, setLoadingApi] = useState(false);\r\n\r\n const getStepState = useCallback(\r\n (index) => {\r\n if (index === currentStep) {\r\n return Stepper.State.ACTIVE;\r\n } if (index < currentStep) {\r\n return Stepper.State.DONE;\r\n }\r\n return Stepper.State.TODO;\r\n },\r\n [currentStep],\r\n );\r\n\r\n const creaDelega = useCallback(() => {\r\n setLoadingApi(true);\r\n // setCurrentStep(STEP.ELABORAZIONE_DELEGHE);\r\n const oggettoCreazione = {\r\n IdStudio: studioSelezionato,\r\n IdContribuente: idContribuente,\r\n ScadenzaVersamento: convertUTCDateToLocalDate(dataScadenzaVersamento),\r\n };\r\n postCreaDelega(oggettoCreazione)\r\n .then((res) => {\r\n if (res.Success) {\r\n setSegnalazioni([]);\r\n setCurrentStep(STEP.ELABORAZIONE_DELEGHE);\r\n dispatch(setCreazioneDelegheAction({\r\n completato: false,\r\n processoConErrori: true,\r\n loading: true,\r\n }));\r\n setTimeout(() => {\r\n setShowTempiLunghi(true);\r\n }, 3000);\r\n } else {\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n dispatch(setCreazioneDelegheAction({\r\n completato: true,\r\n processoConErrori: true,\r\n loading: false,\r\n }));\r\n }\r\n\r\n setLoadingApi(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n dispatch(setCreazioneDelegheAction({\r\n completato: true,\r\n processoConErrori: true,\r\n loading: false,\r\n }));\r\n onClose(false);\r\n setLoadingApi(false);\r\n });\r\n }, [dataScadenzaVersamento, dispatch, idContribuente, onClose, studioSelezionato]);\r\n\r\n useEffect(() => {\r\n if (show) {\r\n setLoadingApi(false);\r\n if (currentStep === STEP.ELABORAZIONE_DELEGHE) {\r\n document.querySelector('.v2-modal__content').classList.remove('secondo-step');\r\n document.querySelector('.v2-modal__content').classList.toggle('secondo-step');\r\n document.querySelector('.v2-modal--body--scrollable').classList.remove('secondo-step');\r\n document.querySelector('.v2-modal--body--scrollable').classList.toggle('secondo-step');\r\n } else {\r\n document.querySelector('.v2-modal__content').classList.remove('secondo-step');\r\n }\r\n }\r\n }, [currentStep, show]);\r\n\r\n const lista = [];\r\n const listaDeleghe = useRef({ lista });\r\n\r\n const settaDeleghe = useCallback((risposta) => {\r\n const arrayRisposta = (Array.isArray(risposta) ? risposta : [risposta]);\r\n\r\n listaDeleghe.current.lista = [\r\n ...listaDeleghe.current.lista,\r\n ...arrayRisposta,\r\n ];\r\n }, []);\r\n\r\n useSignalR('DelegaConUtilizziCreata', (data) => {\r\n Log.info('Delega creata');\r\n settaDeleghe({ dataScadenzaVersamento, importo: data.Importo, linkDelega: delegaSoggettoUrlLink(data.IdDelega, ufficioSelezionato) });\r\n });\r\n\r\n useSignalR('CreazioneDeleghePerContribuenteFallita', (data) => {\r\n settaDeleghe({\r\n dataScadenzaVersamento, importo: '-', linkDelega: null, errore: data.MotivazioneFallimento,\r\n });\r\n });\r\n\r\n const resetDati = useCallback(() => {\r\n setSegnalazioni([]);\r\n setDataScadenzaVersamento(null);\r\n setCurrentStep(STEP.SELEZIONE_SCADENZA);\r\n setShowTempiLunghi(false);\r\n dispatch(setCreazioneDelegheAction({\r\n completato: false,\r\n processoConErrori: false,\r\n loading: true,\r\n }));\r\n }, [dispatch]);\r\n\r\n useEffect(() => {\r\n if (!show) {\r\n // reset data on close\r\n resetDati();\r\n }\r\n }, [resetDati, show]);\r\n\r\n useEffect(() => {\r\n if (show) {\r\n setDataScadenzaVersamento(null);\r\n resetDati();\r\n }\r\n }, [resetDati, show]);\r\n\r\n return (\r\n onClose(completato)}\r\n className=\"tributi--modale-creazione-delega\"\r\n initialPos={{ x: 'auto', y: window.innerHeight * 0.1 }}\r\n >\r\n \r\n Crea nuova delega per {primaLetteraMaiuscola(nominativoSogg)}\r\n \r\n \r\n {/* {loading ?
    : ( */}\r\n
    {/* className=\"mt-34\"> */}\r\n {/* Inserisci la data di scadenza per la delega. I tributi che rispetteranno tale
    data verranno automaticamente inclusi nel modello F24. */}\r\n \r\n \r\n )}\r\n />\r\n \r\n )}\r\n />\r\n \r\n
    \r\n {/* )} */}\r\n
    \r\n \r\n {currentStep !== STEP.ELABORAZIONE_DELEGHE && (\r\n onClose(false)}\r\n tabindex=\"-1\"\r\n emphasis={Button.Emphasis.HIGH}\r\n >\r\n ANNULLA\r\n \r\n )}\r\n {currentStep !== STEP.ELABORAZIONE_DELEGHE && (\r\n \r\n CREA\r\n \r\n )}\r\n {currentStep === STEP.ELABORAZIONE_DELEGHE && ((!loading && completato && listaDeleghe.current.lista.length > 0) || (showTempiLunghi)) && (\r\n onClose(true)}\r\n disabled={!dataScadenzaVersamento}\r\n emphasis={Button.Emphasis.HIGH}\r\n primary\r\n >\r\n TORNA ALLA LISTA DELLE DELEGHE\r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nModaleCreazione.propTypes = {\r\n onClose: PropTypes.func.isRequired,\r\n show: PropTypes.bool.isRequired,\r\n};\r\n\r\nexport default ModaleCreazione;\r\n","/* eslint-disable max-len */\r\nimport Icon from 'framework-ui-components/Components/Icons/Icon';\r\nimport React from 'react';\r\n\r\nexport default Icon(\r\n \r\n \r\n \r\n ,\r\n '0 0 24 24',\r\n 'BuildIcon',\r\n);\r\n","import { WebRequest } from 'framework-ui-components';\r\n\r\nconst postGestisciScadenzaDebito = (command) => WebRequest.post('/Debiti/GestioneScadenza/GestisciScadenza', command);\r\n\r\nconst postGestisciScadenzaNuovaGestioneIVA = (command) => WebRequest.post('/Debiti/GestioneScadenza/GestisciScadenzaNuovaGestioneIVA', command);\r\n\r\nconst postRateizzaDebito = (command) => WebRequest.post('/Debiti/GestioneScadenza/Rateizza', command);\r\n\r\nconst postResettaScadenzaDebito = (command) => WebRequest.post('/Debiti/GestioneScadenza/ResettaScadenza', command);\r\n\r\nconst postEliminaRateizzazioneDebito = (command) => WebRequest.post('/Debiti/GestioneScadenza/EliminaRateizzazione', command);\r\n\r\nconst postAvviaCompensazioneVerticale = (idDebito) => WebRequest.post('/Debiti/Compensazione/AvviaCompensazioneVerticale', idDebito);\r\n\r\nconst postAvviaCompensazioneOrizzontale = (idDebito) => WebRequest.post('/Debiti/Compensazione/AvviaCompensazioneOrizzontale', idDebito);\r\n\r\nconst getOttieniInformazioniPerCompensazione = (\r\n idDebito,\r\n) => WebRequest.get('/Debiti/Compensazione/OttieniInformazioniPerCompensazione', { idDebito });\r\n\r\nconst getOttieniInformazioniScadenza = (idDebito) => WebRequest.get('/Debiti/GestioneScadenza/OttieniInformazioniScadenza', { idDebito });\r\n\r\nconst getOttieniAzioniPossibiliScadenza = (idDebito, formData) => WebRequest.get('/Debiti/GestioneScadenza/OttieniAzioniPossibiliScadenza', {\r\n idDebito, ...formData,\r\n});\r\n\r\nconst getOttieniPianoRateizzazioneUnico = (\r\n idDebito,\r\n proroga,\r\n prorogaSenzaInteressi,\r\n maggiora,\r\n maggioraDl104,\r\n societaDiCapitali,\r\n rateizza,\r\n dpcm,\r\n) => WebRequest.get('/Debiti/GestioneScadenza/OttieniPianoRateizzazioneUnico', {\r\n idDebito, proroga, prorogaSenzaInteressi, maggiora, maggioraDl104, societaDiCapitali, rateizza, dpcm,\r\n});\r\n\r\nconst getOttieniScadenzeIva = (idDebito) => WebRequest.get('/Debiti/GestioneScadenza/OttieniScadenzeIva', { idDebito });\r\n\r\nconst getOttieniPianoRateizzazioneIva = (\r\n idDebito,\r\n idScadenzaRateizzazione,\r\n) => WebRequest.get('/Debiti/GestioneScadenza/OttieniPianoRateizzazioneIva', { idDebito, idScadenzaRateizzazione });\r\n\r\nconst getOttieniDebitoConNuovaScadenza = (idDebitoOriginale) => WebRequest.get('/Debiti/GestioneScadenza/OttieniDebitoConNuovaScadenza', { idDebitoOriginale });\r\n\r\nconst getOttieniDebitiDaRateizzazione = (idDebitoOriginale) => WebRequest.get('/Debiti/GestioneScadenza/OttieniDebitiDaRateizzazione', { idDebitoOriginale });\r\n\r\nconst getOttieniAzioniPossibiliScadenzaMassiva = (\r\n idContribuente,\r\n annualita,\r\n proroga,\r\n prorogaSenzaInteressi,\r\n maggiora,\r\n maggioraDl104,\r\n societaDiCapitali,\r\n rateizza,\r\n dpcm,\r\n) => WebRequest.get('/Debiti/GestioneScadenza/OttieniAzioniPossibiliScadenzaMassiva', {\r\n idContribuente, annualita, proroga, prorogaSenzaInteressi, maggiora, maggioraDl104, societaDiCapitali, rateizza, dpcm,\r\n});\r\n\r\nconst getOttieniPianoRateizzazioneUnicoMassiva = (\r\n idContribuente,\r\n annoDataScadenza,\r\n proroga,\r\n prorogaSenzaInteressi,\r\n maggiora,\r\n maggioraDl104,\r\n societaDiCapitali,\r\n rateizza,\r\n dpcm,\r\n) => WebRequest.get('Debiti/GestioneScadenza/OttieniPianoRateizzazioneUnicoMassiva', {\r\n idContribuente, annoDataScadenza, proroga, prorogaSenzaInteressi, maggiora, maggioraDl104, societaDiCapitali, rateizza, dpcm,\r\n});\r\n\r\nconst getOttieniInformazioniPerCompensazioneMassiva = (idDebiti, annualita) => WebRequest.get(\r\n // in querystring viene passato un int[]\r\n // eslint-disable-next-line max-len\r\n `/Debiti/Compensazione/OttieniInformazioniPerCompensazioneMassiva?${idDebiti.map((x) => (idDebiti.indexOf(x) === 0 ? `idDebiti=${x}` : `&idDebiti=${x}`))}`.replaceAll(',', ''),\r\n { annualita },\r\n);\r\n\r\nconst postAvviaCompensazioneVerticaleMassiva = (\r\n idDebiti,\r\n) => WebRequest.post('/Debiti/Compensazione/AvviaCompensazioneVerticaleMassiva', idDebiti);\r\n\r\nconst postAvviaCompensazioneOrizzontaleMassiva = (\r\n idDebiti,\r\n) => WebRequest.post('/Debiti/Compensazione/AvviaCompensazioneOrizzontaleMassiva', idDebiti);\r\n\r\nconst postGestisciScadenzaMassiva = (\r\n command,\r\n) => WebRequest.post('/Debiti/GestioneScadenza/GestisciScadenzaMassiva', command);\r\n\r\nconst postRateizzaMassivamente = (\r\n command,\r\n) => WebRequest.post('/Debiti/GestioneScadenza/RateizzaMassivamente', command);\r\n\r\nconst postGeneraSviluppoCalcoloRavvedimento = (\r\n payload,\r\n) => WebRequest.post('/Contribuente/Report/GeneraSviluppoCalcoloRavvedimento', payload);\r\n\r\nconst getOttieniInfoPanel = (idDebito) => WebRequest.get('/Debiti/GestioneScadenza/OttieniInfoPanel', { idDebito });\r\n\r\nexport {\r\n getOttieniInformazioniPerCompensazione,\r\n getOttieniInformazioniScadenza,\r\n getOttieniAzioniPossibiliScadenza,\r\n getOttieniPianoRateizzazioneUnico,\r\n getOttieniScadenzeIva,\r\n getOttieniPianoRateizzazioneIva,\r\n getOttieniDebitoConNuovaScadenza,\r\n getOttieniDebitiDaRateizzazione,\r\n getOttieniInformazioniPerCompensazioneMassiva,\r\n getOttieniAzioniPossibiliScadenzaMassiva,\r\n getOttieniPianoRateizzazioneUnicoMassiva,\r\n postGestisciScadenzaDebito,\r\n postRateizzaDebito,\r\n postResettaScadenzaDebito,\r\n postEliminaRateizzazioneDebito,\r\n postAvviaCompensazioneVerticale,\r\n postAvviaCompensazioneVerticaleMassiva,\r\n postAvviaCompensazioneOrizzontaleMassiva,\r\n postAvviaCompensazioneOrizzontale,\r\n postGestisciScadenzaMassiva,\r\n postRateizzaMassivamente,\r\n postGestisciScadenzaNuovaGestioneIVA,\r\n postGeneraSviluppoCalcoloRavvedimento,\r\n getOttieniInfoPanel,\r\n};\r\n","/* eslint-disable max-len */\r\nimport Icon from 'framework-ui-components/Components/Icons/Icon';\r\nimport React from 'react';\r\n\r\nexport default Icon(\r\n \r\n \r\n \r\n ,\r\n '0 0 24 24',\r\n 'RestoreIcon',\r\n);\r\n","import React, { useEffect, useRef, useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nconst V2TableExpandedCell = ({\r\n contentA, bottomA, rightA, contentB, bottomB, rightB, classNameAggiuntivo,\r\n}) => {\r\n const mainRef = useRef();\r\n const [parentHeight, setParentHeight] = useState('100%');\r\n useEffect(() => {\r\n setParentHeight(mainRef.current.parentElement.clientHeight);\r\n }, []);\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n {contentA}\r\n
    \r\n
    \r\n
    \r\n
    \r\n {contentB}\r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nV2TableExpandedCell.defaultProps = {\r\n contentA: null,\r\n bottomA: false,\r\n rightA: false,\r\n contentB: null,\r\n bottomB: false,\r\n rightB: false,\r\n classNameAggiuntivo: '',\r\n};\r\n\r\nV2TableExpandedCell.propTypes = {\r\n contentA: PropTypes.node,\r\n bottomA: PropTypes.bool,\r\n rightA: PropTypes.bool,\r\n contentB: PropTypes.node,\r\n bottomB: PropTypes.bool,\r\n rightB: PropTypes.bool,\r\n classNameAggiuntivo: PropTypes.string,\r\n};\r\n\r\nexport default V2TableExpandedCell;\r\n","import React from 'react';\r\nimport Icon from './Icon';\r\n\r\nexport default Icon(\r\n \r\n \r\n \r\n ,\r\n '0 0 16 16', 'MinimizeIcon',\r\n);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport MinimizeIcon from 'framework-ui-components/Components/Icons/MinimizeIcon';\r\nimport { Button, useTableRowContext } from 'framework-ui-components/Components/V2';\r\n\r\nconst V2TableMinimizeButton = ({\r\n className, emphasis, vertical, label,\r\n}) => {\r\n const { setExpanded } = useTableRowContext();\r\n return (\r\n \r\n );\r\n};\r\n\r\nV2TableMinimizeButton.defaultProps = {\r\n className: undefined,\r\n emphasis: Button.Emphasis.MEDIUM,\r\n vertical: false,\r\n label: 'Meno informazioni',\r\n};\r\n\r\nV2TableMinimizeButton.propTypes = {\r\n className: PropTypes.string,\r\n emphasis: PropTypes.oneOf([Button.Emphasis.LOW, Button.Emphasis.MEDIUM]),\r\n vertical: PropTypes.bool,\r\n label: PropTypes.string,\r\n};\r\n\r\nexport default V2TableMinimizeButton;\r\n","/* eslint-disable max-len */\r\nimport Icon from 'framework-ui-components/Components/Icons/Icon';\r\nimport React from 'react';\r\n\r\nexport default Icon(\r\n \r\n \r\n \r\n \r\n \r\n \r\n ,\r\n '0 0 24 24',\r\n 'LockIcon',\r\n);\r\n","/* eslint-disable max-len */\r\nimport Icon from 'framework-ui-components/Components/Icons/Icon';\r\nimport React from 'react';\r\n\r\nexport default Icon(\r\n \r\n \r\n \r\n ,\r\n '0 0 24 24',\r\n 'LockOpenIcon',\r\n);\r\n","import { EllipsisText } from 'framework-ui-components';\r\nimport React, { useMemo } from 'react';\r\nimport CheckboxTitle from '../../../../../../components/custom/CheckboxTitle';\r\nimport LabelOnly from '../../../../../../components/custom/LabelOnly';\r\nimport LabelValueDetail from '../../../../../../components/custom/LabelValueDetail';\r\nimport TemplateGrid from '../../../../../../components/TemplateGrid/TemplateGrid';\r\nimport { TIPOLOGIA_SEZIONE } from '../../../../../../models/tributi';\r\n\r\nconst RitornaColonna3 = ({\r\n sezione, dettaglio,\r\n}) => {\r\n const Colonna = useMemo(() => {\r\n if (sezione === TIPOLOGIA_SEZIONE.INPS) {\r\n if (dettaglio.NumeroRata) {\r\n return (\r\n \r\n
    \r\n \r\n {`${String(dettaglio.NumeroRata).padStart(2, '0')} / ${dettaglio.AnnoRiferimentoDa || dettaglio.AnnoRiferimentoA}`}\r\n \r\n )}\r\n />\r\n
    \r\n \r\n );\r\n }\r\n let periodoRiferimento = null;\r\n if ((dettaglio.AnnoRiferimentoDa !== null || dettaglio.MeseRiferimentoDa !== null)\r\n && dettaglio.AnnoRiferimentoA === null && dettaglio.MeseRiferimentoA === null) {\r\n periodoRiferimento = dettaglio.MeseRiferimentoDa ? `${dettaglio.MeseRiferimentoDa}/${dettaglio.AnnoRiferimentoDa}` : null;\r\n } else if ((dettaglio.AnnoRiferimentoA !== null || dettaglio.MeseRiferimentoA !== null)\r\n && dettaglio.AnnoRiferimentoDa === null && dettaglio.MeseRiferimentoDa === null) {\r\n periodoRiferimento = dettaglio.MeseRiferimentoA ? `${dettaglio.MeseRiferimentoA}/${dettaglio.AnnoRiferimentoA}` : null;\r\n } else {\r\n periodoRiferimento = `${dettaglio.MeseRiferimentoDa}/${dettaglio.AnnoRiferimentoDa} - ${dettaglio.MeseRiferimentoA}/${dettaglio.AnnoRiferimentoA}`;\r\n }\r\n\r\n return (\r\n \r\n {periodoRiferimento && (\r\n \r\n )}\r\n \r\n );\r\n }\r\n if (sezione === TIPOLOGIA_SEZIONE.ALTRI_ENTI) {\r\n if (dettaglio.NumeroRata && dettaglio.TotaleNumeroRate) {\r\n return (\r\n \r\n {dettaglio.NumeroRata && dettaglio.TotaleNumeroRate && dettaglio.IsOriginale\r\n && (`${dettaglio.NumeroRata}` !== '1' && `${dettaglio.TotaleNumeroRate}` !== '1')\r\n && (\r\n
    \r\n \r\n {`${String(dettaglio.NumeroRata).padStart(2, '0')} / ${String(dettaglio.TotaleNumeroRate).padStart(2, '0')}`}\r\n \r\n )}\r\n />\r\n\r\n
    \r\n )}\r\n \r\n );\r\n }\r\n let periodoRiferimento = null;\r\n if ((dettaglio.AnnoRiferimentoDa !== null || dettaglio.MeseRiferimentoDa !== null)\r\n && dettaglio.AnnoRiferimentoA === null && dettaglio.MeseRiferimentoA === null) {\r\n periodoRiferimento = dettaglio.MeseRiferimentoDa ? `${dettaglio.MeseRiferimentoDa}/${dettaglio.AnnoRiferimentoDa}` : null;\r\n } else if ((dettaglio.AnnoRiferimentoA !== null || dettaglio.MeseRiferimentoA !== null)\r\n && dettaglio.AnnoRiferimentoDa === null && dettaglio.MeseRiferimentoDa === null) {\r\n periodoRiferimento = dettaglio.MeseRiferimentoA ? `${dettaglio.MeseRiferimentoA}/${dettaglio.AnnoRiferimentoA}` : null;\r\n } else {\r\n periodoRiferimento = `${dettaglio.MeseRiferimentoDa}/${dettaglio.AnnoRiferimentoDa} - ${dettaglio.MeseRiferimentoA}/${dettaglio.AnnoRiferimentoA}`;\r\n }\r\n\r\n return (\r\n \r\n {periodoRiferimento && (\r\n \r\n )}\r\n \r\n );\r\n }\r\n if (sezione === TIPOLOGIA_SEZIONE.TRIBUTI_LOCALI && dettaglio.NumeroRata && dettaglio.TotaleNumeroRate) {\r\n return (\r\n \r\n {dettaglio.NumeroRata && dettaglio.TotaleNumeroRate && dettaglio.IsOriginale\r\n && (`${dettaglio.NumeroRata}` !== '1' && `${dettaglio.TotaleNumeroRate}` !== '1')\r\n && (\r\n
    \r\n \r\n {`${String(dettaglio.NumeroRata).padStart(2, '0')} / ${String(dettaglio.TotaleNumeroRate).padStart(2, '0')}`}\r\n \r\n )}\r\n />\r\n\r\n
    \r\n )}\r\n \r\n );\r\n }\r\n return (\r\n \r\n {(dettaglio.MeseRiferimento && dettaglio.AnnoRiferimento) && (\r\n \r\n )}\r\n \r\n );\r\n }, [dettaglio, sezione]);\r\n\r\n return (\r\n Colonna\r\n );\r\n};\r\n\r\nexport default RitornaColonna3;\r\n","import { EllipsisText } from 'framework-ui-components';\r\nimport React, { useMemo } from 'react';\r\nimport LabelValueDetail from '../../../../../../components/custom/LabelValueDetail';\r\nimport TemplateGrid from '../../../../../../components/TemplateGrid/TemplateGrid';\r\n\r\nconst RitornaColonneSezioneAccise = ({\r\n numeroColonna, dettaglio,\r\n}) => {\r\n const Colonna = useMemo(() => {\r\n if (numeroColonna === 1) {\r\n return (\r\n \r\n {dettaglio.CodiceIdentificativo !== null && (\r\n
    \r\n \r\n {`${dettaglio.CodiceIdentificativo}`}\r\n \r\n )}\r\n />\r\n
    \r\n )}\r\n {dettaglio.CodiceAttoAdE !== null && (\r\n
    \r\n \r\n {`${dettaglio.CodiceAttoAdE}`}\r\n \r\n )}\r\n />\r\n
    \r\n )}\r\n {dettaglio.CodiceUfficioAdE !== null && (\r\n
    \r\n \r\n {`${dettaglio.CodiceUfficioAdE}`}\r\n \r\n )}\r\n />\r\n
    \r\n )}\r\n \r\n );\r\n }\r\n if (numeroColonna === 2) {\r\n return (\r\n \r\n {dettaglio.CodiceEnte && (\r\n
    \r\n \r\n {`${dettaglio.CodiceEnte}`}\r\n \r\n )}\r\n />\r\n\r\n
    \r\n )}\r\n {dettaglio.CodiceProvincia && (\r\n
    \r\n \r\n {`${dettaglio.CodiceProvincia}-${dettaglio.DescrizioneProvincia}`}\r\n \r\n )}\r\n />\r\n\r\n
    \r\n )}\r\n \r\n );\r\n }\r\n if (numeroColonna === 5) {\r\n return (\r\n \r\n {dettaglio.NumeroRata && dettaglio.TotaleNumeroRate && dettaglio.IsOriginale\r\n && (`${dettaglio.NumeroRata}` !== '1' && `${dettaglio.TotaleNumeroRate}` !== '1')\r\n && (\r\n
    \r\n \r\n {`${String(dettaglio.NumeroRata).padStart(2, '0')} / ${String(dettaglio.TotaleNumeroRate).padStart(2, '0')}`}\r\n \r\n )}\r\n />\r\n\r\n
    \r\n )}\r\n \r\n );\r\n }\r\n return (
    );\r\n }, [dettaglio, numeroColonna]);\r\n\r\n return (\r\n Colonna\r\n );\r\n};\r\n\r\nexport default RitornaColonneSezioneAccise;\r\n","import { EllipsisText } from 'framework-ui-components';\r\nimport React, { useMemo } from 'react';\r\nimport LabelValueDetail from '../../../../../../components/custom/LabelValueDetail';\r\nimport TemplateGrid from '../../../../../../components/TemplateGrid/TemplateGrid';\r\n\r\nconst RitornaColonneSezioneAltriEntiPrevidenziali = ({\r\n numeroColonna, dettaglio,\r\n}) => {\r\n const Colonna = useMemo(() => {\r\n if (numeroColonna === 1) {\r\n return (\r\n \r\n {dettaglio.CodiceEnte && (\r\n
    \r\n \r\n {`${dettaglio.CodiceEnte}`}\r\n \r\n )}\r\n />\r\n
    \r\n )}\r\n {dettaglio.CodiceSede && (\r\n
    \r\n \r\n {`${dettaglio.CodiceSede}-${dettaglio.DescrizioneSede}`}\r\n \r\n )}\r\n />\r\n
    \r\n )}\r\n {dettaglio.CodicePosizione && (\r\n
    \r\n \r\n {`${dettaglio.CodicePosizione}`}\r\n \r\n )}\r\n />\r\n
    \r\n )}\r\n \r\n );\r\n }\r\n return (
    );\r\n }, [dettaglio, numeroColonna]);\r\n\r\n return (\r\n Colonna\r\n );\r\n};\r\n\r\nexport default RitornaColonneSezioneAltriEntiPrevidenziali;\r\n","import { EllipsisText } from 'framework-ui-components';\r\nimport React, { useMemo } from 'react';\r\nimport LabelValueDetail from '../../../../../../components/custom/LabelValueDetail';\r\nimport TemplateGrid from '../../../../../../components/TemplateGrid/TemplateGrid';\r\n\r\nconst RitornaColonneSezioneErario = ({\r\n numeroColonna, dettaglio,\r\n}) => {\r\n const Colonna = useMemo(() => {\r\n if (numeroColonna === 1) {\r\n return (\r\n \r\n {dettaglio.CodiceAttoAdE !== null && (\r\n \r\n )}\r\n {dettaglio.CodiceUfficioAdE !== null && (\r\n \r\n )}\r\n \r\n );\r\n }\r\n if (numeroColonna === 2) {\r\n return (\r\n \r\n {dettaglio.TipoVersamento && (\r\n
    \r\n \r\n {`${dettaglio.TipoVersamento}`}\r\n \r\n )}\r\n />\r\n
    \r\n )}\r\n {dettaglio.TipoVersamento && (\r\n
    \r\n \r\n {`${dettaglio.TipoTributo}`}\r\n \r\n )}\r\n />\r\n
    \r\n )}\r\n \r\n );\r\n }\r\n if (numeroColonna === 3) {\r\n return (\r\n \r\n {dettaglio.ElementiIdentificativi && (\r\n
    \r\n \r\n {`${dettaglio.ElementiIdentificativi}`}\r\n \r\n )}\r\n />\r\n
    \r\n )}\r\n \r\n );\r\n }\r\n return (
    );\r\n }, [dettaglio, numeroColonna]);\r\n\r\n return (\r\n Colonna\r\n );\r\n};\r\n\r\nexport default RitornaColonneSezioneErario;\r\n","import { EllipsisText } from 'framework-ui-components';\r\nimport React, { useMemo } from 'react';\r\nimport LabelValueDetail from '../../../../../../components/custom/LabelValueDetail';\r\nimport TemplateGrid from '../../../../../../components/TemplateGrid/TemplateGrid';\r\n\r\nconst RitornaColonneSezioneErario = ({\r\n numeroColonna, dettaglio,\r\n}) => {\r\n const Colonna = useMemo(() => {\r\n if (numeroColonna === 1) {\r\n return (\r\n \r\n {dettaglio.CodiceAttoAdE !== null && (\r\n \r\n )}\r\n {dettaglio.CodiceUfficioAdE !== null && (\r\n \r\n )}\r\n \r\n );\r\n }\r\n if (numeroColonna === 2) {\r\n return (\r\n \r\n {dettaglio.CodiceProvincia && (\r\n
    \r\n \r\n {`${dettaglio.CodiceProvincia}-${dettaglio.DescrizioneProvincia}`}\r\n \r\n )}\r\n />\r\n
    \r\n )}\r\n {dettaglio.CodiceRegione && (\r\n
    \r\n \r\n {`${dettaglio.CodiceRegione}-${dettaglio.DescrizioneRegione}`}\r\n \r\n )}\r\n />\r\n
    \r\n )}\r\n {dettaglio.CodiceComune && (\r\n
    \r\n \r\n {`${dettaglio.CodiceComune}-${dettaglio.DescrizioneComune}`}\r\n \r\n )}\r\n />\r\n
    \r\n )}\r\n {dettaglio.CodiceEnteLocale && (\r\n
    \r\n \r\n {`${dettaglio.CodiceEnteLocale}-${dettaglio.DescrizioneEnteLocale}`}\r\n \r\n )}\r\n />\r\n\r\n
    \r\n )}\r\n {dettaglio.CodiceEnteTerritoriale && (\r\n
    \r\n \r\n {`${dettaglio.CodiceEnteTerritoriale}-${dettaglio.DescrizioneEnteTerritoriale}`}\r\n \r\n )}\r\n />\r\n\r\n
    \r\n )}\r\n {dettaglio.NumeroRata && dettaglio.TotaleNumeroRate && dettaglio.IsOriginale\r\n && (`${dettaglio.NumeroRata}` !== '1' && `${dettaglio.TotaleNumeroRate}` !== '1')\r\n && (\r\n
    \r\n \r\n {`${String(dettaglio.NumeroRata).padStart(2, '0')} / ${String(dettaglio.TotaleNumeroRate).padStart(2, '0')}`}\r\n \r\n )}\r\n />\r\n\r\n
    \r\n )}\r\n \r\n );\r\n }\r\n return (
    );\r\n }, [dettaglio, numeroColonna]);\r\n\r\n return (\r\n Colonna\r\n );\r\n};\r\n\r\nexport default RitornaColonneSezioneErario;\r\n","import { EllipsisText } from 'framework-ui-components';\r\nimport React, { useMemo } from 'react';\r\nimport LabelValueDetail from '../../../../../../components/custom/LabelValueDetail';\r\nimport TemplateGrid from '../../../../../../components/TemplateGrid/TemplateGrid';\r\n\r\nconst RitornaColonneSezioneInail = ({\r\n numeroColonna, dettaglio,\r\n}) => {\r\n const Colonna = useMemo(() => {\r\n if (numeroColonna === 1) {\r\n return (\r\n \r\n {dettaglio.CodiceSede && (\r\n
    \r\n \r\n {`${dettaglio.CodiceSede}-${dettaglio.DescrizioneSede}`}\r\n \r\n )}\r\n />\r\n
    \r\n )}\r\n {dettaglio.PosizioneAssicurativaNumero && (\r\n
    \r\n \r\n {`${dettaglio.PosizioneAssicurativaNumero}`}\r\n \r\n )}\r\n />\r\n
    \r\n )}\r\n {dettaglio.PosizioneAssicurativaCodiceControllo && (\r\n
    \r\n \r\n {`${dettaglio.PosizioneAssicurativaCodiceControllo}`}\r\n \r\n )}\r\n />\r\n\r\n
    \r\n )}\r\n \r\n );\r\n }\r\n if (numeroColonna === 2) {\r\n return (\r\n \r\n { dettaglio.NumeroRiferimento && (\r\n
    \r\n \r\n\r\n
    \r\n )}\r\n {dettaglio.Causale && (\r\n
    \r\n \r\n\r\n
    \r\n )}\r\n \r\n );\r\n }\r\n return (
    );\r\n }, [dettaglio, numeroColonna]);\r\n\r\n return (\r\n Colonna\r\n );\r\n};\r\n\r\nexport default RitornaColonneSezioneInail;\r\n","import { EllipsisText } from 'framework-ui-components';\r\nimport React, { useMemo } from 'react';\r\nimport LabelValueDetail from '../../../../../../components/custom/LabelValueDetail';\r\nimport TemplateGrid from '../../../../../../components/TemplateGrid/TemplateGrid';\r\n\r\nconst RitornaColonneSezioneInps = ({\r\n numeroColonna, dettaglio,\r\n}) => {\r\n const Colonna = useMemo(() => {\r\n if (numeroColonna === 2) {\r\n return (\r\n \r\n {dettaglio.CodiceSede && (\r\n
    \r\n \r\n {`${dettaglio.CodiceSede}-${dettaglio.DescrizioneSede}`}\r\n \r\n )}\r\n />\r\n
    \r\n )}\r\n {dettaglio.MatricolaOAltriCodici && (\r\n
    \r\n \r\n {dettaglio.MatricolaOAltriCodici}\r\n \r\n )}\r\n />\r\n
    \r\n )}\r\n {dettaglio.Codeline && (\r\n
    \r\n \r\n {dettaglio.Codeline}\r\n \r\n )}\r\n />\r\n
    \r\n )}\r\n \r\n );\r\n }\r\n return (
    );\r\n }, [dettaglio, numeroColonna]);\r\n\r\n return (\r\n Colonna\r\n );\r\n};\r\n\r\nexport default RitornaColonneSezioneInps;\r\n","import { EllipsisText } from 'framework-ui-components';\r\nimport React, { useMemo } from 'react';\r\nimport LabelValueDetail from '../../../../../../components/custom/LabelValueDetail';\r\nimport TemplateGrid from '../../../../../../components/TemplateGrid/TemplateGrid';\r\n\r\nconst RitornaColonneSezioneRegioni = ({\r\n numeroColonna, dettaglio,\r\n}) => {\r\n const Colonna = useMemo(() => {\r\n if (numeroColonna === 1) {\r\n return (\r\n \r\n {dettaglio.NumeroRata && dettaglio.TotaleNumeroRate && dettaglio.IsOriginale\r\n && (`${dettaglio.NumeroRata}` !== '1' && `${dettaglio.TotaleNumeroRate}` !== '1')\r\n && (\r\n
    \r\n \r\n {`${String(dettaglio.NumeroRata).padStart(2, '0')} / ${String(dettaglio.TotaleNumeroRate).padStart(2, '0')}`}\r\n \r\n )}\r\n />\r\n\r\n
    \r\n )}\r\n \r\n );\r\n }\r\n if (numeroColonna === 2) {\r\n return (\r\n \r\n {dettaglio.CodiceRegione && (\r\n
    \r\n \r\n {`${dettaglio.CodiceRegione}-${dettaglio.DescrizioneRegione}`}\r\n \r\n )}\r\n />\r\n
    \r\n )}\r\n \r\n );\r\n }\r\n return (
    );\r\n }, [dettaglio, numeroColonna]);\r\n\r\n return (\r\n Colonna\r\n );\r\n};\r\n\r\nexport default RitornaColonneSezioneRegioni;\r\n","import { EllipsisText } from 'framework-ui-components';\r\nimport React, { useMemo } from 'react';\r\nimport CheckboxTitle from '../../../../../../components/custom/CheckboxTitle';\r\nimport LabelOnly from '../../../../../../components/custom/LabelOnly';\r\nimport LabelValueDetail from '../../../../../../components/custom/LabelValueDetail';\r\nimport TemplateGrid from '../../../../../../components/TemplateGrid/TemplateGrid';\r\n\r\nconst RitornaColonneSezioneTributiLocali = ({\r\n numeroColonna, dettaglio, debitiPerScadenza,\r\n}) => {\r\n const Colonna = useMemo(() => {\r\n if (numeroColonna === 1) {\r\n return (\r\n \r\n {dettaglio.CodiceProvincia && (\r\n
    \r\n \r\n {`${dettaglio.CodiceProvincia}-${dettaglio.DescrizioneProvincia}`}\r\n \r\n )}\r\n />\r\n
    \r\n )}\r\n {dettaglio.CodiceComune && (\r\n
    \r\n \r\n {`${dettaglio.CodiceComune}-${dettaglio.DescrizioneComune}`}\r\n \r\n )}\r\n />\r\n
    \r\n )}\r\n {dettaglio.CodiceEnteLocale && (\r\n
    \r\n \r\n {`${dettaglio.CodiceEnteLocale}-${dettaglio.DescrizioneEnteLocale}`}\r\n \r\n )}\r\n />\r\n\r\n
    \r\n )}\r\n {debitiPerScadenza && (dettaglio.Acconto || dettaglio.Saldo) && (\r\n
    \r\n \r\n
    \r\n )}\r\n \r\n );\r\n }\r\n if (numeroColonna === 9 && (dettaglio.Acconto || dettaglio.Saldo)) {\r\n return (\r\n \r\n
    \r\n \r\n
    \r\n \r\n );\r\n }\r\n if (numeroColonna === 2) {\r\n return (\r\n \r\n {dettaglio.NumeroImmobili && ([\r\n ,\r\n
    ,\r\n ]\r\n )}\r\n {dettaglio.ImmobiliVariati !== null && ([\r\n Immobili variati,\r\n
    \r\n \r\n
    ,\r\n ]\r\n )}\r\n {dettaglio.Ravvedimento !== null && ([\r\n Ravvedimento,\r\n
    \r\n \r\n
    ,\r\n ]\r\n )}\r\n\r\n {dettaglio.IdentificativoOperazione && ([\r\n ,\r\n
    ,\r\n ]\r\n )}\r\n \r\n );\r\n }\r\n return (
    );\r\n }, [debitiPerScadenza, dettaglio, numeroColonna]);\r\n\r\n return (\r\n Colonna\r\n );\r\n};\r\n\r\nexport default RitornaColonneSezioneTributiLocali;\r\n","import React, { useMemo } from 'react';\r\nimport { TIPOLOGIA_SEZIONE } from '../../../../../../models/tributi';\r\nimport RitornaColonna3 from './RitornaColonna3';\r\nimport RitornaColonneSezioneAccise from './RitornaColonneSezioneAccise';\r\nimport RitornaColonneSezioneAltriEntiPrevidenziali from './RitornaColonneSezioneAltriEntiPrevidenziali';\r\nimport RitornaColonneSezioneElide from './RitornaColonneSezioneElide';\r\nimport RitornaColonneSezioneErario from './RitornaColonneSezioneErario';\r\nimport RitornaColonneSezioneInail from './RitornaColonneSezioneInail';\r\nimport RitornaColonneSezioneInps from './RitornaColonneSezioneInps';\r\nimport RitornaColonneSezioneRegioni from './RitornaColonneSezioneRegioni';\r\nimport RitornaColonneSezioneTributiLocali from './RitornaColonneSezioneTributiLocali';\r\n\r\nconst RitornaElementoPerDettaglioDebitoColonnaEspansa = ({\r\n sezione, numeroColonna, dettaglio, debitiPerScadenza = false,\r\n}) => {\r\n const Colonna = useMemo(() => {\r\n if (numeroColonna === 3) {\r\n if (sezione === TIPOLOGIA_SEZIONE.ELIDE) {\r\n return ();\r\n }\r\n return ;\r\n } if (sezione === TIPOLOGIA_SEZIONE.ERARIO) {\r\n return ();\r\n } if (sezione === TIPOLOGIA_SEZIONE.REGIONI) {\r\n return ();\r\n } if (sezione === TIPOLOGIA_SEZIONE.INPS) {\r\n return ();\r\n } if (sezione === TIPOLOGIA_SEZIONE.TRIBUTI_LOCALI) {\r\n return ();\r\n } if (sezione === TIPOLOGIA_SEZIONE.INAIL) {\r\n return ();\r\n } if (sezione === TIPOLOGIA_SEZIONE.ALTRI_ENTI) {\r\n return ();\r\n } if (sezione === TIPOLOGIA_SEZIONE.ACCISE) {\r\n return ();\r\n }\r\n if (sezione === TIPOLOGIA_SEZIONE.ELIDE) {\r\n return ();\r\n }\r\n return
    ;\r\n }, [debitiPerScadenza, dettaglio, numeroColonna, sezione]);\r\n\r\n return (\r\n Colonna\r\n );\r\n};\r\n\r\nexport default RitornaElementoPerDettaglioDebitoColonnaEspansa;\r\n","/* eslint-disable camelcase */\r\n/* eslint-disable no-nested-ternary */\r\nimport React, { useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Button, ButtonGroup, DropdownButton, Table,\r\n} from 'framework-ui-components/Components/V2';\r\nimport {\r\n Badge, EllipsisText, Formatter, InfoTooltip, PopOver, Tooltip,\r\n} from 'framework-ui-components';\r\nimport { STOP_EVENT_PROPAGATION } from 'framework-ui-components/utils/const';\r\nimport DeleteIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/DeleteIcon';\r\nimport { getYear, JustADate } from 'framework-taskforce/utils/date';\r\nimport BadgeSuccessIcon from 'framework-ui-components/Components/Icons/BadgeSuccessIcon';\r\nimport MoreVertIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/MoreVertIcon';\r\nimport OpenInNewIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/OpenInNewIcon';\r\nimport { setAppParamsAction } from 'framework-taskforce/actions/appParams';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport EditIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/EditIcon';\r\nimport V2TableExpandedCell from '../../../../../components/custom/V2TableExpandedCell';\r\nimport { getCurrencyValueNoSymbol } from '../../../../../utils/format';\r\nimport RestoreIcon from '../../../../../components/icons/google/RestoreIcon';\r\nimport BuildIcon from '../../../../../components/icons/google/BuildIcon';\r\nimport V2TableMinimizeButton from '../../../../../components/custom/V2TableMinimizeButton';\r\nimport TemplateGrid from '../../../../../components/TemplateGrid/TemplateGrid';\r\nimport LabelOnly from '../../../../../components/custom/LabelOnly';\r\nimport ModaleAiutaci from '../../../../../components/ModaleAiutaci';\r\nimport LockIcon from '../../../../../components/icons/google/LockIcon';\r\nimport LockOpenIcon from '../../../../../components/icons/google/LockOpenIcon';\r\nimport { PROVENIENZA_TRIBUTO, TIPOLOGIA_TRIBUTO } from '../../../../../models/tributi';\r\nimport RitornaElementoPerDettaglioDebitoColonnaEspansa from './expanded/RitornaElementoPerDettaglioDebitoColonnaEspansa';\r\n\r\nconst RigaDebitiSoggettoExpanded = ({\r\n rowData: {\r\n Id,\r\n DescrizioneTributo,\r\n DescrizioneSezione,\r\n NuovaGestioneIVA,\r\n Importo,\r\n ImportoResiduo,\r\n DataScadenza,\r\n IsRateizzatoOppureGestitaScadenza,\r\n IsDebito,\r\n CodiceTributo,\r\n NumeroRate,\r\n PeriodoRiferimento,\r\n IsProrogato,\r\n IsMaggiorato,\r\n IsPadre,\r\n IsOriginale,\r\n ProvenienzaNew,\r\n ProvenienzaOld,\r\n NaturaDebito,\r\n NaturaDebitoDescrizione,\r\n ChiusuraForzata,\r\n IdSezione,\r\n Provenienza_OLD,\r\n HaUtilizzi,\r\n IdCodiceTributo,\r\n isModificabile,\r\n },\r\n additionalRowData: {\r\n setModaleGestisciScadenza,\r\n setModificaTributo,\r\n cercaNelleScadenze,\r\n annoSelezionato,\r\n },\r\n expanded,\r\n apriEliminaRateizzazione,\r\n apriRipristinaScadenza,\r\n listaRateizzazione,\r\n listaProrogatiMaggiorati,\r\n utilizzi,\r\n dettaglio,\r\n ravvedimenti,\r\n scadenzeSpostate,\r\n apriUtilizzo,\r\n eseguiChiusuraForzata,\r\n annullaChiusuraForzata,\r\n eliminaTributo,\r\n rimuoviCompensazioneManuale,\r\n recuperaPossibilitaOperazioni,\r\n}) => {\r\n const dispatch = useDispatch();\r\n const appParamVisualizzazione = useSelector((store) => !!store.appParams.visualizzazione);\r\n\r\n const [confirmFunzionalitaMancante, setConfirmFunzionalitaMancante] = useState(false);\r\n\r\n return (\r\n \r\n \r\n \r\n {IsDebito ? (\r\n \r\n Debito\r\n \r\n ) : (\r\n \r\n Credito\r\n \r\n )}\r\n
    \r\n )}\r\n contentB={(
    )}\r\n />\r\n \r\n \r\n \r\n \r\n {CodiceTributo}\r\n {DescrizioneTributo && (\r\n
    \r\n 24}>\r\n {DescrizioneTributo}\r\n \r\n
    \r\n )}\r\n \r\n )}\r\n contentB={dettaglio && (\r\n \r\n )}\r\n />\r\n
    \r\n \r\n \r\n \r\n \r\n {DescrizioneSezione}\r\n \r\n
    \r\n )}\r\n contentB={dettaglio && (\r\n \r\n )}\r\n />\r\n \r\n \r\n \r\n \r\n )}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n {!ProvenienzaNew && (NaturaDebito === null || NaturaDebito === 0) && ProvenienzaOld}\r\n {(NaturaDebito !== null && NaturaDebito !== 0) && ProvenienzaOld}\r\n {ProvenienzaNew && (NaturaDebito === null || NaturaDebito === 0) && ProvenienzaNew}\r\n \r\n
    \r\n {ProvenienzaNew && NaturaDebito !== null && NaturaDebito !== 0 && {ProvenienzaNew}}\r\n \r\n )}\r\n contentB={(
    )}\r\n />\r\n \r\n \r\n \r\n {NumeroRate} rate :
    }\r\n contentB={(\r\n
    \r\n \r\n \r\n {ravvedimenti && ravvedimenti.length !== 0 ? (\r\n
    \r\n
    Ravvedimento
    \r\n {ravvedimenti.map((ravvedimento, idx) => (\r\n // eslint-disable-next-line react/no-array-index-key\r\n
    \r\n
    \r\n al\r\n {\r\n dispatch(setAppParamsAction({\r\n annoSelezionato: new Date(ravvedimento.DataRavvedimento).getFullYear(),\r\n }));\r\n cercaNelleScadenze(ravvedimento.DataRavvedimento);\r\n }}\r\n role=\"link\"\r\n tabIndex=\"0\"\r\n onKeyPress={() => {}}\r\n >\r\n \r\n \r\n \r\n
    \r\n importo\r\n €\r\n residuo\r\n €\r\n
    \r\n
    \r\n ))}\r\n
    \r\n )\r\n : (
    )}\r\n {scadenzeSpostate && scadenzeSpostate.length !== 0 ? (\r\n
    \r\n
    Scadenza spostata
    \r\n {scadenzeSpostate.map((scadenza, idx) => (\r\n // eslint-disable-next-line react/no-array-index-key\r\n
    \r\n
    \r\n al\r\n {\r\n dispatch(setAppParamsAction({\r\n annoSelezionato: new Date(scadenza.DataScadenza).getFullYear(),\r\n }));\r\n cercaNelleScadenze(scadenza.DataScadenza);\r\n }}\r\n role=\"link\"\r\n tabIndex=\"0\"\r\n onKeyPress={() => {}}\r\n >\r\n \r\n \r\n \r\n
    \r\n importo\r\n €\r\n residuo\r\n €\r\n
    \r\n
    \r\n ))}\r\n
    \r\n )\r\n : (
    )}\r\n {listaRateizzazione && listaRateizzazione.length !== 0 ? (\r\n listaRateizzazione.map((rata, idx) => (\r\n // eslint-disable-next-line react/no-array-index-key\r\n
    \r\n
    {rata.NumeroRata}° rata
    \r\n
    \r\n il\r\n {\r\n dispatch(setAppParamsAction({\r\n annoSelezionato: new Date(rata.DataScadenza).getFullYear(),\r\n }));\r\n cercaNelleScadenze(rata.DataScadenza);\r\n }}\r\n role=\"link\"\r\n tabIndex=\"0\"\r\n onKeyPress={() => {}}\r\n >\r\n \r\n \r\n \r\n
    \r\n importo\r\n €\r\n interessi\r\n €\r\n
    \r\n
    \r\n )))\r\n : (
    )}\r\n {listaProrogatiMaggiorati && listaProrogatiMaggiorati.length !== 0 ? (\r\n listaProrogatiMaggiorati.map((figlio, idx) => (\r\n // eslint-disable-next-line react/no-array-index-key\r\n
    \r\n
    Nuova scadenza
    \r\n
    \r\n il\r\n {\r\n dispatch(setAppParamsAction({\r\n annoSelezionato: new Date(figlio.DataScadenza).getFullYear(),\r\n }));\r\n cercaNelleScadenze(figlio.DataScadenza);\r\n }}\r\n role=\"link\"\r\n tabIndex=\"0\"\r\n onKeyPress={() => {}}\r\n >\r\n \r\n \r\n \r\n
    \r\n importo\r\n €\r\n residuo\r\n €\r\n
    \r\n
    \r\n )))\r\n : (
    )}\r\n \r\n
    \r\n )}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n )}\r\n contentB={(
    )}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n )}\r\n contentB={(
    )}\r\n />\r\n \r\n \r\n \r\n \r\n )}\r\n />\r\n \r\n \r\n \r\n \r\n {utilizzi && utilizzi.length > 0 ? (\r\n \r\n
    Utilizzo
    \r\n {utilizzi.map((utilizzo, idx) => (\r\n utilizzo.IsManuale\r\n ? (\r\n // eslint-disable-next-line react/no-array-index-key\r\n
    \r\n di\r\n € in comp. {utilizzo.CompensazioneManuale.ImportoCompOrizzontale ? 'orizzontale' : 'verticale'}\r\n rimuoviCompensazioneManuale(Id, utilizzo.CompensazioneManuale.Id)}\r\n small\r\n >\r\n \r\n \r\n
    \r\n )\r\n : (\r\n // eslint-disable-next-line react/no-array-index-key\r\n
    \r\n di\r\n €\r\n apriUtilizzo(utilizzo.IdDelega)}\r\n small\r\n >\r\n \r\n Apri delega\r\n \r\n
    \r\n )))}\r\n \r\n ) : (
    )}\r\n
    \r\n ))}\r\n />\r\n
    \r\n \r\n \r\n ) : `${getCurrencyValueNoSymbol(ImportoResiduo, IsFiglio)}`}\r\n contentA={IsPadre\r\n ? (\r\n
    \r\n \r\n
    \r\n ) : `${getCurrencyValueNoSymbol(ImportoResiduo, !IsPadre)}`}\r\n contentB={\r\n ChiusuraForzata ? (\r\n \r\n \r\n \r\n \r\n \r\n )\r\n : (
    )\r\n }\r\n />\r\n \r\n \r\n \r\n )}\r\n bottomB\r\n rightB\r\n contentB={(\r\n \r\n {IsRateizzatoOppureGestitaScadenza ? (\r\n NumeroRate > 0 ? (\r\n apriEliminaRateizzazione()}\r\n disabled={appParamVisualizzazione}\r\n vertical\r\n >\r\n \r\n Ripristina\r\n \r\n\r\n ) : (\r\n apriRipristinaScadenza()}\r\n disabled={appParamVisualizzazione}\r\n vertical\r\n >\r\n \r\n Ripristina\r\n \r\n )\r\n ) : (\r\n IsDebito && ImportoResiduo > 0 && !appParamVisualizzazione && (\r\n setModaleGestisciScadenza(\r\n {\r\n IdTributo: Id,\r\n NuovaGestioneIVA,\r\n CodiceTributo,\r\n aperto: true,\r\n tributo: {\r\n Id,\r\n CodiceTributo,\r\n PeriodoRiferimento,\r\n DataScadenza,\r\n ImportoResiduo,\r\n Importo,\r\n Sezione: DescrizioneSezione,\r\n },\r\n soloCompensazione: true,\r\n gestisciScadenza: true,\r\n IsIva: NuovaGestioneIVA && CodiceTributo === '6099',\r\n },\r\n )\r\n }\r\n vertical\r\n primary\r\n >\r\n \r\n Gestisci\r\n \r\n )\r\n )}\r\n \r\n { ((ImportoResiduo > 0 && !IsRateizzatoOppureGestitaScadenza) || ChiusuraForzata\r\n || (Provenienza_OLD === PROVENIENZA_TRIBUTO.MANUALE && (NaturaDebito === 0 || NaturaDebito === null))) && !appParamVisualizzazione\r\n && (\r\n recuperaPossibilitaOperazioni()}\r\n >\r\n \r\n Altre azioni\r\n \r\n {isModificabile\r\n && (\r\n setModificaTributo(\r\n IsDebito ? TIPOLOGIA_TRIBUTO.DEBITO : TIPOLOGIA_TRIBUTO.CREDITO,\r\n {\r\n Id,\r\n Importo,\r\n DataScadenza,\r\n IdCodiceTributo,\r\n CodiceTributo,\r\n DescrizioneTributo,\r\n TributoDescrizioneComposta: `${CodiceTributo} - ${DescrizioneTributo}`,\r\n IdSezione,\r\n PeriodoRiferimento,\r\n },\r\n )}\r\n disabled={appParamVisualizzazione}\r\n >\r\n \r\n Modifica\r\n \r\n )}\r\n { (ImportoResiduo > 0 && !IsRateizzatoOppureGestitaScadenza && !ChiusuraForzata) && (\r\n eseguiChiusuraForzata(Id, IsDebito)}\r\n >\r\n \r\n Chiusura forzata\r\n \r\n )}\r\n { ChiusuraForzata && (\r\n annullaChiusuraForzata(Id, IsDebito)}\r\n >\r\n \r\n Annulla chiusura forzata\r\n \r\n ) }\r\n {Provenienza_OLD === PROVENIENZA_TRIBUTO.MANUALE && (NaturaDebito === 0 || NaturaDebito === null) /* Tributo Manuale */ && (\r\n eliminaTributo(Id, IsDebito, Provenienza_OLD === PROVENIENZA_TRIBUTO.DIRITTO_CAMERALE, annoSelezionato)}\r\n disabled={appParamVisualizzazione}\r\n >\r\n \r\n Elimina\r\n \r\n )}\r\n \r\n \r\n )}\r\n \r\n )}\r\n />\r\n \r\n \r\n setConfirmFunzionalitaMancante(false)}\r\n />\r\n \r\n );\r\n};\r\n\r\nRigaDebitiSoggettoExpanded.propTypes = {\r\n rowData: PropTypes.shape({\r\n Id: PropTypes.number,\r\n IdContribuente: PropTypes.number,\r\n TipoPersona: PropTypes.number,\r\n DescrizioneTributo: PropTypes.string,\r\n DescrizioneSezione: PropTypes.string,\r\n NuovaGestioneIVA: PropTypes.bool,\r\n PartitaIva: PropTypes.string,\r\n CodiceFiscale: PropTypes.string,\r\n CodiceUfficio: PropTypes.string,\r\n IdStudio: PropTypes.number,\r\n Importo: PropTypes.number,\r\n ImportoResiduo: PropTypes.number,\r\n ImportoLimitato: PropTypes.number,\r\n ImportoNonLimitato: PropTypes.number,\r\n DataScadenza: PropTypes.string,\r\n IsRateizzatoOppureGestitaScadenza: PropTypes.bool,\r\n IsDebito: PropTypes.bool,\r\n CodiceTributo: PropTypes.string,\r\n ScadenzaAnnoSuccessivo: PropTypes.bool,\r\n NumeroRate: PropTypes.number,\r\n ImportoResiduoRate: PropTypes.number,\r\n NaturaDebito: PropTypes.number,\r\n IdScadenzaRateizzazione: PropTypes.number,\r\n Annualita: PropTypes.number,\r\n HaPartitaIVA: PropTypes.bool,\r\n Ordinario: PropTypes.bool,\r\n IdCodiceTributo: PropTypes.bool,\r\n Provenienza: PropTypes.string,\r\n ProvenienzaServizio: PropTypes.string,\r\n ProvenienzaAnno: PropTypes.string,\r\n PeriodoRiferimento: PropTypes.string,\r\n IsRavveduto: PropTypes.bool,\r\n IsProrogato: PropTypes.bool,\r\n IsMaggiorato: PropTypes.bool,\r\n IsSocietaDiCapitali180GG: PropTypes.bool,\r\n IsPadre: PropTypes.bool,\r\n IsOriginale: PropTypes.bool,\r\n IsFiglio: PropTypes.bool,\r\n Provenienza_OLD: PropTypes.number,\r\n IdSezione: PropTypes.number,\r\n ProvenienzaNew: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.number,\r\n ]),\r\n ProvenienzaOld: PropTypes.string,\r\n NaturaDebitoDescrizione: PropTypes.string,\r\n ChiusuraForzata: PropTypes.bool,\r\n HaUtilizzi: PropTypes.bool,\r\n isModificabile: PropTypes.bool,\r\n }).isRequired,\r\n additionalRowData: PropTypes.shape({\r\n setModaleGestisciScadenza: PropTypes.func,\r\n setModificaTributo: PropTypes.func,\r\n cercaNelleScadenze: PropTypes.func,\r\n annoSelezionato: PropTypes.number,\r\n }).isRequired,\r\n expanded: PropTypes.bool,\r\n listaProrogatiMaggiorati: PropTypes.arrayOf(PropTypes.shape({})),\r\n apriEliminaRateizzazione: PropTypes.func.isRequired,\r\n apriRipristinaScadenza: PropTypes.func.isRequired,\r\n eliminaTributo: PropTypes.func.isRequired,\r\n listaRateizzazione: PropTypes.arrayOf(PropTypes.shape({})),\r\n utilizzi: PropTypes.arrayOf(PropTypes.shape({})),\r\n ravvedimenti: PropTypes.arrayOf(PropTypes.shape({})),\r\n scadenzeSpostate: PropTypes.arrayOf(PropTypes.shape({})),\r\n apriUtilizzo: PropTypes.func.isRequired,\r\n eseguiChiusuraForzata: PropTypes.func.isRequired,\r\n annullaChiusuraForzata: PropTypes.func.isRequired,\r\n rimuoviCompensazioneManuale: PropTypes.func.isRequired,\r\n dettaglio: PropTypes.shape({}),\r\n recuperaPossibilitaOperazioni: PropTypes.func.isRequired,\r\n};\r\n\r\nRigaDebitiSoggettoExpanded.defaultProps = {\r\n expanded: false,\r\n listaProrogatiMaggiorati: [],\r\n listaRateizzazione: [],\r\n utilizzi: [],\r\n ravvedimenti: [],\r\n scadenzeSpostate: [],\r\n dettaglio: null,\r\n};\r\n\r\nexport default RigaDebitiSoggettoExpanded;\r\n","import { useEffect, useRef } from 'react';\r\nimport MenuHome from 'Home';\r\nimport MenuGeco from 'GeCo';\r\nimport Assistente from 'Assistente';\r\nimport { useSelector } from 'react-redux';\r\nimport { insertAnalytics } from '../analytics';\r\n\r\nconst usePrevious = (value) => {\r\n const ref = useRef();\r\n useEffect(() => {\r\n ref.current = value;\r\n }, [value]);\r\n return ref.current;\r\n};\r\n\r\nexport default usePrevious;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useTableRowContext } from 'framework-ui-components/Components/V2';\r\nimport usePrevious from '../../utils/customHooks/usePrevious';\r\n/**\r\n * Bottone utilizzato per espandere la riga di una tabella.\r\n * Viene tipicamente posizionato nella parte finale della riga.\r\n*/\r\nconst NoButtonExpandRow = ({\r\n className, espandibile, vertical, label, expandedState,\r\n}) => {\r\n const { setExpanded, expanded } = useTableRowContext();\r\n const previousExpandedState = usePrevious(expandedState);\r\n\r\n if ((previousExpandedState === true || previousExpandedState === false)\r\n && expandedState !== previousExpandedState) {\r\n expandedState ? setExpanded(true) : setExpanded(false);\r\n }\r\n\r\n // useEffect(() => {\r\n // const previousExpandedState = usePrevious(expandedState);\r\n\r\n // if (expandedState !== previousExpandedState) {\r\n // expandedState ? setExpanded(false) : setExpanded(true);\r\n // }\r\n // }, [expandedState, setExpanded]);\r\n\r\n return (\r\n setExpanded(!expanded)}\r\n >\r\n {label}\r\n
    \r\n );\r\n};\r\n\r\nNoButtonExpandRow.propTypes = {\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n\r\n /** Presenta i `children` in verticale (Solo per emphasis = LOW). */\r\n vertical: PropTypes.bool,\r\n\r\n /** Label del bottone. */\r\n label: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.number,\r\n PropTypes.node,\r\n ]),\r\n espandibile: PropTypes.bool,\r\n\r\n expandedState: PropTypes.bool,\r\n};\r\n\r\nNoButtonExpandRow.defaultProps = {\r\n className: undefined,\r\n espandibile: false,\r\n expandedState: false,\r\n vertical: false,\r\n label: 'Altre informazioni',\r\n};\r\n\r\nexport default NoButtonExpandRow;\r\n","import { WebRequest } from 'framework-ui-components';\r\n\r\nconst getOttieniAnnualitaConTributiPerScadenza = (\r\n idContribuente,\r\n) => WebRequest.get('Contribuente/Tributi/OttieniAnnualitaConTributiPerScadenza', {\r\n idContribuente,\r\n});\r\n\r\nconst getOttieniScadenzeContribuente = (\r\n idContribuente, annualita,\r\n) => WebRequest.get('Contribuente/Tributi/OttieniScadenzeContribuente', {\r\n idContribuente, annualita,\r\n});\r\n\r\nconst urlOttieniTributiDaGestirePerScadenza = (\r\n idContribuente, annualita, dataScadenza, mostraChiusi,\r\n// eslint-disable-next-line max-len\r\n) => `/Contribuente/Tributi/OttieniTributiDaGestirePerScadenza?idContribuente=${idContribuente}&annualita=${annualita}&dataScadenza=${dataScadenza}&mostraChiusi=${mostraChiusi}`;\r\n\r\nconst getOttieniDebitiDaRavvedere = (\r\n idContribuente, dataScadenza, dataRavvedimento,\r\n) => WebRequest.get('Debiti/GestioneScadenza/OttieniDebitiDaRavvedere', {\r\n idContribuente, dataScadenza, dataRavvedimento,\r\n});\r\n\r\nconst getOttieniRavvedimenti = (\r\n idDebito,\r\n) => WebRequest.get('Debiti/GestioneScadenza/OttieniRavvedimenti', {\r\n idDebito,\r\n});\r\n\r\nconst getOttieniScadenzeSpostate = (\r\n idDebito,\r\n) => WebRequest.get('Debiti/GestioneScadenza/OttieniScadenzeSpostate', {\r\n idDebito,\r\n});\r\n\r\nconst postCreaRavvedimento = (command) => WebRequest.post('Debiti/GestioneScadenza/CreaRavvedimento', command);\r\n\r\nconst postSpostaScadenze = (command) => WebRequest.post('Debiti/GestioneScadenza/SpostaScadenze', command);\r\n\r\nconst postEliminaSpostaScadenza = (command) => WebRequest.post('Debiti/GestioneScadenza/EliminaSpostaScadenza', command);\r\n\r\nconst getOttieniPercentualiSanzioneRavvedimento = (\r\n idContribuente, dataScadenza, dataRavvedimento,\r\n) => WebRequest.get('Debiti/GestioneScadenza/OttieniPercentualiSanzioneRavvedimento', {\r\n idContribuente, dataScadenza, dataRavvedimento,\r\n});\r\n\r\nexport {\r\n getOttieniAnnualitaConTributiPerScadenza,\r\n getOttieniScadenzeContribuente,\r\n urlOttieniTributiDaGestirePerScadenza,\r\n getOttieniDebitiDaRavvedere,\r\n getOttieniRavvedimenti,\r\n getOttieniScadenzeSpostate,\r\n getOttieniPercentualiSanzioneRavvedimento,\r\n postCreaRavvedimento,\r\n postSpostaScadenze,\r\n postEliminaSpostaScadenza,\r\n};\r\n","/* eslint-disable max-len */\r\nimport Icon from 'framework-ui-components/Components/Icons/Icon';\r\nimport React from 'react';\r\n\r\nexport default Icon(\r\n \r\n \r\n \r\n ,\r\n '0 0 24 24',\r\n 'BalanceIcon',\r\n);\r\n","/* eslint-disable max-len */\r\nimport React from 'react';\r\nimport Icon from '../../Icons/Icon';\r\n\r\nexport default Icon(\r\n \r\n \r\n \r\n ,\r\n '0 0 24 24',\r\n 'ImportIcon',\r\n);\r\n","/* eslint-disable camelcase */\r\n/* eslint-disable no-nested-ternary */\r\nimport React, { useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Button, ButtonGroup, DropdownButton, Table,\r\n} from 'framework-ui-components/Components/V2';\r\nimport EditIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/EditIcon';\r\nimport {\r\n Badge, EllipsisText, Formatter, InfoTooltip, PopOver, Tooltip,\r\n} from 'framework-ui-components';\r\nimport { STOP_EVENT_PROPAGATION } from 'framework-ui-components/utils/const';\r\nimport DeleteIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/DeleteIcon';\r\nimport { getYear, JustADate } from 'framework-taskforce/utils/date';\r\nimport BadgeSuccessIcon from 'framework-ui-components/Components/Icons/BadgeSuccessIcon';\r\nimport MoreVertIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/MoreVertIcon';\r\nimport OpenInNewIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/OpenInNewIcon';\r\nimport ImportIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/ImportIcon';\r\nimport { setAppParamsAction } from 'framework-taskforce/actions/appParams';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport V2TableExpandedCell from '../../../../../components/custom/V2TableExpandedCell';\r\nimport { getCurrencyValueNoSymbol } from '../../../../../utils/format';\r\nimport RestoreIcon from '../../../../../components/icons/google/RestoreIcon';\r\nimport BuildIcon from '../../../../../components/icons/google/BuildIcon';\r\nimport V2TableMinimizeButton from '../../../../../components/custom/V2TableMinimizeButton';\r\nimport TemplateGrid from '../../../../../components/TemplateGrid/TemplateGrid';\r\nimport LabelOnly from '../../../../../components/custom/LabelOnly';\r\nimport ModaleAiutaci from '../../../../../components/ModaleAiutaci';\r\nimport LockIcon from '../../../../../components/icons/google/LockIcon';\r\nimport LockOpenIcon from '../../../../../components/icons/google/LockOpenIcon';\r\nimport { PROVENIENZA_TRIBUTO, TIPOLOGIA_TRIBUTO } from '../../../../../models/tributi';\r\nimport CheckboxTitle from '../../../../../components/custom/CheckboxTitle';\r\nimport LabelValueDetail from '../../../../../components/custom/LabelValueDetail';\r\n\r\nconst RigaCreditiSoggettoExpanded = ({\r\n rowData: {\r\n Id,\r\n DescrizioneTributo,\r\n DescrizioneSezione,\r\n NuovaGestioneIVA,\r\n Importo,\r\n ImportoResiduo,\r\n DataScadenza,\r\n IsRateizzatoOppureGestitaScadenza,\r\n IsDebito,\r\n CodiceTributo,\r\n NumeroRate,\r\n PeriodoRiferimento,\r\n IsProrogato,\r\n IsMaggiorato,\r\n IsPadre,\r\n IsOriginale,\r\n HaUtilizzi,\r\n ProvenienzaNew,\r\n ProvenienzaOld,\r\n NaturaDebito,\r\n NaturaDebitoDescrizione,\r\n ChiusuraForzata,\r\n Provenienza_OLD,\r\n IdCodiceTributo,\r\n IdSezione,\r\n isModificabile,\r\n },\r\n additionalRowData: {\r\n setModaleGestisciScadenza,\r\n setModificaTributo,\r\n cercaNelleScadenze,\r\n annoSelezionato,\r\n },\r\n apriEliminaRateizzazione,\r\n apriRipristinaScadenza,\r\n listaRateizzazione,\r\n listaProrogatiMaggiorati,\r\n utilizzi,\r\n dettaglioTributo,\r\n ravvedimenti,\r\n scadenzeSpostate,\r\n apriUtilizzo,\r\n eseguiChiusuraForzata,\r\n annullaChiusuraForzata,\r\n eliminaTributo,\r\n rimuoviCompensazioneManuale,\r\n recuperaPossibilitaOperazioni,\r\n}) => {\r\n const dispatch = useDispatch();\r\n const appParamVisualizzazione = useSelector((store) => !!store.appParams.visualizzazione);\r\n\r\n const [confirmFunzionalitaMancante, setConfirmFunzionalitaMancante] = useState(false);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n Credito\r\n \r\n
    \r\n )}\r\n contentB={(\r\n \r\n {(dettaglioTributo && dettaglioTributo.DataPresentazioneDichiarazione && dettaglioTributo.DataPresentazioneDichiarazione !== null) ? (\r\n \r\n Dichiarazione presentata il \r\n \r\n \r\n )\r\n : (\r\n \r\n Dichiarazione non presentata\r\n \r\n )}\r\n {dettaglioTributo && dettaglioTributo.ImportoLimitato !== null && (\r\n \r\n )}\r\n />\r\n )}\r\n \r\n )}\r\n />\r\n
    \r\n \r\n \r\n \r\n {CodiceTributo}\r\n {DescrizioneTributo && (\r\n
    \r\n 24}>\r\n {DescrizioneTributo}\r\n \r\n
    \r\n )}\r\n \r\n )}\r\n contentB={(
    )}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n {DescrizioneSezione}\r\n \r\n
    \r\n )}\r\n contentB={(
    )}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n {dettaglioTributo && dettaglioTributo.EsoneroISA !== null && ([\r\n Esonero ISA,\r\n
    \r\n \r\n
    ,\r\n ]\r\n )}\r\n {dettaglioTributo && dettaglioTributo.VistoDiConformita !== null && ([\r\n Visto di conformità,\r\n
    \r\n \r\n
    ,\r\n ]\r\n )}\r\n {dettaglioTributo && dettaglioTributo.StartUpInnovativa !== null && ([\r\n Start-up innovativa,\r\n
    \r\n \r\n
    ,\r\n ]\r\n )}\r\n \r\n {dettaglioTributo && dettaglioTributo.CodiceAttoAde !== null && (\r\n \r\n Codice Atto: {dettaglioTributo.CodiceAttoAde}\r\n \r\n )}\r\n
    \r\n )}\r\n />\r\n
    \r\n \r\n \r\n \r\n \r\n {!ProvenienzaNew && (NaturaDebito === null || NaturaDebito === 0) && ProvenienzaOld}\r\n {(NaturaDebito !== null && NaturaDebito !== 0) && ProvenienzaOld}\r\n {ProvenienzaNew && (NaturaDebito === null || NaturaDebito === 0) && ProvenienzaNew}\r\n \r\n
    \r\n {ProvenienzaNew && NaturaDebito !== null && NaturaDebito !== 0 && {ProvenienzaNew}}\r\n \r\n )}\r\n contentB={(
    )}\r\n />\r\n \r\n \r\n \r\n {NumeroRate} rate :
    }\r\n contentB={(\r\n \r\n {ravvedimenti && ravvedimenti.length !== 0 ? (\r\n
    \r\n
    Ravvedimento
    \r\n {ravvedimenti.map((ravvedimento, idx) => (\r\n // eslint-disable-next-line react/no-array-index-key\r\n
    \r\n
    \r\n al\r\n {\r\n dispatch(setAppParamsAction({\r\n annoSelezionato: new Date(ravvedimento.DataRavvedimento).getFullYear(),\r\n }));\r\n cercaNelleScadenze(ravvedimento.DataRavvedimento);\r\n }}\r\n role=\"link\"\r\n tabIndex=\"0\"\r\n onKeyPress={() => {}}\r\n >\r\n \r\n \r\n \r\n
    \r\n importo\r\n €\r\n residuo\r\n €\r\n
    \r\n
    \r\n ))}\r\n
    \r\n )\r\n : (
    )}\r\n {scadenzeSpostate && scadenzeSpostate.length !== 0 ? (\r\n
    \r\n
    Scadenza spostata
    \r\n {scadenzeSpostate.map((scadenza, idx) => (\r\n // eslint-disable-next-line react/no-array-index-key\r\n
    \r\n
    \r\n al\r\n {\r\n dispatch(setAppParamsAction({\r\n annoSelezionato: new Date(scadenza.DataScadenza).getFullYear(),\r\n }));\r\n cercaNelleScadenze(scadenza.DataScadenza);\r\n }}\r\n role=\"link\"\r\n tabIndex=\"0\"\r\n onKeyPress={() => {}}\r\n >\r\n \r\n \r\n \r\n
    \r\n importo\r\n €\r\n residuo\r\n €\r\n
    \r\n
    \r\n ))}\r\n
    \r\n )\r\n : (
    )}\r\n {listaRateizzazione && listaRateizzazione.length !== 0 ? (\r\n listaRateizzazione.map((rata, idx) => (\r\n // eslint-disable-next-line react/no-array-index-key\r\n
    \r\n
    {rata.NumeroRata}° rata
    \r\n
    \r\n il\r\n {\r\n dispatch(setAppParamsAction({\r\n annoSelezionato: new Date(rata.DataScadenza).getFullYear(),\r\n }));\r\n cercaNelleScadenze(rata.DataScadenza);\r\n }}\r\n role=\"link\"\r\n tabIndex=\"0\"\r\n onKeyPress={() => {}}\r\n >\r\n \r\n \r\n \r\n
    \r\n importo\r\n €\r\n interessi\r\n €\r\n
    \r\n
    \r\n )))\r\n : (
    )}\r\n {listaProrogatiMaggiorati && listaProrogatiMaggiorati.length !== 0 ? (\r\n listaProrogatiMaggiorati.map((figlio, idx) => (\r\n // eslint-disable-next-line react/no-array-index-key\r\n
    \r\n
    Nuova scadenza
    \r\n
    \r\n il\r\n {\r\n dispatch(setAppParamsAction({\r\n annoSelezionato: new Date(figlio.DataScadenza).getFullYear(),\r\n }));\r\n cercaNelleScadenze(figlio.DataScadenza);\r\n }}\r\n role=\"link\"\r\n tabIndex=\"0\"\r\n onKeyPress={() => {}}\r\n >\r\n \r\n \r\n \r\n
    \r\n importo\r\n €\r\n residuo\r\n €\r\n
    \r\n
    \r\n )))\r\n : (
    )}\r\n \r\n )}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n )}\r\n contentB={(
    )}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n )}\r\n contentB={(
    )}\r\n />\r\n \r\n \r\n \r\n )}\r\n />\r\n \r\n \r\n \r\n \r\n {utilizzi && utilizzi.length > 0 ? (\r\n \r\n
    Utilizzo
    \r\n {utilizzi.map((utilizzo, idx) => (\r\n utilizzo.IsManuale\r\n ? (\r\n // eslint-disable-next-line react/no-array-index-key\r\n
    \r\n di\r\n € in comp. {utilizzo.CompensazioneManuale.ImportoCompOrizzontale ? 'orizzontale' : 'verticale'}\r\n {!appParamVisualizzazione && (\r\n rimuoviCompensazioneManuale(Id, utilizzo.CompensazioneManuale.Id)}\r\n small\r\n >\r\n \r\n \r\n )}\r\n
    \r\n )\r\n : (\r\n // eslint-disable-next-line react/no-array-index-key\r\n
    \r\n di\r\n €\r\n apriUtilizzo(utilizzo.IdDelega)}\r\n small\r\n >\r\n \r\n Apri delega\r\n \r\n
    \r\n )))}\r\n \r\n ) : (
    )}\r\n
    \r\n ))}\r\n />\r\n
    \r\n \r\n \r\n ) : `${getCurrencyValueNoSymbol(ImportoResiduo, IsFiglio)}`}\r\n contentA={IsPadre\r\n ? (\r\n
    \r\n \r\n
    \r\n ) : `${getCurrencyValueNoSymbol(ImportoResiduo, !IsPadre)}`}\r\n contentB={\r\n (ChiusuraForzata || (dettaglioTributo && dettaglioTributo.CompensatoDaEsportazione)) ? (\r\n \r\n {ChiusuraForzata && (\r\n \r\n \r\n \r\n )}\r\n {dettaglioTributo && dettaglioTributo.CompensatoDaEsportazione && (\r\n \r\n \r\n \r\n )}\r\n \r\n )\r\n : (
    )\r\n }\r\n />\r\n \r\n \r\n \r\n )}\r\n bottomB\r\n rightB\r\n contentB={(\r\n \r\n {IsRateizzatoOppureGestitaScadenza ? (\r\n NumeroRate > 0 ? (\r\n apriEliminaRateizzazione()}\r\n disabled={appParamVisualizzazione}\r\n vertical\r\n >\r\n \r\n Ripristina\r\n \r\n\r\n ) : (\r\n apriRipristinaScadenza()}\r\n disabled={appParamVisualizzazione}\r\n vertical\r\n >\r\n \r\n Ripristina\r\n \r\n )\r\n ) : (\r\n IsDebito && ImportoResiduo > 0 && !appParamVisualizzazione && (\r\n setModaleGestisciScadenza(\r\n {\r\n IdTributo: Id,\r\n NuovaGestioneIVA,\r\n CodiceTributo,\r\n aperto: true,\r\n tributo: {\r\n Id,\r\n CodiceTributo,\r\n PeriodoRiferimento,\r\n DataScadenza,\r\n ImportoResiduo,\r\n Importo,\r\n Sezione: DescrizioneSezione,\r\n },\r\n soloCompensazione: true,\r\n gestisciScadenza: true,\r\n IsIva: NuovaGestioneIVA && CodiceTributo === '6099',\r\n },\r\n )\r\n }\r\n vertical\r\n primary\r\n >\r\n \r\n Gestisci\r\n \r\n )\r\n )}\r\n \r\n { ((ImportoResiduo > 0 && !IsRateizzatoOppureGestitaScadenza) || ChiusuraForzata\r\n || (Provenienza_OLD === PROVENIENZA_TRIBUTO.MANUALE && (NaturaDebito === 0 || NaturaDebito === null))) && !appParamVisualizzazione\r\n && (\r\n recuperaPossibilitaOperazioni()}\r\n >\r\n \r\n Altre azioni\r\n \r\n {isModificabile\r\n && (\r\n setModificaTributo(\r\n IsDebito ? TIPOLOGIA_TRIBUTO.DEBITO : TIPOLOGIA_TRIBUTO.CREDITO,\r\n {\r\n Id,\r\n Importo,\r\n DataScadenza,\r\n IdCodiceTributo,\r\n CodiceTributo,\r\n DescrizioneTributo,\r\n TributoDescrizioneComposta: `${CodiceTributo} - ${DescrizioneTributo}`,\r\n IdSezione,\r\n PeriodoRiferimento,\r\n },\r\n )}\r\n disabled={appParamVisualizzazione}\r\n >\r\n \r\n Modifica\r\n \r\n )}\r\n { (ImportoResiduo > 0 && !IsRateizzatoOppureGestitaScadenza && !ChiusuraForzata) && (\r\n eseguiChiusuraForzata(Id, IsDebito)}\r\n >\r\n \r\n Chiusura forzata\r\n \r\n )}\r\n { ChiusuraForzata && (\r\n annullaChiusuraForzata(Id, IsDebito)}\r\n >\r\n \r\n Annulla chiusura forzata\r\n \r\n ) }\r\n {Provenienza_OLD === PROVENIENZA_TRIBUTO.MANUALE && (NaturaDebito === 0 || NaturaDebito === null) /* Tributo Manuale */ && (\r\n eliminaTributo(Id, IsDebito, Provenienza_OLD === PROVENIENZA_TRIBUTO.DIRITTO_CAMERALE, annoSelezionato)}\r\n disabled={appParamVisualizzazione}\r\n >\r\n \r\n Elimina\r\n \r\n )}\r\n \r\n \r\n )}\r\n \r\n )}\r\n />\r\n \r\n \r\n setConfirmFunzionalitaMancante(false)}\r\n />\r\n \r\n );\r\n};\r\n\r\nRigaCreditiSoggettoExpanded.propTypes = {\r\n rowData: PropTypes.shape({\r\n Id: PropTypes.number,\r\n IdContribuente: PropTypes.number,\r\n TipoPersona: PropTypes.number,\r\n DescrizioneTributo: PropTypes.string,\r\n DescrizioneSezione: PropTypes.string,\r\n NuovaGestioneIVA: PropTypes.bool,\r\n PartitaIva: PropTypes.string,\r\n CodiceFiscale: PropTypes.string,\r\n CodiceUfficio: PropTypes.string,\r\n IdStudio: PropTypes.number,\r\n Importo: PropTypes.number,\r\n ImportoResiduo: PropTypes.number,\r\n ImportoLimitato: PropTypes.number,\r\n ImportoNonLimitato: PropTypes.number,\r\n DataScadenza: PropTypes.string,\r\n IsRateizzatoOppureGestitaScadenza: PropTypes.bool,\r\n IsDebito: PropTypes.bool,\r\n CodiceTributo: PropTypes.string,\r\n ScadenzaAnnoSuccessivo: PropTypes.bool,\r\n NumeroRate: PropTypes.number,\r\n ImportoResiduoRate: PropTypes.number,\r\n NaturaDebito: PropTypes.number,\r\n IdScadenzaRateizzazione: PropTypes.number,\r\n Annualita: PropTypes.number,\r\n HaPartitaIVA: PropTypes.bool,\r\n Ordinario: PropTypes.bool,\r\n IdCodiceTributo: PropTypes.bool,\r\n Provenienza: PropTypes.string,\r\n ProvenienzaServizio: PropTypes.string,\r\n ProvenienzaAnno: PropTypes.string,\r\n PeriodoRiferimento: PropTypes.string,\r\n IsRavveduto: PropTypes.bool,\r\n IsProrogato: PropTypes.bool,\r\n IsMaggiorato: PropTypes.bool,\r\n IsSocietaDiCapitali180GG: PropTypes.bool,\r\n IsPadre: PropTypes.bool,\r\n IsFiglio: PropTypes.bool,\r\n Provenienza_OLD: PropTypes.number,\r\n NaturaDebitoDescrizione: PropTypes.string,\r\n ChiusuraForzata: PropTypes.bool,\r\n ProvenienzaNew: PropTypes.string,\r\n ProvenienzaOld: PropTypes.string,\r\n IsOriginale: PropTypes.bool,\r\n HaUtilizzi: PropTypes.bool,\r\n IdSezione: PropTypes.number,\r\n isModificabile: PropTypes.bool,\r\n }).isRequired,\r\n additionalRowData: PropTypes.shape({\r\n searchTerm: PropTypes.string,\r\n refreshTabella: PropTypes.func,\r\n setSuccessoGestione: PropTypes.func,\r\n setShowOperazioneAsincrona: PropTypes.func,\r\n setModaleGestisciScadenza: PropTypes.func,\r\n setModificaTributo: PropTypes.func,\r\n cercaNelleScadenze: PropTypes.func,\r\n annoSelezionato: PropTypes.number,\r\n }).isRequired,\r\n ProvenienzaNew: PropTypes.string.isRequired,\r\n ProvenienzaOld: PropTypes.string.isRequired,\r\n listaProrogatiMaggiorati: PropTypes.arrayOf(PropTypes.shape({})),\r\n utilizzi: PropTypes.arrayOf(PropTypes.shape({})),\r\n dettaglioTributo: PropTypes.arrayOf(PropTypes.shape({\r\n EsoneroISA: PropTypes.bool,\r\n ImportoLimitato: PropTypes.number,\r\n DataPresentazioneDichiarazione: PropTypes.number,\r\n VistoDiConformita: PropTypes.bool,\r\n StartUpInnovativa: PropTypes.bool,\r\n CodiceAttoAde: PropTypes.string,\r\n CompensatoDaEsportazione: PropTypes.bool,\r\n })),\r\n apriEliminaRateizzazione: PropTypes.func.isRequired,\r\n apriRipristinaScadenza: PropTypes.func.isRequired,\r\n apriUtilizzo: PropTypes.func.isRequired,\r\n eseguiChiusuraForzata: PropTypes.func.isRequired,\r\n annullaChiusuraForzata: PropTypes.func.isRequired,\r\n eliminaTributo: PropTypes.func.isRequired,\r\n scadenzeSpostate: PropTypes.arrayOf(PropTypes.shape({})),\r\n ravvedimenti: PropTypes.arrayOf(PropTypes.shape({})),\r\n listaRateizzazione: PropTypes.arrayOf(PropTypes.shape({})),\r\n rimuoviCompensazioneManuale: PropTypes.func.isRequired,\r\n recuperaPossibilitaOperazioni: PropTypes.func.isRequired,\r\n};\r\n\r\nRigaCreditiSoggettoExpanded.defaultProps = {\r\n listaProrogatiMaggiorati: null,\r\n utilizzi: null,\r\n dettaglioTributo: null,\r\n scadenzeSpostate: null,\r\n ravvedimenti: null,\r\n listaRateizzazione: null,\r\n};\r\n\r\nexport default RigaCreditiSoggettoExpanded;\r\n","/* eslint-disable camelcase */\r\n/* eslint-disable no-nested-ternary */\r\nimport React, { useCallback, useState } from 'react';\r\nimport {\r\n Badge,\r\n EllipsisText,\r\n InfoTooltip,\r\n PopOver,\r\n} from 'framework-ui-components';\r\nimport { useSelector } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport { useHistory } from 'react-router';\r\nimport {\r\n Button, ButtonGroup, DropdownButton, Table, useTableRowContext,\r\n} from 'framework-ui-components/Components/V2';\r\nimport { getYear, JustADate } from 'framework-taskforce/utils/date';\r\nimport { logApiError } from 'framework-taskforce/utils/log';\r\nimport { STOP_EVENT_PROPAGATION } from 'framework-ui-components/utils/const';\r\nimport DeleteIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/DeleteIcon';\r\nimport MoreVertIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/MoreVertIcon';\r\nimport BadgeSuccessIcon from 'framework-ui-components/Components/Icons/BadgeSuccessIcon';\r\nimport { getSegnalazioneError } from 'framework-taskforce/models/segnalazioni';\r\nimport EditIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/EditIcon';\r\nimport {\r\n TIPOLOGIA_TRIBUTO,\r\n PROVENIENZA_TRIBUTO,\r\n TIPOLOGIA_SEZIONE,\r\n} from '../../../../../models/tributi';\r\nimport {\r\n getUtilizziDebito,\r\n getUtilizziCredito,\r\n postEliminaCompensazioneManualeCredito,\r\n getOttieniInfoDettaglioCredito,\r\n getIsCreditoModificabile,\r\n getIsDebitoModificabile,\r\n} from '../../../../../apis/tributi';\r\nimport { getCurrencyValueNoSymbol } from '../../../../../utils/format';\r\nimport { delegaSoggettoUrl } from '../../../../../models/urls';\r\n\r\nimport BuildIcon from '../../../../../components/icons/google/BuildIcon';\r\nimport {\r\n getOttieniDebitiDaRateizzazione, getOttieniDebitoConNuovaScadenza, getOttieniInformazioniScadenza, postEliminaRateizzazioneDebito, postResettaScadenzaDebito,\r\n} from '../../../../../apis/debitiGestioneScadenza';\r\nimport RestoreIcon from '../../../../../components/icons/google/RestoreIcon';\r\nimport RigaDebitiSoggettoExpanded from './RigaDebitiSoggettoExpanded';\r\nimport NoButtonExpandRow from '../../../../../components/custom/NoButtonExpandRow';\r\nimport { getOttieniRavvedimenti, getOttieniScadenzeSpostate } from '../../../../../apis/tributiPerScadenza';\r\nimport LockIcon from '../../../../../components/icons/google/LockIcon';\r\nimport LockOpenIcon from '../../../../../components/icons/google/LockOpenIcon';\r\nimport ModaleAiutaci from '../../../../../components/ModaleAiutaci';\r\nimport BalanceIcon from '../../../../../components/icons/google/BalanceIcon';\r\nimport RigaCreditiSoggettoExpanded from './RigaCreditiSoggettoExpanded';\r\n\r\nconst RigaTributiSoggetto = ({\r\n item: {\r\n Id,\r\n DescrizioneTributo,\r\n DescrizioneSezione,\r\n NuovaGestioneIVA,\r\n Importo,\r\n ImportoResiduo,\r\n IsPadre,\r\n IsFiglio,\r\n DataScadenza,\r\n IsRateizzatoOppureGestitaScadenza,\r\n IsDebito,\r\n CodiceTributo,\r\n NumeroRate,\r\n Provenienza,\r\n PeriodoRiferimento,\r\n IsRavveduto,\r\n IsScadenzaSpostata,\r\n IsProrogato,\r\n IsMaggiorato,\r\n IsOriginale,\r\n IsSocietaDiCapitali180GG,\r\n NaturaDebitoDescrizione,\r\n ProvenienzaNew,\r\n ProvenienzaOld,\r\n NaturaDebito,\r\n Provenienza_OLD,\r\n ChiusuraForzata,\r\n IdSezione,\r\n HaUtilizzi,\r\n IdCodiceTributo,\r\n },\r\n additionalRowData: {\r\n searchTerm,\r\n refreshTabella,\r\n setSuccessoGestione,\r\n setShowOperazioneAsincrona,\r\n setModaleGestisciScadenza,\r\n setSegnalazioni,\r\n setTitoloFeedbackModal,\r\n cercaNelleScadenze,\r\n eseguiChiusuraForzata,\r\n annullaChiusuraForzata,\r\n eliminaTributo,\r\n annoSelezionato,\r\n setShowModaleCompensazioneManuale,\r\n setModificaTributo,\r\n },\r\n fromScadenzario,\r\n}) => {\r\n const history = useHistory();\r\n\r\n const { expanded } = useTableRowContext();\r\n\r\n const idContribuente = useSelector((store) => store.soggetto.idContribuente);\r\n const appParamVisualizzazione = useSelector((store) => !!store.appParams.visualizzazione);\r\n const codiceUfficioOperatore = useSelector((store) => store.appParams.codiceUfficioOperatore);\r\n\r\n const [ripristinaScadenza, setRipristinaScadenza] = useState(false);\r\n const [eliminaRateizzazione, setEliminaRateizzazione] = useState(false);\r\n const [listaRateizzazione, setListaRateizzazione] = useState(null);\r\n const [listaProrogatiMaggiorati, setListaProrogatiMaggiorati] = useState(null);\r\n const [utilizzi, setUtilizzi] = useState(null);\r\n const [dettaglioTributo, setDettaglioTributo] = useState(null);\r\n const [ravvedimenti, setRavvedimenti] = useState(null);\r\n const [scadenzeSpostate, setScadenzeSpostate] = useState(null);\r\n const [confirmFunzionalitaMancante, setConfirmFunzionalitaMancante] = useState(false);\r\n const [apiChiamate, setApiChiamate] = useState(false);\r\n const [isModificabile, setIsModificabile] = useState(false);\r\n\r\n const apriUtilizzo = useCallback((idDelega) => {\r\n history.push(delegaSoggettoUrl(idDelega, appParamVisualizzazione, codiceUfficioOperatore, false, fromScadenzario));\r\n }, [history, appParamVisualizzazione, codiceUfficioOperatore, fromScadenzario]);\r\n\r\n const apriRavvedimenti = useCallback((id) => {\r\n if (!ravvedimenti && IsRavveduto) {\r\n getOttieniRavvedimenti(id)\r\n .then((response) => {\r\n if (response.Success) {\r\n setRavvedimenti(response.Result);\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n });\r\n }\r\n }, [IsRavveduto, ravvedimenti]);\r\n\r\n const apriScadenzeSpostate = useCallback((id) => {\r\n if (!scadenzeSpostate && IsScadenzaSpostata) {\r\n getOttieniScadenzeSpostate(id)\r\n .then((response) => {\r\n if (response.Success) {\r\n setScadenzeSpostate(response.Result);\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n });\r\n }\r\n }, [IsScadenzaSpostata, scadenzeSpostate]);\r\n\r\n const apriUtilizzi = useCallback((id, isDebito) => {\r\n const funcUtilizzi = isDebito ? getUtilizziDebito : getUtilizziCredito;\r\n if (!utilizzi) {\r\n funcUtilizzi(id)\r\n .then((response) => {\r\n if (response.Success) {\r\n setUtilizzi(response.Result);\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n });\r\n }\r\n }, [utilizzi]);\r\n\r\n const apriDettaglioTributo = useCallback((id, isDebito, idSezione) => {\r\n const getDettaglio = isDebito ? TIPOLOGIA_SEZIONE.getDettaglioTributoBySezione(idSezione, true) : getOttieniInfoDettaglioCredito;\r\n if (!dettaglioTributo) {\r\n getDettaglio(id)\r\n .then((response) => {\r\n if (response.Success) {\r\n setDettaglioTributo(response.Result);\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n });\r\n }\r\n }, [dettaglioTributo]);\r\n\r\n const ottieniInformazioniScadenza = () => {\r\n if (IsDebito) {\r\n getOttieniInformazioniScadenza(Id)\r\n .then((response) => {\r\n if (response.Success) {\r\n setRipristinaScadenza(response.Result.RipristinaScadenza);\r\n setEliminaRateizzazione(response.Result.EliminaRateizzazione);\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n });\r\n }\r\n };\r\n\r\n const apriRipristinaScadenza = () => {\r\n postResettaScadenzaDebito({ IdDebito: Id, idContribuente })\r\n .then((response) => {\r\n if (response.Success) {\r\n refreshTabella();\r\n } else {\r\n setTitoloFeedbackModal('Ripristino non riuscito');\r\n setSegnalazioni(response.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n });\r\n };\r\n\r\n const apriEliminaRateizzazione = () => {\r\n postEliminaRateizzazioneDebito({ IdDebitoRateizzato: Id, idContribuente })\r\n .then((response) => {\r\n if (response.Success) {\r\n refreshTabella();\r\n } else {\r\n setTitoloFeedbackModal('Elimina rateizzazione non riuscito');\r\n setSegnalazioni(response.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n });\r\n };\r\n\r\n const rimuoviCompensazioneManuale = (idCredito, idCompensazioneManuale) => {\r\n postEliminaCompensazioneManualeCredito({ idContribuente, idCredito, idCompensazioneManuale })\r\n .then((response) => {\r\n if (response.Success) {\r\n refreshTabella();\r\n } else {\r\n setTitoloFeedbackModal('Elimina compensazione manuale non riuscito');\r\n setSegnalazioni(response.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n });\r\n };\r\n\r\n const rowProps = {\r\n listaAzioni: [],\r\n rowData: {\r\n Id,\r\n DescrizioneTributo,\r\n DescrizioneSezione,\r\n NuovaGestioneIVA,\r\n Importo,\r\n ImportoResiduo,\r\n DataScadenza,\r\n IsRateizzatoOppureGestitaScadenza,\r\n IsDebito,\r\n CodiceTributo,\r\n NumeroRate,\r\n Provenienza,\r\n PeriodoRiferimento,\r\n IsProrogato,\r\n IsMaggiorato,\r\n IsOriginale,\r\n IsSocietaDiCapitali180GG,\r\n IsPadre,\r\n IsFiglio,\r\n NaturaDebitoDescrizione,\r\n ProvenienzaNew,\r\n ProvenienzaOld,\r\n NaturaDebito,\r\n Provenienza_OLD,\r\n ChiusuraForzata,\r\n IdSezione,\r\n HaUtilizzi,\r\n IdCodiceTributo,\r\n isModificabile,\r\n },\r\n additionalRowData: {\r\n searchTerm,\r\n refreshTabella,\r\n setSuccessoGestione,\r\n setShowOperazioneAsincrona,\r\n setModaleGestisciScadenza,\r\n setSegnalazioni,\r\n setTitoloFeedbackModal,\r\n cercaNelleScadenze,\r\n annoSelezionato,\r\n setModificaTributo,\r\n },\r\n };\r\n\r\n const recuperaRigheDettaglioRate = useCallback(\r\n (idDebito) => {\r\n if (NumeroRate > 0 && !listaRateizzazione) {\r\n getOttieniDebitiDaRateizzazione(idDebito)\r\n .then((resRisultato) => {\r\n if (resRisultato.Success) {\r\n setListaRateizzazione(resRisultato.Result);\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n });\r\n }\r\n },\r\n [NumeroRate, listaRateizzazione],\r\n );\r\n\r\n const recuperaFigliProrogatiMaggiorati = useCallback(\r\n (idDebito) => {\r\n if ((!NumeroRate || NumeroRate === 0) && (IsMaggiorato || IsProrogato) && !listaProrogatiMaggiorati) {\r\n getOttieniDebitoConNuovaScadenza(idDebito)\r\n .then((resRisultato) => {\r\n if (resRisultato.Success) {\r\n setListaProrogatiMaggiorati(resRisultato.Result); // @todo ne possono arrivare + di 1\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n });\r\n }\r\n },\r\n [IsMaggiorato, IsProrogato, NumeroRate, listaProrogatiMaggiorati],\r\n );\r\n\r\n const recuperaPossibilitaOperazioni = useCallback(\r\n () => {\r\n (IsDebito\r\n ? getIsDebitoModificabile : getIsCreditoModificabile\r\n )(Id)\r\n .then((res) => {\r\n if (res.Success) {\r\n setIsModificabile(res.Result.IsModificabile);\r\n // if (!res.Result.IsModificabile) {}\r\n } else {\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n });\r\n },\r\n [Id, IsDebito, setSegnalazioni],\r\n );\r\n\r\n const onRenderRigaEspansa = useCallback(\r\n () => {\r\n if (!apiChiamate) {\r\n setApiChiamate(true);\r\n recuperaRigheDettaglioRate(Id);\r\n recuperaFigliProrogatiMaggiorati(Id);\r\n apriRavvedimenti(Id);\r\n apriScadenzeSpostate(Id);\r\n apriUtilizzi(Id, IsDebito);\r\n apriDettaglioTributo(Id, IsDebito, IdSezione);\r\n }\r\n },\r\n [\r\n apiChiamate,\r\n Id,\r\n IdSezione,\r\n IsDebito,\r\n apriDettaglioTributo,\r\n apriRavvedimenti,\r\n apriScadenzeSpostate,\r\n apriUtilizzi,\r\n recuperaFigliProrogatiMaggiorati,\r\n recuperaRigheDettaglioRate],\r\n );\r\n\r\n return (\r\n \r\n {}}\r\n renderExpanded={\r\n () => {\r\n onRenderRigaEspansa();\r\n\r\n if (IsDebito) {\r\n return (\r\n \r\n );\r\n }\r\n return (\r\n \r\n );\r\n }\r\n }\r\n >\r\n \r\n \r\n Debito\r\n \r\n ) : (\r\n \r\n Credito\r\n \r\n )\r\n }\r\n />\r\n \r\n \r\n  
    )}\r\n />\r\n
    \r\n \r\n \r\n {CodiceTributo}\r\n {DescrizioneTributo && (\r\n
    \r\n 24}>\r\n {DescrizioneTributo}\r\n \r\n
    \r\n )}\r\n \r\n )}\r\n />\r\n
    \r\n \r\n  
    )}\r\n />\r\n
    \r\n \r\n \r\n \r\n {DescrizioneSezione}\r\n \r\n
    \r\n )}\r\n />\r\n
    \r\n \r\n  
    )}\r\n />\r\n
    \r\n \r\n \r\n \r\n \r\n  
    )}\r\n />\r\n \r\n \r\n \r\n \r\n {!ProvenienzaNew && (NaturaDebito === null || NaturaDebito === 0) && ProvenienzaOld}\r\n {(NaturaDebito !== null && NaturaDebito !== 0) && ProvenienzaOld}\r\n {ProvenienzaNew && (NaturaDebito === null || NaturaDebito === 0) && ProvenienzaNew}\r\n \r\n
    \r\n {ProvenienzaNew && NaturaDebito !== null && NaturaDebito !== 0 && {ProvenienzaNew}}\r\n \r\n )}\r\n />\r\n
    \r\n \r\n  
    )}\r\n />\r\n \r\n \r\n {NumeroRate} rate :
     
    )}\r\n expandedState={expanded}\r\n />\r\n
    \r\n \r\n  
    )}\r\n />\r\n \r\n \r\n \r\n \r\n
    \r\n ) :
     
    )}\r\n />\r\n \r\n \r\n  
    )}\r\n />\r\n \r\n \r\n \r\n \r\n
    \r\n ) :
     
    )}\r\n />\r\n \r\n \r\n  
    )}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n  
    )}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n  
    )}\r\n />\r\n \r\n \r\n \r\n
    \r\n
    \r\n ) : `${getCurrencyValueNoSymbol(ImportoResiduo, !IsPadre)}`}\r\n />\r\n
    \r\n \r\n  
    )}\r\n />\r\n \r\n \r\n \r\n {IsRateizzatoOppureGestitaScadenza ? (\r\n NumeroRate > 0 ? (\r\n apriEliminaRateizzazione()}\r\n vertical\r\n >\r\n \r\n Ripristina\r\n \r\n\r\n ) : (\r\n apriRipristinaScadenza()}\r\n vertical\r\n >\r\n \r\n Ripristina\r\n \r\n )\r\n ) : (\r\n IsDebito && ImportoResiduo > 0 && !appParamVisualizzazione && (\r\n setModaleGestisciScadenza(\r\n {\r\n IdTributo: Id,\r\n NuovaGestioneIVA,\r\n CodiceTributo,\r\n aperto: true,\r\n tributo: {\r\n Id,\r\n CodiceTributo,\r\n PeriodoRiferimento,\r\n DataScadenza,\r\n ImportoResiduo,\r\n Importo,\r\n Sezione: DescrizioneSezione,\r\n },\r\n soloCompensazione: true,\r\n gestisciScadenza: true,\r\n IsIva: NuovaGestioneIVA && CodiceTributo === '6099',\r\n },\r\n )\r\n }\r\n vertical\r\n primary\r\n >\r\n \r\n Gestisci\r\n \r\n )\r\n )}\r\n {(IsRateizzatoOppureGestitaScadenza || (ImportoResiduo !== Importo) || IsRavveduto || IsScadenzaSpostata) && (\r\n \r\n )}\r\n {\r\n ((ImportoResiduo > 0 && !IsRateizzatoOppureGestitaScadenza) || ChiusuraForzata\r\n || (Provenienza_OLD === PROVENIENZA_TRIBUTO.MANUALE && (NaturaDebito === 0 || NaturaDebito === null)))\r\n && (\r\n recuperaPossibilitaOperazioni()}\r\n vertical\r\n left\r\n >\r\n \r\n Altre azioni\r\n \r\n {isModificabile\r\n && (\r\n setModificaTributo(\r\n IsDebito ? TIPOLOGIA_TRIBUTO.DEBITO : TIPOLOGIA_TRIBUTO.CREDITO,\r\n {\r\n Id,\r\n Importo,\r\n DataScadenza,\r\n IdCodiceTributo,\r\n CodiceTributo,\r\n DescrizioneTributo,\r\n TributoDescrizioneComposta: `${CodiceTributo} - ${DescrizioneTributo}`,\r\n IdSezione,\r\n PeriodoRiferimento,\r\n },\r\n )}\r\n disabled={appParamVisualizzazione}\r\n >\r\n \r\n Modifica\r\n \r\n )}\r\n {ImportoResiduo > 0 && !IsRateizzatoOppureGestitaScadenza && !ChiusuraForzata\r\n ? (\r\n eseguiChiusuraForzata(Id, IsDebito)}\r\n disabled={appParamVisualizzazione}\r\n >\r\n \r\n Chiusura forzata\r\n \r\n )\r\n : ChiusuraForzata ? (\r\n annullaChiusuraForzata(Id, IsDebito)}\r\n disabled={appParamVisualizzazione}\r\n >\r\n \r\n Annulla chiusura forzata\r\n \r\n ) : ''}\r\n {!IsDebito && ImportoResiduo > 0 && !ChiusuraForzata && (\r\n setShowModaleCompensazioneManuale(\r\n {\r\n show: true,\r\n credito: {\r\n Id, CodiceTributo, PeriodoRiferimento, ImportoResiduo, IdContribuente: idContribuente,\r\n },\r\n },\r\n )}\r\n disabled={appParamVisualizzazione}\r\n >\r\n \r\n Compensazione manuale\r\n \r\n )}\r\n {(Provenienza_OLD === PROVENIENZA_TRIBUTO.MANUALE || Provenienza_OLD === PROVENIENZA_TRIBUTO.DIRITTO_CAMERALE)\r\n && (NaturaDebito === 0 || NaturaDebito === null)\r\n && /* Tributo Manuale */ (\r\n eliminaTributo(Id, IsDebito, Provenienza_OLD === PROVENIENZA_TRIBUTO.DIRITTO_CAMERALE, annoSelezionato)}\r\n disabled={appParamVisualizzazione}\r\n >\r\n \r\n Elimina\r\n \r\n )}\r\n \r\n \r\n )\r\n }\r\n \r\n \r\n \r\n \r\n ottieniInformazioniScadenza()}\r\n >\r\n \r\n \r\n {ripristinaScadenza && (\r\n apriRipristinaScadenza()}\r\n disabled={appParamVisualizzazione}\r\n >\r\n \r\n Ripristina\r\n \r\n )}\r\n {eliminaRateizzazione && (\r\n apriEliminaRateizzazione()}\r\n disabled={appParamVisualizzazione}\r\n >\r\n \r\n Ripristina\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n setConfirmFunzionalitaMancante(false)}\r\n />\r\n \r\n );\r\n};\r\n\r\nRigaTributiSoggetto.defaultProps = {\r\n fromScadenzario: false,\r\n};\r\n\r\nRigaTributiSoggetto.propTypes = {\r\n item: PropTypes.shape({\r\n Id: PropTypes.number,\r\n IdContribuente: PropTypes.number,\r\n TipoPersona: PropTypes.number,\r\n DescrizioneTributo: PropTypes.string,\r\n DescrizioneSezione: PropTypes.string,\r\n NuovaGestioneIVA: PropTypes.bool,\r\n PartitaIva: PropTypes.string,\r\n CodiceFiscale: PropTypes.string,\r\n CodiceUfficio: PropTypes.string,\r\n IdStudio: PropTypes.number,\r\n Importo: PropTypes.number,\r\n ImportoResiduo: PropTypes.number,\r\n ImportoLimitato: PropTypes.number,\r\n ImportoNonLimitato: PropTypes.number,\r\n DataScadenza: PropTypes.string,\r\n IsRateizzatoOppureGestitaScadenza: PropTypes.bool,\r\n IsDebito: PropTypes.bool,\r\n CodiceTributo: PropTypes.string,\r\n ScadenzaAnnoSuccessivo: PropTypes.bool,\r\n NumeroRate: PropTypes.number,\r\n ImportoResiduoRate: PropTypes.number,\r\n NaturaDebito: PropTypes.number,\r\n NaturaDebitoDescrizione: PropTypes.string,\r\n IdScadenzaRateizzazione: PropTypes.number,\r\n Annualita: PropTypes.number,\r\n HaPartitaIVA: PropTypes.bool,\r\n Ordinario: PropTypes.bool,\r\n IdCodiceTributo: PropTypes.number,\r\n Provenienza: PropTypes.string,\r\n ProvenienzaServizio: PropTypes.string,\r\n ProvenienzaAnno: PropTypes.string,\r\n PeriodoRiferimento: PropTypes.string,\r\n IsRavveduto: PropTypes.bool,\r\n IsProrogato: PropTypes.bool,\r\n IsMaggiorato: PropTypes.bool,\r\n IsOriginale: PropTypes.bool,\r\n IsSocietaDiCapitali180GG: PropTypes.bool,\r\n IsPadre: PropTypes.bool,\r\n IsFiglio: PropTypes.bool,\r\n IsScadenzaSpostata: PropTypes.bool,\r\n ProvenienzaNew: PropTypes.string,\r\n ProvenienzaOld: PropTypes.string,\r\n Provenienza_OLD: PropTypes.number,\r\n ChiusuraForzata: PropTypes.bool,\r\n IdSezione: PropTypes.number,\r\n HaUtilizzi: PropTypes.bool,\r\n }).isRequired,\r\n additionalRowData: PropTypes.shape({\r\n searchTerm: PropTypes.string,\r\n refreshTabella: PropTypes.func,\r\n setSuccessoGestione: PropTypes.func,\r\n setShowOperazioneAsincrona: PropTypes.func,\r\n setModaleGestisciScadenza: PropTypes.func,\r\n setSegnalazioni: PropTypes.func,\r\n setTitoloFeedbackModal: PropTypes.func,\r\n cercaNelleScadenze: PropTypes.func,\r\n eseguiChiusuraForzata: PropTypes.func,\r\n annullaChiusuraForzata: PropTypes.func,\r\n eliminaTributo: PropTypes.func,\r\n annoSelezionato: PropTypes.number,\r\n setShowModaleCompensazioneManuale: PropTypes.func,\r\n apriModificaTributo: PropTypes.func,\r\n setModificaTributo: PropTypes.func,\r\n }).isRequired,\r\n fromScadenzario: PropTypes.bool,\r\n};\r\n\r\nexport default RigaTributiSoggetto;\r\n","/* eslint-disable max-len */\r\nimport Icon from 'framework-ui-components/Components/Icons/Icon';\r\nimport React from 'react';\r\n\r\nexport default Icon(\r\n \r\n \r\n \r\n \r\n \r\n \r\n ,\r\n '0 0 20 20',\r\n 'BalanceDownIcon',\r\n);\r\n","/* eslint-disable max-len */\r\nimport Icon from 'framework-ui-components/Components/Icons/Icon';\r\nimport React from 'react';\r\n\r\nexport default Icon(\r\n \r\n \r\n \r\n \r\n \r\n \r\n ,\r\n '0 0 20 20',\r\n 'BalanceDownIcon',\r\n);\r\n","/* eslint-disable max-len */\r\nimport Icon from 'framework-ui-components/Components/Icons/Icon';\r\nimport React from 'react';\r\n\r\nexport default Icon(\r\n \r\n \r\n \r\n \r\n \r\n \r\n ,\r\n '0 0 20 20',\r\n 'BalanceRightIcon',\r\n);\r\n","/* eslint-disable max-len */\r\nimport Icon from 'framework-ui-components/Components/Icons/Icon';\r\nimport React from 'react';\r\n\r\nexport default Icon(\r\n \r\n \r\n \r\n \r\n \r\n \r\n ,\r\n '0 0 20 20',\r\n 'BalanceRightIcon',\r\n);\r\n","/* eslint-disable max-len */\r\nimport Icon from 'framework-ui-components/Components/Icons/Icon';\r\nimport React from 'react';\r\n\r\nexport default Icon(\r\n \r\n \r\n \r\n ,\r\n '0 0 24 24',\r\n 'DateRangeIcon',\r\n);\r\n","import React, {\r\n useCallback, useEffect, useMemo, useRef, useState,\r\n} from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { useParams } from 'react-router';\r\nimport { setAppParamsAction } from 'framework-taskforce/actions/appParams';\r\nimport { MiniPanel } from 'framework-ui-components/Components/V2';\r\nimport PropTypes from 'prop-types';\r\n// ATTENZIONE IL CUSTOM DELLA PIASTRELLE BASATO SU BUTTONV1\r\nimport { Button } from 'framework-ui-components';\r\nimport BalanceDownIcon from '../../components/icons/custom/BalanceDownIcon';\r\nimport BalanceDownGreyIcon from '../../components/icons/custom/BalanceDownGreyIcon';\r\nimport BalanceRightIcon from '../../components/icons/custom/BalanceRightIcon';\r\nimport BalanceRightGreyIcon from '../../components/icons/custom/BalanceRightGreyIcon';\r\nimport DateRangeIcon from '../../components/icons/google/DateRangeIcon';\r\nimport TemplateGrid from '../../components/TemplateGrid/TemplateGrid';\r\nimport { STEP_SCELTA_GESTIONE_TRIBUTO } from '../../models/tributi';\r\n\r\nconst SceltaGestione = ({\r\n isCompensabileVerticalmente,\r\n isCompensabileOrizzontalmente,\r\n loading,\r\n setSceltaGestione,\r\n isGestisciScadenzaAttivo,\r\n creditiPerVerticale,\r\n creditiPerOrizzontale,\r\n gestionePossibile,\r\n}) => {\r\n const isInvioTelematicoAttivo = useSelector((store) => store.appParams.isInvioTelematicoAttivo);\r\n const intermediariStudio = useSelector((store) => store.intermediari);\r\n const [showFeedbackNoIntermediari, setShowFeedbackNoIntermediari] = useState(false);\r\n return (\r\n \r\n setSceltaGestione(STEP_SCELTA_GESTIONE_TRIBUTO.COMPENSA_VERTICALMENTE)}\r\n running={loading}\r\n disabled={!isCompensabileVerticalmente}\r\n >\r\n {isCompensabileVerticalmente ? (\r\n
    \r\n \r\n
    \r\n ) : (\r\n
    \r\n \r\n
    \r\n )}\r\n
    \r\n
    \r\n COMPENSA\r\n
    \r\n VERTICALMENTE\r\n
    \r\n \r\n setSceltaGestione(STEP_SCELTA_GESTIONE_TRIBUTO.COMPENSA_ORIZZONTALMENTE)}\r\n running={loading}\r\n disabled={!isCompensabileOrizzontalmente}\r\n >\r\n {isCompensabileOrizzontalmente ? (\r\n
    \r\n \r\n
    \r\n ) : (\r\n
    \r\n \r\n
    \r\n )}\r\n
    \r\n
    \r\n COMPENSA\r\n
    \r\n ORIZZONTALMENTE\r\n
    \r\n \r\n setSceltaGestione(STEP_SCELTA_GESTIONE_TRIBUTO.GESTISCI_SCADENZA)}\r\n running={loading}\r\n disabled={!isGestisciScadenzaAttivo || !gestionePossibile}\r\n >\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n GESTISCI\r\n
    \r\n LA SCADENZA\r\n
    \r\n \r\n {isCompensabileVerticalmente\r\n ? (\r\n Puoi utilizzare {creditiPerVerticale ? creditiPerVerticale.length || 0 : 0}\r\n
    \r\n {creditiPerVerticale && creditiPerVerticale.length === 1 ? 'credito' : 'crediti'}\r\n
    \r\n )}\r\n type=\"info\"\r\n />\r\n ) : (\r\n Non puoi utilizzare\r\n
    \r\n alcun credito\r\n
    \r\n )}\r\n type=\"info\"\r\n />\r\n )}\r\n {isCompensabileOrizzontalmente\r\n ? (\r\n \r\n Puoi utilizzare {creditiPerOrizzontale ? creditiPerOrizzontale.length || 0 : 0}\r\n
    \r\n {creditiPerOrizzontale && creditiPerOrizzontale.length === 1 ? 'credito' : 'crediti'}\r\n
    \r\n )}\r\n type=\"info\"\r\n />\r\n ) : (\r\n Non puoi utilizzare\r\n
    \r\n alcun credito\r\n
    \r\n )}\r\n type=\"info\"\r\n />\r\n )}\r\n
    \r\n \r\n );\r\n};\r\nSceltaGestione.defaultProps = {\r\n creditiPerVerticale: [],\r\n creditiPerOrizzontale: [],\r\n};\r\nSceltaGestione.propTypes = {\r\n isCompensabileVerticalmente: PropTypes.bool.isRequired,\r\n isCompensabileOrizzontalmente: PropTypes.bool.isRequired,\r\n loading: PropTypes.bool.isRequired,\r\n setSceltaGestione: PropTypes.func.isRequired,\r\n isGestisciScadenzaAttivo: PropTypes.bool.isRequired,\r\n creditiPerVerticale: PropTypes.arrayOf(PropTypes.shape({})),\r\n creditiPerOrizzontale: PropTypes.arrayOf(PropTypes.shape({})),\r\n};\r\nexport default SceltaGestione;\r\n","import React, { useCallback, useEffect, useRef } from 'react';\r\nimport {\r\n Heading, Radio, Form, Panel, DatePicker, Validation, Checkbox, Select, InfoTooltip, Spinner,\r\n} from 'framework-ui-components';\r\nimport PropTypes from 'prop-types';\r\nimport TemplateGrid from '../../components/TemplateGrid/TemplateGrid';\r\nimport CheckboxTitle from '../../components/custom/CheckboxTitle';\r\n\r\nconst GestisciScadenzaDebitoIvaFields = ({\r\n isScadenzaIva,\r\n azioniPossibili,\r\n scadenzeIva,\r\n pianoRateizzazione,\r\n pianoRateizzazioneNonPossibile,\r\n currentState,\r\n loadingPianoRateizzazione,\r\n}) => {\r\n const getRate = () => {\r\n const content = [];\r\n for (let index = pianoRateizzazione.NumeroMinimoRate; index <= pianoRateizzazione.NumeroMassimoRate; index++) {\r\n content.push({`${index} Rate`});\r\n }\r\n return content;\r\n };\r\n\r\n return (\r\n
    \r\n Seleziona tra:\r\n \r\n
    \r\n \r\n
    \r\n \r\n { pianoRateizzazione && pianoRateizzazioneNonPossibile !== true && (\r\n \r\n {[\r\n
    \r\n \r\n
    ,\r\n currentState.rateizza && (\r\n
    \r\n {loadingPianoRateizzazione ? (\r\n \r\n ) : (\r\n \r\n )}\r\n
    \r\n ),\r\n ]}\r\n \r\n ) }\r\n
    \r\n );\r\n};\r\nGestisciScadenzaDebitoIvaFields.defaultProps = {\r\n};\r\n\r\nGestisciScadenzaDebitoIvaFields.propTypes = {\r\n azioniPossibili: PropTypes.arrayOf(PropTypes.object).isRequired,\r\n isScadenzaIva: PropTypes.bool.isRequired,\r\n scadenzeIva: PropTypes.arrayOf(PropTypes.object).isRequired,\r\n pianoRateizzazioneNonPossibile: PropTypes.bool.isRequired,\r\n pianoRateizzazione: PropTypes.isRequired,\r\n currentState: PropTypes.isRequired,\r\n loadingPianoRateizzazione: PropTypes.bool.isRequired,\r\n};\r\n\r\nexport default GestisciScadenzaDebitoIvaFields;\r\n","import React, { useCallback, useEffect, useRef } from 'react';\r\nimport {\r\n Heading, Radio, Form, Panel, DatePicker, Validation, Checkbox, Select, InfoTooltip, Formatter,\r\n} from 'framework-ui-components';\r\nimport PropTypes from 'prop-types';\r\nimport { Table } from 'framework-ui-components/Components/V2';\r\nimport TemplateGrid from '../../components/TemplateGrid/TemplateGrid';\r\nimport CheckboxTitle from '../../components/custom/CheckboxTitle';\r\n\r\nconst AnteprimaRateizzazione = ({\r\n listaRateizzazione,\r\n}) => (\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {listaRateizzazione && listaRateizzazione.length !== 0 ? (\r\n listaRateizzazione.map((rata, idx) => (\r\n // eslint-disable-next-line react/no-array-index-key\r\n \r\n \r\n {rata.NumeroRata}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )))\r\n : (\r\n \r\n \r\n -\r\n \r\n \r\n \r\n -\r\n \r\n \r\n \r\n -\r\n \r\n \r\n \r\n -\r\n \r\n \r\n \r\n ) }\r\n \r\n \r\n \r\n
    \r\n);\r\nAnteprimaRateizzazione.defaultProps = {\r\n};\r\n\r\nAnteprimaRateizzazione.propTypes = {\r\n azioniPossibili: PropTypes.arrayOf(PropTypes.object).isRequired,\r\n isScadenzaIva: PropTypes.bool.isRequired,\r\n scadenzeIva: PropTypes.arrayOf(PropTypes.object).isRequired,\r\n pianoRateizzazioneNonPossibile: PropTypes.bool.isRequired,\r\n pianoRateizzazione: PropTypes.bool.isRequired,\r\n currentState: PropTypes.bool.isRequired,\r\n listaRateizzazione: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\r\n};\r\n\r\nexport default AnteprimaRateizzazione;\r\n","import React, { useCallback, useEffect, useRef } from 'react';\r\nimport {\r\n Heading, Radio, Form, Panel, DatePicker, Validation, Checkbox, Select, InfoTooltip, Formatter,\r\n} from 'framework-ui-components';\r\nimport PropTypes from 'prop-types';\r\nimport { Button, MiniPanel, Table } from 'framework-ui-components/Components/V2';\r\nimport TemplateGrid from '../../components/TemplateGrid/TemplateGrid';\r\nimport CheckboxTitle from '../../components/custom/CheckboxTitle';\r\nimport LabelOnly from '../../components/custom/LabelOnly';\r\n\r\nconst CreditiCompatibiliCompensazione = ({\r\n listaCrediti, verticale, orizzontale,\r\n}) => (\r\n
    \r\n Crediti compatibili\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {listaCrediti && listaCrediti.length !== 0 ? (\r\n listaCrediti.map((credito, idx) => (\r\n // eslint-disable-next-line react/no-array-index-key\r\n \r\n \r\n {credito.Codice}\r\n \r\n \r\n \r\n {credito.AnnoRiferimento}\r\n \r\n \r\n \r\n {credito.Provenienza}\r\n \r\n \r\n \r\n \r\n \r\n \r\n )))\r\n : (\r\n \r\n \r\n -\r\n \r\n \r\n \r\n -\r\n \r\n \r\n \r\n -\r\n \r\n \r\n \r\n -\r\n \r\n \r\n \r\n ) }\r\n \r\n \r\n \r\n \r\n
    \r\n);\r\nCreditiCompatibiliCompensazione.defaultProps = {\r\n verticale: false,\r\n orizzontale: false,\r\n};\r\n\r\nCreditiCompatibiliCompensazione.propTypes = {\r\n listaCrediti: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\r\n verticale: PropTypes.bool,\r\n orizzontale: PropTypes.bool,\r\n};\r\n\r\nexport default CreditiCompatibiliCompensazione;\r\n","import React, {\r\n useState, useRef, useEffect, useCallback,\r\n} from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Badge, Form, Formatter, Grid, Heading, Spinner, Stepper,\r\n} from 'framework-ui-components';\r\nimport { Button, FeedbackPanel, Modal } from 'framework-ui-components/Components/V2';\r\nimport { useSelector } from 'react-redux';\r\nimport { logApiError } from 'framework-taskforce/utils/log';\r\nimport { getSegnalazioneError } from 'framework-taskforce/models/segnalazioni';\r\nimport { isEmptyObject } from 'framework-taskforce/utils/object';\r\nimport {\r\n getOttieniScadenzeIva,\r\n getOttieniPianoRateizzazioneIva,\r\n postGestisciScadenzaNuovaGestioneIVA,\r\n postRateizzaDebito,\r\n postEliminaRateizzazioneDebito,\r\n postResettaScadenzaDebito,\r\n getOttieniDebitoConNuovaScadenza,\r\n getOttieniDebitiDaRateizzazione,\r\n getOttieniInformazioniPerCompensazione,\r\n postAvviaCompensazioneVerticale,\r\n postAvviaCompensazioneOrizzontale,\r\n} from '../../apis/debitiGestioneScadenza';\r\nimport { STEP_SCELTA_GESTIONE_TRIBUTO, TIPOLOGIA_SEZIONE } from '../../models/tributi';\r\nimport LabelValueDetail from '../../components/custom/LabelValueDetail';\r\nimport LabelOnly from '../../components/custom/LabelOnly';\r\nimport SceltaGestione from './SceltaGestione';\r\nimport GestisciScadenzaDebitoIvaFields from './GestisciScadenzaDebitoIvaFields';\r\nimport AnteprimaRateizzazione from './AnteprimaRateizzazione';\r\nimport CreditiCompatibiliCompensazione from './CreditiCompatibiliCompensazione';\r\n\r\nconst STEP = {\r\n COMPENSAZIONE: 1,\r\n SELEZIONE_SCADENZA: 2,\r\n RATEIZZA: 3,\r\n RISULTATO: 4,\r\n};\r\n\r\nconst ModaleGestisciScadenzaDebitoIva = ({\r\n onClose, show, IdDebito, IdSezione,\r\n soloCompensazione,\r\n tributo,\r\n isGestisciScadenzaAttivo,\r\n defaultStepGestisci,\r\n}) => {\r\n const idContribuente = useSelector((store) => store.soggetto.idContribuente);\r\n\r\n const [currentStep, setCurrentStep] = useState(STEP.COMPENSAZIONE);\r\n const [loading, setLoading] = useState(false);\r\n\r\n const [isCompensabileVerticalmente, setIsCompensabileVerticalmente] = useState(false);\r\n const [isCompensabileOrizzontalmente, setIsCompensabileOrizzontalmente] = useState(false);\r\n const [successCompensazione, setSuccessCompensazione] = useState(false);\r\n const [loadingInfoCompensazione, setLoadingInfoCompensazione] = useState(false);\r\n const [isDebitoCompensatoInteramente, setIsDebitoCompensatoInteramente] = useState(false);\r\n\r\n const [pianoRateizzazione, setPianoRateizzazione] = useState(null);\r\n const [pianoRateizzazioneNonPossibile, setPianoRateizzazioneNonPossibile] = useState(false);\r\n\r\n const [scadenzeIva, setScadenzeIva] = useState([]);\r\n const [formData, setFormData] = useState({ });\r\n\r\n const [successOperazione, setSuccessOperazione] = useState(false);\r\n\r\n const [nuovoTributo, setNuovoTributo] = useState(null);\r\n const [listaRateizzazione, setListaRateizzazione] = useState([]);\r\n const [segnalazioni, setSegnalazioni] = useState([]);\r\n const [sceltaGestione, setSceltaGestione] = useState(defaultStepGestisci || STEP_SCELTA_GESTIONE_TRIBUTO.SELEZIONE_GESTIONE);\r\n const [loadingPianoRateizzazione, setLoadingPianoRateizzazione] = useState(false);\r\n const [creditiPerOrizzontale, setCreditiPerOrizzontale] = useState(null);\r\n const [creditiPerVerticale, setCreditiPerVerticale] = useState(null);\r\n const [creditiDisponibili, setCreditiDisponibili] = useState(null);\r\n const [gestionePossibile, setGestionePossibile] = useState(true);\r\n\r\n const getStepState = useCallback(\r\n (index) => {\r\n if (index === currentStep) {\r\n return Stepper.State.ACTIVE;\r\n }\r\n if (index < currentStep) {\r\n return Stepper.State.DONE;\r\n }\r\n return Stepper.State.TODO;\r\n },\r\n [currentStep],\r\n );\r\n\r\n const gestisciScadenza = () => {\r\n setLoading(true);\r\n let payload = {\r\n idContribuente,\r\n IdDebito,\r\n ...formData,\r\n };\r\n if (!formData.rateizza) {\r\n postGestisciScadenzaNuovaGestioneIVA(payload)\r\n .then((res) => {\r\n if (res.Success) {\r\n getOttieniDebitoConNuovaScadenza(IdDebito)\r\n .then((resRisultato) => {\r\n if (resRisultato.Success) {\r\n setSuccessOperazione(true);\r\n setNuovoTributo(resRisultato.Result); // @todo ne possono arrivare + di 1\r\n setSceltaGestione(STEP_SCELTA_GESTIONE_TRIBUTO.ANTEPRIMA_SCADENZA);\r\n } else {\r\n setSegnalazioni(\r\n resRisultato.DetectedProblems.map((err) => getSegnalazioneError(err)),\r\n );\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n onClose(false);\r\n setLoading(false);\r\n });\r\n } else {\r\n setLoading(false);\r\n setSuccessOperazione(false);\r\n // setCurrentStep(STEP.RISULTATO);\r\n // setErroreOperazione(res.DetectedProblems[0] || 'Errore durante lo spostamento della scadenza');\r\n setSegnalazioni(\r\n res.DetectedProblems.map((err) => getSegnalazioneError(err)),\r\n );\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n onClose(false);\r\n setLoading(false);\r\n });\r\n } else {\r\n payload = {\r\n IdScadenzaRateizzazione: pianoRateizzazione.IdScadenzaRateizzazione,\r\n ...payload,\r\n };\r\n postRateizzaDebito(payload)\r\n .then((res) => {\r\n if (res.Success) {\r\n getOttieniDebitiDaRateizzazione(IdDebito)\r\n .then((resRisultato) => {\r\n if (resRisultato.Success) {\r\n setSuccessOperazione(true);\r\n setListaRateizzazione(resRisultato.Result);\r\n setSceltaGestione(STEP_SCELTA_GESTIONE_TRIBUTO.ANTEPRIMA_RATEAZIONE);\r\n } else {\r\n setSegnalazioni(\r\n resRisultato.DetectedProblems.map((err) => getSegnalazioneError(err)),\r\n );\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n onClose(false);\r\n setLoading(false);\r\n });\r\n } else {\r\n setLoading(false);\r\n setSuccessOperazione(false);\r\n // setCurrentStep(STEP.RISULTATO);\r\n // setErroreOperazione(res.DetectedProblems[0] || 'Errore durante lo spostamento della scadenza');\r\n setSegnalazioni(\r\n res.DetectedProblems.map((err) => getSegnalazioneError(err)),\r\n );\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n onClose(false);\r\n setLoading(false);\r\n });\r\n }\r\n };\r\n\r\n // useEffect(() => {\r\n // if (show) {\r\n // if (currentStep === STEP.RISULTATO) {\r\n // document\r\n // .querySelector('.v2-modal__content')\r\n // .classList.remove('secondo-step');\r\n // document\r\n // .querySelector('.v2-modal__content')\r\n // .classList.toggle('secondo-step');\r\n // } else {\r\n // document\r\n // .querySelector('.v2-modal__content')\r\n // .classList.remove('secondo-step');\r\n // }\r\n // }\r\n // }, [currentStep, show]);\r\n\r\n const resetDati = useCallback(() => {\r\n setSegnalazioni([]);\r\n setLoading(false);\r\n setSceltaGestione(STEP_SCELTA_GESTIONE_TRIBUTO.SELEZIONE_GESTIONE);\r\n setFormData({\r\n idScadenzaRateizzazione: 0,\r\n rateizza: false,\r\n });\r\n setCreditiPerVerticale(null);\r\n setCreditiPerOrizzontale(null);\r\n setCreditiDisponibili(null);\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (!show) {\r\n // reset data on close\r\n resetDati();\r\n }\r\n }, [resetDati, show]);\r\n\r\n const aggiornaAzioni = () => {\r\n getOttieniScadenzeIva(IdDebito)\r\n .then((response) => {\r\n if (response.Success && response.Result != null) {\r\n setScadenzeIva(response.Result);\r\n setGestionePossibile(response.Result && response.Result.length > 0);\r\n } else {\r\n // alert(JSON.stringify(response));\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n });\r\n };\r\n\r\n const aggiornaInfoPerCompensazione = useCallback(() => {\r\n getOttieniInformazioniPerCompensazione(IdDebito)\r\n .then((response) => {\r\n if (response.Success && response.Result !== null) {\r\n setIsCompensabileOrizzontalmente(\r\n response.Result.IsCompensabileOrizzontale\r\n && response.Result.CreditiPerOrizzontale.length > 0,\r\n );\r\n setIsCompensabileVerticalmente(\r\n response.Result.IsCompensabileVerticale\r\n && response.Result.CreditiPerVerticale.length > 0,\r\n );\r\n\r\n response.Result.IsCompensabileOrizzontale\r\n && setCreditiPerOrizzontale(response.Result.CreditiPerOrizzontale);\r\n response.Result.IsCompensabileVerticale\r\n && setCreditiPerVerticale(response.Result.CreditiPerVerticale);\r\n setCreditiDisponibili(response.Result.Crediti);\r\n // setAzioniPossibili(response.Result);\r\n } else {\r\n // alert(JSON.stringify(response));\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n });\r\n }, [IdDebito]);\r\n\r\n useEffect(() => {\r\n if (show && !creditiDisponibili && !creditiPerVerticale && !creditiPerOrizzontale) {\r\n aggiornaInfoPerCompensazione();\r\n }\r\n }, [aggiornaInfoPerCompensazione, creditiDisponibili, creditiPerOrizzontale, creditiPerVerticale, show]);\r\n\r\n useEffect(() => {\r\n if (IdDebito && formData.idScadenzaRateizzazione) {\r\n // console.log(formData);\r\n getOttieniPianoRateizzazioneIva(\r\n IdDebito,\r\n formData.idScadenzaRateizzazione,\r\n ).then((response) => {\r\n if (response.Success && response.Result != null) {\r\n setPianoRateizzazioneNonPossibile(false);\r\n setPianoRateizzazione(response.Result);\r\n } else {\r\n setPianoRateizzazioneNonPossibile(true);\r\n setFormData({\r\n ...formData,\r\n ...{\r\n rateizza: false,\r\n numeroRate: 0,\r\n },\r\n });\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n });\r\n } else {\r\n setPianoRateizzazione(null);\r\n setPianoRateizzazioneNonPossibile(false);\r\n }\r\n }, [IdDebito, formData.idScadenzaRateizzazione]);\r\n\r\n useEffect(() => {\r\n if (show && IdDebito) {\r\n aggiornaAzioni();\r\n }\r\n }, [IdDebito, show]);\r\n\r\n // useEffect(() => {\r\n // if (show) {\r\n // aggiornaAzioni();\r\n // }\r\n // }, [resetDati, show]);\r\n\r\n const presetForm = useCallback(({ FormErrors, ...datoModificato }) => {\r\n if (!formData || isEmptyObject(datoModificato)) return;\r\n const newStato = { ...formData, ...datoModificato };\r\n\r\n setFormData(newStato);\r\n }, [formData]);\r\n\r\n const formRef = useRef();\r\n\r\n const elementoTributo = (\r\n \r\n Debito\r\n {tributo.CodiceTributo}\r\n del\r\n {tributo.PeriodoRiferimento}\r\n scade il\r\n \r\n importo residuo\r\n {sceltaGestione === STEP_SCELTA_GESTIONE_TRIBUTO.COMPENSA_VERTICALMENTE\r\n || sceltaGestione === STEP_SCELTA_GESTIONE_TRIBUTO.COMPENSA_ORIZZONTALMENTE\r\n ? (\r\n \r\n €\r\n \r\n ) : (\r\n \r\n €\r\n \r\n )}\r\n
    \r\n )}\r\n />\r\n );\r\n\r\n const elementoNuovoTributo = (\r\n nuovoTributo && nuovoTributo.length > 0 ? (\r\n
    \r\n \r\n {nuovoTributo.map((t) => (\r\n \r\n Debito\r\n {t.CodiceTributo}\r\n del\r\n {t.AnnoRiferimento}\r\n scade il\r\n \r\n importo residuo\r\n {t.ImportoResiduo !== tributo.ImportoResiduo ? (\r\n \r\n €\r\n \r\n ) : (\r\n
    \r\n €\r\n
    \r\n )}\r\n
    \r\n )}\r\n />\r\n ))}\r\n
    \r\n ) : (
    )\r\n );\r\n\r\n const indietroEliminaRateizzazione = () => {\r\n setLoading(true);\r\n postEliminaRateizzazioneDebito({ IdDebitoRateizzato: IdDebito, idContribuente })\r\n .then((response) => {\r\n if (response.Success) {\r\n setFormData({});\r\n setSceltaGestione(STEP_SCELTA_GESTIONE_TRIBUTO.GESTISCI_SCADENZA);\r\n setListaRateizzazione([]);\r\n }\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n });\r\n };\r\n\r\n const indietroRipristinaScadenza = () => {\r\n postResettaScadenzaDebito({ IdDebito, idContribuente })\r\n .then((response) => {\r\n if (response.Success) {\r\n setFormData({});\r\n setSceltaGestione(STEP_SCELTA_GESTIONE_TRIBUTO.GESTISCI_SCADENZA);\r\n setNuovoTributo(null);\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n });\r\n };\r\n\r\n const eseguiCompensazioneVerticale = () => {\r\n setLoading(true);\r\n postAvviaCompensazioneVerticale(IdDebito)\r\n .then((response) => {\r\n if (response.Success) {\r\n // setAzioniPossibili(response.Result);\r\n } else {\r\n // alert(JSON.stringify(response));\r\n setLoading(false);\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n };\r\n\r\n const eseguiCompensazioneOrizzontale = () => {\r\n setLoading(true);\r\n postAvviaCompensazioneOrizzontale(IdDebito)\r\n .then((response) => {\r\n if (response.Success) {\r\n // setAzioniPossibili(response.Result);\r\n } else {\r\n // alert(JSON.stringify(response));\r\n setLoading(false);\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n };\r\n\r\n return (\r\n onClose(successOperazione) : null}\r\n initialPos={{ x: 'auto', y: window.innerHeight * 0.1 }}\r\n >\r\n \r\n {sceltaGestione === STEP_SCELTA_GESTIONE_TRIBUTO.SELEZIONE_GESTIONE && 'Gestisci il tributo'}\r\n {(sceltaGestione === STEP_SCELTA_GESTIONE_TRIBUTO.GESTISCI_SCADENZA\r\n || sceltaGestione === STEP_SCELTA_GESTIONE_TRIBUTO.ANTEPRIMA_SCADENZA\r\n || sceltaGestione === STEP_SCELTA_GESTIONE_TRIBUTO.ANTEPRIMA_RATEAZIONE) && 'Gestisci la scadenza'}\r\n {sceltaGestione === STEP_SCELTA_GESTIONE_TRIBUTO.COMPENSA_VERTICALMENTE && 'Compensazione verticale'}\r\n {sceltaGestione === STEP_SCELTA_GESTIONE_TRIBUTO.COMPENSA_ORIZZONTALMENTE && 'Compensazione orizzontale'}\r\n \r\n \r\n {loading\r\n ? \r\n : (\r\n \r\n {segnalazioni.length > 0\r\n ? (\r\n \r\n
      \r\n {segnalazioni.map((segnalazione, idx) => (\r\n {segnalazione.msg}\r\n \r\n ))}\r\n
    \r\n
    \r\n )}\r\n type=\"alarm\"\r\n />\r\n )\r\n : (\r\n \r\n \r\n \r\n {elementoTributo}\r\n \r\n \r\n \r\n \r\n \r\n {sceltaGestione === STEP_SCELTA_GESTIONE_TRIBUTO.SELEZIONE_GESTIONE && (\r\n \r\n )}\r\n {sceltaGestione === STEP_SCELTA_GESTIONE_TRIBUTO.GESTISCI_SCADENZA && (\r\n \r\n )}\r\n {sceltaGestione === STEP_SCELTA_GESTIONE_TRIBUTO.ANTEPRIMA_SCADENZA && elementoNuovoTributo}\r\n {sceltaGestione === STEP_SCELTA_GESTIONE_TRIBUTO.ANTEPRIMA_RATEAZIONE && (\r\n \r\n )}\r\n {sceltaGestione === STEP_SCELTA_GESTIONE_TRIBUTO.COMPENSA_VERTICALMENTE && (\r\n \r\n )}\r\n {sceltaGestione === STEP_SCELTA_GESTIONE_TRIBUTO.COMPENSA_ORIZZONTALMENTE && (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n )}\r\n \r\n \r\n {currentStep === STEP.COMPENSAZIONE && !soloCompensazione && (\r\n setCurrentStep(STEP.SELEZIONE_SCADENZA)}\r\n tabindex=\"-1\"\r\n emphasis={Button.Emphasis.HIGH}\r\n primary={!isCompensabileVerticalmente && !isCompensabileOrizzontalmente}\r\n disabled={/* isDebitoCompensatoInteramente || */ loadingInfoCompensazione}\r\n >\r\n PROSEGUI\r\n \r\n )}\r\n {segnalazioni.length === 0 ? (\r\n \r\n {sceltaGestione === STEP_SCELTA_GESTIONE_TRIBUTO.GESTISCI_SCADENZA && !loading && (\r\n
    \r\n {\r\n defaultStepGestisci ? onClose(false)\r\n : setSceltaGestione(STEP_SCELTA_GESTIONE_TRIBUTO.SELEZIONE_GESTIONE); setFormData({});\r\n }}\r\n emphasis={Button.Emphasis.HIGH}\r\n >\r\n INDIETRO\r\n \r\n \r\n APPLICA\r\n \r\n
    \r\n )}\r\n {sceltaGestione === STEP_SCELTA_GESTIONE_TRIBUTO.ANTEPRIMA_SCADENZA && (\r\n
    \r\n indietroRipristinaScadenza()}\r\n emphasis={Button.Emphasis.HIGH}\r\n >\r\n INDIETRO\r\n \r\n onClose(true)}\r\n emphasis={Button.Emphasis.HIGH}\r\n primary\r\n tabindex=\"0\"\r\n >\r\n CONCLUDI\r\n \r\n
    \r\n )}\r\n {sceltaGestione === STEP_SCELTA_GESTIONE_TRIBUTO.ANTEPRIMA_RATEAZIONE && (\r\n
    \r\n indietroEliminaRateizzazione()}\r\n emphasis={Button.Emphasis.HIGH}\r\n >\r\n INDIETRO\r\n \r\n onClose(true)}\r\n emphasis={Button.Emphasis.HIGH}\r\n primary\r\n tabindex=\"0\"\r\n >\r\n CONCLUDI\r\n \r\n
    \r\n )}\r\n {(sceltaGestione === STEP_SCELTA_GESTIONE_TRIBUTO.COMPENSA_VERTICALMENTE\r\n || sceltaGestione === STEP_SCELTA_GESTIONE_TRIBUTO.COMPENSA_ORIZZONTALMENTE) && !loading\r\n && (\r\n
    \r\n {\r\n defaultStepGestisci ? onClose(false)\r\n : setSceltaGestione(STEP_SCELTA_GESTIONE_TRIBUTO.SELEZIONE_GESTIONE); setFormData({});\r\n }}\r\n emphasis={Button.Emphasis.HIGH}\r\n >\r\n INDIETRO\r\n \r\n eseguiCompensazioneVerticale()\r\n : () => eseguiCompensazioneOrizzontale()}\r\n emphasis={Button.Emphasis.HIGH}\r\n primary\r\n loading={loading}\r\n tabindex=\"0\"\r\n >\r\n COMPENSA\r\n \r\n
    \r\n )}\r\n
    \r\n ) : (\r\n setSegnalazioni([])}\r\n emphasis={Button.Emphasis.HIGH}\r\n primary\r\n loading={loading}\r\n >\r\n RIPROVA\r\n \r\n )}\r\n {currentStep === STEP.RISULTATO\r\n && !loading && (\r\n
    \r\n {!successOperazione && (\r\n setCurrentStep(STEP.SELEZIONE_SCADENZA)}\r\n emphasis={Button.Emphasis.HIGH}\r\n >\r\n INDIETRO\r\n \r\n )}\r\n onClose(successOperazione)}\r\n emphasis={Button.Emphasis.HIGH}\r\n primary\r\n >\r\n TORNA ALLA LISTA DEI TRIBUTI\r\n \r\n
    \r\n )}\r\n
    \r\n \r\n );\r\n};\r\n\r\nModaleGestisciScadenzaDebitoIva.defaultProps = {\r\n soloCompensazione: false,\r\n isGestisciScadenzaAttivo: false,\r\n defaultStepGestisci: STEP_SCELTA_GESTIONE_TRIBUTO.SELEZIONE_GESTIONE,\r\n};\r\n\r\nModaleGestisciScadenzaDebitoIva.propTypes = {\r\n onClose: PropTypes.func.isRequired,\r\n show: PropTypes.bool.isRequired,\r\n IdDebito: PropTypes.number.isRequired,\r\n IdSezione: PropTypes.number.isRequired,\r\n tributo: PropTypes.shape({\r\n IdTributo: PropTypes.number.isRequired,\r\n CodiceTributo: PropTypes.string.isRequired,\r\n PeriodoRiferimento: PropTypes.string.isRequired,\r\n DataScadenza: PropTypes.string.isRequired,\r\n ImportoResiduo: PropTypes.number.isRequired,\r\n }).isRequired,\r\n soloCompensazione: PropTypes.bool,\r\n isGestisciScadenzaAttivo: PropTypes.bool,\r\n defaultStepGestisci: PropTypes.number,\r\n};\r\n\r\nexport default ModaleGestisciScadenzaDebitoIva;\r\n","import React, {\r\n useState, useEffect, useCallback, useRef,\r\n} from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Badge,\r\n DatePicker,\r\n Form, Formatter, Input, Radio, Validation,\r\n} from 'framework-ui-components';\r\nimport {\r\n Layout,\r\n Modal, ButtonGroup, Button, FeedbackPanel,\r\n} from 'framework-ui-components/Components/V2';\r\nimport Log, { logApiError } from 'framework-taskforce/utils/log';\r\nimport { getSegnalazioneError } from 'framework-taskforce/models/segnalazioni';\r\nimport { isEmptyObject } from 'framework-taskforce/utils/object';\r\nimport AddIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/AddIcon';\r\nimport { postEffettuaCompensazioneManualeCredito } from '../../../../../apis/tributi';\r\nimport { TIPO_AZIENDA } from '../../../../../models/anagrafica';\r\nimport { TIPO_COMPENSAZIONE } from '../../../../../models/tributi';\r\nimport LabelValueDetail from '../../../../../components/custom/LabelValueDetail';\r\nimport LabelOnly from '../../../../../components/custom/LabelOnly';\r\n\r\nconst ModaleCompensazioneManuale = ({\r\n onClose,\r\n show,\r\n credito,\r\n}) => {\r\n const [loading, setLoading] = useState(false);\r\n const [segnalazioni, setSegnalazioni] = useState([]);\r\n const [formData, setFormData] = useState({ TipoCompensazione: TIPO_COMPENSAZIONE.ORIZZONTALE });\r\n const [isFormValid, setIsFormValid] = useState(false);\r\n const [completato, setCompletato] = useState(false);\r\n const [aggiungiNotaFacoltativa, setAggiungiNotaFacoltativa] = useState(false);\r\n\r\n const formRef = useRef();\r\n\r\n const presetForm = useCallback(({ FormErrors, ...datoModificato }) => {\r\n if (!formData || isEmptyObject(datoModificato)) return;\r\n const newStato = { ...formData, ...datoModificato };\r\n\r\n if (datoModificato.TipoAzienda) {\r\n if (datoModificato.TipoAzienda === TIPO_AZIENDA.SOCIETA_SEDE_ESTERO_UNITA_LOCALI_ITALIA_SPECIALE) {\r\n newStato.ConSediSecondarie = true;\r\n } else {\r\n newStato.ConSediSecondarie = false;\r\n newStato.UnitaLocali = null;\r\n }\r\n }\r\n\r\n setFormData(newStato);\r\n }, [formData]);\r\n\r\n const resetDati = useCallback(() => {\r\n setSegnalazioni([]);\r\n setFormData({ TipoCompensazione: TIPO_COMPENSAZIONE.ORIZZONTALE });\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (!show) {\r\n // reset data on close\r\n resetDati();\r\n }\r\n }, [resetDati, show]);\r\n\r\n useEffect(() => {\r\n if (show) {\r\n resetDati();\r\n }\r\n }, [resetDati, show]);\r\n\r\n // useEffect(() => {\r\n // if (formData.AnnoDirittoCamerale && !formData.RiduzioneDaNormativa) {\r\n // getOttieniRiduzioneDaNormativa(formData.AnnoDirittoCamerale)\r\n // .then((res) => {\r\n // if (res.Success) {\r\n // presetForm({ RiduzioneDaNormativa: res.Result });\r\n // } else {\r\n // presetForm({ RiduzioneDaNormativa: null });\r\n // }\r\n // })\r\n // .catch((err) => {\r\n // presetForm({ RiduzioneDaNormativa: null });\r\n // Log.error(err);\r\n // });\r\n // }\r\n // }, [formData, presetForm]);\r\n\r\n const elementoCredito = (\r\n
    \r\n Credito\r\n {credito.CodiceTributo}\r\n del\r\n {credito.PeriodoRiferimento}\r\n importo residuo\r\n \r\n €\r\n \r\n
    \r\n );\r\n\r\n const avviaCompensazioneManuale = useCallback(() => {\r\n setLoading(true);\r\n const oggettoCompensazione = {\r\n IdContribuente: credito.IdContribuente,\r\n IdCredito: credito.Id,\r\n ImportoCompensazione: `${formData.TipoCompensazione}` === `${TIPO_COMPENSAZIONE.ORIZZONTALE}` ? formData.ImportoCompensato : null,\r\n ImportoCompensazioneVerticale: `${formData.TipoCompensazione}` === `${TIPO_COMPENSAZIONE.ORIZZONTALE}` ? null : formData.ImportoCompensato,\r\n DataCompensazione: formData.DataCompensazione,\r\n Note: formData.Note,\r\n\r\n };\r\n postEffettuaCompensazioneManualeCredito(oggettoCompensazione)\r\n .then((response) => {\r\n if (response.Success) {\r\n onClose(true);\r\n } else {\r\n setSegnalazioni(response.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n });\r\n }, [credito, formData, onClose]);\r\n\r\n return (\r\n 0 ? () => onClose(false) : null}\r\n initialPos={{ x: 'auto', y: window.innerHeight * 0.1 }}\r\n >\r\n \r\n Compensazione manuale dei crediti\r\n \r\n \r\n {!loading && segnalazioni.length > 0\r\n ? (\r\n \r\n
      \r\n {segnalazioni.map((segnalazione, idx) => (\r\n {segnalazione.msg}\r\n \r\n ))}\r\n
    \r\n
    \r\n )}\r\n type=\"alarm\"\r\n />\r\n )\r\n : (\r\n setIsFormValid(validity)}\r\n >\r\n \r\n \r\n Utilizza questa funzionalità se hai utilizzato il credito al di fuori delle applicazioni CGN.\r\n
    \r\n Potrai indicare l'importo e il tipo di compensazione con il quale hai utilizzato il credito.\r\n
    \r\n
    \r\n \r\n \r\n \r\n {elementoCredito}\r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n )}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {!aggiungiNotaFacoltativa && (\r\n \r\n setAggiungiNotaFacoltativa(true)}\r\n >\r\n \r\n Aggiungi nota (facoltativo)\r\n \r\n \r\n )}\r\n \r\n \r\n {aggiungiNotaFacoltativa && (\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n {segnalazioni.length > 0 && (\r\n setSegnalazioni([])}\r\n emphasis={Button.Emphasis.HIGH}\r\n primary={segnalazioni.length > 0}\r\n >\r\n RIPROVA\r\n \r\n )}\r\n {segnalazioni.length === 0 && (\r\n avviaCompensazioneManuale()}\r\n emphasis={Button.Emphasis.HIGH}\r\n primary\r\n running={loading}\r\n disabled={!isFormValid}\r\n >\r\n Compensa\r\n \r\n )}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nModaleCompensazioneManuale.propTypes = {\r\n onClose: PropTypes.func.isRequired,\r\n show: PropTypes.bool.isRequired,\r\n credito: PropTypes.shape.isRequired,\r\n};\r\n\r\nexport default ModaleCompensazioneManuale;\r\n","import React, { useMemo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\n\r\nconst Panel = ({\r\n alert, children, error, info, success, className,\r\n}) => {\r\n const classes = useMemo(() => cns(\r\n 'panel', {\r\n 'panel--success': success,\r\n 'panel--error': error,\r\n 'panel--info': info,\r\n 'panel--alert': alert,\r\n },\r\n className,\r\n ), [success, error, info, alert, className]);\r\n\r\n return (\r\n
    \r\n
    \r\n {children}\r\n
    \r\n
    \r\n );\r\n};\r\n\r\nPanel.propTypes = {\r\n /** Indica se mostrare un pannello con lo stile di alert */\r\n alert: PropTypes.bool,\r\n /** Contenuto da renderizzare all'interno del componente */\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node,\r\n ]),\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n /** Indica se mostrare un pannello con lo stile di errore */\r\n error: PropTypes.bool,\r\n /** Indica se mostrare un pannello con lo stile di info */\r\n info: PropTypes.bool,\r\n /** Indica se mostrare un pannello con lo stile di successo */\r\n success: PropTypes.bool,\r\n};\r\n\r\nPanel.defaultProps = {\r\n alert: false,\r\n children: null,\r\n className: '',\r\n error: false,\r\n info: false,\r\n success: false,\r\n};\r\n\r\nexport default Panel;\r\n","import Panel from './Panel';\r\n\r\nexport default Panel;\r\n","import React, { useCallback, useEffect, useRef } from 'react';\r\nimport {\r\n Heading, Radio, Form, Panel, DatePicker, Validation, Checkbox, Select, InfoTooltip, Spinner,\r\n} from 'framework-ui-components';\r\nimport PropTypes from 'prop-types';\r\nimport { DrawAttention } from 'framework-ui-components/Components/V2';\r\nimport InfoIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/InfoIcon';\r\nimport TemplateGrid from '../../components/TemplateGrid/TemplateGrid';\r\nimport CheckboxTitle from '../../components/custom/CheckboxTitle';\r\n\r\nconst GestisciScadenzaFields = ({\r\n azioniPossibili,\r\n pianoRateizzazione,\r\n pianoRateizzazioneNonPossibile,\r\n loadingPianoRateizzazione,\r\n infoPanel,\r\n}) => {\r\n const getRate = () => {\r\n const content = [];\r\n for (let index = pianoRateizzazione.NumeroMinimoRate; index <= pianoRateizzazione.NumeroMassimoRate; index++) {\r\n content.push({`${index} Rate`});\r\n }\r\n return content;\r\n };\r\n\r\n return (\r\n
    \r\n Seleziona tra:\r\n \r\n \r\n {azioniPossibili.map((azione) => azione.Visibile\r\n && (\r\n azione.Chiave !== 'rateizza' && (\r\n
    \r\n \r\n {azione.Descrizione} {azione.Chiave === 'prorogaSenzaInteressi' && (\r\n \r\n Piano ordinario di rateazione, senza interessi e senza maggiorazione. Come previsto dalla Risoluzione 71/E del 01.08.2019\r\n \r\n )}\r\n
    \r\n )}\r\n disabled={azione.Disabilitato}\r\n />\r\n
    \r\n )\r\n ))}\r\n {/* { pianoRateizzazione && pianoRateizzazioneNonPossibile !== true && (\r\n \r\n ) } */}\r\n {pianoRateizzazioneNonPossibile === true && (
    Rateizzazione non possibile
    )}\r\n \r\n \r\n \r\n {azioniPossibili.map((azione) => azione.Visibile\r\n && (\r\n azione.Chiave === 'rateizza' && (\r\n
    \r\n \r\n
    \r\n )\r\n ))}\r\n { pianoRateizzazione && pianoRateizzazioneNonPossibile !== true && (\r\n
    \r\n {loadingPianoRateizzazione ? (\r\n \r\n ) : (\r\n \r\n )}\r\n
    \r\n ) }\r\n {pianoRateizzazioneNonPossibile === true && (
    Rateizzazione non possibile
    )}\r\n \r\n \r\n \r\n {pianoRateizzazione && pianoRateizzazioneNonPossibile !== true && infoPanel !== null && (
    {infoPanel}
    )}\r\n
    \r\n \r\n
    \r\n );\r\n};\r\nGestisciScadenzaFields.defaultProps = {\r\n infoPanel: null,\r\n};\r\n\r\nGestisciScadenzaFields.propTypes = {\r\n azioniPossibili: PropTypes.arrayOf(PropTypes.object).isRequired,\r\n pianoRateizzazioneNonPossibile: PropTypes.bool.isRequired,\r\n pianoRateizzazione: PropTypes.isRequired,\r\n loadingPianoRateizzazione: PropTypes.bool.isRequired,\r\n infoPanel: PropTypes.string,\r\n};\r\n\r\nexport default GestisciScadenzaFields;\r\n","import React, {\r\n useState, useRef, useEffect, useCallback,\r\n} from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Badge,\r\n Form, Formatter, Grid, Heading, Spinner,\r\n} from 'framework-ui-components';\r\nimport {\r\n Modal, Button, ButtonGroup, FeedbackPanel,\r\n} from 'framework-ui-components/Components/V2';\r\nimport { useSelector } from 'react-redux';\r\nimport { logApiError } from 'framework-taskforce/utils/log';\r\nimport { getSegnalazioneError } from 'framework-taskforce/models/segnalazioni';\r\nimport { isEmptyObject } from 'framework-taskforce/utils/object';\r\nimport {\r\n getOttieniAzioniPossibiliScadenza,\r\n getOttieniDebitiDaRateizzazione,\r\n getOttieniDebitoConNuovaScadenza,\r\n getOttieniInformazioniPerCompensazione,\r\n getOttieniPianoRateizzazioneUnico,\r\n postAvviaCompensazioneOrizzontale,\r\n postAvviaCompensazioneVerticale,\r\n postEliminaRateizzazioneDebito,\r\n postGestisciScadenzaDebito,\r\n postRateizzaDebito,\r\n postResettaScadenzaDebito,\r\n getOttieniInfoPanel,\r\n} from '../../apis/debitiGestioneScadenza';\r\nimport { STEP_SCELTA_GESTIONE_TRIBUTO } from '../../models/tributi';\r\nimport LabelValueDetail from '../../components/custom/LabelValueDetail';\r\nimport LabelOnly from '../../components/custom/LabelOnly';\r\nimport GestisciScadenzaFields from './GestisciScadenzaFields';\r\nimport SceltaGestione from './SceltaGestione';\r\nimport AnteprimaRateizzazione from './AnteprimaRateizzazione';\r\nimport CreditiCompatibiliCompensazione from './CreditiCompatibiliCompensazione';\r\n\r\nconst STEP = {\r\n COMPENSAZIONE: 1,\r\n SELEZIONE_SCADENZA: 2,\r\n RATEIZZA: 3,\r\n RISULTATO: 4,\r\n};\r\n\r\nconst ModaleGestisciScadenzaDebito = ({\r\n onClose,\r\n show,\r\n IdDebito,\r\n soloCompensazione,\r\n tributo,\r\n isGestisciScadenzaAttivo,\r\n defaultStepGestisci,\r\n}) => {\r\n const idContribuente = useSelector((store) => store.soggetto.idContribuente);\r\n\r\n const [currentStep, setCurrentStep] = useState(STEP.COMPENSAZIONE);\r\n const [loading, setLoading] = useState(false);\r\n\r\n const [isCompensabileVerticalmente, setIsCompensabileVerticalmente] = useState(false);\r\n const [isCompensabileOrizzontalmente, setIsCompensabileOrizzontalmente] = useState(false);\r\n const [pianoRateizzazione, setPianoRateizzazione] = useState(null);\r\n const [pianoRateizzazioneNonPossibile, setPianoRateizzazioneNonPossibile] = useState(false);\r\n const [azioniPossibili, setAzioniPossibili] = useState([]);\r\n const [formData, setFormData] = useState({ });\r\n const [successOperazione, setSuccessOperazione] = useState(false);\r\n const [nuovoTributo, setNuovoTributo] = useState(null);\r\n const [listaRateizzazione, setListaRateizzazione] = useState([]);\r\n const [segnalazioni, setSegnalazioni] = useState([]);\r\n const [sceltaGestione, setSceltaGestione] = useState(defaultStepGestisci || STEP_SCELTA_GESTIONE_TRIBUTO.SELEZIONE_GESTIONE);\r\n const [loadingPianoRateizzazione, setLoadingPianoRateizzazione] = useState(false);\r\n const [creditiPerOrizzontale, setCreditiPerOrizzontale] = useState(null);\r\n const [creditiPerVerticale, setCreditiPerVerticale] = useState(null);\r\n const [creditiDisponibili, setCreditiDisponibili] = useState(null);\r\n const [gestionePossibile, setGestionePossibile] = useState(true);\r\n const [infoPanel, setInfoPanel] = useState(null);\r\n\r\n const gestisciScadenza = () => {\r\n setLoading(true);\r\n let payload = {\r\n idContribuente,\r\n IdDebito,\r\n ...formData,\r\n };\r\n if (!formData.rateizza) {\r\n postGestisciScadenzaDebito(payload)\r\n .then((res) => {\r\n if (res.Success) {\r\n getOttieniDebitoConNuovaScadenza(IdDebito)\r\n .then((resRisultato) => {\r\n if (resRisultato.Success) {\r\n setSuccessOperazione(true);\r\n setNuovoTributo(resRisultato.Result); // @todo ne possono arrivare + di 1\r\n setSceltaGestione(STEP_SCELTA_GESTIONE_TRIBUTO.ANTEPRIMA_SCADENZA);\r\n } else {\r\n setSegnalazioni(\r\n resRisultato.DetectedProblems.map((err) => getSegnalazioneError(err)),\r\n );\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n onClose(false);\r\n setLoading(false);\r\n });\r\n } else {\r\n setLoading(false);\r\n setSuccessOperazione(false);\r\n // setCurrentStep(STEP.RISULTATO);\r\n // setErroreOperazione(res.DetectedProblems[0] || 'Errore durante lo spostamento della scadenza');\r\n setSegnalazioni(\r\n res.DetectedProblems.map((err) => getSegnalazioneError(err)),\r\n );\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n onClose(false);\r\n setLoading(false);\r\n });\r\n } else {\r\n payload = {\r\n IdScadenzaRateizzazione: pianoRateizzazione.IdScadenzaRateizzazione,\r\n ...payload,\r\n };\r\n postRateizzaDebito(payload)\r\n .then((res) => {\r\n if (res.Success) {\r\n getOttieniDebitiDaRateizzazione(IdDebito)\r\n .then((resRisultato) => {\r\n if (resRisultato.Success) {\r\n setSuccessOperazione(true);\r\n setListaRateizzazione(resRisultato.Result);\r\n setSceltaGestione(STEP_SCELTA_GESTIONE_TRIBUTO.ANTEPRIMA_RATEAZIONE);\r\n } else {\r\n setSegnalazioni(\r\n resRisultato.DetectedProblems.map((err) => getSegnalazioneError(err)),\r\n );\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n onClose(false);\r\n setLoading(false);\r\n });\r\n } else {\r\n setLoading(false);\r\n setSuccessOperazione(false);\r\n // setCurrentStep(STEP.RISULTATO);\r\n // setErroreOperazione(res.DetectedProblems[0] || 'Errore durante lo spostamento della scadenza');\r\n setSegnalazioni(\r\n res.DetectedProblems.map((err) => getSegnalazioneError(err)),\r\n );\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n onClose(false);\r\n setLoading(false);\r\n });\r\n }\r\n };\r\n\r\n // useEffect(() => {\r\n // if (show) {\r\n // if (currentStep === STEP.RISULTATO) {\r\n // document\r\n // .querySelector('.v2-modal__content')\r\n // .classList.remove('secondo-step');\r\n // document\r\n // .querySelector('.v2-modal__content')\r\n // .classList.toggle('secondo-step');\r\n // } else {\r\n // document\r\n // .querySelector('.v2-modal__content')\r\n // .classList.remove('secondo-step');\r\n // }\r\n // }\r\n // }, [currentStep, show]);\r\n\r\n const resetDati = useCallback(() => {\r\n setSegnalazioni([]);\r\n setLoading(false);\r\n setSceltaGestione(STEP_SCELTA_GESTIONE_TRIBUTO.SELEZIONE_GESTIONE);\r\n setFormData({\r\n proroga: false,\r\n prorogaSenzaInteressi: false,\r\n maggiora: false,\r\n maggioraDl104: false,\r\n societaDiCapitali: false,\r\n rateizza: false,\r\n dpcm: false,\r\n });\r\n setCreditiPerVerticale(null);\r\n setCreditiPerOrizzontale(null);\r\n setCreditiDisponibili(null);\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (!show) {\r\n // reset data on close\r\n resetDati();\r\n }\r\n }, [resetDati, show]);\r\n\r\n const aggiornaAzioni = () => {\r\n getOttieniAzioniPossibiliScadenza(\r\n IdDebito,\r\n formData,\r\n )\r\n .then((response) => {\r\n if (response.Success && response.Result != null) {\r\n setGestionePossibile(response.Result.some((x) => x.Visibile && !x.Disabilitato));\r\n setAzioniPossibili(response.Result);\r\n } else {\r\n // alert(JSON.stringify(response));\r\n setGestionePossibile(false);\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n if (formData.rateizza) {\r\n setLoadingPianoRateizzazione(true);\r\n getOttieniPianoRateizzazioneUnico(\r\n IdDebito,\r\n formData.proroga,\r\n formData.prorogaSenzaInteressi,\r\n formData.maggiora,\r\n formData.maggioraDl104,\r\n formData.societaDiCapitali,\r\n formData.rateizza,\r\n formData.dpcm,\r\n ).then((response) => {\r\n if (response.Success && response.Result != null) {\r\n setPianoRateizzazioneNonPossibile(false);\r\n setPianoRateizzazione(response.Result);\r\n\r\n // se nella select sono selezionate più rate di quelle possibili allora la sbianco\r\n if(formData.numeroRate > response.Result.NumeroMassimoRate){\r\n setFormData({\r\n ...formData,\r\n numeroRate: null,\r\n });\r\n }\r\n getOttieniInfoPanel(\r\n IdDebito,\r\n ).then((r) => {\r\n if (r.Success && r.Result !== null) {\r\n setInfoPanel(r.Result);\r\n }\r\n });\r\n } else {\r\n setPianoRateizzazioneNonPossibile(true);\r\n setFormData({\r\n ...formData,\r\n ...{\r\n rateizza: false,\r\n },\r\n });\r\n }\r\n setLoadingPianoRateizzazione(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n });\r\n } else {\r\n setPianoRateizzazione(null);\r\n setPianoRateizzazioneNonPossibile(false);\r\n }\r\n }, [IdDebito, azioniPossibili, formData]);\r\n\r\n useEffect(() => {\r\n if (show && formData && isGestisciScadenzaAttivo) {\r\n aggiornaAzioni();\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [formData, show, isGestisciScadenzaAttivo]);\r\n\r\n const aggiornaInfoPerCompensazione = useCallback(() => {\r\n getOttieniInformazioniPerCompensazione(IdDebito)\r\n .then((response) => {\r\n if (response.Success && response.Result !== null) {\r\n setIsCompensabileOrizzontalmente(\r\n response.Result.IsCompensabileOrizzontale\r\n && response.Result.CreditiPerOrizzontale.length > 0,\r\n );\r\n setIsCompensabileVerticalmente(\r\n response.Result.IsCompensabileVerticale\r\n && response.Result.CreditiPerVerticale.length > 0,\r\n );\r\n\r\n response.Result.IsCompensabileOrizzontale\r\n && setCreditiPerOrizzontale(response.Result.CreditiPerOrizzontale);\r\n response.Result.IsCompensabileVerticale\r\n && setCreditiPerVerticale(response.Result.CreditiPerVerticale);\r\n setCreditiDisponibili(response.Result.Crediti);\r\n // setAzioniPossibili(response.Result);\r\n } else {\r\n // alert(JSON.stringify(response));\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n });\r\n }, [IdDebito]);\r\n\r\n useEffect(() => {\r\n if (show && !creditiDisponibili && !creditiPerVerticale && !creditiPerOrizzontale) {\r\n aggiornaInfoPerCompensazione();\r\n }\r\n }, [aggiornaInfoPerCompensazione, creditiDisponibili, creditiPerOrizzontale, creditiPerVerticale, show]);\r\n\r\n const presetForm = useCallback(({ FormErrors, ...datoModificato }) => {\r\n if (!formData || isEmptyObject(datoModificato)) return;\r\n const newStato = { ...formData, ...datoModificato };\r\n\r\n setFormData(newStato);\r\n }, [formData]);\r\n\r\n const formRef = useRef();\r\n\r\n const elementoTributo = (\r\n \r\n Debito\r\n {tributo.CodiceTributo}\r\n del\r\n {tributo.PeriodoRiferimento}\r\n scade il\r\n \r\n importo residuo\r\n {sceltaGestione === STEP_SCELTA_GESTIONE_TRIBUTO.COMPENSA_VERTICALMENTE\r\n || sceltaGestione === STEP_SCELTA_GESTIONE_TRIBUTO.COMPENSA_ORIZZONTALMENTE\r\n ? (\r\n \r\n €\r\n \r\n ) : (\r\n \r\n €\r\n \r\n )}\r\n
    \r\n )}\r\n />\r\n );\r\n\r\n const elementoNuovoTributo = (\r\n nuovoTributo && nuovoTributo.length > 0 ? (\r\n
    \r\n \r\n {nuovoTributo.map((t) => (\r\n \r\n Debito\r\n
    {t.CodiceTributo}
    \r\n del\r\n
    {t.AnnoRiferimento}
    \r\n scade il\r\n \r\n importo residuo\r\n {t.ImportoResiduo !== tributo.ImportoResiduo ? (\r\n \r\n €\r\n \r\n ) : (\r\n
    \r\n €\r\n
    \r\n )}\r\n
    \r\n )}\r\n />\r\n ))}\r\n
    \r\n ) : (
    )\r\n );\r\n\r\n const indietroEliminaRateizzazione = () => {\r\n setLoading(true);\r\n postEliminaRateizzazioneDebito({ IdDebitoRateizzato: IdDebito, idContribuente })\r\n .then((response) => {\r\n if (response.Success) {\r\n setSuccessOperazione(false);\r\n setFormData({});\r\n setSceltaGestione(STEP_SCELTA_GESTIONE_TRIBUTO.GESTISCI_SCADENZA);\r\n setListaRateizzazione([]);\r\n }\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n });\r\n };\r\n\r\n const indietroRipristinaScadenza = () => {\r\n postResettaScadenzaDebito({ IdDebito, idContribuente })\r\n .then((response) => {\r\n if (response.Success) {\r\n setSuccessOperazione(false);\r\n setFormData({});\r\n setSceltaGestione(STEP_SCELTA_GESTIONE_TRIBUTO.GESTISCI_SCADENZA);\r\n setNuovoTributo(null);\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n });\r\n };\r\n\r\n const eseguiCompensazioneVerticale = () => {\r\n setLoading(true);\r\n postAvviaCompensazioneVerticale(IdDebito)\r\n .then((response) => {\r\n if (response.Success) {\r\n // setAzioniPossibili(response.Result);\r\n } else {\r\n // alert(JSON.stringify(response));\r\n setLoading(false);\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n };\r\n\r\n const eseguiCompensazioneOrizzontale = () => {\r\n setLoading(true);\r\n postAvviaCompensazioneOrizzontale(IdDebito)\r\n .then((response) => {\r\n if (response.Success) {\r\n // setAzioniPossibili(response.Result);\r\n } else {\r\n // alert(JSON.stringify(response));\r\n setLoading(false);\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n };\r\n\r\n return (\r\n onClose(successOperazione) : null}\r\n // className=\"tributi--modale-gestioneScadenza\"\r\n initialPos={{ x: 'auto', y: window.innerHeight * 0.1 }}\r\n >\r\n \r\n {sceltaGestione === STEP_SCELTA_GESTIONE_TRIBUTO.SELEZIONE_GESTIONE && 'Gestisci il tributo'}\r\n {(sceltaGestione === STEP_SCELTA_GESTIONE_TRIBUTO.GESTISCI_SCADENZA\r\n || sceltaGestione === STEP_SCELTA_GESTIONE_TRIBUTO.ANTEPRIMA_SCADENZA\r\n || sceltaGestione === STEP_SCELTA_GESTIONE_TRIBUTO.ANTEPRIMA_RATEAZIONE) && 'Gestisci la scadenza'}\r\n {sceltaGestione === STEP_SCELTA_GESTIONE_TRIBUTO.COMPENSA_VERTICALMENTE && 'Compensazione verticale'}\r\n {sceltaGestione === STEP_SCELTA_GESTIONE_TRIBUTO.COMPENSA_ORIZZONTALMENTE && 'Compensazione orizzontale'}\r\n \r\n \r\n {loading\r\n ? (\r\n
    \r\n \r\n
    \r\n )\r\n : (\r\n \r\n {segnalazioni.length > 0\r\n ? (\r\n \r\n
      \r\n {segnalazioni.map((segnalazione, idx) => (\r\n {segnalazione.msg}\r\n \r\n ))}\r\n
    \r\n
    \r\n )}\r\n type=\"alarm\"\r\n />\r\n )\r\n : (\r\n \r\n \r\n \r\n {elementoTributo}\r\n \r\n \r\n \r\n \r\n \r\n {sceltaGestione === STEP_SCELTA_GESTIONE_TRIBUTO.SELEZIONE_GESTIONE && (\r\n \r\n )}\r\n {sceltaGestione === STEP_SCELTA_GESTIONE_TRIBUTO.GESTISCI_SCADENZA && (\r\n \r\n )}\r\n {sceltaGestione === STEP_SCELTA_GESTIONE_TRIBUTO.ANTEPRIMA_SCADENZA && elementoNuovoTributo}\r\n {sceltaGestione === STEP_SCELTA_GESTIONE_TRIBUTO.ANTEPRIMA_RATEAZIONE && (\r\n \r\n )}\r\n {sceltaGestione === STEP_SCELTA_GESTIONE_TRIBUTO.COMPENSA_VERTICALMENTE && (\r\n \r\n )}\r\n {sceltaGestione === STEP_SCELTA_GESTIONE_TRIBUTO.COMPENSA_ORIZZONTALMENTE && (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n )}\r\n \r\n \r\n\r\n {currentStep === STEP.COMPENSAZIONE && !soloCompensazione && (\r\n setCurrentStep(STEP.SELEZIONE_SCADENZA)}\r\n tabindex=\"0\"\r\n emphasis={Button.Emphasis.HIGH}\r\n primary={!isCompensabileVerticalmente && !isCompensabileOrizzontalmente}\r\n >\r\n PROSEGUI\r\n \r\n )}\r\n {segnalazioni.length === 0 ? (\r\n \r\n {sceltaGestione === STEP_SCELTA_GESTIONE_TRIBUTO.GESTISCI_SCADENZA && !loading && (\r\n \r\n {\r\n defaultStepGestisci ? onClose(false)\r\n : setSceltaGestione(STEP_SCELTA_GESTIONE_TRIBUTO.SELEZIONE_GESTIONE); setFormData({});\r\n }}\r\n emphasis={Button.Emphasis.HIGH}\r\n >\r\n INDIETRO\r\n \r\n \r\n APPLICA\r\n \r\n \r\n )}\r\n {sceltaGestione === STEP_SCELTA_GESTIONE_TRIBUTO.ANTEPRIMA_SCADENZA && (\r\n \r\n indietroRipristinaScadenza()}\r\n emphasis={Button.Emphasis.HIGH}\r\n >\r\n INDIETRO\r\n \r\n onClose(true)}\r\n emphasis={Button.Emphasis.HIGH}\r\n primary\r\n tabindex=\"0\"\r\n disabled={loading}\r\n >\r\n CONCLUDI\r\n \r\n \r\n )}\r\n {sceltaGestione === STEP_SCELTA_GESTIONE_TRIBUTO.ANTEPRIMA_RATEAZIONE && (\r\n \r\n indietroEliminaRateizzazione()}\r\n emphasis={Button.Emphasis.HIGH}\r\n >\r\n INDIETRO\r\n \r\n onClose(true)}\r\n emphasis={Button.Emphasis.HIGH}\r\n primary\r\n tabindex=\"0\"\r\n disabled={loading}\r\n >\r\n CONCLUDI\r\n \r\n \r\n )}\r\n {(sceltaGestione === STEP_SCELTA_GESTIONE_TRIBUTO.COMPENSA_VERTICALMENTE\r\n || sceltaGestione === STEP_SCELTA_GESTIONE_TRIBUTO.COMPENSA_ORIZZONTALMENTE) && !loading\r\n && (\r\n \r\n {\r\n defaultStepGestisci ? onClose(false)\r\n : setSceltaGestione(STEP_SCELTA_GESTIONE_TRIBUTO.SELEZIONE_GESTIONE); setFormData({});\r\n }}\r\n emphasis={Button.Emphasis.HIGH}\r\n >\r\n INDIETRO\r\n \r\n eseguiCompensazioneVerticale()\r\n : () => eseguiCompensazioneOrizzontale()}\r\n emphasis={Button.Emphasis.HIGH}\r\n primary\r\n loading={loading}\r\n disabled={(sceltaGestione === STEP_SCELTA_GESTIONE_TRIBUTO.COMPENSA_VERTICALMENTE && !isCompensabileVerticalmente)\r\n || (sceltaGestione === STEP_SCELTA_GESTIONE_TRIBUTO.COMPENSA_ORIZZONTALMENTE && !isCompensabileOrizzontalmente)}\r\n >\r\n COMPENSA\r\n \r\n \r\n )}\r\n \r\n ) : (\r\n setSegnalazioni([])}\r\n emphasis={Button.Emphasis.HIGH}\r\n primary\r\n >\r\n RIPROVA\r\n \r\n )}\r\n {currentStep === STEP.RISULTATO\r\n && !loading && (\r\n \r\n {!successOperazione && (\r\n setCurrentStep(STEP.SELEZIONE_SCADENZA)}\r\n emphasis={Button.Emphasis.HIGH}\r\n >\r\n INDIETRO\r\n \r\n )}\r\n onClose(successOperazione)}\r\n emphasis={Button.Emphasis.HIGH}\r\n primary\r\n >\r\n TORNA ALLA LISTA DEI TRIBUTI\r\n \r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nModaleGestisciScadenzaDebito.defaultProps = {\r\n soloCompensazione: false,\r\n isGestisciScadenzaAttivo: false,\r\n defaultStepGestisci: STEP_SCELTA_GESTIONE_TRIBUTO.SELEZIONE_GESTIONE,\r\n};\r\n\r\nModaleGestisciScadenzaDebito.propTypes = {\r\n onClose: PropTypes.func.isRequired,\r\n show: PropTypes.bool.isRequired,\r\n IdDebito: PropTypes.number.isRequired,\r\n soloCompensazione: PropTypes.bool,\r\n tributo: PropTypes.shape({\r\n IdTributo: PropTypes.number,\r\n CodiceTributo: PropTypes.string,\r\n PeriodoRiferimento: PropTypes.string,\r\n DataScadenza: PropTypes.string,\r\n ImportoResiduo: PropTypes.number,\r\n }).isRequired,\r\n isGestisciScadenzaAttivo: PropTypes.bool,\r\n defaultStepGestisci: PropTypes.number,\r\n};\r\n\r\nexport default ModaleGestisciScadenzaDebito;\r\n","import React, {\r\n forwardRef, useCallback, useImperativeHandle, useMemo, useRef, useState,\r\n} from 'react';\r\nimport useDebouncedFunc from 'framework-ui-components/Components/Hooks/useDebouncedFunc';\r\nimport {\r\n FeedbackModal, ODataTable, ViewportProvider,\r\n} from 'framework-ui-components/Components/V2';\r\nimport PropTypes from 'prop-types';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport useViewport, { MAIN } from 'framework-ui-components/Components/V2/Hooks/useViewport';\r\nimport { setAppParamsAction } from 'framework-taskforce/actions/appParams';\r\nimport RigaTributiSoggetto from './RigaTributiSoggetto';\r\nimport { getOttieniTributiDaGestireUrl } from '../../../../../apis/tributi';\r\nimport ModaleGestisciScadenzaDebitoIva from '../../../../gestisciScadenzaDebito/ModaleGestisciScadenzaDebitoIva';\r\nimport ModaleCompensazioneManuale from '../compensazioneManuale/ModaleCompensazioneManuale';\r\nimport ModaleGestisciScadenzaDebito from '../../../../gestisciScadenzaDebito/ModaleGestisciScadenzaDebito';\r\n\r\nconst TabellaTributiSogg = forwardRef(({\r\n setSuccessoGestione,\r\n setShowOperazioneAsincrona,\r\n annoSelezionato,\r\n mostraAperti,\r\n checkedTipologiCrediti,\r\n checkedTipologiDebiti,\r\n cercaNelleScadenze,\r\n eseguiChiusuraForzata,\r\n annullaChiusuraForzata,\r\n setModaleGestisciScadenza,\r\n modaleGestisciScadenza,\r\n eliminaTributo,\r\n chiamataContatori,\r\n setModificaTributo,\r\n fromScadenzario,\r\n}, ref) => {\r\n const tabellaRef = useRef();\r\n const studioSelezionato = useSelector((store) => store.appParams.studioSelezionato);\r\n const idContribuente = useSelector((store) => store.soggetto.idContribuente);\r\n\r\n const [segnalazioni, setSegnalazioni] = useState([]);\r\n const [titoloFeedbackModal, setTitoloFeedbackModal] = useState('');\r\n const [showModaleCompensazioneManuale, setShowModaleCompensazioneManuale] = useState({ show: false });\r\n\r\n const dispatch = useDispatch();\r\n\r\n // const { resolution } = useViewport();\r\n const { height, resolution } = useViewport();\r\n const resolutionMAIN = resolution === MAIN;\r\n\r\n const url = useMemo(\r\n () => (\r\n studioSelezionato && annoSelezionato && (getOttieniTributiDaGestireUrl)(\r\n idContribuente,\r\n annoSelezionato,\r\n checkedTipologiCrediti,\r\n checkedTipologiDebiti,\r\n mostraAperti,\r\n '',\r\n )\r\n ),\r\n [annoSelezionato, checkedTipologiCrediti, checkedTipologiDebiti, idContribuente, mostraAperti, studioSelezionato],\r\n );\r\n\r\n const onRowsSelected = useCallback((rows) => {\r\n const rowsObjectSelected = rows.map((row) => row.object.IsDebito && row.object);\r\n\r\n // epuro i crediti\r\n dispatch(setAppParamsAction({\r\n rowsTributi: rowsObjectSelected.filter((row) => row),\r\n }));\r\n }, [dispatch]);\r\n\r\n const updateOptimisticRows = useCallback(() => {\r\n // dispatch({ type: ACTIONS.UPDATE_OPTIMISTIC_ROWS });\r\n }, []);\r\n\r\n const onPageLoaded = useCallback((pageItems, totalCount, currentFilter, currentPage, sortProperty, sortOrder) => {\r\n tabellaRef.current && tabellaRef.current.resetSelection();\r\n updateOptimisticRows();\r\n }, [updateOptimisticRows]);\r\n\r\n const refreshTabella = useDebouncedFunc(() => {\r\n tabellaRef.current && tabellaRef.current.refreshTable();\r\n // updateContatori();\r\n }, 200, []);\r\n\r\n // permetto di accedere via ref al metodo refreshTabella\r\n useImperativeHandle(ref, () => ({ refreshTabella }), [refreshTabella]);\r\n\r\n const rowRender = useCallback((item) => (\r\n \r\n ), [refreshTabella,\r\n resolutionMAIN,\r\n setSuccessoGestione,\r\n setShowOperazioneAsincrona,\r\n setModaleGestisciScadenza,\r\n cercaNelleScadenze,\r\n mostraAperti,\r\n eseguiChiusuraForzata,\r\n annullaChiusuraForzata,\r\n eliminaTributo,\r\n annoSelezionato,\r\n setModificaTributo,\r\n fromScadenzario]);\r\n\r\n return (\r\n \r\n 741}\r\n onPageLoaded={onPageLoaded}\r\n pageSizeOptions={[50, 100]}\r\n initPageSize={50}\r\n ref={tabellaRef}\r\n rowRender={rowRender}\r\n url={url}\r\n sortProperty=\"DataScadenza\"\r\n sortOrder=\"desc\"\r\n onSelectionChange={onRowsSelected}\r\n className={height > 741 ? 'odataTable odata-table__full-height' : ''}\r\n >\r\n {/* \r\n \r\n \r\n \r\n */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* \r\n */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {!modaleGestisciScadenza.IsIva && modaleGestisciScadenza.IdTributo && (\r\n {\r\n operazioneCompletata && refreshTabella();\r\n operazioneCompletata && setSuccessoGestione({\r\n successo: true,\r\n codice: modaleGestisciScadenza.tributo.CodiceTributo,\r\n sezione: modaleGestisciScadenza.tributo.Sezione,\r\n importo: modaleGestisciScadenza.tributo.Importo,\r\n tipo: 'debito',\r\n dataScadenza: new Date(modaleGestisciScadenza.tributo.DataScadenza),\r\n });\r\n setModaleGestisciScadenza({ aperto: false, soloCompensazione: false, tributo: {} });\r\n }}\r\n />\r\n )}\r\n {modaleGestisciScadenza.IsIva && modaleGestisciScadenza.IdTributo && (\r\n {\r\n operazioneCompletata && refreshTabella();\r\n operazioneCompletata && setSuccessoGestione({\r\n successo: true,\r\n codice: modaleGestisciScadenza.tributo.CodiceTributo,\r\n sezione: modaleGestisciScadenza.tributo.Sezione,\r\n importo: modaleGestisciScadenza.tributo.Importo,\r\n tipo: 'debito',\r\n dataScadenza: new Date(modaleGestisciScadenza.tributo.DataScadenza),\r\n });\r\n setModaleGestisciScadenza({ aperto: false, soloCompensazione: false, tributo: {} });\r\n }}\r\n />\r\n )}\r\n {showModaleCompensazioneManuale.show && (\r\n {\r\n operazioneCompletata && refreshTabella();\r\n operazioneCompletata && chiamataContatori(annoSelezionato, true);\r\n setShowModaleCompensazioneManuale({ show: false });\r\n }}\r\n />\r\n )}\r\n {segnalazioni && segnalazioni.length > 0 && (\r\n 0}\r\n title={titoloFeedbackModal}\r\n onClose={() => setSegnalazioni([])}\r\n buttonLabel=\"ok\"\r\n type=\"alarm\"\r\n message={segnalazioni[0].msg}\r\n className=\"feedback--modal__720px\"\r\n />\r\n )}\r\n \r\n );\r\n});\r\n\r\nTabellaTributiSogg.propTypes = {\r\n setSuccessoGestione: PropTypes.func,\r\n setShowOperazioneAsincrona: PropTypes.func,\r\n annoSelezionato: PropTypes.number.isRequired,\r\n mostraAperti: PropTypes.bool.isRequired,\r\n checkedTipologiCrediti: PropTypes.bool.isRequired,\r\n checkedTipologiDebiti: PropTypes.bool.isRequired,\r\n cercaNelleScadenze: PropTypes.func.isRequired,\r\n eseguiChiusuraForzata: PropTypes.func.isRequired,\r\n annullaChiusuraForzata: PropTypes.func.isRequired,\r\n setModaleGestisciScadenza: PropTypes.func.isRequired,\r\n modaleGestisciScadenza: PropTypes.shape(\r\n {\r\n aperto: PropTypes.bool,\r\n soloCompensazione: PropTypes.bool,\r\n gestisciScadenza: PropTypes.bool,\r\n IsIva: PropTypes.bool,\r\n IdTributo: PropTypes.number,\r\n tributo: PropTypes.shape({\r\n CodiceTributo: PropTypes.string,\r\n Sezione: PropTypes.string,\r\n DataScadenza: PropTypes.string,\r\n Importo: PropTypes.number,\r\n }),\r\n },\r\n ).isRequired,\r\n eliminaTributo: PropTypes.func.isRequired,\r\n chiamataContatori: PropTypes.func.isRequired,\r\n setModificaTributo: PropTypes.func.isRequired,\r\n fromScadenzario: PropTypes.bool,\r\n};\r\n\r\nTabellaTributiSogg.defaultProps = {\r\n setSuccessoGestione: null,\r\n fromScadenzario: false,\r\n setShowOperazioneAsincrona: null,\r\n};\r\n\r\nexport default TabellaTributiSogg;\r\n","import React, { useState } from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport {\r\n DropdownButton, Button,\r\n} from 'framework-ui-components/Components/V2';\r\nimport PropTypes from 'prop-types';\r\nimport DescriptionIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/DescriptionIcon';\r\nimport { logApiError } from 'framework-taskforce/utils/log';\r\nimport BuildIcon from '../../../../../components/icons/google/BuildIcon';\r\nimport DateRangeIcon from '../../../../../components/icons/google/DateRangeIcon';\r\nimport { STEP_SCELTA_GESTIONE_TRIBUTO } from '../../../../../models/tributi';\r\nimport BalanceDownIcon from '../../../../../components/icons/custom/BalanceDownIcon';\r\nimport BalanceRightIcon from '../../../../../components/icons/custom/BalanceRightIcon';\r\nimport BalanceDownGreyIcon from '../../../../../components/icons/custom/BalanceDownGreyIcon';\r\nimport BalanceRightGreyIcon from '../../../../../components/icons/custom/BalanceRightGreyIcon';\r\nimport { getOttieniAzioniPossibiliScadenza, getOttieniInformazioniPerCompensazione } from '../../../../../apis/debitiGestioneScadenza';\r\n\r\nconst BottoniGestioneSingola = ({\r\n setModaleGestisciScadenza, tributoSelezionato, setModaleCreazioneDelegheDaTributo,\r\n}) => {\r\n const [isCompensabileVerticalmente, setIsCompensabileVerticalmente] = useState(false);\r\n const [isCompensabileOrizzontalmente, setIsCompensabileOrizzontalmente] = useState(false);\r\n const [gestionePossibile, setGestionePossibile] = useState(true);\r\n const appParamVisualizzazione = useSelector((store) => !!store.appParams.visualizzazione);\r\n\r\n const recuperaInfoPerGestione = (idDebito) => {\r\n getOttieniInformazioniPerCompensazione(idDebito)\r\n .then((response) => {\r\n if (response.Success && response.Result !== null) {\r\n setIsCompensabileOrizzontalmente(\r\n response.Result.IsCompensabileOrizzontale\r\n && response.Result.CreditiPerOrizzontale.length > 0,\r\n );\r\n setIsCompensabileVerticalmente(\r\n response.Result.IsCompensabileVerticale\r\n && response.Result.CreditiPerVerticale.length > 0,\r\n );\r\n } else {\r\n // alert(JSON.stringify(response));\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n });\r\n\r\n getOttieniAzioniPossibiliScadenza(\r\n idDebito,\r\n null,\r\n )\r\n .then((response) => {\r\n if (response.Success && response.Result != null) {\r\n setGestionePossibile(response.Result.some((x) => x.Visibile && !x.Disabilitato));\r\n } else {\r\n // alert(JSON.stringify(response));\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n });\r\n };\r\n\r\n return (\r\n \r\n recuperaInfoPerGestione(tributoSelezionato.Id)}\r\n disabled={appParamVisualizzazione}\r\n >\r\n \r\n Gestisci\r\n \r\n setModaleGestisciScadenza(\r\n {\r\n IdTributo: tributoSelezionato.Id,\r\n NuovaGestioneIVA: tributoSelezionato.NuovaGestioneIVA,\r\n CodiceTributo: tributoSelezionato.CodiceTributo,\r\n aperto: true,\r\n tributo: {\r\n Id: tributoSelezionato.Id,\r\n CodiceTributo: tributoSelezionato.CodiceTributo,\r\n PeriodoRiferimento: tributoSelezionato.PeriodoRiferimento,\r\n DataScadenza: tributoSelezionato.DataScadenza,\r\n ImportoResiduo: tributoSelezionato.ImportoResiduo,\r\n Importo: tributoSelezionato.Importo,\r\n Sezione: tributoSelezionato.DescrizioneSezione,\r\n },\r\n soloCompensazione: true,\r\n gestisciScadenza: true,\r\n IsIva: tributoSelezionato.NuovaGestioneIVA && tributoSelezionato.CodiceTributo === '6099',\r\n defaultStepGestisci: STEP_SCELTA_GESTIONE_TRIBUTO.COMPENSA_VERTICALMENTE,\r\n },\r\n )\r\n }\r\n >\r\n {!isCompensabileVerticalmente ? : }\r\n Compensazione verticale\r\n \r\n setModaleGestisciScadenza(\r\n {\r\n IdTributo: tributoSelezionato.Id,\r\n NuovaGestioneIVA: tributoSelezionato.NuovaGestioneIVA,\r\n CodiceTributo: tributoSelezionato.CodiceTributo,\r\n aperto: true,\r\n tributo: {\r\n Id: tributoSelezionato.Id,\r\n CodiceTributo: tributoSelezionato.CodiceTributo,\r\n PeriodoRiferimento: tributoSelezionato.PeriodoRiferimento,\r\n DataScadenza: tributoSelezionato.DataScadenza,\r\n ImportoResiduo: tributoSelezionato.ImportoResiduo,\r\n Importo: tributoSelezionato.Importo,\r\n Sezione: tributoSelezionato.DescrizioneSezione,\r\n },\r\n soloCompensazione: true,\r\n gestisciScadenza: true,\r\n IsIva: tributoSelezionato.NuovaGestioneIVA && tributoSelezionato.CodiceTributo === '6099',\r\n defaultStepGestisci: STEP_SCELTA_GESTIONE_TRIBUTO.COMPENSA_ORIZZONTALMENTE,\r\n },\r\n )\r\n }\r\n >\r\n {!isCompensabileOrizzontalmente ? : }\r\n Compensazione orizzontale\r\n \r\n setModaleGestisciScadenza(\r\n {\r\n IdTributo: tributoSelezionato.Id,\r\n NuovaGestioneIVA: tributoSelezionato.NuovaGestioneIVA,\r\n CodiceTributo: tributoSelezionato.CodiceTributo,\r\n aperto: true,\r\n tributo: {\r\n Id: tributoSelezionato.Id,\r\n CodiceTributo: tributoSelezionato.CodiceTributo,\r\n PeriodoRiferimento: tributoSelezionato.PeriodoRiferimento,\r\n DataScadenza: tributoSelezionato.DataScadenza,\r\n ImportoResiduo: tributoSelezionato.ImportoResiduo,\r\n Importo: tributoSelezionato.Importo,\r\n Sezione: tributoSelezionato.DescrizioneSezione,\r\n },\r\n soloCompensazione: true,\r\n gestisciScadenza: true,\r\n IsIva: tributoSelezionato.NuovaGestioneIVA && tributoSelezionato.CodiceTributo === '6099',\r\n defaultStepGestisci: STEP_SCELTA_GESTIONE_TRIBUTO.GESTISCI_SCADENZA,\r\n },\r\n )\r\n }\r\n >\r\n \r\n Gestisci scadenza\r\n \r\n \r\n \r\n setModaleCreazioneDelegheDaTributo(\r\n {\r\n aperto: true,\r\n IdTributi: [tributoSelezionato.Id],\r\n tributi: tributoSelezionato,\r\n dataScadenza: tributoSelezionato.DataScadenza,\r\n },\r\n )\r\n }\r\n disabled={appParamVisualizzazione}\r\n >\r\n \r\n Crea deleghe\r\n \r\n \r\n );\r\n};\r\n\r\nBottoniGestioneSingola.defaultProps = {\r\n tributoSelezionato: null,\r\n};\r\n\r\nBottoniGestioneSingola.propTypes = {\r\n setModaleGestisciScadenza: PropTypes.func.isRequired,\r\n setModaleCreazioneDelegheDaTributo: PropTypes.func.isRequired,\r\n tributoSelezionato: PropTypes.shape({\r\n Id: PropTypes.number,\r\n IdContribuente: PropTypes.number,\r\n TipoPersona: PropTypes.number,\r\n DescrizioneTributo: PropTypes.string,\r\n DescrizioneSezione: PropTypes.string,\r\n NuovaGestioneIVA: PropTypes.bool,\r\n PartitaIva: PropTypes.string,\r\n CodiceFiscale: PropTypes.string,\r\n CodiceUfficio: PropTypes.string,\r\n IdStudio: PropTypes.number,\r\n Importo: PropTypes.number,\r\n ImportoResiduo: PropTypes.number,\r\n ImportoLimitato: PropTypes.number,\r\n ImportoNonLimitato: PropTypes.number,\r\n DataScadenza: PropTypes.string,\r\n IsRateizzatoOppureGestitaScadenza: PropTypes.bool,\r\n IsDebito: PropTypes.bool,\r\n CodiceTributo: PropTypes.string,\r\n ScadenzaAnnoSuccessivo: PropTypes.bool,\r\n NumeroRate: PropTypes.number,\r\n ImportoResiduoRate: PropTypes.number,\r\n NaturaDebito: PropTypes.number,\r\n IdScadenzaRateizzazione: PropTypes.number,\r\n Annualita: PropTypes.number,\r\n HaPartitaIVA: PropTypes.bool,\r\n Ordinario: PropTypes.bool,\r\n IdCodiceTributo: PropTypes.bool,\r\n Provenienza: PropTypes.string,\r\n ProvenienzaServizio: PropTypes.string,\r\n ProvenienzaAnno: PropTypes.string,\r\n PeriodoRiferimento: PropTypes.string,\r\n IsRavveduto: PropTypes.bool,\r\n IsProrogato: PropTypes.bool,\r\n IsMaggiorato: PropTypes.bool,\r\n IsSocietaDiCapitali180GG: PropTypes.bool,\r\n }),\r\n};\r\n\r\nexport default BottoniGestioneSingola;\r\n","/* eslint-disable no-nested-ternary */\r\nimport React, { useMemo, useState } from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport {\r\n DropdownButton, Button, ButtonGroup, FeedbackModal,\r\n} from 'framework-ui-components/Components/V2';\r\nimport PropTypes from 'prop-types';\r\nimport { Link, Tooltip } from 'framework-ui-components';\r\nimport DescriptionIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/DescriptionIcon';\r\nimport DateRangeIcon from '../../../../../components/icons/google/DateRangeIcon';\r\nimport BuildIcon from '../../../../../components/icons/google/BuildIcon';\r\nimport BalanceDownIcon from '../../../../../components/icons/custom/BalanceDownIcon';\r\nimport BalanceRightIcon from '../../../../../components/icons/custom/BalanceRightIcon';\r\nimport { STEP_SCELTA_GESTIONE_TRIBUTO } from '../../../../../models/tributi';\r\n\r\nconst BottoniGestioneMassiva = ({\r\n setModaleGestisciMassivamenteScadenza, tributiSelezionati, setModaleCreazioneDelegheDaTributi,\r\n}) => {\r\n const soggetto = useSelector((store) => store.soggetto);\r\n const appParamVisualizzazione = useSelector((store) => !!store.appParams.visualizzazione);\r\n\r\n return (\r\n \r\n \r\n \r\n Gestisci\r\n \r\n setModaleGestisciMassivamenteScadenza(\r\n {\r\n aperto: true,\r\n IdTributi: tributiSelezionati.map((row) => row.Id),\r\n defaultStepGestisci: STEP_SCELTA_GESTIONE_TRIBUTO.COMPENSA_VERTICALMENTE,\r\n tributi: tributiSelezionati,\r\n },\r\n )\r\n }\r\n >\r\n \r\n Compensazione verticale\r\n \r\n setModaleGestisciMassivamenteScadenza(\r\n {\r\n aperto: true,\r\n IdTributi: tributiSelezionati.map((row) => row.Id),\r\n defaultStepGestisci: STEP_SCELTA_GESTIONE_TRIBUTO.COMPENSA_ORIZZONTALMENTE,\r\n tributi: tributiSelezionati,\r\n },\r\n )\r\n }\r\n >\r\n \r\n Compensazione orizzontale\r\n \r\n setModaleGestisciMassivamenteScadenza(\r\n {\r\n aperto: true,\r\n IdTributi: tributiSelezionati.map((row) => row.Id),\r\n defaultStepGestisci: STEP_SCELTA_GESTIONE_TRIBUTO.GESTISCI_SCADENZA,\r\n tributi: tributiSelezionati,\r\n },\r\n )\r\n }\r\n >\r\n \r\n Gestisci scadenza\r\n \r\n \r\n \r\n setModaleCreazioneDelegheDaTributi(\r\n {\r\n aperto: true,\r\n IdTributi: tributiSelezionati.map((row) => row.Id),\r\n tributi: tributiSelezionati,\r\n },\r\n )\r\n }\r\n >\r\n \r\n Crea deleghe\r\n \r\n \r\n );\r\n};\r\n\r\nBottoniGestioneMassiva.defaultProps = {\r\n};\r\n\r\nBottoniGestioneMassiva.propTypes = {\r\n setModaleGestisciMassivamenteScadenza: PropTypes.func.isRequired,\r\n setModaleCreazioneDelegheDaTributi: PropTypes.func.isRequired,\r\n tributiSelezionati: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\r\n};\r\n\r\nexport default BottoniGestioneMassiva;\r\n","/* eslint-disable max-len */\r\nimport React from 'react';\r\nimport Icon from '../../Icons/Icon';\r\n\r\nexport default Icon(\r\n \r\n \r\n \r\n ,\r\n '0 0 24 24',\r\n 'EuroSymbolIcon',\r\n);\r\n","import { WebRequest } from 'framework-ui-components';\r\n\r\nconst getOttieniProvinciaContribuente = (\r\n idAnagraficaContribuente,\r\n tipoContribuente,\r\n) => WebRequest.get('/Contribuente/DirittiCamerali/OttieniProvinciaContribuente', {\r\n idAnagraficaContribuente,\r\n tipoContribuente,\r\n});\r\n\r\nconst getOttieniMaggiorazioneCameraCommercio = (\r\n idTabellaT2CameraCommercio,\r\n anno,\r\n) => WebRequest.get('/Contribuente/DirittiCamerali/OttieniMaggiorazioneCameraCommercio', {\r\n idTabellaT2CameraCommercio,\r\n anno,\r\n});\r\n\r\nconst getOttieniProvinciaCameraCommercio = (\r\n idTabellaT2,\r\n anno,\r\n) => WebRequest.get('/Contribuente/DirittiCamerali/OttieniProvinciaCameraCommercio', {\r\n idTabellaT2,\r\n anno,\r\n});\r\n\r\nconst getOttieniRiduzioneDaNormativa = (\r\n anno,\r\n) => WebRequest.get('/Contribuente/DirittiCamerali/OttieniRiduzioneDaNormativa', {\r\n anno,\r\n});\r\n\r\nconst getOttieniImportoBase = (\r\n tipoContribuente,\r\n fatturatoIrap,\r\n) => WebRequest.get('/Contribuente/DirittiCamerali/OttieniImportoBase', {\r\n tipoContribuente,\r\n fatturatoIrap,\r\n});\r\n\r\nconst postCreaTributiDirittoCamerale = (command) => WebRequest.post('/Contribuente/DirittiCamerali/Crea', command);\r\n\r\nconst postEliminaTributiDirittoCamerale = (IdContribuente, Anno) => WebRequest.post('/Contribuente/DirittiCamerali/Elimina', {\r\n IdContribuente, Anno,\r\n});\r\n\r\nconst getOttieniDebitiDaDirittiCamerali = (\r\n idDirittoCamerale,\r\n) => WebRequest.get('/Contribuente/DirittiCamerali/OttieniDebitiDaDirittiCamerali', {\r\n idDirittoCamerale,\r\n});\r\n\r\nconst cercaAnniRiferimentoValidi = () => (\r\n '/Contribuente/DirittiCamerali/CercaAnniRiferimentoValidi');\r\n\r\nexport {\r\n getOttieniProvinciaContribuente,\r\n getOttieniMaggiorazioneCameraCommercio,\r\n getOttieniProvinciaCameraCommercio,\r\n getOttieniImportoBase,\r\n getOttieniRiduzioneDaNormativa,\r\n postCreaTributiDirittoCamerale,\r\n postEliminaTributiDirittoCamerale,\r\n getOttieniDebitiDaDirittiCamerali,\r\n cercaAnniRiferimentoValidi,\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Button, Layout } from 'framework-ui-components/Components/V2';\r\nimport {\r\n Autocomplete, Input, Radio, Restriction, Validation,\r\n} from 'framework-ui-components';\r\nimport DeleteIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/DeleteIcon';\r\nimport { cercaProvinceInTabellaT2 } from '../../../../../apis/tributi';\r\nimport AddCircleOutlineIcon from '../../../../../components/icons/google/AddCircleOutlineIcon';\r\n\r\nconst UnitaLocali = ({\r\n formData,\r\n elaboraValoreAutocompleteUnitaLocali,\r\n aggiungiAltraUnitaLocale,\r\n rimuoviUnitaLocale,\r\n aziendaConSedeLegaleEstero,\r\n}) => (\r\n \r\n {!aziendaConSedeLegaleEstero && (\r\n \r\n \r\n \r\n Hai delle sedi secondarie/altre unità locali?\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {`${formData.ConSediSecondarie}` === 'true' && formData.UnitaLocali && (\r\n formData.UnitaLocali.map((unitaSecondaria, idx) => (\r\n unitaSecondaria && (\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n elaboraValoreAutocompleteUnitaLocali(val, idx)}\r\n name={`UnitaLocali[${idx}].CameraCommercio`}\r\n title=\"Camera di commercio delle unità\"\r\n url={cercaProvinceInTabellaT2()}\r\n renderProperty=\"DescrizioneComposta\"\r\n validations={[\r\n Validation.DefaultRules.required,\r\n ]}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {formData.UnitaLocali.length > 1 && (\r\n \r\n \r\n \r\n rimuoviUnitaLocale(idx)}\r\n >\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n {idx + 1 === formData.UnitaLocali.length && (\r\n \r\n \r\n aggiungiAltraUnitaLocale()}\r\n >\r\n \r\n Aggiungi altre unità locali\r\n \r\n \r\n \r\n )}\r\n
    \r\n )\r\n ))\r\n )}\r\n
    \r\n);\r\n\r\nUnitaLocali.defaultProps = {\r\n};\r\n\r\nUnitaLocali.propTypes = {\r\n formData: PropTypes.shape({\r\n ConSediSecondarie: PropTypes.bool,\r\n UnitaLocali: PropTypes.arrayOf(PropTypes.shape({})),\r\n }).isRequired,\r\n elaboraValoreAutocompleteUnitaLocali: PropTypes.func.isRequired,\r\n aggiungiAltraUnitaLocale: PropTypes.func.isRequired,\r\n rimuoviUnitaLocale: PropTypes.func.isRequired,\r\n aziendaConSedeLegaleEstero: PropTypes.bool.isRequired,\r\n};\r\n\r\nexport default UnitaLocali;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Button, Layout } from 'framework-ui-components/Components/V2';\r\nimport {\r\n Badge, Formatter,\r\n} from 'framework-ui-components';\r\nimport LabelValueDetail from '../../../../../components/custom/LabelValueDetail';\r\nimport LabelOnly from '../../../../../components/custom/LabelOnly';\r\n\r\nconst AntreprimaCalcolo = ({\r\n formData,\r\n anteprimaDirittoCamerale,\r\n}) => (\r\n \r\n \r\n \r\n Importo da versare\r\n \r\n \r\n \r\n \r\n
    \r\n €\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n Riepilogo\r\n
    \r\n
    \r\n {anteprimaDirittoCamerale.tributi.map((t) => (\r\n \r\n
    \r\n \r\n Debito\r\n
    3850
    \r\n del\r\n
    {formData.AnnoDirittoCamerale}
    \r\n scade il\r\n \r\n \r\n \r\n importo\r\n \r\n €\r\n \r\n
    \r\n )}\r\n />\r\n
    \r\n \r\n ))}\r\n \r\n);\r\n\r\nAntreprimaCalcolo.defaultProps = {\r\n};\r\n\r\nAntreprimaCalcolo.propTypes = {\r\n formData: PropTypes.shape({\r\n ConSediSecondarie: PropTypes.bool,\r\n UnitaLocali: PropTypes.arrayOf(PropTypes.shape({})),\r\n AnnoDirittoCamerale: PropTypes.number,\r\n }).isRequired,\r\n anteprimaDirittoCamerale: PropTypes.shape({\r\n importoDaVersare: PropTypes.number,\r\n tributi: PropTypes.arrayOf(PropTypes.shape({})),\r\n }).isRequired,\r\n};\r\n\r\nexport default AntreprimaCalcolo;\r\n","import React, {\r\n useState, useEffect, useCallback, useRef, useMemo,\r\n} from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Autocomplete,\r\n Form, InfoTooltip, Input, Select, Stepper, Validation,\r\n} from 'framework-ui-components';\r\nimport {\r\n Layout,\r\n MiniPanel,\r\n Modal, ButtonGroup, Button, FeedbackPanel,\r\n} from 'framework-ui-components/Components/V2';\r\nimport { useSelector } from 'react-redux';\r\nimport Log, { logApiError } from 'framework-taskforce/utils/log';\r\nimport { getSegnalazioneError } from 'framework-taskforce/models/segnalazioni';\r\nimport { isEmptyObject } from 'framework-taskforce/utils/object';\r\nimport EuroSymbolIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/EuroSymbolIcon';\r\nimport { cercaProvinceInTabellaT2 } from '../../../../../apis/tributi';\r\nimport {\r\n cercaAnniRiferimentoValidi,\r\n getOttieniDebitiDaDirittiCamerali,\r\n getOttieniImportoBase,\r\n getOttieniMaggiorazioneCameraCommercio,\r\n getOttieniProvinciaCameraCommercio,\r\n getOttieniProvinciaContribuente,\r\n getOttieniRiduzioneDaNormativa,\r\n postCreaTributiDirittoCamerale,\r\n postEliminaTributiDirittoCamerale,\r\n} from '../../../../../apis/dirittoCamerale';\r\nimport { TIPO_AZIENDA } from '../../../../../models/anagrafica';\r\nimport UnitaLocali from './UnitaLocali';\r\nimport AntreprimaCalcolo from './AntreprimaCalcolo';\r\n\r\nconst STEP = {\r\n AZIENDA: 1,\r\n SEDE_LEGALE: 2,\r\n UNITA_LOCALI: 3,\r\n};\r\n\r\nconst ModaleCalcoloTributoDirittoCamerale = ({\r\n onClose,\r\n show,\r\n}) => {\r\n const idAnagraficaSogg = useSelector((store) => store.soggetto.idAnagrafica);\r\n const idContribuente = useSelector((store) => store.soggetto.idContribuente);\r\n const loading = useSelector((store) => store.creazioneDeleghe.loading);\r\n\r\n const [currentStep, setCurrentStep] = useState(STEP.AZIENDA);\r\n const [segnalazioni, setSegnalazioni] = useState([]);\r\n const [loadingApi, setLoadingApi] = useState(false);\r\n const [formData, setFormData] = useState({ });\r\n const [isFormValid, setIsFormValid] = useState(false);\r\n const [completato, setCompletato] = useState(false);\r\n const [anteprimaDirittoCamerale, setAnteprimaDirittoCamerale] = useState(null);\r\n\r\n const getStepState = useCallback(\r\n (index) => {\r\n if (index === currentStep) {\r\n return Stepper.State.ACTIVE;\r\n } if (index < currentStep) {\r\n return Stepper.State.DONE;\r\n }\r\n return Stepper.State.TODO;\r\n },\r\n [currentStep],\r\n );\r\n\r\n const formRef = useRef();\r\n\r\n const presetForm = useCallback(({ FormErrors, ...datoModificato }) => {\r\n if (!formData || isEmptyObject(datoModificato)) return;\r\n const newStato = { ...formData, ...datoModificato };\r\n\r\n if (datoModificato.TipoAzienda) {\r\n if (datoModificato.TipoAzienda === TIPO_AZIENDA.SOCIETA_SEDE_ESTERO_UNITA_LOCALI_ITALIA_SPECIALE) {\r\n newStato.ConSediSecondarie = true;\r\n } else {\r\n newStato.ConSediSecondarie = false;\r\n newStato.UnitaLocali = null;\r\n }\r\n }\r\n\r\n setFormData(newStato);\r\n }, [formData]);\r\n\r\n const resetDati = useCallback(() => {\r\n setSegnalazioni([]);\r\n setFormData({ ImportoBase: 0, ConSediSecondarie: false });\r\n setIsFormValid(false);\r\n setCurrentStep(STEP.AZIENDA);\r\n setCompletato(false);\r\n setAnteprimaDirittoCamerale(null);\r\n }, []);\r\n\r\n const testoCrea = useMemo(() => (completato ? 'CREA TRIBUTI' : 'CALCOLA'), [completato]);\r\n\r\n useEffect(() => {\r\n if (!show) {\r\n // reset data on close\r\n resetDati();\r\n }\r\n }, [resetDati, show]);\r\n\r\n useEffect(() => {\r\n if (show) {\r\n resetDati();\r\n }\r\n }, [resetDati, show]);\r\n\r\n useEffect(() => {\r\n if (!formData.UnitaLocali && formData.ConSediSecondarie) {\r\n presetForm({\r\n UnitaLocali: [{\r\n CameraCommercio: null,\r\n NumeroUnita: null,\r\n }],\r\n });\r\n\r\n setTimeout(() => {\r\n formRef.current.valida();\r\n }, 500);\r\n }\r\n }, [formData, presetForm, resetDati, show]);\r\n\r\n const onChangeAutocompletes = (campo, elemento) => {\r\n const autocompleteVals = [];\r\n\r\n if (campo === 'AnnoRiferimento') {\r\n autocompleteVals.AnnoDirittoCamerale = elemento.Anno;\r\n autocompleteVals.RiduzioneDaNormativa = null;\r\n autocompleteVals.UnitaLocali = null;\r\n }\r\n\r\n if (campo === 'CodiceProvincia') {\r\n autocompleteVals.IdCameraCommercio = elemento.IdTabellaT2;\r\n autocompleteVals.CameraCommercio = elemento.DescrizioneComposta;\r\n getOttieniMaggiorazioneCameraCommercio(elemento.IdTabellaT2, formData.AnnoDirittoCamerale)\r\n .then((resMaggiorazione) => {\r\n autocompleteVals.Maggiorazione = resMaggiorazione.Result;\r\n presetForm(autocompleteVals);\r\n })\r\n .catch((err) => {\r\n Log.error(err);\r\n });\r\n } else {\r\n presetForm(autocompleteVals);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (formData.AnnoDirittoCamerale && !formData.RiduzioneDaNormativa) {\r\n getOttieniRiduzioneDaNormativa(formData.AnnoDirittoCamerale)\r\n .then((res) => {\r\n if (res.Success) {\r\n presetForm({ RiduzioneDaNormativa: res.Result });\r\n } else {\r\n presetForm({ RiduzioneDaNormativa: null });\r\n }\r\n })\r\n .catch((err) => {\r\n presetForm({ RiduzioneDaNormativa: null });\r\n Log.error(err);\r\n });\r\n }\r\n }, [formData, presetForm]);\r\n\r\n const recuperaImportoBase = useCallback(\r\n (formDataPrecedente) => {\r\n getOttieniImportoBase(formData.TipoAzienda, formData.FatturatoIrap)\r\n .then((res) => {\r\n if (res.Success) {\r\n const newFormData = { ...formDataPrecedente, ImportoBase: res.Result };\r\n presetForm(newFormData);\r\n } else {\r\n const newFormData = { ...formDataPrecedente, ImportoBase: null };\r\n presetForm(newFormData);\r\n }\r\n })\r\n .catch((err) => {\r\n const newFormData = { ...formDataPrecedente, ImportoBase: null };\r\n presetForm(newFormData);\r\n Log.error(err);\r\n });\r\n },\r\n [formData, presetForm],\r\n );\r\n\r\n const recuperaSedeLegale = useCallback(\r\n () => {\r\n getOttieniProvinciaContribuente(idAnagraficaSogg, formData.TipoAzienda)\r\n .then((res) => {\r\n if (res.Success) {\r\n // presetForm({\r\n // IdProvinciaSedeLegale: res.Result.IdTabellaT2,\r\n // CodiceAgenziaEntrateProvinciaSedeLegale: res.Result.CodiceAgenziaEntrate,\r\n // ProvinciaSedeLegale: res.Result.Descrizione,\r\n // });\r\n\r\n getOttieniProvinciaCameraCommercio(res.Result.IdTabellaT2, formData.AnnoDirittoCamerale)\r\n .then((response) => {\r\n if (response.Success) {\r\n // recuperaImportoBase({\r\n // IdProvinciaSedeLegale: res.Result.IdTabellaT2,\r\n // CodiceAgenziaEntrateProvinciaSedeLegale: res.Result.CodiceAgenziaEntrate,\r\n // ProvinciaSedeLegale: res.Result.Descrizione,\r\n // IdCameraCommercio: response.Result.IdTabellaT2,\r\n // CodiceAgenziaEntrateCameraCommercio: response.Result.CodiceAgenziaEntrate,\r\n // CameraCommercio: response.Result.DescrizioneComposta,\r\n // });\r\n\r\n // TACCONE res.Result.CodiceAgenziaEntrate === 'SU' sud sardegna\r\n\r\n getOttieniMaggiorazioneCameraCommercio(response.Result.IdTabellaT2, formData.AnnoDirittoCamerale)\r\n .then((resMaggiorazione) => {\r\n if (resMaggiorazione.Success) {\r\n recuperaImportoBase({\r\n IdProvinciaSedeLegale: res.Result.IdTabellaT2,\r\n CodiceAgenziaEntrateProvinciaSedeLegale: res.Result.CodiceAgenziaEntrate,\r\n ProvinciaSedeLegale: res.Result.Descrizione,\r\n IdCameraCommercio: res.Result.CodiceAgenziaEntrate === 'SU' ? null : response.Result.IdTabellaT2,\r\n CodiceAgenziaEntrateCameraCommercio: res.Result.CodiceAgenziaEntrate === 'SU' ? null : response.Result.CodiceAgenziaEntrate,\r\n CameraCommercio: res.Result.CodiceAgenziaEntrate === 'SU' ? null : response.Result.DescrizioneComposta,\r\n Maggiorazione: resMaggiorazione.Result,\r\n });\r\n } else {\r\n recuperaImportoBase({\r\n IdProvinciaSedeLegale: res.Result.IdTabellaT2,\r\n CodiceAgenziaEntrateProvinciaSedeLegale: res.Result.CodiceAgenziaEntrate,\r\n ProvinciaSedeLegale: res.Result.Descrizione,\r\n IdCameraCommercio: res.Result.CodiceAgenziaEntrate === 'SU' ? null : response.Result.IdTabellaT2,\r\n CodiceAgenziaEntrateCameraCommercio: res.Result.CodiceAgenziaEntrate === 'SU' ? null : response.Result.CodiceAgenziaEntrate,\r\n CameraCommercio: res.Result.CodiceAgenziaEntrate === 'SU' ? null : response.Result.DescrizioneComposta,\r\n });\r\n }\r\n })\r\n .catch((err) => {\r\n Log.error(err);\r\n });\r\n } else {\r\n recuperaImportoBase({\r\n IdProvinciaSedeLegale: res.Result.CodiceAgenziaEntrate === 'SU' ? null : res.Result.IdTabellaT2,\r\n CodiceAgenziaEntrateProvinciaSedeLegale: res.Result.CodiceAgenziaEntrate === 'SU' ? null : res.Result.CodiceAgenziaEntrate,\r\n ProvinciaSedeLegale: res.Result.CodiceAgenziaEntrate === 'SU' ? null : res.Result.Descrizione,\r\n });\r\n }\r\n })\r\n .catch((err) => {\r\n Log.error(err);\r\n });\r\n } else {\r\n recuperaImportoBase({\r\n IdProvinciaSedeLegale: null,\r\n CodiceAgenziaEntrateProvinciaSedeLegale: null,\r\n IdCameraCommercio: null,\r\n CodiceAgenziaEntrateCameraCommercio: null,\r\n CameraCommercio: null,\r\n ProvinciaSedeLegale: null,\r\n Maggiorazione: null,\r\n });\r\n }\r\n })\r\n .catch((err) => {\r\n Log.error(err);\r\n });\r\n },\r\n [formData, idAnagraficaSogg, recuperaImportoBase],\r\n );\r\n\r\n const creaDirittoCamerale = useCallback(() => {\r\n setLoadingApi(true);\r\n // setCurrentStep(STEP.ELABORAZIONE_DELEGHE);\r\n const oggettoCreazione = {\r\n IdContribuente: idContribuente,\r\n TipoContribuente: formData.TipoAzienda,\r\n IdTabellaT2: formData.IdCameraCommercio,\r\n Anno: formData.AnnoDirittoCamerale,\r\n FatturatoIrap: formData.FatturatoIrap,\r\n Maggiorazione: formData.Maggiorazione,\r\n UnitaLocali: `${formData.ConSediSecondarie}` === 'true' ? formData.UnitaLocali : null,\r\n ScadenzaVersamento: `01/01/${formData.AnnoDirittoCamerale}`, // perchè è obbligatorio e richiede un valore diverso da quello di default\r\n };\r\n\r\n postCreaTributiDirittoCamerale(oggettoCreazione)\r\n .then((res) => {\r\n if (res.Success) {\r\n getOttieniDebitiDaDirittiCamerali(res.Result)\r\n .then((resOttieni) => {\r\n if (resOttieni.Success && resOttieni.Result) {\r\n setAnteprimaDirittoCamerale({\r\n importoDaVersare: resOttieni.Result.map((item) => item.Importo).reduce((prev, next) => prev + next),\r\n tributi: resOttieni.Result,\r\n });\r\n setLoadingApi(false);\r\n setCompletato(true);\r\n } else {\r\n setLoadingApi(false);\r\n }\r\n })\r\n .catch((err) => {\r\n setLoadingApi(false);\r\n Log.error(err);\r\n });\r\n } else {\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n setLoadingApi(false);\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n // onClose(false);\r\n setSegnalazioni(['Si è verificato un errore generico']);\r\n setLoadingApi(false);\r\n });\r\n }, [formData, idContribuente]);\r\n\r\n const onNext = useCallback(() => {\r\n if (currentStep === STEP.AZIENDA) {\r\n if (formData.TipoAzienda === TIPO_AZIENDA.SOCIETA_SEDE_ESTERO_UNITA_LOCALI_ITALIA_SPECIALE) {\r\n recuperaImportoBase({});\r\n setCurrentStep(STEP.UNITA_LOCALI);\r\n } else {\r\n setCurrentStep(STEP.SEDE_LEGALE);\r\n recuperaSedeLegale();\r\n }\r\n } else if (currentStep === STEP.SEDE_LEGALE) {\r\n if (formData.TipoAzienda === TIPO_AZIENDA.ENTE_REA) {\r\n if (!completato) {\r\n setSegnalazioni([]);\r\n creaDirittoCamerale();\r\n } else {\r\n onClose(true, anteprimaDirittoCamerale.importoDaVersare, formData.AnnoDirittoCamerale, anteprimaDirittoCamerale?.tributi[0].DataScadenza);\r\n }\r\n } else {\r\n setCurrentStep(STEP.UNITA_LOCALI);\r\n }\r\n } else if (!completato) {\r\n setSegnalazioni([]);\r\n creaDirittoCamerale();\r\n } else {\r\n onClose(true, anteprimaDirittoCamerale.importoDaVersare, formData.AnnoDirittoCamerale, anteprimaDirittoCamerale?.tributi[0].DataScadenza);\r\n }\r\n }, [anteprimaDirittoCamerale, completato, creaDirittoCamerale, currentStep, formData, onClose, recuperaImportoBase, recuperaSedeLegale]);\r\n\r\n const onPrev = useCallback(() => {\r\n if (!completato) {\r\n if (currentStep === STEP.AZIENDA) {\r\n onClose(false);\r\n } else if (currentStep === STEP.SEDE_LEGALE) {\r\n setCurrentStep(STEP.AZIENDA);\r\n } else if (formData.TipoAzienda === TIPO_AZIENDA.SOCIETA_SEDE_ESTERO_UNITA_LOCALI_ITALIA_SPECIALE) {\r\n setCurrentStep(STEP.AZIENDA);\r\n } else {\r\n setCurrentStep(STEP.SEDE_LEGALE);\r\n }\r\n } else {\r\n postEliminaTributiDirittoCamerale(idContribuente, formData.AnnoDirittoCamerale)\r\n .then((res) => {\r\n if (res.Success) {\r\n setCompletato(false);\r\n } else {\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n setLoadingApi(false);\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n // onClose(false);\r\n setSegnalazioni(['Si è verificato un errore generico']);\r\n setLoadingApi(false);\r\n });\r\n }\r\n }, [completato, currentStep, formData, idContribuente, onClose]);\r\n\r\n const elaboraValoreAutocompleteUnitaLocali = (elemento, idx) => {\r\n const nuoveUnitaLocali = formData.UnitaLocali;\r\n\r\n const unitaLocaleConCameraDiCommercioDaCambiare = formData.UnitaLocali[idx];\r\n\r\n // if (unitaLocaleConCameraDiCommercioDaCambiare === null) {\r\n // unitaLocaleConCameraDiCommercioDaCambiare = { CameraCommercio: { } };\r\n // }\r\n\r\n unitaLocaleConCameraDiCommercioDaCambiare.IdTabellaT2 = elemento.IdTabellaT2;\r\n unitaLocaleConCameraDiCommercioDaCambiare.CameraCommercio = elemento.DescrizioneComposta;\r\n\r\n getOttieniMaggiorazioneCameraCommercio(elemento.IdTabellaT2, formData.AnnoDirittoCamerale)\r\n .then((resMaggiorazione) => {\r\n unitaLocaleConCameraDiCommercioDaCambiare.Maggiorazione = resMaggiorazione.Result;\r\n nuoveUnitaLocali.splice(idx, 1, unitaLocaleConCameraDiCommercioDaCambiare);\r\n\r\n presetForm({\r\n Contitolari: nuoveUnitaLocali,\r\n });\r\n })\r\n .catch((err) => {\r\n Log.error(err);\r\n });\r\n };\r\n\r\n const aggiungiAltraUnitaLocale = useCallback(\r\n () => {\r\n const newStato = {\r\n ...formData,\r\n UnitaLocali:\r\n [...formData.UnitaLocali,\r\n {\r\n CameraCommercio: null,\r\n NumeroUnita: null,\r\n }],\r\n };\r\n setFormData(newStato);\r\n\r\n setTimeout(() => {\r\n formRef.current.valida();\r\n }, 500);\r\n },\r\n [formData],\r\n );\r\n\r\n const rimuoviUnitaLocale = useCallback((idx) => {\r\n const unitaLocali = formData.UnitaLocali;\r\n unitaLocali.splice(idx, 1);\r\n\r\n const newStato = {\r\n ...formData,\r\n UnitaLocali: unitaLocali,\r\n };\r\n setFormData(newStato);\r\n }, [formData]);\r\n\r\n return (\r\n 0 ? () => onClose(false) : null}\r\n initialPos={{ x: 'auto', y: window.innerHeight * 0.1 }}\r\n >\r\n \r\n Calcola e crea il tributo per il Diritto Camerale\r\n \r\n \r\n {!loading && segnalazioni.length > 0\r\n ? (\r\n \r\n
      \r\n {segnalazioni.map((segnalazione, idx) => (\r\n {segnalazione.msg}\r\n \r\n ))}\r\n
    \r\n
    \r\n )}\r\n type=\"alarm\"\r\n />\r\n )\r\n : (\r\n setIsFormValid(validity)}\r\n >\r\n \r\n \r\n \r\n \r\n Compilando i seguenti campi verrà calcolato l'importo da versare\r\n
    \r\n e i relativi tributi verranno creati.\r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n onChangeAutocompletes('AnnoRiferimento', val)}\r\n name=\"AnnoDirittoCamerale\"\r\n title=\"Calcola il diritto camerale per l'anno\"\r\n url={cercaAnniRiferimentoValidi()}\r\n renderProperty=\"Anno\"\r\n validations={[\r\n Validation.DefaultRules.required,\r\n ]}\r\n minLength={1}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n Impresa individuale (ordinaria)\r\n \r\n \r\n Impresa individuale (speciale)\r\n \r\n \r\n Società semplice agricola (speciale)\r\n \r\n \r\n Società semplice non agricola (speciale)\r\n \r\n \r\n Società tra avvocati (speciale)\r\n \r\n \r\n Società con sede legale all'estero (speciale)\r\n \r\n Soggetto iscritto al REA\r\n Altra società (ordinaria)\r\n \r\n \r\n {formData.TipoAzienda === TIPO_AZIENDA.ALTRE_SOCIETA && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n {formData.TipoAzienda === TIPO_AZIENDA.ALTRE_SOCIETA && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n
    \r\n )}\r\n />\r\n {formData.TipoAzienda !== TIPO_AZIENDA.SOCIETA_SEDE_ESTERO_UNITA_LOCALI_ITALIA_SPECIALE && (\r\n \r\n {!completato ? (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Questo dato viene ricavato dall'indirizzo inserito nella sezione Anagrafica.\r\n \r\n \r\n \r\n \r\n {formData.idProvinciaSedeLegale && formData.CameraCommercio ? (\r\n \r\n ) : (\r\n onChangeAutocompletes('CodiceProvincia', val)}\r\n name=\"CameraCommercio\"\r\n title=\"Codice ente\"\r\n url={cercaProvinceInTabellaT2()}\r\n renderProperty=\"DescrizioneComposta\"\r\n validations={[\r\n Validation.DefaultRules.required,\r\n ]}\r\n />\r\n )}\r\n \r\n \r\n {/* {formData.TipoAzienda !== TIPO_AZIENDA.ALTRE_SOCIETA ? ( */}\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n ) : (\r\n \r\n )}\r\n
    \r\n )}\r\n />\r\n )}\r\n {formData.TipoAzienda !== TIPO_AZIENDA.ENTE_REA && (\r\n \r\n {!completato ? (\r\n \r\n {formData.TipoAzienda === TIPO_AZIENDA.SOCIETA_SEDE_ESTERO_UNITA_LOCALI_ITALIA_SPECIALE && (\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n )}\r\n \r\n
    \r\n ) : (\r\n \r\n )}\r\n
    \r\n )}\r\n />\r\n )}\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n onPrev() : () => setSegnalazioni([])}\r\n emphasis={Button.Emphasis.HIGH}\r\n primary={segnalazioni.length > 0}\r\n >\r\n {segnalazioni.length === 0 ? 'INDIETRO' : 'RIPROVA'}\r\n \r\n \r\n {currentStep !== STEP.UNITA_LOCALI && segnalazioni.length === 0 && (\r\n \r\n {formData.TipoAzienda === TIPO_AZIENDA.ENTE_REA && currentStep === STEP.SEDE_LEGALE\r\n ? (testoCrea) : ('AVANTI')}\r\n \r\n )}\r\n {currentStep === STEP.UNITA_LOCALI && segnalazioni.length === 0 && (\r\n \r\n {testoCrea}\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nModaleCalcoloTributoDirittoCamerale.propTypes = {\r\n onClose: PropTypes.func.isRequired,\r\n show: PropTypes.bool.isRequired,\r\n};\r\n\r\nexport default ModaleCalcoloTributoDirittoCamerale;\r\n","import React from 'react';\r\n\r\nconst RadioGroupContext = React.createContext();\r\n\r\nexport default RadioGroupContext;\r\n","import React from 'react';\r\nimport Icon from '../Icons/Icon';\r\n\r\nexport default Icon(\r\n \r\n \r\n \r\n ,\r\n '0 0 2 14',\r\n 'MessageIcon',\r\n);\r\n","import React, { useContext, useCallback } from 'react';\r\nimport cns from 'classnames';\r\nimport PropTypes from 'prop-types';\r\nimport RadioGroupContext from './RadioGroupContext';\r\nimport Radio from '../Radio';\r\nimport Tooltip from '../Tooltip/Tooltip';\r\nimport MessageIcon from './MessageIcon';\r\n\r\n/**\r\n * Componente da inserire nel RadioGroup.\r\n * Gli attributi e il comportamento sono gli stessi del componente Radio, tranne il valore che è gestito dal RadioGroup.\r\n*/\r\nconst RadioItem = (props) => {\r\n const { value, ...others } = props;\r\n const {\r\n onChange, hasError, hasWarning, validationMessage, value: groupValue,\r\n } = useContext(RadioGroupContext);\r\n const handleChange = useCallback((evt) => {\r\n onChange && onChange(value, evt);\r\n }, [onChange, value]);\r\n\r\n const tooltipClassname = cns(\r\n {\r\n 'infoTooltip--alarm': hasError,\r\n 'infoTooltip--warnin': hasWarning,\r\n },\r\n );\r\n\r\n const radioItemClassname = cns(\r\n 'radio-group__item',\r\n {\r\n 'radio-group__item--error': hasError,\r\n 'radio-group__item--warning': hasWarning,\r\n },\r\n );\r\n\r\n if (hasError || hasWarning) {\r\n return (\r\n \r\n
    \r\n \r\n \r\n
    \r\n \r\n );\r\n }\r\n return (\r\n
    \r\n
    \r\n \r\n
    \r\n );\r\n};\r\n\r\nRadioItem.propTypes = {\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n /** Indica se il componente è disabilitato */\r\n disabled: PropTypes.bool,\r\n /** Indica se il componente è readOnly */\r\n readOnly: PropTypes.bool,\r\n /** Etichetta da associare al radio button */\r\n label: PropTypes.string,\r\n /** Tooltip da visualizzare nell'hover del radio */\r\n tooltip: PropTypes.string,\r\n /** Indica il valore collegato al campo */\r\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.bool]),\r\n};\r\n\r\nRadioItem.defaultProps = {\r\n className: '',\r\n disabled: false,\r\n readOnly: false,\r\n label: null,\r\n tooltip: null,\r\n value: null,\r\n};\r\n\r\nexport default RadioItem;\r\n","import { getProp } from '../Utils/formHelpers';\r\nimport Validation from '../Validation';\r\nimport useValidations from './useValidations';\r\n\r\nfunction useFormValidation({\r\n validare, name, validations, value, stato,\r\n}) {\r\n let validazione = { valid: true };\r\n if (validations) {\r\n validazione = Validation.validateAll(validations, (stato && name && getProp(name, stato)) || value || '');\r\n }\r\n const { hasError, hasWarning } = useValidations(validare, false, validazione);\r\n return { hasError, hasWarning, validazione };\r\n}\r\n\r\nexport default useFormValidation;\r\n","import React, { useMemo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\nimport RadioItem from './RadioItem';\r\nimport RadioGroupContext from './RadioGroupContext';\r\nimport useForm from '../Hooks/useForm';\r\nimport { NOOP } from '../../utils/const';\r\nimport useFormValidation from '../Hooks/useFormValidation';\r\nimport { getProp } from '../Utils/formHelpers';\r\n\r\n/**\r\n * Componente per gestire un gruppo di radio button in una form.\r\n*/\r\nconst RadioGroup = ({\r\n children, className, name, onChange, validations, vertical, value,\r\n}) => {\r\n const {\r\n onFormChange,\r\n stato,\r\n notifica,\r\n isValid,\r\n } = useForm(name, NOOP, true);\r\n\r\n const contesto = stato && name && getProp(name, stato);\r\n\r\n const { hasError, hasWarning, validazione } = useFormValidation({\r\n validare: true, name, validations, value, stato,\r\n });\r\n if (isValid != null && name) {\r\n isValid(name, validazione.valid, validazione.messages || []);\r\n }\r\n\r\n const radioGroupClassname = cns(\r\n 'radio-group',\r\n {\r\n 'radio-group--vertical': vertical,\r\n },\r\n\r\n className,\r\n );\r\n\r\n const validationMessage = useMemo(() => {\r\n if (hasError) {\r\n return validazione.messages.join(',');\r\n }\r\n if (hasWarning) {\r\n return validazione.warnings.join(',');\r\n }\r\n return undefined;\r\n }, [hasError, hasWarning, validazione]);\r\n\r\n const context = useMemo(() => {\r\n const handleChange = (v, e) => {\r\n if (name) {\r\n notifica(e, name, e.target.value, NOOP, onFormChange, stato);\r\n }\r\n onChange && onChange(e, v);\r\n };\r\n return ({\r\n name, onChange: handleChange, hasError, hasWarning, validationMessage, value: contesto || value,\r\n });\r\n }, [contesto, hasError, hasWarning, name, notifica, onChange, onFormChange, stato, validationMessage, value]);\r\n\r\n return (\r\n \r\n
    \r\n {children}\r\n
    \r\n
    \r\n );\r\n};\r\n\r\nRadioGroup.Radio = RadioItem;\r\n\r\nRadioGroup.propTypes = {\r\n /** Contenuto del RadioGroup. I componenti devono essere di tipo RadioGroup.Radio */\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node,\r\n ]).isRequired,\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n /** Nome del campo da bindare se il componente è contenuto all'interno di un componente Form */\r\n name: PropTypes.string,\r\n /**\r\nFunzione invocata alla selezione di un elemento.\r\ndove:\r\n\r\n- `value`: valore della radio che ha scatenato l'evento\r\n- `event`: evento scatenante\r\n */\r\n onChange: PropTypes.func,\r\n /** Controlli da effettuare sul campo. Per dettagli vedi\r\n * documentazione su *Validation* */\r\n validations: PropTypes.arrayOf(PropTypes.oneOfType(\r\n [\r\n PropTypes.string,\r\n PropTypes.object,\r\n PropTypes.func,\r\n ],\r\n )),\r\n /** Mostra i radio buttons in verticale */\r\n vertical: PropTypes.bool,\r\n /** Indica il valore del gruppo di radio */\r\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.bool]),\r\n};\r\n\r\nRadioGroup.defaultProps = {\r\n className: '',\r\n name: '',\r\n onChange: null,\r\n validations: null,\r\n vertical: false,\r\n value: undefined,\r\n};\r\n\r\nexport default RadioGroup;\r\n","import RadioGroup from './RadioGroup';\r\n\r\nexport default RadioGroup;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Button, Layout, Table } from 'framework-ui-components/Components/V2';\r\nimport {\r\n Badge, EllipsisText, Formatter, Input,\r\n} from 'framework-ui-components';\r\nimport LabelValueDetail from '../../../../../components/custom/LabelValueDetail';\r\nimport LabelOnly from '../../../../../components/custom/LabelOnly';\r\n\r\nconst AnteprimaRateInps = ({\r\n formData,\r\n listaRate,\r\n}) => (\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    Rate INPS
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {listaRate.map((tributoGestito, idx) => (\r\n // eslint-disable-next-line react/no-array-index-key\r\n \r\n \r\n {formData.CausaleContributo}\r\n \r\n \r\n \r\n {tributoGestito.Rata}\r\n \r\n \r\n \r\n {tributoGestito.DataScadenza}\r\n \r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n);\r\n\r\nAnteprimaRateInps.defaultProps = {\r\n};\r\n\r\nAnteprimaRateInps.propTypes = {\r\n formData: PropTypes.shape({ CausaleContributo: PropTypes.string }).isRequired,\r\n listaRate: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\r\n};\r\n\r\nexport default AnteprimaRateInps;\r\n","import React, {\r\n useState, useEffect, useCallback, useRef,\r\n} from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Autocomplete,\r\n Form, Input, Radio, RadioGroup, Restriction, Select, Validation,\r\n} from 'framework-ui-components';\r\nimport {\r\n Layout,\r\n MiniPanel,\r\n Modal, ButtonGroup, Button, FeedbackPanel,\r\n} from 'framework-ui-components/Components/V2';\r\nimport { useSelector } from 'react-redux';\r\nimport Log, { logApiError } from 'framework-taskforce/utils/log';\r\nimport { getSegnalazioneError } from 'framework-taskforce/models/segnalazioni';\r\nimport useSignalR from 'framework-ui-components/Components/Hooks/useSignalR';\r\nimport { isEmptyObject } from 'framework-taskforce/utils/object';\r\nimport {\r\n cercaSediEntiPrevidenziali, getOttieniCausaliContributoCodelineInps, getOttieniSedeEntePrevidenziale, postCreaRateInps, postEliminaDebiti,\r\n} from '../../../../../apis/tributi';\r\nimport {\r\n cercaAnniRiferimentoValidi,\r\n getOttieniMaggiorazioneCameraCommercio,\r\n} from '../../../../../apis/dirittoCamerale';\r\nimport LabelValueDetail from '../../../../../components/custom/LabelValueDetail';\r\nimport { MESI_ANNO, TIPOLOGIA_SEZIONE, TIPO_LAVORATORE } from '../../../../../models/tributi';\r\nimport AnteprimaRateInps from './AnteprimaRateInps';\r\nimport { getOttieniContribuente } from '../../../../../apis/contribuente';\r\n\r\nconst ModaleCalcoloRateInps = ({\r\n onClose,\r\n show,\r\n}) => {\r\n const idContribuente = useSelector((store) => store.soggetto.idContribuente);\r\n const loading = useSelector((store) => store.creazioneDeleghe.loading);\r\n const codiceFiscaleSoggetto = useSelector((store) => store.soggetto.codiceFiscale);\r\n const tipoPersona = useSelector((store) => store.soggetto.tipoPersona);\r\n const studioSelezionato = useSelector((store) => store.appParams.studioSelezionato);\r\n const [segnalazioni, setSegnalazioni] = useState([]);\r\n const [loadingApi, setLoadingApi] = useState(false);\r\n const [formData, setFormData] = useState({ });\r\n const [isFormValid, setIsFormValid] = useState(false);\r\n const [completato, setCompletato] = useState(false);\r\n const [causaliContributo, setCausaliContributo] = useState(null);\r\n const [listaRateInps, setListaRateInps] = useState([]);\r\n const [precompilaMatricolaConSede, setPrecompilaMatricolaConSede] = useState(true);\r\n const [showPanelNonGestitoMenoDiUnAnno, setShowPanelNonGestitoMenoDiUnAnno] = useState(false);\r\n\r\n const formRef = useRef();\r\n\r\n const presetForm = useCallback(({ FormErrors, ...datoModificato }) => {\r\n if (!formData || isEmptyObject(datoModificato)) return;\r\n const newStato = { ...formData, ...datoModificato };\r\n setFormData(newStato);\r\n }, [formData]);\r\n\r\n const resetDati = useCallback(() => {\r\n setSegnalazioni([]);\r\n setFormData({\r\n MeseRiferimentoDa: 1,\r\n MeseRiferimentoDaDescrizione: '01 - Gennaio',\r\n MeseRiferimentoADescrizione: '12 - Dicembre',\r\n MeseRiferimentoA: 12,\r\n NoPrimaRata: false,\r\n });\r\n setIsFormValid(false);\r\n setCompletato(false);\r\n setCausaliContributo(null);\r\n setListaRateInps([]);\r\n setPrecompilaMatricolaConSede(true);\r\n setShowPanelNonGestitoMenoDiUnAnno(false);\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (!show) {\r\n // reset data on close\r\n resetDati();\r\n }\r\n }, [resetDati, show]);\r\n\r\n useEffect(() => {\r\n if (show) {\r\n resetDati();\r\n }\r\n }, [resetDati, show]);\r\n\r\n useEffect(() => {\r\n if (precompilaMatricolaConSede && show) {\r\n setPrecompilaMatricolaConSede(false);\r\n getOttieniContribuente(studioSelezionato, codiceFiscaleSoggetto)\r\n .then((res) => {\r\n setPrecompilaMatricolaConSede(false);\r\n if (res.Success && res.Result) {\r\n getOttieniSedeEntePrevidenziale(res.Result.IdCodiceSede)\r\n .then((resSede) => {\r\n if (resSede) {\r\n presetForm({\r\n Matricola: res.Result.Matricola,\r\n IdSede: resSede.Id,\r\n CodiceSedeDescrizioneComposta: resSede.DescrizioneComposta,\r\n CodiceAgenziaEntrate: resSede.CodiceAgenziaEntrate,\r\n });\r\n } else {\r\n presetForm({\r\n Matricola: res.Result.Matricola,\r\n });\r\n }\r\n })\r\n .catch((err) => {\r\n Log.error(err);\r\n });\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n });\r\n }\r\n }, [codiceFiscaleSoggetto, precompilaMatricolaConSede, presetForm, show, studioSelezionato, tipoPersona]);\r\n\r\n useEffect(() => {\r\n if (!formData.UnitaLocali && formData.ConSediSecondarie) {\r\n presetForm({\r\n UnitaLocali: [{\r\n CameraCommercio: null,\r\n NumeroUnita: null,\r\n }],\r\n });\r\n\r\n setTimeout(() => {\r\n formRef.current.valida();\r\n }, 500);\r\n }\r\n }, [formData, presetForm, resetDati, show]);\r\n\r\n const onChangeAutocompletes = (campo, elemento) => {\r\n const autocompleteVals = [];\r\n\r\n if (campo === 'CodiceSede') {\r\n autocompleteVals.IdSede = elemento.Id;\r\n autocompleteVals.CodiceSedeDescrizioneComposta = elemento.DescrizioneComposta;\r\n autocompleteVals.CodiceAgenziaEntrate = elemento.CodiceAgenziaEntrate;\r\n }\r\n\r\n if (campo === 'AnnoRiferimento') {\r\n autocompleteVals.AnnoRiferimento = elemento.Anno;\r\n }\r\n\r\n if (campo === 'MeseRiferimentoDa') {\r\n autocompleteVals.MeseRiferimentoDa = elemento.Numero;\r\n autocompleteVals.MeseRiferimentoDaDescrizione = elemento.Descrizione;\r\n }\r\n\r\n if (campo === 'MeseRiferimentoA') {\r\n autocompleteVals.MeseRiferimentoA = elemento.Numero;\r\n autocompleteVals.MeseRiferimentoADescrizione = elemento.Descrizione;\r\n }\r\n\r\n if (campo === 'CodiceProvincia') {\r\n autocompleteVals.IdCameraCommercio = elemento.IdTabellaT2;\r\n autocompleteVals.CameraCommercio = elemento.DescrizioneComposta;\r\n getOttieniMaggiorazioneCameraCommercio(elemento.IdTabellaT2, formData.AnnoDirittoCamerale)\r\n .then((resMaggiorazione) => {\r\n if (resMaggiorazione.Success) {\r\n autocompleteVals.Maggiorazione = resMaggiorazione.Result;\r\n }\r\n\r\n presetForm(autocompleteVals);\r\n })\r\n .catch((err) => {\r\n Log.error(err);\r\n });\r\n } else {\r\n presetForm(autocompleteVals);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (!causaliContributo) {\r\n getOttieniCausaliContributoCodelineInps()\r\n .then((res) => {\r\n if (res.Success) {\r\n setCausaliContributo(res.Result);\r\n } else {\r\n setCausaliContributo(null);\r\n }\r\n })\r\n .catch((err) => {\r\n setCausaliContributo(null);\r\n Log.error(err);\r\n });\r\n }\r\n }, [causaliContributo, formData, presetForm]);\r\n\r\n useEffect(() => {\r\n if (formData.MeseRiferimentoDa && formData.MeseRiferimentoA && (\r\n `${formData.MeseRiferimentoDa}` !== '1' || `${formData.MeseRiferimentoA}` !== '12')\r\n ) {\r\n setShowPanelNonGestitoMenoDiUnAnno(true);\r\n } else {\r\n setShowPanelNonGestitoMenoDiUnAnno(false);\r\n }\r\n }, [formData.MeseRiferimentoA, formData.MeseRiferimentoDa]);\r\n\r\n const creaRateInps = useCallback(() => {\r\n setLoadingApi(true);\r\n // setCurrentStep(STEP.ELABORAZIONE_DELEGHE);\r\n const oggettoCreazione = {\r\n IdContribuente: idContribuente,\r\n PrimaRataGiaCreata: `${formData.AnnoRiferimento}` === '2022' ? formData.NoPrimaRata : false,\r\n MeseDa: formData.MeseRiferimentoDa,\r\n MeseA: formData.MeseRiferimentoA,\r\n Anno: formData.AnnoRiferimento,\r\n Matricola: formData.Matricola,\r\n CodiceSedeAgenziaEntrate: formData.CodiceAgenziaEntrate,\r\n CodiceTributo: formData.CausaleContributo,\r\n TipoLavoratore: formData.CausaleContributo === 'LAA' ? formData.TipoLavoratoreLaa : 0,\r\n TipoContributo: formData.CausaleContributo === 'LAA' ? formData.TipoContributo : 1,\r\n Importo: formData.Importo,\r\n };\r\n postCreaRateInps(oggettoCreazione)\r\n .then((res) => {\r\n if (res.Success) {\r\n // console.log('Ricevo le rate');\r\n } else {\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n setLoadingApi(false);\r\n setCompletato(true);\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n // onClose(false);\r\n setSegnalazioni(['Si è verificato un errore generico']);\r\n setLoadingApi(false);\r\n });\r\n }, [formData, idContribuente]);\r\n\r\n const indietroAnteprima = useCallback(() => {\r\n if (completato) {\r\n // listaRateInps.forEach((tributo, index) => {\r\n postEliminaDebiti(listaRateInps.map((tributo) => ({ IdDebito: tributo.IdTributo, idContribuente })))\r\n .then((response) => {\r\n if (response.Success) { // && index + 1 === tributo.Rata) {\r\n setListaRateInps([]);\r\n }\r\n setCompletato(false);\r\n })\r\n .catch((e) => {\r\n setCompletato(false);\r\n logApiError(e);\r\n });\r\n // });\r\n }\r\n }, [completato, idContribuente, listaRateInps, setListaRateInps]);\r\n\r\n useSignalR('NotificaRateInpsCreate', (data) => {\r\n setCompletato(true);\r\n setLoadingApi(false);\r\n setListaRateInps(data.Debiti.$values);\r\n });\r\n\r\n return (\r\n 0 ? () => onClose(false) : null}\r\n initialPos={{ x: 'auto', y: window.innerHeight * 0.1 }}\r\n >\r\n \r\n Calcola e crea le rate INPS\r\n \r\n \r\n {!loading && segnalazioni.length > 0\r\n ? (\r\n \r\n
      \r\n {segnalazioni.map((segnalazione, idx) => (\r\n {segnalazione.msg}\r\n \r\n ))}\r\n
    \r\n
    \r\n )}\r\n type=\"alarm\"\r\n />\r\n )\r\n : (\r\n setIsFormValid(validity)}\r\n >\r\n {!completato ? (\r\n
    \r\n \r\n \r\n Compilando i seguenti campi verranno calcolate le rate.\r\n
    \r\n Una volta terminata la procedura verrà creato un tributo per ogni rata.\r\n
    \r\n
    \r\n \r\n \r\n onChangeAutocompletes('CodiceSede', val)}\r\n name=\"CodiceSedeDescrizioneComposta\"\r\n title=\"Codice Sede\"\r\n url={cercaSediEntiPrevidenziali(TIPOLOGIA_SEZIONE.INPS, null)}\r\n renderProperty=\"DescrizioneComposta\"\r\n validations={[\r\n Validation.DefaultRules.required,\r\n ]}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {causaliContributo && (\r\n \r\n {causaliContributo.map((causale, idx) => (\r\n {`${causale.Codice} - ${causale.Descrizione}`}\r\n \r\n ))}\r\n \r\n )}\r\n \r\n \r\n {`${formData.CausaleContributo}` === 'LAA' && (\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n
    \r\n )}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n IVS_OTI_CD\r\n IVS_OTI_CM\r\n IVS_PCCF_IATP\r\n SSN_OTI_CD\r\n SSN_OTD_CM\r\n SSN_PCCF_IATP\r\n \r\n \r\n \r\n
    \r\n )}\r\n \r\n \r\n onChangeAutocompletes('AnnoRiferimento', val)}\r\n name=\"AnnoRiferimento\"\r\n title=\"Anno\"\r\n url={cercaAnniRiferimentoValidi()}\r\n renderProperty=\"Anno\"\r\n validations={[Validation.DefaultRules.required]}\r\n minLength={1}\r\n />\r\n \r\n \r\n \r\n onChangeAutocompletes('MeseRiferimentoDa', val)}\r\n name=\"MeseRiferimentoDaDescrizione\"\r\n title=\"Mese da\"\r\n dataSource={MESI_ANNO}\r\n renderProperty=\"Descrizione\"\r\n validations={[Validation.DefaultRules.required]}\r\n minLength={1}\r\n />\r\n \r\n \r\n \r\n onChangeAutocompletes('MeseRiferimentoA', val)}\r\n name=\"MeseRiferimentoADescrizione\"\r\n title=\"Mese a\"\r\n dataSource={MESI_ANNO}\r\n renderProperty=\"Descrizione\"\r\n validations={[Validation.DefaultRules.required]}\r\n minLength={1}\r\n />\r\n \r\n {/* \r\n \r\n \r\n \r\n \r\n \r\n */}\r\n \r\n {showPanelNonGestitoMenoDiUnAnno && (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n {`${formData.AnnoRiferimento}` === '2022' && (\r\n
    \r\n \r\n \r\n La rata del 16/05/2022 è già stata creata manualmente?\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n )}\r\n
    \r\n ) : (\r\n \r\n // )}\r\n )}\r\n \r\n )}\r\n \r\n \r\n \r\n {completato && (\r\n indietroAnteprima() : () => { setCompletato(false); setSegnalazioni([]); }}\r\n emphasis={Button.Emphasis.HIGH}\r\n primary={segnalazioni.length > 0}\r\n >\r\n {segnalazioni.length === 0 ? 'INDIETRO' : 'RIPROVA'}\r\n \r\n )}\r\n {segnalazioni.length === 0 && (\r\n creaRateInps() : () => onClose(true, {\r\n Codice: formData.CausaleContributo,\r\n DataScadenza: listaRateInps[listaRateInps.length - 1].DataScadenza,\r\n Importo: listaRateInps[listaRateInps.length - 1].Importo,\r\n Anno: formData.AnnoRiferimento,\r\n })}\r\n emphasis={Button.Emphasis.HIGH}\r\n primary\r\n running={loading || loadingApi}\r\n disabled={!isFormValid}\r\n >\r\n {!completato ? 'CALCOLA' : 'CREA TRIBUTI'}\r\n \r\n )}\r\n {/*\r\n {currentStep === STEP.UNITA_LOCALI && segnalazioni.length === 0 && (\r\n \r\n {completato ? 'CREA TRIBUTI' : 'CALCOLA E CREA'}\r\n \r\n )}\r\n */}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nModaleCalcoloRateInps.propTypes = {\r\n onClose: PropTypes.func.isRequired,\r\n show: PropTypes.bool.isRequired,\r\n};\r\n\r\nexport default ModaleCalcoloRateInps;\r\n","import React, { useEffect, useState } from 'react';\r\nimport {\r\n InfoTooltip,\r\n} from 'framework-ui-components';\r\nimport PropTypes from 'prop-types';\r\nimport { Button } from 'framework-ui-components/Components/V2';\r\nimport Radio from 'framework-ui-components/Components/Radio';\r\n\r\nconst ElencoAnni = ({\r\n annualitaDisponibili, cambioRadioAnnoSelezionato, annoSelezionato,\r\n}) => {\r\n const [espanso, setEspanso] = useState(null);\r\n const numeroAnniDaVisualizzare = 3;\r\n\r\n useEffect(() => {\r\n if (annualitaDisponibili && annualitaDisponibili.length > numeroAnniDaVisualizzare) {\r\n setEspanso(false);\r\n } else {\r\n setEspanso(true);\r\n }\r\n }, [annualitaDisponibili]);\r\n\r\n return espanso || (\r\n annualitaDisponibili && annualitaDisponibili.findIndex((x) => x.Anno === annoSelezionato) >= numeroAnniDaVisualizzare\r\n )\r\n ? (\r\n
    \r\n
    \r\n Anno\r\n
    \r\n {annualitaDisponibili && annualitaDisponibili.map((anno, idx) => (\r\n \r\n
    \r\n cambioRadioAnnoSelezionato(event.target.value)}\r\n checked={anno.Anno === annoSelezionato}\r\n />\r\n
    \r\n {new Date().getUTCFullYear() > anno.Anno && (anno.CreditiAperti > 0 || anno.DebitiAperti > 0) && (\r\n \r\n Ci sono {anno.DebitiAperti > 0 && (`${anno.DebitiAperti} debiti ${anno.CreditiAperti > 0 ? (' e ') : ''}`)}\r\n {anno.CreditiAperti > 0 ? (`${anno.CreditiAperti} crediti `) : ''}\r\n aperti\r\n \r\n )}\r\n
    \r\n ))}\r\n
    \r\n {annualitaDisponibili && annualitaDisponibili.length > numeroAnniDaVisualizzare\r\n && annualitaDisponibili.findIndex((x) => x.Anno === annoSelezionato) < numeroAnniDaVisualizzare\r\n && (\r\n setEspanso(false)}\r\n >\r\n Nascondi anni precedenti\r\n \r\n )}\r\n
    \r\n ) : (\r\n
    \r\n
    \r\n Anno\r\n
    \r\n {annualitaDisponibili && annualitaDisponibili.map((anno, idx) => idx < numeroAnniDaVisualizzare && (\r\n anno.Anno && (anno.CreditiAperti > 0 || anno.DebitiAperti > 0) > 0\r\n ? '77px' : '52px',\r\n }}\r\n className=\"mr-32 displayInlineMiddle\"\r\n >\r\n
    \r\n cambioRadioAnnoSelezionato(event.target.value)}\r\n checked={anno.Anno === annoSelezionato}\r\n />\r\n
    \r\n {new Date().getUTCFullYear() > anno.Anno && (anno.CreditiAperti > 0 || anno.DebitiAperti > 0) && (\r\n \r\n Ci sono {anno.DebitiAperti > 0 && (`${anno.DebitiAperti} debiti ${anno.CreditiAperti > 0 ? (' e ') : ''}`)}\r\n {anno.CreditiAperti > 0 ? (`${anno.CreditiAperti} crediti `) : ''}\r\n aperti\r\n \r\n )}\r\n
    \r\n ))}\r\n {annualitaDisponibili && annualitaDisponibili.length > numeroAnniDaVisualizzare && (\r\n setEspanso(true)}\r\n >\r\n Vedi anni precedenti\r\n {annualitaDisponibili\r\n && (annualitaDisponibili.slice(numeroAnniDaVisualizzare).some((x) => x.CreditiAperti > 0)\r\n || annualitaDisponibili.slice(numeroAnniDaVisualizzare).some((x) => x.DebitiAperti > 0)) && (\r\n \r\n Ci sono {annualitaDisponibili.slice(numeroAnniDaVisualizzare).some((x) => x.DebitiAperti > 0)\r\n && (`debiti ${annualitaDisponibili.slice(numeroAnniDaVisualizzare).some((x) => x.CreditiAperti > 0) ? (' e ') : ''}`)}\r\n {annualitaDisponibili.slice(numeroAnniDaVisualizzare).some((x) => x.CreditiAperti > 0) ? ('crediti ') : ''}\r\n aperti\r\n \r\n )}\r\n \r\n )}\r\n
    \r\n
    \r\n );\r\n};\r\n\r\nElencoAnni.defaultProps = {\r\n annualitaDisponibili: [],\r\n annoSelezionato: null,\r\n};\r\n\r\nElencoAnni.propTypes = {\r\n annualitaDisponibili: PropTypes.arrayOf(\r\n PropTypes.shape({\r\n Anno: PropTypes.number,\r\n }),\r\n ),\r\n cambioRadioAnnoSelezionato: PropTypes.func.isRequired,\r\n annoSelezionato: PropTypes.number,\r\n};\r\n\r\nexport default ElencoAnni;\r\n","/* eslint-disable no-nested-ternary */\r\nimport React, {\r\n forwardRef, useCallback, useState,\r\n} from 'react';\r\nimport {\r\n Formatter,\r\n Grid, InfoTooltip, Radio,\r\n} from 'framework-ui-components';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Button, ButtonGroup, DropdownButton, FeedbackModal, Panel, ViewportProvider, Modal, FeedbackPanel,\r\n} from 'framework-ui-components/Components/V2';\r\nimport useViewport from 'framework-ui-components/Components/V2/Hooks/useViewport';\r\nimport AddIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/AddIcon';\r\nimport { useSelector } from 'react-redux';\r\nimport TabellaTributiSoggetto from './tabella/TabellaTributiSoggetto';\r\nimport { TIPOLOGIA_TRIBUTO } from '../../../../models/tributi';\r\nimport { createDate } from '../../../../utils/format';\r\nimport CheckboxTitle from '../../../../components/custom/CheckboxTitle';\r\nimport TemplateGrid from '../../../../components/TemplateGrid/TemplateGrid';\r\nimport BottoniGestioneSingola from './bottoni/BottoniGestioneSingola';\r\nimport BottoniGestioneMassiva from './bottoni/BottoniGestioneMassiva';\r\nimport ModaleCalcoloTributoDirittoCamerale from './dirittoCamerale/ModaleCalcoloTributoDirittoCamerale';\r\nimport { TIPO_PERSONA } from '../../../../models/anagrafica';\r\nimport ModaleCalcoloRateInps from './rateInps/ModaleCalcoloRateInps';\r\nimport ElencoAnni from '../../../../components/ElencoAnni';\r\n\r\nconst TabListaTributi = forwardRef(({\r\n setCreaTributo,\r\n creazioneInCorso,\r\n successoCrezioneTributo,\r\n setSuccessoCrezioneTributo,\r\n idContribuente,\r\n annualitaDisponibili,\r\n annoSelezionato,\r\n cambioRadioAnnoSelezionato,\r\n cambioStatoSelezionato,\r\n contatoriCrediti,\r\n contatoriDebiti,\r\n mostraAperti,\r\n successoGestioneProp,\r\n setSuccessoGestioneProp,\r\n inCorsoGestioneMassiva,\r\n setModaleGestisciScadenza,\r\n setModaleGestisciMassivamenteScadenza,\r\n setModaleCreazioneDelegheDaTributi,\r\n cercaNelleScadenze,\r\n setModaleCreazioneDelegheDaTributo,\r\n eseguiChiusuraForzata,\r\n annullaChiusuraForzata,\r\n eliminaTributo,\r\n showOperazioneAsincrona,\r\n setShowOperazioneAsincrona,\r\n setModaleGestisciScadenzaInTabella,\r\n modaleGestisciScadenzaInTabella,\r\n refreshAnniTabella,\r\n chiamataContatori,\r\n setModificaTributo,\r\n fromScadenzario,\r\n}, ref) => {\r\n const rowsTributiSelected = useSelector(\r\n (store) => store.appParams.rowsTributi,\r\n );\r\n const appParamVisualizzazione = useSelector((store) => !!store.appParams.visualizzazione);\r\n const noToolbar = useSelector((store) => store.appParams.noToolbar);\r\n const haPartitaIva = useSelector((store) => store.soggetto.haPartitaIva);\r\n const tipoPersona = useSelector((store) => store.soggetto.tipoPersona);\r\n\r\n const { height } = useViewport();\r\n\r\n const [successoGestione, setSuccessoGestione] = useState({\r\n successo: false, sezione: 'erario', tipo: 'debito', annoDiRiferimento: null,\r\n });\r\n\r\n const [checkedTipologiCrediti, setCheckedTipologiCrediti] = useState(true);\r\n const [checkedTipologiDebiti, setCheckedTipologiDebiti] = useState(true);\r\n const [showCalcoloTributoDirittoCamerale, setShowCalcoloTributoDirittoCamerale] = useState(false);\r\n const [showCalcoloRateInps, setShowCalcoloRateInps] = useState(false);\r\n\r\n const cambioTipologiaCrediti = useCallback((event) => {\r\n if ((checkedTipologiCrediti && checkedTipologiDebiti) || event.target.checked) {\r\n setCheckedTipologiCrediti(event.target.checked);\r\n } else if (!checkedTipologiCrediti && checkedTipologiDebiti) {\r\n setCheckedTipologiCrediti(event.target.checked);\r\n }\r\n }, [checkedTipologiCrediti, checkedTipologiDebiti]);\r\n\r\n const cambioTipologiaDebiti = useCallback((event) => {\r\n if ((checkedTipologiCrediti && checkedTipologiDebiti) || event.target.checked) {\r\n setCheckedTipologiDebiti(event.target.checked);\r\n } else if (checkedTipologiCrediti && !checkedTipologiDebiti) {\r\n setCheckedTipologiCrediti(event.target.checked);\r\n }\r\n }, [checkedTipologiCrediti, checkedTipologiDebiti]);\r\n\r\n const chiusuraModaleCalcoloTributoDirittoCamerale = useCallback(\r\n (success, importo = null, annoDirittoCamerale = null, dataScadenza = null) => {\r\n setShowCalcoloTributoDirittoCamerale(false);\r\n if (success) {\r\n const data = new Date(dataScadenza);\r\n cambioRadioAnnoSelezionato(annoDirittoCamerale);\r\n refreshAnniTabella();\r\n setSuccessoCrezioneTributo({\r\n successo: true,\r\n codice: 3850,\r\n sezione: 'Imu e altri Tributi Locali',\r\n tipo: 'debito',\r\n importo: null,\r\n dataScadenza: data.toLocaleDateString('en-GB'),\r\n });\r\n }\r\n },\r\n [cambioRadioAnnoSelezionato, refreshAnniTabella, setSuccessoCrezioneTributo],\r\n );\r\n\r\n const chiusuraModaleCalcoloRateInps = useCallback(\r\n (success, ultimoGenerato = null) => {\r\n setShowCalcoloRateInps(false);\r\n if (success && ultimoGenerato) {\r\n cambioRadioAnnoSelezionato(ultimoGenerato.Anno);\r\n refreshAnniTabella();\r\n setSuccessoCrezioneTributo({\r\n successo: true,\r\n codice: ultimoGenerato.Codice,\r\n sezione: 'INPS',\r\n tipo: 'debito',\r\n importo: null, // ultimoGenerato.Importo,\r\n dataScadenza: null, // ultimoGenerato.DataScadenza,\r\n rateInps: true,\r\n });\r\n }\r\n },\r\n [cambioRadioAnnoSelezionato, refreshAnniTabella, setSuccessoCrezioneTributo],\r\n );\r\n\r\n return (\r\n \r\n 741\r\n ? { display: 'inline-flex', flexDirection: 'column', maxHeight: `${noToolbar ? '85vh' : '83vh'}` }\r\n : { display: 'inline-flex', flexDirection: 'column', maxHeight: `${noToolbar ? '82vh' : '64vh'}` }\r\n }\r\n >\r\n \r\n {successoCrezioneTributo.successo && !successoCrezioneTributo.rateInps && (\r\n \r\n \r\n setSuccessoCrezioneTributo({ successo: false })}\r\n className=\"mt-18\"\r\n />\r\n \r\n \r\n )}\r\n {successoCrezioneTributo.successo && successoCrezioneTributo.rateInps && (\r\n \r\n \r\n setSuccessoCrezioneTributo({ successo: false })}\r\n className=\"mt-18\"\r\n />\r\n \r\n \r\n )}\r\n {(successoGestioneProp.successo || successoGestione.successo) && (\r\n \r\n \r\n { setSuccessoGestione({ successo: false }); setSuccessoGestioneProp({ successo: false }); }}\r\n className=\"mt-18\"\r\n />\r\n \r\n \r\n )}\r\n 741 ? 'mt-26' : 'mt-11'}`}>\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n { ((!rowsTributiSelected || rowsTributiSelected.length === 0) || !mostraAperti) && (\r\n\r\n \r\n \r\n Crea tributo\r\n \r\n setCreaTributo(TIPOLOGIA_TRIBUTO.DEBITO)}\r\n running={creazioneInCorso}\r\n disabled={appParamVisualizzazione}\r\n >\r\n Crea debito\r\n \r\n setCreaTributo(TIPOLOGIA_TRIBUTO.CREDITO)}\r\n running={creazioneInCorso}\r\n disabled={appParamVisualizzazione}\r\n >\r\n Crea credito\r\n \r\n {haPartitaIva && (\r\n setShowCalcoloTributoDirittoCamerale(true)}\r\n disabled={appParamVisualizzazione}\r\n >\r\n Calcola e crea il tributo per il Diritto Camerale\r\n \r\n )}\r\n {tipoPersona === TIPO_PERSONA.PERSONA_FISICA && (\r\n setShowCalcoloRateInps(true)}\r\n disabled={appParamVisualizzazione}\r\n className=\"no-opacity\"\r\n >\r\n
    \r\n Calcola e crea le rate INPS\r\n \r\n
    \r\n Per artigiani, commercianti\r\n
    \r\n e lavoratori agricoli autonomi\r\n
    \r\n
    \r\n
    \r\n \r\n )}\r\n
    \r\n \r\n )}\r\n { rowsTributiSelected\r\n && (rowsTributiSelected.length === 1)\r\n && mostraAperti\r\n && (\r\n \r\n )}\r\n { mostraAperti && rowsTributiSelected && rowsTributiSelected.length !== 1\r\n && (\r\n \r\n )}\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n 741 ? 'mt-20 mb-22' : 'mt-5 mb-7'} `}\r\n templates={[\r\n {\r\n cols: [\r\n { className: '', width: '220px' },\r\n { className: 'ml-40', width: '220px' },\r\n ],\r\n rows: [{ className: '' }],\r\n },\r\n ]}\r\n >\r\n
    \r\n Stato\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n Tipologia dei tributi\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n {idContribuente && annoSelezionato && (\r\n \r\n )}\r\n
    \r\n\r\n
    \r\n {showOperazioneAsincrona.success ? (\r\n setShowOperazioneAsincrona({\r\n show: false, modalTitle: '', title: '', message: '', success: true,\r\n })}\r\n initialPos={{ x: 'auto', y: window.innerHeight * 0.1 }}\r\n style={{ maxWidth: '800px' }}\r\n >\r\n \r\n {showOperazioneAsincrona.modalTitle}\r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n {showOperazioneAsincrona.message}\r\n
    \r\n
    \r\n \r\n setShowOperazioneAsincrona({\r\n show: false, modalTitle: '', title: '', message: '', success: true,\r\n })}\r\n >HO CAPITO\r\n \r\n \r\n \r\n ) : (\r\n setShowOperazioneAsincrona({\r\n show: false, modalTitle: '', title: '', message: '', success: true,\r\n })}\r\n buttonLabel=\"HO CAPITO\"\r\n message={showOperazioneAsincrona.message}\r\n type=\"alarm\"\r\n initialPos={{ x: 'auto', y: window.innerHeight * 0.1 }}\r\n />\r\n )}\r\n
    \r\n\r\n \r\n \r\n
    \r\n \r\n );\r\n});\r\n\r\nTabListaTributi.defaultProps = {\r\n successoCrezioneTributo: {},\r\n idContribuente: null,\r\n annualitaDisponibili: null,\r\n annoSelezionato: null,\r\n contatoriCrediti: 0,\r\n contatoriDebiti: 0,\r\n mostraAperti: true,\r\n successoGestioneProp: {},\r\n inCorsoGestioneMassiva: false,\r\n fromScadenzario: false,\r\n setShowOperazioneAsincrona: null,\r\n};\r\n\r\nTabListaTributi.propTypes = {\r\n creazioneInCorso: PropTypes.bool.isRequired,\r\n setCreaTributo: PropTypes.func.isRequired,\r\n successoCrezioneTributo: PropTypes.shape({\r\n successo: PropTypes.bool,\r\n tipo: PropTypes.number,\r\n codice: PropTypes.string,\r\n sezione: PropTypes.string,\r\n importo: PropTypes.string,\r\n dataScadenza: PropTypes.string,\r\n rateInps: PropTypes.bool,\r\n isModifica: PropTypes.bool,\r\n }),\r\n setSuccessoCrezioneTributo: PropTypes.func.isRequired,\r\n idContribuente: PropTypes.number,\r\n annualitaDisponibili: PropTypes.arrayOf(PropTypes.shape({ Anno: PropTypes.number })),\r\n annoSelezionato: PropTypes.number,\r\n cambioRadioAnnoSelezionato: PropTypes.func.isRequired,\r\n cambioStatoSelezionato: PropTypes.func.isRequired,\r\n contatoriCrediti: PropTypes.number,\r\n contatoriDebiti: PropTypes.number,\r\n mostraAperti: PropTypes.bool,\r\n successoGestioneProp: PropTypes.shape({\r\n successo: PropTypes.bool,\r\n tipo: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\r\n codice: PropTypes.string,\r\n sezione: PropTypes.string,\r\n importo: PropTypes.string,\r\n dataScadenza: PropTypes.string,\r\n }),\r\n setSuccessoGestioneProp: PropTypes.func.isRequired,\r\n inCorsoGestioneMassiva: PropTypes.bool,\r\n setModaleGestisciScadenza: PropTypes.func.isRequired,\r\n setModaleGestisciMassivamenteScadenza: PropTypes.func.isRequired,\r\n setModaleCreazioneDelegheDaTributi: PropTypes.func.isRequired,\r\n cercaNelleScadenze: PropTypes.func.isRequired,\r\n setModaleCreazioneDelegheDaTributo: PropTypes.func.isRequired,\r\n eseguiChiusuraForzata: PropTypes.func.isRequired,\r\n annullaChiusuraForzata: PropTypes.func.isRequired,\r\n eliminaTributo: PropTypes.func.isRequired,\r\n showOperazioneAsincrona: PropTypes.shape({\r\n show: PropTypes.bool,\r\n title: PropTypes.string,\r\n modalTitle: PropTypes.string,\r\n message: PropTypes.string,\r\n success: PropTypes.bool,\r\n }).isRequired,\r\n setShowOperazioneAsincrona: PropTypes.func,\r\n setModaleGestisciScadenzaInTabella: PropTypes.func.isRequired,\r\n modaleGestisciScadenzaInTabella: PropTypes.oneOfType([\r\n PropTypes.bool,\r\n PropTypes.object,\r\n ]).isRequired,\r\n refreshAnniTabella: PropTypes.func.isRequired,\r\n chiamataContatori: PropTypes.func.isRequired,\r\n setModificaTributo: PropTypes.func.isRequired,\r\n fromScadenzario: PropTypes.bool,\r\n};\r\n\r\nexport default TabListaTributi;\r\n","/* eslint-disable max-len */\r\nimport React from 'react';\r\nimport Icon from '../../Icons/Icon';\r\n\r\nexport default Icon(\r\n \r\n \r\n \r\n \r\n \r\n ,\r\n '0 0 24 24',\r\n 'NoteDoneIcon',\r\n);\r\n","/* eslint-disable no-nested-ternary */\r\nimport React, { useCallback, useEffect, useState } from 'react';\r\nimport {\r\n Badge,\r\n InfoTooltip,\r\n Tooltip,\r\n} from 'framework-ui-components';\r\nimport { useSelector } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport { useHistory } from 'react-router';\r\nimport {\r\n Button, DropdownButton, Table,\r\n} from 'framework-ui-components/Components/V2';\r\nimport { JustADate } from 'framework-taskforce/utils/date';\r\nimport { STOP_EVENT_PROPAGATION } from 'framework-ui-components/utils/const';\r\nimport MoreVertIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/MoreVertIcon';\r\nimport { logApiError } from 'framework-taskforce/utils/log';\r\nimport SendIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/SendIcon';\r\nimport { callDownloadFile } from 'framework-taskforce/utils/file';\r\nimport { getSegnalazioneError } from 'framework-taskforce/models/segnalazioni';\r\nimport { useLocation } from 'react-router-dom';\r\nimport NoteDoneIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/NoteDoneIcon';\r\nimport { delegaSoggettoUrl } from '../../../../../../models/urls';\r\nimport apiDownloadFile from '../../../../../../apis/file';\r\nimport { getCurrencyValueNoSymbol } from '../../../../../../utils/format';\r\nimport {\r\n getEtichetteDelega,\r\n postStampaDelegaProvvisoria,\r\n} from '../../../../../../apis/deleghe';\r\nimport UndoIcon from '../../../../../../components/icons/google/UndoIcon';\r\nimport PrinterIcon from '../../../../../../components/icons/google/PrinterIcon';\r\nimport ModaleDichiaraPagata from '../presentate/ModaleDichiaraPagata';\r\nimport EtichetteDelega from '../../../../../../components/EtichetteDelega';\r\nimport ModaleAiutaci from '../../../../../../components/ModaleAiutaci';\r\nimport SendCancelledIcon from '../../../../../../components/icons/google/SendCancelledIcon';\r\nimport ModaleRischiDiPagareDueVolte from './ModaleRischiDiPagareDueVolte';\r\nimport { STEP_SCELTA_TELEMATICO } from '../../../../../../models/delega';\r\n\r\nconst RigaDelegheCompleteSoggetto = ({\r\n item: {\r\n IdDelega,\r\n TipoDelega,\r\n ScadenzaVersamento,\r\n IdContribuente,\r\n Stato,\r\n StatoInvioTelematico,\r\n Saldo,\r\n Iban,\r\n IsCreaStampaDaConsegnareAttivo,\r\n IsInviaFileTelematicoContribuenteConCbiAttivo,\r\n IsCreaFileTelematicoContribuenteAttivo,\r\n IsCreaFileTelematicoIntermediarioAttivo,\r\n IsInviaFileTelematicoIntermediarioConAdeleAttivo,\r\n IsDichiaraPagataAttivo,\r\n IsDichiaraApertaAttivo,\r\n IsDelegaConCompensazioni,\r\n IsDichiaraDaNonPresentareAttivo,\r\n IsDaNonPresentare,\r\n ImportoDebito,\r\n ImportoCredito,\r\n TipoDelegaDescrizione,\r\n NumeroNote,\r\n },\r\n additionalRowData: {\r\n // ufficioSelezionato,\r\n searchTerm,\r\n dichiaraAperta,\r\n dichiaraPagata,\r\n dichiaraDaNonPresentare,\r\n dichiaraDaPresentare,\r\n setDatiModalePresentazione,\r\n setSegnalazioni,\r\n segnalazioni,\r\n segnalazioniDichiaraPagata,\r\n setSegnalazioniDichiaraPagata,\r\n windowWidth,\r\n windowHeight,\r\n },\r\n}) => {\r\n const history = useHistory();\r\n const location = useLocation();\r\n\r\n const appParamVisualizzazione = useSelector((store) => !!store.appParams.visualizzazione);\r\n const codiceUfficioOperatore = useSelector((store) => store.appParams.codiceUfficioOperatore);\r\n const codiceUfficioSelezionato = useSelector((store) => store.appParams.ufficioSelezionato);\r\n\r\n const [etichetteDelega, setEtichetteDelega] = useState([]);\r\n const etichetteSingolaChiamataAttivo = true;\r\n\r\n const [showModaleDichiaraPagata, setShowModaleDichiaraPagata] = useState(false);\r\n const [showConfirmSegnaDaNonPresentare, setShowConfirmSegnaDaNonPresentare] = useState(false);\r\n const [confirmFunzionalitaMancante, setConfirmFunzionalitaMancante] = useState(false);\r\n\r\n const gotoDelegaSoggetto = useCallback((idDelega) => {\r\n history.push(delegaSoggettoUrl(idDelega, appParamVisualizzazione, codiceUfficioOperatore, false, location.pathname.startsWith('/Scadenzario/')));\r\n }, [location, history, appParamVisualizzazione, codiceUfficioOperatore]);\r\n\r\n const chiusuraModaleDichiaraPagata = useCallback((esito) => {\r\n setShowModaleDichiaraPagata(false);\r\n setSegnalazioni([]);\r\n }, [setSegnalazioni]);\r\n\r\n const stampaF24Provvisorio = (idDelega) => {\r\n postStampaDelegaProvvisoria(idDelega).then((res) => {\r\n if (res.Success) {\r\n callDownloadFile(\r\n apiDownloadFile,\r\n res.Result.NomeFile,\r\n res.Result.IdFile,\r\n codiceUfficioSelezionato,\r\n res.Result.NomeFile,\r\n ).then((resDownload) => {\r\n // setLoading(false);\r\n }).catch((e) => {\r\n logApiError(e);\r\n // setLoading(false);\r\n });\r\n } else {\r\n // setLoading(false);\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n // setLoading(false);\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n getEtichetteDelega(IdDelega)\r\n .then((res) => {\r\n if (res.Success) {\r\n setEtichetteDelega(res.Result);\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n });\r\n }, [IdDelega]);\r\n\r\n return (\r\n \r\n gotoDelegaSoggetto(IdDelega)}\r\n >\r\n \r\n {TipoDelegaDescrizione}\r\n \r\n \r\n \r\n {ScadenzaVersamento === null ? '-' : `${JustADate(ScadenzaVersamento)}`}\r\n {new Date(ScadenzaVersamento) < new Date().setHours(0, 0, 0, 0) && (\r\n
    \r\n \r\n La delega è scaduta\r\n \r\n
    \r\n )}\r\n
    \r\n \r\n \r\n
    \r\n {etichetteSingolaChiamataAttivo && }\r\n
    \r\n
    \r\n \r\n \r\n {Iban || (\r\n \r\n IBAN Assente\r\n \r\n )}\r\n \r\n \r\n \r\n {ImportoDebito ? `${getCurrencyValueNoSymbol(ImportoDebito)}` : '0,00'}\r\n \r\n \r\n \r\n {ImportoCredito ? `${getCurrencyValueNoSymbol(ImportoCredito)}` : '0,00'}\r\n \r\n \r\n \r\n {Saldo !== null ? `${getCurrencyValueNoSymbol(Saldo, true)}` : '-'}\r\n \r\n \r\n \r\n {NumeroNote > 0 && (\r\n windowWidth < 1600}\r\n >\r\n
    \r\n \r\n {windowWidth >= 1600 && (\r\n Note presenti\r\n )}\r\n
    \r\n \r\n )}\r\n
    \r\n \r\n \r\n { windowWidth > 1465 ? (\r\n !IsDaNonPresentare && (\r\n (IsDichiaraDaNonPresentareAttivo\r\n && JSON.parse(window.localStorage.getItem('possibilita-di-non-presentare-non-visualizza-piu')) !== 'messageRead'\r\n ? setShowConfirmSegnaDaNonPresentare(true) : setDatiModalePresentazione({\r\n show: true,\r\n idDelega: IdDelega,\r\n isCreaStampaDaConsegnareAttivo: IsCreaStampaDaConsegnareAttivo,\r\n dataVersamento: ScadenzaVersamento,\r\n ibanAssociatoAllaDelega: Iban,\r\n infoModalitaPresentazione: null,\r\n tipoDelegaDescrizione: TipoDelegaDescrizione,\r\n modalitaPresentazione: STEP_SCELTA_TELEMATICO.SELEZIONE_PRESENTAZIONE,\r\n saldo: Saldo,\r\n windowHeight,\r\n }))}\r\n primary\r\n disabled={appParamVisualizzazione}\r\n >\r\n \r\n Presenta la delega\r\n \r\n )\r\n ) : (\r\n !IsDaNonPresentare && (\r\n (IsDichiaraDaNonPresentareAttivo\r\n && JSON.parse(window.localStorage.getItem('possibilita-di-non-presentare-non-visualizza-piu')) !== 'messageRead'\r\n ? setShowConfirmSegnaDaNonPresentare(true) : setDatiModalePresentazione({\r\n show: true,\r\n idDelega: IdDelega,\r\n isCreaStampaDaConsegnareAttivo: IsCreaStampaDaConsegnareAttivo,\r\n dataVersamento: ScadenzaVersamento,\r\n ibanAssociatoAllaDelega: Iban,\r\n infoModalitaPresentazione: null,\r\n tipoDelegaDescrizione: TipoDelegaDescrizione,\r\n modalitaPresentazione: STEP_SCELTA_TELEMATICO.SELEZIONE_PRESENTAZIONE,\r\n saldo: Saldo,\r\n windowHeight,\r\n }))}\r\n primary\r\n disabled={appParamVisualizzazione}\r\n vertical\r\n >\r\n \r\n Presenta la delega\r\n \r\n )\r\n )}\r\n \r\n \r\n \r\n { windowWidth > 1465 ? (\r\n \r\n \r\n Altre azioni\r\n \r\n stampaF24Provvisorio(IdDelega)}\r\n >\r\n \r\n Stampa F24 provvisorio\r\n \r\n dichiaraAperta(IdDelega)}\r\n disabled={!IsDichiaraApertaAttivo || appParamVisualizzazione}\r\n >\r\n \r\n Sposta a "In lavorazione"\r\n \r\n {IsDichiaraDaNonPresentareAttivo && !IsDaNonPresentare && (\r\n dichiaraDaNonPresentare(IdDelega)}\r\n disabled={!IsDichiaraDaNonPresentareAttivo || appParamVisualizzazione}\r\n >\r\n \r\n Non presentare questa delega\r\n \r\n )}\r\n {IsDaNonPresentare && (\r\n dichiaraDaPresentare(IdDelega, Stato)}\r\n disabled={!IsDichiaraDaNonPresentareAttivo || appParamVisualizzazione}\r\n >\r\n \r\n Riabilita la presentazione\r\n \r\n )}\r\n \r\n \r\n ) : (\r\n \r\n \r\n Altre azioni\r\n \r\n stampaF24Provvisorio(IdDelega)}\r\n >\r\n \r\n Stampa F24 provvisorio\r\n \r\n dichiaraAperta(IdDelega)}\r\n disabled={!IsDichiaraApertaAttivo || appParamVisualizzazione}\r\n >\r\n \r\n Sposta a "In lavorazione"\r\n \r\n {IsDichiaraDaNonPresentareAttivo && !IsDaNonPresentare && (\r\n dichiaraDaNonPresentare(IdDelega)}\r\n disabled={!IsDichiaraDaNonPresentareAttivo || appParamVisualizzazione}\r\n >\r\n \r\n Non presentare questa delega\r\n \r\n )}\r\n {IsDaNonPresentare && (\r\n dichiaraDaPresentare(IdDelega, Stato)}\r\n disabled={!IsDichiaraDaNonPresentareAttivo || appParamVisualizzazione}\r\n >\r\n \r\n Riabilita la presentazione\r\n \r\n )}\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n }\r\n onClose={() => setShowConfirmSegnaDaNonPresentare(false)}\r\n primaryLabel=\"Torna alla lista\"\r\n onPrimaryClick={() => setShowConfirmSegnaDaNonPresentare(false)}\r\n secondaryLabel=\"Continua con la presentazione\"\r\n onSecondaryClick={() => {\r\n setDatiModalePresentazione({\r\n show: true,\r\n idDelega: IdDelega,\r\n isCreaStampaDaConsegnareAttivo: IsCreaStampaDaConsegnareAttivo,\r\n dataVersamento: ScadenzaVersamento,\r\n ibanAssociatoAllaDelega: Iban,\r\n infoModalitaPresentazione: null,\r\n tipoDelegaDescrizione: TipoDelegaDescrizione,\r\n modalitaPresentazione: STEP_SCELTA_TELEMATICO.SELEZIONE_PRESENTAZIONE,\r\n saldo: Saldo,\r\n });\r\n setShowConfirmSegnaDaNonPresentare(false);\r\n }}\r\n title=\"Presentare una delega con compensazione verticale\"\r\n message={(\r\n
    \r\n
    \r\n Non essendo obbligatorio presentare all'Agenzia delle Entrate deleghe con compensazione\r\n
    \r\n verticale abbiamo aggiunto la funzionalità "Non presentare questa delega" per agevolare il\r\n
    tuo lavoro. La puoi trovare nel menu "Altre azioni" sulla riga della tabella.\r\n
    \r\n
    \r\n
    \r\n )}\r\n dontShowAgainMessage=\"Non mostrare più questo messaggio\"\r\n dontShowAgainId=\"possibilita-di-non-presentare-non-visualizza-piu\"\r\n />\r\n setConfirmFunzionalitaMancante(false)}\r\n />\r\n \r\n );\r\n};\r\n\r\nRigaDelegheCompleteSoggetto.propTypes = {\r\n item: PropTypes.shape({\r\n IdDelega: PropTypes.number.isRequired,\r\n TipoDelega: PropTypes.number.isRequired,\r\n ScadenzaVersamento: PropTypes.string.isRequired,\r\n IdContribuente: PropTypes.number.isRequired,\r\n Stato: PropTypes.number,\r\n StatoInvioTelematico: PropTypes.string,\r\n ImportoDebito: PropTypes.number,\r\n ImportoCredito: PropTypes.number,\r\n Saldo: PropTypes.number,\r\n Iban: PropTypes.string,\r\n IsCreaStampaDaConsegnareAttivo: PropTypes.bool,\r\n IsCreaFileTelematicoContribuenteAttivo: PropTypes.bool,\r\n IsCreaFileTelematicoIntermediarioAttivo: PropTypes.bool,\r\n IsInviaFileTelematicoIntermediarioConAdeleAttivo: PropTypes.bool,\r\n IsInviaFileTelematicoContribuenteConCbiAttivo: PropTypes.bool,\r\n IsDichiaraPagataAttivo: PropTypes.bool,\r\n IsDelegaConCompensazioni: PropTypes.bool,\r\n IsDichiaraApertaAttivo: PropTypes.bool,\r\n IsDichiaraDaNonPresentareAttivo: PropTypes.bool,\r\n IsDaNonPresentare: PropTypes.bool,\r\n TipoDelegaDescrizione: PropTypes.string,\r\n NumeroNote: PropTypes.number,\r\n }).isRequired,\r\n additionalRowData: PropTypes.shape({\r\n // ufficioSelezionato: PropTypes.string.isRequired,\r\n searchTerm: PropTypes.string,\r\n dichiaraAperta: PropTypes.func.isRequired,\r\n setDatiModalePresentazione: PropTypes.func,\r\n dichiaraPagata: PropTypes.func.isRequired,\r\n dichiaraDaNonPresentare: PropTypes.func.isRequired,\r\n dichiaraDaPresentare: PropTypes.func.isRequired,\r\n setSegnalazioni: PropTypes.func,\r\n segnalazioni: PropTypes.arrayOf(PropTypes.string),\r\n segnalazioniDichiaraPagata: PropTypes.arrayOf(PropTypes.string),\r\n setSegnalazioniDichiaraPagata: PropTypes.func,\r\n windowWidth: PropTypes.number,\r\n windowHeight: PropTypes.number,\r\n }).isRequired,\r\n};\r\n\r\nexport default RigaDelegheCompleteSoggetto;\r\n","/* eslint-disable no-nested-ternary */\r\nimport React, { useCallback, useEffect, useState } from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport { useHistory } from 'react-router';\r\nimport { Button, DropdownButton, Table } from 'framework-ui-components/Components/V2';\r\nimport { JustADate } from 'framework-taskforce/utils/date';\r\nimport { STOP_EVENT_PROPAGATION } from 'framework-ui-components/utils/const';\r\nimport MoreVertIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/MoreVertIcon';\r\nimport {\r\n Badge, Tooltip, InfoTooltip,\r\n} from 'framework-ui-components';\r\nimport { logApiError } from 'framework-taskforce/utils/log';\r\nimport { callDownloadFile } from 'framework-taskforce/utils/file';\r\nimport { getSegnalazioneError } from 'framework-taskforce/models/segnalazioni';\r\nimport SendIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/SendIcon';\r\nimport { useLocation } from 'react-router-dom';\r\nimport NoteDoneIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/NoteDoneIcon';\r\nimport { delegaSoggettoUrl } from '../../../../../../models/urls';\r\nimport { getCurrencyValueNoSymbol } from '../../../../../../utils/format';\r\nimport PrinterIcon from '../../../../../../components/icons/google/PrinterIcon';\r\nimport apiDownloadFile from '../../../../../../apis/file';\r\nimport ModaleAiutaci from '../../../../../../components/ModaleAiutaci';\r\nimport {\r\n getEtichetteDelega, postStampaDelegaProvvisoria,\r\n} from '../../../../../../apis/deleghe';\r\nimport EtichetteDelega from '../../../../../../components/EtichetteDelega';\r\nimport UndoIcon from '../../../../../../components/icons/google/UndoIcon';\r\nimport SendCancelledIcon from '../../../../../../components/icons/google/SendCancelledIcon';\r\nimport ModaleDichiaraPagata from '../presentate/ModaleDichiaraPagata';\r\nimport ModaleRischiDiPagareDueVolte from './ModaleRischiDiPagareDueVolte';\r\nimport { STEP_SCELTA_TELEMATICO } from '../../../../../../models/delega';\r\n\r\nconst RigaDelegheCompleteSoggettoSmall = ({\r\n item: {\r\n IdDelega,\r\n TipoDelega,\r\n ScadenzaVersamento,\r\n IdContribuente,\r\n Stato,\r\n StatoInvioTelematico,\r\n Saldo,\r\n Iban,\r\n IsCreaStampaDaConsegnareAttivo,\r\n IsInviaFileTelematicoContribuenteConCbiAttivo,\r\n IsCreaFileTelematicoContribuenteAttivo,\r\n IsCreaFileTelematicoIntermediarioAttivo,\r\n IsInviaFileTelematicoIntermediarioConAdeleAttivo,\r\n IsDichiaraPagataAttivo,\r\n IsDichiaraApertaAttivo,\r\n IsDelegaConCompensazioni,\r\n IsDichiaraDaNonPresentareAttivo,\r\n IsDaNonPresentare,\r\n ImportoDebito,\r\n ImportoCredito,\r\n TipoDelegaDescrizione,\r\n NumeroNote,\r\n },\r\n additionalRowData: {\r\n // ufficioSelezionato,\r\n searchTerm,\r\n dichiaraAperta,\r\n dichiaraPagata,\r\n dichiaraDaNonPresentare,\r\n dichiaraDaPresentare,\r\n setDatiModalePresentazione,\r\n setSegnalazioni,\r\n segnalazioni,\r\n segnalazioniDichiaraPagata,\r\n setSegnalazioniDichiaraPagata,\r\n windowWidth,\r\n windowHeight,\r\n },\r\n}) => {\r\n const history = useHistory();\r\n const location = useLocation();\r\n\r\n const appParamVisualizzazione = useSelector((store) => !!store.appParams.visualizzazione);\r\n const codiceUfficioOperatore = useSelector((store) => store.appParams.codiceUfficioOperatore);\r\n const codiceUfficioSelezionato = useSelector((store) => store.appParams.ufficioSelezionato);\r\n\r\n const [etichetteDelega, setEtichetteDelega] = useState([]);\r\n const etichetteSingolaChiamataAttivo = true;\r\n\r\n const [showModaleDichiaraPagata, setShowModaleDichiaraPagata] = useState(false);\r\n const [showConfirmSegnaDaNonPresentare, setShowConfirmSegnaDaNonPresentare] = useState(false);\r\n const [confirmFunzionalitaMancante, setConfirmFunzionalitaMancante] = useState(false);\r\n\r\n const gotoDelegaSoggetto = useCallback((idDelega) => {\r\n history.push(delegaSoggettoUrl(idDelega, appParamVisualizzazione, codiceUfficioOperatore, false, location.pathname.startsWith('/Scadenzario/')));\r\n }, [location, history, appParamVisualizzazione, codiceUfficioOperatore]);\r\n\r\n const chiusuraModaleDichiaraPagata = useCallback((esito) => {\r\n setShowModaleDichiaraPagata(false);\r\n setSegnalazioni([]);\r\n }, [setSegnalazioni]);\r\n\r\n const stampaF24Provvisorio = (idDelega) => {\r\n postStampaDelegaProvvisoria(idDelega).then((res) => {\r\n if (res.Success) {\r\n callDownloadFile(\r\n apiDownloadFile,\r\n res.Result.NomeFile,\r\n res.Result.IdFile,\r\n codiceUfficioSelezionato,\r\n res.Result.NomeFile,\r\n ).then((resDownload) => {\r\n // setLoading(false);\r\n }).catch((e) => {\r\n logApiError(e);\r\n // setLoading(false);\r\n });\r\n } else {\r\n // setLoading(false);\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n // setLoading(false);\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n getEtichetteDelega(IdDelega)\r\n .then((res) => {\r\n if (res.Success) {\r\n setEtichetteDelega(res.Result);\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n });\r\n }, [IdDelega]);\r\n\r\n return (\r\n \r\n gotoDelegaSoggetto(IdDelega)}\r\n >\r\n \r\n {TipoDelegaDescrizione}\r\n \r\n \r\n \r\n {ScadenzaVersamento === null ? '-' : `${JustADate(ScadenzaVersamento)}`}\r\n {new Date(ScadenzaVersamento) < new Date().setHours(0, 0, 0, 0) && (\r\n
    \r\n \r\n La delega è scaduta\r\n \r\n
    \r\n )}\r\n
    \r\n {/* \r\n \r\n {!Errata ? 'Aperta' : 'Errata'}\r\n */}\r\n \r\n \r\n
    {/* displayInlineMiddle */}\r\n {etichetteSingolaChiamataAttivo && }\r\n
    \r\n
    \r\n \r\n \r\n {Iban || (\r\n \r\n IBAN Assente\r\n \r\n )}\r\n \r\n \r\n \r\n {ImportoDebito ? `${getCurrencyValueNoSymbol(ImportoDebito)}` : '0,00'}\r\n \r\n \r\n \r\n {ImportoCredito ? `${getCurrencyValueNoSymbol(ImportoCredito)}` : '0,00'}\r\n \r\n \r\n \r\n {Saldo !== null ? `${getCurrencyValueNoSymbol(Saldo, true)}` : '-'}\r\n \r\n \r\n \r\n {NumeroNote > 0 && (\r\n \r\n
    \r\n \r\n
    \r\n \r\n )}\r\n
    \r\n \r\n \r\n \r\n \r\n {!IsDaNonPresentare && (\r\n (IsDichiaraDaNonPresentareAttivo\r\n && JSON.parse(window.localStorage.getItem('possibilita-di-non-presentare-non-visualizza-piu')) !== 'messageRead'\r\n ? setShowConfirmSegnaDaNonPresentare(true) : setDatiModalePresentazione({\r\n show: true,\r\n idDelega: IdDelega,\r\n isCreaStampaDaConsegnareAttivo: IsCreaStampaDaConsegnareAttivo,\r\n dataVersamento: ScadenzaVersamento,\r\n ibanAssociatoAllaDelega: Iban,\r\n infoModalitaPresentazione: null,\r\n tipoDelegaDescrizione: TipoDelegaDescrizione,\r\n modalitaPresentazione: STEP_SCELTA_TELEMATICO.SELEZIONE_PRESENTAZIONE,\r\n saldo: Saldo,\r\n windowHeight,\r\n }))}\r\n primary\r\n disabled={appParamVisualizzazione}\r\n >\r\n \r\n Presenta la delega\r\n \r\n )}\r\n stampaF24Provvisorio(IdDelega)}\r\n >\r\n \r\n Stampa F24 provvisorio\r\n \r\n dichiaraAperta(IdDelega)}\r\n disabled={!IsDichiaraApertaAttivo || appParamVisualizzazione}\r\n >\r\n \r\n Sposta a "In lavorazione"\r\n \r\n {IsDichiaraDaNonPresentareAttivo && !IsDaNonPresentare && (\r\n dichiaraDaNonPresentare(IdDelega)}\r\n disabled={!IsDichiaraDaNonPresentareAttivo || appParamVisualizzazione}\r\n >\r\n \r\n Non presentare questa delega\r\n \r\n )}\r\n {IsDaNonPresentare && (\r\n dichiaraDaPresentare(IdDelega, Stato)}\r\n disabled={!IsDichiaraDaNonPresentareAttivo || appParamVisualizzazione}\r\n >\r\n \r\n Riabilita la presentazione\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n onClose={() => setShowConfirmSegnaDaNonPresentare(false)}\r\n primaryLabel=\"Torna alla lista\"\r\n onPrimaryClick={() => setShowConfirmSegnaDaNonPresentare(false)}\r\n secondaryLabel=\"Continua con la presentazione\"\r\n onSecondaryClick={() => {\r\n setDatiModalePresentazione({\r\n show: true,\r\n idDelega: IdDelega,\r\n isCreaStampaDaConsegnareAttivo: IsCreaStampaDaConsegnareAttivo,\r\n dataVersamento: ScadenzaVersamento,\r\n ibanAssociatoAllaDelega: Iban,\r\n isCreaFileTelematicoContribuenteAttivo: IsCreaFileTelematicoContribuenteAttivo,\r\n isCreaFileTelematicoIntermediarioAttivo: IsCreaFileTelematicoIntermediarioAttivo,\r\n isInviaFileTelematicoIntermediarioConAdeleAttivo: IsInviaFileTelematicoIntermediarioConAdeleAttivo,\r\n isInviaFileTelematicoContribuenteConCbiAttivo: IsInviaFileTelematicoContribuenteConCbiAttivo,\r\n tipoDelegaDescrizione: TipoDelegaDescrizione,\r\n saldo: Saldo,\r\n });\r\n setShowConfirmSegnaDaNonPresentare(false);\r\n }}\r\n title=\"Presentare una delega con compensazione verticale\"\r\n message={(\r\n
    \r\n
    \r\n Non essendo obbligatorio presentare all'Agenzia delle Entrate deleghe con compensazione\r\n
    \r\n verticale abbiamo aggiunto la funzionalità "Non presentare questa delega" per agevolare il\r\n
    tuo lavoro. La puoi trovare nel menu "Altre azioni" sulla riga della tabella.\r\n
    \r\n
    \r\n
    \r\n )}\r\n dontShowAgainMessage=\"Non mostrare più questo messaggio\"\r\n dontShowAgainId=\"possibilita-di-non-presentare-non-visualizza-piu\"\r\n />\r\n setConfirmFunzionalitaMancante(false)}\r\n />\r\n \r\n );\r\n};\r\n\r\nRigaDelegheCompleteSoggettoSmall.propTypes = {\r\n item: PropTypes.shape({\r\n IdDelega: PropTypes.number.isRequired,\r\n TipoDelega: PropTypes.number.isRequired,\r\n ScadenzaVersamento: PropTypes.string.isRequired,\r\n IdContribuente: PropTypes.number.isRequired,\r\n Stato: PropTypes.number,\r\n StatoInvioTelematico: PropTypes.string,\r\n ImportoDebito: PropTypes.number,\r\n ImportoCredito: PropTypes.number,\r\n Saldo: PropTypes.number,\r\n Iban: PropTypes.string,\r\n IsCreaStampaDaConsegnareAttivo: PropTypes.bool,\r\n IsCreaFileTelematicoContribuenteAttivo: PropTypes.bool,\r\n IsCreaFileTelematicoIntermediarioAttivo: PropTypes.bool,\r\n IsInviaFileTelematicoIntermediarioConAdeleAttivo: PropTypes.bool,\r\n IsInviaFileTelematicoContribuenteConCbiAttivo: PropTypes.bool,\r\n IsDichiaraPagataAttivo: PropTypes.bool,\r\n IsDelegaConCompensazioni: PropTypes.bool,\r\n IsDichiaraApertaAttivo: PropTypes.bool,\r\n IsDichiaraDaNonPresentareAttivo: PropTypes.bool,\r\n IsDaNonPresentare: PropTypes.bool,\r\n TipoDelegaDescrizione: PropTypes.string,\r\n NumeroNote: PropTypes.number,\r\n }).isRequired,\r\n additionalRowData: PropTypes.shape({\r\n // ufficioSelezionato: PropTypes.string.isRequired,\r\n searchTerm: PropTypes.string,\r\n dichiaraAperta: PropTypes.func.isRequired,\r\n setDatiModalePresentazione: PropTypes.func,\r\n dichiaraPagata: PropTypes.func.isRequired,\r\n dichiaraDaNonPresentare: PropTypes.func.isRequired,\r\n dichiaraDaPresentare: PropTypes.func.isRequired,\r\n setSegnalazioni: PropTypes.func,\r\n segnalazioni: PropTypes.arrayOf(PropTypes.string),\r\n segnalazioniDichiaraPagata: PropTypes.arrayOf(PropTypes.string),\r\n setSegnalazioniDichiaraPagata: PropTypes.func,\r\n windowWidth: PropTypes.number,\r\n }).isRequired,\r\n};\r\n\r\nexport default RigaDelegheCompleteSoggettoSmall;\r\n","/* eslint-disable import/no-named-as-default */\r\nimport React, {\r\n forwardRef, useCallback, useEffect, useImperativeHandle, useMemo, useRef, useState,\r\n} from 'react';\r\nimport useDebouncedFunc from 'framework-ui-components/Components/Hooks/useDebouncedFunc';\r\nimport {\r\n FeedbackModal, Filter, ODataTable, ViewportProvider,\r\n} from 'framework-ui-components/Components/V2';\r\nimport useViewport, { MAIN } from 'framework-ui-components/Components/V2/Hooks/useViewport';\r\nimport PropTypes from 'prop-types';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport Log from 'framework-taskforce/utils/log';\r\nimport { setAppParamsAction } from 'framework-taskforce/actions/appParams';\r\nimport { getSegnalazioneError } from 'framework-taskforce/models/segnalazioni';\r\nimport { QueryOptions } from 'framework-ui-components';\r\nimport {\r\n getOttieniContatoriStatoDeleghe,\r\n getOttieniContatoriTipoDelegheContribuente,\r\n ottieniDelegheUrlComplete,\r\n postDichiaraAperta, postDichiaraDaNonPresentare, postDichiaraDaPresentare, postDichiaraPagata,\r\n} from '../../../../../../apis/deleghe';\r\nimport RigaDelegheCompleteSoggetto from './RigaDelegheCompleteSoggetto';\r\nimport RigaDelegheCompleteSoggettoSmall from './RigaDelegheCompleteSoggettoSmall';\r\nimport { convertUTCDateToLocalDate } from '../../../../../../utils/format';\r\nimport RigaDelegheCompleteSoggettoOdataTableHeadSmall from './RigaDelegheCompleteSoggettoOdataTableHeadSmall';\r\nimport RigaDelegheCompleteSoggettoOdataTableHead from './RigaDelegheCompleteSoggettoOdataTableHead';\r\nimport { STATO_DELEGA, TIPO_DELEGA } from '../../../../../../models/delega';\r\n\r\nconst TabellaDelegheCompleteSoggetto = forwardRef(({\r\n setContatori, setDatiModalePresentazione,\r\n}, ref) => {\r\n const tabellaRef = useRef();\r\n const studioSelezionato = useSelector((store) => store.appParams.studioSelezionato);\r\n const idContribuente = useSelector((store) => store.soggetto.idContribuente);\r\n const tabSelected = useSelector((store) => store.appParams.tabSelected);\r\n\r\n const [segnalazioni, setSegnalazioni] = useState([]);\r\n const [segnalazioniDichiaraPagata, setSegnalazioniDichiaraPagata] = useState([]);\r\n const [titoloFeedbackModal, setTitoloFeedbackModal] = useState('');\r\n const [numeroRighe, setNumeroRighe] = useState(0);\r\n const [contatoriTipoDelega, setContatoriTipoDelega] = useState(null);\r\n\r\n const dispatch = useDispatch();\r\n\r\n const { width, height, resolution } = useViewport();\r\n const resolutionMAIN = resolution === MAIN;\r\n\r\n const url = useMemo(() => ottieniDelegheUrlComplete(\r\n idContribuente,\r\n tabSelected,\r\n '',\r\n ), [idContribuente, tabSelected]);\r\n\r\n const onRowsSelected = useCallback((rows) => {\r\n const rowsObjectSelected = rows.map((row) => row.object);\r\n dispatch(setAppParamsAction({\r\n rowsDeleghe: rowsObjectSelected,\r\n }));\r\n }, [dispatch]);\r\n\r\n const updateOptimisticRows = useCallback(() => {\r\n // dispatch({ type: ACTIONS.UPDATE_OPTIMISTIC_ROWS });\r\n }, []);\r\n\r\n const onPageLoaded = useCallback((pageItems, totalCount, currentFilter, currentPage, sortProperty, sortOrder) => {\r\n setNumeroRighe(totalCount);\r\n tabellaRef.current && tabellaRef.current.resetSelection();\r\n updateOptimisticRows();\r\n getOttieniContatoriStatoDeleghe(idContribuente)\r\n .then((response) => {\r\n if (response.Success) {\r\n setContatori(response.Result);\r\n } else {\r\n setContatori([]);\r\n Log.error('App error');\r\n }\r\n }).catch((err) => {\r\n Log.error(err);\r\n });\r\n\r\n getOttieniContatoriTipoDelegheContribuente(idContribuente, STATO_DELEGA.COMPLETA)\r\n .then((response) => {\r\n if (response.Success) {\r\n setContatoriTipoDelega(response.Result);\r\n } else {\r\n setContatoriTipoDelega(null);\r\n Log.error('App error');\r\n }\r\n }).catch((err) => {\r\n setContatoriTipoDelega(null);\r\n Log.error(err);\r\n });\r\n }, [idContribuente, setContatori, updateOptimisticRows]);\r\n\r\n // const updateContatori = useCallback(() => {\r\n // (getStati)(codiceUfficio, annoSelezionato, filtroText)\r\n // .then((contatori) => {\r\n // dispatch({ type: ACTIONS.SET_CONTATORI_STATO, payload: contatori });\r\n // }).catch((e) => {\r\n // Log.error(e);\r\n // });\r\n // }, [annoSelezionato, backoffice, codiceUfficio, dispatch, filtroText]);\r\n\r\n useEffect(() => {\r\n // updateContatori();\r\n }, []);\r\n\r\n const refreshTabella = useDebouncedFunc(() => {\r\n tabellaRef.current && tabellaRef.current.refreshTable();\r\n // updateContatori();\r\n }, 200, []);\r\n\r\n // permetto di accedere via ref al metodo refreshTabella\r\n useImperativeHandle(ref, () => ({ refreshTabella }), [refreshTabella]);\r\n\r\n // // intercettazione evento di refresh che arriva da un eventuale parent plugins\r\n // usePluginsReducer(() => ({\r\n // REFRESH_DICHIARAZIONI_ISEE: () => {\r\n // setTimeout(() => {\r\n // // Chiamata refresh dopo 1s (tempo di refresh indici elastic)\r\n // refreshTabella();\r\n // }, 1000);\r\n // },\r\n // }), [refreshTabella]);\r\n\r\n const dichiaraAperta = useCallback((idDelega) => {\r\n postDichiaraAperta({ idDelega }).then((response) => {\r\n if (response.Success) {\r\n refreshTabella();\r\n } else {\r\n setTitoloFeedbackModal('Sposta a \"In lavorazione\" non riuscito');\r\n setSegnalazioni(response.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n }).catch((err) => {\r\n Log.error(err);\r\n });\r\n }, [refreshTabella]);\r\n\r\n const dichiaraPagata = useCallback((idDelega, dataVersamento) => {\r\n const DataVersamento = convertUTCDateToLocalDate(dataVersamento);\r\n postDichiaraPagata({ idDelega, DataVersamento }).then((response) => {\r\n if (response.Success) {\r\n refreshTabella();\r\n } else {\r\n setSegnalazioniDichiaraPagata(response.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n Log.error('App error');\r\n }\r\n }).catch((err) => {\r\n Log.error(err);\r\n });\r\n }, [refreshTabella]);\r\n\r\n const dichiaraDaNonPresentare = useCallback((idDelega) => {\r\n postDichiaraDaNonPresentare({ idDelega }).then((response) => {\r\n if (response.Success) {\r\n refreshTabella();\r\n } else {\r\n setTitoloFeedbackModal('Dichiara da non presenzate non riuscito');\r\n setSegnalazioni(response.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n }).catch((err) => {\r\n Log.error(err);\r\n });\r\n }, [refreshTabella]);\r\n\r\n const dichiaraDaPresentare = useCallback((idDelega, stato) => {\r\n postDichiaraDaPresentare({ idDelega, stato }).then((response) => {\r\n if (response.Success) {\r\n refreshTabella();\r\n } else {\r\n setTitoloFeedbackModal('Dichiara da presenzate non riuscito');\r\n setSegnalazioni(response.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n }).catch((err) => {\r\n Log.error(err);\r\n });\r\n }, [refreshTabella]);\r\n\r\n const rowRender = useCallback((item) => (\r\n width > 1300\r\n ? (\r\n \r\n ) : (\r\n \r\n )\r\n ), [width,\r\n height,\r\n refreshTabella,\r\n dichiaraAperta,\r\n dichiaraPagata,\r\n dichiaraDaNonPresentare,\r\n dichiaraDaPresentare,\r\n setDatiModalePresentazione,\r\n segnalazioni,\r\n segnalazioniDichiaraPagata]);\r\n\r\n return (\r\n \r\n {studioSelezionato && idContribuente && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {width > 1300\r\n ? RigaDelegheCompleteSoggettoOdataTableHead(width)\r\n : RigaDelegheCompleteSoggettoOdataTableHeadSmall(width)}\r\n \r\n )}\r\n {segnalazioni && segnalazioni.length > 0 && (\r\n 0}\r\n title={titoloFeedbackModal}\r\n onClose={() => setSegnalazioni([])}\r\n buttonLabel=\"ok\"\r\n type=\"alarm\"\r\n message={segnalazioni[0].msg}\r\n />\r\n )}\r\n \r\n );\r\n});\r\n\r\nTabellaDelegheCompleteSoggetto.defaultProps = {\r\n setDatiModalePresentazione: () => {},\r\n setContatori: () => {},\r\n};\r\n\r\nTabellaDelegheCompleteSoggetto.propTypes = {\r\n setContatori: PropTypes.func,\r\n setDatiModalePresentazione: PropTypes.func,\r\n};\r\n\r\nexport default TabellaDelegheCompleteSoggetto;\r\n","import React, {\r\n\r\n} from 'react';\r\nimport {\r\n ODataTable,\r\n} from 'framework-ui-components/Components/V2';\r\n\r\nexport const RigaDelegheCompleteSoggettoOdataTableHead = (width) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 1400 ? 'Importo a debito (€)' : (
    Importo
    a debito (€)
    )}\r\n align=\"right\"\r\n fixedWidth={width > 1400 ? '160px' : '100px'}\r\n />\r\n \r\n 1400 ? 'Importo a credito (€)' : (
    Importo
    a credito (€)
    )}\r\n align=\"right\"\r\n fixedWidth={width > 1400 ? '160px' : '100px'}\r\n />\r\n \r\n \r\n \r\n \r\n { width > 1465 ? (\r\n \r\n ) : (\r\n \r\n )}\r\n { width > 1465 ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n { width > 1465 ? (\r\n \r\n ) : (\r\n \r\n )}\r\n { width > 1465 ? (\r\n \r\n ) : (\r\n \r\n )}\r\n
    \r\n);\r\n\r\nexport default RigaDelegheCompleteSoggettoOdataTableHead;\r\n","import React, {\r\n\r\n} from 'react';\r\nimport {\r\n ODataTable,\r\n} from 'framework-ui-components/Components/V2';\r\n\r\nexport const RigaDelegheCompleteSoggettoOdataTableHeadSmall = (width) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n);\r\n\r\nexport default RigaDelegheCompleteSoggettoOdataTableHeadSmall;\r\n","/* eslint-disable no-nested-ternary */\r\nimport React, { useCallback, useEffect, useState } from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport { useHistory } from 'react-router';\r\nimport { Button, DropdownButton, Table } from 'framework-ui-components/Components/V2';\r\nimport { JustADate } from 'framework-taskforce/utils/date';\r\nimport { STOP_EVENT_PROPAGATION } from 'framework-ui-components/utils/const';\r\nimport DeleteIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/DeleteIcon';\r\nimport {\r\n Badge, Tooltip, InfoTooltip,\r\n} from 'framework-ui-components';\r\nimport { logApiError } from 'framework-taskforce/utils/log';\r\nimport { callDownloadFile } from 'framework-taskforce/utils/file';\r\nimport { getSegnalazioneError } from 'framework-taskforce/models/segnalazioni';\r\nimport MoreVertIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/MoreVertIcon';\r\nimport { useLocation } from 'react-router-dom';\r\nimport NoteDoneIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/NoteDoneIcon';\r\nimport { delegaSoggettoUrl } from '../../../../../../models/urls';\r\nimport { getCurrencyValueNoSymbol } from '../../../../../../utils/format';\r\nimport PrinterIcon from '../../../../../../components/icons/google/PrinterIcon';\r\nimport apiDownloadFile from '../../../../../../apis/file';\r\nimport ModaleAiutaci from '../../../../../../components/ModaleAiutaci';\r\nimport {\r\n getEtichetteDelega, postStampaDelegaProvvisoria,\r\n} from '../../../../../../apis/deleghe';\r\nimport EtichetteDelega from '../../../../../../components/EtichetteDelega';\r\nimport VerifiedIcon from '../../../../../../components/icons/google/VerifiedIcon';\r\n\r\nconst RigaDelegheInLavorazioneSoggetto = ({\r\n item: {\r\n IdDelega,\r\n TipoDelega,\r\n TipoDelegaDescrizione,\r\n ScadenzaVersamento,\r\n Stato,\r\n StatoInvioTelematico,\r\n Errata,\r\n Saldo,\r\n IsDichiaraCompletaAttivo,\r\n ImportoDebito,\r\n ImportoCredito,\r\n Iban,\r\n NumeroNote,\r\n },\r\n additionalRowData: {\r\n // ufficioSelezionato,\r\n apriEliminaDelega,\r\n dichiaraChiusa,\r\n setSegnalazioni,\r\n windowWidth,\r\n // annoImposta,\r\n },\r\n}) => {\r\n const history = useHistory();\r\n const location = useLocation();\r\n\r\n const appParamVisualizzazione = useSelector((store) => !!store.appParams.visualizzazione);\r\n const codiceUfficioOperatore = useSelector((store) => store.appParams.codiceUfficioOperatore);\r\n const codiceUfficioSelezionato = useSelector((store) => store.appParams.ufficioSelezionato);\r\n\r\n const [etichetteDelega, setEtichetteDelega] = useState([]);\r\n const etichetteSingolaChiamataAttivo = true;\r\n\r\n const [confirmFunzionalitaMancante, setConfirmFunzionalitaMancante] = useState(false);\r\n\r\n const gotoDelegaSoggetto = useCallback((idDelega) => {\r\n history.push(delegaSoggettoUrl(idDelega, appParamVisualizzazione, codiceUfficioOperatore, false, location.pathname.startsWith('/Scadenzario/')));\r\n }, [location, history, appParamVisualizzazione, codiceUfficioOperatore]);\r\n\r\n useEffect(() => {\r\n getEtichetteDelega(IdDelega)\r\n .then((res) => {\r\n if (res.Success) {\r\n setEtichetteDelega(res.Result);\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n });\r\n }, [IdDelega]);\r\n\r\n const stampaF24Provvisorio = (idDelega) => {\r\n postStampaDelegaProvvisoria(idDelega).then((res) => {\r\n if (res.Success) {\r\n callDownloadFile(\r\n apiDownloadFile,\r\n res.Result.NomeFile,\r\n res.Result.IdFile,\r\n codiceUfficioSelezionato,\r\n res.Result.NomeFile,\r\n ).then((resDownload) => {\r\n // setLoading(false);\r\n }).catch((e) => {\r\n logApiError(e);\r\n // setLoading(false);\r\n });\r\n } else {\r\n // setLoading(false);\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n // setLoading(false);\r\n });\r\n };\r\n\r\n return (\r\n \r\n gotoDelegaSoggetto(IdDelega)}\r\n >\r\n \r\n {TipoDelegaDescrizione}\r\n \r\n \r\n \r\n {ScadenzaVersamento === null ? '-' : `${JustADate(ScadenzaVersamento)}`}\r\n {new Date(ScadenzaVersamento) < new Date().setHours(0, 0, 0, 0) && (\r\n
    \r\n \r\n La delega è scaduta\r\n \r\n
    \r\n )}\r\n
    \r\n {/* \r\n \r\n {!Errata ? 'Aperta' : 'Errata'}\r\n */}\r\n \r\n \r\n
    {/* displayInlineMiddle */}\r\n {etichetteSingolaChiamataAttivo && }\r\n
    \r\n
    \r\n \r\n \r\n {Iban || (\r\n \r\n IBAN Assente\r\n \r\n )}\r\n \r\n \r\n \r\n {ImportoDebito ? `${getCurrencyValueNoSymbol(ImportoDebito)}` : '0,00'}\r\n \r\n \r\n \r\n {ImportoCredito ? `${getCurrencyValueNoSymbol(ImportoCredito)}` : '0,00'}\r\n \r\n \r\n \r\n {Saldo !== null ? `${getCurrencyValueNoSymbol(Saldo, true)}` : '-'}\r\n \r\n \r\n {!IsDichiaraCompletaAttivo ? (\r\n \r\n {ImportoCredito > 0 ? 'La delega deve avere un saldo maggiore o uguale a zero' : 'Non è presente alcun tributo'}\r\n \r\n ) : ''}\r\n \r\n \r\n \r\n {NumeroNote > 0 && (\r\n windowWidth < 1600}\r\n >\r\n
    \r\n \r\n {windowWidth >= 1600 && (\r\n Note presenti\r\n )}\r\n
    \r\n \r\n )}\r\n
    \r\n \r\n \r\n 0 ? 'La delega deve avere un saldo maggiore o uguale a zero' : 'Non è presente alcun tributo'}\r\n enableFunction={(e) => !IsDichiaraCompletaAttivo}\r\n className=\"Custom_Tooltip__sfondo-bianco\"\r\n >\r\n { windowWidth > 1500 ? (\r\n dichiaraChiusa(IdDelega, Stato)}\r\n primary\r\n disabled={!IsDichiaraCompletaAttivo || appParamVisualizzazione}\r\n >\r\n \r\n Segna come completa\r\n \r\n ) : (\r\n dichiaraChiusa(IdDelega, Stato)}\r\n primary\r\n vertical\r\n disabled={!IsDichiaraCompletaAttivo || appParamVisualizzazione}\r\n >\r\n \r\n Segna come completa\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n { windowWidth > 1500 ? (\r\n \r\n \r\n Altre azioni\r\n \r\n stampaF24Provvisorio(IdDelega)}\r\n >\r\n \r\n Stampa F24 provvisorio\r\n \r\n apriEliminaDelega(IdDelega)}\r\n disabled={appParamVisualizzazione}\r\n >\r\n \r\n Elimina\r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n Altre azioni\r\n \r\n stampaF24Provvisorio(IdDelega)}\r\n >\r\n \r\n Stampa F24 provvisorio\r\n \r\n apriEliminaDelega(IdDelega)}\r\n disabled={appParamVisualizzazione}\r\n >\r\n \r\n Elimina\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n setConfirmFunzionalitaMancante(false)}\r\n />\r\n
    \r\n );\r\n};\r\n\r\nRigaDelegheInLavorazioneSoggetto.propTypes = {\r\n item: PropTypes.shape({\r\n IdDelega: PropTypes.number.isRequired,\r\n TipoDelega: PropTypes.number.isRequired,\r\n ScadenzaVersamento: PropTypes.string.isRequired,\r\n Stato: PropTypes.number,\r\n StatoInvioTelematico: PropTypes.string,\r\n Saldo: PropTypes.number,\r\n ImportoDebito: PropTypes.number,\r\n ImportoCredito: PropTypes.number,\r\n Errata: PropTypes.bool.isRequired,\r\n IsDichiaraCompletaAttivo: PropTypes.bool.isRequired,\r\n Iban: PropTypes.string,\r\n TipoDelegaDescrizione: PropTypes.string,\r\n NumeroNote: PropTypes.number,\r\n }).isRequired,\r\n additionalRowData: PropTypes.shape({\r\n dichiaraChiusa: PropTypes.func.isRequired,\r\n searchTerm: PropTypes.string,\r\n apriEliminaDelega: PropTypes.func.isRequired,\r\n setSegnalazioni: PropTypes.func,\r\n windowWidth: PropTypes.number,\r\n }).isRequired,\r\n};\r\n\r\nexport default RigaDelegheInLavorazioneSoggetto;\r\n","/* eslint-disable no-nested-ternary */\r\nimport React, { useCallback, useEffect, useState } from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport { useHistory } from 'react-router';\r\nimport { Button, DropdownButton, Table } from 'framework-ui-components/Components/V2';\r\nimport { JustADate } from 'framework-taskforce/utils/date';\r\nimport { STOP_EVENT_PROPAGATION } from 'framework-ui-components/utils/const';\r\nimport MoreVertIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/MoreVertIcon';\r\nimport DeleteIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/DeleteIcon';\r\nimport {\r\n Badge, Tooltip, InfoTooltip,\r\n} from 'framework-ui-components';\r\nimport { logApiError } from 'framework-taskforce/utils/log';\r\nimport { callDownloadFile } from 'framework-taskforce/utils/file';\r\nimport { getSegnalazioneError } from 'framework-taskforce/models/segnalazioni';\r\nimport { useLocation } from 'react-router-dom';\r\nimport NoteDoneIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/NoteDoneIcon';\r\nimport { delegaSoggettoUrl } from '../../../../../../models/urls';\r\nimport { getCurrencyValueNoSymbol } from '../../../../../../utils/format';\r\nimport PrinterIcon from '../../../../../../components/icons/google/PrinterIcon';\r\nimport apiDownloadFile from '../../../../../../apis/file';\r\nimport ModaleAiutaci from '../../../../../../components/ModaleAiutaci';\r\nimport {\r\n getEtichetteDelega, postStampaDelegaProvvisoria,\r\n} from '../../../../../../apis/deleghe';\r\nimport EtichetteDelega from '../../../../../../components/EtichetteDelega';\r\nimport VerifiedIcon from '../../../../../../components/icons/google/VerifiedIcon';\r\n\r\nconst RigaDelegheInLavorazioneSoggettoSmall = ({\r\n item: {\r\n IdDelega,\r\n TipoDelega,\r\n TipoDelegaDescrizione,\r\n ScadenzaVersamento,\r\n Stato,\r\n StatoInvioTelematico,\r\n Errata,\r\n Saldo,\r\n IsDichiaraCompletaAttivo,\r\n ImportoDebito,\r\n ImportoCredito,\r\n Iban,\r\n NumeroNote,\r\n },\r\n additionalRowData: {\r\n // ufficioSelezionato,\r\n apriEliminaDelega,\r\n dichiaraChiusa,\r\n setSegnalazioni,\r\n windowWidth,\r\n // annoImposta,\r\n },\r\n}) => {\r\n const history = useHistory();\r\n const location = useLocation();\r\n\r\n const appParamVisualizzazione = useSelector((store) => !!store.appParams.visualizzazione);\r\n const codiceUfficioOperatore = useSelector((store) => store.appParams.codiceUfficioOperatore);\r\n const codiceUfficioSelezionato = useSelector((store) => store.appParams.ufficioSelezionato);\r\n\r\n const [etichetteDelega, setEtichetteDelega] = useState([]);\r\n const etichetteSingolaChiamataAttivo = true;\r\n\r\n const [confirmFunzionalitaMancante, setConfirmFunzionalitaMancante] = useState(false);\r\n\r\n const gotoDelegaSoggetto = useCallback((idDelega) => {\r\n history.push(delegaSoggettoUrl(idDelega, appParamVisualizzazione, codiceUfficioOperatore, false, location.pathname.startsWith('/Scadenzario/')));\r\n }, [location, history, appParamVisualizzazione, codiceUfficioOperatore]);\r\n\r\n useEffect(() => {\r\n getEtichetteDelega(IdDelega)\r\n .then((res) => {\r\n if (res.Success) {\r\n setEtichetteDelega(res.Result);\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n });\r\n }, [IdDelega]);\r\n\r\n const stampaF24Provvisorio = (idDelega) => {\r\n postStampaDelegaProvvisoria(idDelega).then((res) => {\r\n if (res.Success) {\r\n callDownloadFile(\r\n apiDownloadFile,\r\n res.Result.NomeFile,\r\n res.Result.IdFile,\r\n codiceUfficioSelezionato,\r\n res.Result.NomeFile,\r\n ).then((resDownload) => {\r\n // setLoading(false);\r\n }).catch((e) => {\r\n logApiError(e);\r\n // setLoading(false);\r\n });\r\n } else {\r\n // setLoading(false);\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n // setLoading(false);\r\n });\r\n };\r\n\r\n return (\r\n \r\n gotoDelegaSoggetto(IdDelega)}\r\n >\r\n \r\n {TipoDelegaDescrizione}\r\n \r\n \r\n \r\n {ScadenzaVersamento === null ? '-' : `${JustADate(ScadenzaVersamento)}`}\r\n {new Date(ScadenzaVersamento) < new Date().setHours(0, 0, 0, 0) && (\r\n
    \r\n \r\n La delega è scaduta\r\n \r\n
    \r\n )}\r\n
    \r\n {/* \r\n \r\n {!Errata ? 'Aperta' : 'Errata'}\r\n */}\r\n \r\n \r\n
    {/* displayInlineMiddle */}\r\n {etichetteSingolaChiamataAttivo && }\r\n
    \r\n
    \r\n \r\n \r\n {Iban || (\r\n \r\n IBAN Assente\r\n \r\n )}\r\n \r\n \r\n \r\n {ImportoDebito ? `${getCurrencyValueNoSymbol(ImportoDebito)}` : '0,00'}\r\n \r\n \r\n \r\n {ImportoCredito ? `${getCurrencyValueNoSymbol(ImportoCredito)}` : '0,00'}\r\n \r\n \r\n \r\n {Saldo !== null ? `${getCurrencyValueNoSymbol(Saldo, true)}` : '-'}\r\n \r\n \r\n {!IsDichiaraCompletaAttivo ? (\r\n \r\n {ImportoCredito > 0 ? 'La delega deve avere un saldo maggiore o uguale a zero' : 'Non è presente alcun tributo'}\r\n \r\n ) : ''}\r\n \r\n \r\n {NumeroNote > 0 && (\r\n \r\n
    \r\n \r\n
    \r\n \r\n )}\r\n
    \r\n \r\n \r\n \r\n \r\n 0 ? 'La delega deve avere un saldo maggiore o uguale a zero' : 'Non è presente alcun tributo'}\r\n enableFunction={(e) => !IsDichiaraCompletaAttivo}\r\n className=\"Custom_Tooltip__sfondo-bianco\"\r\n >\r\n\r\n { windowWidth > 1465 ? (\r\n dichiaraChiusa(IdDelega, Stato)}\r\n primary\r\n disabled={!IsDichiaraCompletaAttivo || appParamVisualizzazione}\r\n >\r\n \r\n Segna come completa\r\n \r\n ) : (\r\n dichiaraChiusa(IdDelega, Stato)}\r\n primary\r\n disabled={!IsDichiaraCompletaAttivo || appParamVisualizzazione}\r\n >\r\n \r\n Segna come completa\r\n \r\n )}\r\n \r\n stampaF24Provvisorio(IdDelega)}\r\n >\r\n \r\n Stampa F24 provvisorio\r\n \r\n apriEliminaDelega(IdDelega)}\r\n disabled={appParamVisualizzazione}\r\n >\r\n \r\n Elimina\r\n \r\n \r\n \r\n \r\n \r\n \r\n setConfirmFunzionalitaMancante(false)}\r\n />\r\n
    \r\n );\r\n};\r\n\r\nRigaDelegheInLavorazioneSoggettoSmall.propTypes = {\r\n item: PropTypes.shape({\r\n IdDelega: PropTypes.number.isRequired,\r\n TipoDelega: PropTypes.number.isRequired,\r\n ScadenzaVersamento: PropTypes.string.isRequired,\r\n Stato: PropTypes.number,\r\n StatoInvioTelematico: PropTypes.string,\r\n Saldo: PropTypes.number,\r\n ImportoDebito: PropTypes.number,\r\n ImportoCredito: PropTypes.number,\r\n Errata: PropTypes.bool.isRequired,\r\n IsDichiaraCompletaAttivo: PropTypes.bool.isRequired,\r\n Iban: PropTypes.string,\r\n TipoDelegaDescrizione: PropTypes.string,\r\n NumeroNote: PropTypes.number,\r\n }).isRequired,\r\n additionalRowData: PropTypes.shape({\r\n dichiaraChiusa: PropTypes.func.isRequired,\r\n searchTerm: PropTypes.string,\r\n apriEliminaDelega: PropTypes.func.isRequired,\r\n setSegnalazioni: PropTypes.func,\r\n windowWidth: PropTypes.number,\r\n }).isRequired,\r\n};\r\n\r\nexport default RigaDelegheInLavorazioneSoggettoSmall;\r\n","/* eslint-disable import/no-named-as-default */\r\nimport React, {\r\n forwardRef, useCallback, useEffect, useImperativeHandle, useMemo, useRef, useState,\r\n} from 'react';\r\nimport useDebouncedFunc from 'framework-ui-components/Components/Hooks/useDebouncedFunc';\r\nimport {\r\n FeedbackModal, Filter, ODataTable, ViewportProvider,\r\n} from 'framework-ui-components/Components/V2';\r\nimport useViewport from 'framework-ui-components/Components/V2/Hooks/useViewport';\r\nimport PropTypes from 'prop-types';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport Log from 'framework-taskforce/utils/log';\r\nimport { getSegnalazioneError } from 'framework-taskforce/models/segnalazioni';\r\nimport { setAppParamsAction } from 'framework-taskforce/actions/appParams';\r\nimport useSignalR from 'framework-ui-components/Components/Hooks/useSignalR';\r\nimport { QueryOptions } from 'framework-ui-components';\r\nimport {\r\n getOttieniContatoriStatoDeleghe, getOttieniContatoriTipoDelegheContribuente, ottieniDelegheUrlInLavorazione, postDichiaraCompleta, postEliminaDelega,\r\n} from '../../../../../../apis/deleghe';\r\nimport RigaDelegheInLavorazioneSoggetto from './RigaDelegheInLavorazioneSoggetto';\r\nimport RigaDelegheInLavorazioneSoggettoSmall from './RigaDelegheInLavorazioneSoggettoSmall';\r\nimport ModaleConfermaEliminazione from '../../../../../../components/ModaleConfermaEliminazione';\r\nimport ModaleLoading from '../../../../../../components/ModaleLoading';\r\nimport RigaDelegheInLavorazioneSoggettoOdataTableHead from './RigaDelegheInLavorazioneSoggettoOdataTableHead';\r\nimport RigaDelegheInLavorazioneSoggettoOdataTableHeadSmall from './RigaDelegheInLavorazioneSoggettoOdataTableHeadSmall';\r\nimport { STATO_DELEGA, TIPO_DELEGA } from '../../../../../../models/delega';\r\n\r\nconst TabellaDelegheInLavorazioneSoggetto = forwardRef(({\r\n setContatori,\r\n}, ref) => {\r\n const tabellaRef = useRef();\r\n const studioSelezionato = useSelector((store) => store.appParams.studioSelezionato);\r\n const idContribuente = useSelector((store) => store.soggetto.idContribuente);\r\n const tabSelected = useSelector((store) => store.appParams.tabSelected);\r\n\r\n const { width, height, resolution } = useViewport();\r\n\r\n const [contatoriCheckbox, setContatoriCheckbox] = useState({});\r\n const [segnalazioni, setSegnalazioni] = useState([]);\r\n const [titoloFeedbackModal, setTitoloFeedbackModal] = useState('');\r\n const [numeroRighe, setNumeroRighe] = useState(0);\r\n const [confirmEliminaDelega, setConfirmEliminaDelega] = useState({ show: false, idDelega: 0 });\r\n const [showModaleLoading, setShowModaleLoading] = useState({\r\n show: false,\r\n title: '',\r\n });\r\n const [contatoriTipoDelega, setContatoriTipoDelega] = useState(null);\r\n const [filterState, setFilterState] = useState({\r\n // stato: [{\r\n // propertyName: 'stato',\r\n // description: 'di cui',\r\n // value: 1,\r\n // query: QueryOptions.EQUALS,\r\n // }],\r\n // errata: [{\r\n // propertyName: 'errata',\r\n // description: '',\r\n // value: true,\r\n // query: QueryOptions.EQUALS,\r\n // }],\r\n });\r\n\r\n // const url = useMemo(() => getOttieniDelegheUrl(\r\n // idContribuente,\r\n // tabSelected,\r\n // '',\r\n // ),\r\n // [idContribuente, tabSelected]);\r\n const dispatch = useDispatch();\r\n\r\n const getFiltriStatoObjProp = (stato) => `$filter_${stato}`;\r\n\r\n const url = useMemo(\r\n () => ottieniDelegheUrlInLavorazione(\r\n idContribuente,\r\n tabSelected,\r\n '',\r\n getFiltriStatoObjProp,\r\n ),\r\n [idContribuente, tabSelected],\r\n );\r\n\r\n const updateOptimisticRows = useCallback(() => {\r\n // dispatch({ type: ACTIONS.UPDATE_OPTIMISTIC_ROWS });\r\n }, []);\r\n\r\n const onRowsSelected = useCallback((rows) => {\r\n const rowsObjectSelected = rows.map((row) => !row.object.Errata && row.object);\r\n\r\n // epuro le delghe errate\r\n dispatch(setAppParamsAction({\r\n rowsDeleghe: rowsObjectSelected.filter((row) => row),\r\n }));\r\n }, [dispatch]);\r\n\r\n const onPageLoaded = useCallback((pageItems, totalCount, currentFilter, currentPage, sortProperty, sortOrder) => {\r\n setNumeroRighe(totalCount);\r\n tabellaRef.current && tabellaRef.current.resetSelection();\r\n updateOptimisticRows();\r\n getOttieniContatoriStatoDeleghe(idContribuente)\r\n .then((response) => {\r\n if (response.Success) {\r\n setContatori(response.Result);\r\n const contatoriInLavorazione = response.Result.find((obj) => obj.Stato === 1);\r\n setContatoriCheckbox({\r\n aperte: contatoriInLavorazione ? contatoriInLavorazione.TotaleDeleghe - contatoriInLavorazione.QuotaParteDelegheErrate : 0,\r\n errate: contatoriInLavorazione ? contatoriInLavorazione.QuotaParteDelegheErrate : 0,\r\n });\r\n } else {\r\n setContatori([]);\r\n Log.error('App error');\r\n }\r\n }).catch((err) => {\r\n Log.error(err);\r\n });\r\n\r\n getOttieniContatoriTipoDelegheContribuente(idContribuente, STATO_DELEGA.APERTA)\r\n .then((response) => {\r\n if (response.Success) {\r\n setContatoriTipoDelega(response.Result);\r\n } else {\r\n setContatoriTipoDelega(null);\r\n Log.error('App error');\r\n }\r\n }).catch((err) => {\r\n setContatoriTipoDelega(null);\r\n Log.error(err);\r\n });\r\n }, [idContribuente, setContatori, updateOptimisticRows]);\r\n\r\n // const updateContatori = useCallback(() => {\r\n // (getStati)(codiceUfficio, annoSelezionato, filtroText)\r\n // .then((contatori) => {\r\n // dispatch({ type: ACTIONS.SET_CONTATORI_STATO, payload: contatori });\r\n // }).catch((e) => {\r\n // Log.error(e);\r\n // });\r\n // }, [annoSelezionato, backoffice, codiceUfficio, dispatch, filtroText]);\r\n\r\n useEffect(() => {\r\n // updateContatori();\r\n }, []);\r\n\r\n const refreshTabella = useDebouncedFunc(() => {\r\n tabellaRef.current && tabellaRef.current.refreshTable();\r\n // updateContatori();\r\n }, 200, []);\r\n\r\n // permetto di accedere via ref al metodo refreshTabella\r\n useImperativeHandle(ref, () => ({ refreshTabella }), [refreshTabella]);\r\n\r\n // // intercettazione evento di refresh che arriva da un eventuale parent plugins\r\n // usePluginsReducer(() => ({\r\n // REFRESH_DICHIARAZIONI_ISEE: () => {\r\n // setTimeout(() => {\r\n // // Chiamata refresh dopo 1s (tempo di refresh indici elastic)\r\n // refreshTabella();\r\n // }, 1000);\r\n // },\r\n // }), [refreshTabella]);\r\n\r\n const dichiaraChiusa = useCallback((idDelega, stato) => {\r\n postDichiaraCompleta({ idDelega, stato }).then((response) => {\r\n if (response.Success) {\r\n refreshTabella();\r\n } else {\r\n setTitoloFeedbackModal('Sposta a \"Complete\" non riuscito');\r\n setSegnalazioni(response.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n }).catch((err) => {\r\n // Log.error(err);\r\n setTitoloFeedbackModal('Sposta a \"Complete\" non riuscito');\r\n setSegnalazioni([{ msg: 'Errore generico' }]);\r\n });\r\n }, [refreshTabella]);\r\n\r\n const eseguiEliminaDelega = useCallback((idDelega) => {\r\n setConfirmEliminaDelega({ show: false });\r\n postEliminaDelega(idDelega).then((response) => {\r\n if (!response.Success) {\r\n setTitoloFeedbackModal('Eliminazione non riuscita');\r\n setSegnalazioni(response.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n } else {\r\n setShowModaleLoading({ show: true, title: 'Eliminazione in corso' });\r\n }\r\n }).catch((err) => {\r\n Log.error(err);\r\n });\r\n }, []);\r\n\r\n useSignalR('DelegaEliminata', (data) => {\r\n setShowModaleLoading({ show: false });\r\n refreshTabella();\r\n });\r\n\r\n const apriEliminaDelega = useCallback((idDelega) => {\r\n setConfirmEliminaDelega({ show: true, idDelega });\r\n }, []);\r\n\r\n const rowRender = useCallback((item) => (\r\n width > 1300\r\n ? (\r\n \r\n ) : (\r\n \r\n )\r\n ), [apriEliminaDelega, dichiaraChiusa, refreshTabella, width]);\r\n\r\n return (\r\n \r\n {studioSelezionato && idContribuente && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {width > 1300\r\n ? RigaDelegheInLavorazioneSoggettoOdataTableHead(width)\r\n : RigaDelegheInLavorazioneSoggettoOdataTableHeadSmall(width)}\r\n \r\n )}\r\n setConfirmEliminaDelega({ show: false })}\r\n elimina={() => eseguiEliminaDelega(confirmEliminaDelega.idDelega)}\r\n nomeElementoEliminato=\"la delega\"\r\n />\r\n {showModaleLoading && showModaleLoading.show && (\r\n setShowModaleLoading({ show: false })}\r\n title={showModaleLoading.title}\r\n />\r\n )}\r\n {segnalazioni && segnalazioni.length > 0 && (\r\n 0}\r\n title={titoloFeedbackModal}\r\n onClose={() => setSegnalazioni([])}\r\n buttonLabel=\"ok\"\r\n type=\"alarm\"\r\n message={segnalazioni[0].msg}\r\n className=\"feedback--modal__720px\"\r\n />\r\n )}\r\n \r\n );\r\n});\r\n\r\nTabellaDelegheInLavorazioneSoggetto.propTypes = {\r\n setContatori: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default TabellaDelegheInLavorazioneSoggetto;\r\n","import React, {\r\n\r\n} from 'react';\r\nimport {\r\n ODataTable,\r\n} from 'framework-ui-components/Components/V2';\r\n\r\nexport const RigaDelegheInLavorazioneSoggettoOdataTableHead = (width) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 1400 ? 'Importo a debito (€)' : (
    Importo
    a debito (€)
    )}\r\n align=\"right\"\r\n fixedWidth={width > 1400 ? '160px' : '100px'}\r\n />\r\n \r\n 1400 ? 'Importo a credito (€)' : (
    Importo
    a credito (€)
    )}\r\n align=\"right\"\r\n fixedWidth={width > 1400 ? '160px' : '100px'}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* eslint-disable-next-line no-nested-ternary */}\r\n { width > 1465 ? (\r\n width > 1500 ? (\r\n \r\n ) : (\r\n \r\n )\r\n ) : (\r\n \r\n )}\r\n \r\n {/* eslint-disable-next-line no-nested-ternary */}\r\n { width > 1465 ? (\r\n width > 1500 ? (\r\n \r\n ) : (\r\n \r\n )\r\n ) : (\r\n \r\n )}\r\n \r\n
    \r\n);\r\n\r\nexport default RigaDelegheInLavorazioneSoggettoOdataTableHead;\r\n","import React, {\r\n\r\n} from 'react';\r\nimport {\r\n ODataTable,\r\n} from 'framework-ui-components/Components/V2';\r\n\r\nexport const RigaDelegheInLavorazioneSoggettoOdataTableHeadSmall = (width) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n);\r\n\r\nexport default RigaDelegheInLavorazioneSoggettoOdataTableHeadSmall;\r\n","import React from 'react';\r\nimport Icon from './Icon';\r\n\r\nexport default Icon(\r\n \r\n \r\n \r\n , '0 0 24 24', 'ExternalIcon',\r\n);\r\n","import React, { Fragment, useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Formatter, Input } from 'framework-ui-components';\r\nimport { MinimizeIcon, ExternalIcon } from 'framework-ui-components/Components/Icons';\r\nimport {\r\n Button, DropdownButton, Table, useTableRowContext,\r\n} from 'framework-ui-components/Components/V2';\r\nimport MoreVertIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/MoreVertIcon';\r\nimport ModaleAiutaci from '../../../../../../components/ModaleAiutaci';\r\n\r\nconst RigaExpanded = (item) => {\r\n const { setExpanded } = useTableRowContext();\r\n const [confirmFunzionalitaMancante, setConfirmFunzionalitaMancante] = useState(false);\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 \r\n \r\n \r\n setExpanded(false)}\r\n primary\r\n >\r\n \r\n Apri delega\r\n \r\n setExpanded(false)}\r\n >\r\n \r\n Meno info\r\n \r\n \r\n \r\n Altre azioni\r\n \r\n \r\n \r\n \r\n \r\n setConfirmFunzionalitaMancante(false)}\r\n />\r\n \r\n );\r\n};\r\n\r\nRigaExpanded.propTypes = {\r\n item: PropTypes.shape({\r\n }).isRequired,\r\n};\r\n\r\nexport default RigaExpanded;\r\n","/* eslint-disable no-nested-ternary */\r\nimport React, {\r\n useCallback, useState, useEffect, useMemo,\r\n} from 'react';\r\nimport {\r\n Badge,\r\n Formatter,\r\n InfoTooltip,\r\n Tooltip,\r\n} from 'framework-ui-components';\r\nimport { useSelector } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport { useHistory } from 'react-router';\r\nimport { useLocation } from 'react-router-dom';\r\nimport {\r\n Button, DropdownButton, FeedbackPanel, Table,\r\n} from 'framework-ui-components/Components/V2';\r\nimport { JustADate } from 'framework-taskforce/utils/date';\r\nimport { STOP_EVENT_PROPAGATION } from 'framework-ui-components/utils/const';\r\nimport MoreVertIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/MoreVertIcon';\r\nimport { logApiError } from 'framework-taskforce/utils/log';\r\nimport { callDownloadFile } from 'framework-taskforce/utils/file';\r\nimport { getSegnalazioneError } from 'framework-taskforce/models/segnalazioni';\r\nimport NoteDoneIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/NoteDoneIcon';\r\nimport FileDownloadIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/FileDownloadIcon';\r\nimport PrinterIcon from '../../../../../../components/icons/google/PrinterIcon';\r\nimport { delegaSoggettoUrl } from '../../../../../../models/urls';\r\nimport { getCurrencyValueNoSymbol } from '../../../../../../utils/format';\r\nimport RigaExpanded from './RigaExpanded';\r\nimport {\r\n MODALITA_PRESENTAZIONE, MODALITA_VERSAMENTO_PAGOF24, STATO_DELEGA, STATO_INVIO_CBI, STATO_INVIO_PAGOF24, STATO_INVIO_TELEMATICO,\r\n} from '../../../../../../models/delega';\r\nimport UndoIcon from '../../../../../../components/icons/google/UndoIcon';\r\nimport ModaleDichiaraPagata from './ModaleDichiaraPagata';\r\nimport CreditScoreIcon from '../../../../../../components/icons/google/CreditScoreIcon';\r\nimport {\r\n getEtichetteDelega, getStampaUltimaDelega, postQuietanza, postStampaCopiaConformeDelega, postStampaDelegaProvvisoria,\r\n} from '../../../../../../apis/deleghe';\r\nimport EtichetteDelega from '../../../../../../components/EtichetteDelega';\r\nimport ModaleRischiDiPagareDueVolte from '../complete/ModaleRischiDiPagareDueVolte';\r\nimport apiDownloadFile from '../../../../../../apis/file';\r\n\r\nconst RigaDeleghePresentateSoggetto = ({\r\n item: {\r\n Errata,\r\n Iban,\r\n IdContribuente,\r\n IdDelega,\r\n IsDichiaraApertaAttivo,\r\n IsDichiaraPagataAttivo,\r\n IsDichiaraNonPagataAttivo,\r\n Saldo,\r\n ScadenzaVersamento,\r\n SoggettoVersante,\r\n SoggettoVersanteDescrizione,\r\n Stato,\r\n StatoInvioTelematico,\r\n StatoDescrizione,\r\n TipoDelega,\r\n TipoDelegaDescrizione,\r\n DataVersamento,\r\n ModalitaPresentazione,\r\n ModalitaPresentazioneDescrizione,\r\n IsDichiaraCompletaAttivo,\r\n StatoInvioCbi,\r\n StatoVersamentoPagoF24,\r\n ModalitaVersamentoPagoF24,\r\n InfoAggiuntiveStatoPagoF24,\r\n NumeroNote,\r\n IsPagoF24QrCode,\r\n },\r\n additionalRowData: {\r\n // ufficioSelezionato,\r\n searchTerm,\r\n dichiaraPagata,\r\n dichiaraAperta,\r\n dichiaraCompleta,\r\n dichiaraNonPagata,\r\n setSegnalazioni,\r\n segnalazioni,\r\n setSegnalazioniDichiaraPagata,\r\n segnalazioniDichiaraPagata,\r\n windowWidth,\r\n },\r\n}) => {\r\n const history = useHistory();\r\n\r\n const appParamVisualizzazione = useSelector((store) => !!store.appParams.visualizzazione);\r\n const codiceUfficioOperatore = useSelector((store) => store.appParams.codiceUfficioOperatore);\r\n const codiceUfficioSelezionato = useSelector((store) => store.appParams.ufficioSelezionato);\r\n\r\n const [showModaleDichiaraPagata, setShowModaleDichiaraPagata] = useState(false);\r\n const [etichetteDelega, setEtichetteDelega] = useState([]);\r\n const etichetteSingolaChiamataAttivo = true;\r\n\r\n const location = useLocation();\r\n\r\n const rischiDiPagareDueVolte = useMemo(\r\n () => (ModalitaPresentazione === MODALITA_PRESENTAZIONE.INVIO_TELEMATICO_INTERMEDIARIO_ADELE\r\n && (StatoInvioTelematico === STATO_INVIO_TELEMATICO.ADEMPIMENTO_SOSPESO_ADE || StatoInvioTelematico === STATO_INVIO_TELEMATICO.ADEMPIMENTO_INVIATO_ADE)),\r\n [ModalitaPresentazione, StatoInvioTelematico],\r\n );\r\n\r\n const [showWarningSegnaDaNonPresentare, setShowWarningSegnaDaNonPresentare] = useState({ show: false });\r\n\r\n const gotoDelegaSoggetto = useCallback((idDelega) => {\r\n history.push(delegaSoggettoUrl(idDelega, appParamVisualizzazione, codiceUfficioOperatore, false, location.pathname.startsWith('/Scadenzario/')));\r\n }, [location, history, appParamVisualizzazione, codiceUfficioOperatore]);\r\n\r\n useEffect(() => {\r\n getEtichetteDelega(IdDelega)\r\n .then((res) => {\r\n if (res.Success) {\r\n setEtichetteDelega(res.Result);\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n });\r\n }, [IdDelega]);\r\n\r\n const chiusuraModaleDichiaraPagata = useCallback((esito) => {\r\n setShowModaleDichiaraPagata(false);\r\n setSegnalazioni([]);\r\n }, [setSegnalazioni]);\r\n\r\n const getBadgeInvioCbi = (statoInvioCbi, modalitaPresentazioneDescrizione) => {\r\n let badge =
    ;\r\n\r\n if (statoInvioCbi === STATO_INVIO_CBI.DELEGA_ERRATA) {\r\n badge = (\r\n \r\n Errata\r\n \r\n );\r\n } else if (statoInvioCbi === STATO_INVIO_CBI.DELEGA_NON_PAGATA) {\r\n badge = (\r\n \r\n Non pagata\r\n \r\n );\r\n } else if (statoInvioCbi === STATO_INVIO_CBI.DELEGA_IN_ATTESA_DI_PAGAMENTO) {\r\n badge = (\r\n \r\n In attesa\r\n \r\n );\r\n } else if (statoInvioCbi === STATO_INVIO_CBI.DELEGA_PAGATA) {\r\n badge = (\r\n \r\n Pagata\r\n \r\n );\r\n } else if (statoInvioCbi === STATO_INVIO_CBI.DELEGA_IN_CARICO_BANCA) {\r\n badge = (\r\n \r\n In carico banca\r\n \r\n );\r\n }\r\n\r\n return (\r\n
    \r\n {modalitaPresentazioneDescrizione}\r\n {badge}\r\n
    \r\n );\r\n };\r\n\r\n const getBadgeInvioTelematico = (statoInvioTelematico, modalitaPresentazioneDescrizione) => {\r\n let badge =
    ;\r\n\r\n if (statoInvioTelematico === STATO_INVIO_TELEMATICO.ADEMPIMENTO_SCARTATO_ADE) {\r\n badge = (\r\n \r\n Scartato\r\n \r\n );\r\n } else if (statoInvioTelematico === STATO_INVIO_TELEMATICO.ADEMPIMENTO_ANNULLATO_ADE) {\r\n badge = (\r\n \r\n Annullato\r\n \r\n );\r\n } else if (statoInvioTelematico === STATO_INVIO_TELEMATICO.ADEMPIMENTO_NON_INVIATO_ADE\r\n || statoInvioTelematico === STATO_INVIO_TELEMATICO.DELEGA_NON_INVIATA\r\n || statoInvioTelematico === STATO_INVIO_TELEMATICO.ADEMPIMENTO_NON_CREATO) {\r\n badge = (\r\n \r\n Rifiutato\r\n \r\n );\r\n } else if (statoInvioTelematico === STATO_INVIO_TELEMATICO.ADEMPIMENTO_SOSPESO_ADE) {\r\n badge = (\r\n \r\n Sospeso\r\n \r\n );\r\n } else if (statoInvioTelematico === STATO_INVIO_TELEMATICO.ADEMPIMENTO_INVIATO_ADE) {\r\n badge = (\r\n \r\n Inviato\r\n \r\n );\r\n } else if (statoInvioTelematico === STATO_INVIO_TELEMATICO.ADEMPIMENTO_ELABORATO_ADE) {\r\n badge = (\r\n \r\n Elaborato\r\n \r\n );\r\n }\r\n\r\n return (\r\n
    \r\n {modalitaPresentazioneDescrizione}\r\n {badge}\r\n
    \r\n );\r\n };\r\n\r\n const getBadgePagoF24 = (statoPagoF24, statoInvioCbi, modalitaPresentazioneDescrizione, modalitaVersamento, infoAggiuntive, isPagoF24QrCode) => {\r\n if (statoPagoF24 === STATO_INVIO_PAGOF24.VERSAMENTO_TRAMITE_CBI_AVVIATO) {\r\n return getBadgeInvioCbi(statoInvioCbi, modalitaPresentazioneDescrizione);\r\n }\r\n\r\n const badge = STATO_INVIO_PAGOF24.createBadge(statoPagoF24, modalitaVersamento, infoAggiuntive, 'ml-8');\r\n\r\n return (\r\n
    \r\n {isPagoF24QrCode ? (\r\n
    \r\n Il tuo cliente ha utilizzato la procedura di
    pagamento attraverso il QR code
    stampato nella delega F24
    )}\r\n right\r\n >\r\n {modalitaPresentazioneDescrizione} QR\r\n \r\n
    \r\n ) : (\r\n modalitaPresentazioneDescrizione\r\n )}\r\n {badge}\r\n
    \r\n );\r\n };\r\n\r\n const riscaricaUltimoF24 = (idDelega) => {\r\n getStampaUltimaDelega(idDelega).then((res) => {\r\n if (res.Success) {\r\n callDownloadFile(\r\n apiDownloadFile,\r\n res.Result.NomeFile,\r\n res.Result.IdFile,\r\n codiceUfficioSelezionato,\r\n res.Result.NomeFile,\r\n ).then((resDownload) => {\r\n // setLoading(false);\r\n }).catch((e) => {\r\n logApiError(e);\r\n // setLoading(false);\r\n });\r\n } else {\r\n // setLoading(false);\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n // setLoading(false);\r\n });\r\n };\r\n\r\n const stampaF24CopiaConforme = (idDelega) => {\r\n postStampaCopiaConformeDelega(idDelega).then((res) => {\r\n if (res.Success) {\r\n callDownloadFile(\r\n apiDownloadFile,\r\n res.Result.NomeFile,\r\n res.Result.IdFile,\r\n codiceUfficioSelezionato,\r\n res.Result.NomeFile,\r\n ).then((resDownload) => {\r\n // setLoading(false);\r\n }).catch((e) => {\r\n logApiError(e);\r\n // setLoading(false);\r\n });\r\n } else {\r\n // setLoading(false);\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n // setLoading(false);\r\n });\r\n };\r\n\r\n const stampaF24Provvisorio = (idDelega) => {\r\n postStampaDelegaProvvisoria(idDelega).then((res) => {\r\n if (res.Success) {\r\n callDownloadFile(\r\n apiDownloadFile,\r\n res.Result.NomeFile,\r\n res.Result.IdFile,\r\n codiceUfficioSelezionato,\r\n res.Result.NomeFile,\r\n ).then((resDownload) => {\r\n // setLoading(false);\r\n }).catch((e) => {\r\n logApiError(e);\r\n // setLoading(false);\r\n });\r\n } else {\r\n // setLoading(false);\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n // setLoading(false);\r\n });\r\n };\r\n\r\n const scaricaQuietanza = (idDelega) => {\r\n postQuietanza(idDelega).then((res) => {\r\n if (res.Success) {\r\n callDownloadFile(\r\n apiDownloadFile,\r\n res.Result.NomeFile,\r\n res.Result.IdFile,\r\n codiceUfficioSelezionato,\r\n res.Result.NomeFile,\r\n ).then((resDownload) => {\r\n // setLoading(false);\r\n }).catch((e) => {\r\n logApiError(e);\r\n // setLoading(false);\r\n });\r\n } else {\r\n // setLoading(false);\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n // setLoading(false);\r\n });\r\n };\r\n\r\n return (\r\n \r\n (\r\n \r\n )}\r\n onClick={() => gotoDelegaSoggetto(IdDelega)}\r\n >\r\n \r\n {TipoDelegaDescrizione}\r\n \r\n \r\n \r\n {DataVersamento === null ? '-' : `${JustADate(DataVersamento)}`}\r\n {Stato !== STATO_DELEGA.PAGATA && ModalitaPresentazione !== MODALITA_PRESENTAZIONE.CARTACEA\r\n && new Date(DataVersamento) > new Date(ScadenzaVersamento) && (\r\n
    \r\n \r\n La delega è scaduta il \r\n \r\n
    \r\n )}\r\n {Stato !== STATO_DELEGA.PAGATA && ModalitaPresentazione === MODALITA_PRESENTAZIONE.CARTACEA\r\n && new Date(ScadenzaVersamento) < new Date().setHours(0, 0, 0, 0) && (\r\n
    \r\n \r\n La delega è scaduta il \r\n \r\n
    \r\n )}\r\n {Stato === STATO_DELEGA.PAGATA\r\n && new Date(DataVersamento) > new Date(ScadenzaVersamento) && (\r\n
    \r\n \r\n La delega è scaduta il \r\n \r\n
    \r\n )}\r\n
    \r\n \r\n \r\n
    {/* displayInlineMiddle */}\r\n {etichetteSingolaChiamataAttivo && }\r\n
    \r\n
    \r\n \r\n \r\n {StatoDescrizione}\r\n \r\n \r\n \r\n {ModalitaPresentazione === MODALITA_PRESENTAZIONE.INVIO_TELEMATICO_INTERMEDIARIO_ADELE\r\n ? getBadgeInvioTelematico(StatoInvioTelematico, ModalitaPresentazioneDescrizione)\r\n : ModalitaPresentazione === MODALITA_PRESENTAZIONE.INVIO_TELEMATICO_INTERMEDIARIO_CBI\r\n ? getBadgeInvioCbi(StatoInvioCbi, ModalitaPresentazioneDescrizione)\r\n : (ModalitaPresentazione === MODALITA_PRESENTAZIONE.PAGO_F24 || ModalitaPresentazione === MODALITA_PRESENTAZIONE.CGN_POS)\r\n ? getBadgePagoF24(\r\n StatoVersamentoPagoF24,\r\n StatoInvioCbi,\r\n ModalitaPresentazioneDescrizione,\r\n ModalitaVersamentoPagoF24,\r\n InfoAggiuntiveStatoPagoF24,\r\n IsPagoF24QrCode,\r\n )\r\n : (ModalitaPresentazioneDescrizione ? `${ModalitaPresentazioneDescrizione}` : '-')}\r\n \r\n { windowWidth > 1600 && (\r\n \r\n \r\n \r\n {SoggettoVersanteDescrizione === '0' ? 'Contribuente' : SoggettoVersanteDescrizione || '-'}\r\n \r\n \r\n )}\r\n \r\n \r\n {Iban || '-'}\r\n \r\n \r\n \r\n {Saldo !== null ? `${getCurrencyValueNoSymbol(Saldo, true)}` : '-'}\r\n \r\n \r\n \r\n {NumeroNote > 0 && (\r\n windowWidth < 1600}\r\n >\r\n
    \r\n \r\n {windowWidth >= 1600 && (\r\n Note presenti\r\n )}\r\n
    \r\n \r\n )}\r\n
    \r\n \r\n \r\n { windowWidth > 1600 ? (\r\n Stato !== STATO_DELEGA.PAGATA && (\r\n setShowModaleDichiaraPagata(true)}\r\n disabled={!IsDichiaraPagataAttivo || appParamVisualizzazione}\r\n primary\r\n >\r\n \r\n Segna come pagata\r\n \r\n )\r\n ) : (\r\n Stato !== STATO_DELEGA.PAGATA && (\r\n setShowModaleDichiaraPagata(true)}\r\n disabled={!IsDichiaraPagataAttivo || appParamVisualizzazione}\r\n primary\r\n vertical\r\n >\r\n \r\n Segna come pagata\r\n \r\n )\r\n )}\r\n \r\n \r\n \r\n { windowWidth > 1600 ? (\r\n \r\n \r\n Altre azioni\r\n \r\n {Stato === STATO_DELEGA.PAGATA && StatoVersamentoPagoF24 === STATO_INVIO_PAGOF24.PAGATA && (\r\n scaricaQuietanza(IdDelega)}\r\n disabled={appParamVisualizzazione}\r\n primary\r\n >\r\n \r\n Scarica quietanza\r\n \r\n )}\r\n {Stato === STATO_DELEGA.PAGATA && (\r\n dichiaraNonPagata(IdDelega, Stato)}\r\n disabled={!IsDichiaraNonPagataAttivo || appParamVisualizzazione}\r\n >\r\n \r\n Segna come 'in Presentazione'\r\n \r\n )}\r\n (rischiDiPagareDueVolte ? setShowWarningSegnaDaNonPresentare(\r\n { show: true, callBack: dichiaraCompleta, titolo: 'Sposta a \"Complete\"' },\r\n ) : dichiaraCompleta(IdDelega, Stato))}\r\n disabled={!IsDichiaraCompletaAttivo || appParamVisualizzazione}\r\n >\r\n \r\n Sposta a "Complete"\r\n \r\n {Stato !== STATO_DELEGA.PAGATA && (\r\n (rischiDiPagareDueVolte ? setShowWarningSegnaDaNonPresentare(\r\n { show: true, callBack: dichiaraAperta, titolo: 'Sposta a \"In lavorazione\"' },\r\n ) : dichiaraAperta(IdDelega))}\r\n disabled={!IsDichiaraApertaAttivo || appParamVisualizzazione}\r\n >\r\n \r\n Sposta a "In lavorazione"\r\n \r\n )}\r\n (ModalitaPresentazione === MODALITA_PRESENTAZIONE.CARTACEA\r\n ? riscaricaUltimoF24(IdDelega)\r\n : stampaF24CopiaConforme(IdDelega))}\r\n >\r\n \r\n Stampa F24\r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n Altre azioni\r\n \r\n {Stato === STATO_DELEGA.PAGATA && StatoVersamentoPagoF24 === STATO_INVIO_PAGOF24.PAGATA && (\r\n scaricaQuietanza(IdDelega)}\r\n disabled={appParamVisualizzazione}\r\n primary\r\n >\r\n \r\n Scarica quietanza\r\n \r\n )}\r\n {Stato === STATO_DELEGA.PAGATA && (\r\n dichiaraNonPagata(IdDelega, Stato)}\r\n disabled={!IsDichiaraNonPagataAttivo || appParamVisualizzazione}\r\n >\r\n \r\n Segna come 'in Presentazione'\r\n \r\n )}\r\n (rischiDiPagareDueVolte ? setShowWarningSegnaDaNonPresentare(\r\n { show: true, callBack: dichiaraCompleta, titolo: 'Sposta a \"Complete\"' },\r\n ) : dichiaraCompleta(IdDelega, Stato))}\r\n disabled={!IsDichiaraCompletaAttivo || appParamVisualizzazione}\r\n >\r\n \r\n Sposta a "Complete"\r\n \r\n {Stato !== STATO_DELEGA.PAGATA && (\r\n (rischiDiPagareDueVolte ? setShowWarningSegnaDaNonPresentare(\r\n { show: true, callBack: dichiaraAperta, titolo: 'Sposta a \"In lavorazione\"' },\r\n ) : dichiaraAperta(IdDelega))}\r\n disabled={!IsDichiaraApertaAttivo || appParamVisualizzazione}\r\n >\r\n \r\n Sposta a "In lavorazione"\r\n \r\n )}\r\n stampaF24Provvisorio(IdDelega)}\r\n >\r\n \r\n Stampa F24 provvisorio\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n setShowWarningSegnaDaNonPresentare({ show: false })}\r\n primaryLabel=\"Non spostare\"\r\n onPrimaryClick={() => setShowWarningSegnaDaNonPresentare({ show: false })}\r\n secondaryLabel={showWarningSegnaDaNonPresentare.titolo}\r\n onSecondaryClick={() => {\r\n showWarningSegnaDaNonPresentare.callBack(IdDelega);\r\n setShowWarningSegnaDaNonPresentare({ show: false });\r\n }}\r\n title={showWarningSegnaDaNonPresentare.titolo}\r\n message={(\r\n
    \r\n \r\n I tibuti della delega che stai per spostare potrebbero essere versati ugualmente\r\n
    \r\n in quanto già trasmessi all'Agenzia delle Entrate\r\n
    \r\n )}\r\n type=\"warning\"\r\n />\r\n
    \r\n )}\r\n dontShowAgainMessage={null}\r\n dontShowAgainId={null}\r\n />\r\n \r\n );\r\n};\r\n\r\nRigaDeleghePresentateSoggetto.propTypes = {\r\n item: PropTypes.shape({\r\n Errata: PropTypes.bool.isRequired,\r\n Iban: PropTypes.string,\r\n IdContribuente: PropTypes.number.isRequired,\r\n IdDelega: PropTypes.number.isRequired,\r\n IsDichiaraApertaAttivo: PropTypes.bool.isRequired,\r\n IsDichiaraPagataAttivo: PropTypes.bool.isRequired,\r\n IsDichiaraNonPagataAttivo: PropTypes.bool.isRequired,\r\n Saldo: PropTypes.number,\r\n ScadenzaVersamento: PropTypes.string.isRequired,\r\n SoggettoVersante: PropTypes.number,\r\n SoggettoVersanteDescrizione: PropTypes.string,\r\n Stato: PropTypes.number,\r\n StatoInvioTelematico: PropTypes.number,\r\n StatoDescrizione: PropTypes.string.isRequired,\r\n TipoDelega: PropTypes.number.isRequired,\r\n TipoDelegaDescrizione: PropTypes.string.isRequired,\r\n DataVersamento: PropTypes.string,\r\n ModalitaPresentazione: PropTypes.number,\r\n ModalitaPresentazioneDescrizione: PropTypes.string,\r\n IsDichiaraCompletaAttivo: PropTypes.bool,\r\n StatoInvioCbi: PropTypes.number,\r\n StatoVersamentoPagoF24: PropTypes.number,\r\n ModalitaVersamentoPagoF24: PropTypes.number,\r\n InfoAggiuntiveStatoPagoF24: PropTypes.string,\r\n NumeroNote: PropTypes.number,\r\n }).isRequired,\r\n additionalRowData: PropTypes.shape({\r\n searchTerm: PropTypes.string,\r\n dichiaraPagata: PropTypes.func.isRequired,\r\n dichiaraAperta: PropTypes.func.isRequired,\r\n dichiaraCompleta: PropTypes.func.isRequired,\r\n dichiaraNonPagata: PropTypes.func.isRequired,\r\n setSegnalazioni: PropTypes.func,\r\n segnalazioni: PropTypes.arrayOf(PropTypes.string),\r\n setSegnalazioniDichiaraPagata: PropTypes.func,\r\n segnalazioniDichiaraPagata: PropTypes.arrayOf(PropTypes.string),\r\n windowWidth: PropTypes.number,\r\n }).isRequired,\r\n};\r\n\r\nexport default RigaDeleghePresentateSoggetto;\r\n","/* eslint-disable no-nested-ternary */\r\nimport React, {\r\n useCallback, useEffect, useMemo, useState,\r\n} from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport { useHistory } from 'react-router';\r\nimport { useLocation } from 'react-router-dom';\r\nimport {\r\n Button, DropdownButton, FeedbackPanel, Table,\r\n} from 'framework-ui-components/Components/V2';\r\nimport { JustADate } from 'framework-taskforce/utils/date';\r\nimport { STOP_EVENT_PROPAGATION } from 'framework-ui-components/utils/const';\r\nimport MoreVertIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/MoreVertIcon';\r\nimport {\r\n Badge, Tooltip, InfoTooltip, Formatter,\r\n} from 'framework-ui-components';\r\nimport { logApiError } from 'framework-taskforce/utils/log';\r\nimport { callDownloadFile } from 'framework-taskforce/utils/file';\r\nimport { getSegnalazioneError } from 'framework-taskforce/models/segnalazioni';\r\nimport NoteDoneIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/NoteDoneIcon';\r\nimport FileDownloadIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/FileDownloadIcon';\r\nimport { delegaSoggettoUrl } from '../../../../../../models/urls';\r\nimport { getCurrencyValueNoSymbol } from '../../../../../../utils/format';\r\nimport PrinterIcon from '../../../../../../components/icons/google/PrinterIcon';\r\nimport apiDownloadFile from '../../../../../../apis/file';\r\nimport {\r\n getEtichetteDelega, getStampaUltimaDelega, postQuietanza, postStampaCopiaConformeDelega, postStampaDelegaProvvisoria,\r\n} from '../../../../../../apis/deleghe';\r\nimport EtichetteDelega from '../../../../../../components/EtichetteDelega';\r\nimport UndoIcon from '../../../../../../components/icons/google/UndoIcon';\r\nimport ModaleDichiaraPagata from './ModaleDichiaraPagata';\r\nimport ModaleRischiDiPagareDueVolte from '../complete/ModaleRischiDiPagareDueVolte';\r\nimport {\r\n MODALITA_PRESENTAZIONE, STATO_DELEGA, STATO_INVIO_CBI, STATO_INVIO_PAGOF24, STATO_INVIO_TELEMATICO, MODALITA_VERSAMENTO_PAGOF24,\r\n} from '../../../../../../models/delega';\r\nimport CreditScoreIcon from '../../../../../../components/icons/google/CreditScoreIcon';\r\nimport RigaExpanded from './RigaExpanded';\r\n\r\nconst RigaDeleghePresentateSoggettoSmall = ({\r\n item: {\r\n Errata,\r\n Iban,\r\n IdContribuente,\r\n IdDelega,\r\n IsDichiaraApertaAttivo,\r\n IsDichiaraPagataAttivo,\r\n IsDichiaraNonPagataAttivo,\r\n Saldo,\r\n ScadenzaVersamento,\r\n SoggettoVersante,\r\n SoggettoVersanteDescrizione,\r\n Stato,\r\n StatoInvioTelematico,\r\n StatoDescrizione,\r\n TipoDelega,\r\n TipoDelegaDescrizione,\r\n DataVersamento,\r\n ModalitaPresentazione,\r\n ModalitaPresentazioneDescrizione,\r\n IsDichiaraCompletaAttivo,\r\n StatoInvioCbi,\r\n StatoVersamentoPagoF24,\r\n ModalitaVersamentoPagoF24,\r\n InfoAggiuntiveStatoPagoF24,\r\n NumeroNote,\r\n IsPagoF24QrCode,\r\n },\r\n additionalRowData: {\r\n // ufficioSelezionato,\r\n searchTerm,\r\n dichiaraPagata,\r\n dichiaraAperta,\r\n dichiaraCompleta,\r\n dichiaraNonPagata,\r\n setSegnalazioni,\r\n segnalazioni,\r\n setSegnalazioniDichiaraPagata,\r\n segnalazioniDichiaraPagata,\r\n windowWidth,\r\n },\r\n}) => {\r\n const history = useHistory();\r\n\r\n const appParamVisualizzazione = useSelector((store) => !!store.appParams.visualizzazione);\r\n const codiceUfficioOperatore = useSelector((store) => store.appParams.codiceUfficioOperatore);\r\n const codiceUfficioSelezionato = useSelector((store) => store.appParams.ufficioSelezionato);\r\n\r\n const [showModaleDichiaraPagata, setShowModaleDichiaraPagata] = useState(false);\r\n const [etichetteDelega, setEtichetteDelega] = useState([]);\r\n const etichetteSingolaChiamataAttivo = true;\r\n\r\n const location = useLocation();\r\n\r\n const rischiDiPagareDueVolte = useMemo(\r\n () => (ModalitaPresentazione === MODALITA_PRESENTAZIONE.INVIO_TELEMATICO_INTERMEDIARIO_ADELE\r\n && (StatoInvioTelematico === STATO_INVIO_TELEMATICO.ADEMPIMENTO_SOSPESO_ADE || StatoInvioTelematico === STATO_INVIO_TELEMATICO.ADEMPIMENTO_INVIATO_ADE)),\r\n [ModalitaPresentazione, StatoInvioTelematico],\r\n );\r\n\r\n const [showWarningSegnaDaNonPresentare, setShowWarningSegnaDaNonPresentare] = useState({ show: false });\r\n\r\n const gotoDelegaSoggetto = useCallback((idDelega) => {\r\n history.push(delegaSoggettoUrl(idDelega, appParamVisualizzazione, codiceUfficioOperatore, false, location.pathname.startsWith('/Scadenzario/')));\r\n }, [location, history, appParamVisualizzazione, codiceUfficioOperatore]);\r\n\r\n useEffect(() => {\r\n getEtichetteDelega(IdDelega)\r\n .then((res) => {\r\n if (res.Success) {\r\n setEtichetteDelega(res.Result);\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n });\r\n }, [IdDelega]);\r\n\r\n const chiusuraModaleDichiaraPagata = useCallback((esito) => {\r\n setShowModaleDichiaraPagata(false);\r\n setSegnalazioni([]);\r\n }, [setSegnalazioni]);\r\n\r\n const getBadgePagoF24 = (statoPagoF24, statoInvioCbi, modalitaPresentazioneDescrizione, modalitaVersamento, infoAggiuntive, isPagoF24QrCode) => {\r\n if (statoPagoF24 === STATO_INVIO_PAGOF24.VERSAMENTO_TRAMITE_CBI_AVVIATO) {\r\n return getBadgeInvioCbi(statoInvioCbi, modalitaPresentazioneDescrizione);\r\n }\r\n\r\n const badge = STATO_INVIO_PAGOF24.createBadge(statoPagoF24, modalitaVersamento, infoAggiuntive, 'ml-8');\r\n const badge2 =
    ;\r\n\r\n return (\r\n
    \r\n {isPagoF24QrCode ? (\r\n
    \r\n Il tuo cliente ha utilizzato la procedura di
    pagamento attraverso il QR code
    stampato nella delega F24
    )}\r\n right\r\n >\r\n {modalitaPresentazioneDescrizione} QR\r\n \r\n
    \r\n ) : (\r\n modalitaPresentazioneDescrizione\r\n )}\r\n {badge}\r\n {badge2}\r\n
    \r\n );\r\n };\r\n\r\n const getBadgeInvioCbi = (statoInvioCbi, modalitaPresentazioneDescrizione) => {\r\n let badge =
    ;\r\n\r\n if (statoInvioCbi === STATO_INVIO_CBI.DELEGA_ERRATA) {\r\n badge = (\r\n \r\n Errata\r\n \r\n );\r\n } else if (statoInvioCbi === STATO_INVIO_CBI.DELEGA_NON_PAGATA) {\r\n badge = (\r\n \r\n Non pagata\r\n \r\n );\r\n } else if (statoInvioCbi === STATO_INVIO_CBI.DELEGA_IN_ATTESA_DI_PAGAMENTO) {\r\n badge = (\r\n \r\n In attesa\r\n \r\n );\r\n } else if (statoInvioCbi === STATO_INVIO_CBI.DELEGA_PAGATA) {\r\n badge = (\r\n \r\n Pagata\r\n \r\n );\r\n } else if (statoInvioCbi === STATO_INVIO_CBI.DELEGA_IN_CARICO_BANCA) {\r\n badge = (\r\n \r\n In carico banca\r\n \r\n );\r\n }\r\n\r\n return (\r\n
    \r\n {modalitaPresentazioneDescrizione}\r\n {badge}\r\n
    \r\n );\r\n };\r\n\r\n const getBadgeInvioTelematico = (statoInvioTelematico, modalitaPresentazioneDescrizione) => {\r\n let badge =
    ;\r\n\r\n if (statoInvioTelematico === STATO_INVIO_TELEMATICO.ADEMPIMENTO_SCARTATO_ADE) {\r\n badge = (\r\n \r\n Scartato\r\n \r\n );\r\n } else if (statoInvioTelematico === STATO_INVIO_TELEMATICO.ADEMPIMENTO_ANNULLATO_ADE) {\r\n badge = (\r\n \r\n Annullato\r\n \r\n );\r\n } else if (statoInvioTelematico === STATO_INVIO_TELEMATICO.ADEMPIMENTO_NON_INVIATO_ADE\r\n || statoInvioTelematico === STATO_INVIO_TELEMATICO.DELEGA_NON_INVIATA\r\n || statoInvioTelematico === STATO_INVIO_TELEMATICO.ADEMPIMENTO_NON_CREATO) {\r\n badge = (\r\n \r\n Rifiutato\r\n \r\n );\r\n } else if (statoInvioTelematico === STATO_INVIO_TELEMATICO.ADEMPIMENTO_SOSPESO_ADE) {\r\n badge = (\r\n \r\n Sospeso\r\n \r\n );\r\n } else if (statoInvioTelematico === STATO_INVIO_TELEMATICO.ADEMPIMENTO_INVIATO_ADE) {\r\n badge = (\r\n \r\n Inviato\r\n \r\n );\r\n } else if (statoInvioTelematico === STATO_INVIO_TELEMATICO.ADEMPIMENTO_ELABORATO_ADE) {\r\n badge = (\r\n \r\n Elaborato\r\n \r\n );\r\n }\r\n\r\n return (\r\n
    \r\n {modalitaPresentazioneDescrizione}\r\n {badge}\r\n
    \r\n );\r\n };\r\n\r\n const riscaricaUltimoF24 = (idDelega) => {\r\n getStampaUltimaDelega(idDelega).then((res) => {\r\n if (res.Success) {\r\n callDownloadFile(\r\n apiDownloadFile,\r\n res.Result.NomeFile,\r\n res.Result.IdFile,\r\n codiceUfficioSelezionato,\r\n res.Result.NomeFile,\r\n ).then((resDownload) => {\r\n // setLoading(false);\r\n }).catch((e) => {\r\n logApiError(e);\r\n // setLoading(false);\r\n });\r\n } else {\r\n // setLoading(false);\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n // setLoading(false);\r\n });\r\n };\r\n\r\n const stampaF24CopiaConforme = (idDelega) => {\r\n postStampaCopiaConformeDelega(idDelega).then((res) => {\r\n if (res.Success) {\r\n callDownloadFile(\r\n apiDownloadFile,\r\n res.Result.NomeFile,\r\n res.Result.IdFile,\r\n codiceUfficioSelezionato,\r\n res.Result.NomeFile,\r\n ).then((resDownload) => {\r\n // setLoading(false);\r\n }).catch((e) => {\r\n logApiError(e);\r\n // setLoading(false);\r\n });\r\n } else {\r\n // setLoading(false);\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n // setLoading(false);\r\n });\r\n };\r\n\r\n const stampaF24Provvisorio = (idDelega) => {\r\n postStampaDelegaProvvisoria(idDelega).then((res) => {\r\n if (res.Success) {\r\n callDownloadFile(\r\n apiDownloadFile,\r\n res.Result.NomeFile,\r\n res.Result.IdFile,\r\n codiceUfficioSelezionato,\r\n res.Result.NomeFile,\r\n ).then((resDownload) => {\r\n // setLoading(false);\r\n }).catch((e) => {\r\n logApiError(e);\r\n // setLoading(false);\r\n });\r\n } else {\r\n // setLoading(false);\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n // setLoading(false);\r\n });\r\n };\r\n\r\n const scaricaQuietanza = (idDelega) => {\r\n postQuietanza(idDelega).then((res) => {\r\n if (res.Success) {\r\n callDownloadFile(\r\n apiDownloadFile,\r\n res.Result.NomeFile,\r\n res.Result.IdFile,\r\n codiceUfficioSelezionato,\r\n res.Result.NomeFile,\r\n ).then((resDownload) => {\r\n // setLoading(false);\r\n }).catch((e) => {\r\n logApiError(e);\r\n // setLoading(false);\r\n });\r\n } else {\r\n // setLoading(false);\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n // setLoading(false);\r\n });\r\n };\r\n\r\n return (\r\n \r\n (\r\n \r\n )}\r\n onClick={() => gotoDelegaSoggetto(IdDelega)}\r\n >\r\n \r\n {TipoDelegaDescrizione}\r\n \r\n \r\n \r\n {DataVersamento === null ? '-' : `${JustADate(DataVersamento)}`}\r\n {Stato !== STATO_DELEGA.PAGATA && ModalitaPresentazione !== MODALITA_PRESENTAZIONE.CARTACEA\r\n && new Date(DataVersamento) > new Date(ScadenzaVersamento) && (\r\n
    \r\n \r\n La delega è scaduta il \r\n \r\n
    \r\n )}\r\n {Stato !== STATO_DELEGA.PAGATA && ModalitaPresentazione === MODALITA_PRESENTAZIONE.CARTACEA\r\n && new Date(ScadenzaVersamento) < new Date().setHours(0, 0, 0, 0) && (\r\n
    \r\n \r\n La delega è scaduta il \r\n \r\n
    \r\n )}\r\n {Stato === STATO_DELEGA.PAGATA\r\n && new Date(DataVersamento) > new Date(ScadenzaVersamento) && (\r\n
    \r\n \r\n La delega è scaduta il \r\n \r\n
    \r\n )}\r\n
    \r\n \r\n \r\n
    {/* displayInlineMiddle */}\r\n {etichetteSingolaChiamataAttivo && }\r\n
    \r\n
    \r\n \r\n \r\n {StatoDescrizione}\r\n \r\n \r\n \r\n {ModalitaPresentazione === MODALITA_PRESENTAZIONE.INVIO_TELEMATICO_INTERMEDIARIO_ADELE\r\n ? getBadgeInvioTelematico(StatoInvioTelematico, ModalitaPresentazioneDescrizione)\r\n : ModalitaPresentazione === MODALITA_PRESENTAZIONE.INVIO_TELEMATICO_INTERMEDIARIO_CBI\r\n ? getBadgeInvioCbi(StatoInvioCbi, ModalitaPresentazioneDescrizione)\r\n : (ModalitaPresentazione === MODALITA_PRESENTAZIONE.PAGO_F24 || ModalitaPresentazione === MODALITA_PRESENTAZIONE.CGN_POS)\r\n ? getBadgePagoF24(\r\n StatoVersamentoPagoF24,\r\n StatoInvioCbi,\r\n ModalitaPresentazioneDescrizione,\r\n ModalitaVersamentoPagoF24,\r\n InfoAggiuntiveStatoPagoF24,\r\n IsPagoF24QrCode,\r\n )\r\n : (ModalitaPresentazioneDescrizione ? `${ModalitaPresentazioneDescrizione}` : '-')}\r\n \r\n { windowWidth > 1465 && (\r\n \r\n \r\n \r\n {SoggettoVersanteDescrizione === '0' ? 'Contribuente' : SoggettoVersanteDescrizione || '-'}\r\n \r\n \r\n )}\r\n \r\n \r\n {Iban || '-'}\r\n \r\n \r\n \r\n {Saldo !== null ? `${getCurrencyValueNoSymbol(Saldo, true)}` : '-'}\r\n \r\n \r\n \r\n {NumeroNote > 0 && (\r\n \r\n
    \r\n \r\n
    \r\n \r\n )}\r\n
    \r\n \r\n \r\n \r\n \r\n {Stato !== STATO_DELEGA.PAGATA && (\r\n setShowModaleDichiaraPagata(true)}\r\n disabled={!IsDichiaraPagataAttivo || appParamVisualizzazione}\r\n primary\r\n >\r\n \r\n Segna come pagata\r\n \r\n )}\r\n {Stato === STATO_DELEGA.PAGATA && StatoVersamentoPagoF24 === STATO_INVIO_PAGOF24.PAGATA && (\r\n scaricaQuietanza(IdDelega)}\r\n disabled={appParamVisualizzazione}\r\n primary\r\n >\r\n \r\n Scarica quietanza\r\n \r\n )}\r\n {Stato === STATO_DELEGA.PAGATA && (\r\n dichiaraNonPagata(IdDelega, Stato)}\r\n disabled={!IsDichiaraNonPagataAttivo || appParamVisualizzazione}\r\n >\r\n \r\n Segna come 'in Presentazione'\r\n \r\n )}\r\n (rischiDiPagareDueVolte ? setShowWarningSegnaDaNonPresentare(\r\n { show: true, callBack: dichiaraCompleta, titolo: 'Sposta a \"Complete\"' },\r\n ) : dichiaraCompleta(IdDelega, Stato))}\r\n disabled={!IsDichiaraCompletaAttivo || appParamVisualizzazione}\r\n >\r\n \r\n Sposta a "Complete"\r\n \r\n {Stato !== STATO_DELEGA.PAGATA && (\r\n (rischiDiPagareDueVolte ? setShowWarningSegnaDaNonPresentare(\r\n { show: true, callBack: dichiaraAperta, titolo: 'Sposta a \"In lavorazione\"' },\r\n ) : dichiaraAperta(IdDelega))}\r\n disabled={!IsDichiaraApertaAttivo || appParamVisualizzazione}\r\n >\r\n \r\n Sposta a "In lavorazione"\r\n \r\n )}\r\n (ModalitaPresentazione === MODALITA_PRESENTAZIONE.CARTACEA\r\n ? riscaricaUltimoF24(IdDelega)\r\n : stampaF24CopiaConforme(IdDelega))}\r\n >\r\n \r\n Stampa F24\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n setShowWarningSegnaDaNonPresentare({ show: false })}\r\n primaryLabel=\"Non spostare\"\r\n onPrimaryClick={() => setShowWarningSegnaDaNonPresentare({ show: false })}\r\n secondaryLabel={showWarningSegnaDaNonPresentare.titolo}\r\n onSecondaryClick={() => {\r\n showWarningSegnaDaNonPresentare.callBack(IdDelega);\r\n setShowWarningSegnaDaNonPresentare({ show: false });\r\n }}\r\n title={showWarningSegnaDaNonPresentare.titolo}\r\n message={(\r\n
    \r\n \r\n I tibuti della delega che stai per spostare potrebbero essere versati ugualmente\r\n
    \r\n in quanto già trasmessi all'Agenzia delle Entrate\r\n
    \r\n )}\r\n type=\"warning\"\r\n />\r\n
    \r\n )}\r\n dontShowAgainMessage={null}\r\n dontShowAgainId={null}\r\n />\r\n \r\n );\r\n};\r\n\r\nRigaDeleghePresentateSoggettoSmall.propTypes = {\r\n item: PropTypes.shape({\r\n Errata: PropTypes.bool.isRequired,\r\n Iban: PropTypes.string,\r\n IdContribuente: PropTypes.number.isRequired,\r\n IdDelega: PropTypes.number.isRequired,\r\n IsDichiaraApertaAttivo: PropTypes.bool.isRequired,\r\n IsDichiaraPagataAttivo: PropTypes.bool.isRequired,\r\n IsDichiaraNonPagataAttivo: PropTypes.bool.isRequired,\r\n Saldo: PropTypes.number,\r\n ScadenzaVersamento: PropTypes.string.isRequired,\r\n SoggettoVersante: PropTypes.number,\r\n SoggettoVersanteDescrizione: PropTypes.string,\r\n Stato: PropTypes.number,\r\n StatoInvioTelematico: PropTypes.number,\r\n StatoDescrizione: PropTypes.string.isRequired,\r\n TipoDelega: PropTypes.number.isRequired,\r\n TipoDelegaDescrizione: PropTypes.string.isRequired,\r\n DataVersamento: PropTypes.string,\r\n ModalitaPresentazione: PropTypes.number,\r\n ModalitaPresentazioneDescrizione: PropTypes.string,\r\n IsDichiaraCompletaAttivo: PropTypes.bool,\r\n StatoInvioCbi: PropTypes.number,\r\n StatoVersamentoPagoF24: PropTypes.number,\r\n ModalitaVersamentoPagoF24: PropTypes.number,\r\n InfoAggiuntiveStatoPagoF24: PropTypes.string,\r\n NumeroNote: PropTypes.number,\r\n IsPagoF24QrCode: PropTypes.bool,\r\n }).isRequired,\r\n additionalRowData: PropTypes.shape({\r\n searchTerm: PropTypes.string,\r\n dichiaraPagata: PropTypes.func.isRequired,\r\n dichiaraAperta: PropTypes.func.isRequired,\r\n dichiaraCompleta: PropTypes.func.isRequired,\r\n dichiaraNonPagata: PropTypes.func.isRequired,\r\n setSegnalazioni: PropTypes.func,\r\n segnalazioni: PropTypes.arrayOf(PropTypes.string),\r\n setSegnalazioniDichiaraPagata: PropTypes.func,\r\n segnalazioniDichiaraPagata: PropTypes.arrayOf(PropTypes.string),\r\n windowWidth: PropTypes.number,\r\n }).isRequired,\r\n};\r\n\r\nexport default RigaDeleghePresentateSoggettoSmall;\r\n","/* eslint-disable import/no-named-as-default */\r\nimport React, {\r\n forwardRef, useCallback, useEffect, useImperativeHandle, useMemo, useRef, useState,\r\n} from 'react';\r\nimport useDebouncedFunc from 'framework-ui-components/Components/Hooks/useDebouncedFunc';\r\nimport {\r\n FeedbackModal, ODataTable, ViewportProvider,\r\n} from 'framework-ui-components/Components/V2';\r\nimport useViewport, { MAIN } from 'framework-ui-components/Components/V2/Hooks/useViewport';\r\nimport PropTypes from 'prop-types';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport Log from 'framework-taskforce/utils/log';\r\nimport { setAppParamsAction } from 'framework-taskforce/actions/appParams';\r\nimport { getSegnalazioneError } from 'framework-taskforce/models/segnalazioni';\r\nimport {\r\n getOttieniContatoriStatoDeleghe,\r\n ottieniDelegheUrlPresentate,\r\n postDichiaraAperta,\r\n postDichiaraCompleta,\r\n postDichiaraNonPagata,\r\n postDichiaraPagata,\r\n} from '../../../../../../apis/deleghe';\r\nimport RigaDeleghePresentateSoggetto from './RigaDeleghePresentateSoggetto';\r\nimport { convertUTCDateToLocalDate } from '../../../../../../utils/format';\r\nimport RigaDeleghePresentateSoggettoOdataTableHead from './RigaDeleghePresentateSoggettoOdataTableHead';\r\nimport RigaDeleghePresentateSoggettoOdataTableHeadSmall from './RigaDeleghePresentateSoggettoOdataTableHeadSmall';\r\nimport RigaDeleghePresentateSoggettoSmall from './RigaDeleghePresentateSoggettoSmall';\r\n\r\nconst TabellaDeleghePresentateSoggetto = forwardRef(({\r\n setContatori,\r\n}, ref) => {\r\n const tabellaRef = useRef();\r\n const dispatch = useDispatch();\r\n\r\n const [contatoriCheckbox, setContatoriCheckbox] = useState({});\r\n const [segnalazioni, setSegnalazioni] = useState([]);\r\n const [segnalazioniDichiaraPagata, setSegnalazioniDichiaraPagata] = useState([]);\r\n const [numeroRighe, setNumeroRighe] = useState(0);\r\n const [titoloFeedbackModal, setTitoloFeedbackModal] = useState('');\r\n\r\n const studioSelezionato = useSelector((store) => store.appParams.studioSelezionato);\r\n const idContribuente = useSelector((store) => store.soggetto.idContribuente);\r\n const tabSelected = useSelector((store) => store.appParams.tabSelected);\r\n\r\n const { width, height, resolution } = useViewport();\r\n const resolutionMAIN = resolution === MAIN;\r\n\r\n const url = useMemo(\r\n () => ottieniDelegheUrlPresentate(\r\n idContribuente,\r\n tabSelected,\r\n '',\r\n ),\r\n [idContribuente, tabSelected],\r\n );\r\n\r\n const onRowsSelected = useCallback((rows) => {\r\n const rowsObjectSelected = rows.map((row) => row.object);\r\n dispatch(setAppParamsAction({\r\n rowsDeleghe: rowsObjectSelected,\r\n }));\r\n }, [dispatch]);\r\n\r\n const updateOptimisticRows = useCallback(() => {\r\n // dispatch({ type: ACTIONS.UPDATE_OPTIMISTIC_ROWS });\r\n }, []);\r\n\r\n const onPageLoaded = useCallback((pageItems, totalCount, currentFilter, currentPage, sortProperty, sortOrder) => {\r\n setNumeroRighe(totalCount);\r\n tabellaRef.current && tabellaRef.current.resetSelection();\r\n updateOptimisticRows();\r\n getOttieniContatoriStatoDeleghe(idContribuente)\r\n .then((response) => {\r\n if (response.Success) {\r\n setContatori(response.Result);\r\n const contatoriInPresentazione = response.Result.find((obj) => obj.Stato === 3);\r\n const contatoriInPagate = response.Result.find((obj) => obj.Stato === 4);\r\n setContatoriCheckbox({\r\n inPresentazione: contatoriInPresentazione ? contatoriInPresentazione.TotaleDeleghe : 0,\r\n pagate: contatoriInPagate ? contatoriInPagate.TotaleDeleghe : 0,\r\n });\r\n } else {\r\n setContatori([]);\r\n }\r\n }).catch((err) => {\r\n Log.error(err);\r\n });\r\n }, [idContribuente, setContatori, updateOptimisticRows]);\r\n\r\n // const updateContatori = useCallback(() => {\r\n // (getStati)(codiceUfficio, annoSelezionato, filtroText)\r\n // .then((contatori) => {\r\n // dispatch({ type: ACTIONS.SET_CONTATORI_STATO, payload: contatori });\r\n // }).catch((e) => {\r\n // Log.error(e);\r\n // });\r\n // }, [annoSelezionato, backoffice, codiceUfficio, dispatch, filtroText]);\r\n\r\n useEffect(() => {\r\n // updateContatori();\r\n }, []);\r\n\r\n const refreshTabella = useDebouncedFunc(() => {\r\n tabellaRef.current && tabellaRef.current.refreshTable();\r\n // updateContatori();\r\n }, 200, []);\r\n\r\n // permetto di accedere via ref al metodo refreshTabella\r\n useImperativeHandle(ref, () => ({ refreshTabella }), [refreshTabella]);\r\n\r\n // // intercettazione evento di refresh che arriva da un eventuale parent plugins\r\n // usePluginsReducer(() => ({\r\n // REFRESH_DICHIARAZIONI_ISEE: () => {\r\n // setTimeout(() => {\r\n // // Chiamata refresh dopo 1s (tempo di refresh indici elastic)\r\n // refreshTabella();\r\n // }, 1000);\r\n // },\r\n // }), [refreshTabella]);\r\n\r\n const dichiaraChiusa = useCallback((idDelega, stato) => {\r\n postDichiaraCompleta({ idDelega, stato }).then((response) => {\r\n if (response.Success) {\r\n refreshTabella();\r\n } else {\r\n setTitoloFeedbackModal('Sposta a \"Complete\" non riuscito');\r\n setSegnalazioni(response.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n }).catch((err) => {\r\n // Log.error(err);\r\n setTitoloFeedbackModal('Sposta a \"Complete\" non riuscito');\r\n setSegnalazioni([{ msg: 'Errore generico' }]);\r\n });\r\n }, [refreshTabella]);\r\n\r\n const dichiaraAperta = useCallback((idDelega) => {\r\n postDichiaraAperta({ idDelega }).then((response) => {\r\n if (response.Success) {\r\n refreshTabella();\r\n } else {\r\n setTitoloFeedbackModal('Sposta a \"Complete\" non riuscito');\r\n setSegnalazioni(response.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n }).catch((err) => {\r\n Log.error(err);\r\n });\r\n }, [refreshTabella]);\r\n\r\n const dichiaraNonPagata = useCallback((idDelega, stato) => {\r\n postDichiaraNonPagata({ idDelega, stato }).then((response) => {\r\n if (response.Success) {\r\n refreshTabella();\r\n } else {\r\n setTitoloFeedbackModal('Sposta a \"In Presentazione\" non riuscito');\r\n setSegnalazioni(response.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n }).catch((err) => {\r\n Log.error(err);\r\n });\r\n }, [refreshTabella]);\r\n\r\n const dichiaraPagata = useCallback((idDelega, dataVersamento) => {\r\n const DataVersamento = convertUTCDateToLocalDate(dataVersamento);\r\n postDichiaraPagata({ idDelega, DataVersamento }).then((response) => {\r\n if (response.Success) {\r\n refreshTabella();\r\n } else {\r\n setSegnalazioniDichiaraPagata(response.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n Log.error('App error');\r\n }\r\n }).catch((err) => {\r\n Log.error(err);\r\n });\r\n }, [refreshTabella]);\r\n\r\n const rowRender = useCallback((item) => (\r\n width > 1300\r\n ? (\r\n \r\n ) : (\r\n \r\n )\r\n\r\n ), [\r\n dichiaraAperta,\r\n dichiaraChiusa,\r\n dichiaraNonPagata,\r\n dichiaraPagata,\r\n refreshTabella,\r\n segnalazioni,\r\n setSegnalazioniDichiaraPagata,\r\n segnalazioniDichiaraPagata,\r\n width,\r\n ]);\r\n\r\n return (\r\n \r\n {studioSelezionato && idContribuente && (\r\n \r\n {/* \r\n \r\n \r\n \r\n */}\r\n {width > 1300\r\n ? RigaDeleghePresentateSoggettoOdataTableHead(width)\r\n : RigaDeleghePresentateSoggettoOdataTableHeadSmall(width)}\r\n \r\n )}\r\n {segnalazioni && segnalazioni.length > 0 && (\r\n 0}\r\n title={titoloFeedbackModal}\r\n onClose={() => setSegnalazioni([])}\r\n buttonLabel=\"ok\"\r\n type=\"alarm\"\r\n message={segnalazioni[0].msg}\r\n className=\"feedback--modal__720px\"\r\n />\r\n )}\r\n \r\n );\r\n});\r\n\r\nTabellaDeleghePresentateSoggetto.propTypes = {\r\n setContatori: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default TabellaDeleghePresentateSoggetto;\r\n","/* eslint-disable no-nested-ternary */\r\nimport React, {\r\n\r\n} from 'react';\r\nimport {\r\n ODataTable,\r\n} from 'framework-ui-components/Components/V2';\r\n\r\nexport const RigaDeleghePresentateSoggettoOdataTableHead = (width) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n { width > 1600 && (\r\n \r\n )}\r\n { width > 1600 && (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n { width > 1600 ? (\r\n width > 1660 ? (\r\n \r\n ) : (\r\n \r\n )\r\n ) : (\r\n \r\n )}\r\n { width > 1600 ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n { width > 1600 ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n);\r\n\r\nexport default RigaDeleghePresentateSoggettoOdataTableHead;\r\n","import React, {\r\n\r\n} from 'react';\r\nimport {\r\n ODataTable,\r\n} from 'framework-ui-components/Components/V2';\r\n\r\nexport const RigaDeleghePresentateSoggettoOdataTableHeadSmall = (width) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n { width > 1465 && (\r\n \r\n )}\r\n { width > 1465 && (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n);\r\n\r\nexport default RigaDeleghePresentateSoggettoOdataTableHeadSmall;\r\n","/* eslint-disable no-nested-ternary */\r\nimport React, { forwardRef } from 'react';\r\nimport {\r\n Grid,\r\n} from 'framework-ui-components';\r\nimport PropTypes from 'prop-types';\r\nimport { useSelector } from 'react-redux';\r\nimport { ViewportProvider } from 'framework-ui-components/Components/V2';\r\nimport useViewport from 'framework-ui-components/Components/V2/Hooks/useViewport';\r\nimport TabellaDelegheCompleteSoggetto from './tabella/complete/TabellaDelegheCompleteSoggetto';\r\nimport TabellaDelegheInLavorazioneSoggetto from './tabella/inLavorazione/TabellaDelegheInLavorazioneSoggetto';\r\nimport TabellaDeleghePresentateSoggetto from './tabella/presentate/TabellaDeleghePresentateSoggetto';\r\n\r\nconst TabListaDeleghe = forwardRef(({\r\n setContatoriDeleghe, showPanelCreazioneDelega, panelCreazioneDelega, setDatiModalePresentazione,\r\n}, ref) => {\r\n const tabSelected = useSelector((store) => store.appParams.tabSelected);\r\n const noToolbar = useSelector((store) => store.appParams.noToolbar);\r\n const { width, height, resolution } = useViewport();\r\n\r\n return (\r\n \r\n 741\r\n ? {\r\n display: 'inline-flex', flexDirection: 'column', minHeight: '30vh', maxHeight: `${noToolbar ? '82vh' : '76vh'}`,\r\n }\r\n : { display: 'inline-flex', flexDirection: 'column', maxHeight: `${noToolbar ? '82vh' : '76vh'}` }\r\n }\r\n >\r\n \r\n {panelCreazioneDelega && showPanelCreazioneDelega && (\r\n \r\n \r\n {panelCreazioneDelega}\r\n \r\n \r\n )}\r\n \r\n
    \r\n {tabSelected === 0 && (\r\n \r\n )}\r\n {tabSelected === 1 && (\r\n \r\n )}\r\n {tabSelected === 2 && (\r\n \r\n )}\r\n
    \r\n
    \r\n\r\n \r\n );\r\n});\r\n\r\nTabListaDeleghe.defaultProps = {\r\n showPanelCreazioneDelega: false,\r\n panelCreazioneDelega: null,\r\n setDatiModalePresentazione: () => {},\r\n};\r\n\r\nTabListaDeleghe.propTypes = {\r\n setContatoriDeleghe: PropTypes.func.isRequired,\r\n showPanelCreazioneDelega: PropTypes.bool,\r\n panelCreazioneDelega: PropTypes.element,\r\n setDatiModalePresentazione: PropTypes.func,\r\n};\r\n\r\nexport default TabListaDeleghe;\r\n","import React, {\r\n useCallback, useEffect, useRef, useState,\r\n} from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport { Button, MiniPanel } from 'framework-ui-components/Components/V2';\r\nimport {\r\n Radio, DatePicker, EllipsisText, Validation, Form, Autocomplete, Input, Restriction, InfoTooltip,\r\n} from 'framework-ui-components';\r\nimport PropTypes from 'prop-types';\r\nimport { isEmptyObject } from 'framework-taskforce/utils/object';\r\nimport RemoveIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/RemoveIcon';\r\nimport TemplateGrid from '../../../../../components/TemplateGrid/TemplateGrid';\r\nimport { cercaIntermediari } from '../../../../../apis/intermediari';\r\nimport { SOGGETTO_VERSANTE } from '../../../../../models/delega';\r\nimport AddCircleOutlineIcon from '../../../../../components/icons/google/AddCircleOutlineIcon';\r\nimport LabelOnly from '../../../../../components/custom/LabelOnly';\r\nimport CheckboxTitle from '../../../../../components/custom/CheckboxTitle';\r\nimport { cercaBanche, cercaFilialiBanca, getGeneraIBAN } from '../../../../../apis/anagrafiche';\r\n\r\nconst StepTelematicoIntermediario = ({\r\n setSegnalazioni,\r\n loading,\r\n dataVersamento,\r\n setDataVersamento,\r\n datiDelega,\r\n setIdContoSelezionato,\r\n formData,\r\n setFormData,\r\n setIsFormValid,\r\n setIdIntermediario,\r\n setUsaContoIntermediario,\r\n aggiuntaNuovoContoCorrente,\r\n setAggiuntaNuovoContoCorrente,\r\n showWarningContoPerMassive,\r\n disableSoggettoContribuente,\r\n ibanManuale,\r\n setIbanManuale,\r\n idSoggettoVersante,\r\n setIdSoggettoVersante,\r\n listaContiCorrente,\r\n setListaContiCorrente,\r\n}) => {\r\n const formRef = useRef();\r\n\r\n const studioSelezionato = useSelector((store) => store.appParams.studioSelezionato);\r\n\r\n const [nominativoSoggettoVersante, setNominativoSoggettoVersante] = useState(null);\r\n\r\n const presetForm = useCallback(({ FormErrors, ...datoModificato }) => {\r\n if (!formData || isEmptyObject(datoModificato)) return;\r\n\r\n if (datoModificato.SoggettoContoDiAddebito || datoModificato.IdIntermediario) {\r\n setListaContiCorrente(null);\r\n setAggiuntaNuovoContoCorrente(false);\r\n }\r\n\r\n const newStato = { ...formData, ...datoModificato };\r\n\r\n if (datoModificato.SoggettoContoDiAddebito) {\r\n newStato.IdContoSelezionato = 0;\r\n setIdContoSelezionato(null);\r\n }\r\n\r\n if (newStato.IdContoSelezionato || newStato.IdContoSelezionato === 0) {\r\n setIdContoSelezionato(newStato.IdContoSelezionato);\r\n setIsFormValid(newStato.IdContoSelezionato > 0);\r\n }\r\n\r\n if (datoModificato.CodiceFiscaleDenominazione) {\r\n newStato.SoggettoContoDiAddebito = disableSoggettoContribuente ? '1' : null;\r\n }\r\n\r\n if (datoModificato.SoggettoContoDiAddebito === '0') {\r\n setUsaContoIntermediario(false);\r\n setListaContiCorrente(null);\r\n setIdSoggettoVersante(null);\r\n setNominativoSoggettoVersante(null);\r\n } else if (datoModificato.SoggettoContoDiAddebito === '1') {\r\n setUsaContoIntermediario(true);\r\n setIdSoggettoVersante(formData.IdAnagraficaIntermediario);\r\n setListaContiCorrente(null);\r\n }\r\n\r\n // eslint-disable-next-line no-prototype-builtins\r\n if (datoModificato.hasOwnProperty('NumeroConto') || datoModificato.hasOwnProperty('AbiBanca') || datoModificato.hasOwnProperty('CabBanca')) {\r\n newStato.IbanGenerato = null;\r\n }\r\n\r\n setFormData(newStato);\r\n }, [disableSoggettoContribuente,\r\n formData, setAggiuntaNuovoContoCorrente,\r\n setFormData,\r\n setIdContoSelezionato,\r\n setIdSoggettoVersante,\r\n setIsFormValid,\r\n setListaContiCorrente,\r\n setUsaContoIntermediario]);\r\n\r\n const onChangeAutocompletes = (campo, elemento) => {\r\n const autocompleteVals = [];\r\n\r\n if (campo === 'SelezioneIntermediario') {\r\n autocompleteVals.IdIntermediario = elemento.IdIntermediario;\r\n autocompleteVals.IdAnagraficaIntermediario = elemento.IdAnagrafica;\r\n autocompleteVals.CodiceFiscaleDenominazione = elemento.CodiceFiscaleDenominazione;\r\n autocompleteVals.IdContoSelezionato = null;\r\n autocompleteVals.SoggettoContoDiAddebito = null;\r\n setIdContoSelezionato(null);\r\n }\r\n\r\n if (campo === 'Banca') {\r\n autocompleteVals.AbiBanca = elemento.Abi;\r\n autocompleteVals.DescrizioneBanca = elemento.Descrizione;\r\n autocompleteVals.Banca = elemento.DescrizioneComposta;\r\n autocompleteVals.CabBanca = null;\r\n autocompleteVals.Filiale = null;\r\n }\r\n if (campo === 'Filiale') {\r\n autocompleteVals.CabBanca = elemento.Cab;\r\n autocompleteVals.Filiale = elemento.DescrizioneComposta;\r\n }\r\n\r\n presetForm(autocompleteVals);\r\n };\r\n\r\n useEffect(() => {\r\n if (formData.IdIntermediario) {\r\n setIdIntermediario({ id: formData.IdIntermediario, idAnagrafica: formData.IdAnagraficaIntermediario });\r\n }\r\n }, [formData, setIdIntermediario, setIdSoggettoVersante, setListaContiCorrente, setUsaContoIntermediario]);\r\n\r\n useEffect(() => {\r\n if (formData.SoggettoContoDiAddebito === '0') {\r\n if (datiDelega && !idSoggettoVersante && !nominativoSoggettoVersante) {\r\n if (datiDelega.SoggettoVersante === SOGGETTO_VERSANTE.COOBBLIGATO) {\r\n setIdSoggettoVersante(datiDelega.IdAnagraficaCoobbligato);\r\n setNominativoSoggettoVersante(`${datiDelega.CodiceFiscaleCoobbligato} - ${datiDelega.DenominazioneCoobbligato}`);\r\n } else if (datiDelega.SoggettoVersante === SOGGETTO_VERSANTE.INTERMADIARIO) {\r\n setIdSoggettoVersante(datiDelega.IdAnagraficaIntermediario);\r\n setNominativoSoggettoVersante(`${datiDelega.CodiceFiscaleIntermediario} - ${datiDelega.DenominazioneIntermediario}`);\r\n } else {\r\n setIdSoggettoVersante(datiDelega.IdAnagraficaContribuente);\r\n setNominativoSoggettoVersante(`${datiDelega.CodiceFiscale} - ${datiDelega.Denominazione}`);\r\n }\r\n }\r\n }\r\n }, [datiDelega,\r\n formData,\r\n idSoggettoVersante,\r\n nominativoSoggettoVersante,\r\n setIdSoggettoVersante]);\r\n\r\n const onChangeDataVersamento = useCallback((val) => {\r\n setDataVersamento(val);\r\n setSegnalazioni([]);\r\n }, [setDataVersamento, setSegnalazioni]);\r\n\r\n const settaValidita = (validita) => {\r\n if (aggiuntaNuovoContoCorrente) {\r\n setIsFormValid(formRef.current.valida());\r\n } else if (formData.CodiceFiscaleDenominazione && formData.IdContoSelezionato > 0) {\r\n setIsFormValid(true);\r\n } else {\r\n setIsFormValid(false);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (formData) {\r\n if (aggiuntaNuovoContoCorrente && !formData.IbanGenerato\r\n && formData.AbiBanca && formData.CabBanca && formData.NumeroConto) {\r\n getGeneraIBAN(formData.AbiBanca, formData.CabBanca, formData.NumeroConto)\r\n .then((res) => {\r\n if (res.Success) {\r\n presetForm({\r\n IbanGenerato: res.Result,\r\n });\r\n }\r\n })\r\n .catch((e) => {\r\n });\r\n }\r\n }\r\n }, [aggiuntaNuovoContoCorrente, formData, presetForm, studioSelezionato]);\r\n\r\n const nuovoConto = useCallback(() => {\r\n setAggiuntaNuovoContoCorrente(true);\r\n presetForm({\r\n IdContoSelezionato: null,\r\n AbiBanca: null,\r\n CabBanca: null,\r\n DescrizioneBanca: null,\r\n Banca: null,\r\n Filiale: null,\r\n });\r\n }, [presetForm, setAggiuntaNuovoContoCorrente]);\r\n\r\n const cambioIbanManuale = useCallback((event) => {\r\n setIbanManuale(event.target.checked);\r\n if (event.target.checked) {\r\n presetForm({\r\n AbiBanca: null,\r\n CabBanca: null,\r\n DescrizioneBanca: null,\r\n Banca: null,\r\n Filiale: null,\r\n NumeroConto: null,\r\n IbanGenerato: null,\r\n });\r\n } else {\r\n presetForm({\r\n IbanManuale: null,\r\n });\r\n }\r\n }, [presetForm, setIbanManuale]);\r\n\r\n return (\r\n settaValidita(validity)}\r\n >\r\n \r\n
    \r\n Indica la data di versamento\r\n {/* La data di versamento deve essere compresa tra la data\r\n
    \r\n odierna e la data di scadenza della delega più recente. */}\r\n
    \r\n \r\n \r\n onChangeDataVersamento(val)}\r\n autoFocus\r\n date={dataVersamento}\r\n disabled={loading}\r\n />\r\n \r\n La data verrà impostata per tutte le deleghe selezionate\r\n \r\n \r\n \r\n onChangeAutocompletes('SelezioneIntermediario', val)}\r\n validations={[Validation.DefaultRules.required]}\r\n disabled={loading}\r\n />\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n {formData.SoggettoContoDiAddebito === '0' && (\r\n
    \r\n {showWarningContoPerMassive ? (\r\n \r\n Almeno una delle deleghe selezionate non contiene l'IBAN.\r\n
    \r\n Non è possibile proseguire in quanto tutte le deleghe devono essere provviste di IBAN.\r\n
    \r\n )}\r\n />\r\n )\r\n : (\r\n \r\n {listaContiCorrente && listaContiCorrente.length > 0\r\n ? (\r\n \r\n Seleziona IBAN del {SOGGETTO_VERSANTE.toString(datiDelega && datiDelega.SoggettoVersante)}\r\n \r\n ) :
    }\r\n conto.Predefinito) ? '200px' : '0px' },\r\n ],\r\n rows: [{ className: 'mt-8' }],\r\n },\r\n ]}\r\n >\r\n {listaContiCorrente && (\r\n listaContiCorrente.map((conto) => [\r\n
    ,\r\n ,\r\n {conto.DescrizioneSede}\r\n
    ,\r\n {conto.DescrizioneFiliale}\r\n
    ,\r\n listaContiCorrente.find((contoPredefinito) => contoPredefinito.Predefinito)\r\n ? (\r\n \r\n {conto.Predefinito && (Predefinito)}\r\n \r\n ) :
    ,\r\n ])\r\n )}\r\n \r\n \r\n )}\r\n
    \r\n )}\r\n
    \r\n \r\n
    \r\n
    \r\n {formData.SoggettoContoDiAddebito === '1' && (\r\n
    \r\n {listaContiCorrente && listaContiCorrente.length > 0\r\n ? Seleziona IBAN :
    }\r\n conto.Predefinito) ? '200px' : '0px' },\r\n ],\r\n rows: [{ className: 'mt-8' }],\r\n },\r\n ]}\r\n >\r\n {listaContiCorrente && (\r\n listaContiCorrente.map((conto) => [\r\n
    ,\r\n ,\r\n {conto.DescrizioneSede}\r\n
    ,\r\n {conto.DescrizioneFiliale}\r\n
    ,\r\n listaContiCorrente.find((contoPredefinito) => contoPredefinito.Predefinito)\r\n ? (\r\n \r\n {conto.Predefinito && (Predefinito)}\r\n \r\n ) :
    ,\r\n ])\r\n )}\r\n \r\n
    \r\n \r\n
    \r\n {!aggiuntaNuovoContoCorrente ? (\r\n nuovoConto()}\r\n >\r\n \r\n Aggiungi un nuovo conto corrente\r\n \r\n ) : (\r\n {\r\n setAggiuntaNuovoContoCorrente(false);\r\n presetForm({\r\n IdContoSelezionato: null,\r\n AbiBanca: null,\r\n CabBanca: null,\r\n DescrizioneBanca: null,\r\n Banca: null,\r\n Filiale: null,\r\n });\r\n }}\r\n >\r\n \r\n Non aggiungere un nuovo conto corrente\r\n \r\n )}\r\n \r\n
    \r\n {aggiuntaNuovoContoCorrente && (\r\n
    \r\n \r\n
    \r\n onChangeAutocompletes('Banca', val)}\r\n validations={ibanManuale ? [] : [Validation.DefaultRules.required]}\r\n autoFocus\r\n disabled={ibanManuale}\r\n />\r\n onChangeAutocompletes('Filiale', val)}\r\n validations={ibanManuale ? [] : [Validation.DefaultRules.required]}\r\n readOnly={!ibanManuale && !formData.AbiBanca}\r\n disabled={ibanManuale}\r\n />\r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n )}\r\n
    \r\n )}\r\n \r\n );\r\n};\r\nStepTelematicoIntermediario.defaultProps = {\r\n datiDelega: {},\r\n showWarningContoPerMassive: false,\r\n ibanManuale: false,\r\n idSoggettoVersante: null,\r\n listaContiCorrente: null,\r\n aggiuntaNuovoContoCorrente: false,\r\n};\r\n\r\nStepTelematicoIntermediario.propTypes = {\r\n setSegnalazioni: PropTypes.func.isRequired,\r\n loading: PropTypes.bool.isRequired,\r\n dataVersamento: PropTypes.string.isRequired,\r\n setDataVersamento: PropTypes.func.isRequired,\r\n datiDelega: PropTypes.shape({\r\n CodiceFiscaleCoobbligato: PropTypes.string,\r\n SoggettoVersante: PropTypes.string,\r\n IdAnagraficaCoobbligato: PropTypes.number,\r\n DenominazioneCoobbligato: PropTypes.string,\r\n IdAnagraficaIntermediario: PropTypes.number,\r\n DenominazioneIntermediario: PropTypes.string,\r\n CodiceFiscaleIntermediario: PropTypes.string,\r\n IdAnagraficaContribuente: PropTypes.number,\r\n CodiceFiscale: PropTypes.string,\r\n Denominazione: PropTypes.string,\r\n }),\r\n setIdContoSelezionato: PropTypes.func.isRequired,\r\n disableSoggettoContribuente: PropTypes.bool.isRequired,\r\n formData: PropTypes.shape({\r\n CodiceFiscale: PropTypes.string,\r\n TipoPersona: PropTypes.number,\r\n IdContoSelezionato: PropTypes.number,\r\n IdAnagraficaCoobbligato: PropTypes.number,\r\n IbanGenerato: PropTypes.string,\r\n NumeroConto: PropTypes.string,\r\n AbiBanca: PropTypes.string,\r\n CabBanca: PropTypes.string,\r\n SoggettoContoDiAddebito: PropTypes.string.isRequired,\r\n IdIntermediario: PropTypes.number.isRequired,\r\n IdAnagraficaIntermediario: PropTypes.number,\r\n CodiceFiscaleDenominazione: PropTypes.string.isRequired,\r\n }).isRequired,\r\n setIdIntermediario: PropTypes.func.isRequired,\r\n setUsaContoIntermediario: PropTypes.func.isRequired,\r\n setFormData: PropTypes.func.isRequired,\r\n setIsFormValid: PropTypes.func.isRequired,\r\n aggiuntaNuovoContoCorrente: PropTypes.bool,\r\n setAggiuntaNuovoContoCorrente: PropTypes.func.isRequired,\r\n showWarningContoPerMassive: PropTypes.bool,\r\n ibanManuale: PropTypes.bool,\r\n setIbanManuale: PropTypes.func.isRequired,\r\n listaContiCorrente: PropTypes.arrayOf(PropTypes.shape({\r\n Id: PropTypes.number,\r\n })),\r\n idSoggettoVersante: PropTypes.number,\r\n setListaContiCorrente: PropTypes.func.isRequired,\r\n setIdSoggettoVersante: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default StepTelematicoIntermediario;\r\n","import React, {\r\n useCallback, useEffect, useRef, useState,\r\n} from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport { Button, MiniPanel } from 'framework-ui-components/Components/V2';\r\nimport {\r\n Radio, DatePicker, EllipsisText, Validation, Form, Autocomplete, Input, Restriction, InfoTooltip,\r\n} from 'framework-ui-components';\r\nimport PropTypes from 'prop-types';\r\nimport { isEmptyObject } from 'framework-taskforce/utils/object';\r\nimport RemoveIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/RemoveIcon';\r\nimport TemplateGrid from '../../../../../components/TemplateGrid/TemplateGrid';\r\nimport { cercaIntermediari } from '../../../../../apis/intermediari';\r\nimport { SOGGETTO_VERSANTE } from '../../../../../models/delega';\r\nimport AddCircleOutlineIcon from '../../../../../components/icons/google/AddCircleOutlineIcon';\r\nimport LabelOnly from '../../../../../components/custom/LabelOnly';\r\nimport CheckboxTitle from '../../../../../components/custom/CheckboxTitle';\r\nimport { cercaBanche, cercaFilialiBanca, getGeneraIBAN } from '../../../../../apis/anagrafiche';\r\n\r\nconst StepTelematicoInvioTelematico = ({\r\n setSegnalazioni,\r\n loading,\r\n dataVersamento,\r\n setDataVersamento,\r\n datiDelega,\r\n setIdContoSelezionato,\r\n setIdIntermediario,\r\n setUsaContoIntermediario,\r\n formData,\r\n setFormData,\r\n setIsFormValid,\r\n aggiuntaNuovoContoCorrente,\r\n setAggiuntaNuovoContoCorrente,\r\n showWarningContoPerMassive,\r\n disableSoggettoContribuente,\r\n ibanManuale,\r\n setIbanManuale,\r\n idSoggettoVersante,\r\n setIdSoggettoVersante,\r\n listaContiCorrente,\r\n setListaContiCorrente,\r\n}) => {\r\n const formRef = useRef();\r\n\r\n // const codiceFiscale = useSelector((store) => store.soggetto.CodiceFiscale);\r\n const studioSelezionato = useSelector((store) => store.appParams.studioSelezionato);\r\n\r\n const [nominativoSoggettoVersante, setNominativoSoggettoVersante] = useState(null);\r\n\r\n const presetForm = useCallback(({ FormErrors, ...datoModificato }) => {\r\n if (!formData || isEmptyObject(datoModificato)) return;\r\n\r\n if (datoModificato.SoggettoContoDiAddebito || datoModificato.IdIntermediario) {\r\n setListaContiCorrente(null);\r\n setAggiuntaNuovoContoCorrente(false);\r\n }\r\n\r\n const newStato = { ...formData, ...datoModificato };\r\n\r\n if (datoModificato.SoggettoContoDiAddebito) {\r\n newStato.IdContoSelezionato = 0;\r\n setIdContoSelezionato(null);\r\n }\r\n\r\n if (newStato.IdContoSelezionato || newStato.IdContoSelezionato === 0) {\r\n setIdContoSelezionato(newStato.IdContoSelezionato);\r\n setIsFormValid(newStato.IdContoSelezionato > 0);\r\n }\r\n\r\n if (datoModificato.SoggettoContoDiAddebito === '0') {\r\n setUsaContoIntermediario(false);\r\n setListaContiCorrente(null);\r\n setIdSoggettoVersante(null);\r\n setNominativoSoggettoVersante(null);\r\n } else if (datoModificato.SoggettoContoDiAddebito === '1') {\r\n setUsaContoIntermediario(true);\r\n setIdSoggettoVersante(formData.IdAnagraficaIntermediario);\r\n setListaContiCorrente(null);\r\n }\r\n\r\n // eslint-disable-next-line no-prototype-builtins\r\n if (datoModificato.hasOwnProperty('NumeroConto') || datoModificato.hasOwnProperty('AbiBanca') || datoModificato.hasOwnProperty('CabBanca')) {\r\n newStato.IbanGenerato = null;\r\n }\r\n\r\n if (datoModificato.CodiceFiscaleDenominazione) {\r\n newStato.SoggettoContoDiAddebito = disableSoggettoContribuente ? '1' : null;\r\n }\r\n\r\n setFormData(newStato);\r\n }, [disableSoggettoContribuente,\r\n formData,\r\n setAggiuntaNuovoContoCorrente,\r\n setFormData,\r\n setIdContoSelezionato,\r\n setIdSoggettoVersante,\r\n setIsFormValid,\r\n setListaContiCorrente,\r\n setUsaContoIntermediario]);\r\n\r\n const onChangeAutocompletes = (campo, elemento) => {\r\n const autocompleteVals = [];\r\n\r\n if (campo === 'SelezioneIntermediario') {\r\n autocompleteVals.IdIntermediario = elemento.IdIntermediario;\r\n autocompleteVals.IdAnagraficaIntermediario = elemento.IdAnagrafica;\r\n autocompleteVals.CodiceFiscaleDenominazione = elemento.CodiceFiscaleDenominazione;\r\n autocompleteVals.IdContoSelezionato = null;\r\n autocompleteVals.SoggettoContoDiAddebito = null;\r\n setIdContoSelezionato(null);\r\n }\r\n\r\n if (campo === 'Banca') {\r\n autocompleteVals.AbiBanca = elemento.Abi;\r\n autocompleteVals.DescrizioneBanca = elemento.Descrizione;\r\n autocompleteVals.Banca = elemento.DescrizioneComposta;\r\n autocompleteVals.CabBanca = null;\r\n autocompleteVals.Filiale = null;\r\n }\r\n if (campo === 'Filiale') {\r\n autocompleteVals.CabBanca = elemento.Cab;\r\n autocompleteVals.Filiale = elemento.DescrizioneComposta;\r\n }\r\n\r\n presetForm(autocompleteVals);\r\n };\r\n\r\n useEffect(() => {\r\n if (formData.IdIntermediario) {\r\n setIdIntermediario({ id: formData.IdIntermediario, idAnagrafica: formData.IdAnagraficaIntermediario });\r\n }\r\n }, [formData, setIdIntermediario, setIdSoggettoVersante, setListaContiCorrente, setUsaContoIntermediario]);\r\n\r\n useEffect(() => {\r\n if (formData.SoggettoContoDiAddebito === '0') {\r\n if (datiDelega && !idSoggettoVersante && !nominativoSoggettoVersante) {\r\n if (datiDelega.SoggettoVersante === SOGGETTO_VERSANTE.COOBBLIGATO) {\r\n setIdSoggettoVersante(datiDelega.IdAnagraficaCoobbligato);\r\n setNominativoSoggettoVersante(`${datiDelega.CodiceFiscaleCoobbligato} - ${datiDelega.DenominazioneCoobbligato}`);\r\n } else if (datiDelega.SoggettoVersante === SOGGETTO_VERSANTE.INTERMADIARIO) {\r\n setIdSoggettoVersante(datiDelega.IdAnagraficaIntermediario);\r\n setNominativoSoggettoVersante(`${datiDelega.CodiceFiscaleIntermediario} - ${datiDelega.DenominazioneIntermediario}`);\r\n } else {\r\n setIdSoggettoVersante(datiDelega.IdAnagraficaContribuente);\r\n setNominativoSoggettoVersante(`${datiDelega.CodiceFiscale} - ${datiDelega.Denominazione}`);\r\n }\r\n }\r\n }\r\n }, [datiDelega, formData, idSoggettoVersante, nominativoSoggettoVersante, setIdSoggettoVersante]);\r\n\r\n const onChangeDataVersamento = useCallback((val) => {\r\n setDataVersamento(val);\r\n setSegnalazioni([]);\r\n }, [setDataVersamento, setSegnalazioni]);\r\n\r\n const settaValidita = (validita) => {\r\n if (aggiuntaNuovoContoCorrente) {\r\n setIsFormValid(formRef.current.valida());\r\n } else if (formData.CodiceFiscaleDenominazione && formData.IdContoSelezionato > 0) {\r\n setIsFormValid(true);\r\n } else {\r\n setIsFormValid(false);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (formData) {\r\n if (aggiuntaNuovoContoCorrente && !formData.IbanGenerato\r\n && formData.AbiBanca && formData.CabBanca && formData.NumeroConto) {\r\n getGeneraIBAN(formData.AbiBanca, formData.CabBanca, formData.NumeroConto)\r\n .then((res) => {\r\n if (res.Success) {\r\n presetForm({\r\n IbanGenerato: res.Result,\r\n });\r\n }\r\n })\r\n .catch((e) => {\r\n });\r\n }\r\n }\r\n }, [aggiuntaNuovoContoCorrente, formData, presetForm]);\r\n\r\n const nuovoConto = useCallback(() => {\r\n setAggiuntaNuovoContoCorrente(true);\r\n presetForm({\r\n IdContoSelezionato: null,\r\n AbiBanca: null,\r\n CabBanca: null,\r\n DescrizioneBanca: null,\r\n Banca: null,\r\n Filiale: null,\r\n NumeroConto: null,\r\n IbanGenerato: null,\r\n });\r\n }, [presetForm, setAggiuntaNuovoContoCorrente]);\r\n\r\n const cambioIbanManuale = useCallback((event) => {\r\n setIbanManuale(event.target.checked);\r\n if (event.target.checked) {\r\n presetForm({\r\n IdContoSelezionato: null,\r\n AbiBanca: null,\r\n CabBanca: null,\r\n DescrizioneBanca: null,\r\n Banca: null,\r\n Filiale: null,\r\n NumeroConto: null,\r\n IbanGenerato: null,\r\n });\r\n } else {\r\n presetForm({\r\n IbanManuale: null,\r\n });\r\n }\r\n }, [presetForm, setIbanManuale]);\r\n\r\n return (\r\n settaValidita(validity)}\r\n >\r\n \r\n
    \r\n Indica la data di versamento\r\n {/* La data di versamento deve essere compresa tra la data\r\n
    \r\n odierna e la data di scadenza della delega più recente. */}\r\n
    \r\n \r\n \r\n onChangeDataVersamento(val)}\r\n autoFocus\r\n date={dataVersamento}\r\n disabled={loading}\r\n />\r\n \r\n La data verrà impostata per tutte le deleghe selezionate\r\n \r\n \r\n \r\n onChangeAutocompletes('SelezioneIntermediario', val)}\r\n validations={[Validation.DefaultRules.required]}\r\n disabled={loading}\r\n />\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n {formData.SoggettoContoDiAddebito === '0' && (\r\n
    \r\n {showWarningContoPerMassive ? (\r\n Almeno una delle deleghe selezionate non contiene l'IBAN.\r\n
    \r\n Non è possibile proseguire in quanto tutte le deleghe devono essere provviste di IBAN.\r\n
    \r\n )}\r\n />\r\n )\r\n : (\r\n \r\n {listaContiCorrente && listaContiCorrente.length > 0\r\n ? Seleziona IBAN del {SOGGETTO_VERSANTE.toString(datiDelega && datiDelega.SoggettoVersante)}\r\n :
    }\r\n conto.Predefinito) ? '200px' : '0px' },\r\n ],\r\n rows: [{ className: 'mt-8' }],\r\n },\r\n ]}\r\n >\r\n {listaContiCorrente && (\r\n listaContiCorrente.map((conto) => [\r\n
    ,\r\n ,\r\n {conto.DescrizioneSede}\r\n
    ,\r\n {conto.DescrizioneFiliale}\r\n
    ,\r\n listaContiCorrente.find((contoPredefinito) => contoPredefinito.Predefinito)\r\n ? (\r\n \r\n {conto.Predefinito && (Predefinito)}\r\n \r\n ) :
    ,\r\n ])\r\n )}\r\n \r\n \r\n )}\r\n
    \r\n )}\r\n
    \r\n \r\n
    \r\n
    \r\n {formData.SoggettoContoDiAddebito === '1' && (\r\n
    \r\n {listaContiCorrente && listaContiCorrente.length > 0\r\n ? Seleziona IBAN :
    }\r\n conto.Predefinito) ? '200px' : '0px' },\r\n ],\r\n rows: [{ className: 'mt-8' }],\r\n },\r\n ]}\r\n >\r\n {listaContiCorrente && (\r\n listaContiCorrente.map((conto) => [\r\n
    ,\r\n ,\r\n {conto.DescrizioneSede}\r\n
    ,\r\n {conto.DescrizioneFiliale}\r\n
    ,\r\n listaContiCorrente.find((contoPredefinito) => contoPredefinito.Predefinito)\r\n ? (\r\n \r\n {conto.Predefinito && (Predefinito)}\r\n \r\n ) :
    ,\r\n ])\r\n )}\r\n \r\n
    \r\n \r\n
    \r\n {!aggiuntaNuovoContoCorrente ? (\r\n nuovoConto()}\r\n >\r\n \r\n Aggiungi un nuovo conto corrente\r\n \r\n ) : (\r\n {\r\n setAggiuntaNuovoContoCorrente(false);\r\n presetForm({\r\n IdContoSelezionato: null,\r\n AbiBanca: null,\r\n CabBanca: null,\r\n DescrizioneBanca: null,\r\n Banca: null,\r\n Filiale: null,\r\n NumeroConto: null,\r\n IbanGenerato: null,\r\n });\r\n }}\r\n >\r\n \r\n Non aggiungere un nuovo conto corrente\r\n \r\n )}\r\n \r\n
    \r\n {aggiuntaNuovoContoCorrente && (\r\n
    \r\n \r\n
    \r\n onChangeAutocompletes('Banca', val)}\r\n validations={ibanManuale ? [] : [Validation.DefaultRules.required]}\r\n autoFocus\r\n disabled={ibanManuale}\r\n />\r\n onChangeAutocompletes('Filiale', val)}\r\n validations={ibanManuale ? [] : [Validation.DefaultRules.required]}\r\n readOnly={!ibanManuale && !formData.AbiBanca}\r\n disabled={ibanManuale}\r\n />\r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n )}\r\n
    \r\n )}\r\n \r\n );\r\n};\r\nStepTelematicoInvioTelematico.defaultProps = {\r\n datiDelega: {},\r\n showWarningContoPerMassive: false,\r\n ibanManuale: false,\r\n idSoggettoVersante: null,\r\n listaContiCorrente: null,\r\n aggiuntaNuovoContoCorrente: false,\r\n};\r\n\r\nStepTelematicoInvioTelematico.propTypes = {\r\n setSegnalazioni: PropTypes.func.isRequired,\r\n loading: PropTypes.bool.isRequired,\r\n dataVersamento: PropTypes.string.isRequired,\r\n setDataVersamento: PropTypes.func.isRequired,\r\n datiDelega: PropTypes.shape({\r\n CodiceFiscaleCoobbligato: PropTypes.string,\r\n SoggettoVersante: PropTypes.string,\r\n IdAnagraficaCoobbligato: PropTypes.number,\r\n DenominazioneCoobbligato: PropTypes.string,\r\n IdAnagraficaIntermediario: PropTypes.number,\r\n DenominazioneIntermediario: PropTypes.string,\r\n CodiceFiscaleIntermediario: PropTypes.string,\r\n IdAnagraficaContribuente: PropTypes.number,\r\n CodiceFiscale: PropTypes.string,\r\n Denominazione: PropTypes.string,\r\n }),\r\n setIdContoSelezionato: PropTypes.func.isRequired,\r\n disableSoggettoContribuente: PropTypes.bool.isRequired,\r\n formData: PropTypes.shape({\r\n CodiceFiscale: PropTypes.string,\r\n TipoPersona: PropTypes.number,\r\n IdAnagraficaCoobbligato: PropTypes.number,\r\n IdContoSelezionato: PropTypes.number,\r\n IbanGenerato: PropTypes.string,\r\n NumeroConto: PropTypes.string,\r\n AbiBanca: PropTypes.string,\r\n CabBanca: PropTypes.string,\r\n SoggettoContoDiAddebito: PropTypes.string.isRequired,\r\n IdIntermediario: PropTypes.number.isRequired,\r\n IdAnagraficaIntermediario: PropTypes.number,\r\n CodiceFiscaleDenominazione: PropTypes.string.isRequired,\r\n }).isRequired,\r\n setIdIntermediario: PropTypes.func.isRequired,\r\n setUsaContoIntermediario: PropTypes.func.isRequired,\r\n setFormData: PropTypes.func.isRequired,\r\n setIsFormValid: PropTypes.func.isRequired,\r\n aggiuntaNuovoContoCorrente: PropTypes.bool,\r\n setAggiuntaNuovoContoCorrente: PropTypes.func.isRequired,\r\n showWarningContoPerMassive: PropTypes.bool,\r\n ibanManuale: PropTypes.bool,\r\n setIbanManuale: PropTypes.func.isRequired,\r\n listaContiCorrente: PropTypes.arrayOf(PropTypes.shape({\r\n Id: PropTypes.number,\r\n })),\r\n idSoggettoVersante: PropTypes.number,\r\n setListaContiCorrente: PropTypes.func.isRequired,\r\n setIdSoggettoVersante: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default StepTelematicoInvioTelematico;\r\n","/* eslint-disable no-nested-ternary */\r\nimport React, {\r\n useState, useEffect, useCallback,\r\n} from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Grid, Spinner,\r\n} from 'framework-ui-components';\r\nimport {\r\n ConfirmModal,\r\n Modal,\r\n Button,\r\n FeedbackPanel,\r\n} from 'framework-ui-components/Components/V2';\r\nimport { useSelector } from 'react-redux';\r\nimport { logApiError } from 'framework-taskforce/utils/log';\r\nimport { getSegnalazioneError } from 'framework-taskforce/models/segnalazioni';\r\nimport { callDownloadFile } from 'framework-taskforce/utils/file';\r\nimport { JustADate } from 'framework-taskforce/utils/date';\r\nimport useSignalR from 'framework-ui-components/Components/Hooks/useSignalR';\r\nimport StepTelematicoIntermediario from './StepTelematicoIntermediario';\r\nimport StepTelematicoInvioTelematico from './StepTelematicoInvioTelematico';\r\nimport { STEP_SCELTA_TELEMATICO } from '../../../../../models/delega';\r\nimport { convertUTCDateToLocalDate } from '../../../../../utils/format';\r\nimport {\r\n postGeneraFileTelematicoIntermediarioDeleghe,\r\n postInviaFileTelematiciIntermediarioDelegheConAdele,\r\n} from '../../../../../apis/studio';\r\nimport {\r\n getOttieniUltimaStampaInDownload,\r\n postStampaDelega,\r\n} from '../../../../../apis/deleghe';\r\nimport ConfirmImage from '../../../../../components/icons/ConfirmImage';\r\nimport {\r\n getOttieniContiCorrenti,\r\n postModificaContoCorrente,\r\n postAggiungiContoCorrente,\r\n postAggiungiContoCorrenteDaIban,\r\n} from '../../../../../apis/anagrafiche';\r\n\r\nconst ModalePresentaDelegaMassivamente = ({\r\n onClose,\r\n show,\r\n idDeleghe,\r\n dataScadenzaVersamento,\r\n modalitaPresentazione,\r\n dataScadenzaMassimaVersamento,\r\n isDelegaSenzaIbanPresente,\r\n isTutteDelegaSenzaIbanPresente,\r\n isMultiContribuente,\r\n}) => {\r\n const studioSelezionato = useSelector((store) => store.appParams.studioSelezionato);\r\n\r\n const [loading, setLoading] = useState(false);\r\n const [segnalazioni, setSegnalazioni] = useState([]);\r\n const [showWarningPresentaDelega, setShowWarningPresentaDelega] = useState(false);\r\n const [showWarningFileTelematicoPresentaDelega, setShowWarningFileTelematicoPresentaDelega] = useState(false);\r\n const [stepModalitaPresentazione, setStepModalitaPresentazione] = useState(modalitaPresentazione);\r\n const [dataVersamento, setDataVersamento] = useState(JustADate(dataScadenzaVersamento));\r\n const [idContoSelezionato, setIdContoSelezionato] = useState(null);\r\n const [idIntermediario, setIdIntermediario] = useState(null);\r\n const [usaContoIntermediario, setUsaContoIntermediario] = useState(false);\r\n const [isFormValid, setIsFormValid] = useState(false);\r\n const [formData, setFormData] = useState({ });\r\n const [aggiuntaNuovoContoCorrente, setAggiuntaNuovoContoCorrente] = useState(false);\r\n const [specificaConto, setSpecificaConto] = useState(false);\r\n const [ibanManuale, setIbanManuale] = useState(false);\r\n const [listaContiCorrente, setListaContiCorrente] = useState(null);\r\n const [idSoggettoVersante, setIdSoggettoVersante] = useState(null);\r\n\r\n const resetDati = useCallback(() => {\r\n setLoading(false);\r\n setSegnalazioni([]);\r\n setStepModalitaPresentazione(modalitaPresentazione);\r\n setDataVersamento(new Date(dataScadenzaVersamento));\r\n setAggiuntaNuovoContoCorrente(false);\r\n setSpecificaConto(false);\r\n setIdIntermediario(null);\r\n }, [dataScadenzaVersamento, modalitaPresentazione]);\r\n\r\n useEffect(() => {\r\n if (show) {\r\n resetDati();\r\n }\r\n }, [resetDati, show]);\r\n\r\n useEffect(() => {\r\n if (!show) {\r\n // reset data on close\r\n resetDati();\r\n }\r\n }, [resetDati, show]);\r\n\r\n useSignalR('GenerazioneFileTelematicoIntermediarioDelegheCompletato', (data) => {\r\n setShowWarningPresentaDelega(false);\r\n setLoading(false);\r\n onClose(true);\r\n });\r\n\r\n const stampaCartacea = useCallback(() => {\r\n setShowWarningPresentaDelega(false);\r\n setLoading(true);\r\n postStampaDelega({ idDeleghe }).then((res) => {\r\n if (res.Success) {\r\n callDownloadFile(\r\n getOttieniUltimaStampaInDownload,\r\n 'Stampa cartacea', // dafultname,\r\n idDeleghe, // params\r\n ).then((resDownload) => {\r\n setShowWarningPresentaDelega(false);\r\n setLoading(false);\r\n onClose(true);\r\n }).catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n } else {\r\n setLoading(false);\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n }, [idDeleghe, onClose]);\r\n\r\n const fileTelematicoIntermediario = useCallback((idIntermediarioSelezionato, idContoCorrenteIntermediario) => {\r\n const DataVersamento = convertUTCDateToLocalDate(dataVersamento);\r\n setShowWarningFileTelematicoPresentaDelega(false);\r\n setLoading(true);\r\n postGeneraFileTelematicoIntermediarioDeleghe(\r\n {\r\n idStudio: studioSelezionato,\r\n IdentificativiDeleghe: idDeleghe,\r\n DataVersamento,\r\n idIntermediario: idIntermediarioSelezionato,\r\n idContoCorrenteIntermediario: usaContoIntermediario ? idContoCorrenteIntermediario : null,\r\n isMultiContribuente,\r\n },\r\n ).then((res) => {\r\n setShowWarningFileTelematicoPresentaDelega(false);\r\n if (!res.Success) {\r\n setLoading(false);\r\n setSegnalazioni(res.DetectedProblems.map((err) => getSegnalazioneError(err)));\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n }, [dataVersamento, idDeleghe, isMultiContribuente, studioSelezionato, usaContoIntermediario]);\r\n\r\n const inviaFileTelematiciIntermediarioConAdele = useCallback((idIntermediarioSelezionato, idContoCorrenteIntermediario) => {\r\n const DataVersamento = convertUTCDateToLocalDate(dataVersamento);\r\n setShowWarningFileTelematicoPresentaDelega(false);\r\n setLoading(true);\r\n postInviaFileTelematiciIntermediarioDelegheConAdele({\r\n idStudio: studioSelezionato,\r\n IdentificativiDeleghe: idDeleghe,\r\n DataVersamento,\r\n idIntermediario: idIntermediarioSelezionato,\r\n idContoCorrenteIntermediario: usaContoIntermediario ? idContoCorrenteIntermediario : null,\r\n isMultiContribuente,\r\n }).then((res) => {\r\n if (res.Success) {\r\n setShowWarningFileTelematicoPresentaDelega(false);\r\n // setLoading(false);\r\n // setEsito(true);\r\n // onClose(true);\r\n } else {\r\n setLoading(false);\r\n setSegnalazioni(res.DetectedProblems.map((err) => getSegnalazioneError(err)));\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n }, [dataVersamento, idDeleghe, isMultiContribuente, studioSelezionato, usaContoIntermediario]);\r\n\r\n useSignalR('GenerazioneInvioFileTelematiciIntermediarioDelegheConAdeleCompletato', (data) => {\r\n setLoading(false);\r\n onClose(true);\r\n });\r\n\r\n const associaContoConPresentazioneFileTelematico = useCallback((\r\n abiBanca = null,\r\n cabBanca = null,\r\n numeroConto = null,\r\n isIbanManuale = false,\r\n iban = null,\r\n predefinito = null,\r\n contoPredefinitoPrecedente = null,\r\n ) => {\r\n setShowWarningFileTelematicoPresentaDelega(false);\r\n setSpecificaConto(false);\r\n\r\n if (usaContoIntermediario && ((abiBanca && cabBanca && numeroConto) || iban)) {\r\n if (predefinito && contoPredefinitoPrecedente) {\r\n const exContoPredefinito = {\r\n IdContoCorrente: contoPredefinitoPrecedente.Id,\r\n IdAnagrafica: idIntermediario.idAnagrafica,\r\n Iban: contoPredefinitoPrecedente.IbanManuale,\r\n AbiBanca: contoPredefinitoPrecedente.AbiBanca,\r\n CabBanca: contoPredefinitoPrecedente.CabBanca,\r\n NumeroConto: contoPredefinitoPrecedente.NumeroConto,\r\n Predefinito: false,\r\n };\r\n\r\n postModificaContoCorrente(exContoPredefinito).then((result) => {\r\n if (result.Success) {\r\n (isIbanManuale ? postAggiungiContoCorrenteDaIban : postAggiungiContoCorrente)({\r\n IdStudio: studioSelezionato,\r\n AbiBanca: abiBanca,\r\n CabBanca: cabBanca,\r\n NumeroConto: numeroConto,\r\n Iban: iban,\r\n IdAnagrafica: idIntermediario.idAnagrafica,\r\n Predefinito: predefinito,\r\n })\r\n .then((resAggiungiConto) => {\r\n if (resAggiungiConto.Success) {\r\n setFormData({ IdContoSelezionato: resAggiungiConto.Result });\r\n if (modalitaPresentazione === STEP_SCELTA_TELEMATICO.VIA_TELEMATICA_INVIO_TELEMATICO) {\r\n inviaFileTelematiciIntermediarioConAdele(idIntermediario.id, resAggiungiConto.Result);\r\n } else {\r\n fileTelematicoIntermediario(idIntermediario.id, resAggiungiConto.Result);\r\n }\r\n } else {\r\n const errori = resAggiungiConto.DetectedProblems.map((err) => getSegnalazioneError(err));\r\n setSegnalazioni(errori);\r\n setLoading(false);\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n } else {\r\n setSegnalazioni(result.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n } else {\r\n (isIbanManuale ? postAggiungiContoCorrenteDaIban : postAggiungiContoCorrente)({\r\n IdStudio: studioSelezionato,\r\n AbiBanca: abiBanca,\r\n CabBanca: cabBanca,\r\n NumeroConto: numeroConto,\r\n Iban: iban,\r\n IdAnagrafica: idIntermediario.idAnagrafica,\r\n Predefinito: predefinito,\r\n })\r\n .then((resAggiungiConto) => {\r\n if (resAggiungiConto.Success) {\r\n setFormData({ IdContoSelezionato: resAggiungiConto.Result });\r\n if (modalitaPresentazione === STEP_SCELTA_TELEMATICO.VIA_TELEMATICA_INVIO_TELEMATICO) {\r\n inviaFileTelematiciIntermediarioConAdele(idIntermediario.id, resAggiungiConto.Result);\r\n } else {\r\n fileTelematicoIntermediario(idIntermediario.id, resAggiungiConto.Result);\r\n }\r\n } else {\r\n const errori = resAggiungiConto.DetectedProblems.map((err) => getSegnalazioneError(err));\r\n setSegnalazioni(errori);\r\n setLoading(false);\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n }\r\n } else if (modalitaPresentazione === STEP_SCELTA_TELEMATICO.VIA_TELEMATICA_INVIO_TELEMATICO) {\r\n inviaFileTelematiciIntermediarioConAdele(idIntermediario.id, idContoSelezionato);\r\n } else {\r\n fileTelematicoIntermediario(idIntermediario.id, idContoSelezionato);\r\n }\r\n }, [fileTelematicoIntermediario,\r\n idContoSelezionato,\r\n idIntermediario,\r\n inviaFileTelematiciIntermediarioConAdele,\r\n modalitaPresentazione,\r\n studioSelezionato,\r\n usaContoIntermediario]);\r\n\r\n useEffect(() => {\r\n if (formData.IdIntermediario) {\r\n setIdIntermediario({ id: formData.IdIntermediario, idAnagrafica: formData.IdAnagraficaIntermediario });\r\n if (formData.SoggettoContoDiAddebito === '0') {\r\n setUsaContoIntermediario(false);\r\n if (idSoggettoVersante && !listaContiCorrente) {\r\n setLoading(true);\r\n getOttieniContiCorrenti(idSoggettoVersante)\r\n .then((res) => {\r\n if (res.Success && res.Result) {\r\n setListaContiCorrente(res.Result);\r\n } else {\r\n setListaContiCorrente([]);\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n }\r\n } else if (formData.SoggettoContoDiAddebito === '1') {\r\n setUsaContoIntermediario(true);\r\n if (!listaContiCorrente) {\r\n setLoading(true);\r\n getOttieniContiCorrenti(formData.IdAnagraficaIntermediario)\r\n .then((res) => {\r\n if (res.Success && res.Result) {\r\n setListaContiCorrente(res.Result);\r\n } else {\r\n setListaContiCorrente([]);\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n }\r\n }\r\n }\r\n }, [formData, idSoggettoVersante, listaContiCorrente]);\r\n\r\n return (\r\n
    \r\n {showWarningPresentaDelega || showWarningFileTelematicoPresentaDelega ? (\r\n \r\n }\r\n onClose={() => { setShowWarningPresentaDelega(false); }}\r\n primaryLabel=\"Non Presentare\"\r\n onPrimaryClick={() => { setShowWarningPresentaDelega(false); setLoading(false); }}\r\n secondaryLabel=\"Presenta in forma cartacea\"\r\n onSecondaryClick={() => stampaCartacea()}\r\n title={'Le deleghe assumeranno lo stato \"In presentazione\"'}\r\n message={(\r\n
    \r\n Verrà scaricato il modello definitivo (in triplice copia) e, successivamente,\r\n
    \r\n troverai le deleghe all' interno del "Presentate".\r\n
    \r\n )}\r\n dontShowAgainMessage=\"Non mostrare più questo messaggio\"\r\n dontShowAgainId=\"stampa-cartacea-non-visualizza-piu\"\r\n />\r\n }\r\n onClose={() => { setShowWarningFileTelematicoPresentaDelega(false); setLoading(false); }}\r\n primaryLabel=\"Non Presentare\"\r\n onPrimaryClick={() => { setShowWarningFileTelematicoPresentaDelega(false); setLoading(false); }}\r\n secondaryLabel={stepModalitaPresentazione === STEP_SCELTA_TELEMATICO.VIA_TELEMATICA_INVIO_TELEMATICO\r\n ? 'PRESENTA CON INVIO TELEMATICO CGN' : 'Presenta per via telematica'}\r\n onSecondaryClick={() => {\r\n if (stepModalitaPresentazione === STEP_SCELTA_TELEMATICO.VIA_TELEMATICA_INTERMEDIARIO\r\n || stepModalitaPresentazione === STEP_SCELTA_TELEMATICO.VIA_TELEMATICA_INVIO_TELEMATICO) {\r\n associaContoConPresentazioneFileTelematico(\r\n ibanManuale ? null : formData.AbiBanca,\r\n ibanManuale ? null : formData.CabBanca,\r\n ibanManuale ? null : formData.NumeroConto,\r\n ibanManuale,\r\n ibanManuale ? formData.IbanManuale : null,\r\n formData.Predefinito,\r\n listaContiCorrente && listaContiCorrente.find((conto) => conto.Predefinito),\r\n );\r\n } else {\r\n associaContoConPresentazioneFileTelematico();\r\n }\r\n }}\r\n title={'Le deleghe assumeranno lo stato \"In presentazione\"'}\r\n message={stepModalitaPresentazione === STEP_SCELTA_TELEMATICO.VIA_TELEMATICA_INVIO_TELEMATICO ? (\r\n
    \r\n Le deleghe verranno trasmesse tramite Invio Telematico CGN e, successivamente, le\r\n
    \r\n troverai all'interno del tab "Presentate".\r\n
    \r\n ) : (\r\n
    \r\n Verranno scaricati i file telematici e, successivamente, troverai le deleghe all'interno del
    \r\n tab "Presentate".\r\n
    \r\n )}\r\n dontShowAgainMessage=\"Non mostrare più questo messaggio\"\r\n dontShowAgainId=\"file-telematico-ordinario-non-visualizza-piu\"\r\n />\r\n
    \r\n ) : (\r\n \r\n \r\n
    \r\n {stepModalitaPresentazione === STEP_SCELTA_TELEMATICO.SELEZIONE_PRESENTAZIONE && 'Presenta le deleghe'}\r\n {stepModalitaPresentazione === STEP_SCELTA_TELEMATICO.SELEZIONE_VIA_TELEMATICA && 'Presenta le deleghe per via telematica'}\r\n {stepModalitaPresentazione === STEP_SCELTA_TELEMATICO.VIA_TELEMATICA_CONTRIBUENTE && 'Scarica F24 telematico ordinario'}\r\n {stepModalitaPresentazione === STEP_SCELTA_TELEMATICO.VIA_TELEMATICA_INTERMEDIARIO && 'Scarica F24 telematico con intermediario'}\r\n {stepModalitaPresentazione === STEP_SCELTA_TELEMATICO.VIA_TELEMATICA_INVIO_TELEMATICO && 'Usa Invio telematico CGN'}\r\n
    \r\n
    \r\n \r\n {loading\r\n ? \r\n : (\r\n \r\n {segnalazioni.length > 0\r\n ? (\r\n \r\n
      \r\n {segnalazioni.map((segnalazione, idx) => (\r\n {segnalazione.msg}\r\n \r\n ))}\r\n
    \r\n
    \r\n )}\r\n type=\"alarm\"\r\n />\r\n )\r\n : (\r\n \r\n \r\n {stepModalitaPresentazione === STEP_SCELTA_TELEMATICO.VIA_TELEMATICA_INTERMEDIARIO && (\r\n \r\n )}\r\n {stepModalitaPresentazione === STEP_SCELTA_TELEMATICO.VIA_TELEMATICA_INVIO_TELEMATICO && (\r\n \r\n )}\r\n \r\n \r\n )}\r\n \r\n )}\r\n \r\n \r\n {segnalazioni.length === 0\r\n ? (stepModalitaPresentazione === STEP_SCELTA_TELEMATICO.VIA_TELEMATICA_INTERMEDIARIO\r\n || stepModalitaPresentazione === STEP_SCELTA_TELEMATICO.VIA_TELEMATICA_INVIO_TELEMATICO\r\n ? (\r\n \r\n onClose(false)}\r\n emphasis={Button.Emphasis.HIGH}\r\n disabled={loading}\r\n >\r\n ANNULLA\r\n \r\n {\r\n if (JSON.parse(window.localStorage.getItem('file-telematico-ordinario-non-visualizza-piu')) === 'messageRead') {\r\n associaContoConPresentazioneFileTelematico(\r\n ibanManuale ? null : formData.AbiBanca,\r\n ibanManuale ? null : formData.CabBanca,\r\n ibanManuale ? null : formData.NumeroConto,\r\n ibanManuale,\r\n ibanManuale ? formData.IbanManuale : null,\r\n formData.Predefinito,\r\n listaContiCorrente && listaContiCorrente.find((conto) => conto.Predefinito),\r\n );\r\n } else {\r\n setShowWarningFileTelematicoPresentaDelega(true);\r\n }\r\n }}\r\n emphasis={Button.Emphasis.HIGH}\r\n disabled={loading || !dataVersamento\r\n || (isDelegaSenzaIbanPresente && `${formData.SoggettoContoDiAddebito}` === '0')\r\n || (`${formData.SoggettoContoDiAddebito}` === '1' && !isFormValid)\r\n || (`${formData.SoggettoContoDiAddebito}` !== '0' && `${formData.SoggettoContoDiAddebito}` !== '1')\r\n || (specificaConto && !isFormValid)}\r\n primary\r\n >\r\n {stepModalitaPresentazione === STEP_SCELTA_TELEMATICO.VIA_TELEMATICA_INVIO_TELEMATICO\r\n || stepModalitaPresentazione === STEP_SCELTA_TELEMATICO.VIA_TELEMATICA_CBI_CONTRIBUENTE ? 'INVIA' : 'SCARICA'}\r\n \r\n \r\n ) : (
    )\r\n ) : (\r\n { setSegnalazioni([]); setLoading(false); }}\r\n emphasis={Button.Emphasis.HIGH}\r\n primary\r\n running={loading}\r\n >\r\n RIPROVA\r\n \r\n )}\r\n \r\n }\r\n onClose={() => { setShowWarningPresentaDelega(false); }}\r\n primaryLabel=\"Non Presentare\"\r\n onPrimaryClick={() => { setShowWarningPresentaDelega(false); setLoading(false); }}\r\n secondaryLabel=\"Presenta in forma cartacea\"\r\n onSecondaryClick={() => stampaCartacea()}\r\n title={'Le deleghe assumeranno lo stato \"In presentazione\"'}\r\n message={(\r\n
    \r\n Verrà scaricato il modello definitivo (in triplice copia) e, successivamente,\r\n
    \r\n troverai le deleghe all' interno del tab "Presentate".\r\n
    \r\n )}\r\n dontShowAgainMessage=\"Non mostrare più questo messaggio\"\r\n dontShowAgainId=\"stampa-cartacea-non-visualizza-piu\"\r\n />\r\n }\r\n onClose={() => { setShowWarningFileTelematicoPresentaDelega(false); setLoading(false); }}\r\n primaryLabel=\"Non Presentare\"\r\n onPrimaryClick={() => { setShowWarningFileTelematicoPresentaDelega(false); setLoading(false); }}\r\n secondaryLabel={stepModalitaPresentazione === STEP_SCELTA_TELEMATICO.VIA_TELEMATICA_INVIO_TELEMATICO\r\n ? 'PRESENTA CON INVIO TELEMATICO CGN' : 'Presenta per via telematica'}\r\n onSecondaryClick={(\r\n stepModalitaPresentazione === STEP_SCELTA_TELEMATICO.VIA_TELEMATICA_INTERMEDIARIO\r\n || stepModalitaPresentazione === STEP_SCELTA_TELEMATICO.VIA_TELEMATICA_INVIO_TELEMATICO\r\n ? () => associaContoConPresentazioneFileTelematico(\r\n ibanManuale ? null : formData.AbiBanca,\r\n ibanManuale ? null : formData.CabBanca,\r\n ibanManuale ? null : formData.NumeroConto,\r\n ibanManuale,\r\n ibanManuale ? formData.IbanManuale : null,\r\n formData.Predefinito,\r\n listaContiCorrente && listaContiCorrente.find((conto) => conto.Predefinito),\r\n )\r\n : () => associaContoConPresentazioneFileTelematico()\r\n )}\r\n title={'Le deleghe assumeranno lo stato \"In presentazione\"'}\r\n message={stepModalitaPresentazione === STEP_SCELTA_TELEMATICO.VIA_TELEMATICA_INVIO_TELEMATICO ? (\r\n
    \r\n Le deleghe verranno trasmesse tramite Invio Telematico CGN e, successivamente, le
    \r\n troverai all'interno del tab "Presentate".\r\n
    \r\n ) : (\r\n
    \r\n Verranno scaricati i file telematici e, successivamente, troverai le deleghe\r\n
    \r\n all'interno del tab "Presentate".\r\n
    \r\n )}\r\n dontShowAgainMessage=\"Non mostrare più questo messaggio\"\r\n dontShowAgainId=\"file-telematico-ordinario-non-visualizza-piu\"\r\n />\r\n \r\n )}\r\n
    \r\n );\r\n};\r\n\r\nModalePresentaDelegaMassivamente.defaultProps = {\r\n modalitaPresentazione: STEP_SCELTA_TELEMATICO.SELEZIONE_PRESENTAZIONE,\r\n isMultiContribuente: false,\r\n dataScadenzaMassimaVersamento: null,\r\n isDelegaSenzaIbanPresente: false,\r\n isTutteDelegaSenzaIbanPresente: false,\r\n};\r\n\r\nModalePresentaDelegaMassivamente.propTypes = {\r\n onClose: PropTypes.func.isRequired,\r\n show: PropTypes.bool.isRequired,\r\n idDeleghe: PropTypes.arrayOf(PropTypes.number).isRequired,\r\n dataScadenzaVersamento: PropTypes.string.isRequired,\r\n modalitaPresentazione: PropTypes.number,\r\n isMultiContribuente: PropTypes.bool,\r\n dataScadenzaMassimaVersamento: PropTypes.string,\r\n isDelegaSenzaIbanPresente: PropTypes.bool,\r\n isTutteDelegaSenzaIbanPresente: PropTypes.bool,\r\n};\r\n\r\nexport default ModalePresentaDelegaMassivamente;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport {\r\n DropdownButton, Button, ButtonGroup,\r\n Tooltip as TooltipV2,\r\n} from 'framework-ui-components/Components/V2';\r\nimport PropTypes from 'prop-types';\r\nimport { Link, Tooltip } from 'framework-ui-components';\r\nimport SendIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/SendIcon';\r\nimport { logApiError } from 'framework-taskforce/utils/log';\r\nimport CreditCardIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/CreditCardIcon';\r\nimport InfoIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/InfoIcon';\r\nimport { MODALITA_PRESENTAZIONE2 } from '../../../../models/delega';\r\nimport PrinterIcon from '../../../../components/icons/google/PrinterIcon';\r\n\r\nimport { getOttieniInfoModalitaPresentazione } from '../../../../apis/deleghe';\r\nimport InvioTelematicoIconSmall from '../../../../components/icons/custom/InvioTelematicoIconSmall';\r\nimport UndoIcon from '../../../../components/icons/google/UndoIcon';\r\n\r\nconst BottoniPresentazioneSingola = ({\r\n setDatiModalePresentazione, setShowWarningPresentaDelega, stampaCartacea, dichiaraAperta, setCurrent,\r\n}) => {\r\n const rowsDelegheSelected = useSelector((store) => store.appParams.rowsDeleghe);\r\n const appParamVisualizzazione = useSelector((store) => !!store.appParams.visualizzazione);\r\n const homeUrl = useSelector((store) => store.appParams.HomeUrl);\r\n\r\n const isInvioTelematicoCbiAttivo = useSelector((store) => store.appParams.isInvioTelematicoCbiAttivo);\r\n const sestioneContrattiRdv = useSelector((store) => store.appParams.GestioneContrattiRdv);\r\n const isInvioTelematicoAttivo = useSelector((store) => store.appParams.isInvioTelematicoAttivo);\r\n\r\n const [infoModalitaPresentazione, setInfoModalitaPresentazione] = useState({});\r\n\r\n const [show, onMouseEnter, onMouseLeave] = TooltipV2.useTooltipHoverWithDelay();\r\n const [showCgnPos, onMouseEnterCgnPos, onMouseLeaveCgnPos] = TooltipV2.useTooltipHoverWithDelay();\r\n const [showInvioTele, onMouseEnterInvioTele, onMouseLeaveInvioTele] = TooltipV2.useTooltipHoverWithDelay();\r\n const paginaDiServizioCgnPosUrl = useSelector((store) => store.appParams.PaginaDiServizioCgnPosUrl);\r\n\r\n useEffect(() => {\r\n if (rowsDelegheSelected[0]) {\r\n getOttieniInfoModalitaPresentazione(rowsDelegheSelected[0].IdDelega)\r\n .then((res) => {\r\n if (res.Success) {\r\n setInfoModalitaPresentazione(res.Result);\r\n }\r\n })\r\n .catch((e) => {\r\n setInfoModalitaPresentazione({});\r\n logApiError(e);\r\n });\r\n }\r\n }, [rowsDelegheSelected]);\r\n\r\n return (\r\n \r\n \r\n \r\n Presenta la delega\r\n \r\n Pagamento digitale )}>\r\n {infoModalitaPresentazione.IsInvioCgnPosAttivo ? (\r\n {\r\n setCurrent('pagoF24-Pos-Anagrafica');\r\n\r\n setDatiModalePresentazione({\r\n show: true,\r\n idDelega: rowsDelegheSelected[0].IdDelega,\r\n dataVersamento: rowsDelegheSelected[0].ScadenzaVersamento,\r\n infoModalitaPresentazione,\r\n tipoDelegaDescrizione: rowsDelegheSelected[0].TipoDelegaDescrizione,\r\n modalitaPresentazione: MODALITA_PRESENTAZIONE2.CGN_POS,\r\n saldo: rowsDelegheSelected[0].Saldo,\r\n });\r\n }}\r\n disabled={appParamVisualizzazione}\r\n >\r\n CGN POS\r\n \r\n\r\n ) : (\r\n \r\n {}}\r\n disabled\r\n >\r\n CGN POS\r\n {!infoModalitaPresentazione.HaRichiestoAlmenoUnPos && (\r\n \r\n Attiva CGN POS\r\n \r\n )}\r\n >\r\n
    \r\n \r\n
    \r\n \r\n )}\r\n \r\n \r\n )}\r\n {infoModalitaPresentazione.IsInvioTramitePagoF24Attivo ? (\r\n {\r\n setCurrent('pagoF24-Accettazione');\r\n\r\n setDatiModalePresentazione({\r\n show: true,\r\n idDelega: rowsDelegheSelected[0].IdDelega,\r\n dataVersamento: rowsDelegheSelected[0].ScadenzaVersamento,\r\n infoModalitaPresentazione,\r\n tipoDelegaDescrizione: rowsDelegheSelected[0].TipoDelegaDescrizione,\r\n modalitaPresentazione: MODALITA_PRESENTAZIONE2.PAGO_F24,\r\n saldo: rowsDelegheSelected[0].Saldo,\r\n });\r\n }}\r\n disabled={appParamVisualizzazione}\r\n >\r\n pagoF24\r\n \r\n ) : (\r\n \r\n {}}\r\n disabled\r\n >\r\n pagoF24\r\n \r\n \r\n )}\r\n {infoModalitaPresentazione.IsInviaFileTelematicoContribuenteConCbiAttivo ? (\r\n {\r\n setCurrent('form-cbi');\r\n\r\n setDatiModalePresentazione({\r\n show: true,\r\n idDelega: rowsDelegheSelected[0].IdDelega,\r\n dataVersamento: rowsDelegheSelected[0].ScadenzaVersamento,\r\n ibanAssociatoAllaDelega: rowsDelegheSelected[0].Iban,\r\n infoModalitaPresentazione,\r\n tipoDelegaDescrizione: rowsDelegheSelected[0].TipoDelegaDescrizione,\r\n modalitaPresentazione: MODALITA_PRESENTAZIONE2.INVIO_CBI,\r\n saldo: rowsDelegheSelected[0].Saldo,\r\n });\r\n }}\r\n disabled={appParamVisualizzazione || !isInvioTelematicoCbiAttivo}\r\n >\r\n CBI\r\n {!isInvioTelematicoCbiAttivo && (\r\n \r\n Attiva CBI\r\n \r\n )}\r\n >\r\n
    \r\n \r\n
    \r\n \r\n )}\r\n \r\n ) : (\r\n \r\n \r\n CBI\r\n \r\n \r\n )}\r\n
    \r\n File telematico )}>\r\n {infoModalitaPresentazione.IsCreaFileTelematicoContribuenteAttivo ? (\r\n {\r\n setCurrent('form-file-telematico-contribuente');\r\n\r\n setDatiModalePresentazione({\r\n show: true,\r\n idDelega: rowsDelegheSelected[0].IdDelega,\r\n dataVersamento: rowsDelegheSelected[0].ScadenzaVersamento,\r\n ibanAssociatoAllaDelega: rowsDelegheSelected[0].Iban,\r\n infoModalitaPresentazione,\r\n tipoDelegaDescrizione: rowsDelegheSelected[0].TipoDelegaDescrizione,\r\n modalitaPresentazione: MODALITA_PRESENTAZIONE2.FILE_TELEMATICO_CONTRIBUENTE,\r\n saldo: rowsDelegheSelected[0].Saldo,\r\n });\r\n }}\r\n disabled={appParamVisualizzazione}\r\n >\r\n Per via telematica tramite contribuente\r\n \r\n ) : (\r\n \r\n \r\n Per via telematica tramite contribuente\r\n \r\n \r\n )}\r\n {infoModalitaPresentazione.IsCreaFileTelematicoIntermediarioAttivo ? (\r\n {\r\n setCurrent('form-file-telematico-intermediario');\r\n\r\n setDatiModalePresentazione({\r\n show: true,\r\n idDelega: rowsDelegheSelected[0].IdDelega,\r\n dataVersamento: rowsDelegheSelected[0].ScadenzaVersamento,\r\n ibanAssociatoAllaDelega: rowsDelegheSelected[0].Iban,\r\n infoModalitaPresentazione,\r\n tipoDelegaDescrizione: rowsDelegheSelected[0].TipoDelegaDescrizione,\r\n modalitaPresentazione: MODALITA_PRESENTAZIONE2.FILE_TELEMATICO_INTERMEDIARIO,\r\n saldo: rowsDelegheSelected[0].Saldo,\r\n });\r\n }}\r\n disabled={appParamVisualizzazione}\r\n >\r\n Per via telematica tramite intermediario\r\n \r\n ) : (\r\n \r\n \r\n Per via telematica tramite intermediario\r\n \r\n \r\n )}\r\n {infoModalitaPresentazione.IsInviaFileTelematicoIntermediarioConAdeleAttivo ? (\r\n {\r\n setCurrent('form-invio-telematico');\r\n\r\n setDatiModalePresentazione({\r\n show: true,\r\n idDelega: rowsDelegheSelected[0].IdDelega,\r\n dataVersamento: rowsDelegheSelected[0].ScadenzaVersamento,\r\n ibanAssociatoAllaDelega: rowsDelegheSelected[0].Iban,\r\n infoModalitaPresentazione,\r\n tipoDelegaDescrizione: rowsDelegheSelected[0].TipoDelegaDescrizione,\r\n modalitaPresentazione: MODALITA_PRESENTAZIONE2.INVIO_TELEMATICO,\r\n saldo: rowsDelegheSelected[0].Saldo,\r\n });\r\n }}\r\n disabled={appParamVisualizzazione && !isInvioTelematicoAttivo}\r\n >\r\n Invio telematico CGN\r\n {!isInvioTelematicoAttivo && (\r\n \r\n Attiva Invio telematico CGN\r\n \r\n )}\r\n >\r\n
    \r\n \r\n
    \r\n \r\n )}\r\n \r\n ) : (\r\n \r\n \r\n Invio telematico CGN\r\n \r\n \r\n )}\r\n
    \r\n {infoModalitaPresentazione.IsCreaStampaDaConsegnareAttivo ? (\r\n {\r\n JSON.parse(window.localStorage.getItem('stampa-cartacea-non-visualizza-piu')) === 'messageRead'\r\n ? stampaCartacea() : setShowWarningPresentaDelega(true);\r\n }}\r\n disabled={appParamVisualizzazione}\r\n className=\"z-index__-2\"\r\n >\r\n \r\n Stampa\r\n \r\n ) : (\r\n \r\n {}}\r\n disabled\r\n className=\"z-index__-2\"\r\n >\r\n \r\n Stampa\r\n \r\n \r\n )}\r\n \r\n \r\n dichiaraAperta(true)}\r\n disabled={appParamVisualizzazione}\r\n >\r\n \r\n Sposta "In Lavorazione"\r\n \r\n
    \r\n );\r\n};\r\n\r\nBottoniPresentazioneSingola.defaultProps = {\r\n setDatiModalePresentazione: () => {},\r\n};\r\n\r\nBottoniPresentazioneSingola.propTypes = {\r\n setDatiModalePresentazione: PropTypes.func,\r\n setShowWarningPresentaDelega: PropTypes.func.isRequired,\r\n stampaCartacea: PropTypes.func.isRequired,\r\n dichiaraAperta: PropTypes.func.isRequired,\r\n setCurrent: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default BottoniPresentazioneSingola;\r\n","/* eslint-disable no-nested-ternary */\r\nimport React, { useMemo, useState } from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport {\r\n DropdownButton, Button, ButtonGroup, FeedbackModal,\r\n} from 'framework-ui-components/Components/V2';\r\nimport PropTypes from 'prop-types';\r\nimport { Link, Tooltip } from 'framework-ui-components';\r\nimport SendIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/SendIcon';\r\nimport { getAddDayISOString, JustADate } from 'framework-taskforce/utils/date';\r\nimport { STEP_SCELTA_TELEMATICO } from '../../../../models/delega';\r\nimport InvioTelematicoIconSmall from '../../../../components/icons/custom/InvioTelematicoIconSmall';\r\nimport LaptopIcon from '../../../../components/icons/google/LaptopIcon';\r\nimport PrinterIcon from '../../../../components/icons/google/PrinterIcon';\r\nimport UndoIcon from '../../../../components/icons/google/UndoIcon';\r\nimport { hrefIntermediariUrl, intermediariUrl } from '../../../../models/urls';\r\nimport { TIPO_PERSONA } from '../../../../models/anagrafica';\r\nimport { convertUTCDateToLocalDate } from '../../../../utils/format';\r\nimport InvioTelematicoIconGreySmall from '../../../../components/icons/custom/InvioTelematicoIconGreySmall';\r\nimport ModaleAiutaci from '../../../../components/ModaleAiutaci';\r\nimport SendBlackIcon from '../../../../components/icons/google/SendBlackIcon';\r\n\r\nconst BottoniPresentazioneMassiva = ({\r\n setDatiModalePresentazioneMassiva, setShowWarningPresentaDelega, setShowWarningAperteDeleghe, stampaCartacea, dichiaraAperta,\r\n}) => {\r\n const rowsDelegheSelected = useSelector((store) => store.appParams.rowsDeleghe);\r\n const intermediariStudio = useSelector((store) => store.intermediari);\r\n const ufficioSelezionato = useSelector((store) => store.appParams.ufficioSelezionato);\r\n const soggetto = useSelector((store) => store.soggetto);\r\n const isInvioTelematicoAttivo = useSelector((store) => store.appParams.isInvioTelematicoAttivo);\r\n const appParamVisualizzazione = useSelector((store) => !!store.appParams.visualizzazione);\r\n const homeUrl = useSelector((store) => store.appParams.HomeUrl);\r\n const codiceUfficioSelezionato = useSelector((store) => store.appParams.ufficioSelezionato);\r\n\r\n const [showFeedbackNoIntermediari, setShowFeedbackNoIntermediari] = useState({ show: false });\r\n const [confirmFunzionalitaMancante, setConfirmFunzionalitaMancante] = useState(false);\r\n\r\n const isDelegaSenzaIbanPresente = useMemo(() => (rowsDelegheSelected ? rowsDelegheSelected\r\n .some((delega) => delega.Iban === null) : false), [rowsDelegheSelected]);\r\n\r\n const isTutteDelegaSenzaIbanPresente = useMemo(() => (rowsDelegheSelected ? rowsDelegheSelected\r\n .every((delega) => delega.Iban === null) : false), [rowsDelegheSelected]);\r\n\r\n const isAllDelegheCreaStampaDaConsegnareNonAttivo = useMemo(() => (rowsDelegheSelected ? rowsDelegheSelected\r\n .every((delega) => delega.IsCreaStampaDaConsegnareAttivo !== true) : false), [rowsDelegheSelected]);\r\n\r\n const isTutteDelegaScadute = useMemo(() => (rowsDelegheSelected ? rowsDelegheSelected\r\n .every((delega) => new Date(delega.ScadenzaVersamento) < JustADate(getAddDayISOString(new Date(), 0)).getDate()) : false), [rowsDelegheSelected]);\r\n\r\n const setDatiPerModalePresentazioneMassiva = (modalitaPresentazione) => {\r\n const minimaDataDiScadenza = rowsDelegheSelected.reduce((prev, curr) => (\r\n curr.ScadenzaVersamento\r\n > prev.ScadenzaVersamento\r\n ? (prev.ScadenzaVersamento < new Date(new Date().setHours(0, 0, 0, 0)).toISOString() ? curr : prev)\r\n : (curr.ScadenzaVersamento < new Date(new Date().setHours(0, 0, 0, 0)).toISOString() ? prev : curr))).ScadenzaVersamento;\r\n\r\n const massimaDataDiScadenza = new Date(Math.max(...rowsDelegheSelected.map((delega) => new Date(delega.ScadenzaVersamento))));\r\n\r\n setDatiModalePresentazioneMassiva({\r\n show: true,\r\n idDeleghe: rowsDelegheSelected.map((x) => x.IdDelega),\r\n isDelegaSenzaIbanPresente,\r\n isTutteDelegaSenzaIbanPresente,\r\n modalitaPresentazione,\r\n dataVersamentoMinima: isTutteDelegaScadute ? new Date() : minimaDataDiScadenza,\r\n dataVersamentoMassima: isTutteDelegaScadute ? (new Date(new Date().setFullYear(new Date().getFullYear() + 2)))\r\n : (massimaDataDiScadenza > new Date() ? massimaDataDiScadenza : new Date()),\r\n });\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n Presenta le deleghe\r\n \r\n \r\n Invia le deleghe direttamente all'Agenzia delle Entrate.\r\n
    \r\n \r\n Attiva il servizio qui\r\n \r\n
    \r\n )}\r\n className=\"Custom_Tooltip__sfondo-bianco\"\r\n enableFunction={(e) => !isInvioTelematicoAttivo}\r\n top\r\n >\r\n 0 ? (\r\n () => setDatiPerModalePresentazioneMassiva(STEP_SCELTA_TELEMATICO.VIA_TELEMATICA_INVIO_TELEMATICO)) : (\r\n () => setShowFeedbackNoIntermediari({ show: true, invioTelematico: true })\r\n ))}\r\n disabled={!isInvioTelematicoAttivo}\r\n >\r\n Invio Telematico CGN\r\n {!isInvioTelematicoAttivo && (\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n )}\r\n \r\n \r\n 0 ? (\r\n () => setDatiPerModalePresentazioneMassiva(STEP_SCELTA_TELEMATICO.VIA_TELEMATICA_INTERMEDIARIO)) : (\r\n () => setShowFeedbackNoIntermediari({ show: true, invioTelematico: false })\r\n ))}\r\n >\r\n Per via telematica tramite intermediario\r\n \r\n {\r\n JSON.parse(window.localStorage.getItem('stampa-cartacea-non-visualizza-piu')) === 'messageRead'\r\n ? stampaCartacea() : setShowWarningPresentaDelega(true);\r\n }}\r\n >\r\n Stampa\r\n \r\n \r\n \r\n {setShowWarningAperteDeleghe && (\r\n {\r\n JSON.parse(window.localStorage.getItem('aperta-deleghe-non-visualizza-piu')) === 'messageRead'\r\n ? dichiaraAperta() : setShowWarningAperteDeleghe(true);\r\n }}\r\n disabled={appParamVisualizzazione}\r\n >\r\n \r\n Sposta "In Lavorazione"\r\n \r\n )}\r\n {showFeedbackNoIntermediari.show && (\r\n setShowFeedbackNoIntermediari({ show: false })}\r\n className=\"modale-di-modale-no-intermediari\"\r\n buttonLabel=\"Ho capito\"\r\n message={(\r\n
    \r\n Per utilizzare {showFeedbackNoIntermediari.invioTelematico ? 'Invio Telematico CGN' : 'l\\'invio tramite file telematico'} è necessario creare un\r\n
    \r\n intermediario nell'apposita pagina.\r\n
    \r\n
    \r\n \r\n Vai alla lista degli intermediari\r\n \r\n
    \r\n )}\r\n type=\"alarm\"\r\n />\r\n )}\r\n setConfirmFunzionalitaMancante(false)}\r\n />\r\n \r\n );\r\n};\r\n\r\nBottoniPresentazioneMassiva.defaultProps = {\r\n setShowWarningAperteDeleghe: null,\r\n};\r\n\r\nBottoniPresentazioneMassiva.propTypes = {\r\n setDatiModalePresentazioneMassiva: PropTypes.func.isRequired,\r\n setShowWarningPresentaDelega: PropTypes.func.isRequired,\r\n setShowWarningAperteDeleghe: PropTypes.func,\r\n stampaCartacea: PropTypes.func.isRequired,\r\n dichiaraAperta: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default BottoniPresentazioneMassiva;\r\n","/* eslint-disable max-len */\r\nimport Icon from 'framework-ui-components/Components/Icons/Icon';\r\nimport React from 'react';\r\n\r\nexport default Icon(\r\n \r\n \r\n \r\n ,\r\n '0 0 24 24',\r\n 'LaptopIcon',\r\n);\r\n","/* eslint-disable max-len */\r\nimport Icon from 'framework-ui-components/Components/Icons/Icon';\r\nimport React from 'react';\r\n\r\nexport default Icon(\r\n \r\n \r\n \r\n \r\n \r\n ,\r\n '0 0 24 24',\r\n 'InvioTelematicoIconGreySmall',\r\n);\r\n","import React from 'react';\r\nimport Icon from 'framework-ui-components/Components/Icons/Icon';\r\n\r\nexport default Icon(\r\n \r\n \r\n \r\n ,\r\n '0 0 20 20',\r\n 'SendBlackIcon',\r\n);\r\n","import React, { useCallback, useEffect, useRef } from 'react';\r\nimport {\r\n Heading, Radio, Form, Panel, DatePicker, Validation, Checkbox, Select, InfoTooltip, Formatter,\r\n} from 'framework-ui-components';\r\nimport PropTypes from 'prop-types';\r\nimport { Button, MiniPanel, Table } from 'framework-ui-components/Components/V2';\r\nimport TemplateGrid from '../../../components/TemplateGrid/TemplateGrid';\r\nimport CheckboxTitle from '../../../components/custom/CheckboxTitle';\r\nimport LabelOnly from '../../../components/custom/LabelOnly';\r\nimport { STEP_SCELTA_GESTIONE_TRIBUTO } from '../../../models/tributi';\r\n\r\nconst StepInformazioniCompensazione = ({\r\n sceltaGestione,\r\n tributi,\r\n isCompensabile,\r\n listaCrediti,\r\n}) => (\r\n
    \r\n Crediti compatibili\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {listaCrediti && listaCrediti.length !== 0 ? (\r\n listaCrediti.map((credito, idx) => (\r\n // eslint-disable-next-line react/no-array-index-key\r\n \r\n \r\n {credito.Codice}\r\n \r\n \r\n \r\n {credito.AnnoRiferimento}\r\n \r\n \r\n \r\n {credito.Provenienza}\r\n \r\n \r\n \r\n \r\n \r\n \r\n )))\r\n : (\r\n \r\n \r\n -\r\n \r\n \r\n \r\n -\r\n \r\n \r\n \r\n -\r\n \r\n \r\n \r\n -\r\n \r\n \r\n \r\n ) }\r\n \r\n \r\n {listaCrediti && listaCrediti.length !== 0 ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n
    \r\n);\r\nStepInformazioniCompensazione.defaultProps = {\r\n};\r\n\r\nStepInformazioniCompensazione.propTypes = {\r\n isCompensabile: PropTypes.bool.isRequired,\r\n listaCrediti: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\r\n};\r\n\r\nexport default StepInformazioniCompensazione;\r\n","/* eslint-disable no-nested-ternary */\r\nimport React from 'react';\r\nimport {\r\n Grid, InfoTooltip, Spinner, Formatter, EllipsisText,\r\n} from 'framework-ui-components';\r\nimport PropTypes from 'prop-types';\r\nimport { FeedbackPanel, Table } from 'framework-ui-components/Components/V2';\r\n\r\nconst StepRisultatoCompensazione = ({\r\n listaCompensazioni, loading, completato, showTempiLunghi, processoConErrori,\r\n}) => (\r\n \r\n \r\n \r\n {showTempiLunghi && completato && listaCompensazioni.length > 0 && (\r\n x.motivazioneFallimento)\r\n ? 'Non è stato possibile completare l\\'operazione' : 'L\\'operazione è stata eseguita parzialmente')\r\n : 'L\\'operazione si è conclusa correttamente'}\r\n type={processoConErrori\r\n ? (listaCompensazioni.every((x) => x.motivazioneFallimento) ? 'alarm' : 'warning') : 'success'}\r\n message={processoConErrori\r\n ? (listaCompensazioni.every((x) => x.motivazioneFallimento)\r\n ? (\r\n
    I tributi selezionati non hanno le caratteristiche per essere elaborati.\r\n
    Puoi vedere le motivazioni sulla lista sottostante.\r\n
    \r\n )\r\n : (\r\n
    Nella lista sottostante puoi vedere i tributi andati a buon fine e quelli che\r\n
    devono essere rivisti per poter eseguire correttamente l'operazione.\r\n
    \r\n ))\r\n : 'Puoi vedere i tributi che sono stati elaborati nella lista sottostante.'}\r\n />\r\n )}\r\n
    \r\n
    \r\n {showTempiLunghi && listaCompensazioni.length > 0 && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {listaCompensazioni && listaCompensazioni.map((compensazione, idx) => (\r\n // eslint-disable-next-line react/no-array-index-key\r\n \r\n \r\n {compensazione.codiceTributo}\r\n \r\n \r\n \r\n \r\n
    \r\n \r\n {compensazione.sezioneTributo}\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n {compensazione.periodo}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {compensazione.motivazioneFallimento\r\n ? (\r\n \r\n {compensazione.motivazioneFallimento}\r\n \r\n ) : (\r\n 1 ? `${compensazione.linkDelega}&noBack=true` : `${compensazione.linkDelega}`}\r\n target={listaCompensazioni.length > 1 ? '_blank' : '_self'}\r\n rel=\"noreferrer\"\r\n >\r\n Vai alla delega\r\n \r\n )}\r\n \r\n
    \r\n ))}\r\n
    \r\n
    \r\n
    \r\n
    \r\n {loading && (\r\n \r\n \r\n   Sto compensando ...\r\n \r\n \r\n )}\r\n
    \r\n )}\r\n {(!showTempiLunghi || listaCompensazioni.length === 0) && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n   Sto compensando ...\r\n \r\n \r\n \r\n \r\n  \r\n \r\n \r\n
    \r\n )}\r\n {/* {showTempiLunghi && !completato && (\r\n \r\n  \r\n \r\n Sto creando le deleghe.\r\n \r\n  \r\n \r\n )} */}\r\n
    \r\n);\r\n\r\nStepRisultatoCompensazione.defaultProps = {\r\n completato: false,\r\n showTempiLunghi: false,\r\n processoConErrori: false,\r\n};\r\n\r\nStepRisultatoCompensazione.propTypes = {\r\n loading: PropTypes.bool.isRequired,\r\n listaCompensazioni: PropTypes.arrayOf(PropTypes.object).isRequired,\r\n completato: PropTypes.bool,\r\n showTempiLunghi: PropTypes.bool,\r\n processoConErrori: PropTypes.bool,\r\n};\r\n\r\nexport default StepRisultatoCompensazione;\r\n","/* eslint-disable no-nested-ternary */\r\nimport React from 'react';\r\nimport {\r\n Grid, InfoTooltip, Spinner, Formatter, EllipsisText,\r\n} from 'framework-ui-components';\r\nimport PropTypes from 'prop-types';\r\nimport { FeedbackPanel, Table } from 'framework-ui-components/Components/V2';\r\n\r\nconst StepRisultatoGestione = ({\r\n listaGestioniScadenza, loading, completato, showTempiLunghi, processoConErrori,\r\n}) => (\r\n \r\n \r\n \r\n {showTempiLunghi && completato && listaGestioniScadenza.length > 0 && (\r\n x.motivazioneFallimento)\r\n ? 'Non è stato possibile completare l\\'operazione' : 'L\\'operazione è stata eseguita parzialmente')\r\n : 'L\\'operazione si è conclusa correttamente'}\r\n type={processoConErrori\r\n ? (listaGestioniScadenza.every((x) => x.motivazioneFallimento) ? 'alarm' : 'warning') : 'success'}\r\n message={processoConErrori\r\n ? (listaGestioniScadenza.every((x) => x.motivazioneFallimento)\r\n ? (\r\n
    I tributi selezionati non hanno le caratteristiche per essere elaborati.\r\n
    Puoi vedere le motivazioni sulla lista sottostante.\r\n
    \r\n )\r\n : (\r\n
    Nella lista sottostante puoi vedere i tributi andati a buon fine e quelli che\r\n
    devono essere rivisti per poter eseguire correttamente l'operazione.\r\n
    \r\n ))\r\n : 'Puoi vedere i tributi che sono stati elaborati nella lista sottostante.'}\r\n />\r\n )}\r\n
    \r\n
    \r\n {showTempiLunghi && listaGestioniScadenza.length > 0 && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {listaGestioniScadenza && listaGestioniScadenza.map((tributoGestito, idx) => (\r\n // eslint-disable-next-line react/no-array-index-key\r\n \r\n \r\n {tributoGestito.codiceTributo}\r\n \r\n \r\n \r\n \r\n
    \r\n \r\n {tributoGestito.sezioneTributo}\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n {tributoGestito.periodo}\r\n \r\n \r\n \r\n {tributoGestito.dataScadenza ? : ''}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {tributoGestito.motivazioneFallimento\r\n ? (\r\n \r\n {tributoGestito.motivazioneFallimento}\r\n \r\n ) : (\r\n \r\n {tributoGestito.naturaDebitoDescrizione}\r\n \r\n )}\r\n \r\n
    \r\n ))}\r\n
    \r\n
    \r\n
    \r\n
    \r\n {loading && (\r\n \r\n \r\n   Sto gestendo i tributi in base alle scelte eseguite ...\r\n \r\n \r\n )}\r\n
    \r\n )}\r\n {(!showTempiLunghi || listaGestioniScadenza.length === 0) && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n   Sto gestendo in base alle scelte eseguite ...\r\n \r\n \r\n \r\n \r\n  \r\n \r\n \r\n
    \r\n )}\r\n {/* {showTempiLunghi && !completato && (\r\n \r\n  \r\n \r\n Gestione\r\n \r\n  \r\n \r\n )} */}\r\n
    \r\n);\r\n\r\nStepRisultatoGestione.defaultProps = {\r\n completato: false,\r\n showTempiLunghi: false,\r\n processoConErrori: false,\r\n};\r\n\r\nStepRisultatoGestione.propTypes = {\r\n loading: PropTypes.bool.isRequired,\r\n listaGestioniScadenza: PropTypes.arrayOf(PropTypes.object).isRequired,\r\n completato: PropTypes.bool,\r\n showTempiLunghi: PropTypes.bool,\r\n processoConErrori: PropTypes.bool,\r\n};\r\n\r\nexport default StepRisultatoGestione;\r\n","import React, {\r\n useState, useRef, useEffect, useCallback,\r\n} from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Form, Grid, Spinner,\r\n} from 'framework-ui-components';\r\nimport {\r\n Modal, Button, ButtonGroup, FeedbackPanel,\r\n} from 'framework-ui-components/Components/V2';\r\nimport { useSelector } from 'react-redux';\r\nimport { getSegnalazioneError } from 'framework-taskforce/models/segnalazioni';\r\nimport useSignalR from 'framework-ui-components/Components/Hooks/useSignalR';\r\nimport { isEmptyObject } from 'framework-taskforce/utils/object';\r\nimport Log, { logApiError } from 'framework-taskforce/utils/log';\r\nimport { SnackbarWrapper } from 'framework-ui-components/Components/Snackbar';\r\nimport { STEP_SCELTA_GESTIONE_TRIBUTO } from '../../../models/tributi';\r\nimport {\r\n getOttieniAzioniPossibiliScadenzaMassiva,\r\n getOttieniDebitoConNuovaScadenza,\r\n getOttieniInformazioniPerCompensazioneMassiva,\r\n getOttieniPianoRateizzazioneUnicoMassiva,\r\n postAvviaCompensazioneOrizzontaleMassiva,\r\n postAvviaCompensazioneVerticaleMassiva,\r\n postGestisciScadenzaMassiva,\r\n postRateizzaMassivamente,\r\n} from '../../../apis/debitiGestioneScadenza';\r\nimport StepInformazioniCompensazione from './StepInformazioniCompensazione';\r\nimport StepRisultatoCompensazione from './StepRisultatoCompensazione';\r\nimport { getOttieniTributo } from '../../../apis/tributi';\r\nimport GestisciScadenzaFields from '../GestisciScadenzaFields';\r\nimport StepRisultatoGestione from './StepRisultatoGestione';\r\n\r\nconst ModaleGestisciScadenzaMassivamente = ({\r\n onClose,\r\n show,\r\n idDebiti,\r\n defaultStepGestisci,\r\n annualitaSelezionata,\r\n tributi,\r\n successOperazione,\r\n setSuccessOperazione,\r\n loading,\r\n setLoading,\r\n setListaCompensazioni,\r\n listaCompensazioni,\r\n processoConErrori,\r\n setProcessoConErrori,\r\n}) => {\r\n const idContribuente = useSelector((store) => store.soggetto.idContribuente);\r\n\r\n const [segnalazioni, setSegnalazioni] = useState([]);\r\n const [informazioniPerCompensazione, setInformazioniPerCompenszione] = useState(null);\r\n const [massivaInCorso, setMassivaInCorso] = useState(false);\r\n const [sceltaGestione, setSceltaGestione] = useState(defaultStepGestisci);\r\n const [completato, setCompletato] = useState(false);\r\n const [showTempiLunghi, setShowTempiLunghi] = useState(false);\r\n const [azioniPossibili, setAzioniPossibili] = useState([]);\r\n const [formData, setFormData] = useState({ });\r\n const [pianoRateizzazione, setPianoRateizzazione] = useState(null);\r\n const [pianoRateizzazioneNonPossibile, setPianoRateizzazioneNonPossibile] = useState(false);\r\n const [loadingPianoRateizzazione, setLoadingPianoRateizzazione] = useState(false);\r\n\r\n const formRef = useRef();\r\n\r\n useEffect(() => {\r\n if (show) {\r\n setProcessoConErrori(false);\r\n if (sceltaGestione === STEP_SCELTA_GESTIONE_TRIBUTO.RISULTATO_COMPENSAZIONE) {\r\n document.querySelector('.v2-modal__content').classList.remove('secondo-step');\r\n }\r\n }\r\n }, [sceltaGestione, setProcessoConErrori, show]);\r\n\r\n useSignalR('CompensazioneMassivaTerminata', (data) => {\r\n setCompletato(true);\r\n setMassivaInCorso(false);\r\n });\r\n\r\n // const settaListaGestioneScadenza = useCallback((risposta) => {\r\n // if (Array.isArray(risposta)) {\r\n // setListaGestioniScadenza([\r\n // ...listaGestioniScadenza,\r\n // ...risposta,\r\n // ]);\r\n // } else {\r\n // setListaGestioniScadenza([\r\n // ...listaGestioniScadenza,\r\n // risposta,\r\n // ]);\r\n // }\r\n // }, [listaGestioniScadenza]);\r\n\r\n // uso ref per evitare come il codice commentato sopra che useeffect si mangi degli aggiornamenti\r\n\r\n const lista = [];\r\n const listaGestione = useRef({ lista });\r\n\r\n const settaListaGestioneScadenza = useCallback((risposta) => {\r\n const arrayRisposta = (Array.isArray(risposta) ? risposta : [risposta]);\r\n\r\n listaGestione.current.lista = [\r\n ...listaGestione.current.lista,\r\n ...arrayRisposta,\r\n ];\r\n }, []);\r\n\r\n useSignalR('ScadenzaGestitaPerTributo', (data) => {\r\n if (data.Successo && !formData.rateizza) {\r\n getOttieniDebitoConNuovaScadenza(data.IdDebito)\r\n .then((res) => {\r\n if (res.Success && res.Result) {\r\n const nuoviTributi = res.Result\r\n .map((x) => ({\r\n codiceTributo: data.CodiceTributo,\r\n sezioneTributo: x.DescrizioneSezione,\r\n periodo: x.AnnoRiferimento,\r\n dataScadenza: x.DataScadenza,\r\n importo: x.Importo,\r\n nuovoResiduo: x.ImportoResiduo,\r\n idDebito: data.IdDebito,\r\n naturaDebitoDescrizione: `${x.NaturaDebitoDescrizione} correttamente`,\r\n motivazioneFallimento: data.MotivazioneFallimento,\r\n }));\r\n\r\n settaListaGestioneScadenza(nuoviTributi);\r\n\r\n setSuccessOperazione(true);\r\n if (data.NumeroTributo === data.TotaleTributi) {\r\n setCompletato(true);\r\n setMassivaInCorso(false);\r\n }\r\n } else {\r\n SnackbarWrapper.notifyError(res.DetectedProblems);\r\n setLoading(false);\r\n }\r\n })\r\n .catch((e) => {\r\n setLoading(false);\r\n logApiError(e);\r\n });\r\n } else if (data.Successo && formData.rateizza) {\r\n getOttieniTributo(data.IdDebito)\r\n .then((res) => {\r\n if (res.Success) {\r\n setSuccessOperazione(true);\r\n settaListaGestioneScadenza({\r\n codiceTributo: data.CodiceTributo,\r\n sezioneTributo: res.Result.DescrizioneSezione,\r\n periodo: res.Result.AnnoRiferimento,\r\n dataScadenza: res.Result.DataScadenza,\r\n importo: res.Result.Importo,\r\n nuovoResiduo: res.Result.ImportoResiduo,\r\n idDebito: data.IdDebito,\r\n idDelega: data.IdDelega,\r\n motivazioneFallimento: null,\r\n naturaDebitoDescrizione: 'Rateizzato correttamente',\r\n });\r\n\r\n if (data.NumeroTributo === data.TotaleTributi) {\r\n setCompletato(true);\r\n setMassivaInCorso(false);\r\n }\r\n } else {\r\n SnackbarWrapper.notifyError(res.DetectedProblems);\r\n setLoading(false);\r\n }\r\n })\r\n .catch((e) => {\r\n setLoading(false);\r\n logApiError(e);\r\n });\r\n } else {\r\n setProcessoConErrori(true);\r\n getOttieniTributo(data.IdDebito)\r\n .then((res) => {\r\n if (res.Success) {\r\n settaListaGestioneScadenza({\r\n codiceTributo: data.CodiceTributo,\r\n sezioneTributo: res.Result.DescrizioneSezione,\r\n periodo: res.Result.AnnoRiferimento,\r\n dataScadenza: res.Result.DataScadenza,\r\n importo: res.Result.Importo,\r\n nuovoResiduo: res.Result.ImportoResiduo,\r\n idDebito: data.IdDebito,\r\n idDelega: data.IdDelega,\r\n motivazioneFallimento: data.MotivazioneFallimento,\r\n });\r\n if (data.NumeroTributo === data.TotaleTributi) {\r\n setCompletato(true);\r\n setMassivaInCorso(false);\r\n }\r\n } else {\r\n SnackbarWrapper.notifyError(res.DetectedProblems);\r\n setLoading(false);\r\n }\r\n })\r\n .catch((e) => {\r\n setLoading(false);\r\n logApiError(e);\r\n });\r\n }\r\n });\r\n\r\n const resetDati = useCallback(() => {\r\n setSegnalazioni([]);\r\n setLoading(false);\r\n setSceltaGestione(defaultStepGestisci || STEP_SCELTA_GESTIONE_TRIBUTO.COMPENSA_VERTICALMENTE);\r\n setInformazioniPerCompenszione(null);\r\n setListaCompensazioni([]);\r\n setMassivaInCorso(false);\r\n setProcessoConErrori(false);\r\n setCompletato(false);\r\n setShowTempiLunghi(false);\r\n setSuccessOperazione(false);\r\n }, [defaultStepGestisci, setListaCompensazioni, setLoading, setProcessoConErrori, setSuccessOperazione]);\r\n\r\n const presetForm = useCallback(({ FormErrors, ...datoModificato }) => {\r\n if (!formData || isEmptyObject(datoModificato)) return;\r\n const newStato = { ...formData, ...datoModificato };\r\n\r\n setFormData(newStato);\r\n }, [formData]);\r\n\r\n useEffect(() => {\r\n if (!show) {\r\n // reset data on close\r\n resetDati();\r\n }\r\n }, [resetDati, show]);\r\n\r\n useEffect(() => {\r\n if (!informazioniPerCompensazione\r\n && (sceltaGestione === STEP_SCELTA_GESTIONE_TRIBUTO.COMPENSA_VERTICALMENTE || sceltaGestione === STEP_SCELTA_GESTIONE_TRIBUTO.COMPENSA_ORIZZONTALMENTE)\r\n && show) {\r\n setLoading(true);\r\n getOttieniInformazioniPerCompensazioneMassiva(idDebiti, annualitaSelezionata)\r\n .then((res) => {\r\n if (res.Success) {\r\n setInformazioniPerCompenszione(res.Result);\r\n } else {\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n setLoading(false);\r\n }).catch((err) => {\r\n Log.error(err);\r\n setLoading(false);\r\n });\r\n }\r\n }, [annualitaSelezionata, idDebiti, informazioniPerCompensazione, sceltaGestione, show]);\r\n\r\n const eseguiCompensazioneVerticaleMassiva = () => {\r\n setMassivaInCorso(true);\r\n setSceltaGestione(STEP_SCELTA_GESTIONE_TRIBUTO.RISULTATO_COMPENSAZIONE);\r\n postAvviaCompensazioneVerticaleMassiva(idDebiti)\r\n .then((response) => {\r\n if (response.Success) {\r\n setTimeout(() => {\r\n setShowTempiLunghi(true);\r\n }, 3000);\r\n } else {\r\n // alert(JSON.stringify(response));\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n });\r\n };\r\n\r\n const eseguiCompensazioneOrizzontaleMassiva = () => {\r\n setMassivaInCorso(true);\r\n setSceltaGestione(STEP_SCELTA_GESTIONE_TRIBUTO.RISULTATO_COMPENSAZIONE);\r\n postAvviaCompensazioneOrizzontaleMassiva(idDebiti)\r\n .then((response) => {\r\n if (response.Success) {\r\n setTimeout(() => {\r\n setShowTempiLunghi(true);\r\n }, 3000);\r\n } else {\r\n // alert(JSON.stringify(response));\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n if (formData.rateizza) {\r\n setLoadingPianoRateizzazione(true);\r\n getOttieniPianoRateizzazioneUnicoMassiva(\r\n idContribuente,\r\n annualitaSelezionata,\r\n formData.proroga,\r\n formData.prorogaSenzaInteressi,\r\n formData.maggiora,\r\n formData.maggioraDl104,\r\n formData.societaDiCapitali,\r\n formData.rateizza,\r\n formData.dpcm,\r\n ).then((response) => {\r\n if (response.Success && response.Result != null) {\r\n setPianoRateizzazioneNonPossibile(false);\r\n setPianoRateizzazione(response.Result);\r\n } else {\r\n setPianoRateizzazioneNonPossibile(true);\r\n setFormData({\r\n ...formData,\r\n ...{\r\n rateizza: false,\r\n },\r\n });\r\n }\r\n setLoadingPianoRateizzazione(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n });\r\n } else {\r\n setPianoRateizzazione(null);\r\n setPianoRateizzazioneNonPossibile(false);\r\n }\r\n }, [annualitaSelezionata, azioniPossibili, formData, idContribuente]);\r\n\r\n const aggiornaAzioni = () => {\r\n getOttieniAzioniPossibiliScadenzaMassiva(\r\n idContribuente,\r\n annualitaSelezionata,\r\n formData,\r\n )\r\n .then((response) => {\r\n if (response.Success && response.Result != null) {\r\n setAzioniPossibili(response.Result);\r\n } else {\r\n // alert(JSON.stringify(response));\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n if (show && formData && sceltaGestione === STEP_SCELTA_GESTIONE_TRIBUTO.GESTISCI_SCADENZA) {\r\n aggiornaAzioni();\r\n }\r\n }, [formData, show, sceltaGestione]);\r\n\r\n const gestisciScadenza = () => {\r\n let payload = {\r\n idContribuente,\r\n idDebiti,\r\n ...formData,\r\n };\r\n if (!formData.rateizza) {\r\n postGestisciScadenzaMassiva(payload)\r\n .then((res) => {\r\n if (res.Success) {\r\n setMassivaInCorso(true);\r\n setSceltaGestione(STEP_SCELTA_GESTIONE_TRIBUTO.RISULTATO_GESTIONE);\r\n setTimeout(() => {\r\n setShowTempiLunghi(true);\r\n }, 3000);\r\n } else {\r\n setLoading(false);\r\n setSuccessOperazione(false);\r\n // setCurrentStep(STEP.RISULTATO);\r\n // setErroreOperazione(res.DetectedProblems[0] || 'Errore durante lo spostamento della scadenza');\r\n setSegnalazioni(\r\n res.DetectedProblems.map((err) => getSegnalazioneError(err)),\r\n );\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n onClose(false);\r\n setLoading(false);\r\n });\r\n } else {\r\n payload = {\r\n IdScadenzaRateizzazione: pianoRateizzazione.IdScadenzaRateizzazione,\r\n ...payload,\r\n };\r\n postRateizzaMassivamente(payload)\r\n .then((res) => {\r\n if (res.Success) {\r\n setMassivaInCorso(true);\r\n setSceltaGestione(STEP_SCELTA_GESTIONE_TRIBUTO.RISULTATO_GESTIONE);\r\n setTimeout(() => {\r\n setShowTempiLunghi(true);\r\n }, 3000);\r\n } else {\r\n setLoading(false);\r\n setSuccessOperazione(false);\r\n // setCurrentStep(STEP.RISULTATO);\r\n // setErroreOperazione(res.DetectedProblems[0] || 'Errore durante lo spostamento della scadenza');\r\n setSegnalazioni(\r\n res.DetectedProblems.map((err) => getSegnalazioneError(err)),\r\n );\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n onClose(false);\r\n setLoading(false);\r\n });\r\n }\r\n };\r\n\r\n return (\r\n onClose(completato)}\r\n className={sceltaGestione === STEP_SCELTA_GESTIONE_TRIBUTO.RISULTATO_COMPENSAZIONE\r\n || sceltaGestione === STEP_SCELTA_GESTIONE_TRIBUTO.RISULTATO_GESTIONE ? 'tributi--modale-gestisci-massivamente' : ''}\r\n initialPos={{ x: 'auto', y: window.innerHeight * 0.1 }}\r\n >\r\n \r\n {(defaultStepGestisci === STEP_SCELTA_GESTIONE_TRIBUTO.GESTISCI_SCADENZA\r\n || defaultStepGestisci === STEP_SCELTA_GESTIONE_TRIBUTO.ANTEPRIMA_SCADENZA\r\n || defaultStepGestisci === STEP_SCELTA_GESTIONE_TRIBUTO.ANTEPRIMA_RATEAZIONE) && 'Gestisci la scadenza'}\r\n {defaultStepGestisci === STEP_SCELTA_GESTIONE_TRIBUTO.COMPENSA_VERTICALMENTE && 'Compensazione verticale'}\r\n {defaultStepGestisci === STEP_SCELTA_GESTIONE_TRIBUTO.COMPENSA_ORIZZONTALMENTE && 'Compensazione orizzontale'}\r\n \r\n \r\n {loading\r\n ? (\r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n  \r\n \r\n \r\n
    \r\n )\r\n : (\r\n \r\n {segnalazioni.length > 0\r\n ? (\r\n \r\n
      \r\n {segnalazioni.map((segnalazione, idx) => (\r\n {segnalazione.msg}\r\n \r\n ))}\r\n
    \r\n
    \r\n )}\r\n type=\"alarm\"\r\n />\r\n )\r\n : (\r\n \r\n {sceltaGestione === STEP_SCELTA_GESTIONE_TRIBUTO.GESTISCI_SCADENZA && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {informazioniPerCompensazione\r\n && (sceltaGestione === STEP_SCELTA_GESTIONE_TRIBUTO.COMPENSA_VERTICALMENTE\r\n || sceltaGestione === STEP_SCELTA_GESTIONE_TRIBUTO.COMPENSA_ORIZZONTALMENTE)\r\n && (\r\n \r\n \r\n\r\n \r\n \r\n \r\n )}\r\n {sceltaGestione === STEP_SCELTA_GESTIONE_TRIBUTO.RISULTATO_COMPENSAZIONE\r\n && (\r\n \r\n )}\r\n {sceltaGestione === STEP_SCELTA_GESTIONE_TRIBUTO.RISULTATO_GESTIONE\r\n && (\r\n \r\n )}\r\n \r\n )}\r\n \r\n )}\r\n \r\n \r\n {(defaultStepGestisci === STEP_SCELTA_GESTIONE_TRIBUTO.COMPENSA_VERTICALMENTE\r\n || defaultStepGestisci === STEP_SCELTA_GESTIONE_TRIBUTO.COMPENSA_ORIZZONTALMENTE)\r\n && sceltaGestione !== STEP_SCELTA_GESTIONE_TRIBUTO.RISULTATO_COMPENSAZIONE\r\n && !loading\r\n && informazioniPerCompensazione\r\n && (\r\n \r\n onClose(false)}\r\n emphasis={Button.Emphasis.HIGH}\r\n >\r\n INDIETRO\r\n \r\n eseguiCompensazioneVerticaleMassiva()\r\n : () => eseguiCompensazioneOrizzontaleMassiva()}\r\n emphasis={Button.Emphasis.HIGH}\r\n primary\r\n loading={loading}\r\n disabled={(defaultStepGestisci === STEP_SCELTA_GESTIONE_TRIBUTO.COMPENSA_VERTICALMENTE\r\n && !informazioniPerCompensazione.IsCompensabileVerticale)\r\n || (defaultStepGestisci === STEP_SCELTA_GESTIONE_TRIBUTO.COMPENSA_ORIZZONTALMENTE\r\n && !informazioniPerCompensazione.IsCompensabileOrizzontale)}\r\n >\r\n COMPENSA\r\n \r\n \r\n )}\r\n {sceltaGestione === STEP_SCELTA_GESTIONE_TRIBUTO.GESTISCI_SCADENZA && !loading && (\r\n \r\n onClose(false)}\r\n emphasis={Button.Emphasis.HIGH}\r\n >\r\n INDIETRO\r\n \r\n \r\n APPLICA\r\n \r\n \r\n )}\r\n {(sceltaGestione === STEP_SCELTA_GESTIONE_TRIBUTO.RISULTATO_COMPENSAZIONE\r\n || sceltaGestione === STEP_SCELTA_GESTIONE_TRIBUTO.RISULTATO_GESTIONE)\r\n && completato\r\n && (\r\n \r\n onClose(successOperazione)}\r\n emphasis={Button.Emphasis.HIGH}\r\n primary\r\n >\r\n TORNA ALLA LISTA TRIBUTI\r\n \r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nModaleGestisciScadenzaMassivamente.defaultProps = {\r\n defaultStepGestisci: STEP_SCELTA_GESTIONE_TRIBUTO.SELEZIONE_GESTIONE,\r\n};\r\n\r\nModaleGestisciScadenzaMassivamente.propTypes = {\r\n onClose: PropTypes.func.isRequired,\r\n show: PropTypes.bool.isRequired,\r\n idDebiti: PropTypes.arrayOf(PropTypes.number).isRequired,\r\n defaultStepGestisci: PropTypes.number,\r\n annualitaSelezionata: PropTypes.number.isRequired,\r\n};\r\n\r\nexport default ModaleGestisciScadenzaMassivamente;\r\n","/* eslint-disable max-len */\r\nimport React from 'react';\r\nimport Icon from './Icon';\r\n\r\nexport default Icon(\r\n ,\r\n '0 0 13.5 13.5',\r\n 'PlusIcon',\r\n);\r\n","/* eslint-disable max-len */\r\nimport Icon from 'framework-ui-components/Components/Icons/Icon';\r\nimport React from 'react';\r\n\r\nexport default Icon(\r\n \r\n \r\n \r\n ,\r\n '0 0 24 24',\r\n 'GavelIcon',\r\n);\r\n","import React, {\r\n useState, useMemo, useCallback, useEffect, useImperativeHandle, useRef,\r\n} from 'react';\r\nimport { Checkbox, Spinner } from 'framework-ui-components';\r\nimport PropTypes from 'prop-types';\r\n\r\nconst TableDetail = React.forwardRef(({\r\n withSidebar,\r\n title, rowContent, detailContent, data, selectable, onSelect, noDataMessage, noRowsMessage,\r\n onBeforeRenderDetail, defaultIdx, extraContent, detailFooter, loading, setSelectedIdx, idxEvidenziato,\r\n}, ref) => {\r\n const [index, setIndex] = useState(defaultIdx);\r\n const [lastDefault, setLastDefault] = useState(defaultIdx);\r\n const selectedData = useMemo(() => (!!data && data.length > index\r\n ? data[index] : null), [data, index]);\r\n const [checkedAll, setCheckedAll] = useState(false);\r\n const [checked, setChecked] = useState([]);\r\n\r\n const columnRowRef = useRef(null);\r\n const rowRef = useRef(null);\r\n\r\n const handleScroll = (refToScroll) => {\r\n columnRowRef.current.scrollTo({\r\n top: refToScroll ? refToScroll.offsetTop - 100 : 0,\r\n left: 0,\r\n behavior: 'smooth',\r\n });\r\n };\r\n\r\n useImperativeHandle(ref, () => ({\r\n gotoIndex: (idx) => {\r\n setIndex(idx);\r\n setSelectedIdx(idx);\r\n },\r\n }));\r\n\r\n useEffect(() => {\r\n if (!onSelect) return;\r\n if (checkedAll) {\r\n onSelect(data);\r\n } else {\r\n onSelect(data.filter((item, idx) => checked.includes(idx)));\r\n }\r\n }, [checked, checkedAll, data, onSelect]);\r\n\r\n const checkAll = useCallback(() => {\r\n if (checkedAll) {\r\n setChecked([]);\r\n } else {\r\n setChecked([...Array(data.length).keys()]);\r\n }\r\n setCheckedAll(!checkedAll);\r\n }, [checkedAll, data.length]);\r\n\r\n const checkItem = useCallback((idx) => {\r\n if (checkedAll) {\r\n setCheckedAll(false);\r\n }\r\n if (checked.includes(idx)) {\r\n setChecked(checked.filter((el) => el !== idx));\r\n } else {\r\n setChecked([...checked, idx]);\r\n }\r\n }, [checked, checkedAll]);\r\n\r\n const selectRow = useCallback((idx) => {\r\n if (onBeforeRenderDetail) {\r\n onBeforeRenderDetail(data[idx]);\r\n }\r\n setIndex(idx);\r\n setSelectedIdx(idx);\r\n }, [data, onBeforeRenderDetail, setSelectedIdx]);\r\n\r\n useEffect(() => {\r\n if (lastDefault !== defaultIdx) {\r\n setLastDefault(defaultIdx);\r\n selectRow(defaultIdx);\r\n }\r\n }, [defaultIdx, lastDefault, selectRow]);\r\n\r\n useEffect(() => {\r\n if (index >= data.length) {\r\n setIndex(0);\r\n setSelectedIdx(0);\r\n }\r\n }, [data, index, setSelectedIdx]);\r\n\r\n useEffect(() => {\r\n if (index) {\r\n handleScroll(rowRef.current);\r\n }\r\n }, [data, index, ref]);\r\n\r\n return (\r\n
    \r\n
    \r\n {title && (\r\n
    \r\n
    \r\n {selectable && (\r\n
    \r\n \r\n
    \r\n )}\r\n {title}\r\n
    \r\n { extraContent && (\r\n
    \r\n { extraContent }\r\n
    \r\n )}\r\n
    \r\n )}\r\n
    \r\n {loading\r\n ? \r\n : data.map((row, idx) => (\r\n { if (index !== idx)selectRow(idx); }}\r\n className={`tableDetail--row${idx === index ? ' tableDetail--opened' : ''}`}\r\n role=\"presentation\"\r\n ref={idx === index ? rowRef : null}\r\n >\r\n {selectable && (\r\n
    \r\n checkItem(idx)}\r\n />\r\n
    \r\n )}\r\n {rowContent(row)}\r\n
    \r\n ))}\r\n {data.length === 0 && noRowsMessage && !loading && (
    {noRowsMessage}
    )}\r\n
    \r\n {detailFooter && (\r\n
    \r\n {detailFooter}\r\n
    \r\n )}\r\n
    \r\n
    \r\n {!loading && (\r\n !selectedData\r\n ? (noDataMessage && (\r\n
    {noDataMessage}
    ))\r\n : detailContent(selectedData)\r\n )}\r\n
    \r\n
    \r\n );\r\n});\r\n\r\nTableDetail.defaultProps = {\r\n selectable: false,\r\n withSidebar: false,\r\n onSelect: null,\r\n noDataMessage: null,\r\n noRowsMessage: null,\r\n onBeforeRenderDetail: null,\r\n detailFooter: null,\r\n defaultIdx: 0,\r\n idxEvidenziato: 0,\r\n extraContent: null,\r\n loading: false,\r\n setSelectedIdx: null,\r\n};\r\n\r\nTableDetail.propTypes = {\r\n title: PropTypes.string.isRequired,\r\n rowContent: PropTypes.func.isRequired,\r\n detailContent: PropTypes.func.isRequired,\r\n data: PropTypes.arrayOf(PropTypes.shape({ })).isRequired,\r\n selectable: PropTypes.bool,\r\n withSidebar: PropTypes.bool,\r\n onSelect: PropTypes.func,\r\n noDataMessage: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\r\n noRowsMessage: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\r\n onBeforeRenderDetail: PropTypes.func,\r\n detailFooter: PropTypes.node,\r\n /* detailActions: PropTypes.arrayOf(PropTypes.shape({\r\n completeElement: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\r\n onClick: PropTypes.func,\r\n label: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\r\n })), */\r\n defaultIdx: PropTypes.number,\r\n idxEvidenziato: PropTypes.number,\r\n extraContent: PropTypes.node,\r\n loading: PropTypes.bool,\r\n setSelectedIdx: PropTypes.func,\r\n};\r\n\r\nexport default TableDetail;\r\n","/* eslint-disable camelcase */\r\n/* eslint-disable no-nested-ternary */\r\nimport React, { useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Button, ButtonGroup, DropdownButton, FeedbackModal, Table,\r\n} from 'framework-ui-components/Components/V2';\r\nimport {\r\n EllipsisText, Formatter, PopOver, Tooltip,\r\n} from 'framework-ui-components';\r\nimport { STOP_EVENT_PROPAGATION } from 'framework-ui-components/utils/const';\r\nimport { getYear } from 'framework-taskforce/utils/date';\r\nimport MoreVertIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/MoreVertIcon';\r\nimport OpenInNewIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/OpenInNewIcon';\r\nimport { logApiError } from 'framework-taskforce/utils/log';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { setAppParamsAction } from 'framework-taskforce/actions/appParams';\r\nimport { getSegnalazioneError } from 'framework-taskforce/models/segnalazioni';\r\nimport V2TableExpandedCell from '../../../../components/custom/V2TableExpandedCell';\r\nimport { getCurrencyValueNoSymbol } from '../../../../utils/format';\r\nimport RestoreIcon from '../../../../components/icons/google/RestoreIcon';\r\nimport V2TableMinimizeButton from '../../../../components/custom/V2TableMinimizeButton';\r\nimport TemplateGrid from '../../../../components/TemplateGrid/TemplateGrid';\r\nimport LabelOnly from '../../../../components/custom/LabelOnly';\r\nimport EventIcon from '../../../../components/icons/google/EventIcon';\r\nimport { postEliminaSpostaScadenza } from '../../../../apis/tributiPerScadenza';\r\nimport { PROVENIENZA } from '../../../../models/tributi';\r\nimport LockIcon from '../../../../components/icons/google/LockIcon';\r\nimport LockOpenIcon from '../../../../components/icons/google/LockOpenIcon';\r\nimport RitornaElementoPerDettaglioDebitoColonnaEspansa from '../listaTributi/tabella/expanded/RitornaElementoPerDettaglioDebitoColonnaEspansa';\r\n\r\nconst RigaTributiPerScadenzaExpanded = ({\r\n rowData: {\r\n Id,\r\n DescrizioneTributo,\r\n DescrizioneSezione,\r\n Importo,\r\n ImportoResiduo,\r\n DataScadenza,\r\n CodiceTributo,\r\n PeriodoRiferimento,\r\n IsPadre,\r\n DescrizioneRata,\r\n IdSezione,\r\n ProvenienzaNew,\r\n ProvenienzaOld,\r\n NaturaDebito,\r\n NaturaDebitoDescrizione,\r\n Provenienza_OLD,\r\n ChiusuraForzata,\r\n IsOriginale,\r\n },\r\n additionalRowData: {\r\n aperturaModaleSpostaScadenza,\r\n resetListaScadenze,\r\n },\r\n listaRateizzazione,\r\n listaProrogatiMaggiorati,\r\n utilizzi,\r\n apriUtilizzo,\r\n ravvedimenti,\r\n scadenzeSpostate,\r\n cercaNelleScadenze,\r\n eseguiChiusuraForzata,\r\n annullaChiusuraForzata,\r\n dettaglio,\r\n}) => {\r\n const dispatch = useDispatch();\r\n const idContribuente = useSelector((store) => store.soggetto.idContribuente);\r\n const appParamVisualizzazione = useSelector((store) => !!store.appParams.visualizzazione);\r\n const [segnalazioni, setSegnalazioni] = useState([]);\r\n\r\n const apriEliminaSpostaScadenza = () => {\r\n postEliminaSpostaScadenza({ IdDebito: Id, idContribuente })\r\n .then((response) => {\r\n if (response.Success) {\r\n resetListaScadenze();\r\n } else {\r\n setSegnalazioni(response.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n });\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n )}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n {DescrizioneSezione}\r\n \r\n
    \r\n )}\r\n contentB={dettaglio && (\r\n \r\n )}\r\n />\r\n \r\n \r\n \r\n \r\n )}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n {!ProvenienzaNew && (NaturaDebito === null || NaturaDebito === 0) && ProvenienzaOld}\r\n {(NaturaDebito !== null && NaturaDebito !== 0) && ProvenienzaOld}\r\n {ProvenienzaNew && (NaturaDebito === null || NaturaDebito === 0) && ProvenienzaNew}\r\n \r\n
    \r\n {ProvenienzaNew && NaturaDebito !== null && NaturaDebito !== 0 && {ProvenienzaNew}}\r\n \r\n )}\r\n contentB={(\r\n \r\n {ravvedimenti && ravvedimenti.length !== 0 ? (\r\n
    \r\n
    Ravvedimento
    \r\n {ravvedimenti.map((ravvedimento, idx) => (\r\n // eslint-disable-next-line react/no-array-index-key\r\n
    \r\n
    \r\n al\r\n {\r\n dispatch(setAppParamsAction({\r\n annoSelezionato: new Date(ravvedimento.DataRavvedimento).getFullYear(),\r\n }));\r\n cercaNelleScadenze(ravvedimento.DataRavvedimento);\r\n }}\r\n role=\"link\"\r\n tabIndex=\"0\"\r\n onKeyPress={() => {}}\r\n >\r\n \r\n \r\n \r\n
    \r\n importo\r\n €\r\n residuo\r\n €\r\n
    \r\n
    \r\n ))}\r\n
    \r\n )\r\n : (
    )}\r\n {scadenzeSpostate && scadenzeSpostate.length !== 0 ? (\r\n
    \r\n
    Scadenza spostata
    \r\n {scadenzeSpostate.map((scadenza, idx) => (\r\n // eslint-disable-next-line react/no-array-index-key\r\n
    \r\n
    \r\n al\r\n {\r\n dispatch(setAppParamsAction({\r\n annoSelezionato: new Date(scadenza.DataScadenza).getFullYear(),\r\n }));\r\n cercaNelleScadenze(scadenza.DataScadenza);\r\n }}\r\n role=\"link\"\r\n tabIndex=\"0\"\r\n onKeyPress={() => {}}\r\n >\r\n \r\n \r\n \r\n
    \r\n importo\r\n €\r\n residuo\r\n €\r\n
    \r\n
    \r\n ))}\r\n
    \r\n )\r\n : (
    )}\r\n {listaRateizzazione && listaRateizzazione.length !== 0 ? (\r\n listaRateizzazione.map((rata, idx) => (\r\n // eslint-disable-next-line react/no-array-index-key\r\n
    \r\n
    {rata.NumeroRata}° rata
    \r\n
    \r\n il\r\n {\r\n dispatch(setAppParamsAction({\r\n annoSelezionato: new Date(rata.DataScadenza).getFullYear(),\r\n }));\r\n cercaNelleScadenze(rata.DataScadenza);\r\n }}\r\n role=\"link\"\r\n tabIndex=\"0\"\r\n onKeyPress={() => {}}\r\n >\r\n \r\n \r\n \r\n
    \r\n importo\r\n €\r\n interessi\r\n €\r\n
    \r\n
    \r\n )))\r\n : (
    )}\r\n {listaProrogatiMaggiorati && listaProrogatiMaggiorati.length !== 0 ? (\r\n listaProrogatiMaggiorati.map((figlio, idx) => (\r\n // eslint-disable-next-line react/no-array-index-key\r\n
    \r\n
    Nuova scadenza
    \r\n
    \r\n il\r\n {\r\n dispatch(setAppParamsAction({\r\n annoSelezionato: new Date(figlio.DataScadenza).getFullYear(),\r\n }));\r\n cercaNelleScadenze(figlio.DataScadenza);\r\n }}\r\n role=\"link\"\r\n tabIndex=\"0\"\r\n onKeyPress={() => {}}\r\n >\r\n \r\n \r\n \r\n
    \r\n importo\r\n €\r\n residuo\r\n €\r\n
    \r\n
    \r\n )))\r\n : (
    )}\r\n \r\n )}\r\n />\r\n \r\n \r\n \r\n \r\n )}\r\n />\r\n \r\n \r\n \r\n 0 ? (\r\n \r\n
    Utilizzo
    \r\n {utilizzi.map((utilizzo, idx) => (\r\n utilizzo.IsManuale\r\n ? (\r\n // eslint-disable-next-line react/no-array-index-key\r\n Compensazione manuale\r\n )\r\n : (\r\n // eslint-disable-next-line react/no-array-index-key\r\n
    \r\n di\r\n €\r\n apriUtilizzo(utilizzo.IdDelega)}\r\n small\r\n >\r\n \r\n Apri delega\r\n \r\n
    \r\n )))}\r\n \r\n ) : (
    )\r\n ))}\r\n />\r\n \r\n \r\n \r\n ) : `${getCurrencyValueNoSymbol(ImportoResiduo, IsFiglio)}`}\r\n contentA={IsPadre\r\n ? (\r\n
    \r\n \r\n
    \r\n ) : `${getCurrencyValueNoSymbol(ImportoResiduo, !IsPadre)}`}\r\n contentB={\r\n ChiusuraForzata ? (\r\n \r\n \r\n \r\n \r\n \r\n )\r\n : (
    )\r\n }\r\n />\r\n \r\n \r\n \r\n )}\r\n bottomB\r\n rightB\r\n contentB={(\r\n \r\n \r\n {(ImportoResiduo !== 0 || ChiusuraForzata || Provenienza_OLD === PROVENIENZA.SPOSTA_SCADENZA_TRIBUTI) && !appParamVisualizzazione && (\r\n \r\n \r\n Altre azioni\r\n \r\n {Provenienza_OLD === PROVENIENZA.SPOSTA_SCADENZA_TRIBUTI && (\r\n apriEliminaSpostaScadenza()}\r\n disabled={appParamVisualizzazione}\r\n >\r\n \r\n Ripristina la scadenza originale\r\n \r\n )}\r\n {ImportoResiduo > 0 && Provenienza_OLD !== PROVENIENZA.SPOSTA_SCADENZA_TRIBUTI ? (\r\n aperturaModaleSpostaScadenza({\r\n CodiceTributo,\r\n DescrizioneSezione,\r\n DescrizioneTributo,\r\n Id,\r\n Importo,\r\n ImportoResiduo,\r\n PeriodoRiferimento,\r\n DataScadenza,\r\n IdSezione,\r\n })}\r\n disabled={appParamVisualizzazione}\r\n >\r\n \r\n Sposta la scadenza\r\n \r\n ) : ('')}\r\n {ImportoResiduo > 0 && !ChiusuraForzata && (\r\n eseguiChiusuraForzata(Id, true)}\r\n disabled={appParamVisualizzazione}\r\n >\r\n \r\n Chiusura forzata\r\n \r\n ) }\r\n {ChiusuraForzata && (\r\n annullaChiusuraForzata(Id, true)}\r\n disabled={appParamVisualizzazione}\r\n >\r\n \r\n Annulla chiusura forzata\r\n \r\n ) }\r\n \r\n \r\n )}\r\n \r\n )}\r\n />\r\n \r\n \r\n {segnalazioni && segnalazioni.length > 0 && (\r\n 0}\r\n title=\"Attenzione\"\r\n onClose={() => setSegnalazioni([])}\r\n buttonLabel=\"ok\"\r\n type=\"alarm\"\r\n message={segnalazioni[0].msg}\r\n className=\"feedback--modal__720px\"\r\n />\r\n )}\r\n \r\n );\r\n};\r\n\r\nRigaTributiPerScadenzaExpanded.propTypes = {\r\n rowData: PropTypes.shape({\r\n Id: PropTypes.number,\r\n IdContribuente: PropTypes.number,\r\n TipoPersona: PropTypes.number,\r\n DescrizioneTributo: PropTypes.string,\r\n DescrizioneSezione: PropTypes.string,\r\n NuovaGestioneIVA: PropTypes.bool,\r\n PartitaIva: PropTypes.string,\r\n CodiceFiscale: PropTypes.string,\r\n CodiceUfficio: PropTypes.string,\r\n IdStudio: PropTypes.number,\r\n Importo: PropTypes.number,\r\n ImportoResiduo: PropTypes.number,\r\n ImportoLimitato: PropTypes.number,\r\n ImportoNonLimitato: PropTypes.number,\r\n DataScadenza: PropTypes.string,\r\n IsRateizzatoOppureGestitaScadenza: PropTypes.bool,\r\n IsDebito: PropTypes.bool,\r\n CodiceTributo: PropTypes.string,\r\n ScadenzaAnnoSuccessivo: PropTypes.bool,\r\n NumeroRate: PropTypes.number,\r\n ImportoResiduoRate: PropTypes.number,\r\n DescrizioneRata: PropTypes.string,\r\n IdSezione: PropTypes.number,\r\n ProvenienzaNew: PropTypes.string,\r\n ProvenienzaOld: PropTypes.string,\r\n NaturaDebito: PropTypes.number,\r\n NaturaDebitoDescrizione: PropTypes.string,\r\n Provenienza_OLD: PropTypes.number,\r\n ChiusuraForzata: PropTypes.bool,\r\n IdScadenzaRateizzazione: PropTypes.number,\r\n Annualita: PropTypes.number,\r\n HaPartitaIVA: PropTypes.bool,\r\n Ordinario: PropTypes.bool,\r\n IdCodiceTributo: PropTypes.bool,\r\n Provenienza: PropTypes.string,\r\n ProvenienzaServizio: PropTypes.string,\r\n ProvenienzaAnno: PropTypes.string,\r\n PeriodoRiferimento: PropTypes.string,\r\n IsRavveduto: PropTypes.bool,\r\n IsProrogato: PropTypes.bool,\r\n IsMaggiorato: PropTypes.bool,\r\n IsSocietaDiCapitali180GG: PropTypes.bool,\r\n IsPadre: PropTypes.bool,\r\n IsOriginale: PropTypes.bool,\r\n IsFiglio: PropTypes.bool,\r\n }).isRequired,\r\n additionalRowData: PropTypes.shape({\r\n aperturaModaleSpostaScadenza: PropTypes.func,\r\n resetListaScadenze: PropTypes.func,\r\n }).isRequired,\r\n listaRateizzazione: PropTypes.arrayOf(PropTypes.shape({})),\r\n listaProrogatiMaggiorati: PropTypes.arrayOf(PropTypes.shape({})),\r\n utilizzi: PropTypes.arrayOf(PropTypes.shape({})),\r\n apriUtilizzo: PropTypes.func.isRequired,\r\n ravvedimenti: PropTypes.arrayOf(PropTypes.shape({})),\r\n scadenzeSpostate: PropTypes.arrayOf(PropTypes.shape({})),\r\n cercaNelleScadenze: PropTypes.func.isRequired,\r\n annullaChiusuraForzata: PropTypes.func.isRequired,\r\n eseguiChiusuraForzata: PropTypes.func.isRequired,\r\n dettaglio: PropTypes.shape({}),\r\n};\r\n\r\nRigaTributiPerScadenzaExpanded.defaultProps = {\r\n listaProrogatiMaggiorati: [],\r\n listaRateizzazione: [],\r\n utilizzi: [],\r\n ravvedimenti: [],\r\n scadenzeSpostate: [],\r\n dettaglio: null,\r\n};\r\n\r\nexport default RigaTributiPerScadenzaExpanded;\r\n","/* eslint-disable camelcase */\r\n/* eslint-disable no-nested-ternary */\r\nimport React, { useCallback, useState } from 'react';\r\nimport {\r\n EllipsisText,\r\n PopOver,\r\n} from 'framework-ui-components';\r\nimport { useSelector } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport { useHistory } from 'react-router';\r\nimport {\r\n Button, ButtonGroup, DropdownButton, FeedbackModal, Table, useTableRowContext,\r\n} from 'framework-ui-components/Components/V2';\r\nimport { getYear } from 'framework-taskforce/utils/date';\r\nimport { logApiError } from 'framework-taskforce/utils/log';\r\nimport { STOP_EVENT_PROPAGATION } from 'framework-ui-components/utils/const';\r\nimport MoreVertIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/MoreVertIcon';\r\nimport { getSegnalazioneError } from 'framework-taskforce/models/segnalazioni';\r\nimport {\r\n getUtilizziDebito, getUtilizziCredito, postEseguiChiusuraForzataDebito, postAnnullaChiusuraForzataDebito,\r\n} from '../../../../apis/tributi';\r\nimport { getCurrencyValueNoSymbol } from '../../../../utils/format';\r\nimport { delegaSoggettoUrl } from '../../../../models/urls';\r\nimport {\r\n PROVENIENZA, TIPOLOGIA_SEZIONE,\r\n} from '../../../../models/tributi';\r\nimport {\r\n getOttieniDebitiDaRateizzazione, getOttieniDebitoConNuovaScadenza,\r\n} from '../../../../apis/debitiGestioneScadenza';\r\nimport RestoreIcon from '../../../../components/icons/google/RestoreIcon';\r\nimport RigaTributiPerScadenzaExpanded from './RigaTributiPerScadenzaExpanded';\r\nimport NoButtonExpandRow from '../../../../components/custom/NoButtonExpandRow';\r\nimport { getOttieniRavvedimenti, getOttieniScadenzeSpostate, postEliminaSpostaScadenza } from '../../../../apis/tributiPerScadenza';\r\nimport EventIcon from '../../../../components/icons/google/EventIcon';\r\nimport LockIcon from '../../../../components/icons/google/LockIcon';\r\nimport LockOpenIcon from '../../../../components/icons/google/LockOpenIcon';\r\n\r\nconst RigaTributiPerScadenza = ({\r\n item: {\r\n CodiceTributo,\r\n DescrizioneRata,\r\n DescrizioneSezione,\r\n DescrizioneTributo,\r\n HaUtilizzi,\r\n Id,\r\n Importo,\r\n ImportoLimitato,\r\n ImportoNonLimitato,\r\n ImportoResiduo,\r\n ImportoResiduoNuovaScadenza,\r\n ImportoResiduoRate,\r\n IsFiglio,\r\n IsMaggiorato,\r\n IsOriginale,\r\n IsPadre,\r\n IsProrogato,\r\n IsRateizzato,\r\n IsRateizzatoOppureGestitaScadenza,\r\n IsRavveduto,\r\n IsSocietaDiCapitali180GG,\r\n NaturaDebito,\r\n NaturaDebitoDescrizione,\r\n NumeroRate,\r\n NuovaGestioneIVA,\r\n PeriodoRiferimento,\r\n Provenienza,\r\n ProvenienzaAnno,\r\n Provenienza_OLD,\r\n IsRavvedimentoGeometri,\r\n PercentualeSanzione,\r\n SanzioneModificabile,\r\n IdPercentuale,\r\n IsScadenzaSpostata,\r\n DataScadenza,\r\n IdSezione,\r\n ProvenienzaNew,\r\n ProvenienzaOld,\r\n ChiusuraForzata,\r\n },\r\n additionalRowData: {\r\n aperturaModaleSpostaScadenza,\r\n resetListaScadenze,\r\n cercaNelleScadenze,\r\n },\r\n fromScadenzario,\r\n}) => {\r\n const history = useHistory();\r\n const { expanded } = useTableRowContext();\r\n\r\n const idContribuente = useSelector((store) => store.soggetto.idContribuente);\r\n const appParamVisualizzazione = useSelector((store) => !!store.appParams.visualizzazione);\r\n const codiceUfficioOperatore = useSelector((store) => store.appParams.codiceUfficioOperatore);\r\n\r\n const [listaRateizzazione, setListaRateizzazione] = useState(null);\r\n const [listaProrogatiMaggiorati, setListaProrogatiMaggiorati] = useState(null);\r\n const [utilizzi, setUtilizzi] = useState(null);\r\n const [ravvedimenti, setRavvedimenti] = useState(null);\r\n const [scadenzeSpostate, setScadenzeSpostate] = useState(null);\r\n const [segnalazioni, setSegnalazioni] = useState([]);\r\n const [dettaglioTributo, setDettaglioTributo] = useState(null);\r\n const [apiChiamate, setApiChiamate] = useState(false);\r\n\r\n const apriUtilizzo = useCallback((idDelega) => {\r\n history.push(delegaSoggettoUrl(idDelega, appParamVisualizzazione, codiceUfficioOperatore, false, fromScadenzario));\r\n }, [history, appParamVisualizzazione, codiceUfficioOperatore, fromScadenzario]);\r\n\r\n const apriRavvedimenti = useCallback((id) => {\r\n if (!ravvedimenti && IsRavveduto) {\r\n getOttieniRavvedimenti(id)\r\n .then((response) => {\r\n if (response.Success) {\r\n setRavvedimenti(response.Result);\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n });\r\n }\r\n }, [IsRavveduto, ravvedimenti]);\r\n\r\n const apriDettaglioTributo = useCallback((id, idSezione) => {\r\n const getDettaglio = TIPOLOGIA_SEZIONE.getDettaglioTributoBySezione(idSezione, true);\r\n if (!dettaglioTributo) {\r\n getDettaglio(id)\r\n .then((response) => {\r\n if (response.Success) {\r\n setDettaglioTributo(response.Result);\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n });\r\n }\r\n }, [dettaglioTributo]);\r\n\r\n const apriScadenzeSpostate = useCallback((id) => {\r\n if (!scadenzeSpostate && IsScadenzaSpostata) {\r\n getOttieniScadenzeSpostate(id)\r\n .then((response) => {\r\n if (response.Success) {\r\n setScadenzeSpostate(response.Result);\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n });\r\n }\r\n }, [IsScadenzaSpostata, scadenzeSpostate]);\r\n\r\n const apriUtilizzi = useCallback((id, isDebito) => {\r\n const funcUtilizzi = isDebito ? getUtilizziDebito : getUtilizziCredito;\r\n if (!utilizzi) {\r\n funcUtilizzi(id)\r\n .then((response) => {\r\n if (response.Success) {\r\n setUtilizzi(response.Result);\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n });\r\n }\r\n }, [utilizzi]);\r\n\r\n const eseguiChiusuraForzata = (idDebito) => {\r\n postEseguiChiusuraForzataDebito(idDebito, idContribuente)\r\n .then((response) => {\r\n if (response.Success) {\r\n resetListaScadenze(); // refresh\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n });\r\n };\r\n\r\n const annullaChiusuraForzata = (idDebito) => {\r\n postAnnullaChiusuraForzataDebito(idDebito, idContribuente)\r\n .then((response) => {\r\n if (response.Success) {\r\n resetListaScadenze(); // refresh\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n });\r\n };\r\n\r\n const rowProps = {\r\n listaAzioni: [],\r\n rowData: {\r\n CodiceTributo,\r\n DescrizioneRata,\r\n DescrizioneSezione,\r\n DescrizioneTributo,\r\n HaUtilizzi,\r\n Id,\r\n Importo,\r\n ImportoLimitato,\r\n ImportoNonLimitato,\r\n ImportoResiduo,\r\n ImportoResiduoNuovaScadenza,\r\n ImportoResiduoRate,\r\n IsFiglio,\r\n IsMaggiorato,\r\n IsOriginale,\r\n IsPadre,\r\n IsProrogato,\r\n IsRateizzato,\r\n IsRateizzatoOppureGestitaScadenza,\r\n IsRavveduto,\r\n IsSocietaDiCapitali180GG,\r\n NaturaDebito,\r\n NaturaDebitoDescrizione,\r\n NumeroRate,\r\n NuovaGestioneIVA,\r\n PeriodoRiferimento,\r\n Provenienza,\r\n ProvenienzaAnno,\r\n Provenienza_OLD,\r\n IsRavvedimentoGeometri,\r\n PercentualeSanzione,\r\n SanzioneModificabile,\r\n IdPercentuale,\r\n IsScadenzaSpostata,\r\n DataScadenza,\r\n IdSezione,\r\n ProvenienzaNew,\r\n ProvenienzaOld,\r\n ChiusuraForzata,\r\n },\r\n additionalRowData: {\r\n aperturaModaleSpostaScadenza,\r\n resetListaScadenze,\r\n },\r\n };\r\n\r\n const recuperaRigheDettaglioRate = useCallback(\r\n (idDebito) => {\r\n if (NumeroRate > 0 && !listaRateizzazione) {\r\n getOttieniDebitiDaRateizzazione(idDebito)\r\n .then((resRisultato) => {\r\n if (resRisultato.Success) {\r\n setListaRateizzazione(resRisultato.Result);\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n });\r\n }\r\n },\r\n [NumeroRate, listaRateizzazione],\r\n );\r\n\r\n const recuperaFigliProrogatiMaggiorati = useCallback(\r\n (idDebito) => {\r\n if ((!NumeroRate || NumeroRate === 0) && (IsMaggiorato || IsProrogato) && !listaProrogatiMaggiorati) {\r\n getOttieniDebitoConNuovaScadenza(idDebito)\r\n .then((resRisultato) => {\r\n if (resRisultato.Success) {\r\n setListaProrogatiMaggiorati(resRisultato.Result); // @todo ne possono arrivare + di 1\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n });\r\n }\r\n },\r\n [IsMaggiorato, IsProrogato, NumeroRate, listaProrogatiMaggiorati],\r\n );\r\n\r\n const apriEliminaSpostaScadenza = () => {\r\n postEliminaSpostaScadenza({ IdDebito: Id, idContribuente })\r\n .then((response) => {\r\n if (response.Success) {\r\n resetListaScadenze();\r\n } else {\r\n setSegnalazioni(response.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n });\r\n };\r\n\r\n const onRenderRigaEspansa = useCallback(\r\n () => {\r\n if (!apiChiamate) {\r\n setApiChiamate(true);\r\n recuperaRigheDettaglioRate(Id);\r\n recuperaFigliProrogatiMaggiorati(Id);\r\n apriRavvedimenti(Id);\r\n apriScadenzeSpostate(Id);\r\n apriUtilizzi(Id, true);\r\n apriDettaglioTributo(Id, IdSezione);\r\n }\r\n },\r\n [\r\n Id,\r\n IdSezione,\r\n apiChiamate,\r\n apriDettaglioTributo,\r\n apriRavvedimenti,\r\n apriScadenzeSpostate,\r\n apriUtilizzi,\r\n recuperaFigliProrogatiMaggiorati,\r\n recuperaRigheDettaglioRate],\r\n );\r\n\r\n return (\r\n \r\n {}}\r\n renderExpanded={\r\n () => {\r\n onRenderRigaEspansa();\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 {DescrizioneSezione}\r\n \r\n
    \r\n )}\r\n />\r\n
    \r\n \r\n  
    )}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n  
    )}\r\n />\r\n \r\n \r\n \r\n \r\n {!ProvenienzaNew && (NaturaDebito === null || NaturaDebito === 0) && ProvenienzaOld}\r\n {(NaturaDebito !== null && NaturaDebito !== 0) && ProvenienzaOld}\r\n {ProvenienzaNew && (NaturaDebito === null || NaturaDebito === 0) && ProvenienzaNew}\r\n \r\n
    \r\n {ProvenienzaNew && NaturaDebito !== null && NaturaDebito !== 0 && {ProvenienzaNew}}\r\n \r\n )}\r\n />\r\n
    \r\n \r\n  
    )}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n  
    )}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n  
    )}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n  
    )}\r\n />\r\n \r\n \r\n \r\n {(IsRateizzatoOppureGestitaScadenza || (ImportoResiduo !== Importo) || IsRavveduto || IsScadenzaSpostata || ChiusuraForzata) && (\r\n \r\n )}\r\n {(ImportoResiduo !== 0 || ChiusuraForzata || Provenienza_OLD === PROVENIENZA.SPOSTA_SCADENZA_TRIBUTI) && (\r\n \r\n \r\n Altre azioni\r\n \r\n {Provenienza_OLD === PROVENIENZA.SPOSTA_SCADENZA_TRIBUTI && (\r\n apriEliminaSpostaScadenza()}\r\n >\r\n \r\n Ripristina la scadenza originale\r\n \r\n )}\r\n {ImportoResiduo > 0 && Provenienza_OLD !== PROVENIENZA.SPOSTA_SCADENZA_TRIBUTI ? (\r\n aperturaModaleSpostaScadenza({\r\n CodiceTributo,\r\n DescrizioneSezione,\r\n DescrizioneTributo,\r\n Id,\r\n Importo,\r\n ImportoResiduo,\r\n PeriodoRiferimento,\r\n DataScadenza,\r\n IdSezione,\r\n })}\r\n >\r\n \r\n Sposta la scadenza\r\n \r\n ) : ('')}\r\n {ImportoResiduo > 0 && !ChiusuraForzata && (\r\n eseguiChiusuraForzata(Id)}\r\n >\r\n \r\n Chiusura forzata\r\n \r\n ) }\r\n {ChiusuraForzata && (\r\n annullaChiusuraForzata(Id)}\r\n >\r\n \r\n Annulla chiusura forzata\r\n \r\n ) }\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n {/* {}}\r\n >\r\n \r\n \r\n */}\r\n \r\n \r\n  
    )}\r\n />\r\n \r\n \r\n {segnalazioni && segnalazioni.length > 0 && (\r\n 0}\r\n title=\"Attenzione\"\r\n onClose={() => setSegnalazioni([])}\r\n buttonLabel=\"ok\"\r\n type=\"alarm\"\r\n message={segnalazioni[0].msg}\r\n className=\"feedback--modal__720px\"\r\n />\r\n )}\r\n \r\n );\r\n};\r\n\r\nRigaTributiPerScadenza.defaultProps = {\r\n fromScadenzario: false,\r\n};\r\n\r\nRigaTributiPerScadenza.propTypes = {\r\n item: PropTypes.shape({\r\n Id: PropTypes.number,\r\n IdContribuente: PropTypes.number,\r\n TipoPersona: PropTypes.number,\r\n DescrizioneTributo: PropTypes.string,\r\n DescrizioneSezione: PropTypes.string,\r\n NuovaGestioneIVA: PropTypes.bool,\r\n PartitaIva: PropTypes.string,\r\n CodiceFiscale: PropTypes.string,\r\n CodiceUfficio: PropTypes.string,\r\n IdStudio: PropTypes.number,\r\n Importo: PropTypes.number,\r\n ImportoResiduo: PropTypes.number,\r\n ImportoLimitato: PropTypes.number,\r\n ImportoNonLimitato: PropTypes.number,\r\n DataScadenza: PropTypes.string,\r\n IsRateizzatoOppureGestitaScadenza: PropTypes.bool,\r\n IsDebito: PropTypes.bool,\r\n CodiceTributo: PropTypes.string,\r\n DescrizioneRata: PropTypes.string,\r\n ScadenzaAnnoSuccessivo: PropTypes.bool,\r\n HaUtilizzi: PropTypes.bool,\r\n NumeroRate: PropTypes.number,\r\n ImportoResiduoRate: PropTypes.number,\r\n ImportoResiduoNuovaScadenza: PropTypes.number,\r\n NaturaDebito: PropTypes.number,\r\n NaturaDebitoDescrizione: PropTypes.string,\r\n IdScadenzaRateizzazione: PropTypes.number,\r\n Annualita: PropTypes.number,\r\n HaPartitaIVA: PropTypes.bool,\r\n Ordinario: PropTypes.bool,\r\n ChiusuraForzata: PropTypes.bool,\r\n IdCodiceTributo: PropTypes.number,\r\n Provenienza: PropTypes.string,\r\n ProvenienzaServizio: PropTypes.string,\r\n ProvenienzaAnno: PropTypes.string,\r\n PeriodoRiferimento: PropTypes.string,\r\n IsRavveduto: PropTypes.bool,\r\n IsFiglio: PropTypes.bool,\r\n IsMaggiorato: PropTypes.bool,\r\n IsOriginale: PropTypes.bool,\r\n IsPadre: PropTypes.bool,\r\n IsProrogato: PropTypes.bool,\r\n IsRateizzato: PropTypes.bool,\r\n IsSocietaDiCapitali180GG: PropTypes.bool,\r\n Provenienza_OLD: PropTypes.number,\r\n IsRavvedimentoGeometri: PropTypes.bool,\r\n PercentualeSanzione: PropTypes.number,\r\n SanzioneModificabile: PropTypes.bool,\r\n IdPercentuale: PropTypes.number,\r\n IsScadenzaSpostata: PropTypes.bool,\r\n IdSezione: PropTypes.number,\r\n ProvenienzaNew: PropTypes.string,\r\n ProvenienzaOld: PropTypes.string,\r\n }).isRequired,\r\n additionalRowData: PropTypes.shape({\r\n aperturaModaleSpostaScadenza: PropTypes.func,\r\n resetListaScadenze: PropTypes.func,\r\n cercaNelleScadenze: PropTypes.func,\r\n }).isRequired,\r\n fromScadenzario: PropTypes.bool,\r\n};\r\n\r\nexport default RigaTributiPerScadenza;\r\n","import React, {\r\n forwardRef, useCallback, useEffect, useImperativeHandle, useMemo, useState,\r\n} from 'react';\r\nimport useDebouncedFunc from 'framework-ui-components/Components/Hooks/useDebouncedFunc';\r\nimport {\r\n ODataTable,\r\n} from 'framework-ui-components/Components/V2';\r\nimport PropTypes from 'prop-types';\r\nimport { useSelector } from 'react-redux';\r\nimport { urlOttieniTributiDaGestirePerScadenza } from '../../../../apis/tributiPerScadenza';\r\nimport RigaTributiPerScadenza from './RigaTributiPerScadenza';\r\n\r\nconst TabellaTributiPerScadenza = forwardRef(({\r\n annoSelezionato,\r\n scadenza,\r\n aperturaModaleSpostaScadenza,\r\n resetListaScadenze,\r\n cercaNelleScadenze,\r\n isPanelPresente,\r\n setIdDebitiSelezionati,\r\n fromScadenzario,\r\n}, ref) => {\r\n const idContribuente = useSelector((store) => store.soggetto.idContribuente);\r\n\r\n const [debitiSelezionati, setDebitiSelezionati] = useState([]);\r\n\r\n const url = useMemo(\r\n () => (\r\n idContribuente\r\n && scadenza\r\n && annoSelezionato && (urlOttieniTributiDaGestirePerScadenza)(\r\n idContribuente,\r\n annoSelezionato,\r\n scadenza.DataScadenza,\r\n true,\r\n // mostraChiusi,\r\n )),\r\n [annoSelezionato, idContribuente, scadenza],\r\n );\r\n\r\n const updateOptimisticRows = useCallback(() => {\r\n // dispatch({ type: ACTIONS.UPDATE_OPTIMISTIC_ROWS });\r\n }, []);\r\n\r\n const onPageLoaded = useCallback((pageItems, totalCount, currentFilter, currentPage, sortProperty, sortOrder) => {\r\n // ref.current && ref.current.resetSelection();\r\n // updateOptimisticRows();\r\n // setContatori(totalCount);\r\n }, []);\r\n\r\n useEffect(() => {\r\n // updateContatori();\r\n }, []);\r\n\r\n const refreshTabella = useDebouncedFunc(() => {\r\n ref.current && ref.current.refreshTable();\r\n // updateContatori();\r\n }, 200, []);\r\n\r\n // permetto di accedere via ref al metodo refreshTabella\r\n useImperativeHandle(ref, () => ({ refreshTabella }), [refreshTabella]);\r\n\r\n const rowRender = useCallback((item) => (\r\n \r\n ), [aperturaModaleSpostaScadenza, cercaNelleScadenze, fromScadenzario, resetListaScadenze]);\r\n\r\n const onRowsSelected = useCallback((rows) => {\r\n const rowsObjectSelected = rows.map((row) => row.object);\r\n setDebitiSelezionati(rowsObjectSelected);\r\n setIdDebitiSelezionati(rows.map((row) => row.object.Id));\r\n }, []);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n});\r\n\r\nTabellaTributiPerScadenza.propTypes = {\r\n annoSelezionato: PropTypes.number.isRequired,\r\n scadenza: PropTypes.shape({\r\n DataScadenza: PropTypes.string,\r\n }).isRequired,\r\n aperturaModaleSpostaScadenza: PropTypes.func.isRequired,\r\n resetListaScadenze: PropTypes.func.isRequired,\r\n cercaNelleScadenze: PropTypes.func.isRequired,\r\n isPanelPresente: PropTypes.bool,\r\n setIdDebitiSelezionati: PropTypes.func.isRequired,\r\n fromScadenzario: PropTypes.bool,\r\n};\r\n\r\nTabellaTributiPerScadenza.defaultProps = {\r\n isPanelPresente: false,\r\n fromScadenzario: false,\r\n};\r\n\r\nexport default TabellaTributiPerScadenza;\r\n","/* eslint-disable max-len */\r\nimport React from 'react';\r\nimport Icon from '../../Icons/Icon';\r\n\r\nexport default Icon(\r\n ,\r\n '0 0 24 24',\r\n 'ReceiptIcon',\r\n);\r\n","/* eslint-disable max-len */\r\nimport Icon from 'framework-ui-components/Components/Icons/Icon';\r\nimport React from 'react';\r\n\r\nexport default Icon(\r\n \r\n \r\n \r\n ,\r\n '0 0 24 24',\r\n 'PercentIcon',\r\n);\r\n","/* eslint-disable no-nested-ternary */\r\nimport React, {\r\n useState, useEffect, useCallback, useRef, useMemo,\r\n} from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n DatePicker, Form, Input, Select, Validation, Stepper, Formatter, InfoTooltip, Spinner,\r\n} from 'framework-ui-components';\r\nimport ReceiptIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/ReceiptIcon';\r\nimport {\r\n FeedbackPanel,\r\n MiniPanel,\r\n Modal,\r\n Panel,\r\n Table,\r\n Button,\r\n} from 'framework-ui-components/Components/V2';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { useHistory } from 'react-router';\r\nimport Log, { logApiError } from 'framework-taskforce/utils/log';\r\nimport { isEmptyObject } from 'framework-taskforce/utils/object';\r\nimport { getSegnalazioneError } from 'framework-taskforce/models/segnalazioni';\r\nimport { JustADate } from 'framework-taskforce/utils/date';\r\nimport EuroSymbolIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/EuroSymbolIcon';\r\nimport { setAppParamsAction } from 'framework-taskforce/actions/appParams';\r\nimport { format } from 'framework-ui-components/Components/Utils/numeriHelper';\r\nimport { callDownloadFile } from 'framework-taskforce/utils/file';\r\nimport useSignalR from 'framework-ui-components/Components/Hooks/useSignalR';\r\nimport TemplateGrid from '../../../../../components/TemplateGrid/TemplateGrid';\r\nimport { getOttieniDebitiDaRavvedere, getOttieniPercentualiSanzioneRavvedimento, postCreaRavvedimento } from '../../../../../apis/tributiPerScadenza';\r\nimport CheckboxTitle from '../../../../../components/custom/CheckboxTitle';\r\nimport { delegaSoggettoUrlLink, tributiContribuenteUrl } from '../../../../../models/urls';\r\nimport { TABS_MENU_CONTRIBUENTE } from '../../../../../models/f24';\r\nimport { convertUTCDateToLocalDate } from '../../../../../utils/format';\r\nimport LabelValueDetail from '../../../../../components/custom/LabelValueDetail';\r\nimport SegnalazioniViewer from '../../../../../components/custom/SegnalazioniViewer';\r\nimport { postGeneraSviluppoCalcoloRavvedimento } from '../../../../../apis/debitiGestioneScadenza';\r\nimport apiDownloadFile from '../../../../../apis/file';\r\nimport { TIPO_RAVVEDIMENTO } from '../../../../../models/tributi';\r\nimport PercentIcon from '../../../../../components/icons/google/PercentIcon';\r\n\r\nconst STEP = {\r\n IMPOSTA_LA_DATA: 1,\r\n SCEGLI_DEBITI: 2,\r\n CALCOLA_RAVVEDIMENTO: 3,\r\n};\r\n\r\nconst ModaleRavvedimento = ({\r\n onClose,\r\n show,\r\n dataScadenza,\r\n}) => {\r\n const codiceUfficioSelezionato = useSelector((store) => store.appParams.ufficioSelezionato);\r\n const idContribuente = useSelector((store) => store.soggetto.idContribuente);\r\n const codiceFiscaleSoggetto = useSelector((store) => store.soggetto.codiceFiscale);\r\n const appParamVisualizzazione = useSelector((store) => !!store.appParams.visualizzazione);\r\n\r\n const history = useHistory();\r\n const dispatch = useDispatch();\r\n\r\n const [segnalazioni, setSegnalazioni] = useState([]);\r\n const [currentStep, setCurrentStep] = useState(STEP.IMPOSTA_LA_DATA);\r\n const [dataRavvedimento, setDataRavvedimento] = useState(null);\r\n const [successoOperazione, setSuccessoOperazione] = useState(false);\r\n const [loading, setLoading] = useState(false);\r\n const [listaDebitiDaRavvedere, setListaDebitiDaRavvedere] = useState([]);\r\n const [debitiSelezionati, setDebitiSelezionati] = useState([]);\r\n const [percentualiSanzione, setPercentualiSanzione] = useState(null);\r\n const [selezionati, setSelezionati] = useState([]);\r\n const [formData, setFormData] = useState({ });\r\n const [validaForm, setValidaForm] = useState(false);\r\n const [isFormValid, setIsFormValid] = useState(true);\r\n const [avvertiInfedeleEntro90Giorni, setAvvertiInfedeleEntro90Giorni] = useState(false);\r\n\r\n const presetForm = useCallback(({ FormErrors, ...datoModificato }) => {\r\n if (!formData || isEmptyObject(datoModificato)) return;\r\n const newStato = { ...formData, ...datoModificato };\r\n\r\n setFormData(newStato);\r\n }, [formData]);\r\n\r\n const formRef = useRef();\r\n\r\n const resetDati = useCallback(() => {\r\n setSegnalazioni([]);\r\n setCurrentStep(STEP.IMPOSTA_LA_DATA);\r\n setDataRavvedimento(null);\r\n setSuccessoOperazione(false);\r\n setLoading(false);\r\n setListaDebitiDaRavvedere([]);\r\n setDebitiSelezionati([]);\r\n setSelezionati([]);\r\n setFormData({ });\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (show) {\r\n resetDati();\r\n }\r\n }, [resetDati, show]);\r\n\r\n const onRowsSelected = useCallback((rows) => {\r\n const rowsSelected = rows.filter((row) => row.object.IsRavvedibile);\r\n const rowsObjectSelected = rowsSelected.map((row) => row.object);\r\n setDebitiSelezionati(rowsObjectSelected);\r\n setSelezionati(rowsSelected);\r\n }, []);\r\n\r\n const getStepState = useCallback(\r\n (index, successo = false) => {\r\n if (index === currentStep && !successo) {\r\n return Stepper.State.ACTIVE;\r\n } if ((index < currentStep) || successo) {\r\n return Stepper.State.DONE;\r\n }\r\n return Stepper.State.TODO;\r\n },\r\n [currentStep],\r\n );\r\n\r\n const onChangeDataRavvedimento = useCallback((val) => {\r\n setDataRavvedimento(val);\r\n setSegnalazioni([]);\r\n }, [setDataRavvedimento, setSegnalazioni]);\r\n\r\n useEffect(() => {\r\n if (validaForm) {\r\n if (formRef.current) {\r\n formRef.current.valida();\r\n } else {\r\n setTimeout(() => {\r\n formRef.current.valida();\r\n }, 500);\r\n }\r\n setValidaForm(false);\r\n }\r\n }, [setValidaForm, validaForm]);\r\n\r\n const lista = [];\r\n const listaDeleghe = useRef({ lista });\r\n\r\n const settaDeleghe = useCallback((risposta) => {\r\n const arrayRisposta = (Array.isArray(risposta) ? risposta : [risposta]);\r\n\r\n listaDeleghe.current.lista = [\r\n ...listaDeleghe.current.lista,\r\n ...arrayRisposta,\r\n ];\r\n }, []);\r\n useSignalR('DelegaConUtilizziCreata', (data) => {\r\n Log.info('Delega creata');\r\n settaDeleghe({\r\n importo: data.Importo,\r\n linkDelega: delegaSoggettoUrlLink(data.IdDelega, codiceUfficioSelezionato),\r\n });\r\n });\r\n\r\n useSignalR('CreazioneDeleghePerContribuenteFallita', (data) => {\r\n settaDeleghe({\r\n ScadenzaVersamento: data.ScadenzaVersamento, importo: '-', linkDelega: null, errore: data.MotivazioneFallimento,\r\n });\r\n });\r\n\r\n const calcolaIlRavvedimento = useCallback(() => {\r\n setLoading(true);\r\n // const propertyNameFormData = Object.getOwnPropertyNames(formData);\r\n // const debitiSelezionatiDaAvviareRavvedimento = debitiSelezionati.map((row) => formData[propertyNameFormData.indexOf(`ImportoDaRavvedere[${row.Id}]`)]);\r\n\r\n const debitiSelezionatiDaAvviareRavvedimento = debitiSelezionati.map((row) => {\r\n const debito = {\r\n IdDebito: row.Id,\r\n ImportoDaRavvedere: formData[`ImportoDaRavvedere[${row.Id}]`],\r\n // se id select è diverso passo a backend IdPercentuale\r\n // PercentualeSanzioneManuale: formData[`Sanzione[${row.Id}]`]\r\n // !== formData[`SanzioneOld[${row.Id}]`] ? formData[`Sanzione[${row.Id}]`] : formData[`IdPercentuale[${row.Id}]`],\r\n };\r\n\r\n if (formData[`Sanzione[${row.Id}]`] !== formData[`SanzioneOld[${row.Id}]`]\r\n || (`${formData[`TipoDiRavvedimento[${row.Id}]`]}` !== `${TIPO_RAVVEDIMENTO.OMESSI_VERSAMENTI}`\r\n && `${formData[`TipoDiRavvedimento[${row.Id}]`]}` !== `${TIPO_RAVVEDIMENTO.DICHIARAZIONI_INFEDELI_ENTRO_90_GG}`)) {\r\n debito.PercentualeSanzioneManuale = formData[`Sanzione[${row.Id}]`];\r\n } else {\r\n debito.IdPercentualeSanzioneRavvedimento = formData[`IdPercentuale[${row.Id}]`];\r\n }\r\n\r\n return debito;\r\n });\r\n\r\n postCreaRavvedimento({\r\n idContribuente,\r\n creaInteressiSanzioniInferioriAlMinimo: formData.CreaInteressiSanzioniInferioriAlMinimo,\r\n dataRavvedimento: convertUTCDateToLocalDate(new Date(dataRavvedimento)),\r\n Ravvedimenti: debitiSelezionatiDaAvviareRavvedimento,\r\n })\r\n .then((response) => {\r\n if (response.Success) {\r\n setSuccessoOperazione(true);\r\n setSegnalazioni([]);\r\n } else {\r\n setSuccessoOperazione(false);\r\n setSegnalazioni(response.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n setLoading(false);\r\n }).catch((err) => {\r\n setSuccessoOperazione(false);\r\n setLoading(false);\r\n Log.error(err);\r\n setSegnalazioni(['Si è verificato un errore generico']);\r\n });\r\n }, [dataRavvedimento, debitiSelezionati, formData, idContribuente]);\r\n\r\n const onNext = useCallback(() => {\r\n if (currentStep === STEP.IMPOSTA_LA_DATA) {\r\n getOttieniDebitiDaRavvedere(idContribuente, dataScadenza, convertUTCDateToLocalDate(new Date(dataRavvedimento)))\r\n .then((response) => {\r\n if (response.Success) {\r\n setListaDebitiDaRavvedere(response.Result);\r\n setCurrentStep(STEP.SCEGLI_DEBITI);\r\n setSegnalazioni([]);\r\n } else {\r\n setSegnalazioni(response.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n }).catch((err) => {\r\n Log.error(err);\r\n setSegnalazioni(['Si è verificato un errore generico']);\r\n });\r\n } else if (currentStep === STEP.SCEGLI_DEBITI) {\r\n getOttieniPercentualiSanzioneRavvedimento(idContribuente, dataScadenza, convertUTCDateToLocalDate(new Date(dataRavvedimento)))\r\n .then((response) => {\r\n if (response.Success) {\r\n setPercentualiSanzione(response.Result);\r\n const newFormData = formData;\r\n\r\n debitiSelezionati.forEach((row) => {\r\n newFormData[`ImportoDaRavvedere[${row.Id}]`] = row.ImportoRavvedibile;\r\n newFormData[`Sanzione[${row.Id}]`] = row.PercentualeSanzione;\r\n newFormData[`SanzioneOld[${row.Id}]`] = row.PercentualeSanzione;\r\n newFormData[`IdPercentuale[${row.Id}]`] = row.IdPercentuale === 0 ? '' : row.IdPercentuale;\r\n newFormData[`TipoDiRavvedimento[${row.Id}]`] = `${TIPO_RAVVEDIMENTO.OMESSI_VERSAMENTI}`;\r\n });\r\n\r\n setFormData(newFormData);\r\n setValidaForm(true);\r\n\r\n setCurrentStep(STEP.CALCOLA_RAVVEDIMENTO);\r\n setSegnalazioni([]);\r\n } else {\r\n setSegnalazioni(response.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n }).catch((err) => {\r\n Log.error(err);\r\n setSegnalazioni(['Si è verificato un errore generico']);\r\n });\r\n } else if (currentStep === STEP.CALCOLA_RAVVEDIMENTO) {\r\n if (successoOperazione) {\r\n onClose(true);\r\n // } else if (!avvertiInfedeleEntro90Giorni\r\n // && debitiSelezionati.some((row) => formData[`TipoDiRavvedimento[${row.Id}]`] === TIPO_RAVVEDIMENTO.DICHIARAZIONI_INFEDELI_ENTRO_90_GG)) {\r\n // setAvvertiInfedeleEntro90Giorni(true);\r\n } else {\r\n calcolaIlRavvedimento();\r\n }\r\n }\r\n }, [calcolaIlRavvedimento, currentStep, dataRavvedimento, dataScadenza, debitiSelezionati, formData, idContribuente, onClose, successoOperazione]);\r\n\r\n const onPrev = useCallback(() => {\r\n if (avvertiInfedeleEntro90Giorni) {\r\n setAvvertiInfedeleEntro90Giorni(false);\r\n } else if (currentStep === STEP.IMPOSTA_LA_DATA) {\r\n onClose(false);\r\n setSegnalazioni([]);\r\n } else if (currentStep === STEP.SCEGLI_DEBITI) {\r\n setDebitiSelezionati([]);\r\n setSelezionati([]);\r\n setListaDebitiDaRavvedere([]);\r\n setCurrentStep(STEP.IMPOSTA_LA_DATA);\r\n setSegnalazioni([]);\r\n } else if (currentStep === STEP.CALCOLA_RAVVEDIMENTO) {\r\n setFormData({});\r\n if (successoOperazione) {\r\n dispatch(setAppParamsAction({ sidebarSelected: TABS_MENU_CONTRIBUENTE.DELEGHE }));\r\n history.push(tributiContribuenteUrl(codiceFiscaleSoggetto, appParamVisualizzazione));\r\n } else {\r\n setCurrentStep(STEP.SCEGLI_DEBITI);\r\n setSegnalazioni([]);\r\n }\r\n }\r\n }, [avvertiInfedeleEntro90Giorni, currentStep, onClose, successoOperazione, dispatch, history, codiceFiscaleSoggetto, appParamVisualizzazione]);\r\n\r\n const tabellaTributiRavvedibili = useMemo(() => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {listaDebitiDaRavvedere && listaDebitiDaRavvedere.length > 0 ? (\r\n listaDebitiDaRavvedere.map((debito, idx) => (\r\n // eslint-disable-next-line react/no-array-index-key\r\n \r\n \r\n {debito.CodiceTributo}\r\n {!debito.IsRavvedibile\r\n && (\r\n
    \r\n \r\n {debito.MotivazioneNonRavvedibilita || 'Il debito non è ravvedibile'}\r\n \r\n
    \r\n )}\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )))\r\n : (\r\n \r\n \r\n -\r\n \r\n \r\n \r\n -\r\n \r\n \r\n \r\n -\r\n \r\n \r\n \r\n ) }\r\n
    \r\n \r\n ), [onRowsSelected, selezionati, listaDebitiDaRavvedere]);\r\n\r\n const getOptionsPercentualiSanzione = useCallback((isRavvedimentoGeometri, idDebito, tipoRavvedimento) => {\r\n if (!percentualiSanzione\r\n || `${tipoRavvedimento}` === `${TIPO_RAVVEDIMENTO.PERSONALIZZATO}`\r\n || `${tipoRavvedimento}` === `${TIPO_RAVVEDIMENTO.DICHIARAZIONE_INFEDELE}`) {\r\n return;\r\n }\r\n\r\n let listaPercentualiInBaseTipoRavvedimento = {};\r\n\r\n if (`${tipoRavvedimento}` === `${TIPO_RAVVEDIMENTO.DICHIARAZIONI_INFEDELI_ENTRO_90_GG}`) {\r\n listaPercentualiInBaseTipoRavvedimento = percentualiSanzione.DichiarazioniInfedeliEntro90gg;\r\n } else if (`${tipoRavvedimento}` === `${TIPO_RAVVEDIMENTO.DICHIARAZIONI_INFEDELI_OLTRE_90_GG}`) {\r\n listaPercentualiInBaseTipoRavvedimento = percentualiSanzione.DichiarazioniInfedeliOltre90gg;\r\n } else { // (`${tipoRavvedimento}` === `${TIPO_RAVVEDIMENTO.OMESSI_VERSAMENTI}`) {\r\n listaPercentualiInBaseTipoRavvedimento = percentualiSanzione.OmessiVersamenti;\r\n }\r\n\r\n // potrebbero non esserci PercentualiSanzioneGeometri\r\n if (isRavvedimentoGeometri && listaPercentualiInBaseTipoRavvedimento.PercentualiSanzioneGeometri) {\r\n return listaPercentualiInBaseTipoRavvedimento.PercentualiSanzioneGeometri.map((percent) => (\r\n {`${format(percent.Percentuale, 3)} %`}));\r\n }\r\n\r\n const options = [];\r\n listaPercentualiInBaseTipoRavvedimento.PercentualiSanzione\r\n .map((percent) => (options.push(\r\n \r\n {`${format(percent.Percentuale, 3)} %`}\r\n ,\r\n )));\r\n\r\n return options;\r\n }, [percentualiSanzione]);\r\n\r\n const onChangeTipoRavvedimento = useCallback((tipoRavvedimento, idDebito, isRavvedimentoGeometri) => {\r\n if (tipoRavvedimento.target.value === TIPO_RAVVEDIMENTO.OMESSI_VERSAMENTI) {\r\n const newSanzioneFormData = formData;\r\n const percentualeDaSelezionare = isRavvedimentoGeometri\r\n ? percentualiSanzione.OmessiVersamenti.PercentualiSanzioneGeometri.find((x) => x.IdPercentuale === formData[`IdPercentuale[${idDebito}]`])\r\n : percentualiSanzione.OmessiVersamenti.PercentualiSanzione.find((x) => x.IdPercentuale === formData[`IdPercentuale[${idDebito}]`]);\r\n\r\n newSanzioneFormData[`TipoDiRavvedimento[${idDebito}]`] = tipoRavvedimento.target.value;\r\n newSanzioneFormData[`Sanzione[${idDebito}]`] = percentualeDaSelezionare.Percentuale;\r\n\r\n presetForm(newSanzioneFormData);\r\n } else if (tipoRavvedimento.target.value === TIPO_RAVVEDIMENTO.DICHIARAZIONI_INFEDELI_ENTRO_90_GG) {\r\n const newSanzioneFormData = formData;\r\n const percentualeDaSelezionare = isRavvedimentoGeometri\r\n ? percentualiSanzione.DichiarazioniInfedeliEntro90gg.PercentualiSanzioneGeometri.find((x) => x.IdPercentuale === formData[`IdPercentuale[${idDebito}]`])\r\n : percentualiSanzione.DichiarazioniInfedeliEntro90gg.PercentualiSanzione.find((x) => x.IdPercentuale === formData[`IdPercentuale[${idDebito}]`]);\r\n\r\n newSanzioneFormData[`TipoDiRavvedimento[${idDebito}]`] = tipoRavvedimento.target.value;\r\n newSanzioneFormData[`Sanzione[${idDebito}]`] = percentualeDaSelezionare.Percentuale;\r\n\r\n presetForm(newSanzioneFormData);\r\n } else if (tipoRavvedimento.target.value === TIPO_RAVVEDIMENTO.PERSONALIZZATO\r\n || tipoRavvedimento.target.value === TIPO_RAVVEDIMENTO.DICHIARAZIONE_INFEDELE\r\n || tipoRavvedimento.target.value === TIPO_RAVVEDIMENTO.DICHIARAZIONI_INFEDELI_OLTRE_90_GG) {\r\n const newSanzioneFormData = formData;\r\n\r\n newSanzioneFormData[`TipoDiRavvedimento[${idDebito}]`] = tipoRavvedimento.target.value;\r\n newSanzioneFormData[`Sanzione[${idDebito}]`] = null;\r\n\r\n presetForm(newSanzioneFormData);\r\n }\r\n }, [formData,\r\n percentualiSanzione,\r\n presetForm]);\r\n\r\n const tabellaTributiDaRavvedere = useCallback((formDataObject) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {debitiSelezionati && debitiSelezionati.length > 0 ? (\r\n debitiSelezionati.map((debito, idx) => (\r\n // eslint-disable-next-line react/no-array-index-key\r\n \r\n \r\n {debito.CodiceTributo}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n onChangeTipoRavvedimento(val, debito.Id, debito.IsRavvedimentoGeometri)}\r\n readOnly={debito.IsRavvedimentoGeometri}\r\n >\r\n \r\n {`${TIPO_RAVVEDIMENTO.toString(TIPO_RAVVEDIMENTO.OMESSI_VERSAMENTI)}`}\r\n \r\n {/* \r\n {`${TIPO_RAVVEDIMENTO.toString(TIPO_RAVVEDIMENTO.DICHIARAZIONI_INFEDELI_ENTRO_90_GG)}`}\r\n \r\n \r\n {`${TIPO_RAVVEDIMENTO.toString(TIPO_RAVVEDIMENTO.DICHIARAZIONI_INFEDELI_OLTRE_90_GG)}`}\r\n */}\r\n \r\n {`${TIPO_RAVVEDIMENTO.toString(TIPO_RAVVEDIMENTO.DICHIARAZIONE_INFEDELE)}`}\r\n \r\n \r\n {`${TIPO_RAVVEDIMENTO.toString(TIPO_RAVVEDIMENTO.PERSONALIZZATO)}`}\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n {percentualiSanzione && (\r\n
    \r\n { `${formDataObject[`TipoDiRavvedimento[${debito.Id}]`]}` !== `${TIPO_RAVVEDIMENTO.PERSONALIZZATO}`\r\n && `${formDataObject[`TipoDiRavvedimento[${debito.Id}]`]}` !== `${TIPO_RAVVEDIMENTO.DICHIARAZIONE_INFEDELE}`\r\n ? (\r\n \r\n {getOptionsPercentualiSanzione(debito.IsRavvedimentoGeometri, debito.Id, formDataObject[`TipoDiRavvedimento[${debito.Id}]`])}\r\n \r\n ) : (\r\n \r\n )}\r\n
    \r\n )}\r\n
    \r\n
    \r\n \r\n \r\n new Promise((resolve) => {\r\n postGeneraSviluppoCalcoloRavvedimento(\r\n {\r\n IdDebito: debito.Id,\r\n DataRavvedimento: convertUTCDateToLocalDate(new Date(dataRavvedimento)),\r\n ImportoDaRavvedere: formDataObject[`ImportoDaRavvedere[${debito.Id}]`],\r\n PercentualeSanzione: formDataObject[`Sanzione[${debito.Id}]`],\r\n },\r\n ).then((res) => {\r\n if (res.Success) {\r\n callDownloadFile(\r\n apiDownloadFile,\r\n res.Result.NomeFile,\r\n res.Result.IdFile,\r\n codiceUfficioSelezionato,\r\n res.Result.NomeFile,\r\n ).then((resDownload) => {\r\n resolve();\r\n }).catch((e) => {\r\n logApiError(e);\r\n resolve();\r\n });\r\n } else {\r\n resolve();\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n resolve();\r\n });\r\n })}\r\n >\r\n \r\n Dettaglio calcolo\r\n \r\n \r\n \r\n \r\n )))\r\n : (\r\n \r\n \r\n -\r\n \r\n \r\n \r\n -\r\n \r\n \r\n \r\n -\r\n \r\n \r\n \r\n -\r\n \r\n \r\n \r\n \r\n \r\n ) }\r\n
    \r\n \r\n ), [codiceUfficioSelezionato, dataRavvedimento, debitiSelezionati, getOptionsPercentualiSanzione, onChangeTipoRavvedimento, percentualiSanzione]);\r\n\r\n return (\r\n onClose(successoOperazione)}\r\n className={currentStep !== STEP.IMPOSTA_LA_DATA ? 'tributi-per-scadenza--ravvedimento' : ''}\r\n initialPos={{ x: 'auto', y: window.innerHeight * 0.1 }}\r\n >\r\n \r\n Ravvedi i debiti del {JustADate(dataScadenza).toString()}\r\n \r\n \r\n \r\n \r\n {segnalazioni && segnalazioni.length > 0 && (\r\n \r\n )}\r\n
    \r\n onChangeDataRavvedimento(val)}\r\n validations={[Validation.DefaultRules.required]}\r\n autoFocus={show}\r\n />\r\n
    \r\n
    \r\n )}\r\n />\r\n \r\n \r\n Se il debito è interamente o parzialmente inserito in una delega con stato "In lavorazione"\r\n
    \r\n allora il sistema ne rimuoverà l'utilizzo.\r\n
    \r\n Nel caso tu non voglia che sia rimosso rendi "Complete" le deleghe nella sezione dedicata.\r\n
    \r\n )}\r\n className=\"mb-32\"\r\n />\r\n Seleziona i debiti da ravvedere:\r\n {tabellaTributiRavvedibili}\r\n
    \r\n )}\r\n />\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {listaDeleghe.current\r\n && listaDeleghe.current.lista\r\n && listaDeleghe.current.lista.length > 0 && (\r\n \r\n {listaDeleghe.current.lista.map((delegaCreata, idx) => (\r\n // eslint-disable-next-line react/no-array-index-key\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {delegaCreata.linkDelega\r\n ? (\r\n 1 ? `${delegaCreata.linkDelega}&noBack=true` : `${delegaCreata.linkDelega}`}\r\n target={listaDeleghe.current.lista.length > 1 ? '_blank' : '_self'}\r\n rel=\"noreferrer\"\r\n >\r\n Vai alla delega\r\n \r\n ) : (\r\n \r\n {delegaCreata.MotivazioneFallimento || 'Errore durante la creazione'}\r\n \r\n )}\r\n \r\n \r\n ))}\r\n \r\n )}\r\n
    \r\n {(!listaDeleghe.current.lista\r\n || listaDeleghe.current.lista.length === 0)\r\n && (\r\n
    \r\n   Sto creando le deleghe ...\r\n
    \r\n )}\r\n
    \r\n
    \r\n // ) : avvertiInfedeleEntro90Giorni ? (\r\n //
    \r\n // \r\n // Per le dichiarazioni infedeli entro i 90 giorni è necessario\r\n //
    \r\n // creare manualmente un tributo 8911 contenente la sanzione.\r\n //
    \r\n // )}\r\n // />\r\n //
    \r\n ) : (\r\n
    \r\n {segnalazioni && segnalazioni.length > 0 && (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n La percentuale di sanzione per gli omessi versamenti è calcolata in base al numero dei giorni. Se il tributo è legato\r\n
    \r\n ad una dichiarazione fiscale verifica la corretta sanzione da applicare sulla base della data del ravvedimento\r\n e del termine di presentazione della dichiarazione e, se necessario, modifica manualmente la %.\r\n
    \r\n )}\r\n type=\"info\"\r\n />\r\n \r\n \r\n setIsFormValid(validity)}\r\n >\r\n {!formData && isEmptyObject(formData) ?
    : tabellaTributiDaRavvedere(formData)}\r\n
    \r\n \r\n \r\n \r\n
    \r\n )\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n {currentStep === STEP.IMPOSTA_LA_DATA ? 'ANNULLA'\r\n : currentStep === STEP.CALCOLA_RAVVEDIMENTO && successoOperazione ? 'VAI ALLA LISTA DELLE DELEGHE' : 'INDIETRO'}\r\n \r\n {currentStep === STEP.IMPOSTA_LA_DATA && (\r\n \r\n AVANTI\r\n \r\n )}\r\n {currentStep !== STEP.IMPOSTA_LA_DATA && (\r\n \r\n {currentStep === STEP.CALCOLA_RAVVEDIMENTO && successoOperazione\r\n ? 'TORNA A DEBITI PER SCADENZA'\r\n : (currentStep === STEP.CALCOLA_RAVVEDIMENTO ? /* avvertiInfedeleEntro90Giorni ? 'HO CAPITO' : */ 'RAVVEDI' : 'AVANTI')}\r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nModaleRavvedimento.defaultProps = {\r\n};\r\n\r\nModaleRavvedimento.propTypes = {\r\n onClose: PropTypes.func.isRequired,\r\n show: PropTypes.bool.isRequired,\r\n dataScadenza: PropTypes.string.isRequired,\r\n};\r\n\r\nexport default ModaleRavvedimento;\r\n","import React from 'react';\r\nimport {\r\n DatePicker, Validation, Input,\r\n} from 'framework-ui-components';\r\nimport PropTypes from 'prop-types';\r\nimport TemplateGrid from '../../../../../components/TemplateGrid/TemplateGrid';\r\n\r\nconst SpostaScadenzaFields = ({\r\n dataScadenzaVersamento,\r\n}) => (\r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n);\r\n\r\nSpostaScadenzaFields.defaultProps = {\r\n dataScadenzaVersamento: null,\r\n};\r\n\r\nSpostaScadenzaFields.propTypes = {\r\n dataScadenzaVersamento: PropTypes.string,\r\n};\r\n\r\nexport default SpostaScadenzaFields;\r\n","import React, {\r\n useState, useRef, useEffect, useCallback,\r\n} from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Badge,\r\n Form, Formatter, Grid, Spinner,\r\n} from 'framework-ui-components';\r\nimport { Modal, Button, FeedbackPanel } from 'framework-ui-components/Components/V2';\r\nimport { useSelector } from 'react-redux';\r\nimport { logApiError } from 'framework-taskforce/utils/log';\r\nimport { getSegnalazioneError } from 'framework-taskforce/models/segnalazioni';\r\nimport { isEmptyObject } from 'framework-taskforce/utils/object';\r\nimport LabelValueDetail from '../../../../../components/custom/LabelValueDetail';\r\nimport LabelOnly from '../../../../../components/custom/LabelOnly';\r\nimport { postSpostaScadenze } from '../../../../../apis/tributiPerScadenza';\r\nimport SpostaScadenzaFields from './SpostaScadenzaFields';\r\nimport { convertUTCDateToLocalDate } from '../../../../../utils/format';\r\n\r\nconst ModaleSpostaScadenza = ({\r\n onClose,\r\n show,\r\n tributo,\r\n}) => {\r\n const idContribuente = useSelector((store) => store.soggetto.idContribuente);\r\n\r\n const [loading, setLoading] = useState(false);\r\n const [formData, setFormData] = useState({ ImportoDaSpostare: tributo.ImportoResiduo });\r\n const [segnalazioni, setSegnalazioni] = useState([]);\r\n\r\n const gestisciScadenza = () => {\r\n setLoading(true);\r\n const payload = {\r\n idContribuente,\r\n Data: formData.NuovaScadenza,\r\n ScadenzeSpostate: [{ IdDebito: tributo.Id, Importo: formData.ImportoDaSpostare, sezione: tributo.IdSezione }],\r\n };\r\n\r\n postSpostaScadenze(payload)\r\n .then((res) => {\r\n if (res.Success) {\r\n onClose(true, {\r\n codice: tributo.CodiceTributo,\r\n sezione: tributo.DescrizioneSezione,\r\n importo: tributo.Importo,\r\n tipo: 'debito',\r\n dataScadenza: convertUTCDateToLocalDate(new Date(tributo.DataScadenza)),\r\n dataSpostataScadenza: convertUTCDateToLocalDate(new Date(formData.NuovaScadenza)),\r\n });\r\n } else {\r\n setSegnalazioni(\r\n res.DetectedProblems.map((err) => getSegnalazioneError(err)),\r\n );\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n onClose(false);\r\n setLoading(false);\r\n });\r\n };\r\n\r\n const resetDati = useCallback(() => {\r\n setSegnalazioni([]);\r\n setLoading(false);\r\n setFormData({ ImportoDaSpostare: tributo.ImportoResiduo });\r\n }, [tributo.ImportoResiduo]);\r\n\r\n useEffect(() => {\r\n if (show) {\r\n // reset data on close\r\n resetDati();\r\n }\r\n }, [resetDati, show]);\r\n\r\n const presetForm = useCallback(({ FormErrors, ...datoModificato }) => {\r\n if (!formData || isEmptyObject(datoModificato)) return;\r\n const newStato = { ...formData, ...datoModificato };\r\n\r\n setFormData(newStato);\r\n }, [formData]);\r\n\r\n const formRef = useRef();\r\n\r\n const elementoTributo = (\r\n \r\n Debito\r\n {tributo.CodiceTributo}\r\n del\r\n {tributo.PeriodoRiferimento}\r\n scade il\r\n \r\n importo residuo\r\n €\r\n
    \r\n )}\r\n />\r\n );\r\n\r\n return (\r\n \r\n \r\n Sposta la scadenza\r\n \r\n \r\n {loading\r\n ? (\r\n
    \r\n \r\n
    \r\n )\r\n : (\r\n \r\n {segnalazioni.length > 0\r\n ? (\r\n \r\n
      \r\n {segnalazioni.map((segnalazione, idx) => (\r\n {segnalazione.msg}\r\n \r\n ))}\r\n
    \r\n
    \r\n )}\r\n type=\"alarm\"\r\n />\r\n )\r\n : (\r\n \r\n \r\n \r\n {elementoTributo}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n )}\r\n \r\n \r\n onClose(false)}\r\n emphasis={Button.Emphasis.HIGH}\r\n >\r\n ANNULLA\r\n \r\n {segnalazioni.length === 0 ? (\r\n \r\n SPOSTA SCADENZA\r\n \r\n ) : (\r\n setSegnalazioni([])}\r\n emphasis={Button.Emphasis.HIGH}\r\n primary\r\n >\r\n RIPROVA\r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nModaleSpostaScadenza.defaultProps = {\r\n};\r\n\r\nModaleSpostaScadenza.propTypes = {\r\n onClose: PropTypes.func.isRequired,\r\n show: PropTypes.bool.isRequired,\r\n tributo: PropTypes.shape({\r\n Id: PropTypes.number,\r\n IdTributo: PropTypes.number,\r\n IdSezione: PropTypes.number,\r\n CodiceTributo: PropTypes.string,\r\n PeriodoRiferimento: PropTypes.string,\r\n DataScadenza: PropTypes.string,\r\n ImportoResiduo: PropTypes.number,\r\n DescrizioneSezione: PropTypes.string,\r\n Importo: PropTypes.number,\r\n\r\n }).isRequired,\r\n};\r\n\r\nexport default ModaleSpostaScadenza;\r\n","import React, { useCallback } from 'react';\r\nimport {\r\n Heading, Radio, Form, DatePicker, Validation, Formatter,\r\n} from 'framework-ui-components';\r\nimport PropTypes from 'prop-types';\r\nimport { Panel } from 'framework-ui-components/Components/V2';\r\nimport TemplateGrid from '../../../../../components/TemplateGrid/TemplateGrid';\r\nimport CalendarioIcon from '../../../../../components/icons/CalendarioIcon';\r\nimport SegnalazioniViewer from '../../../../../components/custom/SegnalazioniViewer';\r\n\r\nconst Step1Scadenza = ({\r\n segnalazioni,\r\n}) => (\r\n
    \r\n Verranno generate le deleghe per i debiti selezionati.\r\n
    \r\n Seleziona eventuli crediti da utilizzare in compensazione.\r\n
    \r\n )}\r\n type=\"info\"\r\n />\r\n \r\n
    \r\n);\r\n\r\nStep1Scadenza.defaultProps = {\r\n};\r\n\r\nStep1Scadenza.propTypes = {\r\n segnalazioni: PropTypes.arrayOf(PropTypes.string).isRequired,\r\n};\r\n\r\nexport default Step1Scadenza;\r\n","import React from 'react';\r\nimport {\r\n Grid, InfoTooltip, Spinner, Formatter,\r\n} from 'framework-ui-components';\r\nimport PropTypes from 'prop-types';\r\nimport { FeedbackPanel, Table } from 'framework-ui-components/Components/V2';\r\n\r\nconst Step2Elaborazione = ({\r\n listaDeleghe, loading, completato, showTempiLunghi, processoConErrori,\r\n}) => (\r\n
    \r\n \r\n \r\n \r\n {showTempiLunghi && completato && listaDeleghe.length > 0 && (\r\n 1\r\n ? (processoConErrori ? 'Creazione terminata con errori' : 'Deleghe create con successo!')\r\n : (processoConErrori ? 'Delega non creata' : 'Delega creata con successo!')}\r\n // eslint-disable-next-line no-nested-ternary\r\n type={processoConErrori ? (listaDeleghe.length > 1 ? 'warning' : 'alarm') : 'success'}\r\n message=\"\"\r\n />\r\n )}\r\n \r\n \r\n {showTempiLunghi && listaDeleghe.length > 0 && (\r\n \r\n \r\n  \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {listaDeleghe && listaDeleghe.map((delegaCreata, idx) => (\r\n // eslint-disable-next-line react/no-array-index-key\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {delegaCreata.linkDelega\r\n ? (\r\n 1 ? `${delegaCreata.linkDelega}&noBack=true` : `${delegaCreata.linkDelega}`}\r\n target={listaDeleghe.length > 1 ? '_blank' : '_self'}\r\n rel=\"noreferrer\"\r\n >\r\n Vai alla delega\r\n \r\n ) : (\r\n \r\n {delegaCreata.MotivazioneFallimento || 'Errore durante la creazione'}\r\n \r\n )}\r\n \r\n \r\n ))}\r\n \r\n
    \r\n
    \r\n  \r\n
    \r\n {loading && (\r\n \r\n  \r\n \r\n   Sto creando le deleghe ...\r\n \r\n  \r\n \r\n )}\r\n
    \r\n )}\r\n {(!showTempiLunghi || listaDeleghe.length === 0) && (\r\n \r\n \r\n  \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n  \r\n
    \r\n \r\n  \r\n \r\n   Sto creando le deleghe ...\r\n \r\n  \r\n \r\n
    \r\n )}\r\n {showTempiLunghi && !completato && (\r\n \r\n  \r\n \r\n La creazione delle deleghe sta impiegando più tempo del previsto, puoi chiudere questa\r\n schermata e continuare a lavorare.\r\n
    \r\n Riceverai una notifica quando saranno state create tutte le deleghe.\r\n
    \r\n  \r\n
    \r\n )}\r\n
    \r\n
    \r\n);\r\n\r\nStep2Elaborazione.defaultProps = {\r\n completato: false,\r\n showTempiLunghi: false,\r\n processoConErrori: false,\r\n};\r\n\r\nStep2Elaborazione.propTypes = {\r\n loading: PropTypes.bool.isRequired,\r\n listaDeleghe: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\r\n completato: PropTypes.bool,\r\n showTempiLunghi: PropTypes.bool,\r\n processoConErrori: PropTypes.bool,\r\n};\r\n\r\nexport default Step2Elaborazione;\r\n","import React, {\r\n useCallback, useEffect, useRef, useState,\r\n} from 'react';\r\nimport {\r\n Heading, Radio, Form, Panel, DatePicker, Validation, Checkbox, Select, InfoTooltip, Formatter, Spinner,\r\n} from 'framework-ui-components';\r\nimport { getSegnalazioneError } from 'framework-taskforce/models/segnalazioni';\r\nimport PropTypes from 'prop-types';\r\nimport { Button, MiniPanel, Table } from 'framework-ui-components/Components/V2';\r\nimport Log from 'framework-taskforce/utils/log';\r\nimport {\r\n getOttieniInformazioniPerCompensazioneMassiva,\r\n} from '../../../../../apis/debitiGestioneScadenza';\r\nimport LabelOnly from '../../../../../components/custom/LabelOnly';\r\nimport TemplateGrid from '../../../../../components/TemplateGrid/TemplateGrid';\r\n\r\nconst Step1Compensazione = ({\r\n idDebiti,\r\n annualitaSelezionata,\r\n setCreditiDaUtilizzare,\r\n}) => {\r\n const [segnalazioni, setSegnalazioni] = useState([]);\r\n const [loading, setLoading] = useState(false);\r\n const [informazioniPerCompensazione, setInformazioniPerCompenszione] = useState(null);\r\n const [creditiSelezionati, setCreditiSelezionati] = useState([]);\r\n\r\n useEffect(() => {\r\n if (!informazioniPerCompensazione && idDebiti && annualitaSelezionata) {\r\n getInfoCompensazione();\r\n }\r\n }, [informazioniPerCompensazione, idDebiti, annualitaSelezionata]);\r\n\r\n const getInfoCompensazione = () => {\r\n setLoading(true);\r\n getOttieniInformazioniPerCompensazioneMassiva(idDebiti, annualitaSelezionata)\r\n .then((res) => {\r\n if (res.Success) {\r\n setInformazioniPerCompenszione(res.Result);\r\n } else {\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n setLoading(false);\r\n }).catch((err) => {\r\n Log.error(err);\r\n setLoading(false);\r\n });\r\n };\r\n\r\n const onRowsSelected = useCallback((rows) => {\r\n const rowsObjectSelected = rows.map((row) => row.object);\r\n setCreditiSelezionati(rowsObjectSelected);\r\n setCreditiDaUtilizzare(rows.map((row) => row.object.IdCredito));\r\n }, []);\r\n\r\n return (\r\n
    \r\n Seleziona i crediti da utilizzare in compensazione\r\n \r\n {!loading && informazioniPerCompensazione && informazioniPerCompensazione.Crediti && informazioniPerCompensazione.Crediti.length !== 0 && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {!loading && informazioniPerCompensazione.NessunDebitoCompensabile && (\r\n \r\n \r\n Non è possibile selezionare crediti perchè nessuno dei debiti selezionati è compensabile\r\n \r\n \r\n )}\r\n {!loading && informazioniPerCompensazione && !informazioniPerCompensazione.NessunDebitoCompensabile\r\n && informazioniPerCompensazione.Crediti && informazioniPerCompensazione.Crediti.length !== 0 ? (\r\n informazioniPerCompensazione.Crediti.map((credito, idx) => (\r\n // eslint-disable-next-line react/no-array-index-key\r\n \r\n \r\n {credito.Codice}\r\n \r\n \r\n \r\n {credito.AnnoRiferimento}\r\n \r\n \r\n \r\n {credito.Provenienza}\r\n \r\n \r\n \r\n \r\n \r\n \r\n )))\r\n : (loading\r\n && (\r\n \r\n \r\n \r\n \r\n \r\n )\r\n )}\r\n \r\n \r\n )}\r\n {(informazioniPerCompensazione && (!informazioniPerCompensazione.Crediti || informazioniPerCompensazione.Crediti.length === 0)) && (\r\n \r\n )}\r\n Verranno generate le deleghe per i debiti/crediti selezionati.
    \r\n )}\r\n type=\"info\"\r\n />\r\n \r\n
    \r\n );\r\n};\r\nStep1Compensazione.defaultProps = {\r\n};\r\n\r\nStep1Compensazione.propTypes = {\r\n annualitaSelezionata: PropTypes.number.isRequired,\r\n idDebiti: PropTypes.arrayOf(PropTypes.number).isRequired,\r\n setCreditiDaUtilizzare: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default Step1Compensazione;\r\n","import React, {\r\n useState, useEffect, useCallback, useRef,\r\n} from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Stepper,\r\n} from 'framework-ui-components';\r\nimport {\r\n Modal, Button,\r\n} from 'framework-ui-components/Components/V2';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { useHistory } from 'react-router';\r\nimport Log, { logApiError } from 'framework-taskforce/utils/log';\r\nimport { getSegnalazioneError } from 'framework-taskforce/models/segnalazioni';\r\nimport useSignalR from 'framework-ui-components/Components/Hooks/useSignalR';\r\nimport { primaLetteraMaiuscola } from 'framework-taskforce/utils/text';\r\nimport { setAppParamsAction } from 'framework-taskforce/actions/appParams';\r\nimport Step1Scadenza from './Step1Scadenza';\r\nimport Step2Elaborazione from './Step2Elaborazione';\r\nimport { delegaSoggettoUrlLink, tributiContribuenteUrl } from '../../../../../models/urls';\r\nimport { getOttieniDelega, postCreaDeleghePerTributiSelezionati } from '../../../../../apis/deleghe';\r\nimport { convertUTCDateToLocalDate } from '../../../../../utils/format';\r\nimport { setCreazioneDelegheAction } from '../../../../../actions/creazioneDeleghe';\r\nimport { TABS_MENU_CONTRIBUENTE } from '../../../../../models/f24';\r\nimport SegnalazioniViewer from '../../../../../components/custom/SegnalazioniViewer';\r\nimport Step1Compensazione from './Step1Compensazione';\r\n\r\nconst STEP = {\r\n SELEZIONE_CREDITI: 1,\r\n ELABORAZIONE_DELEGHE: 2,\r\n};\r\n\r\nconst ModaleCreazioneDeleghePerTributi = ({\r\n onClose,\r\n show,\r\n annualitaSelezionata,\r\n idDebiti,\r\n dataScadenzaVersamento,\r\n includiFigli,\r\n}) => {\r\n const nominativoSogg = useSelector((store) => store.soggetto.nominativo);\r\n const idContribuente = useSelector((store) => store.soggetto.idContribuente);\r\n const studioSelezionato = useSelector((store) => store.appParams.studioSelezionato);\r\n const ufficioSelezionato = useSelector((store) => store.appParams.ufficioSelezionato);\r\n const completato = useSelector((store) => store.creazioneDeleghe.completato);\r\n const processoConErrori = useSelector((store) => store.creazioneDeleghe.processoConErrori);\r\n const loading = useSelector((store) => store.creazioneDeleghe.loading);\r\n const codiceFiscaleSoggetto = useSelector((store) => store.soggetto.codiceFiscale);\r\n const appParamVisualizzazione = useSelector((store) => !!store.appParams.visualizzazione);\r\n\r\n const history = useHistory();\r\n const dispatch = useDispatch();\r\n\r\n const [currentStep, setCurrentStep] = useState(STEP.SELEZIONE_CREDITI);\r\n const [segnalazioni, setSegnalazioni] = useState([]);\r\n const [showTempiLunghi, setShowTempiLunghi] = useState(false);\r\n const [loadingApi, setLoadingApi] = useState(false);\r\n const [idCreditiDaUtilizzare, setIdCreditiDaUtilizzare] = useState([]);\r\n\r\n const getStepState = useCallback(\r\n (index) => {\r\n if (index === currentStep) {\r\n return Stepper.State.ACTIVE;\r\n } if (index < currentStep) {\r\n return Stepper.State.DONE;\r\n }\r\n return Stepper.State.TODO;\r\n },\r\n [currentStep],\r\n );\r\n\r\n const creaDeleghe = useCallback(() => {\r\n setLoadingApi(true);\r\n // setCurrentStep(STEP.ELABORAZIONE_DELEGHE);\r\n const oggettoCreazione = {\r\n Annualita: annualitaSelezionata,\r\n IdContribuente: idContribuente,\r\n IdDebiti: idDebiti,\r\n IdCrediti: idCreditiDaUtilizzare && idCreditiDaUtilizzare.length > 0 ? idCreditiDaUtilizzare : null,\r\n IncludiFigli: includiFigli,\r\n };\r\n postCreaDeleghePerTributiSelezionati(oggettoCreazione)\r\n .then((res) => {\r\n if (res.Success) {\r\n setSegnalazioni([]);\r\n dispatch(setCreazioneDelegheAction({\r\n completato: false,\r\n processoConErrori: true,\r\n loading: true,\r\n }));\r\n setCurrentStep(STEP.ELABORAZIONE_DELEGHE);\r\n setTimeout(() => {\r\n setShowTempiLunghi(true);\r\n }, 3000);\r\n } else {\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n dispatch(setCreazioneDelegheAction({\r\n completato: true,\r\n processoConErrori: true,\r\n loading: false,\r\n }));\r\n }\r\n setLoadingApi(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n onClose(false);\r\n dispatch(setCreazioneDelegheAction({\r\n completato: true,\r\n processoConErrori: true,\r\n loading: false,\r\n }));\r\n setLoadingApi(false);\r\n });\r\n }, [includiFigli, idCreditiDaUtilizzare, annualitaSelezionata, dispatch, idContribuente, idDebiti, onClose]);\r\n\r\n useEffect(() => {\r\n if (show) {\r\n setLoadingApi(false);\r\n if (currentStep === STEP.ELABORAZIONE_DELEGHE) {\r\n document.querySelector('.v2-modal__content').classList.remove('secondo-step');\r\n document.querySelector('.v2-modal__content').classList.toggle('secondo-step');\r\n document.querySelector('.v2-modal--body--scrollable').classList.remove('secondo-step');\r\n document.querySelector('.v2-modal--body--scrollable').classList.toggle('secondo-step');\r\n } else {\r\n document.querySelector('.v2-modal__content').classList.remove('secondo-step');\r\n }\r\n }\r\n }, [currentStep, show]);\r\n\r\n const lista = [];\r\n const listaDeleghe = useRef({ lista });\r\n\r\n const settaDeleghe = useCallback((risposta) => {\r\n const arrayRisposta = (Array.isArray(risposta) ? risposta : [risposta]);\r\n\r\n listaDeleghe.current.lista = [\r\n ...listaDeleghe.current.lista,\r\n ...arrayRisposta,\r\n ];\r\n }, []);\r\n\r\n useSignalR('DelegaConUtilizziCreata', (data) => {\r\n Log.info('Delega creata');\r\n getOttieniDelega(data.IdDelega)\r\n .then((res) => {\r\n if (res.Success) {\r\n const nuovaDelega = {\r\n dataScadenzaVersamento: res.Result.Delega.ScadenzaVersamento,\r\n importo: data.Importo,\r\n linkDelega: delegaSoggettoUrlLink(data.IdDelega, ufficioSelezionato),\r\n };\r\n\r\n settaDeleghe(nuovaDelega);\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n });\r\n });\r\n\r\n useSignalR('CreazioneDeleghePerContribuenteFallita', (data) => {\r\n settaDeleghe({\r\n dataScadenzaVersamento: data.DataScadenzaVersamento, importo: '-', linkDelega: null, errore: data.MotivazioneFallimento,\r\n });\r\n });\r\n\r\n const resetDati = useCallback(() => {\r\n setSegnalazioni([]);\r\n\r\n setCurrentStep(STEP.SELEZIONE_CREDITI);\r\n dispatch(setCreazioneDelegheAction({\r\n completato: false,\r\n processoConErrori: false,\r\n loading: false,\r\n }));\r\n setShowTempiLunghi(false);\r\n }, [dispatch]);\r\n\r\n useEffect(() => {\r\n if (!show) {\r\n // reset data on close\r\n resetDati();\r\n }\r\n }, [resetDati, show]);\r\n\r\n useEffect(() => {\r\n if (show) {\r\n resetDati();\r\n }\r\n }, [resetDati, show]);\r\n\r\n const gotoListDeleghe = useCallback(() => {\r\n dispatch(setAppParamsAction({ sidebarSelected: TABS_MENU_CONTRIBUENTE.DELEGHE }));\r\n history.push(tributiContribuenteUrl(codiceFiscaleSoggetto, appParamVisualizzazione));\r\n onClose(completato);\r\n }, [appParamVisualizzazione, codiceFiscaleSoggetto, completato, dispatch, history, onClose]);\r\n\r\n return (\r\n onClose(completato)}\r\n className=\"tributi--modale-creazione-delega-per-tributi\"\r\n initialPos={{ x: 'auto', y: window.innerHeight * 0.1 }}\r\n >\r\n \r\n Crea nuova delega per {primaLetteraMaiuscola(nominativoSogg)}\r\n \r\n \r\n {/* {loading ?
    : ( */}\r\n
    {/* className=\"mt-34\"> */}\r\n {/* Inserisci la data di scadenza per la delega. I tributi che rispetteranno tale
    data verranno automaticamente inclusi nel modello F24. */}\r\n \r\n setIdCreditiDaUtilizzare(idCrediti)}\r\n />\r\n )}\r\n // !dataScadenzaVersamento ? (\r\n // \r\n // ) : (\r\n //
    \r\n // Verranno generate le deleghe per i debiti selezionati.\r\n //
    \r\n // Seleziona eventuli crediti da utilizzare in compensazione.\r\n //
    \r\n // )}\r\n // type=\"info\"\r\n // />\r\n // \r\n //
    \r\n // )\r\n />\r\n \r\n )}\r\n />\r\n \r\n
    \r\n {/* )} */}\r\n \r\n \r\n {currentStep !== STEP.ELABORAZIONE_DELEGHE && (\r\n onClose(false)}\r\n tabindex=\"-1\"\r\n emphasis={Button.Emphasis.HIGH}\r\n >\r\n ANNULLA\r\n \r\n )}\r\n {currentStep !== STEP.ELABORAZIONE_DELEGHE && (\r\n \r\n CREA\r\n \r\n )}\r\n {currentStep === STEP.ELABORAZIONE_DELEGHE && ((!loading && completato && listaDeleghe.current.lista.length > 0) || (showTempiLunghi)) && (\r\n gotoListDeleghe()}\r\n emphasis={Button.Emphasis.HIGH}\r\n >\r\n VAI ALLA LISTA DELLE DELEGHE\r\n \r\n )}\r\n {currentStep === STEP.ELABORAZIONE_DELEGHE && ((!loading && completato && listaDeleghe.current.lista.length > 0) || (showTempiLunghi)) && (\r\n onClose(true)}\r\n emphasis={Button.Emphasis.HIGH}\r\n primary\r\n >\r\n TORNA ALLA LISTA DEI TRIBUTI\r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nModaleCreazioneDeleghePerTributi.propTypes = {\r\n onClose: PropTypes.func.isRequired,\r\n show: PropTypes.bool.isRequired,\r\n annualitaSelezionata: PropTypes.number.isRequired,\r\n idDebiti: PropTypes.arrayOf(PropTypes.number).isRequired,\r\n dataScadenzaVersamento: PropTypes.string.isRequired,\r\n includiFigli: PropTypes.bool.isRequired,\r\n};\r\n\r\nexport default ModaleCreazioneDeleghePerTributi;\r\n","import React, { useCallback, useState } from 'react';\r\nimport {\r\n Badge,\r\n} from 'framework-ui-components';\r\nimport PropTypes from 'prop-types';\r\nimport { getMonthDesc, JustADate } from 'framework-taskforce/utils/date';\r\nimport Formatter from 'framework-ui-components/Components/Formatter';\r\n\r\nconst ListaScadenze = ({\r\n scadenza,\r\n}) => (\r\n
    \r\n
    \r\n
    \r\n {JustADate(scadenza.DataScadenza).getDate().getDate()}\r\n  \r\n {getMonthDesc(JustADate(scadenza.DataScadenza).getDate().getMonth() + 1)}\r\n
    \r\n
    \r\n
    Da inserire in delega:
    \r\n
    \r\n
    di
    \r\n {scadenza.NumeroDelegheNonPresentate > 1 && (\r\n
    \r\n 0}\r\n >\r\n {scadenza.NumeroDelegheNonPresentate}\r\n Deleghe non presentate\r\n
    \r\n )}\r\n {scadenza.NumeroDelegheNonPresentate === 1 && (\r\n
    \r\n 0}\r\n >\r\n {scadenza.NumeroDelegheNonPresentate}\r\n Delega non presentata\r\n
    \r\n )}\r\n
    \r\n
    \r\n
    \r\n);\r\n\r\nListaScadenze.propTypes = {\r\n scadenza: PropTypes.shape({\r\n Id: PropTypes.number,\r\n NumeroDelegheNonPresentate: PropTypes.number,\r\n DataScadenza: PropTypes.string,\r\n ImportoResiduoDebiti: PropTypes.number,\r\n ImportoDebiti: PropTypes.number,\r\n }).isRequired,\r\n};\r\n\r\nexport default ListaScadenze;\r\n","/* eslint-disable no-nested-ternary */\r\nimport React, {\r\n forwardRef, useCallback, useEffect, useMemo, useRef, useState,\r\n} from 'react';\r\nimport FwPlugins, {\r\n} from 'framework-plugins';\r\nimport {\r\n Grid,\r\n} from 'framework-ui-components';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Button, DropdownButton, FeedbackPanel, Panel, ViewportProvider,\r\n} from 'framework-ui-components/Components/V2';\r\nimport Log, { logApiError } from 'framework-taskforce/utils/log';\r\nimport FileDownloadIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/FileDownloadIcon';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { getSegnalazioneError } from 'framework-taskforce/models/segnalazioni';\r\nimport { PlusIcon } from 'framework-ui-components/Components/Icons';\r\nimport useViewport from 'framework-ui-components/Components/V2/Hooks/useViewport';\r\nimport { setAppParamsAction } from 'framework-taskforce/actions/appParams';\r\nimport { callDownloadFile } from 'framework-taskforce/utils/file';\r\nimport {\r\n getOttieniScadenzeContribuente,\r\n} from '../../../../apis/tributiPerScadenza';\r\nimport TemplateGrid from '../../../../components/TemplateGrid/TemplateGrid';\r\nimport GavelIcon from '../../../../components/icons/google/GavelIcon';\r\nimport TableDetail from '../../../../components/custom/TableDetail';\r\nimport TabellaTributiPerScadenza from './TabellaTributiPerScadenza';\r\nimport ModaleRavvedimento from './modaleRavvedimento/ModaleRavvedimento';\r\nimport { createDate } from '../../../../utils/format';\r\nimport apiDownloadFile from '../../../../apis/file';\r\nimport ModaleSpostaScadenza from './modaleSpostaScadenza/ModaleSpostaScadenza';\r\nimport ModaleCreazioneDeleghePerTributi from '../listaTributi/creazioneDelegaDaTributi/ModaleCreazioneDeleghePerTributi';\r\nimport { postGeneraReportRiepilogoScadenze } from '../../../../apis/contribuente';\r\nimport ElencoAnni from '../../../../components/ElencoAnni';\r\nimport ListaScadenze from './ListaScadenze';\r\n\r\nconst TabTributiPerScadenza = forwardRef(({\r\n idContribuente,\r\n annualitaDisponibili,\r\n annoSelezionato,\r\n cambioRadioAnnoSelezionato,\r\n dataDegafaultProp,\r\n resetAnni,\r\n panelCreazioneDelega,\r\n fromScadenzario,\r\n}, ref) => {\r\n const sidebarSelected = useSelector(\r\n (store) => store.appParams.sidebarSelected,\r\n );\r\n const appParamVisualizzazione = useSelector((store) => !!store.appParams.visualizzazione);\r\n const noToolbar = useSelector((store) => store.appParams.noToolbar);\r\n const codiceUfficioSelezionato = useSelector((store) => store.appParams.ufficioSelezionato);\r\n\r\n const dispatch = useDispatch();\r\n\r\n const { height } = useViewport();\r\n const tabellaRef = useRef();\r\n\r\n const [loading, setLoading] = useState(false);\r\n const [segnalazioni, setSegnalazioni] = useState([]);\r\n const [listScadenzeTributi, setListScadenzeTributi] = useState(null);\r\n const [almenoUnoDebitiScaduti, setAlmenoUnoDebitiScaduti] = useState(false);\r\n const [showModaleRavvedimento, setShowModaleRavvedimento] = useState(false);\r\n const [showModaleSpostaScadenza, setShowModaleSpostaScadenza] = useState({ show: false, tributo: {} });\r\n const [idxDiAvvenutaGestione, setIdxDiAvvenutaGestione] = useState(null);\r\n const [dataDaCercare, setDataDaCercare] = useState(null);\r\n const [successoGestione, setSuccessoGestione] = useState({\r\n successo: false, sezione: 'erario', tipo: 'debito',\r\n });\r\n const [selectedIdx, setSelectedIdx] = useState(0);\r\n const [prossimaScadenzaIdx, setProssimaScadenzaIdx] = useState(0);\r\n const [creaDelega, setCreaDelega] = useState({ show: false, dataScadenza: null, idDebiti: [] });\r\n const [showPanelCreazioneDelega, setShowPanelCreazioneDelega] = useState(false);\r\n\r\n const defaultIdx = useMemo(() => {\r\n if (listScadenzeTributi) {\r\n if (dataDaCercare) {\r\n const idxFound = listScadenzeTributi ? listScadenzeTributi.findIndex((scadenza) => scadenza.DataScadenza === dataDaCercare) : -1;\r\n return idxFound < 0 ? 0 : idxFound;\r\n }\r\n if (dataDegafaultProp) {\r\n const idxFound = listScadenzeTributi ? listScadenzeTributi.findIndex((scadenza) => scadenza.DataScadenza === dataDegafaultProp) : -1;\r\n return idxFound < 0 ? 0 : idxFound;\r\n }\r\n const idxFound = listScadenzeTributi ? listScadenzeTributi.findIndex((scadenza) => scadenza.Selezionata) : -1;\r\n return idxFound < 0 ? 0 : idxFound;\r\n } return 0;\r\n }, [dataDaCercare, dataDegafaultProp, listScadenzeTributi]);\r\n\r\n const cercaNelleScadenze = useCallback((data) => {\r\n setDataDaCercare(data);\r\n setListScadenzeTributi(null);\r\n }, []);\r\n\r\n const resetListaScadenze = useCallback(() => {\r\n setListScadenzeTributi(null);\r\n setIdxDiAvvenutaGestione(selectedIdx);\r\n resetAnni();\r\n }, [resetAnni, selectedIdx]);\r\n\r\n const chiusuraModaleRavvedimento = useCallback((successo) => {\r\n setShowModaleRavvedimento(false);\r\n if (successo) {\r\n setLoading(true);\r\n if (successo) {\r\n setListScadenzeTributi(null);\r\n setIdxDiAvvenutaGestione(selectedIdx);\r\n resetAnni();\r\n // tabellaRef.current.refreshTable();\r\n }\r\n }\r\n }, [resetAnni, selectedIdx]);\r\n\r\n const aperturaModaleSpostaScadenza = useCallback((tributo) => {\r\n setShowModaleSpostaScadenza({ show: true, tributo });\r\n }, []);\r\n\r\n const chiusuraModaleSpostaScadenza = useCallback((successo, datiPerPanel) => {\r\n setShowModaleSpostaScadenza({ show: false, tributo: {} });\r\n\r\n if (successo) {\r\n setListScadenzeTributi(null);\r\n setIdxDiAvvenutaGestione(selectedIdx);\r\n setSuccessoGestione({\r\n codice: datiPerPanel.codice,\r\n sezione: datiPerPanel.sezione,\r\n importo: datiPerPanel.importo,\r\n tipo: datiPerPanel.tipo,\r\n dataScadenza: new Date(datiPerPanel.dataScadenza),\r\n dataSpostataScadenza: new Date(datiPerPanel.dataSpostataScadenza),\r\n successo: true,\r\n });\r\n resetAnni();\r\n }\r\n }, [resetAnni, selectedIdx]);\r\n\r\n const chiusuraModaleCreazioneDelega = useCallback((successo) => {\r\n setCreaDelega({ show: false, dataScadenza: null, idDebiti: [] });\r\n setShowPanelCreazioneDelega(true);\r\n if (successo) {\r\n setLoading(true);\r\n if (successo) {\r\n setListScadenzeTributi(null);\r\n setIdxDiAvvenutaGestione(selectedIdx);\r\n resetAnni();\r\n // tabellaRef.current.refreshTable();\r\n }\r\n }\r\n }, [resetAnni, selectedIdx]);\r\n\r\n const cambioAnno = useCallback((anno) => {\r\n cambioRadioAnnoSelezionato(anno);\r\n setListScadenzeTributi(null);\r\n }, [cambioRadioAnnoSelezionato]);\r\n\r\n useEffect(() => {\r\n if (!listScadenzeTributi && idContribuente && `${sidebarSelected}` === '2' && annoSelezionato) {\r\n setLoading(true);\r\n getOttieniScadenzeContribuente(idContribuente, annoSelezionato)\r\n .then((res) => {\r\n if (res.Success && res.Result) {\r\n setAlmenoUnoDebitiScaduti(res.Result.some((x) => x.HaDebitiScaduti));\r\n setListScadenzeTributi(res.Result);\r\n setProssimaScadenzaIdx(res.Result ? res.Result.findIndex((scadenza) => scadenza.Selezionata) : -1);\r\n } else {\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n setLoading(false);\r\n }).catch((err) => {\r\n Log.error(err);\r\n setLoading(false);\r\n });\r\n }\r\n }, [annoSelezionato, annualitaDisponibili, idContribuente, listScadenzeTributi, sidebarSelected]);\r\n\r\n useEffect(() => {\r\n if (annualitaDisponibili && idContribuente && `${sidebarSelected}` !== '2') {\r\n setListScadenzeTributi(null);\r\n }\r\n }, [annualitaDisponibili, idContribuente, sidebarSelected]);\r\n\r\n useEffect(() => {\r\n if (annoSelezionato && annualitaDisponibili) {\r\n if (!annualitaDisponibili.some((x) => x.Anno === annoSelezionato)) {\r\n dispatch(setAppParamsAction({\r\n annoSelezionato: Number(annualitaDisponibili[0].Anno),\r\n }));\r\n setListScadenzeTributi(null);\r\n }\r\n }\r\n }, [annoSelezionato, annualitaDisponibili, dispatch]);\r\n\r\n // const onPageLoaded = useCallback((pageItems, totalCount, currentFilter, currentPage, sortProperty, sortOrder) => {\r\n // // tabellaRef.current && tabellaRef.current.resetSelection();\r\n // // updateOptimisticRows();\r\n // // setContatori(totalCount);\r\n // }, []);\r\n\r\n const scaricaRiepilogoScadenze = useCallback((scadenzaSelezionata = false) => {\r\n postGeneraReportRiepilogoScadenze({\r\n annualita: annoSelezionato,\r\n dataScadenza: scadenzaSelezionata ? listScadenzeTributi[selectedIdx].DataScadenza : null,\r\n mostraChiusi: true,\r\n IdContribuente: idContribuente,\r\n })\r\n .then((res) => {\r\n if (res.Success) {\r\n callDownloadFile(\r\n apiDownloadFile,\r\n res.Result.NomeFile,\r\n res.Result.IdFile,\r\n codiceUfficioSelezionato,\r\n res.Result.NomeFile,\r\n ).then((resDownload) => {\r\n\r\n }).catch((e) => {\r\n logApiError(e);\r\n });\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n }, [codiceUfficioSelezionato, idContribuente, annoSelezionato, listScadenzeTributi, selectedIdx]);\r\n\r\n const ListaScadenzeComponent = useCallback((scadenza) => (\r\n \r\n ), []);\r\n\r\n const DettaglioScadenzaComponent = useCallback((scadenza) => (\r\n \r\n \r\n \r\n \r\n \r\n {new Date(scadenza.DataScadenza).setHours(0, 0, 0, 0) < new Date().setHours(0, 0, 0, 0) && (\r\n setShowModaleRavvedimento(true)}\r\n >\r\n \r\n Ravvedi\r\n \r\n )}\r\n {scadenza.ImportoResiduoDebiti > 0 && (\r\n {\r\n if (creaDelega.idDebiti.length > 0) {\r\n setCreaDelega({ ...creaDelega, ...{ show: true, dataScadenza: new Date(scadenza.DataScadenza) } });\r\n setShowPanelCreazioneDelega(false);\r\n }\r\n }}\r\n >\r\n \r\n Crea delega con i debiti selezionati\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n { setCreaDelega({ ...creaDelega, ...{ idDebiti: idDebitiSelezionati } }); }}\r\n fromScadenzario={fromScadenzario}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n {creaDelega && creaDelega.show && (\r\n \r\n )}\r\n \r\n ), [almenoUnoDebitiScaduti,\r\n annoSelezionato,\r\n aperturaModaleSpostaScadenza,\r\n appParamVisualizzazione,\r\n cercaNelleScadenze,\r\n chiusuraModaleCreazioneDelega,\r\n chiusuraModaleRavvedimento,\r\n chiusuraModaleSpostaScadenza,\r\n creaDelega,\r\n fromScadenzario,\r\n ref,\r\n resetListaScadenze,\r\n showModaleRavvedimento,\r\n showModaleSpostaScadenza,\r\n successoGestione]);\r\n\r\n return (\r\n \r\n 741\r\n ? { display: 'inline-flex', flexDirection: 'column', maxHeight: `${noToolbar ? '85vh' : '78vh'}` }\r\n : { display: 'inline-flex', flexDirection: 'column', maxHeight: `${noToolbar ? '80vh' : '64vh'}` }\r\n }\r\n >\r\n {!loading\r\n ? (segnalazioni.length > 0 ? (\r\n \r\n
      \r\n {segnalazioni.map((segnalazione, idx) => (\r\n {segnalazione.msg}\r\n \r\n ))}\r\n
    \r\n
    \r\n )}\r\n type=\"alarm\"\r\n />\r\n ) : (\r\n \r\n \r\n 741 ? 'mt-26' : 'mt-11'}`}>\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n Scarica riepilogo\r\n \r\n scaricaRiepilogoScadenze()\r\n }\r\n >\r\n Tutte le scadenze\r\n \r\n scaricaRiepilogoScadenze(true)\r\n }\r\n >\r\n Scadenza selezionata\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n {panelCreazioneDelega && showPanelCreazioneDelega && (\r\n \r\n \r\n {panelCreazioneDelega}\r\n \r\n \r\n )}\r\n {(successoGestione.successo) && (\r\n \r\n \r\n { setSuccessoGestione({ successo: false }); }}\r\n className=\"mt-18 ml-4\"\r\n />\r\n \r\n \r\n )}\r\n {almenoUnoDebitiScaduti && (\r\n \r\n \r\n setAlmenoUnoDebitiScaduti(false)}\r\n className=\"mt-18 ml-4\"\r\n />\r\n \r\n \r\n )}\r\n
    \r\n
    741 ? 'mt-32' : 'mt-17'}`} style={{ display: 'inline-flex', overflow: 'overlay' }}>\r\n {listScadenzeTributi && (\r\n ListaScadenzeComponent(scadenza)}\r\n onBeforeRenderDetail={() => {}}\r\n detailContent={(scadenza) => DettaglioScadenzaComponent(scadenza)}\r\n data={listScadenzeTributi}\r\n // noDataMessage={Nessun immobile associato al soggetto con i filtri correnti}\r\n noRowsMessage={(\r\n
    \r\n \r\n Nessun scadenza trovata.\r\n
    \r\n Cambia anno o vai nella sezione tributi per crearne di nuovi.\r\n
    \r\n
    \r\n )}\r\n detailFooter={(
    )}\r\n extraContent={(
    )}\r\n />\r\n )}\r\n
    \r\n \r\n ))\r\n : (
    )}\r\n
    \r\n \r\n );\r\n});\r\n\r\nTabTributiPerScadenza.defaultProps = {\r\n fromScadenzario: false,\r\n panelCreazioneDelega: {},\r\n dataDegafaultProp: null,\r\n annualitaDisponibili: null,\r\n idContribuente: null,\r\n};\r\n\r\nTabTributiPerScadenza.propTypes = {\r\n idContribuente: PropTypes.number,\r\n annualitaDisponibili: PropTypes.arrayOf(PropTypes.shape({ Anno: PropTypes.number })),\r\n annoSelezionato: PropTypes.number.isRequired,\r\n cambioRadioAnnoSelezionato: PropTypes.func.isRequired,\r\n dataDegafaultProp: PropTypes.string,\r\n resetAnni: PropTypes.func.isRequired,\r\n panelCreazioneDelega: PropTypes.shape({}),\r\n fromScadenzario: PropTypes.bool,\r\n};\r\n\r\nexport default TabTributiPerScadenza;\r\n","/* eslint-disable max-len */\r\nimport React from 'react';\r\nimport Icon from '../../Icons/Icon';\r\n\r\nexport default Icon(\r\n \r\n \r\n \r\n ,\r\n '0 0 24 24',\r\n 'InsertDriveIcon',\r\n);\r\n","/* eslint-disable max-len */\r\nimport Icon from 'framework-ui-components/Components/Icons/Icon';\r\nimport React from 'react';\r\n\r\nexport default Icon(\r\n \r\n \r\n \r\n ,\r\n '0 0 24 24',\r\n 'Toc',\r\n);\r\n","/* eslint-disable max-len */\r\nimport Icon from 'framework-ui-components/Components/Icons/Icon';\r\nimport React from 'react';\r\n\r\nexport default Icon(\r\n \r\n \r\n \r\n ,\r\n '0 0 24 24',\r\n 'PersonIcon',\r\n);\r\n","/* eslint-disable no-nested-ternary */\r\nimport React, {\r\n useCallback,\r\n} from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { setAppParamsAction } from 'framework-taskforce/actions/appParams';\r\nimport {\r\n Button,\r\n} from 'framework-ui-components/Components/V2';\r\nimport { setStoredSessionItem } from 'framework-taskforce/utils/store';\r\nimport InsertDriveIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/InsertDriveIcon';\r\nimport { useHistory } from 'react-router';\r\nimport TemplateGrid from '../../../components/TemplateGrid/TemplateGrid';\r\nimport { TABS_MENU_CONTRIBUENTE } from '../../../models/f24';\r\nimport TocIcon from '../../../components/icons/google/TocIcon';\r\nimport PersonIcon from '../../../components/icons/google/PersonIcon';\r\nimport DateRangeIcon from '../../../components/icons/google/DateRangeIcon';\r\nimport {\r\n dettaglioContribuenteUrl, tributiContribuenteUrl, vaiIntermediariNuovatab,\r\n} from '../../../models/urls';\r\nimport SupervisorIcon from '../../../components/icons/google/SupervisorIcon';\r\n\r\nconst TabsMenu = () => {\r\n const dispatch = useDispatch();\r\n\r\n const codiceFiscale = useSelector((store) => store.soggetto.codiceFiscale);\r\n const tipoPersona = useSelector((store) => store.soggetto.tipoPersona);\r\n const codiceUfficioSelezionato = useSelector(\r\n (store) => store.appParams.ufficioSelezionato,\r\n );\r\n const sidebarSelected = useSelector(\r\n (store) => store.appParams.sidebarSelected,\r\n );\r\n const appParamVisualizzazione = useSelector((store) => !!store.appParams.visualizzazione);\r\n const codiceUfficioOperatore = useSelector((store) => store.appParams.codiceUfficioOperatore);\r\n const showIntermediariInTabsMenu = useSelector((store) => store.appParams.showIntermediariInTabsMenu);\r\n\r\n const history = useHistory();\r\n\r\n const cambiaTab = useCallback((index) => {\r\n if (index !== TABS_MENU_CONTRIBUENTE.ANAGRAFICA && index !== TABS_MENU_CONTRIBUENTE.INTERMEDIARI) {\r\n dispatch(setAppParamsAction({ sidebarSelected: index }));\r\n setStoredSessionItem('SidebarTabIndex', index);\r\n if (window.location.hash.includes('DettaglioContribuente')) {\r\n history.push(tributiContribuenteUrl(codiceFiscale, appParamVisualizzazione, codiceUfficioOperatore));\r\n }\r\n } else if (index === TABS_MENU_CONTRIBUENTE.ANAGRAFICA) {\r\n history.push(dettaglioContribuenteUrl(codiceFiscale, tipoPersona, appParamVisualizzazione, codiceUfficioOperatore));\r\n } else if (index === TABS_MENU_CONTRIBUENTE.INTERMEDIARI) {\r\n vaiIntermediariNuovatab(codiceUfficioOperatore || codiceUfficioSelezionato, appParamVisualizzazione);\r\n }\r\n }, [appParamVisualizzazione, codiceFiscale, codiceUfficioOperatore, codiceUfficioSelezionato, dispatch, history, tipoPersona]);\r\n\r\n return (\r\n \r\n cambiaTab(TABS_MENU_CONTRIBUENTE.TRIBUTI)}\r\n className={`${`${sidebarSelected}` === `${TABS_MENU_CONTRIBUENTE.TRIBUTI}`\r\n && !window.location.hash.includes('DettaglioContribuente') ? 'button__blu div__border_bottom_blue' : ''} bottone_tabs t-2`}\r\n >\r\n \r\n {TABS_MENU_CONTRIBUENTE.toString(TABS_MENU_CONTRIBUENTE.TRIBUTI)}\r\n \r\n\r\n cambiaTab(TABS_MENU_CONTRIBUENTE.DEBITI_PER_SCADENZA)}\r\n className={`${`${sidebarSelected}` === `${TABS_MENU_CONTRIBUENTE.DEBITI_PER_SCADENZA}`\r\n && !window.location.hash.includes('DettaglioContribuente') ? 'button__blu div__border_bottom_blue' : ''} bottone_tabs t-2`}\r\n >\r\n \r\n {TABS_MENU_CONTRIBUENTE.toString(TABS_MENU_CONTRIBUENTE.DEBITI_PER_SCADENZA)}\r\n \r\n cambiaTab(TABS_MENU_CONTRIBUENTE.DELEGHE)}\r\n className={`${`${sidebarSelected}` === `${TABS_MENU_CONTRIBUENTE.DELEGHE}`\r\n && !window.location.hash.includes('DettaglioContribuente') ? 'button__blu div__border_bottom_blue' : ''} bottone_tabs t-2`}\r\n >\r\n \r\n {TABS_MENU_CONTRIBUENTE.toString(TABS_MENU_CONTRIBUENTE.DELEGHE)}\r\n \r\n cambiaTab(TABS_MENU_CONTRIBUENTE.ANAGRAFICA)}\r\n className={`${window.location.hash.includes('DettaglioContribuente') ? 'button__blu div__border_bottom_blue' : ''} bottone_tabs t-2`}\r\n\r\n >\r\n \r\n {TABS_MENU_CONTRIBUENTE.toString(TABS_MENU_CONTRIBUENTE.ANAGRAFICA)}\r\n \r\n {showIntermediariInTabsMenu && (\r\n cambiaTab(TABS_MENU_CONTRIBUENTE.INTERMEDIARI)}\r\n className=\"bottone_tabs t-2\"\r\n >\r\n \r\n {TABS_MENU_CONTRIBUENTE.toString(TABS_MENU_CONTRIBUENTE.INTERMEDIARI)}\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default TabsMenu;\r\n","/* eslint-disable no-nested-ternary */\r\nimport React, {\r\n useCallback,\r\n useEffect,\r\n useRef,\r\n useState,\r\n} from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { useParams } from 'react-router';\r\nimport { setAppParamsAction } from 'framework-taskforce/actions/appParams';\r\nimport {\r\n Tabs, Badge, Heading, Grid, Formatter, Link,\r\n} from 'framework-ui-components';\r\nimport {\r\n Table,\r\n Button,\r\n ButtonGroup,\r\n ConfirmModal,\r\n FeedbackModal,\r\n MiniPanel,\r\n Panel,\r\n} from 'framework-ui-components/Components/V2';\r\n\r\nimport { isEmptyObject } from 'framework-taskforce/utils/object';\r\nimport useSignalR from 'framework-ui-components/Components/Hooks/useSignalR';\r\nimport usePluginsReducer from 'framework-plugins/hooks/usePluginReducer';\r\nimport { callDownloadFile } from 'framework-taskforce/utils/file';\r\nimport Log, { logApiError } from 'framework-taskforce/utils/log';\r\nimport AddIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/AddIcon';\r\nimport { getSegnalazioneError } from 'framework-taskforce/models/segnalazioni';\r\nimport { SnackbarWrapper } from 'framework-ui-components/Components/Snackbar';\r\nimport { ModalIFrame, usePluginReducer } from 'framework-plugins';\r\nimport PropTypes from 'prop-types';\r\nimport { useHistory } from 'react-router-dom';\r\nimport { primaLetteraMaiuscola } from 'framework-taskforce/utils/text';\r\nimport ToolbarDiProva from './ToolbarDiProva';\r\nimport PageWrapper from '../../../components/PageWrapper';\r\nimport { setSoggettoAction } from '../../../actions/soggetto';\r\nimport ModaleCreazioneTributo from '../../creazioneTributo/ModaleCreazione';\r\nimport ModaleCreazioneDelega from '../../creazioneDelega/ModaleCreazione';\r\nimport TabListaTributi from './listaTributi/TabListaTributi';\r\nimport TabListaDeleghe from './listaDeleghe/TabListaDeleghe';\r\nimport { TIPOLOGIA_TRIBUTO } from '../../../models/tributi';\r\nimport { getOttieniContribuente } from '../../../apis/contribuente';\r\nimport { convertUTCDateToLocalDate, createDate } from '../../../utils/format';\r\nimport {\r\n getOttieniDelega,\r\n getOttieniIbanContoCorrente,\r\n getOttieniUltimaStampaInDownload,\r\n postCreaDelegaCopiaConformeTrasmissioneTelematica,\r\n postDichiaraAperta,\r\n postDichiaraAperteMassivamente,\r\n postDichiaraCompleta,\r\n postDichiaraCompleteMassivamente,\r\n postDichiaraPagata,\r\n postImpostaDelegaInviataConCbi,\r\n postStampaDelega,\r\n postStampaDelegaMassiva,\r\n} from '../../../apis/deleghe';\r\nimport UndoIcon from '../../../components/icons/google/UndoIcon';\r\nimport ModalePresentaDelega from '../../../components/modalePresentaDelega/ModalePresentaDelega';\r\nimport ModalePresentaDelegaMassivamente from './listaDeleghe/modalePresentaDelegheMassivamente/ModalePresentaDelegaMassivamente';\r\nimport ConfirmImage from '../../../components/icons/ConfirmImage';\r\nimport CreditScoreIcon from '../../../components/icons/google/CreditScoreIcon';\r\nimport apiDownloadFile from '../../../apis/file';\r\nimport BottoniPresentazioneSingola from './bottoni/BottoniPresentazioneSingola';\r\nimport BottoniPresentazioneMassiva from './bottoni/BottoniPresentazioneMassiva';\r\nimport { getOttieniFileTelematicoIntermediarioInDownload } from '../../../apis/studio';\r\nimport {\r\n getOttieniAnnualitaConTributi,\r\n getOttieniContatoriTributiDaGestire,\r\n getOttieniTributo,\r\n postAnnullaChiusuraForzataCredito,\r\n postAnnullaChiusuraForzataDebito,\r\n postEseguiChiusuraForzataCredito,\r\n postEseguiChiusuraForzataDebito,\r\n postEliminaDebito,\r\n postEliminaCredito,\r\n} from '../../../apis/tributi';\r\nimport ModaleGestisciScadenzaDebito from '../../gestisciScadenzaDebito/ModaleGestisciScadenzaDebito';\r\nimport ModaleGestisciScadenzaDebitoIva from '../../gestisciScadenzaDebito/ModaleGestisciScadenzaDebitoIva';\r\nimport ModaleGestisciScadenzaMassivamente from '../../gestisciScadenzaDebito/massiva/ModaleGestisciScadenzaMassivamente';\r\nimport TabTributiPerScadenza from './schermataScadenze/TabTributiPerScadenza';\r\nimport TabsMenu from './TabsMenu';\r\nimport { getOttieniAnnualitaConTributiPerScadenza } from '../../../apis/tributiPerScadenza';\r\nimport { TABS_MENU_CONTRIBUENTE } from '../../../models/f24';\r\nimport { setCreazioneDelegheAction } from '../../../actions/creazioneDeleghe';\r\nimport ModaleCreazioneDeleghePerTributi from './listaTributi/creazioneDelegaDaTributi/ModaleCreazioneDeleghePerTributi';\r\nimport ModaleDichiaraPagata from './listaDeleghe/tabella/presentate/ModaleDichiaraPagata';\r\nimport { delegaSoggettoUrlLink } from '../../../models/urls';\r\nimport ModaleLoading from '../../../components/ModaleLoading';\r\nimport { setPresentaDelegheCbiAction } from '../../../actions/presentazioneDeleghe';\r\nimport { postEliminaTributiDirittoCamerale } from '../../../apis/dirittoCamerale';\r\nimport VerifiedIcon from '../../../components/icons/google/VerifiedIcon';\r\n\r\nconst RiepilogoContribuente = ({ fromScadenzario, fromHome }) => {\r\n const dispatch = useDispatch();\r\n\r\n const { codFisc } = useParams();\r\n\r\n const history = useHistory();\r\n\r\n const soggetto = useSelector((store) => store.soggetto);\r\n const noToolbar = useSelector((store) => store.appParams.noToolbar);\r\n const withNoSidebar = useSelector((store) => store.appParams.withNoSidebar);\r\n // const codiceFiscale = useSelector((store) => store.soggetto.CodiceFiscale);\r\n const studioSelezionato = useSelector(\r\n (store) => store.appParams.studioSelezionato,\r\n );\r\n const codiceUfficioSelezionato = useSelector(\r\n (store) => store.appParams.ufficioSelezionato,\r\n );\r\n const sidebarSelected = useSelector(\r\n (store) => store.appParams.sidebarSelected,\r\n );\r\n const idContribuente = useSelector((store) => store.soggetto.idContribuente);\r\n const tabSelected = useSelector((store) => store.appParams.tabSelected);\r\n const rowsDelegheSelected = useSelector(\r\n (store) => store.appParams.rowsDeleghe,\r\n );\r\n const annoSelezionato = useSelector(\r\n (store) => store.appParams.annoSelezionato,\r\n );\r\n const appParamVisualizzazione = useSelector((store) => !!store.appParams.visualizzazione);\r\n const annoCampagnaServizioEsterno = useSelector((store) => store.appParams.annoCampagnaServizioEsterno);\r\n const scadenzaTributiImportatiDaServzioEsterno = useSelector((store) => store.appParams.scadenzaTributiImportatiDaServzioEsterno);\r\n const f24Url = useSelector((store) => store.appParams.F24Url);\r\n const f24CBIUrl = useSelector((store) => store.appParams.F24CBIUrl);\r\n const profiloUtente = useSelector((store) => store.utente.Profilo);\r\n const presentazioneDelegheCbi = useSelector((store) => store.presentazioneDeleghe.cbi);\r\n const applicationId = useSelector((store) => store.appParams.ApplicationId);\r\n\r\n const [creaTributo, setCreaTributo] = useState({\r\n aperto: false,\r\n tipologiaTributo: TIPOLOGIA_TRIBUTO.DEBITO,\r\n });\r\n const [successoCrezioneTributo, setSuccessoCrezioneTributo] = useState({\r\n successo: false,\r\n sezione: 'erario',\r\n tipo: TIPOLOGIA_TRIBUTO.DEBITO,\r\n annoDiRiferimento: null,\r\n });\r\n const [creaDelega, setCreaDelega] = useState(false);\r\n const [creazioneInCorso, setCreazioneInCorso] = useState(false);\r\n const [contatoriDeleghe, setContatoriDeleghe] = useState([]);\r\n const [showPanelCreazioneDelega, setShowPanelCreazioneDelega] = useState(false);\r\n const [panelCreazioneDelega, setPanelCreazioneDelega] = useState(null);\r\n const [datiModalePresentazione, setDatiModalePresentazione] = useState(null);\r\n const [current, setCurrent] = useState('scelta-presentazione');\r\n const [datiModalePresentazioneMassiva, setDatiModalePresentazioneMassiva] = useState(null);\r\n const [showWarningPresentaDelega, setShowWarningPresentaDelega] = useState(false);\r\n const [contatoriInLavorazione, setContatoriInLavorazione] = useState({ TotaleDeleghe: 0 });\r\n const [contatoriComplete, setContatoriComplete] = useState({ TotaleDeleghe: 0 });\r\n const [contatoriPresentate, setContatoriPresentate] = useState({ TotaleDeleghe: 0 });\r\n const [annualitaDisponibili, setAnnualitaDisponibili] = useState(null);\r\n const [annualitaDisponibiliPerScadenza, setAnnualitaDisponibiliPerScadenza] = useState(null);\r\n // const [annoSelezionato, setAnnoSelezionato] = useState(null);\r\n const [mostraAperti, setMostraAperti] = useState(true);\r\n const [contatoriCrediti, setContatoriCrediti] = useState(0);\r\n const [contatoriDebiti, setContatoriDebiti] = useState(0);\r\n const [modaleGestisciScadenza, setModaleGestisciScadenza] = useState({ aperto: false, soloCompensazione: false, tributo: {} });\r\n const [modaleGestisciScadenzaInTabella, setModaleGestisciScadenzaInTabella] = useState({ aperto: false, soloCompensazione: false, tributo: {} });\r\n const [modaleGestisciMassivamenteScadenza, setModaleGestisciMassivamenteScadenza] = useState({ aperto: false });\r\n const [modaleCreazioneDelegheDaTributi, setModaleCreazioneDelegheDaTributi] = useState({ aperto: false });\r\n const [modaleCreazioneDelegheDaTributo, setModaleCreazioneDelegheDaTributo] = useState({ aperto: false });\r\n const [successoGestione, setSuccessoGestione] = useState({\r\n successo: false, sezione: 'erario', tipo: 'debito', annoDiRiferimento: null,\r\n });\r\n const [dataDaCercare, setDataDaCercare] = useState(null);\r\n const [showModaleDichiaraPagata, setShowModaleDichiaraPagata] = useState(\r\n {\r\n show: false, idDelega: 0, scadenzaVersamento: null,\r\n },\r\n );\r\n const [showSegnalazioni, setShowSegnalazioni] = useState(false);\r\n const [segnalazioni, setSegnalazioni] = useState('');\r\n const [segnalazioniDichiaraPagata, setSegnalazioniDichiaraPagata] = useState([]);\r\n const [titoloFeedbackModal, setTitoloFeedbackModal] = useState('');\r\n const [successOperazione, setSuccessOperazione] = useState(false);\r\n const [loading, setLoading] = useState(false);\r\n const [listaCompensazioni, setListaCompensazioni] = useState([]);\r\n const [processoConErrori, setProcessoConErrori] = useState(false);\r\n const [showOperazioneAsincrona, setShowOperazioneAsincrona] = useState({\r\n show: false, modalTitle: '', title: '', message: '', success: true,\r\n });\r\n const [showModaleLoading, setShowModaleLoading] = useState({\r\n show: false,\r\n title: '',\r\n });\r\n const [showModalIFrameCbi, setShowModalIFrameCbi] = useState(false);\r\n const [datiPerInvioDeleghe, setDatiPerInvioDeleghe] = useState();\r\n const [showWarningCompletaDeleghe, setShowWarningCompletaDeleghe] = useState(false);\r\n const [showWarningAperteDeleghe, setShowWarningAperteDeleghe] = useState(false);\r\n const [showSuccessPagoF24, setShowSuccessPagoF24] = useState(false);\r\n\r\n const tabellaTributiRef = useRef();\r\n const tabellaTributiPerScadenzRef = useRef();\r\n const tabellaDelegheRef = useRef();\r\n\r\n useSignalR('CreazioneDeleghePerContribuenteCompletata', (data) => {\r\n Log.info(`Processo creazione deleghe ${data.ScadenzaVersamento} completato`);\r\n\r\n const dataScadenzaStringa = createDate(new Date(data.ScadenzaVersamento));\r\n\r\n if (`${sidebarSelected}` === `${TABS_MENU_CONTRIBUENTE.DELEGHE}`) {\r\n if (!creaDelega && tabellaDelegheRef) {\r\n tabellaDelegheRef.current.refreshTabella();\r\n }\r\n }\r\n\r\n if (`${sidebarSelected}` !== `${TABS_MENU_CONTRIBUENTE.TRIBUTI}`) {\r\n dispatch(setCreazioneDelegheAction({\r\n completato: true,\r\n processoConErrori: data.NumeroDelegheNonCreate > 0,\r\n loading: false,\r\n }));\r\n\r\n // uno schifo vedi tempi lunghi\r\n setTimeout(() => {\r\n setPanelCreazioneDelega(\r\n 0 && data.NumeroDelegheCreate > 0\r\n ? 'Alcune deleghe create con successo'\r\n : 'Nessuna delega creata'\r\n }\r\n message={\r\n data.NumeroDelegheNonCreate === 0\r\n ? `Il processo di creazione delle deleghe con scadenza ${dataScadenzaStringa} che\r\n avevi avviato in precedenza è stato portato a termine con successo.`\r\n : `Vi sono stati errori nel processo di creazione delle deleghe con scadenza ${dataScadenzaStringa} che avevi avviato in precedenza.`\r\n }\r\n type={\r\n data.NumeroDelegheNonCreate === 0\r\n ? 'success'\r\n : data.NumeroDelegheNonCreate > 0 && data.NumeroDelegheCreate > 0\r\n ? 'warning'\r\n : 'alarm'\r\n }\r\n className=\"mt-16\"\r\n onClose={() => setPanelCreazioneDelega(null)}\r\n />,\r\n );\r\n }, 1000);\r\n }\r\n });\r\n\r\n useSignalR('CreazioneDelegheMassivaPerContribuenteCompletata', (data) => {\r\n Log.info(\r\n 'Processo creazione deleghe completato',\r\n );\r\n\r\n dispatch(setCreazioneDelegheAction({\r\n completato: true,\r\n processoConErrori: data.NumeroDelegheNonCreate > 0,\r\n loading: false,\r\n }));\r\n });\r\n\r\n useSignalR('GenerazioneFileTelematicoIntermediarioDelegheCompletato', (data) => {\r\n if (data && data.IdDelega) {\r\n scaricaCopiaConforme(data.IdDelega);\r\n }\r\n\r\n if (data && data.IdFileTelematicoIntermediario) {\r\n callDownloadFile(\r\n getOttieniFileTelematicoIntermediarioInDownload,\r\n 'File telematico ordinario', // dafultname,\r\n data.IdFileTelematicoIntermediario, // params\r\n ).then((resDownload) => {\r\n tabellaDelegheRef.current.refreshTabella();\r\n }).catch((e) => {\r\n logApiError(e);\r\n });\r\n }\r\n });\r\n\r\n useSignalR('DelegaInviataConAdele', (data) => {\r\n if (data && data.IdDelega) {\r\n scaricaCopiaConforme(data.IdDelega);\r\n }\r\n });\r\n\r\n const scaricaCopiaConforme = (idDelega) => {\r\n postCreaDelegaCopiaConformeTrasmissioneTelematica(idDelega).then((res) => {\r\n if (res.Success) {\r\n callDownloadFile(\r\n apiDownloadFile,\r\n res.Result.NomeFile,\r\n res.Result.IdFile,\r\n codiceUfficioSelezionato,\r\n res.Result.NomeFile,\r\n ).then((resDownload) => {\r\n\r\n }).catch((e) => {\r\n logApiError(e);\r\n });\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n };\r\n\r\n const cercaNelleScadenze = useCallback((data) => {\r\n setDataDaCercare(data);\r\n dispatch(setAppParamsAction({ sidebarSelected: '2' }));\r\n }, [dispatch]);\r\n\r\n const chiamataContatori = useCallback((annualita, mostraApertiSelezionato) => {\r\n getOttieniContatoriTributiDaGestire(idContribuente, annualita, mostraApertiSelezionato)\r\n .then((resContatori) => {\r\n if (resContatori.Success) {\r\n setContatoriCrediti(resContatori.Result.Crediti);\r\n setContatoriDebiti(resContatori.Result.Debiti);\r\n }\r\n }).catch((err) => {\r\n Log.error(err);\r\n });\r\n }, [idContribuente]);\r\n\r\n useEffect(() => {\r\n if (!annualitaDisponibili && idContribuente && `${sidebarSelected}` === '0') {\r\n getOttieniAnnualitaConTributi(idContribuente)\r\n .then((res) => {\r\n if (res.Success && res.Result) {\r\n setAnnualitaDisponibili(res.Result);\r\n if (!annoSelezionato || !(res.Result.some((e) => e.Anno === annoSelezionato))) {\r\n dispatch(setAppParamsAction({\r\n annoSelezionato: annoCampagnaServizioEsterno ? Number(annoCampagnaServizioEsterno) : Number(res.Result[0].Anno),\r\n }));\r\n chiamataContatori(annoCampagnaServizioEsterno ? Number(annoCampagnaServizioEsterno) : Number(res.Result[0].Anno), mostraAperti);\r\n } else {\r\n chiamataContatori(annoSelezionato, mostraAperti);\r\n }\r\n } else {\r\n setAnnualitaDisponibili([(new Date()).getFullYear()]);\r\n }\r\n }).catch((err) => {\r\n Log.error(err);\r\n setAnnualitaDisponibili([(new Date()).getFullYear()]);\r\n });\r\n }\r\n }, [annoCampagnaServizioEsterno,\r\n annoSelezionato,\r\n annualitaDisponibili,\r\n chiamataContatori,\r\n dispatch,\r\n idContribuente,\r\n mostraAperti,\r\n sidebarSelected]);\r\n\r\n useEffect(() => {\r\n if (!annualitaDisponibiliPerScadenza && idContribuente && `${sidebarSelected}` === '2') {\r\n getOttieniAnnualitaConTributiPerScadenza(idContribuente)\r\n .then((res) => {\r\n if (res.Success && res.Result) {\r\n setAnnualitaDisponibiliPerScadenza(res.Result);\r\n if (!annoSelezionato || !(res.Result.some((e) => e.Anno === annoSelezionato))) {\r\n dispatch(setAppParamsAction({\r\n annoSelezionato: annoCampagnaServizioEsterno ? Number(annoCampagnaServizioEsterno) : Number(res.Result[0].Anno),\r\n }));\r\n\r\n const dataDaServizioEsterno = scadenzaTributiImportatiDaServzioEsterno\r\n ? `${decodeURIComponent(scadenzaTributiImportatiDaServzioEsterno)}` : null;\r\n if (dataDaServizioEsterno) {\r\n cercaNelleScadenze(dataDaServizioEsterno);\r\n }\r\n }\r\n chiamataContatori(res.Result[0].Anno, mostraAperti);\r\n } else {\r\n setAnnualitaDisponibiliPerScadenza([(new Date()).getFullYear()]);\r\n }\r\n }).catch((err) => {\r\n Log.error(err);\r\n setAnnualitaDisponibiliPerScadenza([(new Date()).getFullYear()]);\r\n });\r\n }\r\n }, [annoCampagnaServizioEsterno,\r\n annoSelezionato,\r\n annualitaDisponibiliPerScadenza,\r\n cercaNelleScadenze,\r\n chiamataContatori,\r\n dispatch,\r\n idContribuente,\r\n mostraAperti,\r\n scadenzaTributiImportatiDaServzioEsterno,\r\n sidebarSelected]);\r\n\r\n useEffect(() => {\r\n if (annualitaDisponibili && idContribuente && `${sidebarSelected}` !== '0') {\r\n setAnnualitaDisponibili(null);\r\n if (`${sidebarSelected}` !== '2') {\r\n dispatch(setAppParamsAction({\r\n annoSelezionato: null,\r\n }));\r\n }\r\n }\r\n }, [annualitaDisponibili, dispatch, idContribuente, sidebarSelected]);\r\n\r\n useEffect(() => {\r\n if (annualitaDisponibiliPerScadenza && idContribuente && `${sidebarSelected}` !== '2') {\r\n setAnnualitaDisponibiliPerScadenza(null);\r\n if (`${sidebarSelected}` !== '0') {\r\n dispatch(setAppParamsAction({\r\n annoSelezionato: null,\r\n }));\r\n }\r\n }\r\n }, [annualitaDisponibiliPerScadenza, dispatch, idContribuente, sidebarSelected]);\r\n\r\n const cambioRadioAnnoSelezionato = useCallback((anno) => {\r\n if (anno) {\r\n // setAnnoSelezionato(Number(event.target.value));\r\n // epuro i crediti\r\n dispatch(setAppParamsAction({\r\n annoSelezionato: Number(anno),\r\n }));\r\n chiamataContatori(Number(anno), mostraAperti);\r\n }\r\n }, [chiamataContatori, dispatch, mostraAperti]);\r\n\r\n const cambioStatoSelezionato = useCallback((event) => {\r\n if (event.target.value === 'Aperti') {\r\n setMostraAperti(true);\r\n chiamataContatori(annoSelezionato, true);\r\n } else if (event.target.value === 'Chiusi') {\r\n setMostraAperti(false);\r\n chiamataContatori(annoSelezionato, false);\r\n }\r\n }, [annoSelezionato, chiamataContatori]);\r\n\r\n const aperturaModaleCreazioneTributo = useCallback((tipologiaTributo) => {\r\n setCreaTributo({ aperto: true, tipologiaTributo });\r\n setCreazioneInCorso(true);\r\n }, []);\r\n\r\n const aperturaModaleCreazioneTributoConModifica = useCallback((tipologiaTributo, tributo) => {\r\n setCreaTributo({ aperto: true, tipologiaTributo, tributo });\r\n setCreazioneInCorso(true);\r\n }, []);\r\n\r\n const aperturaModaleCreazioneDelega = useCallback(() => {\r\n setCreaDelega(true);\r\n setCreazioneInCorso(true);\r\n setShowPanelCreazioneDelega(false);\r\n }, []);\r\n\r\n const chiusuraModaleCreazioneTributo = useCallback(\r\n (successo, codice, sezione, tipo, importo, dataScadenza, idTributo, isModifica = false) => {\r\n const annoTributo = dataScadenza && dataScadenza.split('/')[2];\r\n cambioRadioAnnoSelezionato(annoTributo);\r\n setCreaTributo({\r\n aperto: false,\r\n tipologiaTributo: TIPOLOGIA_TRIBUTO.DEBITO,\r\n });\r\n setCreazioneInCorso(false);\r\n if (successo) {\r\n setSuccessoCrezioneTributo({\r\n successo,\r\n codice,\r\n sezione,\r\n tipo,\r\n importo,\r\n dataScadenza,\r\n isModifica,\r\n idTributo,\r\n });\r\n\r\n setAnnualitaDisponibili(null);\r\n setAnnualitaDisponibiliPerScadenza(null);\r\n tabellaTributiRef.current.refreshTabella();\r\n }\r\n },\r\n [cambioRadioAnnoSelezionato],\r\n );\r\n\r\n const chiusuraModaleravvedimentoSpostaScadenza = useCallback(\r\n () => {\r\n setAnnualitaDisponibili(null);\r\n setAnnualitaDisponibiliPerScadenza(null);\r\n },\r\n [],\r\n );\r\n\r\n const chiusuraModaleCreazioneDelega = useCallback((successo) => {\r\n setCreaDelega(false);\r\n setCreazioneInCorso(false);\r\n setShowPanelCreazioneDelega(true);\r\n if (successo) {\r\n tabellaDelegheRef.current.refreshTabella();\r\n }\r\n }, []);\r\n\r\n const chiusuraModaleDichiaraPagata = useCallback((esito) => {\r\n setShowModaleDichiaraPagata({ show: false });\r\n setSegnalazioni([]);\r\n }, [setSegnalazioni]);\r\n\r\n const refreshAnniTabella = useCallback(() => {\r\n setAnnualitaDisponibili(null);\r\n setAnnualitaDisponibiliPerScadenza(null);\r\n tabellaTributiRef.current.refreshTabella();\r\n }, []);\r\n\r\n const eliminaTributo = (idTributo, isDebito, isDirittoCamerale = null, anno = null) => {\r\n if (isDirittoCamerale) {\r\n postEliminaTributiDirittoCamerale(idContribuente, anno)\r\n .then((response) => {\r\n if (response.Success) {\r\n setAnnualitaDisponibili(null);\r\n setAnnualitaDisponibiliPerScadenza(null);\r\n tabellaTributiRef.current.refreshTabella();\r\n } else {\r\n setTitoloFeedbackModal('Eliminazione diritto camerale non riuscita');\r\n setSegnalazioni(response.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setTitoloFeedbackModal('Eliminazione diritto camerale non riuscita');\r\n setSegnalazioni(['Si è verificato un errore']);\r\n });\r\n } else {\r\n (isDebito\r\n ? postEliminaDebito\r\n : postEliminaCredito)(idTributo, idContribuente)\r\n .then((response) => {\r\n if (response.Success) {\r\n setAnnualitaDisponibili(null);\r\n setAnnualitaDisponibiliPerScadenza(null);\r\n tabellaTributiRef.current.refreshTabella();\r\n } else {\r\n setTitoloFeedbackModal('Eliminazione tributo non riuscita');\r\n setSegnalazioni(response.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n });\r\n }\r\n };\r\n\r\n const eseguiChiusuraForzata = (idTributo, isDebito) => {\r\n (isDebito\r\n ? postEseguiChiusuraForzataDebito\r\n : postEseguiChiusuraForzataCredito)(idTributo, idContribuente)\r\n .then((response) => {\r\n if (response.Success) {\r\n setAnnualitaDisponibili(null);\r\n setAnnualitaDisponibiliPerScadenza(null);\r\n tabellaTributiRef.current.refreshTabella();\r\n } else {\r\n setTitoloFeedbackModal('Chiusura forzata non riuscito');\r\n setSegnalazioni(response.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n });\r\n };\r\n\r\n const annullaChiusuraForzata = (idTributo, isDebito) => {\r\n (isDebito\r\n ? postAnnullaChiusuraForzataDebito\r\n : postAnnullaChiusuraForzataCredito)(idTributo, idContribuente)\r\n .then((response) => {\r\n if (response.Success) {\r\n setAnnualitaDisponibili(null);\r\n setAnnualitaDisponibiliPerScadenza(null);\r\n tabellaTributiRef.current.refreshTabella();\r\n } else {\r\n setTitoloFeedbackModal('Annulla chiusura forzata non riuscito');\r\n setSegnalazioni(response.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n if (contatoriDeleghe) {\r\n setContatoriComplete(contatoriDeleghe.find((obj) => obj.Stato === 2));\r\n setContatoriInLavorazione(contatoriDeleghe.find((obj) => obj.Stato === 1));\r\n const inPresentazione = contatoriDeleghe.find((obj) => obj.Stato === 3);\r\n const pagate = contatoriDeleghe.find((obj) => obj.Stato === 4);\r\n setContatoriPresentate({\r\n TotaleDeleghe:\r\n (inPresentazione ? (inPresentazione.TotaleDeleghe) : 0) + (pagate ? (pagate.TotaleDeleghe) : 0),\r\n });\r\n }\r\n }, [codFisc, contatoriDeleghe, dispatch, soggetto, soggetto.idContribuente, studioSelezionato]);\r\n\r\n useEffect(() => {\r\n console.log('>>>>>>>>>>>>>>>>>>> soggetto da redux', soggetto);\r\n if (isEmptyObject(soggetto) && codFisc && studioSelezionato) {\r\n getOttieniContribuente(studioSelezionato, codFisc)\r\n .then((res) => {\r\n if (res.Success) {\r\n console.log('>>>>>>>>>>>>>>>>>>> recuperato nuovo soggetto', res.Result);\r\n dispatch(\r\n setSoggettoAction({\r\n idAnagrafica: res.Result.IdAnagrafica,\r\n idContribuente: res.Result.IdContribuente,\r\n codiceFiscale: res.Result.CodiceFiscale,\r\n nominativo: res.Result.Denominazione,\r\n tipoPersona: res.Result.TipoPersona,\r\n haPartitaIva: !!res.Result.PartitaIva,\r\n partitaIva: res.Result.PartitaIva,\r\n }),\r\n );\r\n } else {\r\n history.push('/errore');\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n })\r\n .catch((e) => {});\r\n }\r\n }, [codFisc, dispatch, history, soggetto, soggetto.idContribuente, studioSelezionato]);\r\n\r\n useEffect(() => {\r\n if (`${sidebarSelected}` !== `${TABS_MENU_CONTRIBUENTE.DELEGHE}`) {\r\n dispatch(setAppParamsAction({ tabSelected: 0, scartate: null, inPresentazione: null }));\r\n }\r\n }, [codFisc, dispatch, sidebarSelected, soggetto, soggetto.idContribuente, studioSelezionato]);\r\n\r\n const onTabSelected = useCallback(\r\n (index) => {\r\n dispatch(setAppParamsAction({ tabSelected: index }));\r\n },\r\n [dispatch],\r\n );\r\n\r\n const dichiaraAperta = useCallback(() => {\r\n postDichiaraAperta({ IdDelega: rowsDelegheSelected[0].IdDelega })\r\n .then((response) => {\r\n if (response.Success) {\r\n tabellaDelegheRef.current.refreshTabella();\r\n } else {\r\n setTitoloFeedbackModal('Sposta a \"In lavorazione\" non riuscito');\r\n setSegnalazioni(response.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n })\r\n .catch((err) => {\r\n Log.error(err);\r\n });\r\n }, [rowsDelegheSelected]);\r\n\r\n const dichiaraAperte = useCallback(() => {\r\n postDichiaraAperteMassivamente(rowsDelegheSelected.map((x) => x.IdDelega))\r\n .then((response) => {\r\n tabellaDelegheRef.current.refreshTabella();\r\n if (!response.Success) {\r\n if (rowsDelegheSelected.length === response.DetectedProblems.length) {\r\n setTitoloFeedbackModal('Sposta a \"In lavorazione\" non riuscito');\r\n } else {\r\n setTitoloFeedbackModal(\"L'elaborazione si è conclusa con errori\");\r\n }\r\n setSegnalazioni(response.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n })\r\n .catch((err) => {\r\n Log.error(err);\r\n });\r\n }, [rowsDelegheSelected]);\r\n\r\n const dichiaraChiusa = useCallback(() => {\r\n postDichiaraCompleta({ IdDelega: rowsDelegheSelected[0].IdDelega, Stato: rowsDelegheSelected[0].Stato })\r\n .then((response) => {\r\n if (response.Success) {\r\n tabellaDelegheRef.current.refreshTabella();\r\n } else {\r\n setTitoloFeedbackModal('Sposta a \"Complete\" non riuscito');\r\n setSegnalazioni(response.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n })\r\n .catch((err) => {\r\n // Log.error(err);\r\n setTitoloFeedbackModal('Sposta a \"Complete\" non riuscito');\r\n setSegnalazioni([{ msg: 'Errore generico' }]);\r\n });\r\n }, [rowsDelegheSelected]);\r\n\r\n const dichiaraChiuse = useCallback(() => {\r\n postDichiaraCompleteMassivamente(rowsDelegheSelected.map((d) => d.IdDelega))\r\n .then((response) => {\r\n tabellaDelegheRef.current.refreshTabella();\r\n if (!response.Success) {\r\n setTitoloFeedbackModal('Sposta a \"Complete\" non riuscito');\r\n setSegnalazioni(response.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n })\r\n .catch((err) => {\r\n Log.error(err);\r\n });\r\n }, [rowsDelegheSelected]);\r\n\r\n const dichiaraPagata = useCallback((idDelega, dataVersamento) => {\r\n const DataVersamento = convertUTCDateToLocalDate(dataVersamento);\r\n postDichiaraPagata({ idDelega, DataVersamento }).then((response) => {\r\n if (response.Success) {\r\n chiusuraModaleDichiaraPagata(true);\r\n tabellaDelegheRef.current.refreshTabella();\r\n } else {\r\n setSegnalazioniDichiaraPagata(response.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n Log.error('App error');\r\n }\r\n }).catch((err) => {\r\n Log.error(err);\r\n });\r\n }, [chiusuraModaleDichiaraPagata]);\r\n\r\n const getDatoFromDelega = useCallback(\r\n (delega, dataVersamento, codiceUfficio, fileCopiaConforme, fileTelematicoContribuente) => {\r\n console.log('>>>>>>>>>>>>>>>>>>> getDatoFromDelega soggetto da redux', soggetto);\r\n return (\r\n {\r\n Contribuente: {\r\n IdAnagrafica: soggetto.idAnagrafica,\r\n Nominativo: soggetto.nominativo,\r\n CodiceFiscale: soggetto.codiceFiscale,\r\n PartitaIva: soggetto.partitaIva,\r\n Email: null,\r\n },\r\n Deleghe: [\r\n {\r\n IdDelegaOrigine: delega.Id,\r\n DataScadenzaVersamento: delega.ScadenzaVersamento,\r\n DataPagamento: dataVersamento,\r\n ModelloDelega: delega.TipoDelegaDescrizione === 'Ordinario'\r\n ? 'F24' : `F24 ${delega.TipoDelegaDescrizione}`,\r\n Saldo: delega.Saldo,\r\n Iban: delega.Iban,\r\n LinkDownloadPdf:\r\n `${f24Url}/api/v6/File/Download?idFile=${fileCopiaConforme.Id}&nomeFile=${fileCopiaConforme.Nome}&codiceUfficio=${codiceUfficio}`,\r\n LinkDownloadEntratel:\r\n `${f24Url}/api/v6/File/Download?idFile=${fileTelematicoContribuente.Id}&nomeFile=${fileTelematicoContribuente.Nome}&codiceUfficio=${codiceUfficio}`,\r\n LinkDettaglio: `${f24Url}/#/Delega/${delega.Id}?ufficio=${codiceUfficio}`,\r\n }],\r\n });\r\n },\r\n [f24Url, soggetto],\r\n );\r\n\r\n const componiRichieste = useCallback(\r\n (deleghe, dataVersamento, codiceUfficio, fileCopiaConforme, fileTelematicoContribuente) => (\r\n deleghe.map((delega) => getDatoFromDelega(delega, dataVersamento, codiceUfficio, fileCopiaConforme, fileTelematicoContribuente))),\r\n [getDatoFromDelega],\r\n );\r\n\r\n const inserisciDatiDaSelezione = useCallback((\r\n dataVersamento,\r\n selezione,\r\n fileCopiaConforme,\r\n fileTelematicoContribuente,\r\n ) => ({\r\n ApplicationId: applicationId,\r\n Titolo: 'Invio deleghe F24 CBI',\r\n IdOrganizzazione: codiceUfficioSelezionato,\r\n Richiedente: {\r\n Nominativo: `${profiloUtente.Nome} ${profiloUtente.Cognome}`, // TODO: commento dei muppets fare lato BE?\r\n NotificheAbilitate: true, // TODO abilitate anche se forse non server\r\n Email: `${profiloUtente.Email}`,\r\n },\r\n Richieste: componiRichieste(\r\n selezione,\r\n dataVersamento,\r\n codiceUfficioSelezionato,\r\n fileCopiaConforme,\r\n fileTelematicoContribuente,\r\n ),\r\n InformazioniAggiuntive: {\r\n TipoApplicativo: 'F24Online',\r\n },\r\n }), [codiceUfficioSelezionato, componiRichieste, profiloUtente, applicationId]);\r\n\r\n const onCloseModalePresentazione = useCallback((\r\n esito,\r\n proseguiInCbi = false,\r\n dataVersamento = null,\r\n fileCopiaConforme = null,\r\n fileTelematicoContribuente = null,\r\n successoPagoF24 = false,\r\n ) => {\r\n if (proseguiInCbi) {\r\n setLoading(true);\r\n getOttieniIbanContoCorrente(datiModalePresentazione.idDelega)\r\n .then((res) => {\r\n if (res.Success) {\r\n console.log('>>>>>>>>>> STO PER FARE CBI >>>>>>>>>>>>>>>>>>> soggetto da redux', soggetto);\r\n\r\n setDatiPerInvioDeleghe(inserisciDatiDaSelezione(\r\n dataVersamento.toISOString(),\r\n [{\r\n Id: datiModalePresentazione.idDelega,\r\n ScadenzaVersamento: datiModalePresentazione.dataVersamento,\r\n TipoDelegaDescrizione: datiModalePresentazione.tipoDelegaDescrizione,\r\n Saldo: datiModalePresentazione.saldo,\r\n Iban: res.Result,\r\n }],\r\n fileCopiaConforme,\r\n fileTelematicoContribuente,\r\n ));\r\n setLoading(false);\r\n setShowModalIFrameCbi(true);\r\n setDatiModalePresentazione(null);\r\n setCurrent('scelta-presentazione');\r\n } else {\r\n SnackbarWrapper.notifyError(res.DetectedProblems);\r\n setLoading(false);\r\n }\r\n })\r\n .catch((e) => {\r\n setLoading(false);\r\n logApiError(e);\r\n });\r\n } else if (successoPagoF24) {\r\n setDatiModalePresentazione({ show: false });\r\n if (esito) {\r\n setShowSuccessPagoF24(true);\r\n tabellaDelegheRef.current.refreshTabella();\r\n setCurrent('scelta-presentazione');\r\n }\r\n } else {\r\n setDatiModalePresentazione({ show: false });\r\n if (esito) {\r\n tabellaDelegheRef.current.refreshTabella();\r\n setCurrent('scelta-presentazione');\r\n }\r\n }\r\n }, [datiModalePresentazione, inserisciDatiDaSelezione, soggetto]);\r\n\r\n const onCloseModalePresentazioneMassiva = useCallback((esito) => {\r\n setDatiModalePresentazioneMassiva(null);\r\n if (esito) {\r\n tabellaDelegheRef.current.refreshTabella();\r\n }\r\n }, []);\r\n\r\n const impostaPresentataCbi = useCallback((esito) => {\r\n const oggettoPresentazione = {\r\n idDelega: presentazioneDelegheCbi.idDelega,\r\n dataVersamento: presentazioneDelegheCbi.dataVersamento,\r\n };\r\n\r\n if (oggettoPresentazione.idDelega) {\r\n if (!esito) {\r\n dispatch(\r\n setPresentaDelegheCbiAction({\r\n\r\n }),\r\n );\r\n\r\n return;\r\n }\r\n postImpostaDelegaInviataConCbi(oggettoPresentazione).then((response) => {\r\n if (response.Success) {\r\n tabellaDelegheRef.current.refreshTabella();\r\n dispatch(\r\n setPresentaDelegheCbiAction({\r\n\r\n }),\r\n );\r\n } else {\r\n setTitoloFeedbackModal('Presenta con CBI');\r\n setSegnalazioni(response.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n }).catch((err) => {\r\n Log.error(err);\r\n setLoading(false);\r\n });\r\n }\r\n }, [dispatch, presentazioneDelegheCbi]);\r\n\r\n usePluginsReducer(\r\n () => ({\r\n EsitoInvioF24CBI: (payload) => {\r\n impostaPresentataCbi(payload);\r\n },\r\n }),\r\n [impostaPresentataCbi],\r\n );\r\n\r\n const handlePostMessageFintech = useCallback((payload) => {\r\n if (datiModalePresentazione && datiModalePresentazione.show) {\r\n const { idDelega } = datiModalePresentazione;\r\n\r\n if ((payload.esito === 'CHIUSO_PLUGIN'\r\n || payload.esito === 'ANNULLATA'\r\n || payload.esito === 'ERRORE'\r\n || payload.esito === 'KO') && idDelega && !loading) {\r\n setLoading(true);\r\n postDichiaraCompleta({ idDelega }).then((response) => {\r\n setLoading(false);\r\n if (response.Success) {\r\n onCloseModalePresentazione(true);\r\n if (payload.descrizione && payload.esito !== 'CHIUSO_PLUGIN') {\r\n setSegnalazioni([{ msg: payload.descrizione }]);\r\n }\r\n } else {\r\n onCloseModalePresentazione(true);\r\n // setTitoloFeedbackModal('Ops...');\r\n // setSegnalazioni([{ msg: 'Qualcosa è andato storto e la tua delega potrebbe essere rimasta in presentazione' }]);\r\n }\r\n }).catch((err) => {\r\n // Log.error(err);\r\n setLoading(false);\r\n // setTitoloFeedbackModal('Ops...');\r\n // setSegnalazioni([{ msg: 'Qualcosa è andato storto e la tua delega potrebbe essere rimasta in presentazione' }]);\r\n });\r\n } else if (payload.esito === 'OK') {\r\n onCloseModalePresentazione(true);\r\n }\r\n }\r\n }, [datiModalePresentazione, loading, onCloseModalePresentazione]);\r\n\r\n usePluginsReducer(\r\n () => ({\r\n ESITO_INVIO_CGNPOS: (payload) => {\r\n handlePostMessageFintech(payload);\r\n },\r\n }),\r\n [handlePostMessageFintech],\r\n );\r\n\r\n const stampaCartacea = useCallback(() => {\r\n setShowWarningPresentaDelega(false);\r\n setShowModaleLoading({ show: true, title: 'Presenta in forma cartacea' });\r\n if (rowsDelegheSelected && rowsDelegheSelected.length === 1) {\r\n postStampaDelega({ IdDelega: rowsDelegheSelected[0].IdDelega })\r\n .then((res) => {\r\n if (res.Success) {\r\n setShowModaleLoading({ show: false });\r\n callDownloadFile(\r\n getOttieniUltimaStampaInDownload,\r\n 'Stampa cartacea', // dafultname,\r\n rowsDelegheSelected[0].IdDelega, // params\r\n )\r\n .then((resDownload) => {\r\n tabellaDelegheRef.current.refreshTabella();\r\n setShowWarningPresentaDelega(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setShowWarningPresentaDelega(false);\r\n });\r\n } else {\r\n setShowModaleLoading({ show: false });\r\n }\r\n })\r\n .catch((e) => {\r\n setShowModaleLoading({ show: false });\r\n logApiError(e);\r\n });\r\n } else {\r\n postStampaDelegaMassiva(rowsDelegheSelected.map((r) => r.IdDelega))\r\n .then((res) => {\r\n setShowModaleLoading({ show: false });\r\n if (res.Result.IdFile) {\r\n callDownloadFile(\r\n apiDownloadFile,\r\n res.Result.NomeFile,\r\n res.Result.IdFile,\r\n codiceUfficioSelezionato,\r\n res.Result.NomeFile,\r\n )\r\n .then((resDownload) => {\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setShowWarningPresentaDelega(false);\r\n });\r\n\r\n tabellaDelegheRef.current.refreshTabella();\r\n }\r\n\r\n setShowWarningPresentaDelega(false);\r\n if (res.Result.Errori && res.Result.Errori.length > 0 && !res.Result.IdFile) {\r\n setShowSegnalazioni(true);\r\n }\r\n\r\n // if (res.Result.Errori && res.Result.Errori.length > 0) {\r\n // const segnalazione = res.Result.IdFile\r\n // ? `Non è stato possibile generare ${res.Result.Errori.length} deleghe F24`\r\n // : 'Non è stato possibile generare le deleghe F24';\r\n // setSegnalazioni(segnalazione/* res.Result.Errori */);\r\n // setShowSegnalazioni(true);\r\n // }\r\n })\r\n .catch((e) => {\r\n setShowModaleLoading({ show: false });\r\n logApiError(e);\r\n });\r\n }\r\n }, [codiceUfficioSelezionato, rowsDelegheSelected]);\r\n\r\n useSignalR('DebitoCompensatoVerticalmente', (data) => {\r\n if (!modaleGestisciMassivamenteScadenza.aperto) {\r\n setModaleGestisciScadenza({ aperto: false, soloCompensazione: false, tributo: {} });\r\n setModaleGestisciScadenzaInTabella({ aperto: false, soloCompensazione: false, tributo: {} });\r\n tabellaTributiRef.current.refreshTabella();\r\n\r\n getOttieniDelega(data.IdDelega)\r\n .then((res) => {\r\n if (res.Success) {\r\n setShowOperazioneAsincrona({\r\n show: true,\r\n modalTitle: 'Compensazione verticale',\r\n title: 'Compensazione avvenuta con successo',\r\n message: (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 0,00\r\n \r\n \r\n \r\n Vai alla delega\r\n \r\n \r\n \r\n \r\n
    ),\r\n success: true,\r\n });\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n });\r\n } else {\r\n getOttieniTributo(data.IdDebito)\r\n .then((res) => {\r\n if (res.Success) {\r\n setListaCompensazioni([...listaCompensazioni,\r\n {\r\n codiceTributo: res.Result.Codice,\r\n sezioneTributo: res.Result.DescrizioneSezione,\r\n periodo: res.Result.AnnoRiferimento,\r\n dataScadenza: res.Result.DataScadenza,\r\n importo: res.Result.Importo,\r\n nuovoResiduo: res.Result.ImportoResiduo,\r\n idDebito: data.IdDebito,\r\n idDelega: data.IdDelega,\r\n linkDelega: delegaSoggettoUrlLink(data.IdDelega, codiceUfficioSelezionato, fromScadenzario),\r\n motivazioneFallimento: null,\r\n }]);\r\n setSuccessOperazione(true);\r\n } else {\r\n SnackbarWrapper.notifyError(res.DetectedProblems);\r\n setLoading(false);\r\n }\r\n })\r\n .catch((e) => {\r\n setLoading(false);\r\n logApiError(e);\r\n });\r\n }\r\n });\r\n\r\n useSignalR('DebitoCompensato', (data) => {\r\n if (!modaleGestisciMassivamenteScadenza.aperto) {\r\n setModaleGestisciScadenza({ aperto: false, soloCompensazione: false, tributo: {} });\r\n setModaleGestisciScadenzaInTabella({ aperto: false, soloCompensazione: false, tributo: {} });\r\n tabellaTributiRef.current.refreshTabella();\r\n\r\n getOttieniDelega(data.IdDelega)\r\n .then((res) => {\r\n if (res.Success) {\r\n setShowOperazioneAsincrona({\r\n show: true,\r\n modalTitle: 'Compensazione orizzontale',\r\n title: 'Compensazione avvenuta con successo',\r\n message: (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 0,00\r\n \r\n \r\n \r\n Vai alla delega\r\n \r\n \r\n \r\n \r\n
    ),\r\n success: true,\r\n });\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n });\r\n } else {\r\n getOttieniTributo(data.IdDebito)\r\n .then((res) => {\r\n if (res.Success) {\r\n setListaCompensazioni([...listaCompensazioni,\r\n {\r\n codiceTributo: res.Result.Codice,\r\n sezioneTributo: res.Result.DescrizioneSezione,\r\n periodo: res.Result.AnnoRiferimento,\r\n dataScadenza: res.Result.DataScadenza,\r\n importo: res.Result.Importo,\r\n nuovoResiduo: res.Result.ImportoResiduo,\r\n idDebito: data.IdDebito,\r\n idDelega: data.IdDelega,\r\n linkDelega: delegaSoggettoUrlLink(data.IdDelega, codiceUfficioSelezionato, fromScadenzario),\r\n motivazioneFallimento: null,\r\n }]);\r\n setSuccessOperazione(true);\r\n } else {\r\n SnackbarWrapper.notifyError(res.DetectedProblems);\r\n setLoading(false);\r\n }\r\n })\r\n .catch((e) => {\r\n setLoading(false);\r\n logApiError(e);\r\n });\r\n }\r\n });\r\n\r\n useSignalR('CompensazioneVerticaleFallita', (data) => {\r\n if (!modaleGestisciMassivamenteScadenza.aperto) {\r\n setModaleGestisciScadenza({ aperto: false, soloCompensazione: false, tributo: {} });\r\n setModaleGestisciScadenzaInTabella({ aperto: false, soloCompensazione: false, tributo: {} });\r\n setTimeout(() => {\r\n setShowOperazioneAsincrona({\r\n show: true,\r\n modalTitle: 'Compensazione verticale',\r\n title: 'Compensazione non eseguita',\r\n message: data.MotivazioneFallimento || 'Abbiamo avuto un problema, riprova.',\r\n success: false,\r\n });\r\n }, 200);\r\n } else {\r\n setProcessoConErrori(true);\r\n getOttieniTributo(data.IdDebito)\r\n .then((res) => {\r\n if (res.Success) {\r\n setListaCompensazioni([...listaCompensazioni,\r\n {\r\n codiceTributo: res.Result.Codice,\r\n sezioneTributo: res.Result.DescrizioneSezione,\r\n periodo: res.Result.AnnoRiferimento,\r\n dataScadenza: res.Result.DataScadenza,\r\n importo: res.Result.Importo,\r\n nuovoResiduo: res.Result.ImportoResiduo,\r\n idDebito: data.IdDebito,\r\n idDelega: data.IdDelega,\r\n motivazioneFallimento: data.MotivazioneFallimento,\r\n linkDelega: null,\r\n }]);\r\n setSuccessOperazione(true);\r\n } else {\r\n SnackbarWrapper.notifyError(res.DetectedProblems);\r\n setLoading(false);\r\n }\r\n })\r\n .catch((e) => {\r\n setLoading(false);\r\n logApiError(e);\r\n });\r\n }\r\n });\r\n\r\n useSignalR('DebitoNonCompensato', (data) => {\r\n if (!modaleGestisciMassivamenteScadenza.aperto) {\r\n setModaleGestisciScadenza({ aperto: false, soloCompensazione: false, tributo: {} });\r\n setModaleGestisciScadenzaInTabella({ aperto: false, soloCompensazione: false, tributo: {} });\r\n setTimeout(() => {\r\n setShowOperazioneAsincrona({\r\n show: true,\r\n modalTitle: 'Compensazione orizzontale',\r\n title: 'Compensazione non eseguita',\r\n message: data.MotivazioneFallimento || 'Abbiamo avuto un problema, riprova.',\r\n success: false,\r\n });\r\n }, 200);\r\n } else {\r\n setProcessoConErrori(true);\r\n getOttieniTributo(data.IdDebito)\r\n .then((res) => {\r\n if (res.Success) {\r\n setListaCompensazioni([...listaCompensazioni,\r\n {\r\n codiceTributo: res.Result.Codice,\r\n sezioneTributo: res.Result.DescrizioneSezione,\r\n periodo: res.Result.AnnoRiferimento,\r\n dataScadenza: res.Result.DataScadenza,\r\n importo: res.Result.Importo,\r\n nuovoResiduo: res.Result.ImportoResiduo,\r\n idDebito: data.IdDebito,\r\n idDelega: data.IdDelega,\r\n motivazioneFallimento: data.MotivazioneFallimento,\r\n linkDelega: null,\r\n }]);\r\n setSuccessOperazione(true);\r\n } else {\r\n SnackbarWrapper.notifyError(res.DetectedProblems);\r\n setLoading(false);\r\n }\r\n })\r\n .catch((e) => {\r\n setLoading(false);\r\n logApiError(e);\r\n });\r\n }\r\n });\r\n\r\n useEffect(() => {\r\n const e = document.createElement('script');\r\n e.type = 'text/javascript';\r\n e.src = `${f24CBIUrl}/App/dist/browser-export.js`;\r\n e.async = false;\r\n e.defer = false;\r\n const h = document.getElementsByTagName('head')[0];\r\n h.insertBefore(e, h.lastChild);\r\n\r\n // Rimuovo l'hash presente nell'url altrimenti mi rimarrebbe sempre\r\n // return () => {\r\n // window.location.hash = '/';\r\n // };\r\n }, [f24CBIUrl]);\r\n\r\n return (\r\n \r\n {/* `${soggetto.nominativo}`]}> */}\r\n \r\n )}\r\n >\r\n \r\n \r\n \r\n
    {primaLetteraMaiuscola(soggetto.nominativo)}
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n {`${sidebarSelected}` === '0' && (\r\n \r\n )}\r\n {`${sidebarSelected}` === '2' && (\r\n \r\n )}\r\n {`${sidebarSelected}` === '1' && (\r\n \r\n {tabSelected === 0 && (\r\n \r\n {rowsDelegheSelected && rowsDelegheSelected.length >= 1 ? (\r\n setShowWarningCompletaDeleghe(true) : (rowsDelegheSelected.length === 1 ? () => dichiaraChiusa() : () => dichiaraChiuse())\r\n }\r\n primary\r\n disabled={appParamVisualizzazione}\r\n >\r\n \r\n Segna come complete\r\n \r\n )\r\n : (\r\n setCreaDelega(true)}\r\n primary\r\n disabled={appParamVisualizzazione}\r\n >\r\n \r\n Crea nuova delega\r\n \r\n )}\r\n \r\n )}\r\n {tabSelected === 1\r\n && rowsDelegheSelected\r\n && rowsDelegheSelected.length === 1\r\n && (\r\n \r\n )}\r\n {tabSelected === 1\r\n && rowsDelegheSelected\r\n && rowsDelegheSelected.length > 1\r\n && (\r\n \r\n )}\r\n {tabSelected === 2\r\n && rowsDelegheSelected\r\n && rowsDelegheSelected.length === 1\r\n && (\r\n \r\n setShowModaleDichiaraPagata(\r\n {\r\n show: true,\r\n idDelega: rowsDelegheSelected[0].IdDelega,\r\n scadenzaVersamento: rowsDelegheSelected[0].ScadenzaVersamento,\r\n dataVersamento: rowsDelegheSelected[0].DataVersamento,\r\n },\r\n )}\r\n disabled={(\r\n rowsDelegheSelected[0]\r\n && !rowsDelegheSelected[0].IsDichiaraPagataAttivo)\r\n || appParamVisualizzazione}\r\n primary\r\n >\r\n \r\n Segna come Pagata\r\n \r\n dichiaraAperta(true)}\r\n disabled={(\r\n rowsDelegheSelected[0]\r\n && !rowsDelegheSelected[0].IsDichiaraApertaAttivo)\r\n || appParamVisualizzazione}\r\n >\r\n \r\n Sposta a "In Lavorazione"\r\n \r\n \r\n )}\r\n
    \r\n )}\r\n >\r\n \r\n In lavorazione{' '}\r\n \r\n {contatoriInLavorazione\r\n ? contatoriInLavorazione.TotaleDeleghe\r\n : 0}\r\n \r\n {/* In lavorazione {contatoriTributi} */}\r\n \r\n )}\r\n >\r\n \r\n \r\n \r\n Complete{' '}\r\n \r\n {contatoriComplete ? contatoriComplete.TotaleDeleghe : 0}\r\n \r\n {/* In lavorazione {contatoriTributi} */}\r\n \r\n )}\r\n >\r\n \r\n \r\n \r\n Presentate\r\n \r\n {contatoriPresentate ? contatoriPresentate.TotaleDeleghe : 0}\r\n \r\n {/* In lavorazione {contatoriTributi} */}\r\n \r\n )}\r\n >\r\n \r\n \r\n \r\n )}\r\n
    \r\n \r\n {creaDelega && (\r\n \r\n )}\r\n {datiModalePresentazione && (\r\n \r\n )}\r\n {datiModalePresentazioneMassiva && (\r\n \r\n )}\r\n \r\n }\r\n onClose={() => setShowWarningPresentaDelega(false)}\r\n secondaryLabel=\"Presenta in forma cartacea\"\r\n onSecondaryClick={() => stampaCartacea()}\r\n primaryLabel=\"Non Presentare\"\r\n onPrimaryClick={() => setShowWarningPresentaDelega(false)}\r\n title={'La delega assumerà lo stato \"In presentazione\"'}\r\n message={(\r\n
    \r\n Verrà scaricato il modello definitivo (in triplice copia) e,\r\n successivamente,\r\n
    \r\n troverai la delega all' interno del tab "In\r\n presentazione".\r\n

    \r\n \r\n
    \r\n )}\r\n dontShowAgainMessage=\"Non mostrare più questo messaggio\"\r\n dontShowAgainId=\"stampa-cartacea-non-visualizza-piu\"\r\n />\r\n {showSegnalazioni && (\r\n setShowSegnalazioni(false)}\r\n message=\"Non è stato possibile stampare alcuna delega selezionata\"\r\n />\r\n )}\r\n {!modaleGestisciScadenza.IsIva && modaleGestisciScadenza.IdTributo && (\r\n {\r\n operazioneCompletata && tabellaTributiRef.current.refreshTabella();\r\n operazioneCompletata && setSuccessoGestione({\r\n successo: true,\r\n codice: modaleGestisciScadenza.tributo.CodiceTributo,\r\n sezione: modaleGestisciScadenza.tributo.Sezione,\r\n importo: modaleGestisciScadenza.tributo.Importo,\r\n tipo: 'debito',\r\n dataScadenza: new Date(modaleGestisciScadenza.tributo.DataScadenza),\r\n });\r\n setModaleGestisciScadenza({ aperto: false, soloCompensazione: false, tributo: {} });\r\n }}\r\n defaultStepGestisci={modaleGestisciScadenza.defaultStepGestisci}\r\n />\r\n )}\r\n {modaleGestisciScadenza.IsIva && modaleGestisciScadenza.IdTributo && (\r\n {\r\n operazioneCompletata && tabellaTributiRef.current.refreshTabella();\r\n operazioneCompletata && setSuccessoGestione({\r\n successo: true,\r\n codice: modaleGestisciScadenza.tributo.CodiceTributo,\r\n sezione: modaleGestisciScadenza.tributo.Sezione,\r\n importo: modaleGestisciScadenza.tributo.Importo,\r\n tipo: 'debito',\r\n dataScadenza: new Date(modaleGestisciScadenza.tributo.DataScadenza),\r\n });\r\n setModaleGestisciScadenza({ aperto: false, soloCompensazione: false, tributo: {} });\r\n }}\r\n defaultStepGestisci={modaleGestisciScadenza.defaultStepGestisci}\r\n />\r\n )}\r\n {modaleGestisciMassivamenteScadenza && modaleGestisciMassivamenteScadenza.defaultStepGestisci\r\n && (\r\n {\r\n setModaleGestisciMassivamenteScadenza({ aperto: false });\r\n setListaCompensazioni([]);\r\n operazioneCompletata && tabellaTributiRef.current.refreshTabella();\r\n }}\r\n annualitaSelezionata={annoSelezionato}\r\n tributi={modaleGestisciMassivamenteScadenza.tributi}\r\n successOperazione={successOperazione}\r\n setSuccessOperazione={setSuccessOperazione}\r\n loading={loading}\r\n setLoading={setLoading}\r\n listaCompensazioni={listaCompensazioni}\r\n setListaCompensazioni={setListaCompensazioni}\r\n processoConErrori={processoConErrori}\r\n setProcessoConErrori={setProcessoConErrori}\r\n />\r\n )}\r\n {modaleCreazioneDelegheDaTributi && modaleCreazioneDelegheDaTributi.aperto\r\n && (\r\n {\r\n setModaleCreazioneDelegheDaTributi({ aperto: false });\r\n operazioneCompletata && tabellaTributiRef.current.refreshTabella();\r\n }}\r\n annualitaSelezionata={annoSelezionato}\r\n tributi={modaleGestisciMassivamenteScadenza.tributi}\r\n includiFigli\r\n />\r\n )}\r\n {modaleCreazioneDelegheDaTributo && modaleCreazioneDelegheDaTributo.aperto\r\n && (\r\n {\r\n setModaleCreazioneDelegheDaTributo({ aperto: false });\r\n operazioneCompletata && tabellaTributiRef.current.refreshTabella();\r\n }}\r\n annualitaSelezionata={annoSelezionato}\r\n idDebiti={modaleCreazioneDelegheDaTributo.IdTributi}\r\n dataScadenzaVersamento={modaleCreazioneDelegheDaTributo.dataScadenza}\r\n includiFigli\r\n />\r\n )}\r\n {segnalazioni && segnalazioni.length > 0 && (\r\n 0}\r\n title={titoloFeedbackModal}\r\n onClose={() => setSegnalazioni([])}\r\n buttonLabel=\"ok\"\r\n type={rowsDelegheSelected ? segnalazioni.length === rowsDelegheSelected.length ? 'alarm' : 'warning' : 'alarm'}\r\n message={segnalazioni[0].msg}\r\n />\r\n )}\r\n {showModaleLoading && showModaleLoading.show && (\r\n setShowModaleLoading({ show: false })}\r\n title={showModaleLoading.title}\r\n />\r\n )}\r\n {\r\n // Assistente.mostraPermalink(enumPermalink.toString(enumPermalink.F24CBI));\r\n setShowModalIFrameCbi(false);\r\n }}\r\n // onConfirm={() => { postImpostaDelegaInviataConCbi(delegaDaSpostareConCbi); tabellaDelegheRef.current.refreshTabella(); }}\r\n show={showModalIFrameCbi}\r\n title=\"Invia F24 mediante CBI\"\r\n iframeProps={{ extraParams: datiPerInvioDeleghe }}\r\n defaultModalSize={{ width: 990, height: 500 }}\r\n fixedModalSize\r\n />\r\n }\r\n onClose={() => setShowWarningCompletaDeleghe(false)}\r\n secondaryLabel=\"Segna come complete\"\r\n onSecondaryClick={() => { setShowWarningCompletaDeleghe(false); rowsDelegheSelected.length === 1 ? dichiaraChiusa() : dichiaraChiuse(); }}\r\n primaryLabel=\"Non completare\"\r\n onPrimaryClick={() => { setShowWarningCompletaDeleghe(false); }}\r\n title={'Le deleghe assumeranno lo stato \"Completa\"'}\r\n message={(\r\n \r\n Le potrai trovare all'interno del tab "Complete"\r\n \r\n )}\r\n dontShowAgainMessage=\"Non mostrare più questo messaggio\"\r\n dontShowAgainId=\"completa-deleghe-non-visualizza-piu-singolo-contribuente\"\r\n />\r\n }\r\n onClose={() => setShowWarningAperteDeleghe(false)}\r\n secondaryLabel=\"Segna come in lavorazione\"\r\n onSecondaryClick={() => { setShowWarningAperteDeleghe(false); dichiaraAperte(); }}\r\n primaryLabel=\"Non segnare in lavorazione\"\r\n onPrimaryClick={() => { setShowWarningAperteDeleghe(false); }}\r\n title={'Le deleghe assumeranno lo stato \"In Lavorazione\"'}\r\n message={(\r\n \r\n Le potrai trovare all'interno del tab "In Lavorazione"\r\n \r\n )}\r\n dontShowAgainMessage=\"Non mostrare più questo messaggio\"\r\n dontShowAgainId=\"aperta-deleghe-non-visualizza-piu\"\r\n />\r\n setShowSuccessPagoF24(false)}\r\n message={(\r\n
    \r\n Una volta che la banca del contribuente confermerà\r\n
    \r\n il pagamento, la sua situazione si aggiornerà e i tributi\r\n
    \r\n risulteranno versati.\r\n
    \r\n )}\r\n />\r\n \r\n );\r\n};\r\n\r\nRiepilogoContribuente.defaultProps = {\r\n fromScadenzario: false,\r\n fromHome: false,\r\n};\r\n\r\nRiepilogoContribuente.propTypes = {\r\n fromScadenzario: PropTypes.bool,\r\n fromHome: PropTypes.bool,\r\n};\r\n\r\nexport default RiepilogoContribuente;\r\n","import React from 'react';\r\n\r\nimport RiepilogoContribuente from './RiepilogoContribuente';\r\n\r\nconst RiepilogoContribuenteFromScadenzario = () => (\r\n \r\n);\r\n\r\nexport default RiepilogoContribuenteFromScadenzario;\r\n","import { AuthorizedApp } from 'framework-taskforce';\r\nimport PropTypes from 'prop-types';\r\nimport React from 'react';\r\nimport ContenutoPaginaDiSospensione from '../ContenutoPaginaDiSospensione';\r\nimport RiepilogoContribuenteFromScadenzario from '../areas/listaContribuenti/riepilogoContribuente/RiepilogoContribuenteFromScadenzario';\r\nimport { authorizedServices } from '../models/f24';\r\n\r\nconst RiepilogoContribuenteFromScadenzarioRoute = () => (\r\n )}\r\n >\r\n \r\n \r\n);\r\n\r\nRiepilogoContribuenteFromScadenzarioRoute.defaultProps = {\r\n};\r\n\r\nRiepilogoContribuenteFromScadenzarioRoute.propTypes = {\r\n};\r\n\r\nexport default RiepilogoContribuenteFromScadenzarioRoute;\r\n","import React from 'react';\r\n\r\nimport RiepilogoContribuente from './RiepilogoContribuente';\r\n\r\nconst RiepilogoContribuenteFromHome = () => (\r\n \r\n);\r\n\r\nexport default RiepilogoContribuenteFromHome;\r\n","import { AuthorizedApp } from 'framework-taskforce';\r\nimport React from 'react';\r\nimport ContenutoPaginaDiSospensione from '../ContenutoPaginaDiSospensione';\r\nimport RiepilogoContribuenteFromHome from '../areas/listaContribuenti/riepilogoContribuente/RiepilogoContribuenteFromHome';\r\nimport { authorizedServices } from '../models/f24';\r\n\r\nconst RiepilogoContribuenteFromHomeRoute = () => (\r\n )}\r\n >\r\n \r\n \r\n);\r\n\r\nRiepilogoContribuenteFromHomeRoute.defaultProps = {\r\n};\r\n\r\nRiepilogoContribuenteFromHomeRoute.propTypes = {\r\n};\r\n\r\nexport default RiepilogoContribuenteFromHomeRoute;\r\n","/* eslint-disable max-len */\r\nimport React from 'react';\r\nimport Icon from '../../Icons/Icon';\r\n\r\nexport default Icon(\r\n \r\n \r\n \r\n ,\r\n '0 0 24 24',\r\n 'ArrowForwardIcon',\r\n);\r\n","/* eslint-disable camelcase */\r\n/* eslint-disable no-nested-ternary */\r\nimport React, { useCallback, useState } from 'react';\r\nimport {\r\n EllipsisText,\r\n} from 'framework-ui-components';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport { useHistory } from 'react-router';\r\nimport {\r\n Button, FeedbackModal, Table, useTableRowContext,\r\n} from 'framework-ui-components/Components/V2';\r\nimport Log from 'framework-taskforce/utils/log';\r\nimport { STOP_EVENT_PROPAGATION } from 'framework-ui-components/utils/const';\r\nimport { getSegnalazioneError } from 'framework-taskforce/models/segnalazioni';\r\nimport { setAppParamsAction } from 'framework-taskforce/actions/appParams';\r\nimport ArrowForwardIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/ArrowForwardIcon';\r\nimport { getCurrencyValueNoSymbol } from '../../utils/format';\r\nimport { tributiContribuenteFromScadenzarioUrl } from '../../models/urls';\r\nimport NoButtonExpandRow from '../../components/custom/NoButtonExpandRow';\r\n\r\nimport { getOttieniContribuenteById } from '../../apis/contribuente';\r\nimport { setSoggettoAction } from '../../actions/soggetto';\r\n\r\nconst RigaContribuenteScadenzario = ({\r\n item: {\r\n IdContribuente,\r\n Contribuente,\r\n ImportoDebiti,\r\n ImportoResiduoCrediti,\r\n ImportoResiduoDebiti,\r\n DataScadenza,\r\n\r\n NumeroDelegheNonPresentate,\r\n NumeroDelegheErrate,\r\n NumeroFigli,\r\n },\r\n}) => {\r\n const history = useHistory();\r\n const { expanded } = useTableRowContext();\r\n\r\n const appParamVisualizzazione = useSelector((store) => !!store.appParams.visualizzazione);\r\n const codiceUfficioOperatore = useSelector((store) => store.appParams.codiceUfficioOperatore);\r\n\r\n const [segnalazioni, setSegnalazioni] = useState([]);\r\n\r\n const getComponentForDelegheNonPresentate = useCallback(() => {\r\n const numero = NumeroDelegheNonPresentate - NumeroDelegheErrate;\r\n return numero > 0\r\n ? {numero}\r\n : '';\r\n }, [NumeroDelegheErrate, NumeroDelegheNonPresentate]);\r\n\r\n const dispatch = useDispatch();\r\n\r\n const apriContribuente = useCallback(() => {\r\n getOttieniContribuenteById(IdContribuente)\r\n .then((res) => {\r\n if (res.Success && res.Result) {\r\n dispatch(setAppParamsAction({\r\n scadenzaTributiImportatiDaServzioEsterno: DataScadenza,\r\n annoCampagnaServizioEsterno: new Date(DataScadenza).getFullYear(),\r\n sidebarSelected: '2',\r\n }));\r\n dispatch(setSoggettoAction({\r\n idAnagrafica: res.Result.IdAnagrafica,\r\n idContribuente: res.Result.IdContribuente,\r\n codiceFiscale: res.Result.CodiceFiscale,\r\n nominativo: res.Result.Denominazione,\r\n tipoPersona: res.Result.TipoPersona,\r\n haPartitaIva: !!res.Result.PartitaIva,\r\n partitaIva: res.Result.PartitaIva,\r\n }));\r\n history.push(tributiContribuenteFromScadenzarioUrl(res.Result.CodiceFiscale, appParamVisualizzazione, codiceUfficioOperatore));\r\n } else {\r\n history.push('/errore');\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n // setLoading(false);\r\n }).catch((err) => {\r\n Log.error(err);\r\n // setLoading(false);\r\n });\r\n }, [IdContribuente, dispatch, DataScadenza, history, appParamVisualizzazione, codiceUfficioOperatore]);\r\n\r\n return (\r\n \r\n apriContribuente(IdContribuente)}\r\n >\r\n \r\n
    \r\n \r\n {Contribuente}\r\n \r\n
    \r\n
    \r\n \r\n \r\n 0\r\n ? {getCurrencyValueNoSymbol(ImportoResiduoCrediti)}\r\n : ''}\r\n expandedState={expanded}\r\n />\r\n \r\n \r\n \r\n 0\r\n ? {getCurrencyValueNoSymbol(ImportoResiduoDebiti)}\r\n : ''}\r\n expandedState={expanded}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n apriContribuente(IdContribuente)}\r\n >\r\n \r\n Vai al contribuente\r\n \r\n \r\n \r\n \r\n \r\n {segnalazioni && segnalazioni.length > 0 && (\r\n 0}\r\n title=\"Attenzione\"\r\n onClose={() => setSegnalazioni([])}\r\n buttonLabel=\"ok\"\r\n type=\"alarm\"\r\n message={segnalazioni[0].msg}\r\n className=\"feedback--modal__720px\"\r\n />\r\n )}\r\n
    \r\n );\r\n};\r\n\r\nRigaContribuenteScadenzario.propTypes = {\r\n item: PropTypes.shape({\r\n IdContribuente: PropTypes.number,\r\n Contribuente: PropTypes.string,\r\n ImportoDebiti: PropTypes.number,\r\n ImportoResiduoCrediti: PropTypes.number,\r\n ImportoResiduoDebiti: PropTypes.number,\r\n DataScadenza: PropTypes.string,\r\n NumeroDelegheErrate: PropTypes.number,\r\n NumeroDelegheNonPresentate: PropTypes.number,\r\n NumeroFigli: PropTypes.number,\r\n }).isRequired,\r\n additionalRowData: PropTypes.shape({\r\n }).isRequired,\r\n};\r\n\r\nexport default RigaContribuenteScadenzario;\r\n","import React, {\r\n forwardRef, useCallback, useEffect, useImperativeHandle, useMemo, useLayoutEffect,\r\n} from 'react';\r\nimport useDebouncedFunc from 'framework-ui-components/Components/Hooks/useDebouncedFunc';\r\nimport {\r\n ODataTable,\r\n} from 'framework-ui-components/Components/V2';\r\nimport PropTypes from 'prop-types';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { setAppParamsAction } from 'framework-taskforce/actions/appParams';\r\nimport { urlGetOttieniContribuentiConDebitiOrDelegheApertiInDataScadenza } from '../../apis/scadenzario';\r\nimport RigaTributiPerScadenza from './RigaContribuenteScadenzario';\r\n\r\nconst TabellaContribuentiScadenzario = forwardRef(({\r\n scadenza,\r\n}, ref) => {\r\n const studioSelezionato = useSelector((store) => store.appParams.studioSelezionato);\r\n\r\n const dispatch = useDispatch();\r\n\r\n const url = useMemo(\r\n () => (\r\n studioSelezionato && scadenza\r\n && (urlGetOttieniContribuentiConDebitiOrDelegheApertiInDataScadenza)(studioSelezionato, scadenza.DataScadenza)),\r\n [studioSelezionato, scadenza],\r\n );\r\n\r\n const onPageLoaded = useCallback((pageItems, totalCount, currentFilter, currentPage, sortProperty, sortOrder) => {\r\n // ref.current && ref.current.resetSelection();\r\n // updateOptimisticRows();\r\n // setContatori(totalCount);\r\n }, []);\r\n\r\n useLayoutEffect(() => {\r\n dispatch(setAppParamsAction({\r\n annoSelezionato: null,\r\n sidebarSelected: '0',\r\n }));\r\n }, [dispatch]);\r\n\r\n const refreshTabella = useDebouncedFunc(() => {\r\n ref.current && ref.current.refreshTable();\r\n // updateContatori();\r\n }, 200, []);\r\n\r\n // permetto di accedere via ref al metodo refreshTabella\r\n useImperativeHandle(ref, () => ({ refreshTabella }), [refreshTabella]);\r\n\r\n const rowRender = useCallback((item) => (\r\n \r\n ), []);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n});\r\n\r\nTabellaContribuentiScadenzario.propTypes = {\r\n scadenza: PropTypes.shape({\r\n DataScadenza: PropTypes.string,\r\n }).isRequired,\r\n};\r\n\r\nTabellaContribuentiScadenzario.defaultProps = {\r\n};\r\n\r\nexport default TabellaContribuentiScadenzario;\r\n","import { WebRequest } from 'framework-ui-components';\r\n\r\nexport const getOttieniAnnualitaConScadenzeAperte = (\r\n idStudio,\r\n) => WebRequest.get('Scadenzario/AnnualitaConScadenzeAperte', {\r\n idStudio,\r\n});\r\n\r\nexport const getOttieniProssimeScadenzeAperte = (\r\n idStudio,\r\n annualita,\r\n) => WebRequest.get('Scadenzario/ProssimeScadenzeAperte', {\r\n idStudio,\r\n annualita,\r\n});\r\n\r\nexport const urlGetOttieniContribuentiConDebitiOrDelegheApertiInDataScadenza = (\r\n idStudio,\r\n dataScadenza,\r\n) => `Scadenzario/ContribuentiConDebitiOrDelegheApertiInDataScadenza?idStudio=${idStudio}&dataScadenza=${dataScadenza}`;\r\n\r\nexport const getOttieniContribuentiConDebitiOrDelegheApertiInDataScadenza = (\r\n idStudio,\r\n dataScadenza,\r\n) => WebRequest.get(urlGetOttieniContribuentiConDebitiOrDelegheApertiInDataScadenza(idStudio, dataScadenza), {});\r\n","import React from 'react';\r\nimport {\r\n Badge,\r\n} from 'framework-ui-components';\r\nimport PropTypes from 'prop-types';\r\nimport { getMonthDesc, JustADate } from 'framework-taskforce/utils/date';\r\n\r\nconst ListaScadenze = ({\r\n scadenza,\r\n}) => (\r\n
    \r\n
    \r\n
    \r\n {JustADate(scadenza.DataScadenza).getDate().getDate()}\r\n  \r\n {getMonthDesc(JustADate(scadenza.DataScadenza).getDate().getMonth() + 1)}\r\n
    \r\n
    \r\n Contribuenti\r\n new Date()}\r\n warning={new Date(scadenza.DataScadenza) <= new Date()}\r\n >\r\n {scadenza.NumeroContribuenti}\r\n \r\n
    \r\n
    \r\n \r\n Debiti da versare\r\n \r\n \r\n {scadenza.NumeroDebitiDaVersare}\r\n \r\n
    \r\n
    \r\n \r\n Deleghe non presentate\r\n \r\n \r\n {scadenza.NumeroDelegheNonPresentate}\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n);\r\n\r\nListaScadenze.propTypes = {\r\n scadenza: PropTypes.shape({\r\n Id: PropTypes.number,\r\n NumeroDelegheNonPresentate: PropTypes.number,\r\n DataScadenza: PropTypes.string,\r\n NumeroDebitiDaVersare: PropTypes.number,\r\n NumeroContribuenti: PropTypes.number,\r\n }).isRequired,\r\n};\r\n\r\nexport default ListaScadenze;\r\n","/* eslint-disable no-nested-ternary */\r\nimport React, {\r\n useCallback, useEffect, useMemo, useRef, useState,\r\n} from 'react';\r\nimport {\r\n Grid, Spinner,\r\n} from 'framework-ui-components';\r\nimport {\r\n Button, FeedbackPanel, ViewportProvider,\r\n} from 'framework-ui-components/Components/V2';\r\nimport Log from 'framework-taskforce/utils/log';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { getSegnalazioneError } from 'framework-taskforce/models/segnalazioni';\r\nimport { setAppParamsAction } from 'framework-taskforce/actions/appParams';\r\nimport useViewport, { MAIN } from 'framework-ui-components/Components/V2/Hooks/useViewport';\r\nimport PropTypes from 'prop-types';\r\nimport TemplateGrid from '../../components/TemplateGrid/TemplateGrid';\r\nimport TableDetail from '../../components/custom/TableDetail';\r\nimport TabellaTributiPerScadenza from './TabellaContribuentiScadenzario';\r\nimport { getOttieniAnnualitaConScadenzeAperte, getOttieniProssimeScadenzeAperte } from '../../apis/scadenzario';\r\nimport ElencoAnni from '../../components/ElencoAnni';\r\nimport ListaScadenze from './ListaScadenze';\r\nimport TourScadenzario from '../../components/TourScadenzario';\r\n\r\nconst TabScadenzario = ({ annoParam }) => {\r\n const sidebarSelected = useSelector(\r\n (store) => store.appParams.sidebarSelected,\r\n );\r\n const noToolbar = useSelector((store) => store.appParams.noToolbar);\r\n const studioSelezionato = useSelector((store) => store.appParams.studioSelezionato);\r\n\r\n const dispatch = useDispatch();\r\n const tabellaRef = useRef();\r\n\r\n const { resolution, height } = useViewport();\r\n const resolutionMAIN = resolution === MAIN;\r\n\r\n const chiudiTour = () => {\r\n localStorage.setItem('mostraTour-scadenzario', false);\r\n setMostraTour(false);\r\n };\r\n\r\n const [annoSelezionato, setAnnoSelezionato] = useState(null);\r\n const [loading, setLoading] = useState(false);\r\n const [segnalazioni, setSegnalazioni] = useState([]);\r\n const [listScadenzeTributi, setListScadenzeTributi] = useState(null);\r\n const [idxDiAvvenutaGestione, setIdxDiAvvenutaGestione] = useState(null);\r\n const [dataDaCercare, setDataDaCercare] = useState(null);\r\n const [annualitaDisponibili, setAnnualitaDisponibili] = useState(null);\r\n const [selectedIdx, setSelectedIdx] = useState(0);\r\n const [prossimaScadenzaIdx, setProssimaScadenzaIdx] = useState(0);\r\n const [mostraTour, setMostraTour] = useState(false);\r\n\r\n const defaultIdx = useMemo(() => {\r\n if (listScadenzeTributi) {\r\n if (dataDaCercare) {\r\n const idxFound = listScadenzeTributi ? listScadenzeTributi.findIndex((scadenza) => scadenza.DataScadenza === dataDaCercare) : -1;\r\n return idxFound < 0 ? 0 : idxFound;\r\n }\r\n let idxFound = listScadenzeTributi ? listScadenzeTributi.findIndex((scadenza) => new Date(scadenza.DataScadenza) > new Date()) : -1;\r\n if (idxFound === 0) {\r\n idxFound = listScadenzeTributi[listScadenzeTributi.length - 1];\r\n }\r\n\r\n return idxFound < 0 ? 0 : idxFound;\r\n } return 0;\r\n }, [dataDaCercare, listScadenzeTributi]);\r\n\r\n const cambioAnno = useCallback((annoDaCambiare) => {\r\n if (annoDaCambiare) {\r\n setAnnoSelezionato(Number(annoDaCambiare));\r\n setListScadenzeTributi(null);\r\n }\r\n }, [setAnnoSelezionato]);\r\n\r\n useEffect(() => {\r\n if (!listScadenzeTributi && annoSelezionato) {\r\n setLoading(true);\r\n getOttieniProssimeScadenzeAperte(studioSelezionato, annoSelezionato)\r\n .then((res) => {\r\n if (res.Success && res.Result) {\r\n setListScadenzeTributi(res.Result);\r\n setProssimaScadenzaIdx(res.Result ? res.Result.findIndex((scadenza) => scadenza.Selezionata) : -1);\r\n } else {\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n setLoading(false);\r\n }).catch((err) => {\r\n Log.error(err);\r\n setLoading(false);\r\n });\r\n }\r\n }, [annoSelezionato, annualitaDisponibili, listScadenzeTributi, sidebarSelected, studioSelezionato]);\r\n\r\n useEffect(() => {\r\n if (annualitaDisponibili) {\r\n setListScadenzeTributi(null);\r\n }\r\n }, [annualitaDisponibili, sidebarSelected]);\r\n\r\n useEffect(() => {\r\n if (!annualitaDisponibili && studioSelezionato) {\r\n getOttieniAnnualitaConScadenzeAperte(studioSelezionato)\r\n .then((res) => {\r\n const annoCorrente = annoParam;\r\n if (res.Success && res.Result) {\r\n // dalle altre parti la lista anni è un oggetto con l'anno e altri dati quindi per usate lo stesso componente faccio un oggetto\r\n setAnnualitaDisponibili(res.Result.map((anno) => ({ Anno: anno })));\r\n if (!annoSelezionato || !(res.Result.some((e) => e.Anno === annoSelezionato))) {\r\n setAnnoSelezionato(res.Result.includes(annoCorrente) ? annoCorrente : res.Result[0]);\r\n }\r\n } else {\r\n setAnnualitaDisponibili([annoCorrente]);\r\n }\r\n }).catch((err) => {\r\n Log.error(err);\r\n setAnnualitaDisponibili([(new Date()).getFullYear()]);\r\n });\r\n }\r\n }, [annoParam, annoSelezionato, annualitaDisponibili, dispatch, sidebarSelected, studioSelezionato]);\r\n\r\n useEffect(() => {\r\n if (annoSelezionato && annualitaDisponibili) {\r\n if (!annualitaDisponibili.some((x) => x.Anno === annoSelezionato)) {\r\n dispatch(setAppParamsAction({\r\n annoSelezionato: Number(annualitaDisponibili[0].Anno),\r\n }));\r\n setListScadenzeTributi(null);\r\n }\r\n }\r\n }, [annoSelezionato, annualitaDisponibili, dispatch]);\r\n\r\n const ListaScadenzeComponent = useCallback((scadenza) => (\r\n \r\n ), []);\r\n\r\n const DettaglioScadenzaComponent = useCallback((scadenza) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ), [annoSelezionato]);\r\n\r\n return (\r\n \r\n 741\r\n ? {\r\n display: 'inline-flex', flexDirection: 'column', minHeight: '30vh', maxHeight: `${noToolbar ? '87vh' : '87vh'}`,\r\n }\r\n : { display: 'inline-flex', flexDirection: 'column', maxHeight: `${noToolbar ? '82vh' : '80vh'}` }\r\n }\r\n >\r\n {!loading\r\n ? (segnalazioni.length > 0 ? (\r\n \r\n
      \r\n {segnalazioni.map((segnalazione, idx) => (\r\n {segnalazione.msg}\r\n \r\n ))}\r\n
    \r\n
    \r\n )}\r\n type=\"alarm\"\r\n />\r\n ) : (\r\n \r\n \r\n 741 ? 'mt-26' : 'mt-11'}`}>\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n {/* \r\n {/* eslint-disable-next-line no-script-url\r\n Cos' è scadenzario\r\n */}\r\n setMostraTour(true)}\r\n >\r\n Cos'è scadenzario\r\n \r\n {mostraTour && (\r\n \r\n )}\r\n \r\n
    \r\n
    \r\n
    741 ? 'mt-32' : 'mt-17'}`} style={{ display: 'inline-flex', overflow: 'overlay' }}>\r\n {listScadenzeTributi && (\r\n ListaScadenzeComponent(scadenza)}\r\n onBeforeRenderDetail={() => {}}\r\n detailContent={(scadenza) => DettaglioScadenzaComponent(scadenza)}\r\n data={listScadenzeTributi}\r\n // noDataMessage={Nessun immobile associato al soggetto con i filtri correnti}\r\n noRowsMessage={(\r\n
    \r\n \r\n Nessun scadenza trovata.\r\n
    \r\n Cambia anno o vai nella sezione tributi per crearne di nuovi.\r\n
    \r\n
    \r\n )}\r\n detailFooter={(
    )}\r\n extraContent={(
    )}\r\n />\r\n )}\r\n
    \r\n \r\n ))\r\n : ()}\r\n
    \r\n \r\n );\r\n};\r\n\r\nTabScadenzario.defaultProps = {\r\n};\r\n\r\nTabScadenzario.propTypes = {\r\n annoParam: PropTypes.number.isRequired,\r\n};\r\n\r\nexport default TabScadenzario;\r\n","/* eslint-disable no-nested-ternary */\r\nimport React, {\r\n useEffect,\r\n} from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { setAppParamsAction } from 'framework-taskforce/actions/appParams';\r\nimport { useParams } from 'react-router';\r\nimport PageWrapper from '../../components/PageWrapper';\r\nimport ToolbarDiProva from '../listaContribuenti/ToolbarSpecifica';\r\nimport TabScadenzario from './TabScadenzario';\r\n\r\nconst PaginaScadenzario = () => {\r\n const dispatch = useDispatch();\r\n\r\n const noToolbar = useSelector((store) => store.appParams.noToolbar);\r\n const withNoSidebar = useSelector((store) => store.appParams.withNoSidebar);\r\n\r\n const { annoParam } = useParams();\r\n\r\n useEffect(() => {\r\n dispatch(setAppParamsAction({\r\n sidebarSelected: '0', tabSelected: 0, scartate: null, inPresentazione: null,\r\n }));\r\n });\r\n\r\n return (\r\n {/* `${soggetto.nominativo}`]}> */}\r\n \r\n )}\r\n noSidebar={false}\r\n forceNoFlex={false}\r\n >\r\n \r\n \r\n );\r\n};\r\n\r\nexport default PaginaScadenzario;\r\n","import { AuthorizedApp } from 'framework-taskforce';\r\nimport React from 'react';\r\nimport ContenutoPaginaDiSospensione from '../ContenutoPaginaDiSospensione';\r\nimport PaginaScadenzario from '../areas/scadenzario/PaginaScadenzario';\r\nimport { authorizedServices } from '../models/f24';\r\n\r\nconst PaginaScadenzarioRoute = () => (\r\n )}\r\n >\r\n \r\n \r\n);\r\n\r\nPaginaScadenzarioRoute.defaultProps = {\r\n};\r\n\r\nPaginaScadenzarioRoute.propTypes = {\r\n};\r\n\r\nexport default PaginaScadenzarioRoute;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { ButtonGroup, Layout } from 'framework-ui-components/Components/V2';\r\n\r\nconst HeaderSezione = ({ titolo, children, classeCssGrid }) => (\r\n
    \r\n \r\n \r\n
    {titolo}
    \r\n
    \r\n \r\n \r\n {children}\r\n \r\n \r\n \r\n
     
    \r\n
    \r\n);\r\n\r\nHeaderSezione.defaultProps = {\r\n children: null,\r\n};\r\n\r\nHeaderSezione.propTypes = {\r\n children: PropTypes.node,\r\n titolo: PropTypes.string.isRequired,\r\n classeCssGrid: PropTypes.string.isRequired,\r\n};\r\n\r\nexport default HeaderSezione;\r\n","import React, { useCallback } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useSelector } from 'react-redux';\r\nimport { Button } from 'framework-ui-components/Components/V2';\r\nimport EditIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/EditIcon';\r\nimport HeaderSezione from '../HeaderSezione';\r\n\r\nconst BottoniDatiAnagrafici = ({\r\n datiAnagraficaEditabili,\r\n apriModaleAnagrafica,\r\n modificaAnagrafica,\r\n}) => {\r\n const appParamVisualizzazione = useSelector((store) => !!store.appParams.visualizzazione);\r\n\r\n const onClickModifica = useCallback(() => {\r\n apriModaleAnagrafica(true);\r\n modificaAnagrafica();\r\n }, [apriModaleAnagrafica, modificaAnagrafica]);\r\n\r\n return (\r\n \r\n\r\n {!appParamVisualizzazione && (\r\n onClickModifica()}\r\n >\r\n \r\n Modifica anagrafica\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nBottoniDatiAnagrafici.propTypes = {\r\n datiAnagraficaEditabili: PropTypes.bool.isRequired,\r\n modificaAnagrafica: PropTypes.func.isRequired,\r\n apriModaleAnagrafica: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default BottoniDatiAnagrafici;\r\n","import React, {\r\n useEffect, useMemo, useRef, useCallback,\r\n} from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { createPortal } from 'react-dom';\r\nimport { relative } from 'path';\r\nimport FwPlugins, { usePluginReducer } from 'framework-plugins';\r\nimport { PluginMessageTypes } from 'framework-plugins/models/constants';\r\n\r\nconst zIndexModalizer = 100000;\r\n\r\nconst Modalizer = ({\r\n children, active, header, loading,\r\n}) => {\r\n const contentRef = useRef();\r\n\r\n const modalizerElement = useMemo(() => document.createElement('div'), []);\r\n const headerFormat = useMemo(() => !!header, [header]);\r\n const headerRef = useRef();\r\n\r\n const getScrollParent = useCallback((node) => {\r\n if (!node) return null;\r\n if (node instanceof Element) {\r\n const { overflowY } = window.getComputedStyle(node);\r\n const isScrollable = overflowY !== 'visible' && overflowY !== 'hidden';\r\n if (isScrollable && node.scrollHeight > node.clientHeight) {\r\n return node;\r\n }\r\n }\r\n return getScrollParent(node.parentNode);\r\n }, []);\r\n\r\n const applyAnimation = useCallback(() => {\r\n headerRef.current.style.animationName = null;\r\n // eslint-disable-next-line no-unused-expressions\r\n headerRef.current.offsetHeight; // trigger reflow\r\n headerRef.current.style.animationName = 'modalizerHeaderShake';\r\n }, []);\r\n\r\n const onWheel = useCallback((event) => {\r\n if (event.toElement.classList.contains('modal--overlay')) {\r\n const scrollParent = headerFormat\r\n ? getScrollParent(event.path[0])\r\n : getScrollParent(contentRef.current);\r\n if (scrollParent) {\r\n scrollParent.scrollBy(0, event.deltaY / 2);\r\n } else {\r\n applyAnimation();\r\n }\r\n }\r\n }, [applyAnimation, getScrollParent, headerFormat]);\r\n\r\n useEffect(() => {\r\n document.body.appendChild(modalizerElement);\r\n window.addEventListener('wheel', onWheel);\r\n return () => {\r\n document.body.removeChild(modalizerElement);\r\n window.removeEventListener('wheel', onWheel);\r\n };\r\n }, [modalizerElement, onWheel]);\r\n\r\n useEffect(() => {\r\n FwPlugins.postMessageToParent(\r\n FwPlugins.PluginMessageTypes.MODALIZER,\r\n {\r\n active,\r\n className: 'modalInput--background',\r\n },\r\n );\r\n }, [active]);\r\n\r\n usePluginReducer(() => ({\r\n [PluginMessageTypes.FOCUS]: () => {\r\n if (active) {\r\n applyAnimation();\r\n }\r\n },\r\n }), [active, applyAnimation]);\r\n\r\n return (\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n {headerFormat && (active ? header.active : header.normal)}\r\n
    \r\n {children}\r\n
    \r\n
    \r\n
    \r\n { active && createPortal(\r\n \r\n
    \r\n {!FwPlugins.isCalledByParent() &&
    }\r\n
    ,\r\n modalizerElement,\r\n ) }\r\n \r\n );\r\n};\r\n\r\nModalizer.defaultProps = {\r\n active: false,\r\n header: null,\r\n loading: false,\r\n};\r\n\r\nModalizer.propTypes = {\r\n children: PropTypes.node.isRequired,\r\n active: PropTypes.bool,\r\n loading: PropTypes.bool,\r\n header: PropTypes.shape({\r\n active: PropTypes.node.isRequired,\r\n normal: PropTypes.node.isRequired,\r\n }),\r\n};\r\n\r\nexport default Modalizer;\r\n","import React from 'react';\r\nimport Icon from './Icon';\r\n\r\nexport default Icon(\r\n \r\n \r\n \r\n , '0 0 15 15', 'SaveIcon',\r\n);\r\n","import React, { useMemo } from 'react';\r\nimport {\r\n ButtonGroup, Heading,\r\n} from 'framework-ui-components';\r\nimport PropTypes from 'prop-types';\r\nimport { TIPO_SEGNALAZIONE } from 'framework-taskforce/models/segnalazioni';\r\nimport { Button } from 'framework-ui-components/Components/V2';\r\nimport SaveIcon from 'framework-ui-components/Components/Icons/SaveIcon';\r\nimport DeleteIcon from 'framework-ui-components/Components/Icons/DeleteIcon';\r\nimport TemplateGrid from './TemplateGrid/TemplateGrid';\r\n\r\nconst FormFooter = ({\r\n segnalazioni, loading, onClickSave, onClickCancel, saveDisabled, isFormValid,\r\n}) => {\r\n const hasSegnalazionErr = useMemo(() => segnalazioni\r\n .some((s) => s.type === TIPO_SEGNALAZIONE.Errore), [segnalazioni]);\r\n return (\r\n
    \r\n
    Dati anagrafici
    \r\n
    \r\n \r\n \r\n Salva\r\n \r\n
    \r\n
    \r\n \r\n \r\n Annulla\r\n \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nFormFooter.defaultProps = {\r\n segnalazioni: [],\r\n saveDisabled: false,\r\n isFormValid: false,\r\n};\r\n\r\nFormFooter.propTypes = {\r\n segnalazioni: PropTypes.arrayOf(\r\n PropTypes.shape({\r\n type: PropTypes.number.isRequired,\r\n }),\r\n ),\r\n saveDisabled: PropTypes.bool,\r\n loading: PropTypes.bool.isRequired,\r\n onClickSave: PropTypes.func.isRequired,\r\n onClickCancel: PropTypes.func.isRequired,\r\n isFormValid: PropTypes.bool,\r\n};\r\n\r\nexport default FormFooter;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n DatePicker, Input, Restriction, Validation,\r\n} from 'framework-ui-components';\r\nimport { Layout } from 'framework-ui-components/Components/V2';\r\n\r\nconst DatiAnagraficiPersonaFisicaFields = ({\r\n datiAnagraficaEditabili, segnalazioni,\r\n}) => (\r\n \r\n 0 ? 'mt-16' : 'mt-15'}\r\n >\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n);\r\n\r\nDatiAnagraficiPersonaFisicaFields.defaultProps = {\r\n segnalazioni: [],\r\n};\r\n\r\nDatiAnagraficiPersonaFisicaFields.propTypes = {\r\n datiAnagraficaEditabili: PropTypes.bool.isRequired,\r\n segnalazioni: PropTypes.arrayOf(\r\n PropTypes.shape({\r\n type: PropTypes.number.isRequired,\r\n }),\r\n ),\r\n};\r\n\r\nexport default DatiAnagraficiPersonaFisicaFields;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n EllipsisText,\r\n} from 'framework-ui-components';\r\nimport { Button, Table } from 'framework-ui-components/Components/V2';\r\nimport AddIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/AddIcon';\r\nimport EditIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/EditIcon';\r\nimport DeleteIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/DeleteIcon';\r\nimport { TIPO_PERSONA } from '../../../../models/anagrafica';\r\nimport HeaderSezione from '../HeaderSezione';\r\n\r\nconst SezioneIndirizzi = ({\r\n listaIndirizzi, apriModaleIndirizzo, rimuoviRiga, modificaRiga, tipoPersona, abilitataModifica,\r\n}) => (\r\n
    \r\n \r\n {abilitataModifica && (\r\n apriModaleIndirizzo(true)}\r\n >\r\n \r\n Aggiungi indirizzo\r\n \r\n )}\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {listaIndirizzi && listaIndirizzi.map((indirizzo, idx) => (\r\n // eslint-disable-next-line react/no-array-index-key\r\n \r\n \r\n
    \r\n {indirizzo.DescrizioneTipoIndirizzo}\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n {indirizzo.Comune}\r\n
    \r\n
    \r\n \r\n \r\n {indirizzo.Provincia}\r\n \r\n \r\n \r\n {indirizzo.Cap}\r\n \r\n \r\n \r\n
    \r\n \r\n {`${indirizzo.Toponimo} ${indirizzo.Descrizione} ${indirizzo.NumeroCivico}`}\r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n {indirizzo.Frazione}\r\n
    \r\n
    \r\n \r\n \r\n {abilitataModifica && (\r\n
    \r\n \r\n {((`${tipoPersona}` === `${TIPO_PERSONA.PERSONA_FISICA}` && indirizzo.TipoIndirizzo !== 1)\r\n || (`${tipoPersona}` === `${TIPO_PERSONA.PERSONA_GIURIDICA}` && indirizzo.TipoIndirizzo !== 2))\r\n && (\r\n
    \r\n rimuoviRiga(indirizzo.Id)}\r\n >\r\n \r\n \r\n
    \r\n )}\r\n
    \r\n )}\r\n
    \r\n \r\n
    \r\n ))}\r\n
    \r\n
    \r\n
    \r\n);\r\n\r\nSezioneIndirizzi.defaultProps = {\r\n listaIndirizzi: [],\r\n abilitataModifica: true,\r\n};\r\n\r\nSezioneIndirizzi.propTypes = {\r\n listaIndirizzi: PropTypes.arrayOf(PropTypes.shape({\r\n\r\n })),\r\n apriModaleIndirizzo: PropTypes.func.isRequired,\r\n rimuoviRiga: PropTypes.func.isRequired,\r\n modificaRiga: PropTypes.func.isRequired,\r\n abilitataModifica: PropTypes.bool,\r\n tipoPersona: PropTypes.string.isRequired,\r\n};\r\n\r\nexport default SezioneIndirizzi;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport { Button, Table } from 'framework-ui-components/Components/V2';\r\nimport AddIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/AddIcon';\r\nimport EditIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/EditIcon';\r\nimport DeleteIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/DeleteIcon';\r\nimport { Checkbox } from 'framework-ui-components';\r\nimport HeaderSezione from '../HeaderSezione';\r\n\r\nconst SezioneRecapiti = ({\r\n listaRecapiti, apriModaleRecapito, rimuoviRiga, modificaRiga, abilitataModifica,\r\n}) => (\r\n
    \r\n \r\n {abilitataModifica && (\r\n apriModaleRecapito(true)}\r\n >\r\n \r\n Aggiungi recapito\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {listaRecapiti && listaRecapiti.length !== 0 ? (\r\n listaRecapiti.map((recapito, idx) => (\r\n // eslint-disable-next-line react/no-array-index-key\r\n \r\n \r\n {recapito.Telefono}\r\n \r\n \r\n \r\n {recapito.Cellulare}\r\n \r\n \r\n \r\n {recapito.Fax}\r\n \r\n \r\n \r\n {recapito.Email}\r\n \r\n \r\n \r\n {recapito.Predefinito && }\r\n \r\n \r\n \r\n {abilitataModifica && (\r\n
    \r\n \r\n\r\n {(recapito.Predefinito === false)\r\n && (\r\n
    \r\n rimuoviRiga(recapito.Id)}\r\n >\r\n \r\n \r\n
    \r\n )}\r\n
    \r\n )}\r\n
    \r\n \r\n
    \r\n )))\r\n : (\r\n \r\n \r\n -\r\n \r\n \r\n \r\n -\r\n \r\n \r\n \r\n -\r\n \r\n \r\n \r\n -\r\n \r\n \r\n \r\n -\r\n \r\n \r\n \r\n \r\n \r\n ) }\r\n
    \r\n \r\n
    \r\n);\r\n\r\nSezioneRecapiti.defaultProps = {\r\n listaRecapiti: [],\r\n abilitataModifica: true,\r\n};\r\n\r\nSezioneRecapiti.propTypes = {\r\n listaRecapiti: PropTypes.arrayOf(PropTypes.shape({\r\n\r\n })),\r\n abilitataModifica: PropTypes.bool,\r\n apriModaleRecapito: PropTypes.func.isRequired,\r\n rimuoviRiga: PropTypes.func.isRequired,\r\n modificaRiga: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default SezioneRecapiti;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Checkbox,\r\n EllipsisText,\r\n} from 'framework-ui-components';\r\nimport { Button, Table, useViewport } from 'framework-ui-components/Components/V2';\r\nimport AddIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/AddIcon';\r\nimport EditIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/EditIcon';\r\nimport DeleteIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/DeleteIcon';\r\nimport { primaLetteraMaiuscola } from 'framework-taskforce/utils/text';\r\nimport HeaderSezione from '../HeaderSezione';\r\n\r\nconst SezioneContiCorrente = ({\r\n listaContiCorrente, apriModaleContoCorrente, rimuoviRiga, modificaRiga, abilitataModifica,\r\n}) => {\r\n const { width } = useViewport();\r\n return (\r\n
    \r\n \r\n {abilitataModifica && (\r\n {\r\n apriModaleContoCorrente(true);\r\n modificaRiga({ contoCorrentePredefinito: listaContiCorrente.find((conto) => conto.Predefinito) });\r\n }}\r\n >\r\n \r\n Aggiungi conto corrente\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n 1600 ? '110px' : ''}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {listaContiCorrente && listaContiCorrente.length !== 0 ? (\r\n listaContiCorrente.map((contoCorrente, idx) => (\r\n // eslint-disable-next-line react/no-array-index-key\r\n \r\n \r\n
    \r\n {primaLetteraMaiuscola(contoCorrente.DescrizioneSede)}\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n {contoCorrente.DescrizioneFiliale}\r\n
    \r\n
    \r\n \r\n \r\n {contoCorrente.Iban}\r\n \r\n \r\n \r\n {contoCorrente.Predefinito && }\r\n \r\n \r\n \r\n \r\n {abilitataModifica && (\r\n
    \r\n {\r\n apriModaleContoCorrente(true);\r\n modificaRiga({ ...contoCorrente, contoCorrentePredefinito: listaContiCorrente.find((conto) => conto.Predefinito) });\r\n }}\r\n >\r\n \r\n \r\n
    \r\n rimuoviRiga(contoCorrente.Id)}\r\n >\r\n \r\n \r\n
    \r\n
    \r\n )}\r\n
    \r\n \r\n
    \r\n )))\r\n : (\r\n \r\n \r\n -\r\n \r\n \r\n \r\n -\r\n \r\n \r\n \r\n -\r\n \r\n \r\n \r\n \r\n \r\n \r\n ) }\r\n {listaContiCorrente && listaContiCorrente.length > 0 && (\r\n \r\n )}\r\n
    \r\n \r\n
    \r\n );\r\n};\r\n\r\nSezioneContiCorrente.defaultProps = {\r\n listaContiCorrente: [],\r\n abilitataModifica: true,\r\n};\r\n\r\nSezioneContiCorrente.propTypes = {\r\n listaContiCorrente: PropTypes.arrayOf(PropTypes.shape({\r\n\r\n })),\r\n abilitataModifica: PropTypes.bool,\r\n apriModaleContoCorrente: PropTypes.func.isRequired,\r\n rimuoviRiga: PropTypes.func.isRequired,\r\n modificaRiga: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default SezioneContiCorrente;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Button } from 'framework-ui-components/Components/V2';\r\nimport EditIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/EditIcon';\r\nimport AddIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/AddIcon';\r\nimport DeleteIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/DeleteIcon';\r\nimport HeaderSezione from '../HeaderSezione';\r\n\r\nconst SezioneCodiceSIA = ({\r\n codiceSia, apriModaleCodiceSia, rimuoviRiga, abilitataModifica,\r\n}) => (\r\n
    \r\n \r\n \r\n {abilitataModifica && (\r\n apriModaleCodiceSia(true)}\r\n >\r\n {!codiceSia || codiceSia === '' ? : }\r\n {!codiceSia || codiceSia === '' ? 'Aggiungi' : 'Modifica' } codice SIA\r\n \r\n )}\r\n {codiceSia && codiceSia !== '' && (\r\n\r\n rimuoviRiga()}\r\n >\r\n \r\n Elimina Codice SIA\r\n \r\n )}\r\n \r\n \r\n {codiceSia || '-'}\r\n
    \r\n);\r\n\r\nSezioneCodiceSIA.defaultProps = {\r\n codiceSia: null,\r\n abilitataModifica: true,\r\n};\r\n\r\nSezioneCodiceSIA.propTypes = {\r\n codiceSia: PropTypes.string,\r\n abilitataModifica: PropTypes.bool,\r\n apriModaleCodiceSia: PropTypes.func.isRequired,\r\n rimuoviRiga: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default SezioneCodiceSIA;\r\n","const PROVENIENZA_DATI_CONTRIBUENTE = {\r\n MANUALE: 1,\r\n DICHIARATIVO: 2,\r\n\r\n toString(val) {\r\n switch (val) {\r\n case this.MANUALE: return 'Inserito manualmente';\r\n case this.DICHIARATIVO: return 'Importato da dichiarativo';\r\n default: return '';\r\n }\r\n },\r\n};\r\n\r\nconst SOCIETA_DI_COMODO = {\r\n NON_DEFINITA: 0,\r\n ANNO_DICH: 1,\r\n ANNO_PREC_DICH: 2,\r\n DUE_ANNI_PREC_DICH: 3,\r\n TRE_ANNI_PREC_DICH: 4,\r\n\r\n toString(val) {\r\n switch (val) {\r\n case this.NON_DEFINITA: return 'Non definita';\r\n case this.ANNO_DICH: return 'Anno della dichiarazione';\r\n case this.ANNO_PREC_DICH: return 'Anno della dichiarazione e per quello precedente';\r\n case this.DUE_ANNI_PREC_DICH: return 'Anno della dichiarazione e per i 2 precedenti';\r\n case this.TRE_ANNI_PREC_DICH: return 'Anno della dichiarazione e per i 2 precedenti e senza operazioni rilevanti';\r\n default: return '';\r\n }\r\n },\r\n};\r\n\r\nexport {\r\n PROVENIENZA_DATI_CONTRIBUENTE,\r\n SOCIETA_DI_COMODO,\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Button, Table } from 'framework-ui-components/Components/V2';\r\nimport EditIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/EditIcon';\r\nimport AddIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/AddIcon';\r\nimport DeleteIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/DeleteIcon';\r\nimport { PROVENIENZA_DATI_CONTRIBUENTE } from '../../../../models/contribuente';\r\nimport HeaderSezione from '../HeaderSezione';\r\n\r\nconst SezioneEsoneroISA = ({\r\n listaDatiEsoneroISA, apriModaleDatiEsoneroISA, rimuoviRiga, modificaRiga, abilitataModifica,\r\n}) => (\r\n
    \r\n \r\n {abilitataModifica && (\r\n apriModaleDatiEsoneroISA(true)}\r\n >\r\n \r\n Aggiungi esonero ISA\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {listaDatiEsoneroISA && listaDatiEsoneroISA.length !== 0 ? (\r\n listaDatiEsoneroISA.map((datiEsoneroISA, idx) => (\r\n // eslint-disable-next-line react/no-array-index-key\r\n \r\n \r\n {datiEsoneroISA.AnnoDichiarativo}\r\n \r\n \r\n \r\n {datiEsoneroISA.DescrizioneTipoEsoneroISA}\r\n \r\n \r\n {(datiEsoneroISA.EsoneroISA != null)\r\n && (\r\n \r\n { datiEsoneroISA.EsoneroISA ? 'SI' : 'NO'}\r\n \r\n )}\r\n {(datiEsoneroISA.ScaglioneEsoneroISA != null)\r\n && (\r\n \r\n { datiEsoneroISA.DescrizioneScaglioneEsoneroISA}\r\n \r\n )}\r\n \r\n \r\n \r\n {abilitataModifica && (datiEsoneroISA.Provenienza !== PROVENIENZA_DATI_CONTRIBUENTE.DICHIARATIVO) && (\r\n
    \r\n \r\n
    \r\n rimuoviRiga(datiEsoneroISA.IdDatiEsoneroISA)}\r\n >\r\n \r\n \r\n
    \r\n
    \r\n )}\r\n
    \r\n \r\n
    \r\n )))\r\n : (\r\n \r\n \r\n -\r\n \r\n \r\n \r\n -\r\n \r\n \r\n \r\n -\r\n \r\n \r\n \r\n \r\n \r\n \r\n ) }\r\n
    \r\n \r\n
    \r\n);\r\n\r\nSezioneEsoneroISA.defaultProps = {\r\n listaDatiEsoneroISA: [],\r\n abilitataModifica: true,\r\n};\r\n\r\nSezioneEsoneroISA.propTypes = {\r\n listaDatiEsoneroISA: PropTypes.arrayOf(PropTypes.shape({\r\n\r\n })),\r\n abilitataModifica: PropTypes.bool,\r\n apriModaleDatiEsoneroISA: PropTypes.func.isRequired,\r\n rimuoviRiga: PropTypes.func.isRequired,\r\n modificaRiga: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default SezioneEsoneroISA;\r\n","/* eslint-disable no-nested-ternary */\r\nimport React, {\r\n useState, useEffect, useCallback, useRef,\r\n} from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Form, Input, Validation,\r\n} from 'framework-ui-components';\r\nimport {\r\n Modal, Button, FeedbackPanel,\r\n} from 'framework-ui-components/Components/V2';\r\nimport Log, { logApiError } from 'framework-taskforce/utils/log';\r\nimport { isEmptyObject } from 'framework-taskforce/utils/object';\r\nimport { getSegnalazioneError } from 'framework-taskforce/models/segnalazioni';\r\nimport {\r\n postAggiungiCodiceSIA,\r\n postModificaCodiceSIA,\r\n} from '../../../../../apis/anagraficaContribuente';\r\nimport TemplateGrid from '../../../../../components/TemplateGrid/TemplateGrid';\r\nimport SegnalazioniViewer from '../../../../../components/custom/SegnalazioniViewer';\r\n\r\nconst ModaleRecapito = ({\r\n onClose,\r\n idContribuente,\r\n show,\r\n codiceSia,\r\n}) => {\r\n const [loading, setLoading] = useState(false);\r\n const [isFormValid, setIsFormValid] = useState(false);\r\n const [esito, setEsito] = useState(null);\r\n const [formData, setFormData] = useState({ });\r\n const [segnalazioni, setSegnalazioni] = useState([]);\r\n\r\n const formRef = useRef();\r\n\r\n const presetForm = useCallback(({ FormErrors, ...datoModificato }) => {\r\n if (!formData || isEmptyObject(datoModificato)) return;\r\n const newStato = { ...formData, ...datoModificato };\r\n setFormData(newStato);\r\n }, [formData]);\r\n\r\n const resetDati = useCallback(() => {\r\n setLoading(false);\r\n setIsFormValid(false);\r\n setSegnalazioni([]);\r\n setEsito(null);\r\n setFormData({});\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (show) {\r\n resetDati();\r\n }\r\n }, [resetDati, show]);\r\n\r\n useEffect(() => {\r\n if (show && isEmptyObject(formData)) {\r\n presetForm({ CodiceSIA: codiceSia });\r\n }\r\n });\r\n\r\n useEffect(() => {\r\n if (!show) {\r\n // reset data on close\r\n resetDati();\r\n }\r\n }, [resetDati, setFormData, show]);\r\n\r\n const modificaCodiceSIA = useCallback(() => {\r\n const newOggettoModifica = {\r\n IdContribuente: idContribuente,\r\n ...formData,\r\n };\r\n\r\n if (codiceSia) {\r\n postModificaCodiceSIA(newOggettoModifica)\r\n .then((res) => {\r\n if (res.Success) {\r\n onClose(true);\r\n } else {\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n } else {\r\n postAggiungiCodiceSIA(newOggettoModifica)\r\n .then((res) => {\r\n if (res.Success) {\r\n onClose(true);\r\n } else {\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n }\r\n }, [codiceSia, formData, idContribuente, onClose]);\r\n\r\n return (\r\n onClose(esito)}\r\n className=\"contribuenti--modale-creazione\"\r\n initialPos={{ x: 'auto', y: window.innerHeight * 0.1 }}\r\n >\r\n \r\n {codiceSia ? 'Modifica codice SIA' : 'Aggiungi codice SIA'}\r\n \r\n \r\n setIsFormValid(validity)}\r\n >\r\n {!loading && segnalazioni.length > 0\r\n ? (\r\n \r\n
      \r\n {segnalazioni.map((segnalazione, idx) => (\r\n {segnalazione.msg}\r\n \r\n ))}\r\n
    \r\n
    \r\n )}\r\n type=\"alarm\"\r\n />\r\n )\r\n : (\r\n \r\n {segnalazioni && segnalazioni.length > 0 && (\r\n \r\n )}\r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n )}\r\n \r\n \r\n \r\n {segnalazioni.length === 0 ? (\r\n modificaCodiceSIA()}\r\n emphasis={Button.Emphasis.HIGH}\r\n primary\r\n disabled={!isFormValid}\r\n running={loading}\r\n >\r\n {codiceSia ? 'MODIFICA CODICE SIA' : 'AGGIUNGI CODICE SIA'}\r\n \r\n ) : (\r\n setSegnalazioni([])}\r\n emphasis={Button.Emphasis.HIGH}\r\n primary\r\n disabled={!isFormValid}\r\n running={loading}\r\n >\r\n RIPROVA\r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nModaleRecapito.defaultProps = {\r\n oggettoModifica: {},\r\n idContribuente: null,\r\n codiceSia: null,\r\n};\r\n\r\nModaleRecapito.propTypes = {\r\n onClose: PropTypes.func.isRequired,\r\n show: PropTypes.bool.isRequired,\r\n idContribuente: PropTypes.number,\r\n codiceSia: PropTypes.string,\r\n oggettoModifica: PropTypes.shape({\r\n TipoRecapito: PropTypes.string,\r\n Comune: PropTypes.string,\r\n Provincia: PropTypes.string,\r\n Toponimo: PropTypes.string,\r\n Descrizione: PropTypes.string,\r\n NumeroCivico: PropTypes.string,\r\n Cap: PropTypes.string,\r\n Frazione: PropTypes.string,\r\n }),\r\n};\r\n\r\nexport default ModaleRecapito;\r\n","/* eslint-disable no-nested-ternary */\r\nimport React, {\r\n useState, useEffect, useCallback, useRef, useMemo,\r\n} from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Form, Input, Restriction, Select, Validation,\r\n} from 'framework-ui-components';\r\nimport {\r\n Modal, Button, FeedbackPanel,\r\n} from 'framework-ui-components/Components/V2';\r\nimport { useSelector } from 'react-redux';\r\nimport Log, { logApiError } from 'framework-taskforce/utils/log';\r\nimport { isEmptyObject } from 'framework-taskforce/utils/object';\r\nimport { getSegnalazioneError } from 'framework-taskforce/models/segnalazioni';\r\nimport { TIPO_ESONERO_ISA } from '../../../../../models/anagrafica';\r\nimport {\r\n postAggiungiDatiEsoneroISA,\r\n postModificaDatiEsoneroISA,\r\n getOttieniScaglioniEsoneroISA,\r\n} from '../../../../../apis/anagraficaContribuente';\r\nimport TemplateGrid from '../../../../../components/TemplateGrid/TemplateGrid';\r\nimport CheckboxTitle from '../../../../../components/custom/CheckboxTitle';\r\nimport SegnalazioniViewer from '../../../../../components/custom/SegnalazioniViewer';\r\n\r\nconst ModaleEsoneroISA = ({\r\n onClose,\r\n show,\r\n oggettoModifica,\r\n}) => {\r\n const studioSelezionato = useSelector((store) => store.appParams.studioSelezionato);\r\n const idContribuente = useSelector((store) => store.soggetto.idContribuente);\r\n const [loading, setLoading] = useState(false);\r\n const [isFormValid, setIsFormValid] = useState(false);\r\n const [esito, setEsito] = useState(null);\r\n const [scaglioniEsoneroISA, setScaglioniEsoneroISA] = useState(null);\r\n const [formData, setFormData] = useState({ });\r\n const [segnalazioni, setSegnalazioni] = useState([]);\r\n\r\n const isModifica = useMemo(\r\n () => (!isEmptyObject(oggettoModifica)),\r\n [oggettoModifica],\r\n );\r\n\r\n const formRef = useRef();\r\n\r\n const presetForm = useCallback(({ FormErrors, ...datoModificato }) => {\r\n if (!formData || isEmptyObject(datoModificato)) return;\r\n if ((formData.AnnoDichiarativo <= 2023 && formData.TipoEsoneroISA === TIPO_ESONERO_ISA.REDDITI)\r\n || (formData.AnnoDichiarativo <= 2024 && formData.TipoEsoneroISA === TIPO_ESONERO_ISA.IVA)) {\r\n formData.ScaglioneEsoneroISA = null;\r\n formData.EsoneroISA = formData.EsoneroISA ? formData.EsoneroISA : false;\r\n } else {\r\n formData.EsoneroISA = null;\r\n }\r\n const newStato = { ...formData, ...datoModificato };\r\n setFormData(newStato);\r\n }, [formData]);\r\n\r\n const resetDati = useCallback(() => {\r\n setLoading(false);\r\n setIsFormValid(false);\r\n setSegnalazioni([]);\r\n setEsito(null);\r\n setFormData({});\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (show) {\r\n resetDati();\r\n }\r\n }, [resetDati, show]);\r\n\r\n useEffect(() => {\r\n if (show && isModifica && isEmptyObject(formData)) {\r\n presetForm({\r\n AnnoDichiarativo: oggettoModifica.AnnoDichiarativo,\r\n TipoEsoneroISA: `${oggettoModifica.TipoEsoneroISA}`,\r\n EsoneroISA: oggettoModifica.EsoneroISA,\r\n ScaglioneEsoneroISA: oggettoModifica.ScaglioneEsoneroISA,\r\n });\r\n }\r\n });\r\n\r\n useEffect(() => {\r\n if (!show) {\r\n // reset data on close\r\n resetDati();\r\n }\r\n }, [resetDati, setFormData, show]);\r\n\r\n useEffect(() => {\r\n if (!scaglioniEsoneroISA) {\r\n getOttieniScaglioniEsoneroISA()\r\n .then((res) => {\r\n setScaglioniEsoneroISA(res.Result);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n });\r\n }\r\n }, [scaglioniEsoneroISA]);\r\n\r\n const modificaDatiEsoneroISA = useCallback(() => {\r\n const newOggettoModifica = {\r\n IdContribuente: idContribuente,\r\n ...formData,\r\n };\r\n newOggettoModifica.IdDatiEsoneroISA = oggettoModifica.IdDatiEsoneroISA;\r\n postModificaDatiEsoneroISA(newOggettoModifica)\r\n .then((res) => {\r\n if (res.Success) {\r\n onClose(true);\r\n } else {\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n }, [formData, onClose]);\r\n\r\n const aggiungiDatiEsoneroISA = useCallback(() => {\r\n const oggettoCreazione = {\r\n IdContribuente: idContribuente,\r\n ...formData,\r\n };\r\n\r\n postAggiungiDatiEsoneroISA(oggettoCreazione)\r\n .then((res) => {\r\n if (res.Success) {\r\n onClose(true);\r\n } else {\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n }, [formData, idContribuente, onClose]);\r\n\r\n return (\r\n onClose(esito)}\r\n className=\"contribuenti--modale-creazione\"\r\n initialPos={{ x: 'auto', y: window.innerHeight * 0.1 }}\r\n >\r\n \r\n {isModifica ? 'Modifica ' : 'Nuovo '} Esonero ISA\r\n \r\n \r\n setIsFormValid(validity)}\r\n >\r\n {!loading && segnalazioni.length > 0\r\n ? (\r\n \r\n
      \r\n {segnalazioni.map((segnalazione, idx) => (\r\n {segnalazione.msg}\r\n \r\n ))}\r\n
    \r\n
    \r\n )}\r\n type=\"alarm\"\r\n />\r\n )\r\n : (\r\n \r\n {segnalazioni && segnalazioni.length > 0 && (\r\n \r\n )}\r\n
    \r\n \r\n \r\n Redditi\r\n IVA\r\n \r\n \r\n { (formData.AnnoDichiarativo > 2000)\r\n && ((formData.AnnoDichiarativo <= 2023 && formData.TipoEsoneroISA === TIPO_ESONERO_ISA.REDDITI)\r\n || (formData.AnnoDichiarativo <= 2024 && formData.TipoEsoneroISA === TIPO_ESONERO_ISA.IVA)) && (\r\n \r\n )}\r\n {((formData.AnnoDichiarativo > 2023 && formData.TipoEsoneroISA === TIPO_ESONERO_ISA.REDDITI)\r\n || (formData.AnnoDichiarativo > 2024 && formData.TipoEsoneroISA === TIPO_ESONERO_ISA.IVA)) && (\r\n \r\n { scaglioniEsoneroISA.map((opt) => (\r\n {opt.Item2}\r\n ))}\r\n \r\n )}\r\n \r\n
    \r\n
    \r\n )}\r\n \r\n \r\n \r\n {segnalazioni.length === 0 ? (\r\n { isModifica ? modificaDatiEsoneroISA() : aggiungiDatiEsoneroISA(); }}\r\n emphasis={Button.Emphasis.HIGH}\r\n primary\r\n disabled={!isFormValid}\r\n running={loading}\r\n >\r\n {isModifica ? 'MODIFICA ' : 'AGGIUNGI '}ESONERO ISA\r\n \r\n ) : (\r\n setSegnalazioni([])}\r\n emphasis={Button.Emphasis.HIGH}\r\n primary\r\n disabled={!isFormValid}\r\n running={loading}\r\n >\r\n RIPROVA\r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nModaleEsoneroISA.defaultProps = {\r\n oggettoModifica: {},\r\n};\r\n\r\nModaleEsoneroISA.propTypes = {\r\n onClose: PropTypes.func.isRequired,\r\n show: PropTypes.bool.isRequired,\r\n oggettoModifica: PropTypes.shape({\r\n TipoEsonero: PropTypes.string,\r\n AnnoDichiarativo: PropTypes.string,\r\n Esonerato: PropTypes.bool,\r\n }),\r\n};\r\n\r\nexport default ModaleEsoneroISA;\r\n","/* eslint-disable no-nested-ternary */\r\nimport React, {\r\n useState, useEffect, useCallback, useRef, useMemo,\r\n} from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Form, Input, Restriction,\r\n} from 'framework-ui-components';\r\nimport {\r\n Modal, Button, FeedbackPanel,\r\n} from 'framework-ui-components/Components/V2';\r\nimport { useSelector } from 'react-redux';\r\nimport Log, { logApiError } from 'framework-taskforce/utils/log';\r\nimport { isEmptyObject } from 'framework-taskforce/utils/object';\r\nimport { getSegnalazioneError } from 'framework-taskforce/models/segnalazioni';\r\nimport TemplateGrid from '../../../../../components/TemplateGrid/TemplateGrid';\r\nimport CheckboxTitle from '../../../../../components/custom/CheckboxTitle';\r\nimport SegnalazioniViewer from '../../../../../components/custom/SegnalazioniViewer';\r\nimport { postAggiungiRecapito, postModificaRecapito } from '../../../../../apis/anagrafiche';\r\n\r\nconst ModaleRecapito = ({\r\n onClose,\r\n idAnagrafica,\r\n show,\r\n oggettoModifica,\r\n}) => {\r\n const studioSelezionato = useSelector((store) => store.appParams.studioSelezionato);\r\n\r\n const [loading, setLoading] = useState(false);\r\n const [isFormValid, setIsFormValid] = useState(false);\r\n const [esito, setEsito] = useState(null);\r\n const [formData, setFormData] = useState({ });\r\n const [segnalazioni, setSegnalazioni] = useState([]);\r\n\r\n const isModifica = useMemo(\r\n () => (!isEmptyObject(oggettoModifica)),\r\n [oggettoModifica],\r\n );\r\n\r\n const formRef = useRef();\r\n\r\n const presetForm = useCallback(({ FormErrors, ...datoModificato }) => {\r\n if (!formData || isEmptyObject(datoModificato)) return;\r\n const newStato = { ...formData, ...datoModificato };\r\n setFormData(newStato);\r\n }, [formData]);\r\n\r\n const resetDati = useCallback(() => {\r\n setLoading(false);\r\n setIsFormValid(false);\r\n setSegnalazioni([]);\r\n setEsito(null);\r\n setFormData({});\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (show) {\r\n resetDati();\r\n }\r\n }, [resetDati, show]);\r\n\r\n useEffect(() => {\r\n if (show && isModifica && isEmptyObject(formData)) {\r\n presetForm({ ...oggettoModifica });\r\n }\r\n });\r\n\r\n useEffect(() => {\r\n if (!show) {\r\n // reset data on close\r\n resetDati();\r\n }\r\n }, [resetDati, setFormData, show]);\r\n\r\n const modificaRecapito = useCallback(() => {\r\n const newOggettoModifica = {\r\n ...formData,\r\n };\r\n newOggettoModifica.IdRecapito = newOggettoModifica.Id;\r\n\r\n postModificaRecapito(newOggettoModifica)\r\n .then((res) => {\r\n if (res.Success) {\r\n onClose(true);\r\n } else {\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n }, [formData, onClose]);\r\n\r\n const aggiungiRecapito = useCallback(() => {\r\n const oggettoCreazione = {\r\n IdStudio: studioSelezionato,\r\n IdAnagrafica: idAnagrafica,\r\n ...formData,\r\n };\r\n\r\n postAggiungiRecapito(oggettoCreazione)\r\n .then((res) => {\r\n if (res.Success) {\r\n onClose(true);\r\n } else {\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n }, [formData, idAnagrafica, onClose, studioSelezionato]);\r\n\r\n return (\r\n onClose(esito)}\r\n className=\"contribuenti--modale-creazione\"\r\n initialPos={{ x: 'auto', y: window.innerHeight * 0.1 }}\r\n >\r\n \r\n {isModifica ? 'Modifica ' : 'Nuovo '} recapito\r\n \r\n \r\n setIsFormValid(validity)}\r\n >\r\n {!loading && segnalazioni.length > 0\r\n ? (\r\n \r\n
      \r\n {segnalazioni.map((segnalazione, idx) => (\r\n {segnalazione.msg}\r\n \r\n ))}\r\n
    \r\n
    \r\n )}\r\n type=\"alarm\"\r\n />\r\n )\r\n : (\r\n \r\n {segnalazioni && segnalazioni.length > 0 && (\r\n \r\n )}\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n )}\r\n \r\n \r\n \r\n {segnalazioni.length === 0 ? (\r\n { isModifica ? modificaRecapito() : aggiungiRecapito(); }}\r\n emphasis={Button.Emphasis.HIGH}\r\n primary\r\n disabled={!isFormValid}\r\n running={loading}\r\n >\r\n {isModifica ? 'MODIFICA ' : 'AGGIUNGI '}RECAPITO\r\n \r\n ) : (\r\n setSegnalazioni([])}\r\n emphasis={Button.Emphasis.HIGH}\r\n primary\r\n disabled={!isFormValid}\r\n running={loading}\r\n >\r\n RIPROVA\r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nModaleRecapito.defaultProps = {\r\n oggettoModifica: {},\r\n idAnagrafica: null,\r\n};\r\n\r\nModaleRecapito.propTypes = {\r\n onClose: PropTypes.func.isRequired,\r\n show: PropTypes.bool.isRequired,\r\n idAnagrafica: PropTypes.number,\r\n oggettoModifica: PropTypes.shape({\r\n TipoRecapito: PropTypes.string,\r\n Comune: PropTypes.string,\r\n Provincia: PropTypes.string,\r\n Toponimo: PropTypes.string,\r\n Descrizione: PropTypes.string,\r\n NumeroCivico: PropTypes.string,\r\n Cap: PropTypes.string,\r\n Frazione: PropTypes.string,\r\n }),\r\n};\r\n\r\nexport default ModaleRecapito;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Autocomplete,\r\n Input,\r\n Restriction,\r\n Validation,\r\n} from 'framework-ui-components';\r\nimport { Layout } from 'framework-ui-components/Components/V2';\r\nimport { cercaNatureGiuridiche } from '../../../../apis/anagrafiche';\r\n\r\nconst DatiAnagraficiPersonaGiuridicaFields = ({\r\n datiAnagraficaEditabili, segnalazioni, presetForm,\r\n}) => (\r\n \r\n 0 ? 'mt-16' : 'mt-15'}\r\n >\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n 0 ? 'mt-16' : 'mt-15'}\r\n >\r\n \r\n {\r\n presetForm({\r\n IdNaturaGiuridica: val.IdNaturaGiuridica,\r\n NaturaGiuridica: val.Descrizione,\r\n });\r\n }}\r\n readOnly={!datiAnagraficaEditabili}\r\n />\r\n \r\n\r\n \r\n \r\n \r\n);\r\n\r\nDatiAnagraficiPersonaGiuridicaFields.defaultProps = {\r\n segnalazioni: [],\r\n};\r\n\r\nDatiAnagraficiPersonaGiuridicaFields.propTypes = {\r\n datiAnagraficaEditabili: PropTypes.bool.isRequired,\r\n segnalazioni: PropTypes.arrayOf(\r\n PropTypes.shape({\r\n type: PropTypes.number.isRequired,\r\n }),\r\n ),\r\n presetForm: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default DatiAnagraficiPersonaGiuridicaFields;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Checkbox,\r\n Formatter,\r\n} from 'framework-ui-components';\r\nimport { Button, Table, useViewport } from 'framework-ui-components/Components/V2';\r\nimport AddIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/AddIcon';\r\nimport EditIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/EditIcon';\r\nimport DeleteIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/DeleteIcon';\r\nimport HeaderSezione from '../HeaderSezione';\r\n\r\nconst SezioneRappresentanti = ({\r\n listaRappresentanti, apriModaleRappresentante, rimuoviRiga, modificaRiga, abilitataModifica,\r\n}) => {\r\n const { width } = useViewport();\r\n return (\r\n
    \r\n \r\n {abilitataModifica && (\r\n apriModaleRappresentante(true)}\r\n >\r\n \r\n Aggiungi rappresentante\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n 1600 ? '90px' : ''}\r\n />\r\n \r\n 1600 ? '90px' : ''}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {listaRappresentanti && listaRappresentanti.length !== 0 ? (\r\n listaRappresentanti.map((rappresentante, idx) => (\r\n // eslint-disable-next-line react/no-array-index-key\r\n \r\n \r\n {rappresentante.Rappresentante}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {rappresentante.Predefinito && }\r\n \r\n \r\n \r\n {abilitataModifica && (\r\n
    \r\n \r\n
    \r\n rimuoviRiga(rappresentante.Id)}\r\n >\r\n \r\n \r\n
    \r\n
    \r\n )}\r\n
    \r\n \r\n
    \r\n )))\r\n : (\r\n \r\n \r\n -\r\n \r\n \r\n \r\n -\r\n \r\n \r\n \r\n -\r\n \r\n \r\n \r\n -\r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n ) }\r\n \r\n \r\n
    \r\n );\r\n};\r\n\r\nSezioneRappresentanti.defaultProps = {\r\n listaRappresentanti: [],\r\n};\r\n\r\nSezioneRappresentanti.propTypes = {\r\n listaRappresentanti: PropTypes.arrayOf(PropTypes.shape({\r\n\r\n })),\r\n apriModaleRappresentante: PropTypes.func.isRequired,\r\n rimuoviRiga: PropTypes.func.isRequired,\r\n modificaRiga: PropTypes.func.isRequired,\r\n abilitataModifica: PropTypes.bool.isRequired,\r\n};\r\n\r\nexport default SezioneRappresentanti;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Autocomplete, Heading, Input, Restriction, Validation,\r\n} from 'framework-ui-components';\r\nimport TemplateGrid from '../../../../../components/TemplateGrid/TemplateGrid';\r\nimport { cercaComuni, cercaToponimi } from '../../../../../apis/anagrafiche';\r\n\r\nconst SezioneSedeLegale = ({\r\n onChangeAutocompletes,\r\n setDatiResidenzaModificati,\r\n// idEnte,\r\n// campiSpecifici,\r\n// idCodiceTributo,\r\n// periodoDa,\r\n// periodoA,\r\n// annoRiferimentoDa,\r\n// erroreImportoLimitato,\r\n// limiteUnico,\r\n}) => (\r\n
    \r\n \r\n \r\n {\r\n onChangeAutocompletes('CodiceComune', val);\r\n setDatiResidenzaModificati(true);\r\n }\r\n }\r\n name=\"CodiceComuneDescrizioneComposta\"\r\n title=\"Comune\"\r\n url={cercaComuni()}\r\n renderProperty=\"DescrizioneComposta\"\r\n validations={[\r\n Validation.DefaultRules.required,\r\n ]}\r\n />\r\n \r\n \r\n \r\n {\r\n onChangeAutocompletes('Toponimo', val);\r\n setDatiResidenzaModificati(true);\r\n }}\r\n name=\"ToponimoDescrizione\"\r\n title=\"Toponimo\"\r\n url={cercaToponimi()}\r\n renderProperty=\"Descrizione\"\r\n validations={[\r\n Validation.DefaultRules.required,\r\n ]}\r\n />\r\n setDatiResidenzaModificati(true)}\r\n maxLength={40}\r\n />\r\n setDatiResidenzaModificati(true)}\r\n maxLength={20}\r\n />\r\n \r\n \r\n setDatiResidenzaModificati(true)}\r\n maxLength={5}\r\n />\r\n setDatiResidenzaModificati(true)}\r\n maxLength={40}\r\n />\r\n \r\n
    \r\n);\r\n\r\nSezioneSedeLegale.defaultProps = {\r\n// annoRiferimentoDa: 0,\r\n// erroreImportoLimitato: false,\r\n};\r\n\r\nSezioneSedeLegale.propTypes = {\r\n onChangeAutocompletes: PropTypes.func.isRequired,\r\n setDatiResidenzaModificati: PropTypes.func.isRequired,\r\n// campiSpecifici: PropTypes.arrayOf(PropTypes.object).isRequired,\r\n// idCodiceTributo: PropTypes.number.isRequired,\r\n// periodoDa: PropTypes.string.isRequired,\r\n// periodoA: PropTypes.string.isRequired,\r\n// idEnte: PropTypes.number.isRequired,\r\n// annoRiferimentoDa: PropTypes.number,\r\n// erroreImportoLimitato: PropTypes.bool,\r\n// limiteUnico: PropTypes.bool.isRequired,\r\n};\r\n\r\nexport default SezioneSedeLegale;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Autocomplete, DatePicker, Heading, Input, Radio, Restriction, Validation,\r\n} from 'framework-ui-components';\r\nimport { TIPO_PERSONA } from '../../../../../models/anagrafica';\r\nimport TemplateGrid from '../../../../../components/TemplateGrid/TemplateGrid';\r\nimport { cercaNatureGiuridiche } from '../../../../../apis/anagrafiche';\r\n\r\nconst SezioneDatiAnagraficiConTipo = ({\r\n valutaEsistenzaAnagrafica,\r\n valutaEsistenzaAnagraficaRadio,\r\n datiAnagraficiEditabili,\r\n dataDiNascitaEditabile,\r\n partitaIvaEditabile,\r\n tipoPersona,\r\n onChangeAutocompletes,\r\n idAnagraficaRappresentante,\r\n setDatiAnagraficiModificati,\r\n}) => (\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n {`${tipoPersona}` === `${TIPO_PERSONA.PERSONA_FISICA}` ? (\r\n \r\n \r\n setDatiAnagraficiModificati(true)}\r\n />\r\n setDatiAnagraficiModificati(true)}\r\n />\r\n \r\n \r\n setDatiAnagraficiModificati(true)}\r\n />\r\n setDatiAnagraficiModificati(true)}\r\n />\r\n setDatiAnagraficiModificati(true)}\r\n />\r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n\r\n \r\n onChangeAutocompletes('NaturaGiuridica', val)}\r\n validations={[Validation.DefaultRules.required]}\r\n readOnly={idAnagraficaRappresentante !== null}\r\n />\r\n \r\n )}\r\n
    \r\n);\r\n\r\nSezioneDatiAnagraficiConTipo.defaultProps = {\r\n tipoPersona: 1,\r\n idAnagraficaRappresentante: null,\r\n};\r\n\r\nSezioneDatiAnagraficiConTipo.propTypes = {\r\n valutaEsistenzaAnagrafica: PropTypes.func.isRequired,\r\n datiAnagraficiEditabili: PropTypes.bool.isRequired,\r\n dataDiNascitaEditabile: PropTypes.bool.isRequired,\r\n partitaIvaEditabile: PropTypes.bool.isRequired,\r\n tipoPersona: PropTypes.number,\r\n onChangeAutocompletes: PropTypes.func.isRequired,\r\n idAnagraficaRappresentante: PropTypes.number,\r\n valutaEsistenzaAnagraficaRadio: PropTypes.func.isRequired,\r\n setDatiAnagraficiModificati: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default SezioneDatiAnagraficiConTipo;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Autocomplete, Heading, Input, Restriction, Validation,\r\n} from 'framework-ui-components';\r\nimport TemplateGrid from '../../../../../components/TemplateGrid/TemplateGrid';\r\nimport { cercaComuni, cercaToponimi } from '../../../../../apis/anagrafiche';\r\n\r\nconst SezioneResidenza = ({\r\n onChangeAutocompletes,\r\n setDatiResidenzaModificati,\r\n// idEnte,\r\n// campiSpecifici,\r\n// idCodiceTributo,\r\n// periodoDa,\r\n// periodoA,\r\n// annoRiferimentoDa,\r\n// erroreImportoLimitato,\r\n// limiteUnico,\r\n}) => (\r\n
    \r\n \r\n \r\n {\r\n onChangeAutocompletes('CodiceComune', val);\r\n setDatiResidenzaModificati(true);\r\n }\r\n }\r\n name=\"CodiceComuneDescrizioneComposta\"\r\n title=\"Comune\"\r\n url={cercaComuni()}\r\n renderProperty=\"DescrizioneComposta\"\r\n validations={[\r\n Validation.DefaultRules.required,\r\n ]}\r\n />\r\n \r\n \r\n \r\n {\r\n onChangeAutocompletes('Toponimo', val);\r\n setDatiResidenzaModificati(true);\r\n }\r\n }\r\n name=\"ToponimoDescrizione\"\r\n title=\"Toponimo\"\r\n url={cercaToponimi()}\r\n renderProperty=\"Descrizione\"\r\n validations={[\r\n Validation.DefaultRules.required,\r\n ]}\r\n />\r\n setDatiResidenzaModificati(true)}\r\n />\r\n setDatiResidenzaModificati(true)}\r\n maxLength={20}\r\n />\r\n \r\n \r\n \r\n setDatiResidenzaModificati(true)}\r\n maxLength={40}\r\n />\r\n \r\n
    \r\n);\r\n\r\nSezioneResidenza.defaultProps = {\r\n// annoRiferimentoDa: 0,\r\n// erroreImportoLimitato: false,\r\n};\r\n\r\nSezioneResidenza.propTypes = {\r\n onChangeAutocompletes: PropTypes.func.isRequired,\r\n setDatiResidenzaModificati: PropTypes.func.isRequired,\r\n// campiSpecifici: PropTypes.arrayOf(PropTypes.object).isRequired,\r\n// idCodiceTributo: PropTypes.number.isRequired,\r\n// periodoDa: PropTypes.string.isRequired,\r\n// periodoA: PropTypes.string.isRequired,\r\n// idEnte: PropTypes.number.isRequired,\r\n// annoRiferimentoDa: PropTypes.number,\r\n// erroreImportoLimitato: PropTypes.bool,\r\n// limiteUnico: PropTypes.bool.isRequired,\r\n};\r\n\r\nexport default SezioneResidenza;\r\n","/* eslint-disable no-nested-ternary */\r\nimport React, {\r\n useState, useEffect, useCallback, useRef, useMemo,\r\n} from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n DatePicker, Form, Heading,\r\n} from 'framework-ui-components';\r\nimport {\r\n Modal, Button, FeedbackPanel,\r\n} from 'framework-ui-components/Components/V2';\r\nimport { useSelector } from 'react-redux';\r\nimport Log, { logApiError } from 'framework-taskforce/utils/log';\r\nimport { isEmptyObject } from 'framework-taskforce/utils/object';\r\nimport { getSegnalazioneError } from 'framework-taskforce/models/segnalazioni';\r\nimport { TIPO_INDIRIZZO, TIPO_PERSONA } from '../../../../../models/anagrafica';\r\nimport SezioneSedeLegale from './SezioneSedeLegale';\r\nimport SezioneDatiAnagraficiConTipo from './SezioneDatiAnagraficiConTipo';\r\nimport SezioneResidenza from './SezioneResidenza';\r\nimport CheckboxTitle from '../../../../../components/custom/CheckboxTitle';\r\nimport TemplateGrid from '../../../../../components/TemplateGrid/TemplateGrid';\r\nimport SegnalazioniViewer from '../../../../../components/custom/SegnalazioniViewer';\r\nimport {\r\n getOttieniDatiDaCodiceFiscale,\r\n getOttieniIndirizzoResidenzaFiscale,\r\n getOttieniIndirizzoSedeLegale,\r\n getOttieniPersonaFisica,\r\n getOttieniPersonaFisicaById,\r\n getOttieniPersonaGiuridica,\r\n getOttieniPersonaGiuridicaById,\r\n postAggiungiIndirizzo,\r\n postAggiungiRappresentante,\r\n postCreaAnagraficaPersonaFisica,\r\n postCreaAnagraficaPersonaGiuridica,\r\n postModificaAnagraficaPersonaFisica,\r\n postModificaIndirizzo,\r\n postModificaRappresentante,\r\n} from '../../../../../apis/anagrafiche';\r\n\r\nconst MODIFICHE_RAPPRESENTANTE = {\r\n ANAGRAFICA: 'modifica-anagrafica-rappresentante',\r\n RESIDENZA: 'modifica-residenza-rappresentante',\r\n DATI: 'modifica-dati-rappresentante',\r\n};\r\n\r\nconst ModaleRappresentante = ({\r\n onClose,\r\n idAnagraficaProps,\r\n show,\r\n oggettoModifica,\r\n}) => {\r\n const codiceUfficioSelezionato = useSelector((store) => store.appParams.ufficioSelezionato);\r\n const studioSelezionato = useSelector((store) => store.appParams.studioSelezionato);\r\n\r\n const [loading, setLoading] = useState(false);\r\n const [isFormValid, setIsFormValid] = useState(false);\r\n const [esito, setEsito] = useState(null);\r\n const [formData, setFormData] = useState({ TipoPersona: TIPO_PERSONA.PERSONA_FISICA });\r\n const [segnalazioni, setSegnalazioni] = useState([]);\r\n const [codiceFiscaleOld, setCodiceFiscaleOld] = useState(formData.CodiceFiscale);\r\n const [partitaIvaEditabile, setPartitaIvaEditabile] = useState(true);\r\n const [datiAnagraficiEditabili, setDatiAnagraficiEditabili] = useState(false);\r\n const [dataDiNascitaEditabile, setDataDiNascitaEditabile] = useState(true);\r\n const [datiAnagraficiModificati, setDatiAnagraficiModificati] = useState(false);\r\n const [datiResidenzaModificati, setDatiResidenzaModificati] = useState(false);\r\n const [datiRappresentanteModificati, setDatiRappresentanteModificati] = useState(false);\r\n const [chiamateDiModificaEffettuate, setChiamateDiModificaEffettuate] = useState([]);\r\n const [chiamateDiModificaComplete, setChiamateDiModificaComplete] = useState([]);\r\n\r\n const isModifica = useMemo(\r\n () => (!isEmptyObject(oggettoModifica)),\r\n [oggettoModifica],\r\n );\r\n\r\n const formRef = useRef();\r\n\r\n const presetForm = useCallback(({ FormErrors, ...datoModificato }) => {\r\n if (!formData || isEmptyObject(datoModificato)) return;\r\n const newStato = { ...formData, ...datoModificato };\r\n setFormData(newStato);\r\n }, [formData]);\r\n\r\n const resetDati = useCallback(() => {\r\n setLoading(false);\r\n setIsFormValid(false);\r\n setSegnalazioni([]);\r\n setEsito(null);\r\n setFormData({ TipoPersona: TIPO_PERSONA.PERSONA_FISICA });\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (show) {\r\n resetDati();\r\n }\r\n }, [resetDati, show]);\r\n\r\n useEffect(() => {\r\n if (!show) {\r\n // reset data on close\r\n resetDati();\r\n }\r\n }, [resetDati, setFormData, show]);\r\n\r\n const recuperaResidenzaOSedeLegale = useCallback((idAnagrafica, datiAnagrafici) => {\r\n if (idAnagrafica) {\r\n ((oggettoModifica.TipoPersona || formData.TipoPersona)\r\n === TIPO_PERSONA.PERSONA_FISICA ? getOttieniIndirizzoResidenzaFiscale : getOttieniIndirizzoSedeLegale)(idAnagrafica)\r\n .then((res) => {\r\n if (res.Success && res.Result) {\r\n presetForm({\r\n ...oggettoModifica,\r\n ...datiAnagrafici,\r\n Id: res.Result.Id,\r\n TipoIndirizzo: res.Result.TipoIndirizzo,\r\n IdComune: res.Result.IdComune,\r\n IdToponimo: res.Result.IdToponimo,\r\n DescrizioneTipoIndirizzo: res.Result.DescrizioneTipoIndirizzo,\r\n CodiceComuneDescrizioneComposta: res.Result.Comune,\r\n ComuneCodiceProvincia: res.Result.Provincia,\r\n IndirizzoDescrizione: res.Result.Descrizione,\r\n NumeroCivico: res.Result.NumeroCivico,\r\n Frazione: res.Result.Frazione,\r\n ToponimoDescrizione: res.Result.Toponimo,\r\n Cap: res.Result.Cap,\r\n });\r\n } else {\r\n presetForm({\r\n ...datiAnagrafici,\r\n });\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n } else {\r\n presetForm({\r\n ...datiAnagrafici,\r\n Id: null,\r\n TipoIndirizzo: null,\r\n IdComune: null,\r\n IdToponimo: null,\r\n DescrizioneTipoIndirizzo: null,\r\n CodiceComuneDescrizioneComposta: null,\r\n ComuneCodiceProvincia: null,\r\n IndirizzoDescrizione: null,\r\n NumeroCivico: null,\r\n Frazione: null,\r\n ToponimoDescrizione: null,\r\n Cap: null,\r\n });\r\n\r\n setLoading(false);\r\n }\r\n }, [formData.TipoPersona, oggettoModifica, presetForm]);\r\n\r\n useEffect(() => {\r\n if (show) {\r\n if (isModifica && !formData.IdAnagraficaRappresentante) {\r\n const idAnagraficaRappresentante = oggettoModifica.IdAnagraficaRappresentante;\r\n (oggettoModifica.TipoPersona === TIPO_PERSONA.PERSONA_FISICA ? getOttieniPersonaFisicaById : getOttieniPersonaGiuridicaById)(idAnagraficaRappresentante)\r\n .then((res) => {\r\n if (res.Success && res.Result) {\r\n // caso particolare partita iva editabile perchè non in anagrafica unica\r\n if (!res.Result.PartitaIva) {\r\n setPartitaIvaEditabile(true);\r\n } else {\r\n setPartitaIvaEditabile(false);\r\n }\r\n // Esiste l'anagrafica e valorizzo i dati\r\n const datiAnagrafici = {\r\n // Contribuente\r\n CodiceSIA: res.Result.CodiceSIA,\r\n\r\n // Anagrafica\r\n IdAnagraficaRappresentante: res.Result.IdAnagrafica,\r\n CodiceFiscale: res.Result.CodiceFiscale,\r\n PartitaIva: res.Result.PartitaIva,\r\n Cognome: res.Result.Cognome,\r\n Nome: res.Result.Nome,\r\n Sesso: res.Result.Sesso,\r\n DataDiNascita: res.Result.DataDiNascita,\r\n IdLuogoDiNascita: res.Result.IdLuogoDiNascita,\r\n RagioneSociale: res.Result.RagioneSociale,\r\n IdNaturaGiuridica: res.Result.IdNaturaGiuridica,\r\n NaturaGiuridica: res.Result.NaturaGiuridica,\r\n TipoPersona: oggettoModifica.TipoPersona,\r\n };\r\n setDatiAnagraficiEditabili(false);\r\n recuperaResidenzaOSedeLegale(res.Result.IdAnagrafica, datiAnagrafici);\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n }\r\n }\r\n }, [formData.IdAnagraficaRappresentante,\r\n isModifica,\r\n oggettoModifica.IdAnagraficaRappresentante,\r\n oggettoModifica.TipoPersona,\r\n recuperaResidenzaOSedeLegale,\r\n resetDati, show]);\r\n\r\n // controlla l'esistenza di una anagrafica\r\n const esisteOttieniAnagrafica = useCallback((codiceFiscale, tipoPersona) => {\r\n setLoading(true);\r\n (tipoPersona === TIPO_PERSONA.PERSONA_FISICA ? getOttieniPersonaFisica : getOttieniPersonaGiuridica)(studioSelezionato, codiceFiscale)\r\n .then((res) => {\r\n if (res.Success && res.Result) {\r\n // caso particolare partita iva editabile perchè non in anagrafica unica\r\n if (!res.Result.PartitaIva) {\r\n setPartitaIvaEditabile(true);\r\n } else {\r\n setPartitaIvaEditabile(false);\r\n }\r\n // Esiste l'anagrafica e valorizzo i dati\r\n const datiAnagrafici = {\r\n // Contribuente\r\n IdContribuente: res.Result.IdContribuente,\r\n CodiceSIA: res.Result.CodiceSIA,\r\n\r\n // Anagrafica\r\n IdAnagraficaRappresentante: res.Result.IdAnagrafica,\r\n CodiceFiscale: res.Result.CodiceFiscale,\r\n PartitaIva: tipoPersona === TIPO_PERSONA.PERSONA_GIURIDICA ? (res.Result.PartitaIva || res.Result.CodiceFiscale) : res.Result.PartitaIva,\r\n Cognome: res.Result.Cognome,\r\n Nome: res.Result.Nome,\r\n Sesso: res.Result.Sesso,\r\n DataDiNascita: res.Result.DataDiNascita,\r\n IdLuogoDiNascita: res.Result.IdLuogoDiNascita,\r\n RagioneSociale: res.Result.RagioneSociale,\r\n IdNaturaGiuridica: res.Result.IdNaturaGiuridica,\r\n NaturaGiuridica: res.Result.NaturaGiuridica,\r\n TipoPersona: tipoPersona,\r\n };\r\n\r\n // caso particolare data di nascita editabile perchè non in anagrafica unica\r\n if (res.Result.DataDiNascita === '0001-01-01T00:00:00Z' || !res.Result.DataDiNascita) {\r\n getOttieniDatiDaCodiceFiscale(codiceFiscale)\r\n .then((response) => {\r\n if (response.Success) {\r\n datiAnagrafici.Sesso = response.Result.Sesso;\r\n datiAnagrafici.DataDiNascita = response.Result.DataDiNascita;\r\n datiAnagrafici.IdLuogoDiNascita = response.Result.IdCodiceComuneDiNascita;\r\n }\r\n\r\n setDatiAnagraficiEditabili(false);\r\n recuperaResidenzaOSedeLegale(res.Result.IdAnagrafica, datiAnagrafici);\r\n }).catch((err) => {\r\n Log.error(err);\r\n });\r\n setDataDiNascitaEditabile(true);\r\n } else {\r\n setDataDiNascitaEditabile(false);\r\n setDatiAnagraficiEditabili(false);\r\n recuperaResidenzaOSedeLegale(res.Result.IdAnagrafica, datiAnagrafici);\r\n }\r\n } else {\r\n getOttieniDatiDaCodiceFiscale(codiceFiscale)\r\n .then((response) => {\r\n if (response.Success) {\r\n presetForm({\r\n // Contribuente\r\n IdContribuente: null,\r\n CodiceSIA: null,\r\n\r\n // Anagrafica\r\n IdAnagraficaRappresentante: null,\r\n CodiceFiscale: codiceFiscale,\r\n PartitaIva: tipoPersona === TIPO_PERSONA.PERSONA_GIURIDICA ? codiceFiscale : null,\r\n Cognome: null,\r\n Nome: null,\r\n Sesso: response.Result.Sesso,\r\n DataDiNascita: response.Result.DataDiNascita,\r\n IdLuogoDiNascita: response.Result.IdCodiceComuneDiNascita,\r\n RagioneSociale: null,\r\n IdNaturaGiuridica: null,\r\n NaturaGiuridica: null,\r\n TipoPersona: tipoPersona,\r\n });\r\n } else {\r\n presetForm({\r\n // Contribuente\r\n IdContribuente: null,\r\n CodiceSIA: null,\r\n\r\n // Anagrafica\r\n IdAnagraficaRappresentante: null,\r\n CodiceFiscale: codiceFiscale,\r\n PartitaIva: tipoPersona === TIPO_PERSONA.PERSONA_GIURIDICA ? codiceFiscale : null,\r\n Cognome: null,\r\n Nome: null,\r\n Sesso: null,\r\n DataDiNascita: null,\r\n IdLuogoDiNascita: null,\r\n RagioneSociale: null,\r\n IdNaturaGiuridica: null,\r\n NaturaGiuridica: null,\r\n TipoPersona: tipoPersona,\r\n });\r\n }\r\n }).catch((err) => {\r\n Log.error(err);\r\n });\r\n setLoading(false);\r\n setDatiAnagraficiEditabili(true);\r\n setDataDiNascitaEditabile(true);\r\n setPartitaIvaEditabile(true);\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n }, [studioSelezionato, recuperaResidenzaOSedeLegale, presetForm]);\r\n\r\n const valutaEsistenzaAnagrafica = useCallback((event) => {\r\n if (formRef.current.errori.CodiceFiscale.length === 0) {\r\n if (event && event.target && (\r\n `${formData.TipoPersona}` === `${TIPO_PERSONA.PERSONA_GIURIDICA}` ? event.target.value.length === 11 : event.target.value.length === 16)\r\n && codiceFiscaleOld !== event.target.value) {\r\n esisteOttieniAnagrafica(event.target.value, formData.TipoPersona);\r\n }\r\n } else if (event && event.target && event.target.value) {\r\n setFormData({ TipoPersona: formData.TipoPersona, CodiceFiscale: event.target.value });\r\n setDatiAnagraficiEditabili(true);\r\n }\r\n }, [codiceFiscaleOld, esisteOttieniAnagrafica, formData.TipoPersona]);\r\n\r\n const valutaEsistenzaAnagraficaRadio = useCallback((event) => {\r\n if (`${event.target.value}` !== `${formData.TipoPersona}`) {\r\n esisteOttieniAnagrafica(formData.CodiceFiscale, event.target.value);\r\n }\r\n }, [esisteOttieniAnagrafica, formData.CodiceFiscale, formData.TipoPersona]);\r\n\r\n const creaAnagrafica = useCallback(() => {\r\n setLoading(true);\r\n\r\n const oggettoCreazione = {\r\n IdStudio: studioSelezionato,\r\n CodiceUfficio: codiceUfficioSelezionato,\r\n Indirizzo: formData.IndirizzoDescrizione,\r\n ...formData,\r\n };\r\n (`${formData.TipoPersona}` === `${TIPO_PERSONA.PERSONA_FISICA}`\r\n ? postCreaAnagraficaPersonaFisica : postCreaAnagraficaPersonaGiuridica)(oggettoCreazione)\r\n .then((res) => {\r\n if (res.Success) {\r\n oggettoCreazione.IdAnagrafica = idAnagraficaProps;\r\n oggettoCreazione.IdAnagraficaRappresentante = res.Result;\r\n\r\n postAggiungiRappresentante(oggettoCreazione)\r\n .then((response) => {\r\n if (response.Success) {\r\n onClose(true);\r\n } else {\r\n setSegnalazioni(response.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n } else {\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n }, [codiceUfficioSelezionato, formData, idAnagraficaProps, onClose, studioSelezionato]);\r\n\r\n const modificaAnagraficaRappresentante = () => {\r\n const oggettoModificaAnagrafica = {\r\n IdAnagrafica: formData.IdAnagraficaRappresentante,\r\n PartitaIva: formData.PartitaIva,\r\n Nome: formData.Nome,\r\n Cognome: formData.Cognome,\r\n Sesso: formData.Sesso,\r\n DataDiNascita: formData.DataDiNascita,\r\n IdLuogoDiNascita: formData.IdLuogoDiNascita,\r\n };\r\n\r\n postModificaAnagraficaPersonaFisica(oggettoModificaAnagrafica)\r\n .then((res) => {\r\n if (res.Success) {\r\n setDatiAnagraficiModificati(false);\r\n setChiamateDiModificaComplete(\r\n (chiamatePrev) => [...chiamatePrev, { chiamata: MODIFICHE_RAPPRESENTANTE.ANAGRAFICA, completata: true }],\r\n );\r\n\r\n // nel caso di modifiche sia ai dati anagrafici e sia alla residenza\r\n // evita che la prima chiamata fallisca per modifiche sulla stessa riga nel DB\r\n if (datiResidenzaModificati) {\r\n modificaResidenzaRappresentante();\r\n setChiamateDiModificaEffettuate((chiamatePrev) => [...chiamatePrev, MODIFICHE_RAPPRESENTANTE.RESIDENZA]);\r\n }\r\n } else {\r\n const nuoveSegnalazioni = res.DetectedProblems.map((err) => getSegnalazioneError(err));\r\n setSegnalazioni((segnalazioniOld) => [...segnalazioniOld, ...nuoveSegnalazioni]);\r\n\r\n setChiamateDiModificaComplete(\r\n (chiamatePrev) => [...chiamatePrev, { chiamata: MODIFICHE_RAPPRESENTANTE.ANAGRAFICA, completata: false }],\r\n );\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n };\r\n\r\n const modificaResidenzaRappresentante = () => {\r\n const oggettoIndirizzo = {\r\n IdAnagrafica: formData.IdAnagraficaRappresentante,\r\n IdTipoIndirizzo: formData.TipoPersona === TIPO_PERSONA.PERSONA_FISICA ? TIPO_INDIRIZZO.RESIDENZA_FISCALE : TIPO_INDIRIZZO.SEDE_LEGALE,\r\n IdComune: formData.IdComune,\r\n IdToponimo: formData.IdToponimo,\r\n Indirizzo: formData.IndirizzoDescrizione,\r\n Descrizione: formData.IndirizzoDescrizione,\r\n NumeroCivico: formData.NumeroCivico,\r\n Cap: formData.Cap,\r\n Frazione: formData.Frazione,\r\n };\r\n if (formData.Id) {\r\n // Modifica indirizzo\r\n const oggettoModificaIndirizzo = {\r\n ...oggettoIndirizzo,\r\n IdIndirizzo: formData.Id,\r\n IdTipoIndirizzo: formData.TipoIndirizzo,\r\n };\r\n postModificaIndirizzo(oggettoModificaIndirizzo)\r\n .then((res) => {\r\n if (res.Success) {\r\n setDatiResidenzaModificati(false);\r\n setChiamateDiModificaComplete(\r\n (chiamatePrev) => [...chiamatePrev, { chiamata: MODIFICHE_RAPPRESENTANTE.RESIDENZA, completata: true }],\r\n );\r\n } else {\r\n const nuoveSegnalazioni = res.DetectedProblems.map((err) => getSegnalazioneError(err));\r\n setSegnalazioni((segnalazioniOld) => [...segnalazioniOld, ...nuoveSegnalazioni]);\r\n setChiamateDiModificaComplete(\r\n (chiamatePrev) => [...chiamatePrev, { chiamata: MODIFICHE_RAPPRESENTANTE.RESIDENZA, completata: false }],\r\n );\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n } else {\r\n // Aggiunta indirizzo\r\n postAggiungiIndirizzo(oggettoIndirizzo)\r\n .then((res) => {\r\n if (res.Success) {\r\n setDatiResidenzaModificati(false);\r\n setChiamateDiModificaComplete(\r\n (chiamatePrev) => [...chiamatePrev, { chiamata: MODIFICHE_RAPPRESENTANTE.RESIDENZA, completata: true }],\r\n );\r\n } else {\r\n const nuoveSegnalazioni = res.DetectedProblems.map((err) => getSegnalazioneError(err));\r\n setSegnalazioni((segnalazioniOld) => [...segnalazioniOld, ...nuoveSegnalazioni]);\r\n setChiamateDiModificaComplete(\r\n (chiamatePrev) => [...chiamatePrev, { chiamata: MODIFICHE_RAPPRESENTANTE.RESIDENZA, completata: false }],\r\n );\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n }\r\n };\r\n\r\n const modificaRappresentante = () => {\r\n const newOggettoModifica = {\r\n ...formData,\r\n IdAnagrafica: idAnagraficaProps,\r\n };\r\n\r\n newOggettoModifica.IdRappresentante = oggettoModifica.Id;\r\n\r\n postModificaRappresentante(newOggettoModifica)\r\n .then((res) => {\r\n if (res.Success) {\r\n setDatiRappresentanteModificati(false);\r\n setChiamateDiModificaComplete(\r\n (chiamatePrev) => [...chiamatePrev, { chiamata: MODIFICHE_RAPPRESENTANTE.DATI, completata: true }],\r\n );\r\n } else {\r\n const nuoveSegnalazioni = res.DetectedProblems.map((err) => getSegnalazioneError(err));\r\n setSegnalazioni((segnalazioniOld) => [...segnalazioniOld, ...nuoveSegnalazioni]);\r\n setChiamateDiModificaComplete(\r\n (chiamatePrev) => [...chiamatePrev, { chiamata: MODIFICHE_RAPPRESENTANTE.DATI, completata: false }],\r\n );\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n if (chiamateDiModificaComplete.length\r\n && chiamateDiModificaEffettuate.length\r\n && chiamateDiModificaComplete.length === chiamateDiModificaEffettuate.length\r\n ) {\r\n const chiamateFallite = chiamateDiModificaComplete.some((chiamata) => !chiamata.completata);\r\n if (!chiamateFallite) {\r\n onClose(true);\r\n }\r\n }\r\n }, [chiamateDiModificaComplete, chiamateDiModificaEffettuate, onClose]);\r\n\r\n const salvaModificheRappresentante = useCallback(() => {\r\n setChiamateDiModificaEffettuate([]);\r\n setChiamateDiModificaComplete([]);\r\n if (formData.TipoPersona === TIPO_PERSONA.PERSONA_FISICA && datiAnagraficiModificati) {\r\n modificaAnagraficaRappresentante();\r\n setChiamateDiModificaEffettuate((chiamatePrev) => [...chiamatePrev, MODIFICHE_RAPPRESENTANTE.ANAGRAFICA]);\r\n } else if (datiResidenzaModificati) {\r\n modificaResidenzaRappresentante();\r\n setChiamateDiModificaEffettuate((chiamatePrev) => [...chiamatePrev, MODIFICHE_RAPPRESENTANTE.RESIDENZA]);\r\n }\r\n\r\n if (datiRappresentanteModificati) {\r\n modificaRappresentante();\r\n setChiamateDiModificaEffettuate((chiamatePrev) => [...chiamatePrev, MODIFICHE_RAPPRESENTANTE.DATI]);\r\n }\r\n\r\n const datiModificati = datiAnagraficiModificati || datiResidenzaModificati || datiRappresentanteModificati;\r\n if (!datiModificati) {\r\n onClose(true);\r\n }\r\n // eslint-disable-next-line max-len, react-hooks/exhaustive-deps\r\n }, [\r\n formData,\r\n onClose,\r\n datiRappresentanteModificati,\r\n datiAnagraficiModificati,\r\n datiResidenzaModificati,\r\n segnalazioni,\r\n ]);\r\n\r\n const aggiungiRappresentante = useCallback(() => {\r\n const oggettoCreazione = {\r\n IdStudio: studioSelezionato,\r\n IdAnagrafica: idAnagraficaProps,\r\n IdAnagraficaRappresentante: formData.IdAnagrafica,\r\n ...formData,\r\n };\r\n\r\n if (oggettoCreazione.IdAnagraficaRappresentante) {\r\n postAggiungiRappresentante(oggettoCreazione)\r\n .then((res) => {\r\n if (res.Success) {\r\n onClose(true);\r\n } else {\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n } else {\r\n creaAnagrafica();\r\n }\r\n // eslint-disable-next-line max-len\r\n }, [creaAnagrafica, formData, idAnagraficaProps, onClose, studioSelezionato]);\r\n\r\n const onChangeAutocompletes = (campo, elemento) => {\r\n const autocompleteVals = [];\r\n\r\n if (campo === 'CodiceComune') {\r\n autocompleteVals.IdComune = elemento.Id;\r\n autocompleteVals.CodiceComuneDescrizioneComposta = elemento.DescrizioneComposta;\r\n autocompleteVals.ComuneDescrizione = elemento.Descrizione;\r\n autocompleteVals.ComuneCodiceProvincia = elemento.CodiceProvincia;\r\n autocompleteVals.Cap = elemento.Cap;\r\n }\r\n if (campo === 'Toponimo') {\r\n autocompleteVals.IdToponimo = elemento.Id_Toponimo;\r\n autocompleteVals.ToponimoDescrizione = elemento.Descrizione;\r\n }\r\n if (campo === 'NaturaGiuridica') {\r\n autocompleteVals.IdNaturaGiuridica = elemento.IdNaturaGiuridica;\r\n autocompleteVals.NaturaGiuridica = elemento.Descrizione;\r\n }\r\n\r\n presetForm(autocompleteVals);\r\n };\r\n\r\n return (\r\n onClose(esito)}\r\n className=\"contribuenti--modale-creazione\"\r\n >\r\n \r\n {isModifica ? 'Modifica ' : 'Nuovo '} rappresentante\r\n \r\n \r\n setIsFormValid(validity)}\r\n >\r\n {!loading && segnalazioni.length > 0\r\n ? (\r\n \r\n
      \r\n {segnalazioni.map((segnalazione, idx) => (\r\n {segnalazione.msg}\r\n \r\n ))}\r\n
    \r\n
    \r\n )}\r\n type=\"alarm\"\r\n />\r\n )\r\n : (\r\n \r\n {segnalazioni && segnalazioni.length > 0 && (\r\n \r\n )}\r\n \r\n
    \r\n {formData && `${formData.TipoPersona}` === `${TIPO_PERSONA.PERSONA_FISICA}` ? (\r\n \r\n ) : (\r\n \r\n )}\r\n
    \r\n
    \r\n \r\n \r\n setDatiRappresentanteModificati(true)}\r\n futureDate\r\n />\r\n setDatiRappresentanteModificati(true)}\r\n futureDate\r\n />\r\n setDatiRappresentanteModificati(true)}\r\n noMargin\r\n />\r\n \r\n
    \r\n
    \r\n )}\r\n \r\n \r\n \r\n {segnalazioni.length === 0 ? (\r\n { isModifica ? salvaModificheRappresentante() : aggiungiRappresentante(); }}\r\n emphasis={Button.Emphasis.HIGH}\r\n primary\r\n disabled={!isFormValid}\r\n running={loading}\r\n >\r\n {isModifica ? 'MODIFICA ' : 'AGGIUNGI '}rappresentante\r\n \r\n ) : (\r\n setSegnalazioni([])}\r\n emphasis={Button.Emphasis.HIGH}\r\n primary\r\n disabled={!isFormValid}\r\n running={loading}\r\n >\r\n RIPROVA\r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nModaleRappresentante.defaultProps = {\r\n oggettoModifica: {},\r\n idAnagraficaProps: null,\r\n};\r\n\r\nModaleRappresentante.propTypes = {\r\n onClose: PropTypes.func.isRequired,\r\n show: PropTypes.bool.isRequired,\r\n idAnagraficaProps: PropTypes.number,\r\n oggettoModifica: PropTypes.shape({\r\n Id: PropTypes.number,\r\n IdAnagraficaRappresentante: PropTypes.number,\r\n TipoPersona: PropTypes.number,\r\n TipoRappresentante: PropTypes.string,\r\n Comune: PropTypes.string,\r\n Provincia: PropTypes.string,\r\n Toponimo: PropTypes.string,\r\n Descrizione: PropTypes.string,\r\n NumeroCivico: PropTypes.string,\r\n Cap: PropTypes.string,\r\n Frazione: PropTypes.string,\r\n }),\r\n};\r\n\r\nexport default ModaleRappresentante;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Button, Table } from 'framework-ui-components/Components/V2';\r\nimport AddIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/AddIcon';\r\nimport EditIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/EditIcon';\r\nimport DeleteIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/DeleteIcon';\r\nimport { SOCIETA_DI_COMODO } from '../../../../models/contribuente';\r\nimport HeaderSezione from '../HeaderSezione';\r\n\r\nconst SezioneDatiDichiarativi = ({\r\n listaDatiDichiarativi, apriModaleDatiDichiarativi, rimuoviRiga, modificaRiga, abilitataModifica,\r\n}) => (\r\n
    \r\n \r\n {abilitataModifica && (\r\n apriModaleDatiDichiarativi(true)}\r\n >\r\n \r\n Aggiungi società di comodo\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {listaDatiDichiarativi && listaDatiDichiarativi.length !== 0 ? (\r\n listaDatiDichiarativi.map((datoDichiarativi, idx) => (\r\n // eslint-disable-next-line react/no-array-index-key\r\n \r\n \r\n {datoDichiarativi.AnnoDichiarativo}\r\n \r\n \r\n \r\n {SOCIETA_DI_COMODO.toString(datoDichiarativi.SocietaDiComodo)}\r\n \r\n \r\n \r\n {abilitataModifica && (\r\n
    \r\n \r\n
    \r\n rimuoviRiga(datoDichiarativi.IdDatiDichiarativo)}\r\n >\r\n \r\n \r\n
    \r\n
    \r\n )}\r\n
    \r\n \r\n
    \r\n )))\r\n : (\r\n \r\n \r\n -\r\n \r\n \r\n \r\n -\r\n \r\n \r\n \r\n \r\n \r\n ) }\r\n
    \r\n \r\n
    \r\n);\r\n\r\nSezioneDatiDichiarativi.defaultProps = {\r\n listaDatiDichiarativi: [],\r\n abilitataModifica: true,\r\n};\r\n\r\nSezioneDatiDichiarativi.propTypes = {\r\n listaDatiDichiarativi: PropTypes.arrayOf(PropTypes.shape({\r\n\r\n })),\r\n abilitataModifica: PropTypes.bool,\r\n apriModaleDatiDichiarativi: PropTypes.func.isRequired,\r\n rimuoviRiga: PropTypes.func.isRequired,\r\n modificaRiga: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default SezioneDatiDichiarativi;\r\n","/* eslint-disable no-nested-ternary */\r\nimport React, {\r\n useState, useEffect, useCallback, useRef, useMemo,\r\n} from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Form, Autocomplete, Select, Validation,\r\n} from 'framework-ui-components';\r\nimport {\r\n Modal, Button, FeedbackPanel,\r\n} from 'framework-ui-components/Components/V2';\r\nimport { logApiError } from 'framework-taskforce/utils/log';\r\nimport { isEmptyObject } from 'framework-taskforce/utils/object';\r\nimport { getSegnalazioneError } from 'framework-taskforce/models/segnalazioni';\r\nimport {\r\n postAggiornaDatiDichiarativo,\r\n} from '../../../../../apis/anagraficaContribuente';\r\nimport TemplateGrid from '../../../../../components/TemplateGrid/TemplateGrid';\r\nimport SegnalazioniViewer from '../../../../../components/custom/SegnalazioniViewer';\r\nimport { cercaAnniRiferimentoValidi } from '../../../../../apis/tributi';\r\n\r\nconst ModaleDatiDichiarativi = ({\r\n onClose,\r\n idContribuente,\r\n show,\r\n oggettoModifica,\r\n}) => {\r\n const [loading, setLoading] = useState(false);\r\n const [isFormValid, setIsFormValid] = useState(false);\r\n const [esito, setEsito] = useState(null);\r\n const [formData, setFormData] = useState({ });\r\n const [segnalazioni, setSegnalazioni] = useState([]);\r\n\r\n const isModifica = useMemo(\r\n () => (!isEmptyObject(oggettoModifica)),\r\n [oggettoModifica],\r\n );\r\n\r\n const formRef = useRef();\r\n\r\n const presetForm = useCallback(({ FormErrors, ...datoModificato }) => {\r\n if (!formData || isEmptyObject(datoModificato)) return;\r\n const newStato = { ...formData, ...datoModificato };\r\n setFormData(newStato);\r\n }, [formData]);\r\n\r\n const resetDati = useCallback(() => {\r\n setLoading(false);\r\n setIsFormValid(false);\r\n setSegnalazioni([]);\r\n setEsito(null);\r\n setFormData({});\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (show) {\r\n resetDati();\r\n }\r\n }, [resetDati, show]);\r\n\r\n useEffect(() => {\r\n if (show && isModifica && isEmptyObject(formData)) {\r\n presetForm({ ...oggettoModifica });\r\n }\r\n });\r\n\r\n useEffect(() => {\r\n if (!show) {\r\n // reset data on close\r\n resetDati();\r\n }\r\n }, [resetDati, setFormData, show]);\r\n\r\n const aggiornaDatiDichiarativo = useCallback(() => {\r\n const newOggettoModifica = {\r\n IdContribuente: idContribuente,\r\n // AnnoDichiarativo: Number(formData.AnnoDichiarativo),\r\n ...formData,\r\n };\r\n\r\n postAggiornaDatiDichiarativo(newOggettoModifica)\r\n .then((res) => {\r\n if (res.Success) {\r\n onClose(true);\r\n } else {\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n }, [formData, idContribuente, onClose]);\r\n\r\n return (\r\n onClose(esito)}\r\n className=\"contribuenti--modale-creazione\"\r\n initialPos={{ x: 'auto', y: window.innerHeight * 0.1 }}\r\n >\r\n \r\n {isModifica ? 'Modifica ' : 'Nuova '} società di comodo\r\n \r\n \r\n setIsFormValid(validity)}\r\n >\r\n {!loading && segnalazioni.length > 0\r\n ? (\r\n \r\n
      \r\n {segnalazioni.map((segnalazione, idx) => (\r\n {segnalazione.msg}\r\n \r\n ))}\r\n
    \r\n
    \r\n )}\r\n type=\"alarm\"\r\n />\r\n )\r\n : (\r\n \r\n {segnalazioni && segnalazioni.length > 0 && (\r\n \r\n )}\r\n
    \r\n \r\n {\r\n presetForm({\r\n AnnoDichiarativo: val.Anno,\r\n });\r\n }}\r\n name=\"AnnoDichiarativo\"\r\n title=\"Anno\"\r\n renderProperty=\"Anno\"\r\n url={cercaAnniRiferimentoValidi()}\r\n readOnly={isModifica}\r\n minLength={1}\r\n />\r\n \r\n \r\n \r\n Non definita\r\n Anno della dichiarazione\r\n Anno della dichiarazione e per quello precedente\r\n Anno della dichiarazione e per i 2 precedenti\r\n Anno della dichiarazione e per i 2 precedenti e senza operazioni rilevanti\r\n \r\n \r\n
    \r\n
    \r\n )}\r\n \r\n \r\n \r\n {segnalazioni.length === 0 ? (\r\n { aggiornaDatiDichiarativo(); }}\r\n emphasis={Button.Emphasis.HIGH}\r\n primary\r\n disabled={!isFormValid}\r\n running={loading}\r\n >\r\n {isModifica ? 'MODIFICA ' : 'AGGIUNGI '}società di comodo\r\n \r\n ) : (\r\n setSegnalazioni([])}\r\n emphasis={Button.Emphasis.HIGH}\r\n primary\r\n disabled={!isFormValid}\r\n running={loading}\r\n >\r\n RIPROVA\r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nModaleDatiDichiarativi.defaultProps = {\r\n oggettoModifica: {},\r\n idContribuente: null,\r\n};\r\n\r\nModaleDatiDichiarativi.propTypes = {\r\n onClose: PropTypes.func.isRequired,\r\n show: PropTypes.bool.isRequired,\r\n idContribuente: PropTypes.number,\r\n oggettoModifica: PropTypes.shape({\r\n TipoRecapito: PropTypes.string,\r\n Comune: PropTypes.string,\r\n Provincia: PropTypes.string,\r\n Toponimo: PropTypes.string,\r\n Descrizione: PropTypes.string,\r\n NumeroCivico: PropTypes.string,\r\n Cap: PropTypes.string,\r\n Frazione: PropTypes.string,\r\n }),\r\n};\r\n\r\nexport default ModaleDatiDichiarativi;\r\n","/* eslint-disable no-nested-ternary */\r\nimport React, {\r\n useState, useEffect, useCallback, useRef, useMemo,\r\n} from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Autocomplete,\r\n Form, Input, Restriction, Validation,\r\n} from 'framework-ui-components';\r\nimport {\r\n Modal, Button, FeedbackPanel,\r\n} from 'framework-ui-components/Components/V2';\r\nimport { useSelector } from 'react-redux';\r\nimport { logApiError } from 'framework-taskforce/utils/log';\r\nimport { isEmptyObject } from 'framework-taskforce/utils/object';\r\nimport { getSegnalazioneError } from 'framework-taskforce/models/segnalazioni';\r\nimport {\r\n cercaBanche,\r\n cercaFilialiBanca,\r\n getGeneraIBAN,\r\n postAggiungiContoCorrente,\r\n postAggiungiContoCorrenteDaIban,\r\n postModificaContoCorrente,\r\n postModificaContoCorrenteDaIban,\r\n} from '../apis/anagrafiche';\r\nimport SegnalazioniViewer from './custom/SegnalazioniViewer';\r\nimport TemplateGrid from './TemplateGrid/TemplateGrid';\r\nimport CheckboxTitle from './custom/CheckboxTitle';\r\n\r\nconst ModaleContoCorrente = ({\r\n onClose,\r\n idAnagrafica,\r\n show,\r\n oggettoModifica,\r\n}) => {\r\n const studioSelezionato = useSelector((store) => store.appParams.studioSelezionato);\r\n\r\n const [loading, setLoading] = useState(false);\r\n const [isFormValid, setIsFormValid] = useState(false);\r\n const [esito, setEsito] = useState(null);\r\n const [formData, setFormData] = useState({ });\r\n const [segnalazioni, setSegnalazioni] = useState([]);\r\n const [ibanManuale, setIbanManuale] = useState(false);\r\n\r\n const isModifica = useMemo(\r\n () => (!isEmptyObject(oggettoModifica) && oggettoModifica.Id),\r\n [oggettoModifica],\r\n );\r\n\r\n const formRef = useRef();\r\n\r\n const presetForm = useCallback(({ FormErrors, ...datoModificato }) => {\r\n if (!formData || isEmptyObject(datoModificato)) return;\r\n\r\n let sbiancaCampoIbanGenerato;\r\n\r\n // eslint-disable-next-line no-prototype-builtins\r\n if (datoModificato.hasOwnProperty('NumeroConto') || datoModificato.hasOwnProperty('AbiBanca') || datoModificato.hasOwnProperty('CabBanca')) {\r\n sbiancaCampoIbanGenerato = true;\r\n } else {\r\n sbiancaCampoIbanGenerato = false;\r\n }\r\n\r\n const newStato = { ...formData, ...datoModificato };\r\n\r\n if (sbiancaCampoIbanGenerato) {\r\n newStato.IbanGenerato = null;\r\n }\r\n\r\n setFormData(newStato);\r\n }, [formData]);\r\n\r\n const resetDati = useCallback(() => {\r\n setLoading(false);\r\n setIsFormValid(false);\r\n setSegnalazioni([]);\r\n setEsito(null);\r\n setFormData({});\r\n setIbanManuale(false);\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (show) {\r\n resetDati();\r\n }\r\n }, [resetDati, show]);\r\n\r\n useEffect(() => {\r\n if (show && isModifica && isEmptyObject(formData)) {\r\n presetForm({\r\n ...oggettoModifica,\r\n Banca: `${oggettoModifica.AbiBanca} - ${oggettoModifica.DescrizioneSede}`,\r\n DescrizioneBanca: oggettoModifica.DescrizioneSede,\r\n Filiale: `${oggettoModifica.CabBanca} - ${oggettoModifica.DescrizioneSede}`,\r\n NumeroConto: oggettoModifica.NumeroConto.padStart(12, '0'),\r\n });\r\n }\r\n });\r\n\r\n useEffect(() => {\r\n if (!show) {\r\n // reset data on close\r\n resetDati();\r\n }\r\n }, [resetDati, setFormData, show]);\r\n\r\n const modificaContoCorrente = useCallback((isIbanManuale) => {\r\n const newOggettoModifica = {\r\n IdContoCorrente: formData.Id,\r\n IdAnagrafica: idAnagrafica,\r\n Iban: isIbanManuale ? formData.IbanManuale : null,\r\n AbiBanca: isIbanManuale ? null : formData.AbiBanca,\r\n CabBanca: isIbanManuale ? null : formData.CabBanca,\r\n NumeroConto: isIbanManuale ? null : formData.NumeroConto,\r\n Predefinito: formData.Predefinito,\r\n };\r\n\r\n if (formData.Predefinito && formData.contoCorrentePredefinito && formData.contoCorrentePredefinito.Id !== formData.Id) {\r\n const exContoPredefinito = {\r\n IdContoCorrente: formData.contoCorrentePredefinito.Id,\r\n IdAnagrafica: idAnagrafica,\r\n Iban: isIbanManuale ? formData.contoCorrentePredefinito.IbanManuale : null,\r\n AbiBanca: isIbanManuale ? null : formData.contoCorrentePredefinito.AbiBanca,\r\n CabBanca: isIbanManuale ? null : formData.contoCorrentePredefinito.CabBanca,\r\n NumeroConto: isIbanManuale ? null : formData.contoCorrentePredefinito.NumeroConto,\r\n Predefinito: false,\r\n };\r\n\r\n postModificaContoCorrente(exContoPredefinito).then((result) => {\r\n if (result.Success) {\r\n (isIbanManuale ? postModificaContoCorrenteDaIban : postModificaContoCorrente)(newOggettoModifica)\r\n .then((res) => {\r\n if (res.Success) {\r\n setIbanManuale(false);\r\n onClose(true);\r\n } else {\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n } else {\r\n setSegnalazioni(result.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n } else {\r\n (isIbanManuale ? postModificaContoCorrenteDaIban : postModificaContoCorrente)(newOggettoModifica)\r\n .then((res) => {\r\n if (res.Success) {\r\n setIbanManuale(false);\r\n onClose(true);\r\n } else {\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n }\r\n }, [formData, idAnagrafica, onClose]);\r\n\r\n const aggiungiContoCorrente = useCallback((isIbanManuale) => {\r\n const oggettoCreazione = {\r\n IdStudio: studioSelezionato,\r\n IdAnagrafica: idAnagrafica,\r\n Iban: formData.IbanManuale ? formData.IbanManuale : null,\r\n AbiBanca: formData.IbanManuale ? null : formData.AbiBanca,\r\n CabBanca: formData.IbanManuale ? null : formData.CabBanca,\r\n NumeroConto: formData.IbanManuale ? null : formData.NumeroConto,\r\n Predefinito: formData.Predefinito,\r\n };\r\n\r\n if (formData.Predefinito && oggettoModifica.contoCorrentePredefinito && oggettoModifica.contoCorrentePredefinito.Id !== formData.Id) {\r\n const exContoPredefinito = {\r\n IdContoCorrente: oggettoModifica.contoCorrentePredefinito.Id,\r\n IdAnagrafica: idAnagrafica,\r\n Iban: isIbanManuale ? oggettoModifica.contoCorrentePredefinito.IbanManuale : null,\r\n AbiBanca: isIbanManuale ? null : oggettoModifica.contoCorrentePredefinito.AbiBanca,\r\n CabBanca: isIbanManuale ? null : oggettoModifica.contoCorrentePredefinito.CabBanca,\r\n NumeroConto: isIbanManuale ? null : oggettoModifica.contoCorrentePredefinito.NumeroConto,\r\n Predefinito: false,\r\n };\r\n\r\n postModificaContoCorrente(exContoPredefinito).then((result) => {\r\n if (result.Success) {\r\n (isIbanManuale ? postAggiungiContoCorrenteDaIban : postAggiungiContoCorrente)(oggettoCreazione)\r\n .then((res) => {\r\n if (res.Success) {\r\n setIbanManuale(false);\r\n onClose(true);\r\n } else {\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n } else {\r\n setSegnalazioni(result.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n } else {\r\n (isIbanManuale ? postAggiungiContoCorrenteDaIban : postAggiungiContoCorrente)(oggettoCreazione)\r\n .then((res) => {\r\n if (res.Success) {\r\n setIbanManuale(false);\r\n onClose(true);\r\n } else {\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n }\r\n }, [formData, idAnagrafica, oggettoModifica.contoCorrentePredefinito, onClose, studioSelezionato]);\r\n\r\n const onChangeAutocompletes = (campo, elemento) => {\r\n const autocompleteVals = [];\r\n\r\n if (campo === 'Banca') {\r\n autocompleteVals.AbiBanca = elemento.Abi;\r\n autocompleteVals.DescrizioneBanca = elemento.Descrizione;\r\n autocompleteVals.Banca = elemento.DescrizioneComposta;\r\n autocompleteVals.CabBanca = null;\r\n autocompleteVals.Filiale = null;\r\n }\r\n if (campo === 'Filiale') {\r\n autocompleteVals.CabBanca = elemento.Cab;\r\n autocompleteVals.Filiale = elemento.DescrizioneComposta;\r\n }\r\n\r\n presetForm(autocompleteVals);\r\n };\r\n\r\n useEffect(() => {\r\n if (!formData.IbanGenerato\r\n && formData.AbiBanca && formData.CabBanca && formData.NumeroConto) {\r\n getGeneraIBAN(formData.AbiBanca, formData.CabBanca, formData.NumeroConto)\r\n .then((res) => {\r\n if (res.Success) {\r\n presetForm({\r\n IbanGenerato: res.Result,\r\n });\r\n }\r\n })\r\n .catch((e) => {\r\n });\r\n }\r\n }, [formData, formData.NumeroConto, presetForm]);\r\n\r\n const cambioIbanManuale = useCallback((event) => {\r\n setIbanManuale(event.target.checked);\r\n if (event.target.checked) {\r\n presetForm({\r\n AbiBanca: null,\r\n CabBanca: null,\r\n DescrizioneBanca: null,\r\n Banca: null,\r\n FilialeCab: null,\r\n Filiale: null,\r\n NumeroConto: null,\r\n IbanGenerato: null,\r\n });\r\n } else {\r\n presetForm({\r\n IbanManuale: null,\r\n });\r\n }\r\n }, [presetForm]);\r\n\r\n return (\r\n onClose(esito)}\r\n className=\"contribuenti--modale-creazione\"\r\n >\r\n \r\n {isModifica ? 'Modifica ' : 'Nuovo '} conto corrente\r\n \r\n \r\n setIsFormValid(validity)}\r\n >\r\n {!loading && segnalazioni.length > 0\r\n ? (\r\n \r\n
      \r\n {segnalazioni.map((segnalazione, idx) => (\r\n {segnalazione.msg}\r\n \r\n ))}\r\n
    \r\n
    \r\n )}\r\n type=\"alarm\"\r\n />\r\n )\r\n : (\r\n \r\n {segnalazioni && segnalazioni.length > 0 && (\r\n \r\n )}\r\n
    \r\n \r\n onChangeAutocompletes('Banca', val)}\r\n validations={ibanManuale ? [] : [Validation.DefaultRules.required]}\r\n autoFocus\r\n disabled={ibanManuale}\r\n />\r\n onChangeAutocompletes('Filiale', val)}\r\n validations={ibanManuale ? [] : [Validation.DefaultRules.required]}\r\n readOnly={!ibanManuale && !formData.AbiBanca}\r\n disabled={ibanManuale}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n )}\r\n \r\n \r\n \r\n {segnalazioni.length === 0 ? (\r\n { isModifica ? modificaContoCorrente(ibanManuale) : aggiungiContoCorrente(ibanManuale); }}\r\n emphasis={Button.Emphasis.HIGH}\r\n primary\r\n disabled={!isFormValid}\r\n running={loading}\r\n >\r\n {isModifica ? 'MODIFICA ' : 'AGGIUNGI '}CONTO CORRENTE\r\n \r\n ) : (\r\n setSegnalazioni([])}\r\n emphasis={Button.Emphasis.HIGH}\r\n primary\r\n disabled={!isFormValid}\r\n running={loading}\r\n >\r\n RIPROVA\r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nModaleContoCorrente.defaultProps = {\r\n oggettoModifica: {},\r\n idAnagrafica: null,\r\n};\r\n\r\nModaleContoCorrente.propTypes = {\r\n onClose: PropTypes.func.isRequired,\r\n show: PropTypes.bool.isRequired,\r\n idAnagrafica: PropTypes.number,\r\n oggettoModifica: PropTypes.shape({\r\n Id: PropTypes.number,\r\n Comune: PropTypes.string,\r\n Provincia: PropTypes.string,\r\n Toponimo: PropTypes.string,\r\n Descrizione: PropTypes.string,\r\n NumeroCivico: PropTypes.string,\r\n Cap: PropTypes.string,\r\n Frazione: PropTypes.string,\r\n AbiBanca: PropTypes.string,\r\n DescrizioneSede: PropTypes.string,\r\n CabBanca: PropTypes.string,\r\n NumeroConto: PropTypes.string,\r\n contoCorrentePredefinito: PropTypes.shape({\r\n Id: PropTypes.number,\r\n Comune: PropTypes.string,\r\n Provincia: PropTypes.string,\r\n Toponimo: PropTypes.string,\r\n Descrizione: PropTypes.string,\r\n NumeroCivico: PropTypes.string,\r\n Cap: PropTypes.string,\r\n Frazione: PropTypes.string,\r\n AbiBanca: PropTypes.string,\r\n DescrizioneSede: PropTypes.string,\r\n CabBanca: PropTypes.string,\r\n NumeroConto: PropTypes.string,\r\n IbanManuale: PropTypes.bool,\r\n }),\r\n }),\r\n};\r\n\r\nexport default ModaleContoCorrente;\r\n","import React, {\r\n useCallback, useEffect, useRef, useState,\r\n} from 'react';\r\nimport {\r\n Form, Grid,\r\n} from 'framework-ui-components';\r\nimport { useHistory, useParams } from 'react-router';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { isEmptyObject } from 'framework-taskforce/utils/object';\r\nimport { logApiError } from 'framework-taskforce/utils/log';\r\nimport {\r\n FeedbackModal, Layout, ViewportProvider,\r\n} from 'framework-ui-components/Components/V2';\r\nimport { getSegnalazioneError } from 'framework-taskforce/models/segnalazioni';\r\nimport useViewport from 'framework-ui-components/Components/V2/Hooks/useViewport';\r\nimport { primaLetteraMaiuscola } from 'framework-taskforce/utils/text';\r\nimport { TIPO_PERSONA } from '../../../models/anagrafica';\r\nimport {\r\n getOttieniDatiEsoneroISA,\r\n postModificaCodiceSIA,\r\n getOttieniContribuentePersonaFisica,\r\n getOttieniContribuentePersonaGiuridica,\r\n postEliminaCodiceSia,\r\n postEliminaDatiEsoneroISA,\r\n postEliminaDatiDichiarativo,\r\n getOttieniDatiDichiarativi,\r\n} from '../../../apis/anagraficaContribuente';\r\nimport BottoniDatiAnagrafici from './sezioneDatiAnagrafici/BottoniDatiAnagrafici';\r\nimport Modalizer from '../../../components/Modalizer';\r\nimport FormFooter from '../../../components/FormFooter';\r\nimport DatiAnagraficiPersonaFisicaFields from './sezioneDatiAnagrafici/DatiAnagraficiPersonaFisicaFields';\r\nimport SezioneIndirizzi from './sezioneIndirizzi/SezioneIndirizzi';\r\nimport SezioneRecapiti from './sezioneRecapiti/SezioneRecapiti';\r\nimport SezioneContiCorrente from './sezioneContiCorrente/SezioneContiCorrente';\r\nimport SezioneCodiceSIA from './sezioneCodiceSia/SezioneCodiceSia';\r\nimport SezioneEsoneroISA from './sezioneEsoneroISA/SezioneEsoneroISA';\r\nimport ModaleCodiceSia from './sezioneCodiceSia/modaleCodiceSia/ModaleCodiceSia';\r\nimport ModaleIndirizzo from './sezioneIndirizzi/modificaIndirizzo/ModaleIndirizzo';\r\nimport ModaleEsoneroISA from './sezioneEsoneroISA/modaleEsoneroISA/ModaleEsoneroISA';\r\nimport ModaleRecapito from './sezioneRecapiti/modaleRecapito/ModaleRecapito';\r\nimport ModaleConfermaEliminazione from '../../../components/ModaleConfermaEliminazione';\r\nimport DatiAnagraficiPersonaGiuridicaFields from './sezioneDatiAnagrafici/DatiAnagraficiPersonaGiuridicaFields';\r\nimport SezioneRappresentanti from './sezioneRappresentanti/SezioneRappresentanti';\r\nimport ModaleRappresentante from './sezioneRappresentanti/modaleRappresentante/ModaleRappresentante';\r\nimport ModaleDatiAnagrafica from './sezioneDatiAnagrafici/modaleDatiAnagrafici/ModaleDatiAnagrafica';\r\nimport { getOttieniContribuente } from '../../../apis/contribuente';\r\nimport { setSoggettoAction } from '../../../actions/soggetto';\r\nimport TabsMenu from '../riepilogoContribuente/TabsMenu';\r\nimport SegnalazioniViewer from '../../../components/custom/SegnalazioniViewer';\r\nimport SezioneDatiDichiarativi from './sezioneDatiDichiarativi/SezioneDatiDichiarativi';\r\nimport ModaleDatiDichiarativi from './sezioneDatiDichiarativi/modaleDatiDichiarativi/ModaleDatiDichiarativi';\r\nimport ModaleContoCorrente from '../../../components/ModaleContoCorrente';\r\nimport {\r\n getOttieniContiCorrenti,\r\n getOttieniIndirizzi,\r\n getOttieniRappresentanti,\r\n getOttieniRecapiti,\r\n postEliminaContoCorrente,\r\n postEliminaIndirizzo,\r\n postEliminaRappresentante,\r\n postEliminaRecapito,\r\n postModificaAnagraficaPersonaFisica,\r\n postModificaAnagraficaPersonaGiuridica,\r\n} from '../../../apis/anagrafiche';\r\n\r\nconst DettaglioContribuente = ({}) => {\r\n const { codFisc, tipoPersona } = useParams();\r\n const history = useHistory();\r\n const dispatch = useDispatch();\r\n\r\n const studioSelezionato = useSelector((store) => store.appParams.studioSelezionato);\r\n const studioOperatore = useSelector((store) => store.appParams.studioOperatore);\r\n const nominativo = useSelector((store) => store.soggetto.nominativo);\r\n const appParamVisualizzazione = useSelector((store) => !!store.appParams.visualizzazione);\r\n const noToolbar = useSelector((store) => store.appParams.noToolbar);\r\n const haPartitaIva = useSelector((store) => store.soggetto.haPartitaIva);\r\n\r\n const isBackOffice = false;\r\n\r\n const [formData, setFormData] = useState({ });\r\n const [loading, setLoading] = useState(true);\r\n\r\n const [isFormValid, setIsFormValid] = useState(false);\r\n const [datiAnagraficaEditabili, setDatiAnagraficaEditabili] = useState(false);\r\n const [listaIndirizzi, setListaIndirizzi] = useState(null);\r\n const [listaDatiEsoneroISA, setListaDatiEsoneroISA] = useState(null);\r\n const [showModaleAnagrafica, setShowModaleAnagrafica] = useState(false);\r\n const [showModaleIndirizzo, setShowModaleIndirizzo] = useState(false);\r\n const [showModaleRecapito, setShowModaleRecapito] = useState(false);\r\n const [showModaleDatiEsoneroISA, setShowModaleDatiEsoneroISA] = useState(false);\r\n const [showModaleCodiceSIA, setShowModaleCodiceSIA] = useState(false);\r\n const [showModaleContoCorrente, setShowModaleContoCorrente] = useState(false);\r\n const [showModaleRappresentante, setShowModaleRappresentante] = useState(false);\r\n const [showModaleDatiDichiarativi, setShowModaleDatiDichiarativi] = useState(false);\r\n const [listaRecapiti, setListaRecapiti] = useState(null);\r\n const [listaContiCorrente, setListaContiCorrente] = useState(null);\r\n const [listaRappresentanti, setListaRappresentanti] = useState(null);\r\n const [listaDatiDichiarativi, setListaDatiDichiarativi] = useState(null);\r\n const [oggettoModifica, setOggettoModifica] = useState({ });\r\n const [confirmEliminaIndirizzo, setConfirmEliminaIndirizzo] = useState({ show: false, indirizzoSelezionato: undefined });\r\n const [confirmEliminaDatiEsoneroISA, setConfirmEliminaDatiEsoneroISA] = useState({ show: false, datiEsoneroISASelezionato: undefined });\r\n const [confirmEliminaRecapito, setConfirmEliminaRecapito] = useState({ show: false, recapitoSelezionato: undefined });\r\n const [confirmEliminaContoCorrente, setConfirmEliminaContoCorrente] = useState({ show: false, contoCorrenteSelezionato: undefined });\r\n const [confirmEliminaRappresentante, setConfirmEliminaRappresentante] = useState({ show: false, rappresentanteSelezionato: undefined });\r\n const [confirmEliminaDatoDichiarativi, setConfirmEliminaDatoDichiarativi] = useState({ show: false, datoDichiarativiSelezionato: undefined });\r\n\r\n const [confirmEliminaCodiceSia, setConfirmEliminaCodiceSia] = useState(false);\r\n\r\n const [segnalazioni, setSegnalazioni] = useState([]);\r\n const [segnalazioniFeedbackPanel, setSegnalazioniFeedbackPanel] = useState([]);\r\n\r\n const [modificatoCodiceSIA, setModificatoCodiceSIA] = useState(null);\r\n\r\n const formRef = useRef();\r\n\r\n const { width } = useViewport();\r\n const widthBreakpoint = 1600;\r\n\r\n const classeCssPerSpaziaturaTraSezioni = 'pagina-dettaglio-contribuente-riga-mobile';\r\n\r\n const showEsoneriISA = (haPartitaIva || (listaDatiEsoneroISA != null && listaDatiEsoneroISA.length > 0));\r\n\r\n const presetForm = useCallback(({ FormErrors, ...datoModificato }) => {\r\n if (!formData || isEmptyObject(datoModificato)) return;\r\n if (datoModificato.CodiceSIA) {\r\n setModificatoCodiceSIA(datoModificato.CodiceSIA);\r\n }\r\n const newStato = { ...formData, ...datoModificato };\r\n setFormData(newStato);\r\n }, [formData]);\r\n\r\n const ottieniAnagrafica = useCallback((codiceFiscale) => {\r\n setLoading(true);\r\n if (studioOperatore || studioSelezionato) {\r\n (tipoPersona === `${TIPO_PERSONA.PERSONA_FISICA}` ? getOttieniContribuentePersonaFisica\r\n : getOttieniContribuentePersonaGiuridica)(studioOperatore || studioSelezionato, codiceFiscale)\r\n .then((res) => {\r\n if (res.Success && res.Result) {\r\n // Esiste l'anagrafica e valorizzo i dati\r\n presetForm({\r\n // Contribuente\r\n IdContribuente: res.Result.IdContribuente,\r\n CodiceSIA: res.Result.CodiceSIA,\r\n\r\n // Anagrafica\r\n IdAnagrafica: res.Result.IdAnagrafica,\r\n CodiceFiscale: res.Result.CodiceFiscale,\r\n PartitaIva: res.Result.PartitaIva,\r\n Cognome: res.Result.Cognome,\r\n Nome: res.Result.Nome,\r\n Sesso: res.Result.Sesso,\r\n DataDiNascita: res.Result.DataDiNascita,\r\n IdLuogoDiNascita: res.Result.IdLuogoDiNascita,\r\n RagioneSociale: res.Result.RagioneSociale,\r\n IdNaturaGiuridica: res.Result.IdNaturaGiuridica,\r\n NaturaGiuridica: res.Result.NaturaGiuridica,\r\n DescrizioneLuogoDiNascita: res.Result.DescrizioneLuogoDiNascita,\r\n });\r\n } else {\r\n presetForm({\r\n // Contribuente\r\n IdContribuente: null,\r\n CodiceSIA: null,\r\n\r\n // Anagrafica\r\n IdAnagrafica: null,\r\n CodiceFiscale: codiceFiscale,\r\n PartitaIva: null,\r\n Cognome: null,\r\n Nome: null,\r\n Sesso: null,\r\n DataDiNascita: null,\r\n IdLuogoDiNascita: null,\r\n RagioneSociale: null,\r\n IdNaturaGiuridica: null,\r\n NaturaGiuridica: null,\r\n DescrizioneLuogoDiNascita: null,\r\n });\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n }\r\n }, [tipoPersona, studioSelezionato, presetForm, studioOperatore]);\r\n\r\n const chiusuraModaleAnagrafica = useCallback((successo) => {\r\n setShowModaleAnagrafica(false);\r\n setOggettoModifica({});\r\n if (successo) {\r\n ottieniAnagrafica(codFisc);\r\n }\r\n }, [codFisc, ottieniAnagrafica]);\r\n\r\n const chiusuraModaleCodiceSIA = useCallback((successo) => {\r\n setShowModaleCodiceSIA(false);\r\n setOggettoModifica({});\r\n if (successo) {\r\n ottieniAnagrafica(codFisc);\r\n }\r\n }, [codFisc, ottieniAnagrafica]);\r\n\r\n const chiusuraModaleIndirizzo = useCallback((successo) => {\r\n setShowModaleIndirizzo(false);\r\n setOggettoModifica({});\r\n if (successo) {\r\n setListaIndirizzi(null);\r\n }\r\n }, []);\r\n\r\n const chiusuraModaleEsoneroISA = useCallback((successo) => {\r\n setShowModaleDatiEsoneroISA(false);\r\n setOggettoModifica({});\r\n if (successo) {\r\n setListaDatiEsoneroISA(null);\r\n }\r\n }, []);\r\n\r\n const chiusuraModaleRecapito = useCallback((successo) => {\r\n setShowModaleRecapito(false);\r\n setOggettoModifica({});\r\n if (successo) {\r\n setListaRecapiti(null);\r\n }\r\n }, []);\r\n\r\n const chiusuraModaleContoCorrente = useCallback((successo) => {\r\n setShowModaleContoCorrente(false);\r\n setOggettoModifica({});\r\n if (successo) {\r\n setListaContiCorrente(null);\r\n }\r\n }, []);\r\n\r\n const chiusuraModaleRappresentante = useCallback((successo) => {\r\n setShowModaleRappresentante(false);\r\n setOggettoModifica({});\r\n if (successo) {\r\n setListaRappresentanti(null);\r\n }\r\n }, []);\r\n\r\n const chiusuraModaleDatiDichiarativi = useCallback((successo) => {\r\n setShowModaleDatiDichiarativi(false);\r\n setOggettoModifica({});\r\n if (successo) {\r\n setListaDatiDichiarativi(null);\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (codFisc && !formData.CodiceFiscale) {\r\n ottieniAnagrafica(codFisc);\r\n }\r\n }, [codFisc, ottieniAnagrafica, formData.CodiceFiscale]);\r\n\r\n useEffect(() => {\r\n if (codFisc) {\r\n getOttieniContribuente(\r\n studioOperatore || studioSelezionato,\r\n codFisc,\r\n )\r\n .then((res) => {\r\n if (res.Success) {\r\n dispatch(setSoggettoAction({\r\n idAnagrafica: res.Result.IdAnagrafica,\r\n idContribuente: res.Result.IdContribuente,\r\n codiceFiscale: res.Result.CodiceFiscale,\r\n nominativo: res.Result.Denominazione,\r\n tipoPersona: res.Result.TipoPersona,\r\n haPartitaIva: !!res.Result.PartitaIva,\r\n partitaIva: res.Result.PartitaIva,\r\n }));\r\n } else {\r\n history.push('/errore');\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n })\r\n .catch((e) => {\r\n });\r\n }\r\n }, [codFisc, dispatch, studioSelezionato, studioOperatore, history]);\r\n\r\n useEffect(() => {\r\n if (formData.IdAnagrafica && !listaIndirizzi) {\r\n getOttieniIndirizzi(formData.IdAnagrafica)\r\n .then((res) => {\r\n if (res.Success && res.Result) {\r\n setListaIndirizzi(res.Result);\r\n } else {\r\n setListaIndirizzi([]);\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n }\r\n }, [formData.IdAnagrafica, listaIndirizzi]);\r\n\r\n useEffect(() => {\r\n if (formData.IdContribuente && !listaDatiEsoneroISA) {\r\n getOttieniDatiEsoneroISA(formData.IdContribuente)\r\n .then((res) => {\r\n if (res.Success && res.Result) {\r\n setListaDatiEsoneroISA(res.Result);\r\n } else {\r\n setListaDatiEsoneroISA([]);\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n }\r\n }, [formData.IdContribuente, listaDatiEsoneroISA]);\r\n\r\n useEffect(() => {\r\n if (formData.IdAnagrafica && !listaRecapiti) {\r\n getOttieniRecapiti(formData.IdAnagrafica)\r\n .then((res) => {\r\n if (res.Success && res.Result) {\r\n setListaRecapiti(res.Result);\r\n } else {\r\n setListaRecapiti([]);\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n }\r\n }, [formData.IdAnagrafica, listaRecapiti]);\r\n\r\n useEffect(() => {\r\n if (formData.IdAnagrafica && !listaContiCorrente) {\r\n getOttieniContiCorrenti(formData.IdAnagrafica)\r\n .then((res) => {\r\n if (res.Success && res.Result) {\r\n setListaContiCorrente(res.Result);\r\n } else {\r\n setListaContiCorrente([]);\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n }\r\n }, [formData.IdAnagrafica, listaContiCorrente]);\r\n\r\n useEffect(() => {\r\n if (formData.IdAnagrafica && !listaRappresentanti && tipoPersona !== `${TIPO_PERSONA.PERSONA_FISICA}`) {\r\n getOttieniRappresentanti(formData.IdAnagrafica)\r\n .then((res) => {\r\n if (res.Success && res.Result) {\r\n setListaRappresentanti(res.Result);\r\n } else {\r\n setListaRappresentanti([]);\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n }\r\n }, [formData.IdAnagrafica, listaContiCorrente, listaRappresentanti, tipoPersona]);\r\n\r\n useEffect(() => {\r\n if (formData.IdAnagrafica && formData.IdContribuente && !listaDatiDichiarativi && formData.PartitaIva) {\r\n getOttieniDatiDichiarativi(formData.IdContribuente)\r\n .then((res) => {\r\n if (res.Success && res.Result) {\r\n setListaDatiDichiarativi(res.Result);\r\n } else {\r\n setListaDatiDichiarativi([]);\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n }\r\n }, [formData.IdAnagrafica, formData.IdContribuente, formData.PartitaIva, listaDatiDichiarativi]);\r\n\r\n const annullaEdit = useCallback(() => {\r\n ottieniAnagrafica(codFisc);\r\n setSegnalazioni([]);\r\n setDatiAnagraficaEditabili(false);\r\n }, [codFisc, ottieniAnagrafica]);\r\n\r\n const modificaAnagrafica = useCallback(() => {\r\n if (formData.IdAnagrafica) {\r\n const oggettoModificaAnagrafica = {\r\n IdAnagrafica: formData.IdAnagrafica,\r\n PartitaIva: formData.PartitaIva,\r\n Nome: formData.Nome,\r\n Cognome: formData.Cognome,\r\n Sesso: formData.Sesso,\r\n DataDiNascita: formData.DataDiNascita,\r\n IdLuogoDiNascita: formData.IdLuogoDiNascita,\r\n };\r\n\r\n (tipoPersona === `${TIPO_PERSONA.PERSONA_FISICA}`\r\n ? postModificaAnagraficaPersonaFisica : postModificaAnagraficaPersonaGiuridica)(oggettoModificaAnagrafica)\r\n .then((res) => {\r\n if (res.Success) {\r\n setSegnalazioni([]);\r\n if (modificatoCodiceSIA) {\r\n if (formData.IdAnagrafica) {\r\n const oggettoModificaCodiceSia = {\r\n IdAnagrafica: formData.IdAnagrafica,\r\n CodiceSIA: modificatoCodiceSIA,\r\n IdContribuente: formData.IdContribuente,\r\n };\r\n\r\n postModificaCodiceSIA(oggettoModificaCodiceSia)\r\n .then((response) => {\r\n if (!response.Success) {\r\n setSegnalazioni({ ...response.DetectedProblems, ...res.DetectedProblems }\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n }\r\n }\r\n setDatiAnagraficaEditabili(false);\r\n } else {\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n }\r\n }, [formData.Cognome,\r\n formData.DataDiNascita,\r\n formData.IdAnagrafica,\r\n formData.IdContribuente,\r\n formData.IdLuogoDiNascita,\r\n formData.Nome,\r\n formData.PartitaIva,\r\n formData.Sesso,\r\n modificatoCodiceSIA,\r\n tipoPersona]);\r\n\r\n const rimuoviCodiceSia = useCallback((idContribuente) => {\r\n postEliminaCodiceSia({ IdContribuente: idContribuente })\r\n .then((res) => {\r\n if (res.Success) {\r\n setSegnalazioni([]);\r\n ottieniAnagrafica(codFisc);\r\n setConfirmEliminaCodiceSia(false);\r\n } else {\r\n setConfirmEliminaCodiceSia(false);\r\n setSegnalazioniFeedbackPanel(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n }, [codFisc, ottieniAnagrafica]);\r\n\r\n const rimuoviIndirizzo = useCallback((idIndirizzo) => {\r\n postEliminaIndirizzo({ IdAnagrafica: formData.IdAnagrafica, IdIndirizzo: idIndirizzo })\r\n .then((res) => {\r\n if (res.Success) {\r\n setSegnalazioni([]);\r\n getOttieniIndirizzi(formData.IdAnagrafica)\r\n .then((response) => {\r\n if (response.Success && response.Result) {\r\n setListaIndirizzi(response.Result);\r\n } else {\r\n setListaIndirizzi([]);\r\n }\r\n\r\n setConfirmEliminaIndirizzo({ show: false, indirizzoSelezionato: undefined });\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n } else {\r\n setConfirmEliminaIndirizzo({ show: false, contoCorrenteSelezionato: undefined });\r\n setSegnalazioniFeedbackPanel(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n }, [formData.IdAnagrafica]);\r\n\r\n const rimuoviDatiEsoneroISA = useCallback((idDatiEsoneroISA) => {\r\n postEliminaDatiEsoneroISA({ IdContribuente: formData.IdContribuente, IdDatiEsoneroISA: idDatiEsoneroISA })\r\n .then((res) => {\r\n if (res.Success) {\r\n setSegnalazioni([]);\r\n getOttieniDatiEsoneroISA(formData.IdContribuente)\r\n .then((response) => {\r\n if (response.Success && response.Result) {\r\n setListaDatiEsoneroISA(response.Result);\r\n } else {\r\n setListaDatiEsoneroISA([]);\r\n }\r\n\r\n setConfirmEliminaDatiEsoneroISA({ show: false, datiEsoneroISASelezionato: undefined });\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n } else {\r\n setConfirmEliminaDatiEsoneroISA({ show: false, datiEsoneroISASelezionato: undefined });\r\n setSegnalazioniFeedbackPanel(res.DetectedProblems);\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n }, [formData.IdContribuente]);\r\n\r\n const rimuoviRecapito = useCallback((idRecapito) => {\r\n postEliminaRecapito({ IdAnagrafica: formData.IdAnagrafica, IdRecapito: idRecapito })\r\n .then((res) => {\r\n if (res.Success) {\r\n setSegnalazioni([]);\r\n getOttieniRecapiti(formData.IdAnagrafica)\r\n .then((response) => {\r\n if (response.Success && response.Result) {\r\n setListaRecapiti(response.Result);\r\n } else {\r\n setListaRecapiti([]);\r\n }\r\n\r\n setConfirmEliminaRecapito({ show: false, recapitoSelezionato: undefined });\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n } else {\r\n setConfirmEliminaRecapito({ show: false, contoCorrenteSelezionato: undefined });\r\n setSegnalazioniFeedbackPanel(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n }, [formData.IdAnagrafica]);\r\n\r\n const rimuoviContoCorrente = useCallback((idContoCorrente) => {\r\n postEliminaContoCorrente({ IdAnagrafica: formData.IdAnagrafica, IdContoCorrente: idContoCorrente })\r\n .then((res) => {\r\n if (res.Success) {\r\n setSegnalazioni([]);\r\n getOttieniContiCorrenti(formData.IdAnagrafica)\r\n .then((response) => {\r\n if (response.Success && response.Result) {\r\n setListaContiCorrente(response.Result);\r\n } else {\r\n setListaContiCorrente([]);\r\n }\r\n\r\n setConfirmEliminaContoCorrente({ show: false, contoCorrenteSelezionato: undefined });\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n } else {\r\n setConfirmEliminaContoCorrente({ show: false, contoCorrenteSelezionato: undefined });\r\n setSegnalazioniFeedbackPanel(res.DetectedProblems);\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n }, [formData.IdAnagrafica]);\r\n\r\n const rimuoviRappresentante = useCallback((idRappresentante) => {\r\n postEliminaRappresentante({ IdAnagrafica: formData.IdAnagrafica, IdRappresentante: idRappresentante })\r\n .then((res) => {\r\n if (res.Success) {\r\n setSegnalazioni([]);\r\n getOttieniRappresentanti(formData.IdAnagrafica)\r\n .then((response) => {\r\n if (response.Success && response.Result) {\r\n setListaRappresentanti(response.Result);\r\n } else {\r\n setListaRappresentanti([]);\r\n }\r\n\r\n setConfirmEliminaRappresentante({ show: false, rappresentanteSelezionato: undefined });\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n } else {\r\n setConfirmEliminaRappresentante({ show: false, rappresentanteSelezionato: undefined });\r\n setSegnalazioniFeedbackPanel(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n }, [formData.IdAnagrafica]);\r\n\r\n const rimuoviDatoDichiarativi = useCallback((idDatiDichiarativo) => {\r\n postEliminaDatiDichiarativo({ IdContribuente: formData.IdContribuente, IdDatiDichiarativo: idDatiDichiarativo })\r\n .then((res) => {\r\n if (res.Success) {\r\n setSegnalazioni([]);\r\n getOttieniDatiDichiarativi(formData.IdContribuente)\r\n .then((response) => {\r\n if (response.Success && response.Result) {\r\n setListaDatiDichiarativi(response.Result);\r\n } else {\r\n setListaDatiDichiarativi([]);\r\n }\r\n\r\n setConfirmEliminaDatoDichiarativi({ show: false, rappresentanteSelezionato: undefined });\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n } else {\r\n setConfirmEliminaRappresentante({ show: false, rappresentanteSelezionato: undefined });\r\n setSegnalazioniFeedbackPanel(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n }, [formData.IdContribuente]);\r\n\r\n const mostraModaleRimuoviIndirizzo = useCallback((id) => {\r\n setConfirmEliminaIndirizzo({ show: true, indirizzoSelezionato: id });\r\n }, []);\r\n\r\n const mostraModaleRimuoviRecapito = useCallback((id) => {\r\n setConfirmEliminaRecapito({ show: true, recapitoSelezionato: id });\r\n }, []);\r\n\r\n const mostraModaleRimuoviDatiEsoneroISA = useCallback((id) => {\r\n setConfirmEliminaDatiEsoneroISA({ show: true, datiEsoneroISASelezionato: id });\r\n }, []);\r\n\r\n const mostraModaleRimuoviContoCorrente = useCallback((id) => {\r\n setConfirmEliminaContoCorrente({ show: true, contoCorrenteSelezionato: id });\r\n }, []);\r\n\r\n const mostraModaleRimuoviRappresentante = useCallback((id) => {\r\n setConfirmEliminaRappresentante({ show: true, rappresentanteSelezionato: id });\r\n }, []);\r\n\r\n const mostraModaleRimuoviDatiDichiarativi = useCallback((id) => {\r\n setConfirmEliminaDatoDichiarativi({ show: true, datoDichiarativiSelezionato: id });\r\n }, []);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n
    {primaLetteraMaiuscola(nominativo)}
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n \r\n \r\n
    \r\n ),\r\n normal: (\r\n setOggettoModifica(formData)}\r\n />\r\n ),\r\n }}\r\n >\r\n setIsFormValid(validity)}\r\n >\r\n \r\n {tipoPersona === `${TIPO_PERSONA.PERSONA_FISICA}` ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {tipoPersona !== `${TIPO_PERSONA.PERSONA_FISICA}` ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n \r\n {tipoPersona !== `${TIPO_PERSONA.PERSONA_FISICA}` ? (\r\n \r\n ) : (\r\n setConfirmEliminaCodiceSia(true)}\r\n abilitataModifica={!appParamVisualizzazione}\r\n />\r\n )}\r\n \r\n \r\n\r\n \r\n \r\n {tipoPersona !== `${TIPO_PERSONA.PERSONA_FISICA}` ? (\r\n setConfirmEliminaCodiceSia(true)}\r\n abilitataModifica={!appParamVisualizzazione}\r\n />\r\n ) : (\r\n
    \r\n {showEsoneriISA ? (\r\n \r\n ) : (\r\n \r\n )}\r\n
    \r\n )}\r\n
    \r\n \r\n \r\n {showEsoneriISA ? (\r\n
    \r\n {tipoPersona !== `${TIPO_PERSONA.PERSONA_FISICA}` ? (\r\n \r\n ) : (\r\n \r\n )}\r\n
    \r\n ) : (\r\n tipoPersona !== `${TIPO_PERSONA.PERSONA_FISICA}` && (\r\n \r\n )\r\n )}\r\n \r\n \r\n\r\n {showEsoneriISA && tipoPersona !== `${TIPO_PERSONA.PERSONA_FISICA}` && (\r\n \r\n \r\n \r\n \r\n \r\n {tipoPersona !== `${TIPO_PERSONA.PERSONA_FISICA}` && (\r\n \r\n \r\n \r\n )}\r\n \r\n )}\r\n
    \r\n
    \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n setConfirmEliminaCodiceSia(false)}\r\n elimina={() => rimuoviCodiceSia(formData.IdContribuente)}\r\n nomeElementoEliminato=\"il codice SIA\"\r\n />\r\n setConfirmEliminaIndirizzo({ show: false, indirizzoSelezionato: undefined })}\r\n elimina={() => rimuoviIndirizzo(confirmEliminaIndirizzo.indirizzoSelezionato)}\r\n nomeElementoEliminato=\"l'indirizzo\"\r\n />\r\n setConfirmEliminaDatiEsoneroISA({ show: false, datiEsoneroISASelezionato: undefined })}\r\n elimina={() => rimuoviDatiEsoneroISA(confirmEliminaDatiEsoneroISA.datiEsoneroISASelezionato)}\r\n nomeElementoEliminato=\"l'Esonero ISA\"\r\n />\r\n setConfirmEliminaRecapito({ show: false, recapitoSelezionato: undefined })}\r\n elimina={() => rimuoviRecapito(confirmEliminaRecapito.recapitoSelezionato)}\r\n nomeElementoEliminato=\"il recapito\"\r\n />\r\n setConfirmEliminaContoCorrente({ show: false, contoCorrenteSelezionato: undefined })}\r\n elimina={() => rimuoviContoCorrente(confirmEliminaContoCorrente.contoCorrenteSelezionato)}\r\n nomeElementoEliminato=\"il conto corrente\"\r\n />\r\n setConfirmEliminaRappresentante({ show: false, rappresentanteSelezionato: undefined })}\r\n elimina={() => rimuoviRappresentante(confirmEliminaRappresentante.rappresentanteSelezionato)}\r\n nomeElementoEliminato=\"il rappresentante\"\r\n />\r\n setConfirmEliminaDatoDichiarativi({ show: false, datoDichiarativiSelezionato: undefined })}\r\n elimina={() => rimuoviDatoDichiarativi(confirmEliminaDatoDichiarativi.datoDichiarativiSelezionato)}\r\n nomeElementoEliminato=\"la società di comodo\"\r\n />\r\n {segnalazioniFeedbackPanel && segnalazioniFeedbackPanel.length > 0 && (\r\n 0}\r\n title=\"Elemento non rimosso\"\r\n onClose={() => setSegnalazioniFeedbackPanel([])}\r\n buttonLabel=\"ok\"\r\n message={segnalazioniFeedbackPanel[0]}\r\n type=\"alarm\"\r\n />\r\n )}\r\n
    \r\n \r\n );\r\n};\r\n\r\nDettaglioContribuente.defaultProps = {\r\n};\r\n\r\nDettaglioContribuente.propTypes = {\r\n};\r\n\r\nexport default DettaglioContribuente;\r\n","import React from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport ToolbarDiProva from '../ToolbarSpecifica';\r\nimport PageWrapper from '../../../components/PageWrapper';\r\n\r\nimport DettaglioContribuente from './DettaglioContribuente';\r\n\r\nconst PaginaDettaglioContribuente = ({}) => {\r\n const noToolbar = useSelector((store) => store.appParams.noToolbar);\r\n\r\n return (\r\n \r\n )}\r\n >\r\n \r\n \r\n );\r\n};\r\n\r\nPaginaDettaglioContribuente.defaultProps = {\r\n};\r\n\r\nPaginaDettaglioContribuente.propTypes = {\r\n};\r\n\r\nexport default PaginaDettaglioContribuente;\r\n","import { AuthorizedApp } from 'framework-taskforce';\r\nimport React from 'react';\r\nimport ContenutoPaginaDiSospensione from '../ContenutoPaginaDiSospensione';\r\nimport { authorizedServices } from '../models/f24';\r\nimport PaginaDettaglioContribuente from '../areas/listaContribuenti/dettaglioContribuente/PaginaDettaglioContribuente';\r\n\r\nconst PaginaDettaglioContribuenteRoute = () => (\r\n )}\r\n >\r\n \r\n \r\n);\r\n\r\nPaginaDettaglioContribuenteRoute.defaultProps = {\r\n};\r\n\r\nPaginaDettaglioContribuenteRoute.propTypes = {\r\n};\r\n\r\nexport default PaginaDettaglioContribuenteRoute;\r\n","/* eslint-disable no-nested-ternary */\r\nimport React, {\r\n useState, useEffect, useCallback,\r\n} from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n DatePicker,\r\n Spinner, Validation,\r\n} from 'framework-ui-components';\r\nimport {\r\n Modal,\r\n Button,\r\n FeedbackPanel,\r\n} from 'framework-ui-components/Components/V2';\r\nimport TemplateGrid from '../../../../../../components/TemplateGrid/TemplateGrid';\r\n\r\nconst ModaleDichiaraPagata = ({\r\n onClose,\r\n show,\r\n idDelega,\r\n dataScadenzaVersamento,\r\n dataVersamento,\r\n dichiaraPagata,\r\n segnalazioni,\r\n setSegnalazioni,\r\n}) => {\r\n const [loading, setLoading] = useState(false);\r\n const [esito, setEsito] = useState(null);\r\n const [dataEffettivoPagamento, setDataEffettivoPagamento] = useState(new Date(dataVersamento || dataScadenzaVersamento));\r\n\r\n const resetDati = useCallback(() => {\r\n setLoading(false);\r\n setEsito(null);\r\n setDataEffettivoPagamento(new Date(dataVersamento || dataScadenzaVersamento));\r\n }, [dataScadenzaVersamento, dataVersamento]);\r\n\r\n useEffect(() => {\r\n if (show) {\r\n resetDati();\r\n }\r\n }, [resetDati, show]);\r\n\r\n useEffect(() => {\r\n if (!show) {\r\n // reset data on close\r\n resetDati();\r\n }\r\n }, [resetDati, show]);\r\n\r\n const onChangeDataPagamento = useCallback((val) => {\r\n setDataEffettivoPagamento(val);\r\n setSegnalazioni([]);\r\n }, [setDataEffettivoPagamento, setSegnalazioni]);\r\n\r\n return (\r\n \r\n \r\n
    \r\n Segna come pagata\r\n
    \r\n
    \r\n \r\n {loading\r\n ? \r\n : (\r\n segnalazioni.length > 0\r\n ? (\r\n \r\n
      \r\n {segnalazioni.map((segnalazione, idx) => (\r\n {segnalazione.msg}\r\n \r\n ))}\r\n
    \r\n
    \r\n )}\r\n type=\"alarm\"\r\n />\r\n )\r\n : (\r\n \r\n \r\n
    \r\n Per segnare la delega come pagata inserisci la data di effettivo pagamento.\r\n
    \r\n
    \r\n \r\n \r\n onChangeDataPagamento(val)}\r\n autoFocus\r\n date={dataEffettivoPagamento}\r\n />\r\n \r\n
    \r\n )\r\n )}\r\n \r\n \r\n {segnalazioni.length === 0 ? (\r\n \r\n onClose(false)}\r\n emphasis={Button.Emphasis.HIGH}\r\n >\r\n ANNULLA\r\n \r\n { dichiaraPagata(idDelega, dataEffettivoPagamento); }}\r\n primary\r\n disabled={!dataEffettivoPagamento || loading}\r\n emphasis={Button.Emphasis.HIGH}\r\n >\r\n OK\r\n \r\n \r\n ) : (\r\n setSegnalazioni([])}\r\n primary\r\n emphasis={Button.Emphasis.HIGH}\r\n >\r\n RIPROVA\r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nModaleDichiaraPagata.defaultProps = {\r\n dataVersamento: null,\r\n dataScadenzaVersamento: null,\r\n};\r\n\r\nModaleDichiaraPagata.propTypes = {\r\n onClose: PropTypes.func.isRequired,\r\n show: PropTypes.bool.isRequired,\r\n idDelega: PropTypes.number.isRequired,\r\n dataVersamento: PropTypes.string,\r\n dataScadenzaVersamento: PropTypes.string,\r\n dichiaraPagata: PropTypes.func.isRequired,\r\n setSegnalazioni: PropTypes.func.isRequired,\r\n segnalazioni: PropTypes.arrayOf(PropTypes.string).isRequired,\r\n};\r\n\r\nexport default ModaleDichiaraPagata;\r\n","/* eslint-disable no-nested-ternary */\r\nimport React, {\r\n useState, useEffect, useCallback, useRef, useMemo,\r\n} from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n DatePicker,\r\n Grid, Spinner, Validation,\r\n} from 'framework-ui-components';\r\nimport {\r\n Modal,\r\n Button,\r\n FeedbackPanel,\r\n} from 'framework-ui-components/Components/V2';\r\n\r\nconst ModaleRischiDiPagareDueVolte = ({\r\n show,\r\n onClose,\r\n primaryLabel,\r\n onPrimaryClick,\r\n secondaryLabel,\r\n onSecondaryClick,\r\n title,\r\n message,\r\n dontShowAgainMessage,\r\n dontShowAgainId,\r\n}) => (\r\n \r\n \r\n {title}\r\n \r\n \r\n {message}\r\n \r\n \r\n onSecondaryClick()}\r\n emphasis={Button.Emphasis.HIGH}\r\n >\r\n {secondaryLabel}\r\n \r\n onPrimaryClick()}\r\n primary\r\n emphasis={Button.Emphasis.HIGH}\r\n >\r\n {primaryLabel}\r\n \r\n \r\n \r\n);\r\n\r\nModaleRischiDiPagareDueVolte.defaultProps = {\r\n};\r\n\r\nModaleRischiDiPagareDueVolte.propTypes = {\r\n onClose: PropTypes.func.isRequired,\r\n primaryLabel: PropTypes.string.isRequired,\r\n onPrimaryClick: PropTypes.func.isRequired,\r\n secondaryLabel: PropTypes.string.isRequired,\r\n onSecondaryClick: PropTypes.func.isRequired,\r\n title: PropTypes.string.isRequired,\r\n message: PropTypes.string.isRequired,\r\n dontShowAgainMessage: PropTypes.string.isRequired,\r\n dontShowAgainId: PropTypes.string.isRequired,\r\n};\r\n\r\nexport default ModaleRischiDiPagareDueVolte;\r\n","/* eslint-disable no-nested-ternary */\r\nimport React, { useCallback, useEffect, useState } from 'react';\r\nimport {\r\n Badge,\r\n EllipsisText,\r\n InfoTooltip,\r\n Tooltip,\r\n} from 'framework-ui-components';\r\nimport { useSelector } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport { useHistory } from 'react-router';\r\nimport {\r\n Button, DropdownButton, Table,\r\n} from 'framework-ui-components/Components/V2';\r\nimport { JustADate } from 'framework-taskforce/utils/date';\r\nimport { STOP_EVENT_PROPAGATION } from 'framework-ui-components/utils/const';\r\nimport MoreVertIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/MoreVertIcon';\r\nimport { logApiError } from 'framework-taskforce/utils/log';\r\nimport SendIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/SendIcon';\r\nimport { callDownloadFile } from 'framework-taskforce/utils/file';\r\nimport { getSegnalazioneError } from 'framework-taskforce/models/segnalazioni';\r\nimport NoteDoneIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/NoteDoneIcon';\r\nimport { delegaSoggettoUrl } from '../../../../../../models/urls';\r\nimport apiDownloadFile from '../../../../../../apis/file';\r\nimport { getCurrencyValueNoSymbol } from '../../../../../../utils/format';\r\nimport {\r\n getEtichetteDelega,\r\n getOttieniDelega,\r\n postStampaDelegaProvvisoria,\r\n} from '../../../../../../apis/deleghe';\r\nimport UndoIcon from '../../../../../../components/icons/google/UndoIcon';\r\nimport PrinterIcon from '../../../../../../components/icons/google/PrinterIcon';\r\nimport ModaleDichiaraPagata from '../presentate/ModaleDichiaraPagata';\r\nimport EtichetteDelega from '../../../../../../components/EtichetteDelega';\r\nimport ModaleAiutaci from '../../../../../../components/ModaleAiutaci';\r\nimport SendCancelledIcon from '../../../../../../components/icons/google/SendCancelledIcon';\r\nimport ModaleRischiDiPagareDueVolte from './ModaleRischiDiPagareDueVolte';\r\nimport { STEP_SCELTA_TELEMATICO } from '../../../../../../models/delega';\r\n\r\nconst RigaDelegheCompleteSoggetto = ({\r\n item: {\r\n IdDelega,\r\n TipoDelega,\r\n ScadenzaVersamento,\r\n IsScaduta,\r\n IdContribuente,\r\n Stato,\r\n InvioConAdele,\r\n Saldo,\r\n Iban,\r\n IsDelegaConCompensazioni,\r\n IsDaNonPresentare,\r\n ImportoDebito,\r\n ImportoCredito,\r\n DenominazioneContribuente,\r\n TipoDelegaDescrizione,\r\n NumeroNote,\r\n },\r\n additionalRowData: {\r\n // ufficioSelezionato,\r\n searchTerm,\r\n dichiaraAperta,\r\n dichiaraPagata,\r\n dichiaraDaNonPresentare,\r\n dichiaraDaPresentare,\r\n setDatiModalePresentazione,\r\n setSegnalazioni,\r\n segnalazioni,\r\n segnalazioniDichiaraPagata,\r\n setSegnalazioniDichiaraPagata,\r\n windowWidth,\r\n },\r\n}) => {\r\n const history = useHistory();\r\n\r\n const appParamVisualizzazione = useSelector((store) => !!store.appParams.visualizzazione);\r\n const codiceUfficioOperatore = useSelector((store) => store.appParams.codiceUfficioOperatore);\r\n const codiceUfficioSelezionato = useSelector((store) => store.appParams.ufficioSelezionato);\r\n\r\n const [etichetteDelega, setEtichetteDelega] = useState([]);\r\n const etichetteSingolaChiamataAttivo = true;\r\n const [datiAggiuntivi, setDatiAggiuntivi] = useState();\r\n\r\n const [showModaleDichiaraPagata, setShowModaleDichiaraPagata] = useState(false);\r\n const [showConfirmSegnaDaNonPresentare, setShowConfirmSegnaDaNonPresentare] = useState(false);\r\n const [confirmFunzionalitaMancante, setConfirmFunzionalitaMancante] = useState(false);\r\n\r\n const gotoDelegaSoggetto = useCallback((idDelega) => {\r\n history.push(delegaSoggettoUrl(idDelega, appParamVisualizzazione, codiceUfficioOperatore, true));\r\n }, [appParamVisualizzazione, history, codiceUfficioOperatore]);\r\n\r\n const chiusuraModaleDichiaraPagata = useCallback((esito) => {\r\n setShowModaleDichiaraPagata(false);\r\n setSegnalazioni([]);\r\n }, [setSegnalazioni]);\r\n\r\n const stampaF24Provvisorio = (idDelega) => {\r\n postStampaDelegaProvvisoria(idDelega).then((res) => {\r\n if (res.Success) {\r\n callDownloadFile(\r\n apiDownloadFile,\r\n res.Result.NomeFile,\r\n res.Result.IdFile,\r\n codiceUfficioSelezionato,\r\n res.Result.NomeFile,\r\n ).then((resDownload) => {\r\n // setLoading(false);\r\n }).catch((e) => {\r\n logApiError(e);\r\n // setLoading(false);\r\n });\r\n } else {\r\n // setLoading(false);\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n // setLoading(false);\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n getEtichetteDelega(IdDelega)\r\n .then((res) => {\r\n if (res.Success) {\r\n setEtichetteDelega(res.Result);\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n });\r\n }, [IdDelega]);\r\n\r\n const checkAzioniPossibili = useCallback(\r\n () => {\r\n getOttieniDelega(IdDelega)\r\n .then((res) => {\r\n if (res.Success) {\r\n setDatiAggiuntivi(res.Result);\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n });\r\n },\r\n [IdDelega],\r\n );\r\n\r\n return (\r\n \r\n gotoDelegaSoggetto(IdDelega)}\r\n >\r\n \r\n
    \r\n \r\n {DenominazioneContribuente}\r\n \r\n
    \r\n
    \r\n \r\n \r\n {TipoDelegaDescrizione}\r\n \r\n \r\n \r\n {ScadenzaVersamento === null ? '-' : `${JustADate(ScadenzaVersamento)}`}\r\n {IsScaduta && (\r\n
    \r\n \r\n La delega è scaduta\r\n \r\n
    \r\n )}\r\n
    \r\n \r\n \r\n
    \r\n {etichetteSingolaChiamataAttivo && }\r\n
    \r\n
    \r\n \r\n \r\n {Iban || (\r\n \r\n IBAN Assente\r\n \r\n )}\r\n \r\n {windowWidth >= 1600 && ()}\r\n {windowWidth >= 1600 && (\r\n \r\n {ImportoDebito ? `${getCurrencyValueNoSymbol(ImportoDebito)}` : '0,00'}\r\n \r\n )}\r\n {windowWidth >= 1600 && ()}\r\n {windowWidth >= 1600 && (\r\n \r\n {ImportoCredito ? `${getCurrencyValueNoSymbol(ImportoCredito)}` : '0,00'}\r\n \r\n )}\r\n \r\n \r\n {Saldo !== null ? `${getCurrencyValueNoSymbol(Saldo, true)}` : '-'}\r\n \r\n \r\n \r\n {NumeroNote > 0 && (\r\n \r\n
    \r\n \r\n
    \r\n \r\n )}\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n checkAzioniPossibili()}\r\n >\r\n \r\n \r\n {!IsDaNonPresentare && (\r\n (datiAggiuntivi && datiAggiuntivi.IsDichiaraDaNonPresentareAttivo\r\n && JSON.parse(window.localStorage.getItem('possibilita-di-non-presentare-non-visualizza-piu')) !== 'messageRead'\r\n ? setShowConfirmSegnaDaNonPresentare(true) : setDatiModalePresentazione({\r\n show: true,\r\n idDelega: IdDelega,\r\n isCreaStampaDaConsegnareAttivo: datiAggiuntivi.IsCreaStampaDaConsegnareAttivo,\r\n dataVersamento: ScadenzaVersamento,\r\n ibanAssociatoAllaDelega: Iban,\r\n infoModalitaPresentazione: null,\r\n tipoDelegaDescrizione: TipoDelegaDescrizione,\r\n modalitaPresentazione: STEP_SCELTA_TELEMATICO.SELEZIONE_PRESENTAZIONE,\r\n saldo: Saldo,\r\n }))}\r\n primary\r\n disabled={appParamVisualizzazione}\r\n >\r\n \r\n Presenta la delega\r\n \r\n )}\r\n stampaF24Provvisorio(IdDelega)}\r\n >\r\n \r\n Stampa F24 provvisorio\r\n \r\n dichiaraAperta(IdDelega)}\r\n disabled={!datiAggiuntivi || (datiAggiuntivi && !datiAggiuntivi.IsDichiaraApertaAttivo) || appParamVisualizzazione}\r\n >\r\n \r\n Sposta a "In lavorazione"\r\n \r\n {datiAggiuntivi && datiAggiuntivi.IsDichiaraDaNonPresentareAttivo && !IsDaNonPresentare && (\r\n dichiaraDaNonPresentare(IdDelega)}\r\n disabled={!datiAggiuntivi || (datiAggiuntivi && !datiAggiuntivi.IsDichiaraDaNonPresentareAttivo) || appParamVisualizzazione}\r\n >\r\n \r\n Non presentare questa delega\r\n \r\n )}\r\n {IsDaNonPresentare && (\r\n dichiaraDaPresentare(IdDelega, Stato)}\r\n disabled={!datiAggiuntivi || (datiAggiuntivi && !datiAggiuntivi.IsDichiaraDaNonPresentareAttivo) || appParamVisualizzazione}\r\n >\r\n \r\n Riabilita la presentazione\r\n \r\n )}\r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n }\r\n onClose={() => setShowConfirmSegnaDaNonPresentare(false)}\r\n primaryLabel=\"Torna alla lista\"\r\n onPrimaryClick={() => setShowConfirmSegnaDaNonPresentare(false)}\r\n secondaryLabel=\"Continua con la presentazione\"\r\n onSecondaryClick={() => {\r\n setDatiModalePresentazione({\r\n show: true,\r\n idDelega: IdDelega,\r\n isCreaStampaDaConsegnareAttivo: datiAggiuntivi.IsCreaStampaDaConsegnareAttivo,\r\n dataVersamento: ScadenzaVersamento,\r\n ibanAssociatoAllaDelega: Iban,\r\n isCreaFileTelematicoContribuenteAttivo: datiAggiuntivi.IsCreaFileTelematicoContribuenteAttivo,\r\n isCreaFileTelematicoIntermediarioAttivo: datiAggiuntivi.IsCreaFileTelematicoIntermediarioAttivo,\r\n isInviaFileTelematicoIntermediarioConAdeleAttivo: datiAggiuntivi.IsInviaFileTelematicoIntermediarioConAdeleAttivo,\r\n isInviaFileTelematicoContribuenteConCbiAttivo: datiAggiuntivi.IsInviaFileTelematicoContribuenteConCbiAttivo,\r\n tipoDelegaDescrizione: TipoDelegaDescrizione,\r\n saldo: Saldo,\r\n });\r\n setShowConfirmSegnaDaNonPresentare(false);\r\n }}\r\n title=\"Presentare una delega con compensazione verticale\"\r\n message={(\r\n
    \r\n
    \r\n Non essendo obbligatorio presentare all'Agenzia delle Entrate deleghe con compensazione\r\n
    \r\n verticale abbiamo aggiunto la funzionalità "Non presentare questa delega" per agevolare il\r\n
    tuo lavoro. La puoi trovare nel menu "Altre azioni" sulla riga della tabella.\r\n
    \r\n
    \r\n
    \r\n )}\r\n dontShowAgainMessage=\"Non mostrare più questo messaggio\"\r\n dontShowAgainId=\"possibilita-di-non-presentare-non-visualizza-piu\"\r\n />\r\n setConfirmFunzionalitaMancante(false)}\r\n />\r\n \r\n );\r\n};\r\n\r\nRigaDelegheCompleteSoggetto.propTypes = {\r\n item: PropTypes.shape({\r\n IdDelega: PropTypes.number.isRequired,\r\n TipoDelega: PropTypes.number.isRequired,\r\n ScadenzaVersamento: PropTypes.string.isRequired,\r\n IsScaduta: PropTypes.bool,\r\n IdContribuente: PropTypes.number.isRequired,\r\n Stato: PropTypes.number,\r\n InvioConAdele: PropTypes.string,\r\n ImportoDebito: PropTypes.number,\r\n ImportoCredito: PropTypes.number,\r\n Saldo: PropTypes.number,\r\n Iban: PropTypes.string,\r\n IsCreaStampaDaConsegnareAttivo: PropTypes.bool,\r\n IsCreaFileTelematicoContribuenteAttivo: PropTypes.bool,\r\n IsCreaFileTelematicoIntermediarioAttivo: PropTypes.bool,\r\n IsInviaFileTelematicoIntermediarioConAdeleAttivo: PropTypes.bool,\r\n IsDichiaraPagataAttivo: PropTypes.bool,\r\n IsDelegaConCompensazioni: PropTypes.bool,\r\n IsDichiaraApertaAttivo: PropTypes.bool,\r\n IsDichiaraDaNonPresentareAttivo: PropTypes.bool,\r\n IsDaNonPresentare: PropTypes.bool,\r\n DenominazioneContribuente: PropTypes.string,\r\n IsInviaFileTelematicoContribuenteConCbiAttivo: PropTypes.bool,\r\n TipoDelegaDescrizione: PropTypes.string,\r\n NumeroNote: PropTypes.number,\r\n }).isRequired,\r\n additionalRowData: PropTypes.shape({\r\n // ufficioSelezionato: PropTypes.string.isRequired,\r\n searchTerm: PropTypes.string,\r\n dichiaraAperta: PropTypes.func.isRequired,\r\n setDatiModalePresentazione: PropTypes.func,\r\n dichiaraPagata: PropTypes.func.isRequired,\r\n dichiaraDaNonPresentare: PropTypes.func.isRequired,\r\n dichiaraDaPresentare: PropTypes.func.isRequired,\r\n setSegnalazioni: PropTypes.func,\r\n segnalazioni: PropTypes.arrayOf(PropTypes.string),\r\n segnalazioniDichiaraPagata: PropTypes.arrayOf(PropTypes.string),\r\n setSegnalazioniDichiaraPagata: PropTypes.func,\r\n windowWidth: PropTypes.number,\r\n }).isRequired,\r\n};\r\n\r\nexport default RigaDelegheCompleteSoggetto;\r\n","import React, {\r\n forwardRef, useCallback, useEffect, useImperativeHandle, useMemo, useRef, useState,\r\n} from 'react';\r\nimport useDebouncedFunc from 'framework-ui-components/Components/Hooks/useDebouncedFunc';\r\nimport {\r\n FeedbackModal, ODataTable, ViewportProvider, Filter,\r\n} from 'framework-ui-components/Components/V2';\r\nimport useViewport, { MAIN } from 'framework-ui-components/Components/V2/Hooks/useViewport';\r\nimport PropTypes from 'prop-types';\r\nimport { QueryOptions } from 'framework-ui-components';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport Log from 'framework-taskforce/utils/log';\r\nimport { setAppParamsAction } from 'framework-taskforce/actions/appParams';\r\nimport { getSegnalazioneError } from 'framework-taskforce/models/segnalazioni';\r\nimport {\r\n getOttieniContatoriTipoDelegheMassiva,\r\n ottieniDelegheUrlCompleteMassiva,\r\n postDichiaraAperta, postDichiaraDaNonPresentare, postDichiaraDaPresentare, postDichiaraPagata,\r\n} from '../../../../../../apis/deleghe';\r\nimport RigaDelegheCompleteSoggetto from './RigaDelegheCompleteSoggetto';\r\nimport { convertUTCDateToLocalDate } from '../../../../../../utils/format';\r\nimport TemplateGrid from '../../../../../../components/TemplateGrid/TemplateGrid';\r\nimport { STATO_DELEGA, TIPO_DELEGA } from '../../../../../../models/delega';\r\n\r\nconst TabellaDelegheCompleteSoggetto = forwardRef(({\r\n setDatiModalePresentazione, updateContatori,\r\n}, ref) => {\r\n const tabellaRef = useRef();\r\n const studioSelezionato = useSelector((store) => store.appParams.studioSelezionato);\r\n const tabSelected = useSelector((store) => store.appParams.tabSelected);\r\n\r\n const [initialFilters, setInitialFilters] = useState([]);\r\n const [segnalazioni, setSegnalazioni] = useState([]);\r\n const [segnalazioniDichiaraPagata, setSegnalazioniDichiaraPagata] = useState([]);\r\n const [titoloFeedbackModal, setTitoloFeedbackModal] = useState('');\r\n const [numeroRighe, setNumeroRighe] = useState(0);\r\n const [contatoriTipoDeleghe, setContatoriTipoDeleghe] = useState(null);\r\n\r\n const dispatch = useDispatch();\r\n\r\n const { width, height, resolution } = useViewport();\r\n const resolutionMAIN = resolution === MAIN;\r\n\r\n const url = useMemo(() => ottieniDelegheUrlCompleteMassiva(\r\n studioSelezionato,\r\n tabSelected,\r\n '',\r\n ), [studioSelezionato, tabSelected]);\r\n\r\n const onRowsSelected = useCallback((rows) => {\r\n const rowsObjectSelected = rows.map((row) => row.object);\r\n dispatch(setAppParamsAction({\r\n rowsDeleghe: rowsObjectSelected,\r\n }));\r\n }, [dispatch]);\r\n\r\n const updateOptimisticRows = useCallback(() => {\r\n // dispatch({ type: ACTIONS.UPDATE_OPTIMISTIC_ROWS });\r\n }, []);\r\n\r\n const onPageLoaded = useCallback((pageItems, totalCount, currentFilter, currentPage, sortProperty, sortOrder) => {\r\n setNumeroRighe(totalCount);\r\n tabellaRef.current && tabellaRef.current.resetSelection();\r\n updateOptimisticRows();\r\n studioSelezionato\r\n && getOttieniContatoriTipoDelegheMassiva(studioSelezionato, STATO_DELEGA.COMPLETA)\r\n .then((response) => {\r\n if (response.Success) {\r\n setContatoriTipoDeleghe(response.Result);\r\n } else {\r\n setContatoriTipoDeleghe(null);\r\n Log.error('App error');\r\n }\r\n }).catch((err) => {\r\n setContatoriTipoDeleghe(null);\r\n Log.error(err);\r\n });\r\n }, [studioSelezionato, updateOptimisticRows]);\r\n\r\n // const updateContatori = useCallback(() => {\r\n // (getStati)(codiceUfficio, annoSelezionato, filtroText)\r\n // .then((contatori) => {\r\n // dispatch({ type: ACTIONS.SET_CONTATORI_STATO, payload: contatori });\r\n // }).catch((e) => {\r\n // Log.error(e);\r\n // });\r\n // }, [annoSelezionato, backoffice, codiceUfficio, dispatch, filtroText]);\r\n\r\n useEffect(() => {\r\n // updateContatori();\r\n }, []);\r\n\r\n const refreshTabella = useDebouncedFunc(() => {\r\n tabellaRef.current && tabellaRef.current.refreshTable();\r\n updateContatori();\r\n }, 200, []);\r\n\r\n // permetto di accedere via ref al metodo refreshTabella\r\n useImperativeHandle(ref, () => ({ refreshTabella }), [refreshTabella]);\r\n\r\n // // intercettazione evento di refresh che arriva da un eventuale parent plugins\r\n // usePluginsReducer(() => ({\r\n // REFRESH_DICHIARAZIONI_ISEE: () => {\r\n // setTimeout(() => {\r\n // // Chiamata refresh dopo 1s (tempo di refresh indici elastic)\r\n // refreshTabella();\r\n // }, 1000);\r\n // },\r\n // }), [refreshTabella]);\r\n\r\n const dichiaraAperta = useCallback((idDelega) => {\r\n postDichiaraAperta({ idDelega }).then((response) => {\r\n if (response.Success) {\r\n refreshTabella();\r\n } else {\r\n setTitoloFeedbackModal('Sposta a \"In lavorazione\" non riuscito');\r\n setSegnalazioni(response.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n }).catch((err) => {\r\n Log.error(err);\r\n });\r\n }, [refreshTabella]);\r\n\r\n const dichiaraPagata = useCallback((idDelega, dataVersamento) => {\r\n const DataVersamento = convertUTCDateToLocalDate(dataVersamento);\r\n postDichiaraPagata({ idDelega, DataVersamento }).then((response) => {\r\n if (response.Success) {\r\n refreshTabella();\r\n } else {\r\n setSegnalazioniDichiaraPagata(response.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n Log.error('App error');\r\n }\r\n }).catch((err) => {\r\n Log.error(err);\r\n });\r\n }, [refreshTabella]);\r\n\r\n const dichiaraDaNonPresentare = useCallback((idDelega) => {\r\n postDichiaraDaNonPresentare({ idDelega }).then((response) => {\r\n if (response.Success) {\r\n refreshTabella();\r\n } else {\r\n setTitoloFeedbackModal('Dichiara da non presenzate non riuscito');\r\n setSegnalazioni(response.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n }).catch((err) => {\r\n Log.error(err);\r\n });\r\n }, [refreshTabella]);\r\n\r\n const dichiaraDaPresentare = useCallback((idDelega, stato) => {\r\n postDichiaraDaPresentare({ idDelega, stato }).then((response) => {\r\n if (response.Success) {\r\n refreshTabella();\r\n } else {\r\n setTitoloFeedbackModal('Dichiara da presenzate non riuscito');\r\n setSegnalazioni(response.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n }).catch((err) => {\r\n Log.error(err);\r\n });\r\n }, [refreshTabella]);\r\n\r\n const rowRender = useCallback((item) => (\r\n \r\n ), [dichiaraAperta, width,\r\n dichiaraDaNonPresentare, dichiaraDaPresentare, dichiaraPagata, refreshTabella, segnalazioni, segnalazioniDichiaraPagata, setDatiModalePresentazione]);\r\n\r\n return (\r\n \r\n {studioSelezionato && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {width >= 1600 && ()}\r\n {width >= 1600\r\n && (\r\n \r\n )}\r\n {width >= 1600 && ()}\r\n {width >= 1600\r\n && (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {segnalazioni && segnalazioni.length > 0 && (\r\n 0}\r\n title={titoloFeedbackModal}\r\n onClose={() => setSegnalazioni([])}\r\n buttonLabel=\"ok\"\r\n type=\"alarm\"\r\n message={segnalazioni[0].msg}\r\n />\r\n )}\r\n \r\n );\r\n});\r\n\r\nTabellaDelegheCompleteSoggetto.defaultProps = {\r\n setDatiModalePresentazione: () => {},\r\n};\r\n\r\nTabellaDelegheCompleteSoggetto.propTypes = {\r\n updateContatori: PropTypes.func.isRequired,\r\n setDatiModalePresentazione: PropTypes.func,\r\n};\r\n\r\nexport default TabellaDelegheCompleteSoggetto;\r\n","/* eslint-disable no-nested-ternary */\r\nimport React, { useCallback, useEffect, useState } from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport { useHistory } from 'react-router';\r\nimport { Button, DropdownButton, Table } from 'framework-ui-components/Components/V2';\r\nimport { JustADate } from 'framework-taskforce/utils/date';\r\nimport { STOP_EVENT_PROPAGATION } from 'framework-ui-components/utils/const';\r\nimport MoreVertIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/MoreVertIcon';\r\nimport DeleteIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/DeleteIcon';\r\nimport {\r\n Badge, InfoTooltip, EllipsisText, Tooltip,\r\n} from 'framework-ui-components';\r\nimport { logApiError } from 'framework-taskforce/utils/log';\r\nimport { callDownloadFile } from 'framework-taskforce/utils/file';\r\nimport { getSegnalazioneError } from 'framework-taskforce/models/segnalazioni';\r\nimport NoteDoneIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/NoteDoneIcon';\r\nimport { delegaSoggettoUrl } from '../../../../../../models/urls';\r\nimport { getCurrencyValueNoSymbol } from '../../../../../../utils/format';\r\nimport PrinterIcon from '../../../../../../components/icons/google/PrinterIcon';\r\nimport apiDownloadFile from '../../../../../../apis/file';\r\nimport ModaleAiutaci from '../../../../../../components/ModaleAiutaci';\r\nimport {\r\n getEtichetteDelega, getOttieniDelega, postStampaDelegaProvvisoria,\r\n} from '../../../../../../apis/deleghe';\r\nimport EtichetteDelega from '../../../../../../components/EtichetteDelega';\r\nimport VerifiedIcon from '../../../../../../components/icons/google/VerifiedIcon';\r\n\r\nconst RigaDelegheInLavorazioneSoggetto = ({\r\n item: {\r\n IdDelega,\r\n TipoDelega,\r\n ScadenzaVersamento,\r\n IsScaduta,\r\n Stato,\r\n Errata,\r\n Saldo,\r\n ImportoDebito,\r\n ImportoCredito,\r\n Iban,\r\n DenominazioneContribuente,\r\n TipoDelegaDescrizione,\r\n NumeroNote,\r\n },\r\n additionalRowData: {\r\n // ufficioSelezionato,\r\n apriEliminaDelega,\r\n dichiaraChiusa,\r\n setSegnalazioni,\r\n windowWidth,\r\n // annoImposta,\r\n },\r\n}) => {\r\n const history = useHistory();\r\n\r\n const appParamVisualizzazione = useSelector((store) => !!store.appParams.visualizzazione);\r\n const codiceUfficioOperatore = useSelector((store) => store.appParams.codiceUfficioOperatore);\r\n const codiceUfficioSelezionato = useSelector((store) => store.appParams.ufficioSelezionato);\r\n\r\n const [etichetteDelega, setEtichetteDelega] = useState([]);\r\n const [datiAggiuntivi, setDatiAggiuntivi] = useState();\r\n const etichetteSingolaChiamataAttivo = true;\r\n\r\n const [confirmFunzionalitaMancante, setConfirmFunzionalitaMancante] = useState(false);\r\n\r\n const gotoDelegaSoggetto = useCallback((idDelega) => {\r\n history.push(delegaSoggettoUrl(idDelega, appParamVisualizzazione, codiceUfficioOperatore, true));\r\n }, [appParamVisualizzazione, history, codiceUfficioOperatore]);\r\n\r\n useEffect(() => {\r\n getEtichetteDelega(IdDelega)\r\n .then((res) => {\r\n if (res.Success) {\r\n setEtichetteDelega(res.Result);\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n });\r\n }, [IdDelega]);\r\n\r\n const stampaF24Provvisorio = (idDelega) => {\r\n postStampaDelegaProvvisoria(idDelega).then((res) => {\r\n if (res.Success) {\r\n callDownloadFile(\r\n apiDownloadFile,\r\n res.Result.NomeFile,\r\n res.Result.IdFile,\r\n codiceUfficioSelezionato,\r\n res.Result.NomeFile,\r\n ).then((resDownload) => {\r\n // setLoading(false);\r\n }).catch((e) => {\r\n logApiError(e);\r\n // setLoading(false);\r\n });\r\n } else {\r\n // setLoading(false);\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n // setLoading(false);\r\n });\r\n };\r\n\r\n const checkAzioniPossibili = useCallback(\r\n () => {\r\n getOttieniDelega(IdDelega)\r\n .then((res) => {\r\n if (res.Success) {\r\n setDatiAggiuntivi(res.Result);\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n });\r\n },\r\n [IdDelega],\r\n );\r\n\r\n return (\r\n \r\n gotoDelegaSoggetto(IdDelega)}\r\n >\r\n \r\n
    \r\n \r\n {DenominazioneContribuente}\r\n \r\n
    \r\n
    \r\n \r\n \r\n {TipoDelegaDescrizione}\r\n \r\n \r\n \r\n {ScadenzaVersamento === null ? '-' : `${JustADate(ScadenzaVersamento)}`}\r\n {IsScaduta && (\r\n
    \r\n \r\n La delega è scaduta\r\n \r\n
    \r\n )}\r\n
    \r\n \r\n \r\n
    {/* displayInlineMiddle */}\r\n {etichetteSingolaChiamataAttivo && }\r\n
    \r\n
    \r\n \r\n \r\n {Iban || (\r\n \r\n IBAN Assente\r\n \r\n )}\r\n \r\n {windowWidth >= 1600 && ()}\r\n {windowWidth >= 1600 && (\r\n \r\n {ImportoDebito ? `${getCurrencyValueNoSymbol(ImportoDebito)}` : '0,00'}\r\n \r\n )}\r\n {windowWidth >= 1600 && ()}\r\n {windowWidth >= 1600 && (\r\n \r\n {ImportoCredito ? `${getCurrencyValueNoSymbol(ImportoCredito)}` : '0,00'}\r\n \r\n )}\r\n \r\n \r\n {Saldo !== null ? `${getCurrencyValueNoSymbol(Saldo, true)}` : '-'}\r\n \r\n \r\n {datiAggiuntivi && !datiAggiuntivi.IsDichiaraCompletaAttivo ? (\r\n \r\n {ImportoCredito > 0 ? 'La delega deve avere un saldo maggiore o uguale a zero' : 'Non è presente alcun tributo'}\r\n \r\n ) : ''}\r\n \r\n \r\n {NumeroNote > 0 && (\r\n \r\n
    \r\n \r\n
    \r\n \r\n )}\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n checkAzioniPossibili()}\r\n left\r\n >\r\n \r\n \r\n dichiaraChiusa(IdDelega, Stato)}\r\n primary\r\n disabled={!datiAggiuntivi || (datiAggiuntivi && !datiAggiuntivi.IsDichiaraCompletaAttivo) || appParamVisualizzazione}\r\n >\r\n \r\n Segna come completa\r\n \r\n stampaF24Provvisorio(IdDelega)}\r\n >\r\n \r\n Stampa F24 provvisorio\r\n \r\n apriEliminaDelega(IdDelega)}\r\n disabled={appParamVisualizzazione}\r\n >\r\n \r\n Elimina\r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n setConfirmFunzionalitaMancante(false)}\r\n />\r\n
    \r\n );\r\n};\r\n\r\nRigaDelegheInLavorazioneSoggetto.propTypes = {\r\n item: PropTypes.shape({\r\n IdDelega: PropTypes.number.isRequired,\r\n TipoDelega: PropTypes.number.isRequired,\r\n ScadenzaVersamento: PropTypes.string.isRequired,\r\n IsScaduta: PropTypes.bool,\r\n Stato: PropTypes.number,\r\n Saldo: PropTypes.number,\r\n ImportoDebito: PropTypes.number,\r\n ImportoCredito: PropTypes.number,\r\n Errata: PropTypes.bool.isRequired,\r\n Iban: PropTypes.string,\r\n DenominazioneContribuente: PropTypes.string,\r\n TipoDelegaDescrizione: PropTypes.number,\r\n NumeroNote: PropTypes.number,\r\n }).isRequired,\r\n additionalRowData: PropTypes.shape({\r\n dichiaraChiusa: PropTypes.func.isRequired,\r\n searchTerm: PropTypes.string,\r\n apriEliminaDelega: PropTypes.func.isRequired,\r\n setSegnalazioni: PropTypes.func,\r\n windowWidth: PropTypes.number,\r\n }).isRequired,\r\n};\r\n\r\nexport default RigaDelegheInLavorazioneSoggetto;\r\n","import React, {\r\n forwardRef, useCallback, useEffect, useImperativeHandle, useMemo, useRef, useState,\r\n} from 'react';\r\nimport useDebouncedFunc from 'framework-ui-components/Components/Hooks/useDebouncedFunc';\r\nimport {\r\n FeedbackModal, Filter, ODataTable, ViewportProvider,\r\n} from 'framework-ui-components/Components/V2';\r\nimport useViewport from 'framework-ui-components/Components/V2/Hooks/useViewport';\r\nimport PropTypes from 'prop-types';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport Log from 'framework-taskforce/utils/log';\r\nimport { QueryOptions } from 'framework-ui-components';\r\nimport { getSegnalazioneError } from 'framework-taskforce/models/segnalazioni';\r\nimport useSignalR from 'framework-ui-components/Components/Hooks/useSignalR';\r\nimport { setAppParamsAction } from 'framework-taskforce/actions/appParams';\r\nimport {\r\n getOttieniContatoriTipoDelegheMassiva, ottieniDelegheUrlInLavorazioneMassiva, postDichiaraCompleta, postEliminaDelega,\r\n} from '../../../../../../apis/deleghe';\r\nimport RigaDelegheInLavorazioneSoggetto from './RigaDelegheInLavorazioneSoggetto';\r\nimport TemplateGrid from '../../../../../../components/TemplateGrid/TemplateGrid';\r\nimport ModaleConfermaEliminazione from '../../../../../../components/ModaleConfermaEliminazione';\r\nimport ModaleLoading from '../../../../../../components/ModaleLoading';\r\nimport { STATO_DELEGA, TIPO_DELEGA } from '../../../../../../models/delega';\r\n\r\nconst TabellaDelegheInLavorazioneSoggetto = forwardRef(({\r\n updateContatori,\r\n}, ref) => {\r\n const tabellaRef = useRef();\r\n const studioSelezionato = useSelector((store) => store.appParams.studioSelezionato);\r\n const tabSelected = useSelector((store) => store.appParams.tabSelected);\r\n\r\n const { width } = useViewport();\r\n\r\n const [segnalazioni, setSegnalazioni] = useState([]);\r\n const [titoloFeedbackModal, setTitoloFeedbackModal] = useState('');\r\n const [numeroRighe, setNumeroRighe] = useState(0);\r\n const [confirmEliminaDelega, setConfirmEliminaDelega] = useState({ show: false, idDelega: 0 });\r\n const [showModaleLoading, setShowModaleLoading] = useState({\r\n show: false,\r\n title: '',\r\n });\r\n const [initialFilters, setInitialFilters] = useState([]);\r\n const [contatoriTipoDeleghe, setContatoriTipoDeleghe] = useState(null);\r\n\r\n // const url = useMemo(() => getOttieniDelegheUrl(\r\n // idContribuente,\r\n // tabSelected,\r\n // '',\r\n // ),\r\n // [idContribuente, tabSelected]);\r\n\r\n const getFiltriStatoObjProp = (stato) => `$filter_${stato}`;\r\n\r\n const url = useMemo(\r\n () => ottieniDelegheUrlInLavorazioneMassiva(\r\n studioSelezionato,\r\n tabSelected,\r\n '',\r\n getFiltriStatoObjProp,\r\n ),\r\n [studioSelezionato, tabSelected],\r\n );\r\n\r\n const dispatch = useDispatch();\r\n const onRowsSelected = useCallback((rows) => {\r\n // const rowsObjectSelected = rows.map((row) => row.object);\r\n\r\n const rowsObjectSelected = rows.map((row) => !row.object.Errata && row.object);\r\n\r\n // epuro le delghe errate\r\n dispatch(setAppParamsAction({\r\n rowsDeleghe: rowsObjectSelected.filter((row) => row),\r\n }));\r\n // dispatch(setAppParamsAction({\r\n // rowsDeleghe: rowsObjectSelected,\r\n // }));\r\n }, [dispatch]);\r\n\r\n const updateOptimisticRows = useCallback(() => {\r\n // dispatch({ type: ACTIONS.UPDATE_OPTIMISTIC_ROWS });\r\n }, []);\r\n\r\n const onPageLoaded = useCallback((pageItems, totalCount, currentFilter, currentPage, sortProperty, sortOrder) => {\r\n setNumeroRighe(totalCount);\r\n tabellaRef.current && tabellaRef.current.resetSelection();\r\n updateOptimisticRows();\r\n\r\n studioSelezionato\r\n && getOttieniContatoriTipoDelegheMassiva(studioSelezionato, STATO_DELEGA.APERTA)\r\n .then((response) => {\r\n if (response.Success) {\r\n setContatoriTipoDeleghe(response.Result);\r\n } else {\r\n setContatoriTipoDeleghe(null);\r\n Log.error('App error');\r\n }\r\n }).catch((err) => {\r\n setContatoriTipoDeleghe(null);\r\n Log.error(err);\r\n });\r\n }, [studioSelezionato, updateOptimisticRows]);\r\n\r\n // const updateContatori = useCallback(() => {\r\n // (getStati)(codiceUfficio, annoSelezionato, filtroText)\r\n // .then((contatori) => {\r\n // dispatch({ type: ACTIONS.SET_CONTATORI_STATO, payload: contatori });\r\n // }).catch((e) => {\r\n // Log.error(e);\r\n // });\r\n // }, [annoSelezionato, backoffice, codiceUfficio, dispatch, filtroText]);\r\n\r\n useEffect(() => {\r\n // updateContatori();\r\n }, []);\r\n\r\n const refreshTabella = useDebouncedFunc(() => {\r\n tabellaRef.current && tabellaRef.current.refreshTable();\r\n updateContatori();\r\n }, 200, []);\r\n\r\n // permetto di accedere via ref al metodo refreshTabella\r\n useImperativeHandle(ref, () => ({ refreshTabella }), [refreshTabella]);\r\n\r\n // // intercettazione evento di refresh che arriva da un eventuale parent plugins\r\n // usePluginsReducer(() => ({\r\n // REFRESH_DICHIARAZIONI_ISEE: () => {\r\n // setTimeout(() => {\r\n // // Chiamata refresh dopo 1s (tempo di refresh indici elastic)\r\n // refreshTabella();\r\n // }, 1000);\r\n // },\r\n // }), [refreshTabella]);\r\n\r\n const dichiaraChiusa = useCallback((idDelega, stato) => {\r\n postDichiaraCompleta({ idDelega, stato }).then((response) => {\r\n if (response.Success) {\r\n refreshTabella();\r\n } else {\r\n setTitoloFeedbackModal('Sposta a \"Complete\" non riuscito');\r\n setSegnalazioni(response.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n }).catch((err) => {\r\n // Log.error(err);\r\n setTitoloFeedbackModal('Sposta a \"Complete\" non riuscito');\r\n setSegnalazioni([{ msg: 'Errore generico' }]);\r\n });\r\n }, [refreshTabella]);\r\n\r\n const eseguiEliminaDelega = useCallback((idDelega) => {\r\n setConfirmEliminaDelega({ show: false });\r\n postEliminaDelega(idDelega).then((response) => {\r\n if (!response.Success) {\r\n setTitoloFeedbackModal('Eliminazione non riuscita');\r\n setSegnalazioni(response.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n } else {\r\n setShowModaleLoading({ show: true, title: 'Eliminazione in corso' });\r\n }\r\n }).catch((err) => {\r\n Log.error(err);\r\n });\r\n }, []);\r\n\r\n useSignalR('DelegaEliminata', (data) => {\r\n setShowModaleLoading({ show: false });\r\n refreshTabella();\r\n });\r\n\r\n const apriEliminaDelega = useCallback((idDelega) => {\r\n setConfirmEliminaDelega({ show: true, idDelega });\r\n }, []);\r\n\r\n const rowRender = useCallback((item) => (\r\n \r\n ), [apriEliminaDelega, dichiaraChiusa, refreshTabella, width]);\r\n\r\n return (\r\n \r\n {studioSelezionato && (\r\n \r\n \r\n \r\n \r\n \r\n {/* {contatoriCheckbox && (\r\n  \r\n \r\n )} */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* \r\n */}\r\n \r\n \r\n \r\n \r\n {width >= 1600 && ()}\r\n {width >= 1600\r\n && (\r\n \r\n )}\r\n {width >= 1600 && ()}\r\n {width >= 1600\r\n && (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n setConfirmEliminaDelega({ show: false })}\r\n elimina={() => eseguiEliminaDelega(confirmEliminaDelega.idDelega)}\r\n nomeElementoEliminato=\"la delega\"\r\n />\r\n {showModaleLoading && showModaleLoading.show && (\r\n setShowModaleLoading({ show: false })}\r\n title={showModaleLoading.title}\r\n />\r\n )}\r\n {segnalazioni && segnalazioni.length > 0 && (\r\n 0}\r\n title={titoloFeedbackModal}\r\n onClose={() => setSegnalazioni([])}\r\n buttonLabel=\"ok\"\r\n type=\"alarm\"\r\n message={segnalazioni[0].msg}\r\n className=\"feedback--modal__720px\"\r\n />\r\n )}\r\n \r\n );\r\n});\r\n\r\nTabellaDelegheInLavorazioneSoggetto.propTypes = {\r\n updateContatori: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default TabellaDelegheInLavorazioneSoggetto;\r\n","import React, { Fragment, useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Formatter, Input } from 'framework-ui-components';\r\nimport { MinimizeIcon, ExternalIcon } from 'framework-ui-components/Components/Icons';\r\nimport {\r\n Button, DropdownButton, Table, useTableRowContext,\r\n} from 'framework-ui-components/Components/V2';\r\nimport MoreVertIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/MoreVertIcon';\r\nimport ModaleAiutaci from '../../../../../../components/ModaleAiutaci';\r\n\r\nconst RigaExpanded = (item) => {\r\n const { setExpanded } = useTableRowContext();\r\n const [confirmFunzionalitaMancante, setConfirmFunzionalitaMancante] = useState(false);\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 \r\n \r\n \r\n setExpanded(false)}\r\n primary\r\n >\r\n \r\n Apri delega\r\n \r\n setExpanded(false)}\r\n >\r\n \r\n Meno info\r\n \r\n \r\n \r\n Altre azioni\r\n \r\n \r\n \r\n \r\n \r\n setConfirmFunzionalitaMancante(false)}\r\n />\r\n \r\n );\r\n};\r\n\r\nRigaExpanded.propTypes = {\r\n item: PropTypes.shape({\r\n }).isRequired,\r\n};\r\n\r\nexport default RigaExpanded;\r\n","/* eslint-disable no-nested-ternary */\r\nimport React, {\r\n useCallback, useState, useEffect, useMemo,\r\n} from 'react';\r\nimport {\r\n Badge,\r\n EllipsisText,\r\n Formatter,\r\n InfoTooltip,\r\n Tooltip,\r\n} from 'framework-ui-components';\r\nimport { useSelector } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport { useHistory } from 'react-router';\r\nimport FileDownloadIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/FileDownloadIcon';\r\nimport {\r\n Button, DropdownButton, FeedbackPanel, Table,\r\n} from 'framework-ui-components/Components/V2';\r\nimport { JustADate } from 'framework-taskforce/utils/date';\r\nimport { STOP_EVENT_PROPAGATION } from 'framework-ui-components/utils/const';\r\nimport MoreVertIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/MoreVertIcon';\r\nimport { logApiError } from 'framework-taskforce/utils/log';\r\nimport { callDownloadFile } from 'framework-taskforce/utils/file';\r\nimport { getSegnalazioneError } from 'framework-taskforce/models/segnalazioni';\r\nimport NoteDoneIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/NoteDoneIcon';\r\nimport PrinterIcon from '../../../../../../components/icons/google/PrinterIcon';\r\nimport { delegaSoggettoUrl } from '../../../../../../models/urls';\r\nimport { getCurrencyValueNoSymbol } from '../../../../../../utils/format';\r\nimport RigaExpanded from './RigaExpanded';\r\nimport {\r\n MODALITA_PRESENTAZIONE, STATO_DELEGA, STATO_INVIO_CBI, STATO_INVIO_PAGOF24, STATO_INVIO_TELEMATICO,\r\n} from '../../../../../../models/delega';\r\nimport UndoIcon from '../../../../../../components/icons/google/UndoIcon';\r\nimport ModaleDichiaraPagata from './ModaleDichiaraPagata';\r\nimport CreditScoreIcon from '../../../../../../components/icons/google/CreditScoreIcon';\r\nimport {\r\n getEtichetteDelega, getOttieniDelega, getStampaUltimaDelega, postQuietanza, postStampaCopiaConformeDelega,\r\n} from '../../../../../../apis/deleghe';\r\nimport EtichetteDelega from '../../../../../../components/EtichetteDelega';\r\nimport ModaleRischiDiPagareDueVolte from '../complete/ModaleRischiDiPagareDueVolte';\r\nimport apiDownloadFile from '../../../../../../apis/file';\r\n\r\nconst RigaDeleghePresentateSoggetto = ({\r\n item: {\r\n Errata,\r\n Iban,\r\n IdContribuente,\r\n IdDelega,\r\n Saldo,\r\n ScadenzaVersamento,\r\n SoggettoVersante,\r\n SoggettoVersanteDescrizione,\r\n Stato,\r\n StatoInvioCbi,\r\n StatoInvioTelematico,\r\n StatoVersamentoPagoF24,\r\n ModalitaVersamentoPagoF24,\r\n InfoAggiuntiveStatoPagoF24,\r\n StatoDescrizione,\r\n TipoDelega,\r\n TipoDelegaDescrizione,\r\n DataVersamento,\r\n ModalitaPresentazione,\r\n ModalitaPresentazioneDescrizione,\r\n DenominazioneContribuente,\r\n NumeroNote,\r\n IsPagoF24QrCode,\r\n },\r\n additionalRowData: {\r\n // ufficioSelezionato,\r\n searchTerm,\r\n dichiaraPagata,\r\n dichiaraAperta,\r\n dichiaraCompleta,\r\n dichiaraNonPagata,\r\n setSegnalazioni,\r\n segnalazioni,\r\n setSegnalazioniDichiaraPagata,\r\n segnalazioniDichiaraPagata,\r\n windowWidth,\r\n },\r\n}) => {\r\n const history = useHistory();\r\n\r\n const appParamVisualizzazione = useSelector((store) => !!store.appParams.visualizzazione);\r\n const codiceUfficioOperatore = useSelector((store) => store.appParams.codiceUfficioOperatore);\r\n const codiceUfficioSelezionato = useSelector((store) => store.appParams.ufficioSelezionato);\r\n\r\n const [showModaleDichiaraPagata, setShowModaleDichiaraPagata] = useState(false);\r\n const [etichetteDelega, setEtichetteDelega] = useState([]);\r\n const [datiAggiuntivi, setDatiAggiuntivi] = useState();\r\n const etichetteSingolaChiamataAttivo = true;\r\n\r\n const rischiDiPagareDueVolte = useMemo(\r\n () => (ModalitaPresentazione === MODALITA_PRESENTAZIONE.INVIO_TELEMATICO_INTERMEDIARIO_ADELE\r\n && (StatoInvioTelematico === STATO_INVIO_TELEMATICO.ADEMPIMENTO_SOSPESO_ADE || StatoInvioTelematico === STATO_INVIO_TELEMATICO.ADEMPIMENTO_INVIATO_ADE)),\r\n [ModalitaPresentazione, StatoInvioTelematico],\r\n );\r\n\r\n const [showWarningSegnaDaNonPresentare, setShowWarningSegnaDaNonPresentare] = useState({ show: false });\r\n\r\n const gotoDelegaSoggetto = useCallback((idDelega) => {\r\n history.push(delegaSoggettoUrl(idDelega, appParamVisualizzazione, codiceUfficioOperatore, true));\r\n }, [appParamVisualizzazione, history, codiceUfficioOperatore]);\r\n\r\n useEffect(() => {\r\n getEtichetteDelega(IdDelega)\r\n .then((res) => {\r\n if (res.Success) {\r\n setEtichetteDelega(res.Result);\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n });\r\n }, [IdDelega]);\r\n\r\n const chiusuraModaleDichiaraPagata = useCallback((esito) => {\r\n setShowModaleDichiaraPagata(false);\r\n setSegnalazioni([]);\r\n }, [setSegnalazioni]);\r\n\r\n const getBadgeInvioTelematico = (statoInvioTelematico, modalitaPresentazioneDescrizione) => {\r\n let badge =
    ;\r\n\r\n if (statoInvioTelematico === STATO_INVIO_TELEMATICO.ADEMPIMENTO_SCARTATO_ADE) {\r\n badge = (\r\n \r\n Scartato\r\n \r\n );\r\n } else if (statoInvioTelematico === STATO_INVIO_TELEMATICO.ADEMPIMENTO_ANNULLATO_ADE) {\r\n badge = (\r\n \r\n Annullato\r\n \r\n );\r\n } else if (statoInvioTelematico === STATO_INVIO_TELEMATICO.ADEMPIMENTO_NON_INVIATO_ADE\r\n || statoInvioTelematico === STATO_INVIO_TELEMATICO.DELEGA_NON_INVIATA\r\n || statoInvioTelematico === STATO_INVIO_TELEMATICO.ADEMPIMENTO_NON_CREATO) {\r\n badge = (\r\n \r\n Rifiutato\r\n \r\n );\r\n } else if (statoInvioTelematico === STATO_INVIO_TELEMATICO.ADEMPIMENTO_SOSPESO_ADE) {\r\n badge = (\r\n \r\n Sospeso\r\n \r\n );\r\n } else if (statoInvioTelematico === STATO_INVIO_TELEMATICO.ADEMPIMENTO_INVIATO_ADE) {\r\n badge = (\r\n \r\n Inviato\r\n \r\n );\r\n } else if (statoInvioTelematico === STATO_INVIO_TELEMATICO.ADEMPIMENTO_ELABORATO_ADE) {\r\n badge = (\r\n \r\n Elaborato\r\n \r\n );\r\n }\r\n\r\n return (\r\n
    \r\n {modalitaPresentazioneDescrizione}\r\n {badge}\r\n
    \r\n );\r\n };\r\n\r\n const getBadgePagoF24 = (statoPagoF24, statoInvioCbi, modalitaPresentazioneDescrizione, modalitaVersamento, infoAggiuntive, isPagoF24QrCode) => {\r\n if (statoPagoF24 === STATO_INVIO_PAGOF24.VERSAMENTO_TRAMITE_CBI_AVVIATO) {\r\n return getBadgeInvioCbi(statoInvioCbi, modalitaPresentazioneDescrizione);\r\n }\r\n\r\n const badge = STATO_INVIO_PAGOF24.createBadge(statoPagoF24, modalitaVersamento, infoAggiuntive);\r\n\r\n return (\r\n
    \r\n {isPagoF24QrCode ? (\r\n
    \r\n Il tuo cliente ha utilizzato la procedura di
    pagamento attraverso il QR code
    stampato nella delega F24
    )}\r\n right\r\n >\r\n {modalitaPresentazioneDescrizione} QR\r\n \r\n
    \r\n ) : (\r\n modalitaPresentazioneDescrizione\r\n )}\r\n {badge}\r\n
    \r\n );\r\n };\r\n\r\n const getBadgeInvioCbi = (statoInvioCbi, modalitaPresentazioneDescrizione) => {\r\n let badge =
    ;\r\n\r\n if (statoInvioCbi === STATO_INVIO_CBI.DELEGA_ERRATA) {\r\n badge = (\r\n \r\n Errata\r\n \r\n );\r\n } else if (statoInvioCbi === STATO_INVIO_CBI.DELEGA_NON_PAGATA) {\r\n badge = (\r\n \r\n Non pagata\r\n \r\n );\r\n } else if (statoInvioCbi === STATO_INVIO_CBI.DELEGA_IN_ATTESA_DI_PAGAMENTO) {\r\n badge = (\r\n \r\n In attesa\r\n \r\n );\r\n } else if (statoInvioCbi === STATO_INVIO_CBI.DELEGA_PAGATA) {\r\n badge = (\r\n \r\n Pagata\r\n \r\n );\r\n } else if (statoInvioCbi === STATO_INVIO_CBI.DELEGA_IN_CARICO_BANCA) {\r\n badge = (\r\n \r\n In carico banca\r\n \r\n );\r\n }\r\n\r\n return (\r\n
    \r\n {modalitaPresentazioneDescrizione}\r\n {badge}\r\n
    \r\n );\r\n };\r\n\r\n const riscaricaUltimoF24 = (idDelega) => {\r\n getStampaUltimaDelega(idDelega).then((res) => {\r\n if (res.Success) {\r\n callDownloadFile(\r\n apiDownloadFile,\r\n res.Result.NomeFile,\r\n res.Result.IdFile,\r\n codiceUfficioSelezionato,\r\n res.Result.NomeFile,\r\n ).then((resDownload) => {\r\n // setLoading(false);\r\n }).catch((e) => {\r\n logApiError(e);\r\n // setLoading(false);\r\n });\r\n } else {\r\n // setLoading(false);\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n // setLoading(false);\r\n });\r\n };\r\n\r\n const stampaF24CopiaConforme = (idDelega) => {\r\n postStampaCopiaConformeDelega(idDelega).then((res) => {\r\n if (res.Success) {\r\n callDownloadFile(\r\n apiDownloadFile,\r\n res.Result.NomeFile,\r\n res.Result.IdFile,\r\n codiceUfficioSelezionato,\r\n res.Result.NomeFile,\r\n ).then((resDownload) => {\r\n // setLoading(false);\r\n }).catch((e) => {\r\n logApiError(e);\r\n // setLoading(false);\r\n });\r\n } else {\r\n // setLoading(false);\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n // setLoading(false);\r\n });\r\n };\r\n\r\n const scaricaQuietanza = (idDelega) => {\r\n postQuietanza(idDelega).then((res) => {\r\n if (res.Success) {\r\n callDownloadFile(\r\n apiDownloadFile,\r\n res.Result.NomeFile,\r\n res.Result.IdFile,\r\n codiceUfficioSelezionato,\r\n res.Result.NomeFile,\r\n ).then((resDownload) => {\r\n // setLoading(false);\r\n }).catch((e) => {\r\n logApiError(e);\r\n // setLoading(false);\r\n });\r\n } else {\r\n // setLoading(false);\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n // setLoading(false);\r\n });\r\n };\r\n\r\n const checkAzioniPossibili = useCallback(\r\n () => {\r\n getOttieniDelega(IdDelega)\r\n .then((res) => {\r\n if (res.Success) {\r\n setDatiAggiuntivi(res.Result);\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n });\r\n },\r\n [IdDelega],\r\n );\r\n\r\n return (\r\n \r\n (\r\n \r\n )}\r\n onClick={() => gotoDelegaSoggetto(IdDelega)}\r\n >\r\n \r\n
    \r\n \r\n {DenominazioneContribuente}\r\n \r\n
    \r\n
    \r\n \r\n \r\n {TipoDelegaDescrizione}\r\n \r\n \r\n \r\n {DataVersamento === null ? '-' : `${JustADate(DataVersamento)}`}\r\n {Stato !== STATO_DELEGA.PAGATA && ModalitaPresentazione !== MODALITA_PRESENTAZIONE.CARTACEA\r\n && new Date(DataVersamento) > new Date(ScadenzaVersamento) && (\r\n
    \r\n \r\n La delega è scaduta il \r\n \r\n
    \r\n )}\r\n {Stato !== STATO_DELEGA.PAGATA && ModalitaPresentazione === MODALITA_PRESENTAZIONE.CARTACEA\r\n && new Date(ScadenzaVersamento) < new Date().setHours(0, 0, 0, 0) && (\r\n
    \r\n \r\n La delega è scaduta il \r\n \r\n
    \r\n )}\r\n {Stato === STATO_DELEGA.PAGATA\r\n && new Date(DataVersamento) > new Date(ScadenzaVersamento) && (\r\n
    \r\n \r\n La delega è scaduta il \r\n \r\n
    \r\n )}\r\n
    \r\n \r\n \r\n
    {/* displayInlineMiddle */}\r\n {etichetteSingolaChiamataAttivo && }\r\n
    \r\n
    \r\n \r\n \r\n {StatoDescrizione}\r\n \r\n \r\n \r\n {ModalitaPresentazione === MODALITA_PRESENTAZIONE.INVIO_TELEMATICO_INTERMEDIARIO_ADELE\r\n ? getBadgeInvioTelematico(StatoInvioTelematico, ModalitaPresentazioneDescrizione)\r\n : ModalitaPresentazione === MODALITA_PRESENTAZIONE.INVIO_TELEMATICO_INTERMEDIARIO_CBI\r\n ? getBadgeInvioCbi(StatoInvioCbi, ModalitaPresentazioneDescrizione)\r\n : (ModalitaPresentazione === MODALITA_PRESENTAZIONE.PAGO_F24 || ModalitaPresentazione === MODALITA_PRESENTAZIONE.CGN_POS)\r\n ? getBadgePagoF24(\r\n StatoVersamentoPagoF24,\r\n StatoInvioCbi,\r\n ModalitaPresentazioneDescrizione,\r\n ModalitaVersamentoPagoF24,\r\n InfoAggiuntiveStatoPagoF24,\r\n IsPagoF24QrCode,\r\n )\r\n : (ModalitaPresentazioneDescrizione ? `${ModalitaPresentazioneDescrizione}` : '-')}\r\n \r\n { windowWidth > 1465 && (\r\n \r\n \r\n \r\n {SoggettoVersanteDescrizione === '0' ? 'Contribuente' : SoggettoVersanteDescrizione || '-'}\r\n \r\n \r\n )}\r\n { windowWidth >= 1600 && }\r\n { windowWidth >= 1600 && (\r\n \r\n {Iban || '-'}\r\n \r\n )}\r\n \r\n \r\n {Saldo !== null ? `${getCurrencyValueNoSymbol(Saldo, true)}` : '-'}\r\n \r\n \r\n \r\n {NumeroNote > 0 && (\r\n \r\n
    \r\n \r\n
    \r\n \r\n )}\r\n
    \r\n \r\n \r\n \r\n
    \r\n checkAzioniPossibili()}\r\n >\r\n \r\n \r\n {Stato !== STATO_DELEGA.PAGATA && (\r\n setShowModaleDichiaraPagata(true)}\r\n disabled={!datiAggiuntivi || (datiAggiuntivi && !datiAggiuntivi.IsDichiaraPagataAttivo) || appParamVisualizzazione}\r\n primary\r\n >\r\n \r\n Segna come pagata\r\n \r\n )}\r\n {Stato === STATO_DELEGA.PAGATA && StatoVersamentoPagoF24 === STATO_INVIO_PAGOF24.PAGATA && (\r\n scaricaQuietanza(IdDelega)}\r\n disabled={appParamVisualizzazione}\r\n primary\r\n >\r\n \r\n Scarica quietanza\r\n \r\n )}\r\n {Stato === STATO_DELEGA.PAGATA && (\r\n dichiaraNonPagata(IdDelega, Stato)}\r\n disabled={!datiAggiuntivi || (datiAggiuntivi && !datiAggiuntivi.IsDichiaraNonPagataAttivo) || appParamVisualizzazione}\r\n >\r\n \r\n Segna come 'in Presentazione'\r\n \r\n )}\r\n (rischiDiPagareDueVolte ? setShowWarningSegnaDaNonPresentare(\r\n { show: true, callBack: dichiaraCompleta, titolo: 'Sposta a \"Complete\"' },\r\n ) : dichiaraCompleta(IdDelega, Stato))}\r\n disabled={!datiAggiuntivi || (datiAggiuntivi && !datiAggiuntivi.IsDichiaraCompletaAttivo) || appParamVisualizzazione}\r\n >\r\n \r\n Sposta a "Complete"\r\n \r\n {Stato !== STATO_DELEGA.PAGATA && (\r\n (rischiDiPagareDueVolte ? setShowWarningSegnaDaNonPresentare(\r\n { show: true, callBack: dichiaraAperta, titolo: 'Sposta a \"In lavorazione\"' },\r\n ) : dichiaraAperta(IdDelega))}\r\n disabled={!datiAggiuntivi || (datiAggiuntivi && !datiAggiuntivi.IsDichiaraApertaAttivo) || appParamVisualizzazione}\r\n >\r\n \r\n Sposta a "In lavorazione"\r\n \r\n )}\r\n (ModalitaPresentazione === MODALITA_PRESENTAZIONE.CARTACEA\r\n ? riscaricaUltimoF24(IdDelega)\r\n : stampaF24CopiaConforme(IdDelega))}\r\n >\r\n \r\n Stampa F24\r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n setShowWarningSegnaDaNonPresentare({ show: false })}\r\n primaryLabel=\"Non spostare\"\r\n onPrimaryClick={() => setShowWarningSegnaDaNonPresentare({ show: false })}\r\n secondaryLabel={showWarningSegnaDaNonPresentare.titolo}\r\n onSecondaryClick={() => {\r\n showWarningSegnaDaNonPresentare.callBack(IdDelega);\r\n setShowWarningSegnaDaNonPresentare({ show: false });\r\n }}\r\n title={showWarningSegnaDaNonPresentare.titolo}\r\n message={(\r\n
    \r\n \r\n I tibuti della delega che stai per spostare potrebbero essere versati ugualmente\r\n
    \r\n in quanto già trasmessi all'Agenzia delle Entrate\r\n
    \r\n )}\r\n type=\"warning\"\r\n />\r\n
    \r\n )}\r\n dontShowAgainMessage={null}\r\n dontShowAgainId={null}\r\n />\r\n \r\n );\r\n};\r\n\r\nRigaDeleghePresentateSoggetto.propTypes = {\r\n item: PropTypes.shape({\r\n Errata: PropTypes.bool.isRequired,\r\n Iban: PropTypes.string,\r\n IdContribuente: PropTypes.number.isRequired,\r\n IdDelega: PropTypes.number.isRequired,\r\n IsDichiaraApertaAttivo: PropTypes.bool.isRequired,\r\n Saldo: PropTypes.number,\r\n ScadenzaVersamento: PropTypes.string.isRequired,\r\n SoggettoVersante: PropTypes.number,\r\n SoggettoVersanteDescrizione: PropTypes.string,\r\n Stato: PropTypes.number,\r\n StatoInvioTelematico: PropTypes.number,\r\n StatoVersamentoPagoF24: PropTypes.number,\r\n ModalitaVersamentoPagoF24: PropTypes.number,\r\n InfoAggiuntiveStatoPagoF24: PropTypes.string,\r\n StatoInvioCbi: PropTypes.number,\r\n StatoDescrizione: PropTypes.string.isRequired,\r\n TipoDelega: PropTypes.number.isRequired,\r\n TipoDelegaDescrizione: PropTypes.string.isRequired,\r\n DataVersamento: PropTypes.string,\r\n ModalitaPresentazione: PropTypes.number,\r\n ModalitaPresentazioneDescrizione: PropTypes.string,\r\n DenominazioneContribuente: PropTypes.string,\r\n NumeroNote: PropTypes.number,\r\n IsPagoF24QrCode: PropTypes.bool,\r\n }).isRequired,\r\n additionalRowData: PropTypes.shape({\r\n searchTerm: PropTypes.string,\r\n dichiaraPagata: PropTypes.func.isRequired,\r\n dichiaraAperta: PropTypes.func.isRequired,\r\n dichiaraCompleta: PropTypes.func.isRequired,\r\n dichiaraNonPagata: PropTypes.func.isRequired,\r\n setSegnalazioni: PropTypes.func,\r\n segnalazioni: PropTypes.arrayOf(PropTypes.string),\r\n setSegnalazioniDichiaraPagata: PropTypes.func,\r\n segnalazioniDichiaraPagata: PropTypes.arrayOf(PropTypes.string),\r\n windowWidth: PropTypes.number,\r\n }).isRequired,\r\n};\r\n\r\nexport default RigaDeleghePresentateSoggetto;\r\n","import React, {\r\n forwardRef, useCallback, useEffect, useImperativeHandle, useMemo, useRef, useState,\r\n} from 'react';\r\nimport useDebouncedFunc from 'framework-ui-components/Components/Hooks/useDebouncedFunc';\r\nimport {\r\n FeedbackModal, Filter, ODataTable, ViewportProvider, Panel,\r\n} from 'framework-ui-components/Components/V2';\r\nimport useViewport, { MAIN } from 'framework-ui-components/Components/V2/Hooks/useViewport';\r\nimport PropTypes from 'prop-types';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport Log from 'framework-taskforce/utils/log';\r\nimport { setAppParamsAction } from 'framework-taskforce/actions/appParams';\r\nimport { QueryOptions } from 'framework-ui-components';\r\nimport { getSegnalazioneError } from 'framework-taskforce/models/segnalazioni';\r\nimport {\r\n ottieniDelegheUrlPresentateMassiva, postDichiaraAperta,\r\n postDichiaraCompleta, postDichiaraNonPagata, postDichiaraPagata,\r\n} from '../../../../../../apis/deleghe';\r\nimport RigaDeleghePresentateSoggetto from './RigaDeleghePresentateSoggetto';\r\nimport TemplateGrid from '../../../../../../components/TemplateGrid/TemplateGrid';\r\nimport { convertUTCDateToLocalDate } from '../../../../../../utils/format';\r\nimport { MODALITA_PRESENTAZIONE } from '../../../../../../models/delega';\r\n\r\nconst TabellaDeleghePresentateSoggetto = forwardRef(({\r\n updateContatori,\r\n annoParam,\r\n}, ref) => {\r\n const tabellaRef = useRef();\r\n const dispatch = useDispatch();\r\n\r\n const [initialFilters, setInitialFilters] = useState(null);\r\n const [segnalazioni, setSegnalazioni] = useState([]);\r\n const [segnalazioniDichiaraPagata, setSegnalazioniDichiaraPagata] = useState([]);\r\n const [numeroRighe, setNumeroRighe] = useState(0);\r\n const [titoloFeedbackModal, setTitoloFeedbackModal] = useState('');\r\n\r\n const [showPanelAvviso, setShowPanelAvviso] = useState(true);\r\n\r\n const studioSelezionato = useSelector((store) => store.appParams.studioSelezionato);\r\n const tabSelected = useSelector((store) => store.appParams.tabSelected);\r\n const scartate = useSelector((store) => !!store.appParams.scartate);\r\n const inPresentazione = useSelector((store) => !!store.appParams.inPresentazione);\r\n\r\n const { width } = useViewport();\r\n\r\n const url = useMemo(\r\n () => ottieniDelegheUrlPresentateMassiva(\r\n studioSelezionato,\r\n tabSelected,\r\n '',\r\n ),\r\n [studioSelezionato, tabSelected],\r\n );\r\n\r\n const onRowsSelected = useCallback((rows) => {\r\n const rowsObjectSelected = rows.map((row) => row.object);\r\n dispatch(setAppParamsAction({\r\n rowsDeleghe: rowsObjectSelected,\r\n }));\r\n }, [dispatch]);\r\n\r\n const updateOptimisticRows = useCallback(() => {\r\n // dispatch({ type: ACTIONS.UPDATE_OPTIMISTIC_ROWS });\r\n }, []);\r\n\r\n const onPageLoaded = useCallback((pageItems, totalCount, currentFilter, currentPage, sortProperty, sortOrder) => {\r\n setNumeroRighe(totalCount);\r\n tabellaRef.current && tabellaRef.current.resetSelection();\r\n updateOptimisticRows();\r\n }, [updateOptimisticRows]);\r\n\r\n // const updateContatori = useCallback(() => {\r\n // (getStati)(codiceUfficio, annoSelezionato, filtroText)\r\n // .then((contatori) => {\r\n // dispatch({ type: ACTIONS.SET_CONTATORI_STATO, payload: contatori });\r\n // }).catch((e) => {\r\n // Log.error(e);\r\n // });\r\n // }, [annoSelezionato, backoffice, codiceUfficio, dispatch, filtroText]);\r\n\r\n useEffect(() => {\r\n if (!initialFilters) {\r\n if (annoParam) {\r\n if (inPresentazione) {\r\n setInitialFilters([\r\n {\r\n propertyName: 'IsInPresentazione',\r\n description: 'Deleghe',\r\n value: true,\r\n displayValue: 'In Presentazione',\r\n query: QueryOptions.EQUAL,\r\n },\r\n {\r\n propertyName: 'Annualita',\r\n description: 'Annualità',\r\n value: Number(annoParam),\r\n displayValue: annoParam,\r\n query: QueryOptions.EQUAL,\r\n },\r\n ]);\r\n } else if (scartate) {\r\n setInitialFilters([\r\n {\r\n propertyName: 'IsScartata',\r\n description: 'Deleghe',\r\n value: true,\r\n displayValue: 'Scartate',\r\n query: QueryOptions.EQUAL,\r\n },\r\n {\r\n propertyName: 'Annualita',\r\n description: 'Annualità',\r\n value: Number(annoParam),\r\n displayValue: annoParam,\r\n query: QueryOptions.EQUAL,\r\n }]);\r\n } else {\r\n setInitialFilters([]);\r\n }\r\n } else {\r\n setInitialFilters([]);\r\n }\r\n }\r\n }, [annoParam, inPresentazione, initialFilters, scartate]);\r\n\r\n const refreshTabella = useDebouncedFunc(() => {\r\n tabellaRef.current && tabellaRef.current.refreshTable();\r\n updateContatori();\r\n }, 200, []);\r\n\r\n // permetto di accedere via ref al metodo refreshTabella\r\n useImperativeHandle(ref, () => ({ refreshTabella }), [refreshTabella]);\r\n\r\n // // intercettazione evento di refresh che arriva da un eventuale parent plugins\r\n // usePluginsReducer(() => ({\r\n // REFRESH_DICHIARAZIONI_ISEE: () => {\r\n // setTimeout(() => {\r\n // // Chiamata refresh dopo 1s (tempo di refresh indici elastic)\r\n // refreshTabella();\r\n // }, 1000);\r\n // },\r\n // }), [refreshTabella]);\r\n\r\n const dichiaraChiusa = useCallback((idDelega, stato) => {\r\n postDichiaraCompleta({ idDelega, stato }).then((response) => {\r\n if (response.Success) {\r\n refreshTabella();\r\n } else {\r\n setTitoloFeedbackModal('Sposta a \"Complete\" non riuscito');\r\n setSegnalazioni(response.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n }).catch((err) => {\r\n // Log.error(err);\r\n setTitoloFeedbackModal('Sposta a \"Complete\" non riuscito');\r\n setSegnalazioni([{ msg: 'Errore generico' }]);\r\n });\r\n }, [refreshTabella]);\r\n\r\n const dichiaraAperta = useCallback((idDelega) => {\r\n postDichiaraAperta({ idDelega }).then((response) => {\r\n if (response.Success) {\r\n refreshTabella();\r\n } else {\r\n setTitoloFeedbackModal('Sposta a \"Complete\" non riuscito');\r\n setSegnalazioni(response.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n }).catch((err) => {\r\n Log.error(err);\r\n });\r\n }, [refreshTabella]);\r\n\r\n const dichiaraNonPagata = useCallback((idDelega, stato) => {\r\n postDichiaraNonPagata({ idDelega, stato }).then((response) => {\r\n if (response.Success) {\r\n refreshTabella();\r\n } else {\r\n setTitoloFeedbackModal('Sposta a \"In Presentazione\" non riuscito');\r\n setSegnalazioni(response.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n }).catch((err) => {\r\n Log.error(err);\r\n });\r\n }, [refreshTabella]);\r\n\r\n const dichiaraPagata = useCallback((idDelega, dataVersamento) => {\r\n const DataVersamento = convertUTCDateToLocalDate(dataVersamento);\r\n postDichiaraPagata({ idDelega, DataVersamento }).then((response) => {\r\n if (response.Success) {\r\n refreshTabella();\r\n } else {\r\n setSegnalazioniDichiaraPagata(response.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n Log.error('App error');\r\n }\r\n }).catch((err) => {\r\n Log.error(err);\r\n });\r\n }, [refreshTabella]);\r\n\r\n const chiusuraPanelAvviso = useCallback(() => {\r\n setShowPanelAvviso(false);\r\n }, []);\r\n\r\n const PanelAvviso = React.memo(() => {\r\n const { resolution } = useViewport();\r\n const isRisoluzioneGrande = resolution.width >= MAIN.width;\r\n const title = isRisoluzioneGrande ? 'Ricordati di segnare le deleghe come pagate' : '';\r\n const message = isRisoluzioneGrande\r\n ? (\r\n 'Molti servizi sono collegati a F24.'\r\n + ' '\r\n + 'Una volta che il contribuente avrà consegnato la ricevuta di pagamento modifica lo stato'\r\n + ' '\r\n + 'della delega per sfruttare gli automatismi di aggiornamento di questi servizi'\r\n ) : (\r\n
    \r\n Molti servizi sono collegati a F24. Una volta che il contribuente avrà consegnato\r\n la ricevuta di pagamento segna la delega come pagata per sfruttare gli automatismi di aggiornamento\r\n
    \r\n );\r\n\r\n return (showPanelAvviso && );\r\n });\r\n\r\n const rowRender = useCallback((item) => (\r\n \r\n ), [\r\n dichiaraAperta,\r\n dichiaraChiusa,\r\n dichiaraNonPagata,\r\n dichiaraPagata,\r\n refreshTabella,\r\n segnalazioni,\r\n setSegnalazioniDichiaraPagata,\r\n segnalazioniDichiaraPagata,\r\n width,\r\n ]);\r\n\r\n return (\r\n \r\n {studioSelezionato && initialFilters && (\r\n }\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n { width > 1465 && (\r\n \r\n )}\r\n { width > 1465 && (\r\n \r\n )}\r\n { width >= 1600 && ()}\r\n { width >= 1600 && (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {segnalazioni && segnalazioni.length > 0 && (\r\n 0}\r\n title={titoloFeedbackModal}\r\n onClose={() => setSegnalazioni([])}\r\n buttonLabel=\"ok\"\r\n type=\"alarm\"\r\n message={segnalazioni[0].msg}\r\n className=\"feedback--modal__720px\"\r\n />\r\n )}\r\n \r\n );\r\n});\r\n\r\nTabellaDeleghePresentateSoggetto.defaultProps = {\r\n annoParam: null,\r\n};\r\n\r\nTabellaDeleghePresentateSoggetto.propTypes = {\r\n updateContatori: PropTypes.func.isRequired,\r\n annoParam: PropTypes.string,\r\n};\r\n\r\nexport default TabellaDeleghePresentateSoggetto;\r\n","/* eslint-disable no-nested-ternary */\r\nimport React, { forwardRef } from 'react';\r\nimport {\r\n Grid,\r\n} from 'framework-ui-components';\r\nimport PropTypes from 'prop-types';\r\nimport { useSelector } from 'react-redux';\r\nimport { ViewportProvider } from 'framework-ui-components/Components/V2';\r\nimport useViewport from 'framework-ui-components/Components/V2/Hooks/useViewport';\r\nimport TabellaDelegheCompleteSoggetto from './tabella/complete/TabellaDelegheCompleteSoggetto';\r\nimport TabellaDelegheInLavorazioneSoggetto from './tabella/inLavorazione/TabellaDelegheInLavorazioneSoggetto';\r\nimport TabellaDeleghePresentateSoggetto from './tabella/presentate/TabellaDeleghePresentateSoggetto';\r\n\r\nconst TabListaDeleghe = forwardRef(({\r\n updateContatoriDeleghe, showPanelCreazioneDelega, panelCreazioneDelega, setDatiModalePresentazione, annoParam,\r\n}, ref) => {\r\n const tabSelected = useSelector((store) => store.appParams.tabSelected);\r\n const noToolbar = useSelector((store) => store.appParams.noToolbar);\r\n const { width, height, resolution } = useViewport();\r\n\r\n return (\r\n \r\n 741\r\n ? {\r\n display: 'inline-flex',\r\n flexDirection: 'column',\r\n minHeight: '30vh',\r\n // maxHeight: `${noToolbar ? '82vh' : '67vh'}`,\r\n }\r\n : {\r\n display: 'inline-flex',\r\n flexDirection: 'column',\r\n // maxHeight: `${noToolbar ? '82vh' : '67vh'}`,\r\n }\r\n }\r\n >\r\n \r\n {panelCreazioneDelega && showPanelCreazioneDelega && (\r\n \r\n \r\n {panelCreazioneDelega}\r\n \r\n \r\n )}\r\n \r\n
    \r\n {tabSelected === 1 && (\r\n \r\n )}\r\n {tabSelected === 2 && (\r\n \r\n )}\r\n {tabSelected === 3 && (\r\n \r\n )}\r\n
    \r\n
    \r\n\r\n \r\n );\r\n});\r\n\r\nTabListaDeleghe.defaultProps = {\r\n showPanelCreazioneDelega: false,\r\n panelCreazioneDelega: null,\r\n setDatiModalePresentazione: () => {},\r\n annoParam: null,\r\n};\r\n\r\nTabListaDeleghe.propTypes = {\r\n updateContatoriDeleghe: PropTypes.func.isRequired,\r\n showPanelCreazioneDelega: PropTypes.bool,\r\n panelCreazioneDelega: PropTypes.element,\r\n setDatiModalePresentazione: PropTypes.func,\r\n annoParam: PropTypes.string,\r\n};\r\n\r\nexport default TabListaDeleghe;\r\n","/* eslint-disable no-nested-ternary */\r\nimport React, { useState } from 'react';\r\nimport {\r\n EllipsisText,\r\n InfoTooltip,\r\n PopOver,\r\n} from 'framework-ui-components';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Table,\r\n} from 'framework-ui-components/Components/V2';\r\nimport { getYear, JustADate } from 'framework-taskforce/utils/date';\r\nimport { getCurrencyValueNoSymbol } from '../../../../../utils/format';\r\n\r\nconst RigaDebitiDaInserireInDelega = ({\r\n item: {\r\n Id,\r\n Denominazione,\r\n IdContribuente,\r\n DescrizioneTributo,\r\n DescrizioneSezione,\r\n NuovaGestioneIVA,\r\n Importo,\r\n ImportoResiduo,\r\n DataScadenza,\r\n IsRateizzatoOppureGestitaScadenza,\r\n IsDebito,\r\n CodiceTributo,\r\n PeriodoRiferimento,\r\n DescrizioneRata,\r\n NaturaDebitoDescrizione,\r\n ProvenienzaNew,\r\n ProvenienzaOld,\r\n NaturaDebito,\r\n Provenienza_OLD,\r\n ProvenienzaServizio,\r\n },\r\n additionalRowData,\r\n}) => {\r\n const [expandedState, setExpandedState] = useState(false);\r\n\r\n return (\r\n setExpandedState(false) : () => setExpandedState(true)}\r\n >\r\n \r\n
    \r\n \r\n {Denominazione}\r\n \r\n
    \r\n
    \r\n \r\n \r\n {CodiceTributo}\r\n {DescrizioneTributo && (\r\n
    \r\n 24}>\r\n {DescrizioneTributo}\r\n \r\n
    \r\n )}\r\n
    \r\n \r\n \r\n
    \r\n \r\n {DescrizioneSezione}\r\n \r\n
    \r\n
    \r\n \r\n {PeriodoRiferimento != null ? getYear(PeriodoRiferimento) : '-'}\r\n \r\n {DataScadenza === null ? '-' : `${JustADate(DataScadenza)}`}\r\n \r\n \r\n \r\n \r\n {!ProvenienzaNew && (NaturaDebito === null || NaturaDebito === 0) && ProvenienzaOld}\r\n {(NaturaDebito !== null && NaturaDebito !== 0) && ProvenienzaOld}\r\n {ProvenienzaNew && (NaturaDebito === null || NaturaDebito === 0) && ProvenienzaNew}\r\n \r\n
    \r\n {ProvenienzaNew && NaturaDebito !== null && NaturaDebito !== 0 && {ProvenienzaNew}}\r\n
    \r\n
    \r\n \r\n \r\n {DescrizioneRata || ''}\r\n \r\n \r\n \r\n {Importo\r\n ? `${getCurrencyValueNoSymbol(Importo)}` : '-'}\r\n \r\n \r\n \r\n {Importo\r\n ? `${getCurrencyValueNoSymbol(ImportoResiduo)}` : '-'}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nRigaDebitiDaInserireInDelega.propTypes = {\r\n item: PropTypes.shape({\r\n Id: PropTypes.number,\r\n IdContribuente: PropTypes.number,\r\n Denominazione: PropTypes.string,\r\n CodiceFiscale: PropTypes.string,\r\n TipoPersona: PropTypes.number,\r\n DescrizioneTributo: PropTypes.string,\r\n DescrizioneSezione: PropTypes.string,\r\n ProvenienzaServizio: PropTypes.string,\r\n NuovaGestioneIVA: PropTypes.bool,\r\n PartitaIva: PropTypes.string,\r\n CodiceUfficio: PropTypes.string,\r\n IdStudio: PropTypes.number,\r\n Importo: PropTypes.number,\r\n ImportoResiduo: PropTypes.number,\r\n ImportoLimitato: PropTypes.number,\r\n ImportoNonLimitato: PropTypes.number,\r\n DataScadenza: PropTypes.string,\r\n IsRateizzatoOppureGestitaScadenza: PropTypes.bool,\r\n IsDebito: PropTypes.bool,\r\n CodiceTributo: PropTypes.string,\r\n ScadenzaAnnoSuccessivo: PropTypes.bool,\r\n NumeroRate: PropTypes.number,\r\n ImportoResiduoRate: PropTypes.number,\r\n NaturaDebito: PropTypes.number,\r\n NaturaDebitoDescrizione: PropTypes.string,\r\n IdScadenzaRateizzazione: PropTypes.number,\r\n Annualita: PropTypes.number,\r\n HaPartitaIVA: PropTypes.bool,\r\n Ordinario: PropTypes.bool,\r\n IdCodiceTributo: PropTypes.number,\r\n Provenienza: PropTypes.string,\r\n ProvenienzaAnno: PropTypes.string,\r\n PeriodoRiferimento: PropTypes.string,\r\n IsRavveduto: PropTypes.bool,\r\n IsProrogato: PropTypes.bool,\r\n IsMaggiorato: PropTypes.bool,\r\n IsSocietaDiCapitali180GG: PropTypes.bool,\r\n DescrizioneRata: PropTypes.string,\r\n ProvenienzaNew: PropTypes.string,\r\n ProvenienzaOld: PropTypes.string,\r\n Provenienza_OLD: PropTypes.number,\r\n }).isRequired,\r\n additionalRowData: PropTypes.shape({\r\n searchTerm: PropTypes.string,\r\n refreshTabella: PropTypes.func,\r\n setSuccessoGestione: PropTypes.func,\r\n setShowOperazioneAsincrona: PropTypes.func,\r\n setModaleGestisciScadenza: PropTypes.func,\r\n }).isRequired,\r\n};\r\n\r\nexport default RigaDebitiDaInserireInDelega;\r\n","import React, {\r\n forwardRef, useCallback, useImperativeHandle, useMemo, useRef, useState,\r\n} from 'react';\r\nimport useDebouncedFunc from 'framework-ui-components/Components/Hooks/useDebouncedFunc';\r\nimport {\r\n FeedbackModal, Filter, ODataTable, ViewportProvider,\r\n} from 'framework-ui-components/Components/V2';\r\nimport PropTypes from 'prop-types';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport useViewport, { MAIN } from 'framework-ui-components/Components/V2/Hooks/useViewport';\r\nimport {\r\n QueryOptions,\r\n} from 'framework-ui-components';\r\nimport { setAppParamsAction } from 'framework-taskforce/actions/appParams';\r\nimport TemplateGrid from '../../../../../components/TemplateGrid/TemplateGrid';\r\nimport RigaDebitiDaInserireInDelega from './RigaDebitiDaInserireInDelega';\r\nimport { getOttieniProvenienzaDebitiDaInserireInDelega, ottieniDebitiDaInserireInDelegaUrl } from '../../../../../apis/contribuente';\r\n\r\nconst TabellaDebitiDaInserireInDelega = forwardRef(({\r\n setContatori,\r\n setSuccessoGestione,\r\n setShowOperazioneAsincrona,\r\n annoSelezionato,\r\n}, ref) => {\r\n const tabellaRef = useRef();\r\n const studioSelezionato = useSelector((store) => store.appParams.studioSelezionato);\r\n\r\n const [segnalazioni, setSegnalazioni] = useState([]);\r\n const [titoloFeedbackModal, setTitoloFeedbackModal] = useState('');\r\n const [optionsFiltroProvenienza, setOptionsFiltroProvenienza] = useState(null);\r\n\r\n const dispatch = useDispatch();\r\n\r\n // const { resolution } = useViewport();\r\n const { height, resolution } = useViewport();\r\n const resolutionMAIN = resolution === MAIN;\r\n\r\n const recuperaOptionFiltroProvenienza = useCallback(\r\n () => {\r\n getOttieniProvenienzaDebitiDaInserireInDelega(studioSelezionato, annoSelezionato, true)\r\n .then((res) => {\r\n if (res) {\r\n setOptionsFiltroProvenienza(res);\r\n }\r\n })\r\n .catch((e) => {\r\n });\r\n },\r\n [annoSelezionato, studioSelezionato],\r\n );\r\n\r\n const url = useMemo(\r\n () => (\r\n studioSelezionato && annoSelezionato && (ottieniDebitiDaInserireInDelegaUrl)(\r\n studioSelezionato,\r\n annoSelezionato,\r\n false,\r\n )\r\n ),\r\n [annoSelezionato, studioSelezionato],\r\n );\r\n\r\n const onRowsSelected = useCallback((rows) => {\r\n const rowsObjectSelected = rows.map((row) => row.object.IsDebito && row.object);\r\n\r\n // epuro i crediti\r\n dispatch(setAppParamsAction({\r\n rowsTributi: rowsObjectSelected.filter((row) => row),\r\n }));\r\n }, [dispatch]);\r\n\r\n const updateOptimisticRows = useCallback(() => {\r\n // dispatch({ type: ACTIONS.UPDATE_OPTIMISTIC_ROWS });\r\n }, []);\r\n\r\n const onPageLoaded = useCallback((pageItems, totalCount, currentFilter, currentPage, sortProperty, sortOrder) => {\r\n tabellaRef.current && tabellaRef.current.resetSelection();\r\n updateOptimisticRows();\r\n setContatori(totalCount);\r\n\r\n if (annoSelezionato) {\r\n recuperaOptionFiltroProvenienza();\r\n }\r\n }, [annoSelezionato, recuperaOptionFiltroProvenienza, setContatori, updateOptimisticRows]);\r\n\r\n const refreshTabella = useDebouncedFunc(() => {\r\n tabellaRef.current && tabellaRef.current.refreshTable();\r\n // updateContatori();\r\n }, 200, []);\r\n\r\n // permetto di accedere via ref al metodo refreshTabella\r\n useImperativeHandle(ref, () => ({ refreshTabella }), [refreshTabella]);\r\n\r\n const rowRender = useCallback((item) => (\r\n {},\r\n setSegnalazioni,\r\n setTitoloFeedbackModal,\r\n mostraAperti: true,\r\n eseguiChiusuraForzata: () => {},\r\n annullaChiusuraForzata: () => {},\r\n eliminaTributo: () => {},\r\n }}\r\n />\r\n ), [refreshTabella, resolutionMAIN, setShowOperazioneAsincrona, setSuccessoGestione]);\r\n\r\n return (\r\n \r\n 741}\r\n onPageLoaded={onPageLoaded}\r\n pageSizeOptions={[50, 100]}\r\n initPageSize={50}\r\n ref={tabellaRef}\r\n rowRender={rowRender}\r\n url={url}\r\n sortProperty=\"DataScadenza\"\r\n sortOrder=\"desc\"\r\n onSelectionChange={onRowsSelected}\r\n className={height > 741 ? 'odataTable odata-table-debiti-da-inserire-delega__full-height' : ''}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n {optionsFiltroProvenienza && optionsFiltroProvenienza.length > 0 && (\r\n (\r\n {\r\n description: x.Descrizione,\r\n value: x.Valore,\r\n }))\r\n }\r\n />\r\n )}\r\n \r\n \r\n {/* \r\n \r\n \r\n */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {segnalazioni && segnalazioni.length > 0 && (\r\n 0}\r\n title={titoloFeedbackModal}\r\n onClose={() => setSegnalazioni([])}\r\n buttonLabel=\"ok\"\r\n type=\"alarm\"\r\n message={segnalazioni[0].msg}\r\n className=\"feedback--modal__720px\"\r\n />\r\n )}\r\n \r\n );\r\n});\r\n\r\nTabellaDebitiDaInserireInDelega.propTypes = {\r\n setContatori: PropTypes.func,\r\n setSuccessoGestione: PropTypes.func,\r\n setShowOperazioneAsincrona: PropTypes.func,\r\n annoSelezionato: PropTypes.number.isRequired,\r\n};\r\n\r\nTabellaDebitiDaInserireInDelega.defaultProps = {\r\n setSuccessoGestione: null,\r\n setContatori: null,\r\n setShowOperazioneAsincrona: null,\r\n};\r\n\r\nexport default TabellaDebitiDaInserireInDelega;\r\n","/* eslint-disable no-nested-ternary */\r\nimport React, {\r\n forwardRef, useCallback,\r\n} from 'react';\r\nimport {\r\n Grid,\r\n} from 'framework-ui-components';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Button, ButtonGroup, FeedbackModal, ViewportProvider,\r\n} from 'framework-ui-components/Components/V2';\r\nimport useViewport from 'framework-ui-components/Components/V2/Hooks/useViewport';\r\nimport DescriptionIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/DescriptionIcon';\r\nimport { useSelector } from 'react-redux';\r\nimport TabellaDebitiDaInserireInDelega from './TabellaDebitiDaInserireInDelega';\r\nimport ElencoAnni from '../../../../../components/ElencoAnni';\r\n\r\nconst TabDebitiDaInserireInDelega = forwardRef(({\r\n annualitaDisponibili,\r\n annoSelezionato,\r\n setAnnoSelezionato,\r\n setModaleCreazioneDelegheDaTributi,\r\n showOperazioneAsincrona,\r\n setShowOperazioneAsincrona,\r\n setContatoriTributi,\r\n showPanelCreazioneDelega,\r\n panelCreazioneDelega,\r\n}, ref) => {\r\n const rowsTributiSelected = useSelector(\r\n (store) => store.appParams.rowsTributi,\r\n );\r\n const appParamVisualizzazione = useSelector((store) => !!store.appParams.visualizzazione);\r\n const noToolbar = useSelector((store) => store.appParams.noToolbar);\r\n\r\n const { height } = useViewport();\r\n\r\n const cambioRadioAnnoSelezionato = useCallback((anno) => {\r\n if (anno) {\r\n // setAnnoSelezionato(Number(event.target.value));\r\n // epuro i crediti\r\n setAnnoSelezionato(Number(anno));\r\n // chiamataContatori(Number(event.target.value), mostraAperti);\r\n }\r\n }, [setAnnoSelezionato]);\r\n\r\n return (\r\n \r\n 741\r\n ? { display: 'inline-flex', flexDirection: 'column', maxHeight: `${noToolbar ? '85vh' : '80vh'}` }\r\n : { display: 'inline-flex', flexDirection: 'column', maxHeight: `${noToolbar ? '82vh' : '64vh'}` }\r\n }\r\n >\r\n \r\n 741 ? 'mt-26' : 'mt-11'}`}>\r\n \r\n
    \r\n \r\n {panelCreazioneDelega && showPanelCreazioneDelega &&
    }\r\n {panelCreazioneDelega && showPanelCreazioneDelega && ({panelCreazioneDelega})}\r\n
    \r\n
    \r\n \r\n \r\n setModaleCreazioneDelegheDaTributi(\r\n {\r\n aperto: true,\r\n idTributi: rowsTributiSelected.map((row) => row.Id),\r\n tributi: rowsTributiSelected,\r\n },\r\n )\r\n }\r\n >\r\n \r\n Crea deleghe\r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n {annoSelezionato && (\r\n {}}\r\n setShowOperazioneAsincrona={() => {}}\r\n cercaNelleScadenze={() => {}}\r\n ref={ref}\r\n />\r\n )}\r\n
    \r\n
    \r\n setShowOperazioneAsincrona({\r\n show: false, modalTitle: '', title: '', message: '', success: true,\r\n })}\r\n buttonLabel=\"HO CAPITO\"\r\n message={showOperazioneAsincrona.message}\r\n type={showOperazioneAsincrona.success ? 'success' : 'alarm'}\r\n initialPos={{ x: 'auto', y: window.innerHeight * 0.1 }}\r\n />\r\n
    \r\n
    \r\n \r\n );\r\n});\r\n\r\nTabDebitiDaInserireInDelega.defaultProps = {\r\n successoCrezioneTributo: {},\r\n annualitaDisponibili: null,\r\n annoSelezionato: null,\r\n successoGestioneProp: {},\r\n showOperazioneAsincrona: {},\r\n setShowOperazioneAsincrona: null,\r\n panelCreazioneDelega: {},\r\n};\r\n\r\nTabDebitiDaInserireInDelega.propTypes = {\r\n successoCrezioneTributo: PropTypes.shape({\r\n successo: PropTypes.bool,\r\n tipo: PropTypes.number,\r\n codice: PropTypes.string,\r\n sezione: PropTypes.string,\r\n importo: PropTypes.string,\r\n dataScadenza: PropTypes.string,\r\n }),\r\n annualitaDisponibili: PropTypes.arrayOf(PropTypes.shape({ Anno: PropTypes.number })),\r\n annoSelezionato: PropTypes.number,\r\n successoGestioneProp: PropTypes.shape({\r\n successo: PropTypes.bool,\r\n tipo: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.number,\r\n ]),\r\n codice: PropTypes.string,\r\n sezione: PropTypes.string,\r\n importo: PropTypes.string,\r\n dataScadenza: PropTypes.string,\r\n }),\r\n setModaleCreazioneDelegheDaTributi: PropTypes.func.isRequired,\r\n showOperazioneAsincrona: PropTypes.shape({\r\n show: PropTypes.bool,\r\n modalTitle: PropTypes.string,\r\n success: PropTypes.bool,\r\n title: PropTypes.string,\r\n message: PropTypes.string,\r\n }),\r\n setShowOperazioneAsincrona: PropTypes.func,\r\n setAnnoSelezionato: PropTypes.func.isRequired,\r\n setContatoriTributi: PropTypes.func.isRequired,\r\n showPanelCreazioneDelega: PropTypes.bool.isRequired,\r\n panelCreazioneDelega: PropTypes.shape({\r\n }),\r\n};\r\n\r\nexport default TabDebitiDaInserireInDelega;\r\n","import React from 'react';\r\nimport {\r\n Grid, InfoTooltip, Spinner, Formatter, EllipsisText,\r\n} from 'framework-ui-components';\r\nimport PropTypes from 'prop-types';\r\nimport { FeedbackPanel, Table } from 'framework-ui-components/Components/V2';\r\n\r\nconst Step2Elaborazione = ({\r\n listaDeleghe, loading, completato, showTempiLunghi, processoConErrori,\r\n}) => (\r\n
    \r\n \r\n \r\n \r\n {showTempiLunghi && completato && listaDeleghe.length > 0 && (\r\n 1\r\n ? (processoConErrori ? 'Creazione terminata con errori' : 'Deleghe create con successo!')\r\n : (processoConErrori ? 'Delega non creata' : 'Delega creata con successo!')}\r\n // eslint-disable-next-line no-nested-ternary\r\n type={processoConErrori ? (listaDeleghe.length > 1 ? 'warning' : 'alarm') : 'success'}\r\n message=\"\"\r\n />\r\n )}\r\n \r\n \r\n\r\n {showTempiLunghi && listaDeleghe.filter((d) => !d.linkDelega).length > 0 && (\r\n \r\n Si sono verificati dei problemi nella creazione delle deleghe per i seguenti contribuenti:\r\n \r\n  \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {listaDeleghe && listaDeleghe.filter((d) => !d.linkDelega).map((delegaCreata, idx) => (\r\n // eslint-disable-next-line react/no-array-index-key\r\n \r\n \r\n {delegaCreata.contribuente} \r\n \r\n \r\n \r\n \r\n \r\n \r\n {delegaCreata.importo}\r\n \r\n \r\n \r\n {delegaCreata.linkDelega\r\n ? (\r\n 1 ? `${delegaCreata.linkDelega}&noBack=true` : `${delegaCreata.linkDelega}`}\r\n target={listaDeleghe.length > 1 ? '_blank' : '_self'}\r\n rel=\"noreferrer\"\r\n >\r\n Vai alla delega\r\n \r\n ) : (\r\n \r\n {delegaCreata.errore || 'Errore durante la creazione'}\r\n \r\n )}\r\n \r\n \r\n ))}\r\n \r\n
    \r\n
    \r\n  \r\n
    \r\n {loading && (\r\n \r\n  \r\n \r\n   Sto creando le deleghe ...\r\n \r\n  \r\n \r\n )}\r\n
    \r\n )}\r\n {(!showTempiLunghi || listaDeleghe.length === 0) && (\r\n \r\n \r\n  \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n  \r\n
    \r\n \r\n  \r\n \r\n   Sto creando le deleghe ...\r\n \r\n  \r\n \r\n
    \r\n )}\r\n {showTempiLunghi && !completato && (\r\n \r\n  \r\n \r\n La creazione delle deleghe sta impiegando più tempo del previsto, puoi chiudere questa\r\n schermata e continuare a lavorare.\r\n
    \r\n Riceverai una notifica quando saranno state create tutte le deleghe.\r\n
    \r\n  \r\n
    \r\n )}\r\n
    \r\n
    \r\n);\r\n\r\nStep2Elaborazione.defaultProps = {\r\n completato: false,\r\n showTempiLunghi: false,\r\n processoConErrori: false,\r\n};\r\n\r\nStep2Elaborazione.propTypes = {\r\n loading: PropTypes.bool.isRequired,\r\n listaDeleghe: PropTypes.arrayOf(PropTypes.shape).isRequired,\r\n completato: PropTypes.bool,\r\n showTempiLunghi: PropTypes.bool,\r\n processoConErrori: PropTypes.bool,\r\n};\r\n\r\nexport default Step2Elaborazione;\r\n","import React, {\r\n useCallback, useEffect, useRef, useState,\r\n} from 'react';\r\nimport {\r\n Heading, Radio, Form, Panel, DatePicker, Validation, Checkbox, Select, InfoTooltip, Formatter, Spinner, RadioGroup,\r\n} from 'framework-ui-components';\r\nimport { getSegnalazioneError } from 'framework-taskforce/models/segnalazioni';\r\nimport PropTypes from 'prop-types';\r\nimport { Button, MiniPanel, Table } from 'framework-ui-components/Components/V2';\r\nimport Log from 'framework-taskforce/utils/log';\r\nimport checkPropTypes from 'prop-types/checkPropTypes';\r\nimport LabelOnly from '../../../../../../components/custom/LabelOnly';\r\nimport TemplateGrid from '../../../../../../components/TemplateGrid/TemplateGrid';\r\n\r\nconst Step1Compensazione = ({\r\n annualitaSelezionata,\r\n setUsaCrediti,\r\n}) => {\r\n const [segnalazioni, setSegnalazioni] = useState([]);\r\n const [formState, setFormState] = useState({ voglioCompensare: null });\r\n\r\n useEffect(() => {\r\n if (formState) {\r\n setUsaCrediti(formState.voglioCompensare);\r\n }\r\n }, [formState]);\r\n\r\n return (\r\n
    \r\n Vuoi utilizzare eventuali crediti (se presenti) in compensazione?\r\n \r\n
    setFormState({ ...formState, ...x })} stato={formState}>\r\n \r\n \r\n \r\n \r\n \r\n Verranno generate le deleghe per i soli debiti selezionati.
    \r\n )}\r\n type=\"info\"\r\n />\r\n \r\n
    \r\n );\r\n};\r\nStep1Compensazione.defaultProps = {\r\n};\r\n\r\nStep1Compensazione.propTypes = {\r\n annualitaSelezionata: PropTypes.number.isRequired,\r\n setUsaCrediti: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default Step1Compensazione;\r\n","import React, {\r\n useState, useEffect, useCallback, useRef,\r\n} from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Stepper,\r\n} from 'framework-ui-components';\r\nimport {\r\n Modal, Button,\r\n} from 'framework-ui-components/Components/V2';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { useHistory } from 'react-router';\r\nimport Log, { logApiError } from 'framework-taskforce/utils/log';\r\nimport { getSegnalazioneError } from 'framework-taskforce/models/segnalazioni';\r\nimport useSignalR from 'framework-ui-components/Components/Hooks/useSignalR';\r\nimport { primaLetteraMaiuscola } from 'framework-taskforce/utils/text';\r\nimport { setAppParamsAction } from 'framework-taskforce/actions/appParams';\r\nimport Step2Elaborazione from './Step2Elaborazione';\r\nimport { delegaSoggettoUrlLink, tributiContribuenteUrl } from '../../../../../../models/urls';\r\nimport { getOttieniDelega, postCreaDeleghePerTributiSelezionatiMultiContribuente } from '../../../../../../apis/deleghe';\r\nimport { convertUTCDateToLocalDate } from '../../../../../../utils/format';\r\nimport { setCreazioneDelegheAction } from '../../../../../../actions/creazioneDeleghe';\r\nimport { TABS_MENU_CONTRIBUENTE } from '../../../../../../models/f24';\r\nimport SegnalazioniViewer from '../../../../../../components/custom/SegnalazioniViewer';\r\nimport Step1Compensazione from './Step1Compensazione';\r\nimport { getOttieniContribuente } from '../../../../../../apis/contribuente';\r\n\r\nconst STEP = {\r\n SELEZIONE_CREDITI: 1,\r\n ELABORAZIONE_DELEGHE: 2,\r\n};\r\n\r\nconst ModaleCreazioneDeleghePerTributi = ({\r\n onClose,\r\n show,\r\n annualitaSelezionata,\r\n idDebiti,\r\n debiti,\r\n}) => {\r\n const nominativoSogg = useSelector((store) => store.soggetto.nominativo);\r\n const idStudioSelezionato = useSelector((store) => store.appParams.studioSelezionato);\r\n const ufficioSelezionato = useSelector((store) => store.appParams.ufficioSelezionato);\r\n const completato = useSelector((store) => store.creazioneDeleghe.completato);\r\n const processoConErrori = useSelector((store) => store.creazioneDeleghe.processoConErrori);\r\n const loading = useSelector((store) => store.creazioneDeleghe.loading);\r\n const codiceFiscaleSoggetto = useSelector((store) => store.soggetto.codiceFiscale);\r\n const appParamVisualizzazione = useSelector((store) => !!store.appParams.visualizzazione);\r\n\r\n const history = useHistory();\r\n const dispatch = useDispatch();\r\n\r\n const [currentStep, setCurrentStep] = useState(STEP.SELEZIONE_CREDITI);\r\n const [segnalazioni, setSegnalazioni] = useState([]);\r\n const [showTempiLunghi, setShowTempiLunghi] = useState(false);\r\n const [loadingApi, setLoadingApi] = useState(false);\r\n const [usaCrediti, setUsaCrediti] = useState(null);\r\n\r\n const getStepState = useCallback(\r\n (index) => {\r\n if (index === currentStep) {\r\n return Stepper.State.ACTIVE;\r\n } if (index < currentStep) {\r\n return Stepper.State.DONE;\r\n }\r\n return Stepper.State.TODO;\r\n },\r\n [currentStep],\r\n );\r\n\r\n const creaDeleghe = useCallback(() => {\r\n setLoadingApi(true);\r\n // setCurrentStep(STEP.ELABORAZIONE_DELEGHE);\r\n\r\n const oggettoCreazione = {\r\n Annualita: annualitaSelezionata,\r\n Debiti: debiti.map((d) => ({ IdDebito: d.Id, IdContribuente: d.IdContribuente })),\r\n UsaCrediti: usaCrediti,\r\n IncludiFigli: false,\r\n IdStudio: idStudioSelezionato,\r\n };\r\n\r\n const idContribuenti = []; // accrocchio\r\n debiti.forEach((d) => (!idContribuenti.includes(d.IdContribuente) ? idContribuenti.push(d.IdContribuente) : true));\r\n postCreaDeleghePerTributiSelezionatiMultiContribuente(oggettoCreazione)\r\n .then((res) => {\r\n if (res.Success) {\r\n setSegnalazioni([]);\r\n dispatch(setCreazioneDelegheAction({\r\n numeroContribuenti: idContribuenti.length, // accrocchio\r\n completato: false,\r\n processoConErrori: true,\r\n loading: true,\r\n }));\r\n setCurrentStep(STEP.ELABORAZIONE_DELEGHE);\r\n setTimeout(() => {\r\n setShowTempiLunghi(true);\r\n }, 3000);\r\n } else {\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n dispatch(setCreazioneDelegheAction({\r\n completato: true,\r\n processoConErrori: true,\r\n loading: false,\r\n }));\r\n }\r\n setLoadingApi(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n onClose(false);\r\n dispatch(setCreazioneDelegheAction({\r\n completato: true,\r\n processoConErrori: true,\r\n loading: false,\r\n }));\r\n setLoadingApi(false);\r\n });\r\n }, [usaCrediti, annualitaSelezionata, dispatch, idDebiti, onClose]);\r\n\r\n useEffect(() => {\r\n if (show) {\r\n setLoadingApi(false);\r\n if (currentStep === STEP.ELABORAZIONE_DELEGHE) {\r\n document.querySelector('.v2-modal__content').classList.remove('secondo-step');\r\n document.querySelector('.v2-modal__content').classList.toggle('secondo-step');\r\n document.querySelector('.v2-modal--body--scrollable').classList.remove('secondo-step');\r\n document.querySelector('.v2-modal--body--scrollable').classList.toggle('secondo-step');\r\n } else {\r\n document.querySelector('.v2-modal__content').classList.remove('secondo-step');\r\n }\r\n }\r\n }, [currentStep, show]);\r\n\r\n const lista = [];\r\n const listaDeleghe = useRef({ lista });\r\n\r\n const settaDeleghe = useCallback((risposta) => {\r\n const arrayRisposta = (Array.isArray(risposta) ? risposta : [risposta]);\r\n\r\n listaDeleghe.current.lista = [\r\n ...listaDeleghe.current.lista,\r\n ...arrayRisposta,\r\n ];\r\n }, []);\r\n\r\n useSignalR('DelegaConUtilizziCreata', (data) => {\r\n Log.info('Delega creata');\r\n getOttieniDelega(data.IdDelega)\r\n .then((res) => {\r\n if (res.Success) {\r\n const nuovaDelega = {\r\n contribuente: res.Result.Delega.Denominazione,\r\n dataScadenzaVersamento: res.Result.Delega.ScadenzaVersamento,\r\n importo: data.Importo,\r\n linkDelega: delegaSoggettoUrlLink(data.IdDelega, ufficioSelezionato),\r\n };\r\n\r\n settaDeleghe(nuovaDelega);\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n });\r\n });\r\n\r\n useSignalR('CreazioneDeleghePerContribuenteFallita', (data) => {\r\n settaDeleghe({\r\n contribuente: data.DenominazioneContribuente,\r\n dataScadenzaVersamento: data.DataScadenzaVersamento,\r\n importo: '-',\r\n linkDelega: null,\r\n errore: data.MotivazioneFallimento,\r\n });\r\n });\r\n\r\n const resetDati = useCallback(() => {\r\n setSegnalazioni([]);\r\n\r\n setCurrentStep(STEP.SELEZIONE_CREDITI);\r\n dispatch(setCreazioneDelegheAction({\r\n completato: false,\r\n processoConErrori: false,\r\n loading: false,\r\n }));\r\n setShowTempiLunghi(false);\r\n }, [dispatch]);\r\n\r\n useEffect(() => {\r\n if (!show) {\r\n // reset data on close\r\n resetDati();\r\n }\r\n }, [resetDati, show]);\r\n\r\n useEffect(() => {\r\n if (show) {\r\n resetDati();\r\n }\r\n }, [resetDati, show]);\r\n\r\n const gotoListDeleghe = useCallback(() => {\r\n dispatch(setAppParamsAction({ sidebarSelected: TABS_MENU_CONTRIBUENTE.DELEGHE }));\r\n history.push(tributiContribuenteUrl(codiceFiscaleSoggetto, appParamVisualizzazione));\r\n }, [appParamVisualizzazione, codiceFiscaleSoggetto, dispatch, history]);\r\n\r\n return (\r\n onClose(completato)}\r\n className=\"tributi--modale-creazione-delega-per-tributi\"\r\n initialPos={{ x: 'auto', y: window.innerHeight * 0.1 }}\r\n >\r\n \r\n Creazione deleghe\r\n \r\n \r\n {/* {loading ?
    : ( */}\r\n
    {/* className=\"mt-34\"> */}\r\n {/* Inserisci la data di scadenza per la delega. I tributi che rispetteranno tale
    data verranno automaticamente inclusi nel modello F24. */}\r\n \r\n setUsaCrediti(scelta)}\r\n />\r\n )}\r\n // !dataScadenzaVersamento ? (\r\n // \r\n // ) : (\r\n //
    \r\n // Verranno generate le deleghe per i debiti selezionati.\r\n //
    \r\n // Seleziona eventuli crediti da utilizzare in compensazione.\r\n //
    \r\n // )}\r\n // type=\"info\"\r\n // />\r\n // \r\n //
    \r\n // )\r\n />\r\n \r\n )}\r\n />\r\n \r\n
    \r\n {/* )} */}\r\n \r\n \r\n {currentStep !== STEP.ELABORAZIONE_DELEGHE && (\r\n onClose(false)}\r\n emphasis={Button.Emphasis.HIGH}\r\n >\r\n ANNULLA\r\n \r\n )}\r\n {currentStep !== STEP.ELABORAZIONE_DELEGHE && (\r\n \r\n CREA\r\n \r\n )}\r\n {currentStep === STEP.ELABORAZIONE_DELEGHE && ((!loading && completato && listaDeleghe.current.lista.length > 0) || (showTempiLunghi)) && (\r\n onClose(true)}\r\n emphasis={Button.Emphasis.HIGH}\r\n primary\r\n >\r\n TORNA ALLA LISTA DEI DEBITI\r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nModaleCreazioneDeleghePerTributi.propTypes = {\r\n onClose: PropTypes.func.isRequired,\r\n show: PropTypes.bool.isRequired,\r\n annualitaSelezionata: PropTypes.number.isRequired,\r\n idDebiti: PropTypes.arrayOf(PropTypes.number).isRequired,\r\n debiti: PropTypes.arrayOf(PropTypes.shape).isRequired,\r\n};\r\n\r\nexport default ModaleCreazioneDeleghePerTributi;\r\n","/* eslint-disable no-nested-ternary */\r\nimport React, {\r\n useCallback,\r\n useEffect,\r\n useRef,\r\n useState,\r\n} from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport { setAppParamsAction } from 'framework-taskforce/actions/appParams';\r\nimport {\r\n Tabs, Badge, Spinner,\r\n} from 'framework-ui-components';\r\nimport {\r\n Button,\r\n ButtonGroup,\r\n ConfirmModal,\r\n FeedbackModal,\r\n MiniPanel,\r\n Panel,\r\n ViewportProvider,\r\n} from 'framework-ui-components/Components/V2';\r\nimport useSignalR from 'framework-ui-components/Components/Hooks/useSignalR';\r\nimport { callDownloadFile } from 'framework-taskforce/utils/file';\r\nimport usePluginsReducer from 'framework-plugins/hooks/usePluginReducer';\r\nimport Log, { logApiError } from 'framework-taskforce/utils/log';\r\nimport { getSegnalazioneError } from 'framework-taskforce/models/segnalazioni';\r\nimport { SnackbarWrapper } from 'framework-ui-components/Components/Snackbar';\r\nimport useViewport from 'framework-ui-components/Components/V2/Hooks/useViewport';\r\nimport { ModalIFrame } from 'framework-plugins';\r\nimport TabListaDeleghe from './listaDeleghe/TabListaDeleghe';\r\nimport { convertUTCDateToLocalDate, createDate } from '../../../utils/format';\r\n\r\nimport {\r\n getOttieniUltimaStampaInDownload,\r\n postCreaDelegaCopiaConformeTrasmissioneTelematica,\r\n postDichiaraAperta,\r\n postDichiaraPagata,\r\n postStampaDelega,\r\n postStampaDelegaMassiva,\r\n postDichiaraCompleteMassivamente,\r\n getOttieniContatoriStatoDelegheMassiva,\r\n getOttieniIbanContoCorrente,\r\n postImpostaDelegaInviataConCbi,\r\n postDichiaraCompleta,\r\n} from '../../../apis/deleghe';\r\nimport UndoIcon from '../../../components/icons/google/UndoIcon';\r\nimport ModalePresentaDelegaMassivamente from '../riepilogoContribuente/listaDeleghe/modalePresentaDelegheMassivamente/ModalePresentaDelegaMassivamente';\r\nimport ConfirmImage from '../../../components/icons/ConfirmImage';\r\nimport CreditScoreIcon from '../../../components/icons/google/CreditScoreIcon';\r\nimport apiDownloadFile from '../../../apis/file';\r\nimport BottoniPresentazioneMassiva from '../riepilogoContribuente/bottoni/BottoniPresentazioneMassiva';\r\nimport { getOttieniFileTelematicoIntermediarioInDownload } from '../../../apis/studio';\r\nimport { TABS_MENU_MASSIVA } from '../../../models/f24';\r\nimport { setCreazioneDelegheAction } from '../../../actions/creazioneDeleghe';\r\nimport ModaleDichiaraPagata from './listaDeleghe/tabella/presentate/ModaleDichiaraPagata';\r\nimport ModaleLoading from '../../../components/ModaleLoading';\r\nimport VerifiedIcon from '../../../components/icons/google/VerifiedIcon';\r\nimport TabDebitiDaInserireInDelega from './listaDeleghe/debitiDaInserireInDelega/TabDebitiDaInserireInDelega';\r\nimport { getOttieniAnnualitaConDebitiDaInserireInDelega } from '../../../apis/contribuente';\r\nimport ModaleCreazioneDeleghePerTributi from './listaDeleghe/debitiDaInserireInDelega/creazioneDelegaMultiContribuente/ModaleCreazioneDeleghePerTributi';\r\nimport { setPresentaDelegheCbiAction } from '../../../actions/presentazioneDeleghe';\r\nimport ModalePresentaDelega from '../../../components/modalePresentaDelega/ModalePresentaDelega';\r\n\r\nconst DelegheMassive = ({ annoParam }) => {\r\n const dispatch = useDispatch();\r\n\r\n const { width } = useViewport();\r\n\r\n const soggetto = useSelector((store) => store.soggetto);\r\n const noToolbar = useSelector((store) => store.appParams.noToolbar);\r\n const studioSelezionato = useSelector(\r\n (store) => store.appParams.studioSelezionato,\r\n );\r\n const codiceUfficioSelezionato = useSelector(\r\n (store) => store.appParams.ufficioSelezionato,\r\n );\r\n const sidebarSelected = '1'; /* Per ora fisso */ /*= useSelector(\r\n (store) => store.appParams.sidebarSelected,\r\n ); */\r\n const annoCampagnaServizioEsterno = useSelector((store) => store.appParams.annoCampagnaServizioEsterno);\r\n const idContribuente = useSelector((store) => store.soggetto.idContribuente);\r\n const tabSelected = useSelector((store) => store.appParams.tabSelected);\r\n const rowsDelegheSelected = useSelector(\r\n (store) => store.appParams.rowsDeleghe,\r\n );\r\n const appParamVisualizzazione = useSelector((store) => !!store.appParams.visualizzazione);\r\n const f24Url = useSelector((store) => store.appParams.F24Url);\r\n const f24CBIUrl = useSelector((store) => store.appParams.F24CBIUrl);\r\n const profiloUtente = useSelector((store) => store.utente.Profilo);\r\n const presentazioneDelegheCbi = useSelector((store) => store.presentazioneDeleghe.cbi);\r\n const applicationId = useSelector((store) => store.appParams.ApplicationId);\r\n\r\n const [creaDelega, setCreaDelega] = useState(false);\r\n const [creazioneInCorso, setCreazioneInCorso] = useState(false);\r\n const [contatoriTributi, setContatoriTributi] = useState(0);\r\n const [contatoriDeleghe, setContatoriDeleghe] = useState(null);\r\n const [showPanelCreazioneDelega, setShowPanelCreazioneDelega] = useState(false);\r\n const [panelCreazioneDelega, setPanelCreazioneDelega] = useState(null);\r\n const [datiModalePresentazione, setDatiModalePresentazione] = useState(null);\r\n const [datiModalePresentazioneMassiva, setDatiModalePresentazioneMassiva] = useState(null);\r\n const [showWarningPresentaDelega, setShowWarningPresentaDelega] = useState(false);\r\n const [showInvioTelematicoConSuccesso, setShowInvioTelematicoConSuccesso] = useState(false);\r\n const [contatoriInLavorazione, setContatoriInLavorazione] = useState({ TotaleDeleghe: 0 });\r\n const [contatoriComplete, setContatoriComplete] = useState({ TotaleDeleghe: 0 });\r\n const [contatoriPresentate, setContatoriPresentate] = useState({ TotaleDeleghe: 0 });\r\n const [annualitaDisponibili, setAnnualitaDisponibili] = useState(null);\r\n const [annoSelezionato, setAnnoSelezionato] = useState(null);\r\n const [mostraAperti, setMostraAperti] = useState(true);\r\n const [current, setCurrent] = useState('scelta-presentazione');\r\n const [showModaleDichiaraPagata, setShowModaleDichiaraPagata] = useState(\r\n {\r\n show: false, idDelega: 0, scadenzaVersamento: null,\r\n },\r\n );\r\n const [\r\n showWarningFileTelematicoPresentaDelega,\r\n setShowWarningFileTelematicoPresentaDelega,\r\n ] = useState(false);\r\n const [showSegnalazioni, setShowSegnalazioni] = useState(false);\r\n const [segnalazioni, setSegnalazioni] = useState('');\r\n const [segnalazioniDichiaraPagata, setSegnalazioniDichiaraPagata] = useState([]);\r\n const [titoloFeedbackModal, setTitoloFeedbackModal] = useState('');\r\n const [loading, setLoading] = useState(false);\r\n const [showOperazioneAsincrona, setShowOperazioneAsincrona] = useState({\r\n show: false, modalTitle: '', title: '', message: '', success: true,\r\n });\r\n const [showModaleLoading, setShowModaleLoading] = useState({\r\n show: false,\r\n title: '',\r\n });\r\n const [showWarningCompletaDeleghe, setShowWarningCompletaDeleghe] = useState(false);\r\n const [showModalIFrameCbi, setShowModalIFrameCbi] = useState(false);\r\n const [datiPerInvioDeleghe, setDatiPerInvioDeleghe] = useState();\r\n\r\n const numeroContribuenti = useSelector((store) => store.creazioneDeleghe.numeroContribuenti);\r\n\r\n let numeroContribuentiCompletati = 0;\r\n let numeroDelegheNonCreate = 0;\r\n let numeroDelegheCreate = 0;\r\n\r\n const tabellaTributiRef = useRef();\r\n const tabellaDelegheRef = useRef();\r\n\r\n useEffect(() => {\r\n dispatch(setAppParamsAction({ sidebarSelected: '0' }));\r\n });\r\n\r\n useSignalR('CreazioneDeleghePerContribuenteCompletata', (data) => {\r\n Log.info(\r\n `Processo creazione deleghe ${data.ScadenzaVersamento} completato`,\r\n );\r\n\r\n numeroContribuentiCompletati += 1;\r\n numeroDelegheNonCreate += data.NumeroDelegheNonCreate;\r\n numeroDelegheCreate += data.NumeroDelegheCreate;\r\n\r\n if (numeroContribuenti !== numeroContribuentiCompletati) {\r\n return;\r\n }\r\n\r\n Log.info('Completato');\r\n numeroContribuentiCompletati = 0;\r\n\r\n aggiornaContatoriDeleghe();\r\n\r\n if (`${sidebarSelected}` === `${TABS_MENU_MASSIVA.DELEGHE}`) {\r\n if (!creaDelega && tabellaDelegheRef) {\r\n tabellaDelegheRef.current.refreshTabella();\r\n }\r\n }\r\n\r\n if (`${sidebarSelected}` !== `${TABS_MENU_MASSIVA.TRIBUTI}`) {\r\n dispatch(setCreazioneDelegheAction({\r\n numeroContribuenti: 0,\r\n completato: true,\r\n processoConErrori: numeroDelegheNonCreate > 0,\r\n loading: false,\r\n }));\r\n\r\n // uno schifo vedi tempi lunghi\r\n setTimeout(() => {\r\n setPanelCreazioneDelega(\r\n 0 && numeroDelegheCreate > 0\r\n ? 'Alcune deleghe create con successo'\r\n : 'Nessuna delega creata'\r\n }\r\n message={\r\n numeroDelegheNonCreate === 0\r\n ? `Il processo di creazione delle deleghe che\r\n avevi avviato in precedenza è stato portato a termine con successo.`\r\n : 'Vi sono stati errori nel processo di creazione delle deleghe che avevi avviato in precedenza.'\r\n }\r\n type={\r\n numeroDelegheNonCreate === 0\r\n ? 'success'\r\n : numeroDelegheNonCreate > 0 && numeroDelegheCreate > 0\r\n ? 'warning'\r\n : 'alarm'\r\n }\r\n className=\"mt-16\"\r\n onClose={() => setPanelCreazioneDelega(null)}\r\n />,\r\n );\r\n\r\n numeroDelegheNonCreate = 0;\r\n numeroDelegheCreate = 0;\r\n }, 1000);\r\n }\r\n });\r\n\r\n useSignalR('GenerazioneFileTelematicoIntermediarioDelegheCompletato', (data) => {\r\n if (data && data.IdDelega) {\r\n scaricaCopiaConforme(data.IdDelega);\r\n }\r\n\r\n if (data && data.IdFileTelematicoIntermediario) {\r\n callDownloadFile(\r\n getOttieniFileTelematicoIntermediarioInDownload,\r\n 'File telematico ordinario', // dafultname,\r\n data.IdFileTelematicoIntermediario, // params\r\n ).then((resDownload) => {\r\n setShowWarningFileTelematicoPresentaDelega(false);\r\n tabellaDelegheRef.current.refreshTabella();\r\n }).catch((e) => {\r\n logApiError(e);\r\n });\r\n }\r\n });\r\n\r\n useSignalR('DelegaInviataConAdele', (data) => {\r\n if (data && data.IdDelega) {\r\n scaricaCopiaConforme(data.IdDelega);\r\n }\r\n });\r\n\r\n const impostaPresentataCbi = useCallback((esito) => {\r\n const oggettoPresentazione = {\r\n idDelega: presentazioneDelegheCbi.idDelega,\r\n dataVersamento: presentazioneDelegheCbi.dataVersamento,\r\n };\r\n\r\n if (oggettoPresentazione.idDelega) {\r\n if (!esito) {\r\n dispatch(\r\n setPresentaDelegheCbiAction({\r\n\r\n }),\r\n );\r\n\r\n return;\r\n }\r\n postImpostaDelegaInviataConCbi(oggettoPresentazione).then((response) => {\r\n if (response.Success) {\r\n tabellaDelegheRef.current.refreshTabella();\r\n dispatch(\r\n setPresentaDelegheCbiAction({\r\n\r\n }),\r\n );\r\n } else {\r\n setTitoloFeedbackModal('Presenta con CBI');\r\n setSegnalazioni(response.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n }).catch((err) => {\r\n Log.error(err);\r\n setLoading(false);\r\n });\r\n }\r\n }, [dispatch, presentazioneDelegheCbi]);\r\n\r\n usePluginsReducer(\r\n () => ({\r\n EsitoInvioF24CBI: (payload) => {\r\n impostaPresentataCbi(payload);\r\n },\r\n }),\r\n [impostaPresentataCbi],\r\n );\r\n\r\n const scaricaCopiaConforme = (idDelega) => {\r\n postCreaDelegaCopiaConformeTrasmissioneTelematica(idDelega).then((res) => {\r\n if (res.Success) {\r\n callDownloadFile(\r\n apiDownloadFile,\r\n res.Result.NomeFile,\r\n res.Result.IdFile,\r\n codiceUfficioSelezionato,\r\n res.Result.NomeFile,\r\n ).then((resDownload) => {\r\n\r\n }).catch((e) => {\r\n logApiError(e);\r\n });\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n if (!annualitaDisponibili && studioSelezionato > 0) { // && `${sidebarSelected}` === '0') {\r\n setLoading(true);\r\n getOttieniAnnualitaConDebitiDaInserireInDelega(studioSelezionato)\r\n .then((res) => {\r\n if (res.Success && res.Result) {\r\n setAnnualitaDisponibili(res.Result);\r\n if (!annoSelezionato || !(res.Result.some((e) => e.Anno === annoSelezionato))) {\r\n if (annoCampagnaServizioEsterno) {\r\n setAnnoSelezionato(Number(annoCampagnaServizioEsterno));\r\n } else if (annoParam) {\r\n setAnnoSelezionato(Number(annoParam));\r\n } else {\r\n setAnnoSelezionato(Number(res.Result[0].Anno));\r\n }\r\n } else {\r\n // chiamataContatori(annoSelezionato, mostraAperti);\r\n }\r\n } else {\r\n setAnnualitaDisponibili([(new Date()).getFullYear()]);\r\n }\r\n setLoading(false);\r\n }).catch((err) => {\r\n Log.error(err);\r\n setAnnualitaDisponibili([(new Date()).getFullYear()]);\r\n setLoading(false);\r\n });\r\n }\r\n }, [annoCampagnaServizioEsterno, annoParam, annoSelezionato, annualitaDisponibili, studioSelezionato]);\r\n\r\n const cambioStatoSelezionato = useCallback((event) => {\r\n if (event.target.value === 'Aperti') {\r\n setMostraAperti(true);\r\n // chiamataContatori(annoSelezionato, true);\r\n } else if (event.target.value === 'Chiusi') {\r\n setMostraAperti(false);\r\n // chiamataContatori(annoSelezionato, false);\r\n }\r\n }, []);\r\n\r\n const aperturaModaleCreazioneDeleghe = useCallback((params) => {\r\n setCreaDelega(params);\r\n setCreazioneInCorso(true);\r\n setShowPanelCreazioneDelega(false);\r\n }, []);\r\n\r\n const aperturaModaleCreazioneDelega = useCallback(() => {\r\n setCreaDelega(true);\r\n setCreazioneInCorso(true);\r\n setShowPanelCreazioneDelega(false);\r\n }, []);\r\n\r\n const chiusuraModaleCreazioneDelega = useCallback((successo) => {\r\n setCreaDelega(false);\r\n setCreazioneInCorso(false);\r\n setShowPanelCreazioneDelega(true);\r\n if (successo) {\r\n tabellaDelegheRef.current.refreshTabella();\r\n }\r\n }, []);\r\n\r\n const chiusuraModaleDichiaraPagata = useCallback((esito) => {\r\n setShowModaleDichiaraPagata({ show: false });\r\n setSegnalazioni([]);\r\n }, [setSegnalazioni]);\r\n\r\n useEffect(() => {\r\n if (contatoriDeleghe) {\r\n setContatoriComplete(contatoriDeleghe.find((obj) => obj.Stato === 2));\r\n setContatoriInLavorazione(contatoriDeleghe.find((obj) => obj.Stato === 1));\r\n const inPresentazione = contatoriDeleghe.find((obj) => obj.Stato === 3);\r\n const pagate = contatoriDeleghe.find((obj) => obj.Stato === 4);\r\n setContatoriPresentate({\r\n TotaleDeleghe:\r\n (inPresentazione ? (inPresentazione.TotaleDeleghe) : 0) + (pagate ? (pagate.TotaleDeleghe) : 0),\r\n });\r\n } else if (studioSelezionato) {\r\n getOttieniContatoriStatoDelegheMassiva(studioSelezionato)\r\n .then((response) => {\r\n if (response.Success) {\r\n setContatoriDeleghe(response.Result);\r\n } else {\r\n setContatoriDeleghe([]);\r\n Log.error('App error');\r\n }\r\n }).catch((err) => {\r\n Log.error(err);\r\n });\r\n }\r\n }, [contatoriDeleghe, dispatch, soggetto, soggetto.idContribuente, studioSelezionato]);\r\n\r\n const aggiornaContatoriDeleghe = useCallback(() => {\r\n setContatoriDeleghe(null);\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (`${sidebarSelected}` !== `${TABS_MENU_MASSIVA.DELEGHE}`) {\r\n dispatch(setAppParamsAction({ tabSelected: 0 }));\r\n }\r\n }, [dispatch, sidebarSelected, soggetto, soggetto.idContribuente, studioSelezionato]);\r\n\r\n const onTabSelected = useCallback(\r\n (index) => {\r\n dispatch(setAppParamsAction({ tabSelected: index }));\r\n },\r\n [dispatch],\r\n );\r\n\r\n const dichiaraAperta = useCallback(() => {\r\n postDichiaraAperta({ IdDelega: rowsDelegheSelected[0].IdDelega })\r\n .then((response) => {\r\n if (response.Success) {\r\n tabellaDelegheRef.current.refreshTabella();\r\n } else {\r\n setTitoloFeedbackModal('Sposta a \"In lavorazione\" non riuscito');\r\n setSegnalazioni(response.DetectedProblems.map((err) => getSegnalazioneError(err)));\r\n }\r\n })\r\n .catch((err) => {\r\n Log.error(err);\r\n });\r\n }, [rowsDelegheSelected]);\r\n\r\n const dichiaraCompleta = useCallback(() => {\r\n postDichiaraCompleteMassivamente(rowsDelegheSelected.map((x) => x.IdDelega))\r\n .then((response) => {\r\n if (response.Success) {\r\n tabellaDelegheRef.current.refreshTabella();\r\n } else {\r\n tabellaDelegheRef.current.refreshTabella();\r\n setTitoloFeedbackModal('Non è stato possibile completare le seguenti deleghe');\r\n const errori = response.DetectedProblems;\r\n setSegnalazioni(errori);\r\n }\r\n })\r\n .catch((err) => {\r\n Log.error(err);\r\n });\r\n }, [rowsDelegheSelected]);\r\n\r\n const dichiaraPagata = useCallback((idDelega, dataVersamento) => {\r\n const DataVersamento = convertUTCDateToLocalDate(dataVersamento);\r\n postDichiaraPagata({ idDelega, DataVersamento }).then((response) => {\r\n if (response.Success) {\r\n chiusuraModaleDichiaraPagata(true);\r\n tabellaDelegheRef.current.refreshTabella();\r\n } else {\r\n setSegnalazioniDichiaraPagata(response.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n Log.error('App error');\r\n }\r\n }).catch((err) => {\r\n Log.error(err);\r\n });\r\n }, [chiusuraModaleDichiaraPagata]);\r\n\r\n const getDatoFromDelega = useCallback(\r\n (delega, dataVersamento, codiceUfficio, fileCopiaConforme, fileTelematicoContribuente) => (\r\n {\r\n Contribuente: {\r\n IdAnagrafica: soggetto.idAnagrafica,\r\n Nominativo: soggetto.nominativo,\r\n CodiceFiscale: soggetto.codiceFiscale,\r\n PartitaIva: soggetto.partitaIva,\r\n Email: null,\r\n },\r\n Deleghe: [\r\n {\r\n IdDelegaOrigine: delega.Id,\r\n DataScadenzaVersamento: delega.ScadenzaVersamento,\r\n DataPagamento: dataVersamento,\r\n ModelloDelega: delega.TipoDelegaDescrizione === 'Ordinario'\r\n ? 'F24' : `F24 ${delega.TipoDelegaDescrizione}`,\r\n Saldo: delega.Saldo,\r\n Iban: delega.Iban,\r\n LinkDownloadPdf:\r\n `${f24Url}/api/v6/File/Download?idFile=${fileCopiaConforme.Id}&nomeFile=${fileCopiaConforme.Nome}&codiceUfficio=${codiceUfficio}`,\r\n LinkDownloadEntratel:\r\n `${f24Url}/api/v6/File/Download?idFile=${fileTelematicoContribuente.Id}&nomeFile=${fileTelematicoContribuente.Nome}&codiceUfficio=${codiceUfficio}`,\r\n LinkDettaglio: `${f24Url}/#/Delega/${delega.Id}?ufficio=${codiceUfficio}`,\r\n }],\r\n }),\r\n [f24Url, soggetto.codiceFiscale, soggetto.idAnagrafica, soggetto.nominativo, soggetto.partitaIva],\r\n );\r\n\r\n const componiRichieste = useCallback(\r\n (deleghe, dataVersamento, codiceUfficio, fileCopiaConforme, fileTelematicoContribuente) => (\r\n deleghe.map((delega) => getDatoFromDelega(delega, dataVersamento, codiceUfficio, fileCopiaConforme, fileTelematicoContribuente))),\r\n [getDatoFromDelega],\r\n );\r\n\r\n const inserisciDatiDaSelezione = useCallback((\r\n dataVersamento,\r\n selezione,\r\n fileCopiaConforme,\r\n fileTelematicoContribuente,\r\n ) => ({\r\n ApplicationId: applicationId,\r\n Titolo: 'Invio deleghe F24 CBI',\r\n IdOrganizzazione: codiceUfficioSelezionato,\r\n Richiedente: {\r\n Nominativo: `${profiloUtente.Nome} ${profiloUtente.Cognome}`, // TODO: commento dei muppets fare lato BE?\r\n NotificheAbilitate: true, // TODO abilitate anche se forse non server\r\n Email: `${profiloUtente.Email}`,\r\n },\r\n Richieste: componiRichieste(\r\n selezione,\r\n dataVersamento,\r\n codiceUfficioSelezionato,\r\n fileCopiaConforme,\r\n fileTelematicoContribuente,\r\n ),\r\n InformazioniAggiuntive: {\r\n TipoApplicativo: 'F24Online',\r\n },\r\n }), [codiceUfficioSelezionato, componiRichieste, profiloUtente, applicationId]);\r\n\r\n const onCloseModalePresentazione = useCallback((\r\n esito,\r\n proseguiInCbi = false,\r\n dataVersamento = null,\r\n fileCopiaConforme = null,\r\n fileTelematicoContribuente = null,\r\n ) => {\r\n if (proseguiInCbi) {\r\n setLoading(true);\r\n getOttieniIbanContoCorrente(datiModalePresentazione.idDelega)\r\n .then((res) => {\r\n if (res.Success) {\r\n setDatiPerInvioDeleghe(inserisciDatiDaSelezione(\r\n dataVersamento.toISOString(),\r\n [{\r\n Id: datiModalePresentazione.idDelega,\r\n ScadenzaVersamento: datiModalePresentazione.dataVersamento,\r\n TipoDelegaDescrizione: datiModalePresentazione.tipoDelegaDescrizione,\r\n Saldo: datiModalePresentazione.saldo,\r\n Iban: res.Result,\r\n }],\r\n fileCopiaConforme,\r\n fileTelematicoContribuente,\r\n ));\r\n setLoading(false);\r\n setShowModalIFrameCbi(true);\r\n setDatiModalePresentazione(null);\r\n setCurrent('scelta-presentazione');\r\n } else {\r\n SnackbarWrapper.notifyError(res.DetectedProblems);\r\n setLoading(false);\r\n }\r\n })\r\n .catch((e) => {\r\n setLoading(false);\r\n logApiError(e);\r\n });\r\n } else {\r\n setDatiModalePresentazione(null);\r\n setCurrent('scelta-presentazione');\r\n if (esito) {\r\n tabellaDelegheRef.current.refreshTabella();\r\n }\r\n }\r\n }, [datiModalePresentazione, inserisciDatiDaSelezione]);\r\n\r\n const onCloseModalePresentazioneMassiva = useCallback((esito) => {\r\n setDatiModalePresentazioneMassiva(null);\r\n if (esito) {\r\n tabellaDelegheRef.current.refreshTabella();\r\n }\r\n }, []);\r\n\r\n const stampaCartacea = useCallback(() => {\r\n setShowWarningPresentaDelega(false);\r\n setShowModaleLoading({ show: true, title: 'Presenta in forma cartacea' });\r\n if (rowsDelegheSelected && rowsDelegheSelected.length === 1) {\r\n postStampaDelega({ IdDelega: rowsDelegheSelected[0].IdDelega })\r\n .then((res) => {\r\n if (res.Success) {\r\n setShowModaleLoading({ show: false });\r\n callDownloadFile(\r\n getOttieniUltimaStampaInDownload,\r\n 'Stampa cartacea', // dafultname,\r\n rowsDelegheSelected[0].IdDelega, // params\r\n )\r\n .then((resDownload) => {\r\n tabellaDelegheRef.current.refreshTabella();\r\n setShowWarningPresentaDelega(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setShowWarningPresentaDelega(false);\r\n });\r\n } else {\r\n setShowModaleLoading({ show: false });\r\n\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n })\r\n .catch((e) => {\r\n setShowModaleLoading({ show: false });\r\n logApiError(e);\r\n });\r\n } else {\r\n postStampaDelegaMassiva(rowsDelegheSelected.map((r) => r.IdDelega))\r\n .then((res) => {\r\n setShowModaleLoading({ show: false });\r\n if (res.Result.IdFile) {\r\n callDownloadFile(\r\n apiDownloadFile,\r\n res.Result.NomeFile,\r\n res.Result.IdFile,\r\n codiceUfficioSelezionato,\r\n res.Result.NomeFile,\r\n )\r\n .then((resDownload) => {\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setShowWarningPresentaDelega(false);\r\n });\r\n\r\n tabellaDelegheRef.current.refreshTabella();\r\n }\r\n\r\n setShowWarningPresentaDelega(false);\r\n if (res.Result.Errori && res.Result.Errori.length > 0 && !res.Result.IdFile) {\r\n setShowSegnalazioni(true);\r\n }\r\n })\r\n .catch((e) => {\r\n setShowModaleLoading({ show: false });\r\n logApiError(e);\r\n });\r\n }\r\n }, [codiceUfficioSelezionato, rowsDelegheSelected]);\r\n\r\n const handlePostMessageFintech = useCallback((payload) => {\r\n if (datiModalePresentazione && datiModalePresentazione.show) {\r\n const { idDelega } = datiModalePresentazione;\r\n\r\n if ((payload.esito === 'CHIUSO_PLUGIN'\r\n || payload.esito === 'ANNULLATA'\r\n || payload.esito === 'ERRORE'\r\n || payload.esito === 'KO') && idDelega && !loading) {\r\n setLoading(true);\r\n postDichiaraCompleta({ idDelega }).then((response) => {\r\n setLoading(false);\r\n if (response.Success) {\r\n onCloseModalePresentazione(true);\r\n if (payload.descrizione && payload.esito !== 'CHIUSO_PLUGIN') {\r\n setSegnalazioni([{ msg: payload.descrizione }]);\r\n }\r\n } else {\r\n onCloseModalePresentazione(true);\r\n // setTitoloFeedbackModal('Ops...');\r\n // setSegnalazioni([{ msg: 'Qualcosa è andato storto e la tua delega potrebbe essere rimasta in presentazione' }]);\r\n }\r\n }).catch((err) => {\r\n // Log.error(err);\r\n setLoading(false);\r\n // setTitoloFeedbackModal('Ops...');\r\n // setSegnalazioni([{ msg: 'Qualcosa è andato storto e la tua delega potrebbe essere rimasta in presentazione' }]);\r\n });\r\n } else if (payload.esito === 'OK') {\r\n onCloseModalePresentazione(true);\r\n }\r\n }\r\n }, [datiModalePresentazione, loading, onCloseModalePresentazione]);\r\n\r\n usePluginsReducer(\r\n () => ({\r\n ESITO_INVIO_CGNPOS: (payload) => {\r\n handlePostMessageFintech(payload);\r\n },\r\n }),\r\n [handlePostMessageFintech],\r\n );\r\n\r\n return (\r\n
    \r\n \r\n
    1600 ? 'pl-16 pr-16' : 'pl-1 pr-1'}`}>\r\n \r\n {tabSelected === 1\r\n && rowsDelegheSelected\r\n && rowsDelegheSelected.length > 0\r\n && (\r\n \r\n (JSON.parse(window.localStorage.getItem('completa-deleghe-non-visualizza-piu')) !== 'messageRead'\r\n ? setShowWarningCompletaDeleghe(true) : dichiaraCompleta())\r\n }\r\n primary\r\n disabled={appParamVisualizzazione}\r\n >\r\n \r\n Segna come complete\r\n \r\n \r\n )}\r\n {tabSelected === 2\r\n && rowsDelegheSelected\r\n && rowsDelegheSelected.length > 0\r\n && (\r\n \r\n )}\r\n {tabSelected === 3\r\n && rowsDelegheSelected\r\n && rowsDelegheSelected.length === 1\r\n && (\r\n \r\n setShowModaleDichiaraPagata(\r\n {\r\n show: true,\r\n idDelega: rowsDelegheSelected[0].IdDelega,\r\n scadenzaVersamento: rowsDelegheSelected[0].ScadenzaVersamento,\r\n dataVersamento: rowsDelegheSelected[0].DataVersamento,\r\n },\r\n )}\r\n disabled={(\r\n rowsDelegheSelected[0]\r\n && !rowsDelegheSelected[0].IsDichiaraPagataAttivo)\r\n || appParamVisualizzazione}\r\n primary\r\n >\r\n \r\n Segna come Pagata\r\n \r\n dichiaraAperta(true)}\r\n disabled={(\r\n rowsDelegheSelected[0]\r\n && !rowsDelegheSelected[0].IsDichiaraApertaAttivo)\r\n || appParamVisualizzazione}\r\n >\r\n \r\n Sposta a "In Lavorazione"\r\n \r\n \r\n )}\r\n
    \r\n )}\r\n >\r\n \r\n Debiti da inserire in delega{' '}\r\n \r\n {contatoriTributi || 0}\r\n \r\n {/* In lavorazione {contatoriTributi} */}\r\n \r\n )}\r\n >\r\n {loading && }\r\n {annoSelezionato && (\r\n {}}\r\n setModaleCreazioneDelegheDaTributo={() => {}}\r\n showOperazioneAsincrona={showOperazioneAsincrona}\r\n setShowOperazioneAsincrona={setShowOperazioneAsincrona}\r\n setContatoriTributi={setContatoriTributi}\r\n ref={tabellaTributiRef}\r\n showPanelCreazioneDelega={showPanelCreazioneDelega}\r\n panelCreazioneDelega={panelCreazioneDelega}\r\n />\r\n )}\r\n \r\n \r\n Deleghe In lavorazione{' '}\r\n \r\n {contatoriInLavorazione\r\n ? contatoriInLavorazione.TotaleDeleghe\r\n : 0}\r\n \r\n {/* In lavorazione {contatoriTributi} */}\r\n \r\n )}\r\n >\r\n \r\n \r\n \r\n Deleghe Complete{' '}\r\n \r\n {contatoriComplete ? contatoriComplete.TotaleDeleghe : 0}\r\n \r\n {/* In lavorazione {contatoriTributi} */}\r\n \r\n )}\r\n >\r\n \r\n \r\n \r\n Deleghe Presentate{' '}\r\n \r\n {contatoriPresentate ? contatoriPresentate.TotaleDeleghe : 0}\r\n \r\n {/* In lavorazione {contatoriTributi} */}\r\n \r\n )}\r\n >\r\n \r\n \r\n \r\n
    \r\n {datiModalePresentazione && (\r\n \r\n )}\r\n {datiModalePresentazioneMassiva && (\r\n \r\n )}\r\n {creaDelega && creaDelega.aperto\r\n && (\r\n {\r\n setCreaDelega({ aperto: false });\r\n setShowPanelCreazioneDelega(true);\r\n operazioneCompletata && tabellaTributiRef.current.refreshTabella();\r\n }}\r\n debiti={creaDelega.tributi}\r\n annualitaSelezionata={annoSelezionato}\r\n includiFigli\r\n />\r\n )}\r\n \r\n }\r\n onClose={() => setShowWarningPresentaDelega(false)}\r\n secondaryLabel=\"Presenta in forma cartacea\"\r\n onSecondaryClick={() => stampaCartacea()}\r\n primaryLabel=\"Non Presentare\"\r\n onPrimaryClick={() => setShowWarningPresentaDelega(false)}\r\n title={'La delega assumerà lo stato \"In presentazione\"'}\r\n message={(\r\n
    \r\n Verrà scaricato il modello definitivo (in triplice copia) e,\r\n successivamente,\r\n
    \r\n troverai la delega all' interno del tab "In\r\n presentazione".\r\n

    \r\n \r\n
    \r\n )}\r\n dontShowAgainMessage=\"Non mostrare più questo messaggio\"\r\n dontShowAgainId=\"stampa-cartacea-non-visualizza-piu\"\r\n />\r\n }\r\n onClose={() => setShowWarningCompletaDeleghe(false)}\r\n secondaryLabel=\"Segna come complete\"\r\n onSecondaryClick={() => { setShowWarningCompletaDeleghe(false); dichiaraCompleta(); }}\r\n primaryLabel=\"Non completare\"\r\n onPrimaryClick={() => { setShowWarningCompletaDeleghe(false); }}\r\n title={'Le deleghe assumeranno lo stato \"Completa\"'}\r\n message={(\r\n \r\n {/* Verrà scaricato il modello definitivo (in triplice copia) e,\r\n successivamente,\r\n
    \r\n troverai la delega all' interno del tab "In\r\n presentazione".\r\n

    \r\n */}\r\n Le potrai trovare all'interno del tab "Deleghe Complete"\r\n
    \r\n )}\r\n dontShowAgainMessage=\"Non mostrare più questo messaggio\"\r\n dontShowAgainId=\"completa-deleghe-non-visualizza-piu\"\r\n />\r\n {showSegnalazioni && (\r\n setShowSegnalazioni(false)}\r\n message=\"Non è stato possibile stampare alcuna delega selezionata\"\r\n />\r\n )}\r\n {segnalazioni && segnalazioni.length > 0 && (\r\n 0}\r\n title={titoloFeedbackModal}\r\n onClose={() => setSegnalazioni([])}\r\n buttonLabel=\"ok\"\r\n type=\"alarm\"\r\n message={
      {segnalazioni.map((s) => (
    • {s.msg || s}
    • ))}
    }\r\n />\r\n )}\r\n {showModaleLoading && showModaleLoading.show && (\r\n setShowModaleLoading({ show: false })}\r\n title={showModaleLoading.title}\r\n />\r\n )}\r\n {\r\n // Assistente.mostraPermalink(enumPermalink.toString(enumPermalink.F24CBI));\r\n setShowModalIFrameCbi(false);\r\n }}\r\n show={showModalIFrameCbi}\r\n title=\"Invia F24 mediante CBI\"\r\n iframeProps={{ extraParams: datiPerInvioDeleghe }}\r\n defaultModalSize={{ width: 990, height: 500 }}\r\n fixedModalSize\r\n />\r\n \r\n
    \r\n );\r\n};\r\n\r\nDelegheMassive.defaultProps = {\r\n annoParam: null,\r\n};\r\n\r\nDelegheMassive.propTypes = {\r\n annoParam: PropTypes.number,\r\n};\r\n\r\nexport default DelegheMassive;\r\n","/* eslint-disable no-nested-ternary */\r\nimport React, {\r\n useEffect,\r\n} from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { setAppParamsAction } from 'framework-taskforce/actions/appParams';\r\nimport { useParams } from 'react-router';\r\nimport ToolbarDiProva from '../riepilogoContribuente/ToolbarDiProva';\r\nimport PageWrapper from '../../../components/PageWrapper';\r\n// import TabListaTributi from './listaTributi/TabListaTributi';\r\nimport DelegheMassive from './DelegheMassive';\r\n\r\nconst PaginaTutteLeDeleghe = () => {\r\n const dispatch = useDispatch();\r\n\r\n const { annoParam } = useParams();\r\n\r\n const noToolbar = useSelector((store) => store.appParams.noToolbar);\r\n const withNoSidebar = useSelector((store) => store.appParams.withNoSidebar);\r\n\r\n useEffect(() => {\r\n dispatch(setAppParamsAction({ sidebarSelected: '0' }));\r\n });\r\n\r\n return (\r\n {/* `${soggetto.nominativo}`]}> */}\r\n \r\n )}\r\n >\r\n \r\n \r\n );\r\n};\r\n\r\nexport default PaginaTutteLeDeleghe;\r\n","import { AuthorizedApp } from 'framework-taskforce';\r\nimport React from 'react';\r\nimport ContenutoPaginaDiSospensione from '../ContenutoPaginaDiSospensione';\r\nimport PaginaTutteLeDeleghe from '../areas/listaContribuenti/massivita/PaginaTutteLeDeleghe';\r\nimport { authorizedServices } from '../models/f24';\r\n\r\nconst PaginaTutteLeDelegheRoute = () => (\r\n )}\r\n >\r\n \r\n \r\n);\r\n\r\nPaginaTutteLeDelegheRoute.defaultProps = {\r\n};\r\n\r\nPaginaTutteLeDelegheRoute.propTypes = {\r\n};\r\n\r\nexport default PaginaTutteLeDelegheRoute;\r\n","import { AuthorizedApp } from 'framework-taskforce';\r\nimport React from 'react';\r\nimport ContenutoPaginaDiSospensione from '../ContenutoPaginaDiSospensione';\r\nimport DettaglioDelega from '../areas/dettaglioDelega/DettaglioDelega';\r\nimport { authorizedServices } from '../models/f24';\r\n\r\nconst DettaglioDelegaFromMassiveRoute = () => (\r\n )}\r\n >\r\n \r\n \r\n);\r\n\r\nDettaglioDelegaFromMassiveRoute.defaultProps = {\r\n};\r\n\r\nDettaglioDelegaFromMassiveRoute.propTypes = {\r\n};\r\n\r\nexport default DettaglioDelegaFromMassiveRoute;\r\n","import { AuthorizedApp } from 'framework-taskforce';\r\nimport React from 'react';\r\nimport ContenutoPaginaDiSospensione from '../ContenutoPaginaDiSospensione';\r\nimport RiepilogoContribuente from '../areas/listaContribuenti/riepilogoContribuente/RiepilogoContribuente';\r\nimport { authorizedServices } from '../models/f24';\r\n\r\nconst RiepilogoContribuenteRoute = () => (\r\n )}\r\n >\r\n \r\n \r\n);\r\n\r\nRiepilogoContribuenteRoute.defaultProps = {\r\n};\r\n\r\nRiepilogoContribuenteRoute.propTypes = {\r\n};\r\n\r\nexport default RiepilogoContribuenteRoute;\r\n","import { AuthorizedApp } from 'framework-taskforce';\r\nimport React from 'react';\r\nimport ContenutoPaginaDiSospensione from '../ContenutoPaginaDiSospensione';\r\nimport DettaglioDelega from '../areas/dettaglioDelega/DettaglioDelega';\r\nimport { authorizedServices } from '../models/f24';\r\n\r\nconst DettaglioDelegaRoute = () => (\r\n )}\r\n >\r\n \r\n \r\n);\r\n\r\nDettaglioDelegaRoute.defaultProps = {\r\n};\r\n\r\nDettaglioDelegaRoute.propTypes = {\r\n};\r\n\r\nexport default DettaglioDelegaRoute;\r\n","import React, { useMemo, useEffect, useState } from 'react';\r\nimport { Toolbar } from 'framework-ui-components/Components/V2';\r\nimport PropTypes from 'prop-types';\r\nimport { useHistory } from 'react-router-dom';\r\nimport { useSelector } from 'react-redux';\r\nimport { NOOP } from 'framework-ui-components/utils/const';\r\nimport { intermediariUrl } from '../../models/urls';\r\nimport { addParamVisualizzazioneToUrl } from '../../utils/urls';\r\n\r\nconst ToolbarDiProva = ({ breadcrumbs, children, noBack }) => {\r\n const appParamVisualizzazione = useSelector((store) => !!store.appParams.visualizzazione);\r\n const codiceUfficioOperatore = useSelector((store) => store.appParams.codiceUfficioOperatore);\r\n const withNoSidebar = useSelector((store) => store.appParams.withNoSidebar);\r\n const noToolbar = useSelector((store) => store.appParams.noToolbar);\r\n\r\n const [penultimo] = ['Home'];\r\n const history = useHistory();\r\n\r\n const breadcrumbsBase = useMemo(\r\n () => (withNoSidebar ? [''] : ['F24']),\r\n [withNoSidebar],\r\n );\r\n\r\n const [breadcrumbsTutti, setBreadcrumbs] = useState(['F24']);\r\n\r\n useEffect(() => {\r\n const breadcrumsUniti = [...new Set([...breadcrumbsBase, ...breadcrumbs])];\r\n setBreadcrumbs(breadcrumsUniti);\r\n\r\n // ultimo = ;\r\n // penultimo = breadcrumsUniti.slice(-2)[0];\r\n }, [breadcrumbs, breadcrumbsBase]); // TODO se risolvi il warning si spacca\r\n\r\n const selezionaBreadcrumb = (breadcrumb) => {\r\n if (breadcrumb === 'F24') {\r\n return history.push(appParamVisualizzazione\r\n ? addParamVisualizzazioneToUrl('/Home', codiceUfficioOperatore) : '/');\r\n }\r\n if (breadcrumb === 'Intermediari') {\r\n return history.push(intermediariUrl(appParamVisualizzazione));\r\n }\r\n if (breadcrumb === 'Contribuenti') {\r\n return history.push(appParamVisualizzazione\r\n ? addParamVisualizzazioneToUrl('/Contribuenti', codiceUfficioOperatore) : '/Contribuenti');\r\n }\r\n\r\n if (!!breadcrumb && !!breadcrumb.props && !!breadcrumb.props.onClick) {\r\n return breadcrumb.props.onClick();\r\n }\r\n\r\n return history.push(appParamVisualizzazione\r\n ? addParamVisualizzazioneToUrl('/Home', codiceUfficioOperatore) : '/');\r\n };\r\n\r\n return (\r\n selezionaBreadcrumb(breadcrumbsTutti.slice(-2)[0]) : NOOP}\r\n onSelect={(id) => {\r\n const ultimo = breadcrumbsTutti.slice(-1)[0];\r\n id !== ultimo && selezionaBreadcrumb(id);\r\n }}\r\n breadcrumbs={breadcrumbsTutti.filter((n) => n.length > 0)}\r\n >\r\n {children}\r\n \r\n );\r\n};\r\n\r\nToolbarDiProva.defaultProps = {\r\n children: null,\r\n breadcrumbs: [],\r\n noBack: false,\r\n};\r\n\r\nToolbarDiProva.propTypes = {\r\n breadcrumbs: PropTypes.arrayOf(PropTypes.node),\r\n children: PropTypes.node,\r\n noBack: PropTypes.bool,\r\n};\r\n\r\nexport default ToolbarDiProva;\r\n","/* eslint-disable no-nested-ternary */\r\nimport React, { useCallback, useState } from 'react';\r\nimport {\r\n EllipsisText,\r\n Grid,\r\n InfoTooltip,\r\n OptionDropdown,\r\n} from 'framework-ui-components';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport { useHistory, useParams } from 'react-router';\r\nimport { Table } from 'framework-ui-components/Components/V2';\r\nimport { STOP_EVENT_PROPAGATION } from 'framework-ui-components/utils/const';\r\nimport { setSoggettoAction } from '../../../actions/soggetto';\r\nimport { dettaglioIntermediarioUrl, getTributiIntermediarioUrl } from '../../../models/urls';\r\nimport { TIPO_PERSONA } from '../../../models/anagrafica';\r\n\r\nconst RigaIntermediario = ({\r\n item: {\r\n IdIntermediario,\r\n CodiceFiscale,\r\n Denominazione,\r\n PartitaIva,\r\n TipoPersona,\r\n },\r\n additionalRowData: {\r\n // ufficioSelezionato,\r\n searchTerm,\r\n // annoImposta,\r\n },\r\n}) => {\r\n const history = useHistory();\r\n const appParamVisualizzazione = useSelector((store) => !!store.appParams.visualizzazione);\r\n\r\n const dispatch = useDispatch();\r\n\r\n const gotoDettaglioSoggetto = useCallback(() => {\r\n history.push(dettaglioIntermediarioUrl(IdIntermediario, appParamVisualizzazione));\r\n }, [IdIntermediario, appParamVisualizzazione, history]);\r\n\r\n return (\r\n gotoDettaglioSoggetto()}\r\n >\r\n gotoDettaglioSoggetto()}>\r\n {Denominazione}\r\n \r\n gotoDettaglioSoggetto()} />\r\n gotoDettaglioSoggetto()}>\r\n {CodiceFiscale}\r\n \r\n gotoDettaglioSoggetto()} />\r\n gotoDettaglioSoggetto()}>\r\n {PartitaIva}\r\n \r\n gotoDettaglioSoggetto()} />\r\n \r\n {/* \r\n gotoDettaglioSoggetto()}>\r\n Vai a dettaglio\r\n \r\n */}\r\n \r\n \r\n );\r\n};\r\n\r\nRigaIntermediario.propTypes = {\r\n item: PropTypes.shape({\r\n IdIntermediario: PropTypes.number,\r\n CodiceFiscale: PropTypes.string,\r\n Denominazione: PropTypes.string,\r\n PartitaIva: PropTypes.string,\r\n TipoPersona: PropTypes.string,\r\n }).isRequired,\r\n additionalRowData: PropTypes.shape({\r\n // ufficioSelezionato: PropTypes.string.isRequired,\r\n searchTerm: PropTypes.string,\r\n // annoImposta: PropTypes.number.isRequired,\r\n }).isRequired,\r\n};\r\n\r\nexport default RigaIntermediario;\r\n","import React, {\r\n forwardRef, useCallback, useEffect, useImperativeHandle, useMemo, useRef, useState,\r\n} from 'react';\r\nimport useDebouncedFunc from 'framework-ui-components/Components/Hooks/useDebouncedFunc';\r\nimport usePluginsReducer from 'framework-plugins/hooks/usePluginReducer';\r\nimport { ODataTable, ViewportProvider } from 'framework-ui-components/Components/V2';\r\nimport PropTypes from 'prop-types';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport useViewport, { MAIN } from 'framework-ui-components/Components/V2/Hooks/useViewport';\r\nimport { FilterTypes, QueryOptions } from 'framework-ui-components';\r\nimport { setAppParamsAction } from 'framework-taskforce/actions/appParams';\r\nimport { ottieniIntermediariUrl } from '../../../apis/intermediari';\r\nimport RigaIntermediario from './RigaIntermediario';\r\nimport { setIntermediariAction } from '../../../actions/intermediari';\r\n\r\nconst TabellaIntermediari = forwardRef(({ codiceUfficioOperatore, studioOperatore }, ref) => {\r\n const dispatch = useDispatch();\r\n\r\n const tabellaRef = useRef();\r\n const studioSelezionato = useSelector((store) => store.appParams.studioSelezionato);\r\n\r\n const { resolution } = useViewport();\r\n const resolutionMAIN = resolution === MAIN;\r\n\r\n // const url = useMemo(() => (\r\n // studioSelezionato && (ottieniContribuentiUrl)(\r\n // studioSelezionato,\r\n // '',\r\n // filtroText || '',\r\n // )\r\n // ),\r\n // [filtroText, studioSelezionato]);\r\n\r\n const onRowsSelected = useCallback((rows) => {\r\n // const rowsObjectSelected = NUOVO_LAYOUT_LISTA_DICHIARAZIONI ? rows.map((row) => row.object) : rows;\r\n // dispatch({ type: ACTIONS.SET_ROWS_SELECTED, payload: rowsObjectSelected });\r\n }, []);\r\n\r\n const updateOptimisticRows = useCallback(() => {\r\n // dispatch({ type: ACTIONS.UPDATE_OPTIMISTIC_ROWS });\r\n }, []);\r\n\r\n const onPageLoaded = useCallback((pageItems, totalCount, currentFilter, currentPage, sortProperty, sortOrder) => {\r\n dispatch(setAppParamsAction({\r\n tabSelected: 0,\r\n }));\r\n // tabellaRef.current && tabellaRef.current.resetSelection();\r\n // updateOptimisticRows();\r\n // setContatori(totalCount);\r\n }, [dispatch]);\r\n\r\n // const updateContatori = useCallback(() => {\r\n // (getStati)(codiceUfficio, annoSelezionato, filtroText)\r\n // .then((contatori) => {\r\n // dispatch({ type: ACTIONS.SET_CONTATORI_STATO, payload: contatori });\r\n // }).catch((e) => {\r\n // Log.error(e);\r\n // });\r\n // }, [annoSelezionato, backoffice, codiceUfficio, dispatch, filtroText]);\r\n\r\n useEffect(() => {\r\n // updateContatori();\r\n }, []);\r\n\r\n const refreshTabella = useDebouncedFunc(() => {\r\n tabellaRef.current && tabellaRef.current.refreshTable();\r\n // updateContatori();\r\n }, 200, []);\r\n\r\n // permetto di accedere via ref al metodo refreshTabella\r\n useImperativeHandle(ref, () => ({ refreshTabella }), [refreshTabella]);\r\n\r\n // // intercettazione evento di refresh che arriva da un eventuale parent plugins\r\n // usePluginsReducer(() => ({\r\n // REFRESH_DICHIARAZIONI_ISEE: () => {\r\n // setTimeout(() => {\r\n // // Chiamata refresh dopo 1s (tempo di refresh indici elastic)\r\n // refreshTabella();\r\n // }, 1000);\r\n // },\r\n // }), [refreshTabella]);\r\n\r\n const rowRender = useCallback((item) => (\r\n \r\n ), [refreshTabella, resolutionMAIN]);\r\n\r\n return (\r\n \r\n {(studioSelezionato || studioOperatore) && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n});\r\n\r\nTabellaIntermediari.defaultProps = {\r\n codiceUfficioOperatore: null,\r\n studioOperatore: null,\r\n};\r\n\r\nTabellaIntermediari.propTypes = {\r\n codiceUfficioOperatore: PropTypes.string,\r\n studioOperatore: PropTypes.string,\r\n};\r\n\r\nexport default TabellaIntermediari;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n DatePicker, Input, Restriction, Validation,\r\n} from 'framework-ui-components';\r\nimport TemplateGrid from '../../../components/TemplateGrid/TemplateGrid';\r\n\r\nconst SezioneDatiAnagraficiPersonaFisica = ({\r\n presetForm,\r\n valutaEsistenzaAnagrafica,\r\n datiAnagraficiEditabili,\r\n dataDiNascitaEditabile,\r\n partitaIvaEditabile,\r\n// idEnte,\r\n// campiSpecifici,\r\n// idCodiceTributo,\r\n// periodoDa,\r\n// periodoA,\r\n// annoRiferimentoDa,\r\n// erroreImportoLimitato,\r\n// limiteUnico,\r\n}) => (\r\n
    \r\n
    Dati anagrafici
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n);\r\n\r\nSezioneDatiAnagraficiPersonaFisica.defaultProps = {\r\n};\r\n\r\nSezioneDatiAnagraficiPersonaFisica.propTypes = {\r\n presetForm: PropTypes.func.isRequired,\r\n valutaEsistenzaAnagrafica: PropTypes.func.isRequired,\r\n datiAnagraficiEditabili: PropTypes.bool.isRequired,\r\n dataDiNascitaEditabile: PropTypes.bool.isRequired,\r\n partitaIvaEditabile: PropTypes.bool.isRequired,\r\n};\r\n\r\nexport default SezioneDatiAnagraficiPersonaFisica;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Autocomplete, Heading, Input, Restriction, Validation,\r\n} from 'framework-ui-components';\r\nimport TemplateGrid from '../../../components/TemplateGrid/TemplateGrid';\r\nimport { cercaComuni, cercaToponimi } from '../../../apis/anagrafiche';\r\n\r\nconst SezioneSedeLegale = ({\r\n presetForm,\r\n onChangeAutocompletes,\r\n residenzaSedeLegaleEditabili,\r\n// idEnte,\r\n// campiSpecifici,\r\n// idCodiceTributo,\r\n// periodoDa,\r\n// periodoA,\r\n// annoRiferimentoDa,\r\n// erroreImportoLimitato,\r\n// limiteUnico,\r\n}) => (\r\n
    \r\n \r\n \r\n onChangeAutocompletes('CodiceComune', val)}\r\n name=\"CodiceComuneDescrizioneComposta\"\r\n title=\"Comune\"\r\n url={cercaComuni()}\r\n renderProperty=\"DescrizioneComposta\"\r\n validations={[\r\n Validation.DefaultRules.required,\r\n ]}\r\n readOnly={!residenzaSedeLegaleEditabili}\r\n />\r\n \r\n \r\n \r\n onChangeAutocompletes('Toponimo', val)}\r\n name=\"ToponimoDescrizione\"\r\n title=\"Toponimo\"\r\n url={cercaToponimi()}\r\n renderProperty=\"Descrizione\"\r\n validations={[\r\n Validation.DefaultRules.required,\r\n ]}\r\n readOnly={!residenzaSedeLegaleEditabili}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n);\r\n\r\nSezioneSedeLegale.defaultProps = {\r\n// annoRiferimentoDa: 0,\r\n// erroreImportoLimitato: false,\r\n};\r\n\r\nSezioneSedeLegale.propTypes = {\r\n presetForm: PropTypes.func.isRequired,\r\n onChangeAutocompletes: PropTypes.func.isRequired,\r\n residenzaSedeLegaleEditabili: PropTypes.bool.isRequired,\r\n// campiSpecifici: PropTypes.arrayOf(PropTypes.object).isRequired,\r\n// idCodiceTributo: PropTypes.number.isRequired,\r\n// periodoDa: PropTypes.string.isRequired,\r\n// periodoA: PropTypes.string.isRequired,\r\n// idEnte: PropTypes.number.isRequired,\r\n// annoRiferimentoDa: PropTypes.number,\r\n// erroreImportoLimitato: PropTypes.bool,\r\n// limiteUnico: PropTypes.bool.isRequired,\r\n};\r\n\r\nexport default SezioneSedeLegale;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Autocomplete, Input, Restriction, Validation,\r\n} from 'framework-ui-components';\r\nimport TemplateGrid from '../../../components/TemplateGrid/TemplateGrid';\r\nimport { cercaNatureGiuridiche } from '../../../apis/anagrafiche';\r\n\r\nconst SezioneDatiAnagraficiPersonaFisica = ({\r\n presetForm,\r\n valutaEsistenzaAnagrafica,\r\n datiAnagraficiEditabili,\r\n dataDiNascitaEditabile,\r\n partitaIvaEditabile,\r\n onChangeAutocompletes,\r\n// idEnte,\r\n// campiSpecifici,\r\n// idCodiceTributo,\r\n// periodoDa,\r\n// periodoA,\r\n// annoRiferimentoDa,\r\n// erroreImportoLimitato,\r\n// limiteUnico,\r\n}) => (\r\n
    \r\n
    Dati anagrafici
    \r\n \r\n \r\n \r\n\r\n \r\n onChangeAutocompletes('NaturaGiuridica', val)}\r\n validations={[Validation.DefaultRules.required]}\r\n />\r\n \r\n
    \r\n);\r\n\r\nSezioneDatiAnagraficiPersonaFisica.defaultProps = {\r\n// annoRiferimentoDa: 0,\r\n// erroreImportoLimitato: false,\r\n};\r\n\r\nSezioneDatiAnagraficiPersonaFisica.propTypes = {\r\n presetForm: PropTypes.func.isRequired,\r\n valutaEsistenzaAnagrafica: PropTypes.func.isRequired,\r\n datiAnagraficiEditabili: PropTypes.bool.isRequired,\r\n dataDiNascitaEditabile: PropTypes.bool.isRequired,\r\n partitaIvaEditabile: PropTypes.bool.isRequired,\r\n onChangeAutocompletes: PropTypes.func.isRequired,\r\n// campiSpecifici: PropTypes.arrayOf(PropTypes.object).isRequired,\r\n// idCodiceTributo: PropTypes.number.isRequired,\r\n// periodoDa: PropTypes.string.isRequired,\r\n// periodoA: PropTypes.string.isRequired,\r\n// idEnte: PropTypes.number.isRequired,\r\n// annoRiferimentoDa: PropTypes.number,\r\n// erroreImportoLimitato: PropTypes.bool,\r\n// limiteUnico: PropTypes.bool.isRequired,\r\n};\r\n\r\nexport default SezioneDatiAnagraficiPersonaFisica;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Autocomplete, Heading, Input, Restriction, Validation,\r\n} from 'framework-ui-components';\r\nimport TemplateGrid from '../../../components/TemplateGrid/TemplateGrid';\r\nimport { cercaComuni, cercaToponimi } from '../../../apis/anagrafiche';\r\n\r\nconst SezioneResidenza = ({\r\n onChangeAutocompletes,\r\n residenzaSedeLegaleEditabili,\r\n}) => (\r\n
    \r\n \r\n \r\n onChangeAutocompletes('CodiceComune', val)}\r\n name=\"CodiceComuneDescrizioneComposta\"\r\n title=\"Comune\"\r\n url={cercaComuni()}\r\n renderProperty=\"DescrizioneComposta\"\r\n validations={[\r\n Validation.DefaultRules.required,\r\n ]}\r\n readOnly={!residenzaSedeLegaleEditabili}\r\n />\r\n \r\n \r\n \r\n onChangeAutocompletes('Toponimo', val)}\r\n name=\"ToponimoDescrizione\"\r\n title=\"Toponimo\"\r\n url={cercaToponimi()}\r\n renderProperty=\"Descrizione\"\r\n validations={[\r\n Validation.DefaultRules.required,\r\n ]}\r\n readOnly={!residenzaSedeLegaleEditabili}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n);\r\n\r\nSezioneResidenza.defaultProps = {\r\n\r\n};\r\n\r\nSezioneResidenza.propTypes = {\r\n onChangeAutocompletes: PropTypes.func.isRequired,\r\n residenzaSedeLegaleEditabili: PropTypes.bool.isRequired,\r\n};\r\n\r\nexport default SezioneResidenza;\r\n","const ACTION_INTERMEDIARI_SET = 'INTERMEDIARI_SET';\r\n\r\nconst setIntermediariAction = (intermediari) => (dispatch) => dispatch({\r\n type: ACTION_INTERMEDIARI_SET,\r\n payload: intermediari,\r\n});\r\n\r\nexport {\r\n ACTION_INTERMEDIARI_SET,\r\n setIntermediariAction,\r\n};\r\n","/* eslint-disable no-nested-ternary */\r\nimport React, {\r\n useState, useEffect, useCallback, useRef, useMemo,\r\n} from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Form,\r\n} from 'framework-ui-components';\r\nimport {\r\n Modal, Button, FeedbackPanel,\r\n} from 'framework-ui-components/Components/V2';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { useHistory } from 'react-router';\r\nimport Log, { logApiError } from 'framework-taskforce/utils/log';\r\nimport { isEmptyObject } from 'framework-taskforce/utils/object';\r\nimport { getSegnalazioneError } from 'framework-taskforce/models/segnalazioni';\r\nimport {\r\n getOttieniIntermediarioPersonaFisica,\r\n getOttieniIntermediarioPersonaGiuridica,\r\n postCreaIntermediarioPersonaFisica,\r\n postCreaIntermediarioPersonaGiuridica,\r\n} from '../../../apis/intermediari';\r\nimport {\r\n getOttieniIndirizzoResidenzaFiscale,\r\n getOttieniIndirizzoSedeLegale,\r\n getOttieniDatiDaCodiceFiscale,\r\n} from '../../../apis/anagrafiche';\r\nimport { TIPO_PERSONA } from '../../../models/anagrafica';\r\nimport SezioneDatiAnagraficiPersonaFisica from '../../anagrafiche/creazione/SezioneDatiAnagraficiPersonaFisica';\r\nimport SezioneSedeLegale from '../../anagrafiche/creazione/SezioneSedeLegale';\r\nimport { dettaglioIntermediarioUrl } from '../../../models/urls';\r\nimport SezioneDatiAnagraficiPersonaGiuridica from '../../anagrafiche/creazione/SezioneDatiAnagraficiPersonaGiuridica';\r\nimport SezioneResidenza from '../../anagrafiche/creazione/SezioneResidenza';\r\nimport { setIntermediariAction } from '../../../actions/intermediari';\r\nimport SegnalazioniViewer from '../../../components/custom/SegnalazioniViewer';\r\n\r\nconst ModaleCreazioneIntermediario = ({\r\n onClose,\r\n tipologia,\r\n show,\r\n}) => {\r\n const codiceUfficioSelezionato = useSelector((store) => store.appParams.ufficioSelezionato);\r\n const studioSelezionato = useSelector((store) => store.appParams.studioSelezionato);\r\n const intermediariStudio = useSelector((store) => store.intermediari);\r\n\r\n const history = useHistory();\r\n\r\n const [loading, setLoading] = useState(false);\r\n const [isFormValid, setIsFormValid] = useState(false);\r\n const [esito, setEsito] = useState(null);\r\n const [formData, setFormData] = useState({ });\r\n const [codiceFiscaleOld, setCodiceFiscaleOld] = useState(formData.CodiceFiscale);\r\n const [segnalazioni, setSegnalazioni] = useState([]);\r\n const [datiAnagraficiEditabili, setDatiAnagraficiEditabili] = useState(false);\r\n const [residenzaSedeLegaleEditabili, setResidenzaSedeLegaleEditabili] = useState(true);\r\n const [dataDiNascitaEditabile, setDataDiNascitaEditabile] = useState(true);\r\n const [partitaIvaEditabile, setPartitaIvaEditabile] = useState(true);\r\n\r\n const formRef = useRef();\r\n const dispatch = useDispatch();\r\n\r\n const presetForm = useCallback(({ FormErrors, ...datoModificato }) => {\r\n if (!formData || isEmptyObject(datoModificato)) return;\r\n const newStato = { ...formData, ...datoModificato };\r\n setCodiceFiscaleOld(formData.CodiceFiscale);\r\n setFormData(newStato);\r\n }, [formData]);\r\n\r\n const recuperaResidenzaOSedeLegale = useCallback((idAnagrafica, datiAnagrafici) => {\r\n if (idAnagrafica) {\r\n (tipologia === TIPO_PERSONA.PERSONA_FISICA ? getOttieniIndirizzoResidenzaFiscale : getOttieniIndirizzoSedeLegale)(idAnagrafica)\r\n .then((res) => {\r\n if (res.Success && res.Result) {\r\n presetForm({\r\n ...datiAnagrafici,\r\n Id: res.Result.Id,\r\n TipoIndirizzo: res.Result.TipoIndirizzo,\r\n TipoPersona: res.Result.TipoPersona,\r\n IdComune: res.Result.IdComune,\r\n IdToponimo: res.Result.IdToponimo,\r\n DescrizioneTipoIndirizzo: res.Result.DescrizioneTipoIndirizzo,\r\n CodiceComuneDescrizioneComposta: res.Result.Comune,\r\n ComuneCodiceProvincia: res.Result.Provincia,\r\n IndirizzoDescrizione: res.Result.Descrizione,\r\n NumeroCivico: res.Result.NumeroCivico,\r\n Frazione: res.Result.Frazione,\r\n ToponimoDescrizione: res.Result.Toponimo,\r\n Cap: res.Result.Cap,\r\n });\r\n\r\n setResidenzaSedeLegaleEditabili(false);\r\n } else {\r\n presetForm({\r\n ...datiAnagrafici,\r\n });\r\n setResidenzaSedeLegaleEditabili(true);\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n } else {\r\n presetForm({\r\n ...datiAnagrafici,\r\n Id: null,\r\n TipoIndirizzo: null,\r\n TipoPersona: null,\r\n IdComune: null,\r\n IdToponimo: null,\r\n DescrizioneTipoIndirizzo: null,\r\n CodiceComuneDescrizioneComposta: null,\r\n ComuneCodiceProvincia: null,\r\n IndirizzoDescrizione: null,\r\n NumeroCivico: null,\r\n Frazione: null,\r\n ToponimoDescrizione: null,\r\n Cap: null,\r\n });\r\n\r\n setLoading(false);\r\n }\r\n }, [tipologia, presetForm]);\r\n\r\n const codiceFiscalePartitaIva = useMemo(\r\n () => (tipologia === TIPO_PERSONA.PERSONA_FISICA ? formData.CodiceFiscale : formData.PartitaIva),\r\n [formData.CodiceFiscale, formData.PartitaIva, tipologia],\r\n );\r\n\r\n // controlla l'esistenza di una anagrafica\r\n const esisteOttieniAnagrafica = useCallback((codiceFiscale) => {\r\n setLoading(true);\r\n (tipologia === TIPO_PERSONA.PERSONA_FISICA\r\n ? getOttieniIntermediarioPersonaFisica\r\n : getOttieniIntermediarioPersonaGiuridica)(studioSelezionato, codiceFiscale)\r\n .then((res) => {\r\n if (res.Success && res.Result) {\r\n // caso particolare partita iva editabile perchè non in anagrafica unica\r\n if (!res.Result.PartitaIva) {\r\n setPartitaIvaEditabile(true);\r\n } else {\r\n setPartitaIvaEditabile(false);\r\n }\r\n\r\n // Esiste l'anagrafica e valorizzo i dati\r\n const datiAnagrafici = {\r\n // Intermediario\r\n IdIntermediario: res.Result.IdIntermediario,\r\n\r\n // Anagrafica\r\n IdAnagrafica: res.Result.IdAnagrafica,\r\n CodiceFiscale: res.Result.CodiceFiscale,\r\n PartitaIva: tipologia === TIPO_PERSONA.PERSONA_GIURIDICA ? (res.Result.PartitaIva || res.Result.CodiceFiscale) : res.Result.PartitaIva,\r\n Cognome: res.Result.Cognome,\r\n Nome: res.Result.Nome,\r\n Sesso: res.Result.Sesso,\r\n DataDiNascita: res.Result.DataDiNascita,\r\n IdLuogoDiNascita: res.Result.IdLuogoDiNascita,\r\n RagioneSociale: res.Result.RagioneSociale,\r\n IdNaturaGiuridica: res.Result.IdNaturaGiuridica,\r\n NaturaGiuridica: res.Result.NaturaGiuridica,\r\n };\r\n\r\n // caso particolare data di nascita editabile perchè non in anagrafica unica\r\n if (res.Result.DataDiNascita === '0001-01-01T00:00:00Z' || !res.Result.DataDiNascita) {\r\n getOttieniDatiDaCodiceFiscale(codiceFiscale)\r\n .then((response) => {\r\n if (response.Success) {\r\n datiAnagrafici.Sesso = response.Result.Sesso;\r\n datiAnagrafici.DataDiNascita = response.Result.DataDiNascita;\r\n datiAnagrafici.IdLuogoDiNascita = response.Result.IdCodiceComuneDiNascita;\r\n }\r\n\r\n setDatiAnagraficiEditabili(false);\r\n recuperaResidenzaOSedeLegale(res.Result.IdAnagrafica, datiAnagrafici);\r\n }).catch((err) => {\r\n Log.error(err);\r\n });\r\n setDataDiNascitaEditabile(true);\r\n } else {\r\n setDataDiNascitaEditabile(false);\r\n setDatiAnagraficiEditabili(false);\r\n recuperaResidenzaOSedeLegale(res.Result.IdAnagrafica, datiAnagrafici);\r\n }\r\n } else {\r\n getOttieniDatiDaCodiceFiscale(codiceFiscale)\r\n .then((response) => {\r\n if (response.Success) {\r\n presetForm({\r\n // Intermediario\r\n IdIntermediario: null,\r\n CodiceSIA: null,\r\n\r\n // Anagrafica\r\n IdAnagrafica: null,\r\n CodiceFiscale: codiceFiscale,\r\n PartitaIva: tipologia === TIPO_PERSONA.PERSONA_GIURIDICA ? codiceFiscale : null,\r\n Cognome: null,\r\n Nome: null,\r\n Sesso: response.Result.Sesso,\r\n DataDiNascita: response.Result.DataDiNascita,\r\n IdLuogoDiNascita: response.Result.IdCodiceComuneDiNascita,\r\n RagioneSociale: null,\r\n IdNaturaGiuridica: null,\r\n NaturaGiuridica: null,\r\n });\r\n } else {\r\n presetForm({\r\n // Intermediario\r\n IdIntermediario: null,\r\n CodiceSIA: null,\r\n\r\n // Anagrafica\r\n IdAnagrafica: null,\r\n CodiceFiscale: codiceFiscale,\r\n PartitaIva: tipologia === TIPO_PERSONA.PERSONA_GIURIDICA ? codiceFiscale : null,\r\n Cognome: null,\r\n Nome: null,\r\n Sesso: null,\r\n DataDiNascita: null,\r\n IdLuogoDiNascita: null,\r\n RagioneSociale: null,\r\n IdNaturaGiuridica: null,\r\n NaturaGiuridica: null,\r\n });\r\n }\r\n }).catch((err) => {\r\n Log.error(err);\r\n });\r\n setLoading(false);\r\n setDatiAnagraficiEditabili(true);\r\n setDataDiNascitaEditabile(true);\r\n setPartitaIvaEditabile(true);\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n }, [tipologia, studioSelezionato, recuperaResidenzaOSedeLegale, presetForm]);\r\n\r\n const resetDati = useCallback(() => {\r\n setLoading(false);\r\n setIsFormValid(false);\r\n setSegnalazioni([]);\r\n setEsito(null);\r\n setFormData({});\r\n setDatiAnagraficiEditabili(true);\r\n setResidenzaSedeLegaleEditabili(true);\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (show) {\r\n resetDati();\r\n }\r\n }, [resetDati, show]);\r\n\r\n useEffect(() => {\r\n if (!show) {\r\n // reset data on close\r\n resetDati();\r\n }\r\n }, [resetDati, setFormData, show]);\r\n\r\n const onChangeAutocompletes = (campo, elemento) => {\r\n const autocompleteVals = [];\r\n\r\n if (campo === 'CodiceComune') {\r\n autocompleteVals.IdComune = elemento.Id;\r\n autocompleteVals.CodiceComuneDescrizioneComposta = elemento.DescrizioneComposta;\r\n autocompleteVals.ComuneDescrizione = elemento.Descrizione;\r\n autocompleteVals.ComuneCodiceProvincia = elemento.CodiceProvincia;\r\n autocompleteVals.Cap = elemento.Cap;\r\n }\r\n if (campo === 'Toponimo') {\r\n autocompleteVals.IdToponimo = elemento.Id_Toponimo;\r\n autocompleteVals.ToponimoDescrizione = elemento.Descrizione;\r\n }\r\n if (campo === 'NaturaGiuridica') {\r\n autocompleteVals.IdNaturaGiuridica = elemento.IdNaturaGiuridica;\r\n autocompleteVals.NaturaGiuridica = elemento.Descrizione;\r\n }\r\n\r\n presetForm(autocompleteVals);\r\n };\r\n\r\n const valutaEsistenzaAnagrafica = useCallback((event) => {\r\n if (formRef.current.errori.CodiceFiscale.length === 0) {\r\n if (event && event.target && (event.target.value.length === 11 || event.target.value.length === 16)\r\n && codiceFiscaleOld !== event.target.value) {\r\n esisteOttieniAnagrafica(event.target.value);\r\n }\r\n } else if (event && event.target && event.target.value) {\r\n setFormData({ CodiceFiscale: event.target.value });\r\n setDatiAnagraficiEditabili(true);\r\n setResidenzaSedeLegaleEditabili(true);\r\n }\r\n }, [codiceFiscaleOld, esisteOttieniAnagrafica]);\r\n\r\n const creaIntermediario = useCallback(() => {\r\n if (formData.IdIntermediario) {\r\n history.push(dettaglioIntermediarioUrl(formData.IdIntermediario));\r\n return;\r\n }\r\n\r\n setLoading(true);\r\n\r\n const oggettoCreazione = {\r\n IdStudio: studioSelezionato,\r\n CodiceUfficio: codiceUfficioSelezionato,\r\n Indirizzo: formData.IndirizzoDescrizione,\r\n ...formData,\r\n };\r\n\r\n (tipologia === TIPO_PERSONA.PERSONA_FISICA\r\n ? postCreaIntermediarioPersonaFisica : postCreaIntermediarioPersonaGiuridica)(oggettoCreazione)\r\n .then((res) => {\r\n if (res.Success && res.Result) {\r\n dispatch(setIntermediariAction([...intermediariStudio, {\r\n IdIntermediario: formData.IdIntermediario,\r\n IdStudio: studioSelezionato,\r\n IdAnagrafica: formData.IdAnagrafica,\r\n CodiceFiscale: formData.CodiceFiscale,\r\n PartitaIva: formData.PartitaIva,\r\n Denominazione: `${formData.Cognome} ${formData.Nome}`,\r\n }]));\r\n history.push(dettaglioIntermediarioUrl(res.Result));\r\n } else {\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n }, [codiceUfficioSelezionato, dispatch, formData, history, intermediariStudio, studioSelezionato, tipologia]);\r\n\r\n return (\r\n onClose(esito)}\r\n className=\"intermediari--modale-creazione\"\r\n initialPos={{ x: 'auto', y: window.innerHeight * 0.1 }}\r\n >\r\n \r\n Nuovo Intermediario\r\n \r\n \r\n setIsFormValid(validity)}\r\n >\r\n {!loading && segnalazioni.length > 0\r\n ? (\r\n \r\n
      \r\n {segnalazioni.map((segnalazione, idx) => (\r\n {segnalazione.msg}\r\n \r\n ))}\r\n
    \r\n
    \r\n )}\r\n type=\"alarm\"\r\n />\r\n )\r\n : (\r\n \r\n {segnalazioni && segnalazioni.length > 0 && (\r\n \r\n )}\r\n {tipologia === TIPO_PERSONA.PERSONA_FISICA ? (\r\n \r\n ) : (\r\n \r\n )}\r\n
    \r\n {tipologia === TIPO_PERSONA.PERSONA_FISICA ? (\r\n \r\n ) : (\r\n \r\n )}\r\n
    \r\n
    \r\n )}\r\n \r\n \r\n \r\n {segnalazioni.length === 0 ? (\r\n creaIntermediario()}\r\n emphasis={Button.Emphasis.HIGH}\r\n primary\r\n disabled={!isFormValid}\r\n running={loading}\r\n >\r\n {formData.IdIntermediario ? 'VAI A DETTAGLIO' : 'CREA'}\r\n \r\n ) : (\r\n setSegnalazioni([])}\r\n emphasis={Button.Emphasis.HIGH}\r\n primary\r\n disabled={!isFormValid}\r\n running={loading}\r\n >\r\n RIPROVA\r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nModaleCreazioneIntermediario.propTypes = {\r\n onClose: PropTypes.func.isRequired,\r\n show: PropTypes.bool.isRequired,\r\n tipologia: PropTypes.number.isRequired,\r\n};\r\n\r\nexport default ModaleCreazioneIntermediario;\r\n","import React, {\r\n useCallback, useEffect, useRef, useState,\r\n} from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { useHistory } from 'react-router';\r\nimport { setAppParamsAction } from 'framework-taskforce/actions/appParams';\r\nimport {\r\n Grid, Tabs, Badge, Heading,\r\n} from 'framework-ui-components';\r\nimport {\r\n Button, ButtonGroup, DropdownButton, Panel,\r\n} from 'framework-ui-components/Components/V2';\r\nimport useDebouncedFunc from 'framework-ui-components/Components/Hooks/useDebouncedFunc';\r\nimport AddIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/AddIcon';\r\nimport ToolbarSpecifica from './ToolbarSpecifica';\r\nimport PageWrapper from '../../components/PageWrapper';\r\nimport TabellaIntermediari from './tabella/TabellaIntermediari';\r\nimport { TIPO_PERSONA } from '../../models/anagrafica';\r\nimport ModaleCreazioneIntermediario from './creazione/ModaleCreazioneIntermediario';\r\n\r\nconst Lista = () => {\r\n const dispatch = useDispatch();\r\n\r\n const filtroTextDefault = useSelector((store) => store.appParams.filtroText);\r\n const studioSelezionato = useSelector((store) => store.appParams.studioSelezionato);\r\n const appParamVisualizzazione = useSelector((store) => !!store.appParams.visualizzazione);\r\n const noToolbar = useSelector((store) => store.appParams.noToolbar);\r\n const withNoSidebar = useSelector((store) => store.appParams.withNoSidebar);\r\n\r\n const [creaIntermediario, setCreaIntermediario] = useState({ aperto: false, tipologiaAnagrafica: TIPO_PERSONA.PERSONA_FISICA });\r\n const [creazioneInCorso, setCreazioneInCorso] = useState(false);\r\n\r\n const updateFiltroText = useCallback((testoNuovo) => {\r\n dispatch(setAppParamsAction({ filtroText: testoNuovo }));\r\n }, [dispatch]);\r\n\r\n const tabellaIntermediariRef = useRef();\r\n\r\n const aperturaModaleCreazioneAnagrafica = useCallback((tipologiaAnagrafica) => {\r\n setCreaIntermediario({ aperto: true, tipologiaAnagrafica });\r\n setCreazioneInCorso(true);\r\n }, []);\r\n\r\n const chiusuraModaleCreazioneIntermediario = useCallback((successo, codice, sezione, tipo, importo, dataScadenza) => {\r\n setCreaIntermediario({ aperto: false, tipologiaAnagrafica: TIPO_PERSONA.PERSONA_FISICA });\r\n setCreazioneInCorso(false);\r\n if (successo) {\r\n tabellaIntermediariRef.current.refreshTabella();\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n dispatch(setAppParamsAction({ sidebarSelected: '0', scartate: null, inPresentazione: null }));\r\n });\r\n\r\n return (\r\n \r\n )}\r\n noSidebar={withNoSidebar}\r\n >\r\n
    \r\n
    \r\n \r\n \r\n \r\n Intermediari\r\n \r\n \r\n \r\n \r\n \r\n Crea intermediario\r\n \r\n aperturaModaleCreazioneAnagrafica(TIPO_PERSONA.PERSONA_FISICA)}\r\n running={creazioneInCorso}\r\n >\r\n Persona fisica\r\n \r\n aperturaModaleCreazioneAnagrafica(TIPO_PERSONA.PERSONA_GIURIDICA)}\r\n running={creazioneInCorso}\r\n >\r\n Persona giuridica\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n  \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n );\r\n};\r\n\r\nexport default Lista;\r\n","import { AuthorizedApp } from 'framework-taskforce';\r\nimport React from 'react';\r\nimport ContenutoPaginaDiSospensione from '../ContenutoPaginaDiSospensione';\r\nimport ListaIntermediari from '../areas/intermediari/ListaIntermediari';\r\nimport { authorizedServices } from '../models/f24';\r\n\r\nconst ListaIntermediariRoute = () => (\r\n )}\r\n >\r\n \r\n \r\n);\r\n\r\nListaIntermediariRoute.defaultProps = {\r\n};\r\n\r\nListaIntermediariRoute.propTypes = {\r\n};\r\n\r\nexport default ListaIntermediariRoute;\r\n","import React, {\r\n useCallback, useEffect, useRef, useState,\r\n} from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { useHistory } from 'react-router';\r\nimport { setAppParamsAction } from 'framework-taskforce/actions/appParams';\r\nimport {\r\n Grid, Tabs, Badge, Heading,\r\n} from 'framework-ui-components';\r\nimport {\r\n Button, ButtonGroup, DropdownButton,\r\n} from 'framework-ui-components/Components/V2';\r\nimport AddIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/AddIcon';\r\nimport ToolbarSpecifica from '../intermediari/ToolbarSpecifica';\r\nimport PageWrapper from '../../components/PageWrapper';\r\nimport TabellaIntermediari from '../intermediari/tabella/TabellaIntermediari';\r\nimport { TIPO_PERSONA } from '../../models/anagrafica';\r\n\r\nconst ListaIntermediariBackoffice = () => {\r\n const dispatch = useDispatch();\r\n\r\n const filtroTextDefault = useSelector((store) => store.appParams.filtroText);\r\n const studioSelezionato = useSelector((store) => store.appParams.studioSelezionato);\r\n const appParamVisualizzazione = useSelector((store) => !!store.appParams.visualizzazione);\r\n const codiceUfficioOperatore = useSelector((store) => store.appParams.codiceUfficioOperatore);\r\n const studioOperatore = useSelector((store) => store.appParams.studioOperatore);\r\n const fromPluginWithNoSidebar = useSelector((store) => store.appParams.fromPluginWithNoSidebar);\r\n const noToolbar = useSelector((store) => store.appParams.noToolbar);\r\n\r\n const [creaIntermediario, setCreaIntermediario] = useState({ aperto: false, tipologiaAnagrafica: TIPO_PERSONA.PERSONA_FISICA });\r\n const [creazioneInCorso, setCreazioneInCorso] = useState(false);\r\n\r\n const updateFiltroText = useCallback((testoNuovo) => {\r\n dispatch(setAppParamsAction({ filtroText: testoNuovo }));\r\n }, [dispatch]);\r\n\r\n const tabellaIntermediariRef = useRef();\r\n\r\n const aperturaModaleCreazioneAnagrafica = useCallback((tipologiaAnagrafica) => {\r\n setCreaIntermediario({ aperto: true, tipologiaAnagrafica });\r\n setCreazioneInCorso(true);\r\n }, []);\r\n\r\n const chiusuraModaleCreazioneIntermediario = useCallback((successo, codice, sezione, tipo, importo, dataScadenza) => {\r\n setCreaIntermediario({ aperto: false, tipologiaAnagrafica: TIPO_PERSONA.PERSONA_FISICA });\r\n setCreazioneInCorso(false);\r\n if (successo) {\r\n tabellaIntermediariRef.current.refreshTabella();\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n dispatch(setAppParamsAction({ sidebarSelected: '0' }));\r\n });\r\n\r\n return (\r\n \r\n )}\r\n >\r\n
    \r\n
    \r\n \r\n \r\n \r\n Intermediari\r\n \r\n \r\n \r\n \r\n \r\n Crea intermediario\r\n \r\n aperturaModaleCreazioneAnagrafica(TIPO_PERSONA.PERSONA_FISICA)}\r\n running={creazioneInCorso}\r\n >\r\n Persona fisica\r\n \r\n aperturaModaleCreazioneAnagrafica(TIPO_PERSONA.PERSONA_GIURIDICA)}\r\n running={creazioneInCorso}\r\n >\r\n Persona giuridica\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n  \r\n \r\n \r\n \r\n {studioOperatore && appParamVisualizzazione && (\r\n \r\n )}\r\n {!studioOperatore && appParamVisualizzazione && (\r\n
    Serve prima inserire un codice ufficio in lista contribuenti
    \r\n )}\r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default ListaIntermediariBackoffice;\r\n","import { AuthorizedApp } from 'framework-taskforce';\r\nimport React from 'react';\r\nimport ContenutoPaginaDiSospensione from '../ContenutoPaginaDiSospensione';\r\nimport ListaIntermediariBackoffice from '../areas/backoffice/ListaIntermediariBackoffice';\r\nimport { authorizedServices } from '../models/f24';\r\n\r\nconst ListaIntermediariBackofficeRoute = () => (\r\n )}\r\n >\r\n \r\n \r\n);\r\n\r\nListaIntermediariBackofficeRoute.defaultProps = {\r\n};\r\n\r\nListaIntermediariBackofficeRoute.propTypes = {\r\n};\r\n\r\nexport default ListaIntermediariBackofficeRoute;\r\n","import React, { useCallback } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { Confirm, Heading } from 'framework-ui-components';\r\nimport { Button, ButtonGroup } from 'framework-ui-components/Components/V2';\r\nimport EditIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/EditIcon';\r\nimport TemplateGrid from '../../../../components/TemplateGrid/TemplateGrid';\r\n\r\nconst BottoniDatiAnagrafici = ({\r\n datiAnagraficaEditabili,\r\n setDatiAnagraficaEditabili,\r\n resolutionMAIN,\r\n apriModaleAnagrafica,\r\n modificaAnagrafica,\r\n}) => {\r\n const dispatch = useDispatch();\r\n const appParamVisualizzazione = useSelector((store) => !!store.appParams.visualizzazione);\r\n\r\n const onClickModifica = useCallback(() => {\r\n apriModaleAnagrafica(true);\r\n modificaAnagrafica();\r\n }, [apriModaleAnagrafica, modificaAnagrafica]);\r\n\r\n return (\r\n \r\n
    Dati anagrafici
    \r\n \r\n {!appParamVisualizzazione && (\r\n onClickModifica()}\r\n >\r\n \r\n Modifica anagrafica\r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nBottoniDatiAnagrafici.propTypes = {\r\n datiAnagraficaEditabili: PropTypes.bool.isRequired,\r\n setDatiAnagraficaEditabili: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default BottoniDatiAnagrafici;\r\n","import React, { useCallback } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n DatePicker, Input, Restriction, Validation,\r\n} from 'framework-ui-components';\r\nimport TemplateGrid from '../../../../components/TemplateGrid/TemplateGrid';\r\n\r\nconst DatiAnagraficiPersonaFisicaFields = ({\r\n datiAnagraficaEditabili, segnalazioni,\r\n}) => (\r\n 0 ? 'mt-16' : 'mt-15'}\r\n templates={[\r\n {\r\n cols: [\r\n { className: '', width: '145px' },\r\n { className: 'ml-150', width: '145px' },\r\n { className: 'ml-150', width: '200px' },\r\n { className: 'ml-150', width: '200px' },\r\n ],\r\n rows: [{ className: '' }],\r\n },\r\n ]}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* Messo questo div per per sopperire alla mancaza di qualcosa tabbabile dopo l'autocomplete (animazione di show volutamente lenta) */}\r\n {/* */}\r\n \r\n);\r\n\r\nDatiAnagraficiPersonaFisicaFields.defaultProps = {\r\n segnalazioni: [],\r\n};\r\n\r\nDatiAnagraficiPersonaFisicaFields.propTypes = {\r\n datiAnagraficaEditabili: PropTypes.bool.isRequired,\r\n segnalazioni: PropTypes.arrayOf(\r\n PropTypes.shape({\r\n type: PropTypes.number.isRequired,\r\n }),\r\n ),\r\n};\r\n\r\nexport default DatiAnagraficiPersonaFisicaFields;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Autocomplete,\r\n Input,\r\n Restriction,\r\n Validation,\r\n} from 'framework-ui-components';\r\nimport TemplateGrid from '../../../../components/TemplateGrid/TemplateGrid';\r\nimport { cercaNatureGiuridiche } from '../../../../apis/anagrafiche';\r\n\r\nconst DatiAnagraficiPersonaGiuridicaFields = ({\r\n datiAnagraficaEditabili, segnalazioni, presetForm,\r\n}) => (\r\n \r\n 0 ? 'mt-16' : 'mt-15'}\r\n templates={[\r\n {\r\n cols: [\r\n { className: '', width: '145px' },\r\n { className: 'ml-150', width: '145px' },\r\n { className: 'ml-150', width: '400px' },\r\n ],\r\n rows: [{ className: '' }],\r\n },\r\n ]}\r\n >\r\n \r\n \r\n \r\n\r\n \r\n 0 ? 'mt-16' : 'mt-15'}\r\n templates={[\r\n {\r\n cols: [\r\n { className: '', width: '145px' },\r\n { className: 'ml-150', width: '400px' },\r\n ],\r\n rows: [{ className: '' }],\r\n },\r\n ]}\r\n >\r\n {\r\n presetForm({\r\n IdNaturaGiuridica: val.IdNaturaGiuridica,\r\n NaturaGiuridica: val.Descrizione,\r\n });\r\n }}\r\n validations={[Validation.DefaultRules.required]}\r\n readOnly={!datiAnagraficaEditabili}\r\n />\r\n \r\n \r\n);\r\n\r\nDatiAnagraficiPersonaGiuridicaFields.defaultProps = {\r\n segnalazioni: [],\r\n};\r\n\r\nDatiAnagraficiPersonaGiuridicaFields.propTypes = {\r\n datiAnagraficaEditabili: PropTypes.bool.isRequired,\r\n segnalazioni: PropTypes.arrayOf(\r\n PropTypes.shape({\r\n type: PropTypes.number.isRequired,\r\n }),\r\n ),\r\n presetForm: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default DatiAnagraficiPersonaGiuridicaFields;\r\n","import React, { useCallback } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n DatePicker, EllipsisText, Heading, Input, Restriction, Validation,\r\n} from 'framework-ui-components';\r\nimport { Button, ButtonGroup, Table } from 'framework-ui-components/Components/V2';\r\nimport AddIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/AddIcon';\r\nimport DeleteIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/DeleteIcon';\r\nimport EditIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/EditIcon';\r\nimport TemplateGrid from '../../../../components/TemplateGrid/TemplateGrid';\r\nimport { TIPO_PERSONA } from '../../../../models/anagrafica';\r\n\r\nconst SezioneIndirizzi = ({\r\n listaIndirizzi, resolutionMAIN, apriModaleIndirizzo, rimuoviRiga, modificaRiga, tipoPersona, abilitataModifica,\r\n}) => (\r\n
    \r\n \r\n
    Indirizzi
    \r\n \r\n {abilitataModifica && (\r\n apriModaleIndirizzo(true)}\r\n >\r\n \r\n Aggiungi indirizzo\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {listaIndirizzi && listaIndirizzi.map((indirizzo, idx) => (\r\n // eslint-disable-next-line react/no-array-index-key\r\n \r\n \r\n
    \r\n {indirizzo.DescrizioneTipoIndirizzo}\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n {indirizzo.Comune}\r\n
    \r\n
    \r\n \r\n \r\n {indirizzo.Provincia}\r\n \r\n \r\n \r\n {indirizzo.Cap}\r\n \r\n \r\n \r\n
    \r\n \r\n {`${indirizzo.Toponimo} ${indirizzo.Descrizione} ${indirizzo.NumeroCivico}`}\r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n {indirizzo.Frazione}\r\n
    \r\n
    \r\n \r\n \r\n {abilitataModifica && (\r\n
    \r\n \r\n {((`${tipoPersona}` === `${TIPO_PERSONA.PERSONA_FISICA}` && indirizzo.TipoIndirizzo !== 1)\r\n || (`${tipoPersona}` === `${TIPO_PERSONA.PERSONA_GIURIDICA}` && indirizzo.TipoIndirizzo !== 2))\r\n && (\r\n
    \r\n rimuoviRiga(indirizzo.Id)}\r\n >\r\n \r\n \r\n
    \r\n )}\r\n
    \r\n )}\r\n
    \r\n \r\n
    \r\n ))}\r\n
    \r\n
    \r\n
    \r\n);\r\n\r\nSezioneIndirizzi.defaultProps = {\r\n listaIndirizzi: [],\r\n resolutionMAIN: true,\r\n abilitataModifica: true,\r\n};\r\n\r\nSezioneIndirizzi.propTypes = {\r\n listaIndirizzi: PropTypes.arrayOf(PropTypes.shape({\r\n\r\n })),\r\n resolutionMAIN: PropTypes.bool,\r\n apriModaleIndirizzo: PropTypes.func.isRequired,\r\n rimuoviRiga: PropTypes.func.isRequired,\r\n modificaRiga: PropTypes.func.isRequired,\r\n abilitataModifica: PropTypes.bool,\r\n};\r\n\r\nexport default SezioneIndirizzi;\r\n","import React, { useCallback } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Heading,\r\n} from 'framework-ui-components';\r\nimport { Button, ButtonGroup, Table } from 'framework-ui-components/Components/V2';\r\nimport DoneIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/DoneIcon';\r\nimport AddIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/AddIcon';\r\nimport EditIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/EditIcon';\r\nimport DeleteIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/DeleteIcon';\r\nimport TemplateGrid from '../../../../components/TemplateGrid/TemplateGrid';\r\n\r\nconst SezioneRecapiti = ({\r\n listaRecapiti, resolutionMain, apriModaleRecapito, rimuoviRiga, modificaRiga, abilitataModifica,\r\n}) => (\r\n
    \r\n \r\n
    Recapiti
    \r\n \r\n {abilitataModifica && (\r\n apriModaleRecapito(true)}\r\n >\r\n \r\n Aggiungi recapito\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {listaRecapiti && listaRecapiti.length !== 0 ? (\r\n listaRecapiti.map((recapito, idx) => (\r\n // eslint-disable-next-line react/no-array-index-key\r\n \r\n \r\n {recapito.Telefono}\r\n \r\n \r\n \r\n {recapito.Cellulare}\r\n \r\n \r\n \r\n {recapito.Fax}\r\n \r\n \r\n \r\n {recapito.Email}\r\n \r\n \r\n \r\n {recapito.Predefinito && }\r\n \r\n \r\n \r\n {abilitataModifica && (\r\n
    \r\n \r\n
    \r\n rimuoviRiga(recapito.Id)}\r\n >\r\n \r\n \r\n
    \r\n
    \r\n )}\r\n
    \r\n \r\n
    \r\n )))\r\n : (\r\n \r\n \r\n -\r\n \r\n \r\n \r\n -\r\n \r\n \r\n \r\n -\r\n \r\n \r\n \r\n -\r\n \r\n \r\n \r\n -\r\n \r\n \r\n \r\n \r\n \r\n ) }\r\n
    \r\n \r\n
    \r\n);\r\n\r\nSezioneRecapiti.defaultProps = {\r\n listaRecapiti: [],\r\n resolutionMain: true,\r\n};\r\n\r\nSezioneRecapiti.propTypes = {\r\n listaRecapiti: PropTypes.arrayOf(PropTypes.shape({\r\n\r\n })),\r\n resolutionMain: PropTypes.bool,\r\n};\r\n\r\nexport default SezioneRecapiti;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n EllipsisText,\r\n} from 'framework-ui-components';\r\nimport { Button, ButtonGroup, Table } from 'framework-ui-components/Components/V2';\r\nimport AddIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/AddIcon';\r\nimport EditIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/EditIcon';\r\nimport DeleteIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/DeleteIcon';\r\nimport DoneIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/DoneIcon';\r\nimport TemplateGrid from '../../../../components/TemplateGrid/TemplateGrid';\r\n\r\nconst SezioneContiCorrente = ({\r\n listaContiCorrente, apriModaleContoCorrente, rimuoviRiga, modificaRiga, resolutionMain, abilitataModifica,\r\n}) => (\r\n
    \r\n \r\n
    Conti correnti
    \r\n \r\n {abilitataModifica && (\r\n {\r\n apriModaleContoCorrente(true);\r\n modificaRiga({ contoCorrentePredefinito: listaContiCorrente.find((conto) => conto.Predefinito) });\r\n }}\r\n >\r\n \r\n Aggiungi conto corrente\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {listaContiCorrente && listaContiCorrente.length !== 0 ? (\r\n listaContiCorrente.map((contoCorrente, idx) => (\r\n // eslint-disable-next-line react/no-array-index-key\r\n \r\n \r\n
    \r\n {contoCorrente.DescrizioneSede}\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n {contoCorrente.DescrizioneFiliale}\r\n
    \r\n
    \r\n \r\n \r\n {contoCorrente.Iban}\r\n \r\n \r\n \r\n {contoCorrente.Predefinito && }\r\n \r\n \r\n \r\n \r\n {abilitataModifica && (\r\n
    \r\n {\r\n apriModaleContoCorrente(true);\r\n modificaRiga({ ...contoCorrente, contoCorrentePredefinito: listaContiCorrente.find((conto) => conto.Predefinito) });\r\n }}\r\n >\r\n \r\n \r\n
    \r\n rimuoviRiga(contoCorrente.Id)}\r\n >\r\n \r\n \r\n
    \r\n
    \r\n )}\r\n\r\n
    \r\n \r\n
    \r\n )))\r\n : (\r\n \r\n \r\n -\r\n \r\n \r\n \r\n -\r\n \r\n \r\n \r\n -\r\n \r\n \r\n \r\n \r\n \r\n \r\n ) }\r\n
    \r\n \r\n
    \r\n);\r\n\r\nSezioneContiCorrente.defaultProps = {\r\n listaContiCorrente: [],\r\n resolutionMain: true,\r\n abilitataModifica: true,\r\n};\r\n\r\nSezioneContiCorrente.propTypes = {\r\n listaContiCorrente: PropTypes.arrayOf(PropTypes.shape({\r\n\r\n })),\r\n resolutionMain: PropTypes.bool,\r\n abilitataModifica: PropTypes.bool,\r\n apriModaleContoCorrente: PropTypes.func.isRequired,\r\n rimuoviRiga: PropTypes.func.isRequired,\r\n modificaRiga: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default SezioneContiCorrente;\r\n","/* eslint-disable no-nested-ternary */\r\nimport React, {\r\n useState, useEffect, useCallback, useRef, useMemo,\r\n} from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Autocomplete,\r\n Form, Input, Restriction, Select, Validation,\r\n} from 'framework-ui-components';\r\nimport {\r\n Modal, Button, FeedbackPanel,\r\n} from 'framework-ui-components/Components/V2';\r\nimport { useSelector } from 'react-redux';\r\nimport Log, { logApiError } from 'framework-taskforce/utils/log';\r\nimport { isEmptyObject } from 'framework-taskforce/utils/object';\r\nimport { getSegnalazioneError } from 'framework-taskforce/models/segnalazioni';\r\nimport {\r\n cercaToponimi,\r\n cercaComuni,\r\n postAggiungiIndirizzo,\r\n postModificaIndirizzo,\r\n} from '../../../../../apis/anagrafiche';\r\nimport TemplateGrid from '../../../../../components/TemplateGrid/TemplateGrid';\r\nimport SegnalazioniViewer from '../../../../../components/custom/SegnalazioniViewer';\r\n\r\nconst ModaleIndirizzo = ({\r\n onClose,\r\n idAnagrafica,\r\n show,\r\n oggettoModifica,\r\n}) => {\r\n const studioSelezionato = useSelector((store) => store.appParams.studioSelezionato);\r\n\r\n const [loading, setLoading] = useState(false);\r\n const [isFormValid, setIsFormValid] = useState(false);\r\n const [esito, setEsito] = useState(null);\r\n const [formData, setFormData] = useState({ });\r\n const [segnalazioni, setSegnalazioni] = useState([]);\r\n\r\n const isModifica = useMemo(\r\n () => (!isEmptyObject(oggettoModifica)),\r\n [oggettoModifica],\r\n );\r\n\r\n const formRef = useRef();\r\n\r\n const presetForm = useCallback(({ FormErrors, ...datoModificato }) => {\r\n if (!formData || isEmptyObject(datoModificato)) return;\r\n const newStato = { ...formData, ...datoModificato };\r\n setFormData(newStato);\r\n }, [formData]);\r\n\r\n const resetDati = useCallback(() => {\r\n setLoading(false);\r\n setIsFormValid(false);\r\n setSegnalazioni([]);\r\n setEsito(null);\r\n setFormData({});\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (show) {\r\n resetDati();\r\n }\r\n }, [resetDati, show]);\r\n\r\n useEffect(() => {\r\n if (show && isModifica && isEmptyObject(formData)) {\r\n presetForm({\r\n TipoIndirizzo: oggettoModifica.TipoIndirizzo,\r\n CodiceComuneDescrizioneComposta: oggettoModifica.Comune,\r\n ComuneCodiceProvincia: oggettoModifica.Provincia,\r\n ToponimoDescrizione: oggettoModifica.Toponimo,\r\n Descrizione: oggettoModifica.Descrizione,\r\n NumeroCivico: oggettoModifica.NumeroCivico,\r\n Cap: oggettoModifica.Cap,\r\n Frazione: oggettoModifica.Frazione,\r\n });\r\n }\r\n });\r\n\r\n useEffect(() => {\r\n if (!show) {\r\n // reset data on close\r\n resetDati();\r\n }\r\n }, [resetDati, setFormData, show]);\r\n\r\n const onChangeAutocompletes = (campo, elemento) => {\r\n const autocompleteVals = [];\r\n\r\n if (campo === 'CodiceComune') {\r\n autocompleteVals.IdComune = elemento.Id;\r\n autocompleteVals.CodiceComuneDescrizioneComposta = elemento.DescrizioneComposta;\r\n autocompleteVals.ComuneDescrizione = elemento.Descrizione;\r\n autocompleteVals.ComuneCodiceProvincia = elemento.CodiceProvincia;\r\n autocompleteVals.Cap = elemento.Cap;\r\n }\r\n if (campo === 'Toponimo') {\r\n autocompleteVals.IdToponimo = elemento.Id_Toponimo;\r\n autocompleteVals.ToponimoDescrizione = elemento.Descrizione;\r\n }\r\n\r\n presetForm(autocompleteVals);\r\n };\r\n\r\n const modificaIndirizzo = useCallback(() => {\r\n const newOggettoModifica = {\r\n ...oggettoModifica,\r\n ...formData,\r\n };\r\n newOggettoModifica.IdIndirizzo = newOggettoModifica.Id;\r\n newOggettoModifica.IdTipoIndirizzo = newOggettoModifica.TipoIndirizzo;\r\n postModificaIndirizzo(newOggettoModifica)\r\n .then((res) => {\r\n if (res.Success) {\r\n onClose(true);\r\n } else {\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n }, [formData, oggettoModifica, onClose]);\r\n\r\n const aggiungiIndirizzo = useCallback(() => {\r\n const oggettoCreazione = {\r\n IdStudio: studioSelezionato,\r\n IdAnagrafica: idAnagrafica,\r\n IdTipoIndirizzo: formData.TipoIndirizzo,\r\n IdComune: formData.IdComune,\r\n IdToponimo: formData.IdToponimo,\r\n NumeroCivico: formData.NumeroCivico,\r\n Cap: formData.Cap,\r\n Frazione: formData.Frazione,\r\n Descrizione: formData.Descrizione,\r\n };\r\n\r\n postAggiungiIndirizzo(oggettoCreazione)\r\n .then((res) => {\r\n if (res.Success) {\r\n onClose(true);\r\n } else {\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n }, [formData, idAnagrafica, onClose, studioSelezionato]);\r\n\r\n return (\r\n onClose(esito)}\r\n className=\"contribuenti--modale-creazione\"\r\n initialPos={{ x: 'auto', y: window.innerHeight * 0.1 }}\r\n >\r\n \r\n {isModifica ? 'Modifica ' : 'Nuovo '} indirizzo\r\n \r\n \r\n setIsFormValid(validity)}\r\n >\r\n {!loading && segnalazioni.length > 0\r\n ? (\r\n \r\n
      \r\n {segnalazioni.map((segnalazione, idx) => (\r\n {segnalazione.msg}\r\n \r\n ))}\r\n
    \r\n
    \r\n )}\r\n type=\"alarm\"\r\n />\r\n )\r\n : (\r\n \r\n {segnalazioni && segnalazioni.length > 0 && (\r\n \r\n )}\r\n
    \r\n \r\n \r\n Residenza fiscale\r\n Sede legale\r\n Domicilio fiscale\r\n Sede attività\r\n \r\n \r\n \r\n onChangeAutocompletes('CodiceComune', val)}\r\n name=\"CodiceComuneDescrizioneComposta\"\r\n title=\"Comune\"\r\n url={cercaComuni()}\r\n renderProperty=\"DescrizioneComposta\"\r\n validations={[\r\n Validation.DefaultRules.required,\r\n ]}\r\n\r\n />\r\n \r\n \r\n \r\n onChangeAutocompletes('Toponimo', val)}\r\n name=\"ToponimoDescrizione\"\r\n title=\"Toponimo\"\r\n url={cercaToponimi()}\r\n renderProperty=\"Descrizione\"\r\n validations={[\r\n Validation.DefaultRules.required,\r\n ]}\r\n\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n )}\r\n \r\n \r\n \r\n {segnalazioni.length === 0 ? (\r\n { isModifica ? modificaIndirizzo() : aggiungiIndirizzo(); }}\r\n emphasis={Button.Emphasis.HIGH}\r\n primary\r\n disabled={!isFormValid}\r\n running={loading}\r\n >\r\n {isModifica ? 'MODIFICA ' : 'AGGIUNGI '}INDIRIZZO\r\n \r\n ) : (\r\n setSegnalazioni([])}\r\n emphasis={Button.Emphasis.HIGH}\r\n primary\r\n disabled={!isFormValid}\r\n running={loading}\r\n >\r\n RIPROVA\r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nModaleIndirizzo.defaultProps = {\r\n oggettoModifica: {},\r\n idAnagrafica: null,\r\n};\r\n\r\nModaleIndirizzo.propTypes = {\r\n onClose: PropTypes.func.isRequired,\r\n show: PropTypes.bool.isRequired,\r\n idAnagrafica: PropTypes.number,\r\n oggettoModifica: PropTypes.shape({\r\n TipoIndirizzo: PropTypes.string,\r\n Comune: PropTypes.string,\r\n Provincia: PropTypes.string,\r\n Toponimo: PropTypes.string,\r\n Descrizione: PropTypes.string,\r\n NumeroCivico: PropTypes.string,\r\n Cap: PropTypes.string,\r\n Frazione: PropTypes.string,\r\n }),\r\n};\r\n\r\nexport default ModaleIndirizzo;\r\n","/* eslint-disable no-nested-ternary */\r\nimport React, {\r\n useState, useEffect, useCallback, useRef, useMemo,\r\n} from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Form, Input, Restriction,\r\n} from 'framework-ui-components';\r\nimport {\r\n Modal, Button, FeedbackPanel,\r\n} from 'framework-ui-components/Components/V2';\r\nimport { useSelector } from 'react-redux';\r\nimport { logApiError } from 'framework-taskforce/utils/log';\r\nimport { isEmptyObject } from 'framework-taskforce/utils/object';\r\nimport { getSegnalazioneError } from 'framework-taskforce/models/segnalazioni';\r\nimport TemplateGrid from '../../../../../components/TemplateGrid/TemplateGrid';\r\nimport CheckboxTitle from '../../../../../components/custom/CheckboxTitle';\r\nimport SegnalazioniViewer from '../../../../../components/custom/SegnalazioniViewer';\r\nimport { postAggiungiRecapito, postModificaRecapito } from '../../../../../apis/anagrafiche';\r\n\r\nconst ModaleRecapito = ({\r\n onClose,\r\n idAnagrafica,\r\n show,\r\n oggettoModifica,\r\n}) => {\r\n const studioSelezionato = useSelector((store) => store.appParams.studioSelezionato);\r\n\r\n const [loading, setLoading] = useState(false);\r\n const [isFormValid, setIsFormValid] = useState(false);\r\n const [esito, setEsito] = useState(null);\r\n const [formData, setFormData] = useState({ });\r\n const [segnalazioni, setSegnalazioni] = useState([]);\r\n\r\n const isModifica = useMemo(\r\n () => (!isEmptyObject(oggettoModifica)),\r\n [oggettoModifica],\r\n );\r\n\r\n const formRef = useRef();\r\n\r\n const presetForm = useCallback(({ FormErrors, ...datoModificato }) => {\r\n if (!formData || isEmptyObject(datoModificato)) return;\r\n const newStato = { ...formData, ...datoModificato };\r\n setFormData(newStato);\r\n }, [formData]);\r\n\r\n const resetDati = useCallback(() => {\r\n setLoading(false);\r\n setIsFormValid(false);\r\n setSegnalazioni([]);\r\n setEsito(null);\r\n setFormData({});\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (show) {\r\n resetDati();\r\n }\r\n }, [resetDati, show]);\r\n\r\n useEffect(() => {\r\n if (show && isModifica && isEmptyObject(formData)) {\r\n presetForm({ ...oggettoModifica });\r\n }\r\n });\r\n\r\n useEffect(() => {\r\n if (!show) {\r\n // reset data on close\r\n resetDati();\r\n }\r\n }, [resetDati, setFormData, show]);\r\n\r\n const modificaRecapito = useCallback(() => {\r\n const newOggettoModifica = {\r\n ...formData,\r\n };\r\n newOggettoModifica.IdRecapito = newOggettoModifica.Id;\r\n\r\n postModificaRecapito(newOggettoModifica)\r\n .then((res) => {\r\n if (res.Success) {\r\n onClose(true);\r\n } else {\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n }, [formData, onClose]);\r\n\r\n const aggiungiRecapito = useCallback(() => {\r\n const oggettoCreazione = {\r\n IdStudio: studioSelezionato,\r\n IdAnagrafica: idAnagrafica,\r\n ...formData,\r\n };\r\n\r\n postAggiungiRecapito(oggettoCreazione)\r\n .then((res) => {\r\n if (res.Success) {\r\n onClose(true);\r\n } else {\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n }, [formData, idAnagrafica, onClose, studioSelezionato]);\r\n\r\n return (\r\n onClose(esito)}\r\n className=\"contribuenti--modale-creazione\"\r\n initialPos={{ x: 'auto', y: window.innerHeight * 0.1 }}\r\n >\r\n \r\n {isModifica ? 'Modifica ' : 'Nuovo '} recapito\r\n \r\n \r\n setIsFormValid(validity)}\r\n >\r\n {!loading && segnalazioni.length > 0\r\n ? (\r\n \r\n
      \r\n {segnalazioni.map((segnalazione, idx) => (\r\n {segnalazione.msg}\r\n \r\n ))}\r\n
    \r\n
    \r\n )}\r\n type=\"alarm\"\r\n />\r\n )\r\n : (\r\n \r\n {segnalazioni && segnalazioni.length > 0 && (\r\n \r\n )}\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n )}\r\n \r\n \r\n \r\n {segnalazioni.length === 0 ? (\r\n { isModifica ? modificaRecapito() : aggiungiRecapito(); }}\r\n emphasis={Button.Emphasis.HIGH}\r\n primary\r\n disabled={!isFormValid}\r\n running={loading}\r\n >\r\n {isModifica ? 'MODIFICA ' : 'AGGIUNGI '}RECAPITO\r\n \r\n ) : (\r\n setSegnalazioni([])}\r\n emphasis={Button.Emphasis.HIGH}\r\n primary\r\n disabled={!isFormValid}\r\n running={loading}\r\n >\r\n RIPROVA\r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nModaleRecapito.defaultProps = {\r\n oggettoModifica: {},\r\n idAnagrafica: null,\r\n};\r\n\r\nModaleRecapito.propTypes = {\r\n onClose: PropTypes.func.isRequired,\r\n show: PropTypes.bool.isRequired,\r\n idAnagrafica: PropTypes.number,\r\n oggettoModifica: PropTypes.shape({\r\n TipoRecapito: PropTypes.string,\r\n Comune: PropTypes.string,\r\n Provincia: PropTypes.string,\r\n Toponimo: PropTypes.string,\r\n Descrizione: PropTypes.string,\r\n NumeroCivico: PropTypes.string,\r\n Cap: PropTypes.string,\r\n Frazione: PropTypes.string,\r\n }),\r\n};\r\n\r\nexport default ModaleRecapito;\r\n","/* eslint-disable no-nested-ternary */\r\nimport React, {\r\n useState, useEffect, useCallback, useRef, useMemo,\r\n} from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Autocomplete,\r\n DatePicker, Form, Input, Restriction, Validation,\r\n} from 'framework-ui-components';\r\nimport {\r\n Modal, Button, FeedbackPanel,\r\n} from 'framework-ui-components/Components/V2';\r\nimport Log, { logApiError } from 'framework-taskforce/utils/log';\r\nimport { isEmptyObject } from 'framework-taskforce/utils/object';\r\nimport { getSegnalazioneError } from 'framework-taskforce/models/segnalazioni';\r\nimport { TIPO_PERSONA } from '../../../../../models/anagrafica';\r\nimport {\r\n cercaNatureGiuridiche,\r\n\r\n postModificaAnagraficaPersonaFisica,\r\n postModificaAnagraficaPersonaGiuridica,\r\n} from '../../../../../apis/anagrafiche';\r\nimport TemplateGrid from '../../../../../components/TemplateGrid/TemplateGrid';\r\nimport SegnalazioniViewer from '../../../../../components/custom/SegnalazioniViewer';\r\n\r\nconst ModaleDatiAnagrafica = ({\r\n onClose,\r\n idAnagrafica,\r\n show,\r\n oggettoModifica,\r\n tipoPersona,\r\n}) => {\r\n const [loading, setLoading] = useState(false);\r\n const [isFormValid, setIsFormValid] = useState(false);\r\n const [esito, setEsito] = useState(null);\r\n const [formData, setFormData] = useState({ });\r\n const [segnalazioni, setSegnalazioni] = useState([]);\r\n\r\n const isModifica = useMemo(\r\n () => (!isEmptyObject(oggettoModifica)),\r\n [oggettoModifica],\r\n );\r\n\r\n const formRef = useRef();\r\n\r\n const presetForm = useCallback(({ FormErrors, ...datoModificato }) => {\r\n if (!formData || isEmptyObject(datoModificato)) return;\r\n\r\n const newStato = { ...formData, ...datoModificato };\r\n\r\n setFormData(newStato);\r\n }, [formData]);\r\n\r\n const resetDati = useCallback(() => {\r\n setLoading(false);\r\n setIsFormValid(false);\r\n setSegnalazioni([]);\r\n setEsito(null);\r\n setFormData({});\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (show) {\r\n resetDati();\r\n }\r\n }, [resetDati, show]);\r\n\r\n useEffect(() => {\r\n if (show && isModifica && isEmptyObject(formData)) {\r\n presetForm({ ...oggettoModifica });\r\n }\r\n });\r\n\r\n useEffect(() => {\r\n if (!show) {\r\n // reset data on close\r\n resetDati();\r\n }\r\n }, [resetDati, setFormData, show]);\r\n\r\n const onChangeAutocompletes = (campo, elemento) => {\r\n const autocompleteVals = [];\r\n\r\n if (campo === 'CodiceComune') {\r\n autocompleteVals.IdComune = elemento.Id;\r\n autocompleteVals.CodiceComuneDescrizioneComposta = elemento.DescrizioneComposta;\r\n autocompleteVals.ComuneDescrizione = elemento.Descrizione;\r\n autocompleteVals.ComuneCodiceProvincia = elemento.CodiceProvincia;\r\n autocompleteVals.Cap = elemento.Cap;\r\n }\r\n if (campo === 'Toponimo') {\r\n autocompleteVals.IdToponimo = elemento.Id_Toponimo;\r\n autocompleteVals.ToponimoDescrizione = elemento.Descrizione;\r\n }\r\n if (campo === 'NaturaGiuridica') {\r\n autocompleteVals.IdNaturaGiuridica = elemento.IdNaturaGiuridica;\r\n autocompleteVals.NaturaGiuridica = elemento.Descrizione;\r\n }\r\n presetForm(autocompleteVals);\r\n };\r\n\r\n const modificaAnagrafica = useCallback(() => {\r\n const newOggettoModifica = {\r\n ...oggettoModifica,\r\n ...formData,\r\n };\r\n\r\n (tipoPersona === TIPO_PERSONA.PERSONA_FISICA\r\n ? postModificaAnagraficaPersonaFisica : postModificaAnagraficaPersonaGiuridica)(newOggettoModifica)\r\n .then((res) => {\r\n if (res.Success) {\r\n onClose(true);\r\n } else {\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n }, [formData, oggettoModifica, onClose, tipoPersona]);\r\n\r\n return (\r\n onClose(esito)}\r\n className=\"contribuenti--modale-creazione\"\r\n initialPos={{ x: 'auto', y: window.innerHeight * 0.1 }}\r\n >\r\n \r\n {isModifica ? 'Modifica ' : 'Nuovo '} anagrafica\r\n \r\n \r\n setIsFormValid(validity)}\r\n >\r\n {!loading && segnalazioni.length > 0\r\n ? (\r\n \r\n
      \r\n {segnalazioni.map((segnalazione, idx) => (\r\n {segnalazione.msg}\r\n \r\n ))}\r\n
    \r\n
    \r\n )}\r\n type=\"alarm\"\r\n />\r\n )\r\n : (\r\n \r\n {segnalazioni && segnalazioni.length > 0 && (\r\n \r\n )}\r\n {tipoPersona === TIPO_PERSONA.PERSONA_FISICA ? (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n\r\n \r\n onChangeAutocompletes('NaturaGiuridica', val)}\r\n validations={[Validation.DefaultRules.required]}\r\n />\r\n \r\n )}\r\n \r\n )}\r\n \r\n \r\n \r\n {segnalazioni.length === 0 ? (\r\n { isModifica && modificaAnagrafica(); }}\r\n emphasis={Button.Emphasis.HIGH}\r\n primary\r\n disabled={!isFormValid}\r\n running={loading}\r\n >\r\n {isModifica ? 'MODIFICA ' : 'AGGIUNGI '}Anagrafica\r\n \r\n ) : (\r\n setSegnalazioni([])}\r\n emphasis={Button.Emphasis.HIGH}\r\n primary\r\n disabled={!isFormValid}\r\n running={loading}\r\n >\r\n RIPROVA\r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nModaleDatiAnagrafica.defaultProps = {\r\n oggettoModifica: {},\r\n idAnagrafica: null,\r\n};\r\n\r\nModaleDatiAnagrafica.propTypes = {\r\n onClose: PropTypes.func.isRequired,\r\n show: PropTypes.bool.isRequired,\r\n idAnagrafica: PropTypes.number,\r\n tipoPersona: PropTypes.number.isRequired,\r\n oggettoModifica: PropTypes.shape({\r\n TipoAnagrafica: PropTypes.string,\r\n Comune: PropTypes.string,\r\n Provincia: PropTypes.string,\r\n Toponimo: PropTypes.string,\r\n Descrizione: PropTypes.string,\r\n NumeroCivico: PropTypes.string,\r\n Cap: PropTypes.string,\r\n Frazione: PropTypes.string,\r\n }),\r\n};\r\n\r\nexport default ModaleDatiAnagrafica;\r\n","import React, {\r\n useCallback, useEffect, useRef, useState,\r\n} from 'react';\r\nimport { useHistory, useParams } from 'react-router';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Form, Formatter, Heading,\r\n} from 'framework-ui-components';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { isEmptyObject } from 'framework-taskforce/utils/object';\r\nimport { logApiError } from 'framework-taskforce/utils/log';\r\nimport {\r\n Button,\r\n FeedbackModal,\r\n ViewportProvider,\r\n Table,\r\n} from 'framework-ui-components/Components/V2';\r\nimport { getSegnalazioneError } from 'framework-taskforce/models/segnalazioni';\r\nimport useViewport, {\r\n MAIN,\r\n} from 'framework-ui-components/Components/V2/Hooks/useViewport';\r\nimport { TIPO_PERSONA } from '../../../models/anagrafica';\r\nimport {\r\n getOttieniIntermediario,\r\n getOttieniIntermediarioPersonaFisica,\r\n getOttieniIntermediarioPersonaGiuridica,\r\n getOttieniDelegheAssociateIntermediario,\r\n} from '../../../apis/intermediari';\r\nimport TemplateGrid from '../../../components/TemplateGrid/TemplateGrid';\r\nimport ToolbarDiProva from '../ToolbarSpecifica';\r\nimport PageWrapper from '../../../components/PageWrapper';\r\nimport BottoniDatiAnagrafici from '../../anagrafiche/dettaglio/sezioneDatiAnagrafici/BottoniDatiAnagrafici';\r\nimport Modalizer from '../../../components/Modalizer';\r\nimport FormFooter from '../../../components/FormFooter';\r\nimport DatiAnagraficiPersonaFisicaFields from '../../anagrafiche/dettaglio/sezioneDatiAnagrafici/DatiAnagraficiPersonaFisicaFields';\r\nimport DatiAnagraficiPersonaGiuridicaFields from '../../anagrafiche/dettaglio/sezioneDatiAnagrafici/DatiAnagraficiPersonaGiuridicaFields';\r\nimport SezioneIndirizzi from '../../anagrafiche/dettaglio/sezioneIndirizzi/SezioneIndirizzi';\r\nimport SezioneRecapiti from '../../anagrafiche/dettaglio/sezioneRecapiti/SezioneRecapiti';\r\nimport SezioneContiCorrente from '../../anagrafiche/dettaglio/sezioneContiCorrente/SezioneContiCorrente';\r\nimport ModaleIndirizzo from '../../anagrafiche/dettaglio/sezioneIndirizzi/modificaIndirizzo/ModaleIndirizzo';\r\nimport ModaleRecapito from '../../anagrafiche/dettaglio/sezioneRecapiti/modaleRecapito/ModaleRecapito';\r\nimport ModaleConfermaEliminazione from '../../../components/ModaleConfermaEliminazione';\r\nimport ModaleDatiAnagrafica from '../../anagrafiche/dettaglio/sezioneDatiAnagrafici/modaleDatiAnagrafici/ModaleDatiAnagrafica';\r\nimport { delegaSoggettoFromIntermediarioUrl } from '../../../models/urls';\r\nimport SegnalazioniViewer from '../../../components/custom/SegnalazioniViewer';\r\nimport { setSoggettoAction } from '../../../actions/soggetto';\r\nimport ModaleContoCorrente from '../../../components/ModaleContoCorrente';\r\nimport {\r\n getOttieniContiCorrenti,\r\n postModificaAnagraficaPersonaFisica,\r\n postModificaAnagraficaPersonaGiuridica,\r\n getOttieniIndirizzi,\r\n getOttieniRecapiti,\r\n postEliminaRecapito,\r\n postEliminaContoCorrente,\r\n getOttieniRappresentanti,\r\n postEliminaRappresentante,\r\n postEliminaIndirizzo,\r\n} from '../../../apis/anagrafiche';\r\n\r\nconst PaginaDettaglioIntermediario = ({}) => {\r\n const { idIntermediario } = useParams();\r\n const dispatch = useDispatch();\r\n\r\n const studioSelezionato = useSelector(\r\n (store) => store.appParams.studioSelezionato,\r\n );\r\n const appParamVisualizzazione = useSelector((store) => !!store.appParams.visualizzazione);\r\n const codiceUfficioOperatore = useSelector((store) => store.appParams.codiceUfficioOperatore);\r\n const noToolbar = useSelector((store) => store.appParams.noToolbar);\r\n\r\n const isBackOffice = false;\r\n const history = useHistory();\r\n\r\n const [formData, setFormData] = useState({});\r\n const [loading, setLoading] = useState(true);\r\n\r\n const [isFormValid, setIsFormValid] = useState(false);\r\n const [datiAnagraficaEditabili, setDatiAnagraficaEditabili] = useState(false);\r\n const [listaIndirizzi, setListaIndirizzi] = useState(null);\r\n const [showModaleAnagrafica, setShowModaleAnagrafica] = useState(false);\r\n const [showModaleIndirizzo, setShowModaleIndirizzo] = useState(false);\r\n const [showModaleRecapito, setShowModaleRecapito] = useState(false);\r\n const [showModaleContoCorrente, setShowModaleContoCorrente] = useState(false);\r\n const [listaRecapiti, setListaRecapiti] = useState(null);\r\n const [listaContiCorrente, setListaContiCorrente] = useState(null);\r\n const [listaRappresentanti, setListaRappresentanti] = useState(null);\r\n const [oggettoModifica, setOggettoModifica] = useState({});\r\n const [confirmEliminaIndirizzo, setConfirmEliminaIndirizzo] = useState({\r\n show: false,\r\n indirizzoSelezionato: undefined,\r\n });\r\n const [confirmEliminaRecapito, setConfirmEliminaRecapito] = useState({\r\n show: false,\r\n recapitoSelezionato: undefined,\r\n });\r\n const [confirmEliminaContoCorrente, setConfirmEliminaContoCorrente] = useState({ show: false, contoCorrenteSelezionato: undefined });\r\n const [confirmEliminaRappresentante, setConfirmEliminaRappresentante] = useState({ show: false, rappresentanteSelezionato: undefined });\r\n\r\n const [segnalazioni, setSegnalazioni] = useState([]);\r\n const [segnalazioniFeedbackPanel, setSegnalazioniFeedbackPanel] = useState(\r\n [],\r\n );\r\n\r\n const [tipoPersona, setTipoPersona] = useState(null);\r\n const [codiceFiscale, setCodiceFiscale] = useState(null);\r\n const [denominazione, setDenominazione] = useState('');\r\n const [delegheAssociate, setDelegheAssociate] = useState([]);\r\n\r\n const formRef = useRef();\r\n\r\n const { resolution } = useViewport();\r\n const resolutionMAIN = resolution === MAIN;\r\n\r\n const presetForm = useCallback(\r\n ({ FormErrors, ...datoModificato }) => {\r\n if (!formData || isEmptyObject(datoModificato)) return;\r\n\r\n const newStato = { ...formData, ...datoModificato };\r\n\r\n setFormData(newStato);\r\n },\r\n [formData],\r\n );\r\n\r\n const ottieniAnagrafica = useCallback(\r\n () => {\r\n if (studioSelezionato && tipoPersona && codiceFiscale\r\n && formData && !formData.IdIntermediario) {\r\n setLoading(true);\r\n (tipoPersona === TIPO_PERSONA.PERSONA_FISICA\r\n ? getOttieniIntermediarioPersonaFisica\r\n : getOttieniIntermediarioPersonaGiuridica)(\r\n studioSelezionato,\r\n codiceFiscale,\r\n )\r\n .then((res) => {\r\n if (res.Success && res.Result) {\r\n dispatch(setSoggettoAction({\r\n idAnagrafica: res.Result.IdAnagrafica,\r\n idContribuente: res.Result.IdContribuente,\r\n codiceFiscale: res.Result.CodiceFiscale,\r\n nominativo: res.Result.Denominazione,\r\n tipoPersona: res.Result.TipoPersona,\r\n haPartitaIva: !!res.Result.PartitaIva,\r\n partitaIva: res.Result.PartitaIva,\r\n }));\r\n\r\n // Esiste l'anagrafica e valorizzo i dati\r\n presetForm({\r\n // Intermediario\r\n IdIntermediario: res.Result.IdIntermediario,\r\n\r\n // Anagrafica\r\n IdAnagrafica: res.Result.IdAnagrafica,\r\n CodiceFiscale: res.Result.CodiceFiscale,\r\n PartitaIva: res.Result.PartitaIva,\r\n Cognome: res.Result.Cognome,\r\n Nome: res.Result.Nome,\r\n Sesso: res.Result.Sesso,\r\n DataDiNascita: res.Result.DataDiNascita,\r\n IdLuogoDiNascita: res.Result.IdLuogoDiNascita,\r\n RagioneSociale: res.Result.RagioneSociale,\r\n IdNaturaGiuridica: res.Result.IdNaturaGiuridica,\r\n NaturaGiuridica: res.Result.NaturaGiuridica,\r\n DescrizioneLuogoDiNascita: res.Result.DescrizioneLuogoDiNascita,\r\n });\r\n } else {\r\n presetForm({\r\n // IdIntermediario\r\n IdIntermediario: null,\r\n\r\n // Anagrafica\r\n IdAnagrafica: null,\r\n CodiceFiscale: codiceFiscale,\r\n PartitaIva: null,\r\n Cognome: null,\r\n Nome: null,\r\n Sesso: null,\r\n DataDiNascita: null,\r\n IdLuogoDiNascita: null,\r\n RagioneSociale: null,\r\n IdNaturaGiuridica: null,\r\n NaturaGiuridica: null,\r\n DescrizioneLuogoDiNascita: null,\r\n });\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n }\r\n },\r\n [codiceFiscale, dispatch, formData, presetForm, studioSelezionato, tipoPersona],\r\n );\r\n\r\n useEffect(\r\n () => {\r\n ottieniAnagrafica();\r\n },\r\n [ottieniAnagrafica],\r\n );\r\n\r\n const ottieniIntermediario = useCallback(\r\n () => {\r\n getOttieniIntermediario(idIntermediario)\r\n .then((res) => {\r\n if (res.Success && res.Result) {\r\n setTipoPersona(res.Result.TipoPersona);\r\n setDenominazione(res.Result.Denominazione);\r\n setCodiceFiscale(res.Result.CodiceFiscale);\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n getOttieniDelegheAssociateIntermediario(idIntermediario)\r\n .then((res) => {\r\n if (res.Success && res.Result) {\r\n setDelegheAssociate(res.Result);\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n },\r\n [idIntermediario],\r\n );\r\n\r\n const chiusuraModaleAnagrafica = useCallback(\r\n (successo) => {\r\n setShowModaleAnagrafica(false);\r\n setOggettoModifica({});\r\n if (successo) {\r\n setFormData({});\r\n ottieniAnagrafica();\r\n }\r\n },\r\n [ottieniAnagrafica],\r\n );\r\n\r\n const chiusuraModaleIndirizzo = useCallback((successo) => {\r\n setShowModaleIndirizzo(false);\r\n setOggettoModifica({});\r\n if (successo) {\r\n setListaIndirizzi(null);\r\n }\r\n }, []);\r\n\r\n const chiusuraModaleRecapito = useCallback((successo) => {\r\n setShowModaleRecapito(false);\r\n setOggettoModifica({});\r\n if (successo) {\r\n setListaRecapiti(null);\r\n }\r\n }, []);\r\n\r\n const chiusuraModaleContoCorrente = useCallback((successo) => {\r\n setShowModaleContoCorrente(false);\r\n setOggettoModifica({});\r\n if (successo) {\r\n setListaContiCorrente(null);\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (studioSelezionato && idIntermediario && !formData.IdIntermediario) {\r\n ottieniIntermediario();\r\n }\r\n }, [idIntermediario, formData.IdIntermediario, studioSelezionato, ottieniIntermediario]);\r\n\r\n useEffect(() => {\r\n if (formData.IdAnagrafica && !listaIndirizzi) {\r\n getOttieniIndirizzi(formData.IdAnagrafica)\r\n .then((res) => {\r\n if (res.Success && res.Result) {\r\n setListaIndirizzi(res.Result);\r\n } else {\r\n setListaIndirizzi([]);\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n }\r\n }, [formData.IdAnagrafica, listaIndirizzi]);\r\n\r\n useEffect(() => {\r\n if (formData.IdAnagrafica && !listaRecapiti) {\r\n getOttieniRecapiti(formData.IdAnagrafica)\r\n .then((res) => {\r\n if (res.Success && res.Result) {\r\n setListaRecapiti(res.Result);\r\n } else {\r\n setListaRecapiti([]);\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n }\r\n }, [formData.IdAnagrafica, listaRecapiti]);\r\n\r\n useEffect(() => {\r\n if (formData.IdAnagrafica && !listaContiCorrente) {\r\n getOttieniContiCorrenti(formData.IdAnagrafica)\r\n .then((res) => {\r\n if (res.Success && res.Result) {\r\n setListaContiCorrente(res.Result);\r\n } else {\r\n setListaContiCorrente([]);\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n }\r\n }, [formData.IdAnagrafica, listaContiCorrente]);\r\n\r\n useEffect(() => {\r\n if (\r\n formData.IdAnagrafica\r\n && !listaRappresentanti\r\n && tipoPersona !== TIPO_PERSONA.PERSONA_FISICA\r\n ) {\r\n getOttieniRappresentanti(formData.IdAnagrafica)\r\n .then((res) => {\r\n if (res.Success && res.Result) {\r\n setListaRappresentanti(res.Result);\r\n } else {\r\n setListaRappresentanti([]);\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n }\r\n }, [\r\n formData.IdAnagrafica,\r\n listaContiCorrente,\r\n listaRappresentanti,\r\n tipoPersona,\r\n ]);\r\n\r\n const annullaEdit = useCallback(() => {\r\n ottieniAnagrafica();\r\n setSegnalazioni([]);\r\n setDatiAnagraficaEditabili(false);\r\n }, [ottieniAnagrafica]);\r\n\r\n const modificaAnagrafica = useCallback(() => {\r\n if (formData.IdAnagrafica) {\r\n const oggettoModificaAnagrafica = {\r\n IdAnagrafica: formData.IdAnagrafica,\r\n PartitaIva: formData.PartitaIva,\r\n Nome: formData.Nome,\r\n Cognome: formData.Cognome,\r\n Sesso: formData.Sesso,\r\n DataDiNascita: formData.DataDiNascita,\r\n IdLuogoDiNascita: formData.IdLuogoDiNascita,\r\n };\r\n (tipoPersona === TIPO_PERSONA.PERSONA_FISICA\r\n ? postModificaAnagraficaPersonaFisica\r\n : postModificaAnagraficaPersonaGiuridica)(oggettoModificaAnagrafica)\r\n .then((res) => {\r\n if (res.Success) {\r\n setSegnalazioni([]);\r\n setDatiAnagraficaEditabili(false);\r\n } else {\r\n setSegnalazioni(\r\n res.DetectedProblems.map((err) => getSegnalazioneError(err)),\r\n );\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n }\r\n }, [formData.Cognome,\r\n formData.DataDiNascita,\r\n formData.IdAnagrafica,\r\n formData.IdLuogoDiNascita,\r\n formData.Nome,\r\n formData.PartitaIva,\r\n formData.Sesso,\r\n tipoPersona]);\r\n\r\n const rimuoviIndirizzo = useCallback(\r\n (idIndirizzo) => {\r\n postEliminaIndirizzo({\r\n IdAnagrafica: formData.IdAnagrafica,\r\n IdIndirizzo: idIndirizzo,\r\n })\r\n .then((res) => {\r\n if (res.Success) {\r\n setSegnalazioni([]);\r\n getOttieniIndirizzi(formData.IdAnagrafica)\r\n .then((response) => {\r\n if (response.Success && response.Result) {\r\n setListaIndirizzi(response.Result);\r\n } else {\r\n setListaIndirizzi([]);\r\n }\r\n\r\n setConfirmEliminaIndirizzo({\r\n show: false,\r\n indirizzoSelezionato: undefined,\r\n });\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n } else {\r\n setConfirmEliminaIndirizzo({\r\n show: false,\r\n contoCorrenteSelezionato: undefined,\r\n });\r\n setSegnalazioniFeedbackPanel(\r\n res.DetectedProblems.map((err) => getSegnalazioneError(err)),\r\n );\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n },\r\n [formData.IdAnagrafica],\r\n );\r\n\r\n const rimuoviRecapito = useCallback(\r\n (idRecapito) => {\r\n postEliminaRecapito({\r\n IdAnagrafica: formData.IdAnagrafica,\r\n IdRecapito: idRecapito,\r\n })\r\n .then((res) => {\r\n if (res.Success) {\r\n setSegnalazioni([]);\r\n getOttieniRecapiti(formData.IdAnagrafica)\r\n .then((response) => {\r\n if (response.Success && response.Result) {\r\n setListaRecapiti(response.Result);\r\n } else {\r\n setListaRecapiti([]);\r\n }\r\n\r\n setConfirmEliminaRecapito({\r\n show: false,\r\n recapitoSelezionato: undefined,\r\n });\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n } else {\r\n setConfirmEliminaRecapito({\r\n show: false,\r\n contoCorrenteSelezionato: undefined,\r\n });\r\n setSegnalazioniFeedbackPanel(\r\n res.DetectedProblems.map((err) => getSegnalazioneError(err)),\r\n );\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n },\r\n [formData.IdAnagrafica],\r\n );\r\n\r\n const rimuoviContoCorrente = useCallback(\r\n (idContoCorrente) => {\r\n postEliminaContoCorrente({\r\n IdAnagrafica: formData.IdAnagrafica,\r\n IdContoCorrente: idContoCorrente,\r\n })\r\n .then((res) => {\r\n if (res.Success) {\r\n setSegnalazioni([]);\r\n getOttieniContiCorrenti(formData.IdAnagrafica)\r\n .then((response) => {\r\n if (response.Success && response.Result) {\r\n setListaContiCorrente(response.Result);\r\n } else {\r\n setListaContiCorrente([]);\r\n }\r\n\r\n setConfirmEliminaContoCorrente({\r\n show: false,\r\n contoCorrenteSelezionato: undefined,\r\n });\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n } else {\r\n setConfirmEliminaContoCorrente({\r\n show: false,\r\n contoCorrenteSelezionato: undefined,\r\n });\r\n setSegnalazioniFeedbackPanel(res.DetectedProblems);\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n },\r\n [formData.IdAnagrafica],\r\n );\r\n\r\n const rimuoviRappresentante = useCallback(\r\n (idRappresentante) => {\r\n postEliminaRappresentante({\r\n IdAnagrafica: formData.IdAnagrafica,\r\n IdRappresentante: idRappresentante,\r\n })\r\n .then((res) => {\r\n if (res.Success) {\r\n setSegnalazioni([]);\r\n getOttieniRappresentanti(formData.IdAnagrafica)\r\n .then((response) => {\r\n if (response.Success && response.Result) {\r\n setListaRappresentanti(response.Result);\r\n } else {\r\n setListaRappresentanti([]);\r\n }\r\n\r\n setConfirmEliminaRappresentante({\r\n show: false,\r\n rappresentanteSelezionato: undefined,\r\n });\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n } else {\r\n setConfirmEliminaRappresentante({\r\n show: false,\r\n rappresentanteSelezionato: undefined,\r\n });\r\n setSegnalazioniFeedbackPanel(\r\n res.DetectedProblems.map((err) => getSegnalazioneError(err)),\r\n );\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n },\r\n [formData.IdAnagrafica],\r\n );\r\n\r\n const mostraModaleRimuoviIndirizzo = useCallback((id) => {\r\n setConfirmEliminaIndirizzo({ show: true, indirizzoSelezionato: id });\r\n }, []);\r\n\r\n const mostraModaleRimuoviRecapito = useCallback((id) => {\r\n setConfirmEliminaRecapito({ show: true, recapitoSelezionato: id });\r\n }, []);\r\n\r\n const mostraModaleRimuoviContoCorrente = useCallback((id) => {\r\n setConfirmEliminaContoCorrente({\r\n show: true,\r\n contoCorrenteSelezionato: id,\r\n });\r\n }, []);\r\n\r\n const apriDelega = useCallback((idDelega) => {\r\n history.push(delegaSoggettoFromIntermediarioUrl(idIntermediario, idDelega, codiceUfficioOperatore));\r\n }, [codiceUfficioOperatore, history, idIntermediario]);\r\n\r\n return (\r\n \r\n \r\n )}\r\n >\r\n
    \r\n \r\n {/* TODO Modalizer non serve è stato rifattorizzato usando le modali */}\r\n \r\n \r\n
    \r\n ),\r\n normal: (\r\n setOggettoModifica(formData)}\r\n resolutionMAIN={resolutionMAIN}\r\n />\r\n ),\r\n }\r\n }\r\n >\r\n setIsFormValid(validity)}\r\n >\r\n \r\n {tipoPersona === TIPO_PERSONA.PERSONA_FISICA ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n
    \r\n \r\n {' '}\r\n {' '}\r\n
    \r\n \r\n \r\n {' '}\r\n {' '}\r\n
    \r\n {resolutionMAIN ? (\r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n ) : (\r\n \r\n \r\n \r\n {' '}\r\n {' '}\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n )}\r\n \r\n {' '}\r\n {' '}\r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {delegheAssociate && delegheAssociate.length !== 0\r\n && delegheAssociate.map((delega, idx) => (\r\n // eslint-disable-next-line react/no-array-index-key\r\n \r\n \r\n {delega.Contribuente}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n ))}\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n setConfirmEliminaIndirizzo({\r\n show: false,\r\n indirizzoSelezionato: undefined,\r\n })}\r\n elimina={() => rimuoviIndirizzo(confirmEliminaIndirizzo.indirizzoSelezionato)}\r\n nomeElementoEliminato=\"l'indirizzo\"\r\n />\r\n setConfirmEliminaRecapito({\r\n show: false,\r\n recapitoSelezionato: undefined,\r\n })}\r\n elimina={() => rimuoviRecapito(confirmEliminaRecapito.recapitoSelezionato)}\r\n nomeElementoEliminato=\"il recapito\"\r\n />\r\n setConfirmEliminaContoCorrente({\r\n show: false,\r\n contoCorrenteSelezionato: undefined,\r\n })}\r\n elimina={() => rimuoviContoCorrente(\r\n confirmEliminaContoCorrente.contoCorrenteSelezionato,\r\n )}\r\n nomeElementoEliminato=\"il conto corrente\"\r\n />\r\n setConfirmEliminaRappresentante({\r\n show: false,\r\n rappresentanteSelezionato: undefined,\r\n })}\r\n elimina={() => rimuoviRappresentante(\r\n confirmEliminaRappresentante.rappresentanteSelezionato,\r\n )}\r\n nomeElementoEliminato=\"il rappresentante\"\r\n />\r\n {segnalazioniFeedbackPanel && segnalazioniFeedbackPanel.length > 0 && (\r\n 0}\r\n title=\"Elemento non rimosso\"\r\n onClose={() => setSegnalazioniFeedbackPanel([])}\r\n buttonLabel=\"ok\"\r\n message={segnalazioniFeedbackPanel[0]}\r\n type=\"alarm\"\r\n />\r\n )}\r\n \r\n );\r\n};\r\n\r\nPaginaDettaglioIntermediario.defaultProps = {};\r\n\r\nPaginaDettaglioIntermediario.propTypes = {\r\n // idIntermediario: PropTypes.number.isRequired,\r\n // campiSpecifici: PropTypes.arrayOf(PropTypes.object).isRequired,\r\n // idCodiceTributo: PropTypes.number.isRequired,\r\n // periodoDa: PropTypes.string.isRequired,\r\n // periodoA: PropTypes.string.isRequired,\r\n // idEnte: PropTypes.number.isRequired,\r\n // annoRiferimentoDa: PropTypes.number,\r\n // erroreImportoLimitato: PropTypes.bool,\r\n // limiteUnico: PropTypes.bool.isRequired,\r\n};\r\n\r\nexport default PaginaDettaglioIntermediario;\r\n","import { AuthorizedApp } from 'framework-taskforce';\r\nimport React from 'react';\r\nimport ContenutoPaginaDiSospensione from '../ContenutoPaginaDiSospensione';\r\nimport PaginaDettaglioIntermediario from '../areas/intermediari/dettaglio/PaginaDettaglio';\r\nimport { authorizedServices } from '../models/f24';\r\n\r\nconst PaginaDettaglioIntermediarioRoute = () => (\r\n )}\r\n >\r\n \r\n \r\n);\r\n\r\nPaginaDettaglioIntermediarioRoute.defaultProps = {\r\n};\r\n\r\nPaginaDettaglioIntermediarioRoute.propTypes = {\r\n};\r\n\r\nexport default PaginaDettaglioIntermediarioRoute;\r\n","import React from 'react';\r\n\r\nimport DettaglioDelega from './DettaglioDelega';\r\n\r\nconst DettaglioDelegaIntermediario = () => (\r\n \r\n);\r\n\r\nexport default DettaglioDelegaIntermediario;\r\n","import { AuthorizedApp } from 'framework-taskforce';\r\nimport React from 'react';\r\nimport ContenutoPaginaDiSospensione from '../ContenutoPaginaDiSospensione';\r\nimport DettaglioDelegaIntermediario from '../areas/dettaglioDelega/DettaglioDelegaIntermediario';\r\nimport { authorizedServices } from '../models/f24';\r\n\r\nconst DettaglioDelegaIntermediarioRoute = () => (\r\n )}\r\n >\r\n \r\n \r\n);\r\n\r\nDettaglioDelegaIntermediarioRoute.defaultProps = {\r\n};\r\n\r\nDettaglioDelegaIntermediarioRoute.propTypes = {\r\n};\r\n\r\nexport default DettaglioDelegaIntermediarioRoute;\r\n","/* eslint-disable no-nested-ternary */\r\nimport React, {\r\n useCallback, useEffect, useState,\r\n} from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport {\r\n Spinner,\r\n} from 'framework-ui-components';\r\nimport {\r\n Button, FeedbackPanel,\r\n} from 'framework-ui-components/Components/V2';\r\nimport Log, { logApiError } from 'framework-taskforce/utils/log';\r\nimport FwPlugins from 'framework-plugins';\r\nimport FileDownloadIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/FileDownloadIcon';\r\nimport { getSegnalazioneError } from 'framework-taskforce/models/segnalazioni';\r\nimport { useHistory } from 'react-router';\r\nimport { PdfCondizioneUtilizzoPagoF24Link, pluginCompletaDatiContribuenteUrl } from '../../../models/urls';\r\nimport { getHaAccettatoCondizioniUtilizzo, postAccettaCondizioniUtilizzo } from '../../../apis/pagoF24';\r\nimport YoutubeEmbed from '../../../components/YoutubeEmbed';\r\nimport { STEP_PLUGIN_PAGOF24 } from '../../../models/f24';\r\n\r\nconst AccettazionePagoF24 = () => {\r\n const codiceUfficioSelezionato = useSelector((store) => store.appParams.ufficioSelezionato);\r\n const annoCampagnaServizioEsterno = useSelector((store) => store.appParams.annoCampagnaServizioEsterno);\r\n const tipoModelloDichiarativo = useSelector((store) => store.appParams.tipoModelloDichiarativo);\r\n const guidUtente = useSelector((store) => store.utente.UserId);\r\n const soggettoDaPlugin = useSelector((store) => store.appParams.soggettoDaPlugin);\r\n const soloAttivazione = useSelector((store) => store.appParams.soloAttivazione);\r\n\r\n const history = useHistory();\r\n\r\n const [loading, setLoading] = useState(true);\r\n const [servizioAccettato, setServizioAccettato] = useState(null);\r\n const [pdfScaricato, setPdfScaricato] = useState(false);\r\n const [segnalazioni, setSegnalazioni] = useState(false);\r\n const [primaVisualizzazione, setPrimaVisualizzazione] = useState(false); // bypassato il video per ora perchè non aggiornato\r\n\r\n useEffect(() => {\r\n if (annoCampagnaServizioEsterno && tipoModelloDichiarativo\r\n && servizioAccettato === null) {\r\n setLoading(true);\r\n FwPlugins.postMessageToParent('SERVIZIO_PAGOF24_FEEDBACK', STEP_PLUGIN_PAGOF24.FEEDBACK);\r\n\r\n getHaAccettatoCondizioniUtilizzo(\r\n // guidUtente,\r\n codiceUfficioSelezionato,\r\n tipoModelloDichiarativo,\r\n annoCampagnaServizioEsterno,\r\n )\r\n .then((res) => {\r\n if (res.Success) {\r\n FwPlugins.postMessageToParent(\r\n 'SERVIZIO_PAGOF24_FEEDBACK',\r\n res.Result && !soloAttivazione\r\n ? STEP_PLUGIN_PAGOF24.ANAGRAFICA : STEP_PLUGIN_PAGOF24.ACCETTAZIONE, // bypassato il video per ora perchè non aggiornato\r\n );\r\n setLoading(false);\r\n setServizioAccettato(res.Result);\r\n } else {\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n setLoading(false);\r\n }\r\n })\r\n .catch((e) => {\r\n setLoading(false);\r\n setSegnalazioni(getSegnalazioneError('Non è stato possibile recuperaro lo stato di accettazione del servizio'));\r\n logApiError(e);\r\n });\r\n }\r\n }, [annoCampagnaServizioEsterno, codiceUfficioSelezionato, guidUtente, servizioAccettato, tipoModelloDichiarativo]);\r\n\r\n const proseguiInvio = useCallback(() => {\r\n FwPlugins.postMessageToParent('SERVIZIO_PAGOF24_ACCETTATO', STEP_PLUGIN_PAGOF24.ANAGRAFICA);\r\n history.push(pluginCompletaDatiContribuenteUrl(soggettoDaPlugin.codiceFiscale, soggettoDaPlugin.tipoPersona));\r\n }, [history, soggettoDaPlugin]);\r\n\r\n useEffect(() => {\r\n if (servizioAccettato) {\r\n if (!soloAttivazione) {\r\n proseguiInvio();\r\n }\r\n }\r\n }, [soloAttivazione, proseguiInvio, servizioAccettato]);\r\n\r\n const accettaServizio = useCallback(() => {\r\n FwPlugins.postMessageToParent('SERVIZIO_PAGOF24_FEEDBACK', STEP_PLUGIN_PAGOF24.FEEDBACK);\r\n setLoading(true);\r\n postAccettaCondizioniUtilizzo({\r\n TipoModelloDichiarazione: tipoModelloDichiarativo,\r\n Campagna: annoCampagnaServizioEsterno,\r\n CodiceUfficio: codiceUfficioSelezionato,\r\n }).then((response) => {\r\n if (response.Success) {\r\n if (soloAttivazione) {\r\n setLoading(false);\r\n setServizioAccettato(true);\r\n FwPlugins.postMessageToParent('SERVIZIO_PAGOF24_FEEDBACK', STEP_PLUGIN_PAGOF24.FEEDBACK);\r\n } else {\r\n proseguiInvio();\r\n }\r\n } else {\r\n setSegnalazioni(response.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n }).catch((err) => {\r\n Log.error(err);\r\n setLoading(false);\r\n });\r\n }, [annoCampagnaServizioEsterno, codiceUfficioSelezionato, soloAttivazione, proseguiInvio, tipoModelloDichiarativo]);\r\n\r\n const scaricaPdfAccettazioneServizio = useCallback(() => {\r\n setLoading(true);\r\n setPdfScaricato(true);\r\n const link = document.createElement('a');\r\n link.href = PdfCondizioneUtilizzoPagoF24Link;\r\n link.target = '_blank';\r\n link.rel = 'noreferrer';\r\n link.setAttribute('download', '');\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n setLoading(false);\r\n }, [setPdfScaricato]);\r\n\r\n return (\r\n
    \r\n {loading ? (\r\n \r\n ) : !servizioAccettato ? (\r\n 0 && '100%',\r\n }}\r\n >\r\n {!loading && segnalazioni.length > 0\r\n ? (\r\n \r\n
      \r\n {segnalazioni.map((segnalazione, idx) => (\r\n {segnalazione.msg}\r\n \r\n ))}\r\n
    \r\n
    \r\n )}\r\n type=\"alarm\"\r\n />\r\n )\r\n : (\r\n
    \r\n {primaVisualizzazione ? (\r\n
    \r\n \r\n
    \r\n Con pagoF24 è facile far pagare la delega F24 ai contribuenti.\r\n Direttamente dal software, puoi inviare via e-mail ai tuoi clienti il link per il pagamento della delega.\r\n I tuoi clienti cliccano sul link e pagano, in sicurezza, tramite home banking o SPID.\r\n All'interno del software IMU, che si aggiorna in automatico, puoi monitorare lo status dei pagamenti dei contribuenti.\r\n
    \r\n
    \r\n ) : (\r\n
    \r\n {/*
    */}\r\n
    \r\n

    Il servizio "pagoF24" permette all'utente CGN di inviare, attraverso apposita procedura telematica online,\r\n deleghe in pagamento ai propri clienti per consentire a questi ultimi di avviarne il pagamento mediante lo strumento F24 CBI,\r\n nonché di ricevere notifiche circa l'avanzamento del relativo processo di pagamento.\r\n

    \r\n

    Il servizio è comprensivo di assistenza online gratuita e 24/7 per il tramite dell'Assistente CGN attraverso la consultazione\r\n delle guide presenti e la possibilità di inviare quesiti telematici al Team dedicato.\r\n

    \r\n

    Per conoscere le condizioni economiche e attivare il servizio scarica il PDF.

    \r\n
    \r\n
    \r\n scaricaPdfAccettazioneServizio()}\r\n primary={!pdfScaricato}\r\n >\r\n \r\n Scarica il PDF\r\n \r\n
    \r\n
    \r\n )}\r\n
    \r\n )}\r\n
    \r\n
    \r\n {!segnalazioni.length > 0 ? (\r\n { FwPlugins.postMessageToParent('SERVIZIO_PAGOF24_ACCETTATO', STEP_PLUGIN_PAGOF24.ACCETTAZIONE); setPrimaVisualizzazione(false); }\r\n : () => accettaServizio()}\r\n emphasis={Button.Emphasis.HIGH}\r\n primary\r\n disabled={!pdfScaricato && !primaVisualizzazione}\r\n running={loading}\r\n >\r\n {primaVisualizzazione ? 'VAI ALL\\'ATTIVAZIONE' : 'ATTIVA IL SERVIZIO'}\r\n \r\n\r\n ) : (\r\n { FwPlugins.postMessageToParent('SERVIZIO_PAGOF24_RIPROVA', STEP_PLUGIN_PAGOF24.DELEGHE); setSegnalazioni([]); }}\r\n emphasis={Button.Emphasis.HIGH}\r\n primary\r\n running={loading}\r\n >\r\n RIPROVA\r\n \r\n )}\r\n
    \r\n
    \r\n
    \r\n ) : (!soloAttivazione ? proseguiInvio() : (\r\n
    \r\n \r\n
    \r\n
    \r\n { FwPlugins.postMessageToParent('CHIUDI_PROCESSO_F24_SOLO_ATTIVAZIONE', false); }}\r\n emphasis={Button.Emphasis.HIGH}\r\n primary\r\n running={loading}\r\n >\r\n Ho capito\r\n \r\n
    \r\n
    \r\n
    \r\n ))}\r\n
    \r\n );\r\n};\r\n\r\nexport default AccettazionePagoF24;\r\n","import { AuthorizedApp } from 'framework-taskforce';\r\nimport React from 'react';\r\nimport ContenutoPaginaDiSospensione from '../ContenutoPaginaDiSospensione';\r\nimport AccettazionePagoF24 from '../areas/plugins/accettazionePagoF24/AccettazionePagoF24';\r\nimport { authorizedServices } from '../models/f24';\r\n\r\nconst AccettazionePagoF24Route = () => (\r\n )}\r\n >\r\n \r\n \r\n);\r\n\r\nAccettazionePagoF24Route.defaultProps = {\r\n};\r\n\r\nAccettazionePagoF24Route.propTypes = {\r\n};\r\n\r\nexport default AccettazionePagoF24Route;\r\n","/* eslint-disable no-nested-ternary */\r\nimport React, {\r\n useCallback, useEffect, useState, useRef,\r\n} from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport {\r\n Spinner, Form,\r\n} from 'framework-ui-components';\r\nimport {\r\n Button, FeedbackPanel, MiniPanel,\r\n} from 'framework-ui-components/Components/V2';\r\nimport Log, { logApiError } from 'framework-taskforce/utils/log';\r\nimport FwPlugins from 'framework-plugins';\r\nimport { getSegnalazioneError } from 'framework-taskforce/models/segnalazioni';\r\nimport { isEmptyObject } from 'framework-taskforce/utils/object';\r\nimport { useHistory, useParams } from 'react-router';\r\nimport {\r\n getOttieniContribuentePersonaFisica,\r\n getOttieniContribuentePersonaGiuridica,\r\n postCreaContribuentePersonaFisica,\r\n} from '../../../apis/anagraficaContribuente';\r\nimport SezioneResidenza from '../../listaContribuenti/creazioneContribuente/SezioneResidenza';\r\nimport { pluginDatiUtenteUfficioPagoF24Url } from '../../../models/urls';\r\nimport { setSoggettoAction } from '../../../actions/soggetto';\r\nimport { STEP_PLUGIN_PAGOF24 } from '../../../models/f24';\r\nimport {\r\n getOttieniDatiDaCodiceFiscale,\r\n getOttieniIndirizzoResidenzaFiscale,\r\n postAggiungiIndirizzo,\r\n} from '../../../apis/anagrafiche';\r\nimport { TIPO_INDIRIZZO, TIPO_PERSONA } from '../../../models/anagrafica';\r\nimport SezioneSedeLegale from '../../listaContribuenti/creazioneContribuente/SezioneSedeLegale';\r\n\r\nconst CreazioneContribuente = () => {\r\n const { codFisc, tipoPersona } = useParams();\r\n\r\n const codiceUfficioSelezionato = useSelector((store) => store.appParams.ufficioSelezionato);\r\n const studioSelezionato = useSelector((store) => store.appParams.studioSelezionato);\r\n const codiceFiscaleSoggettoDaPlugin = useSelector((store) => store.appParams.soggettoDaPlugin.codiceFiscale);\r\n const soggetto = useSelector((store) => store.soggetto);\r\n\r\n const dispatch = useDispatch();\r\n const [loading, setLoading] = useState(true);\r\n const [formData, setFormData] = useState({ });\r\n const [isFormValid, setIsFormValid] = useState(false);\r\n const [datiAnagraficiContribuente, setDatiAnagraficiContribuente] = useState(null);\r\n const [esisteResidenzaOSedeLegale, setEsisteResidenzaOSedeLegale] = useState(null);\r\n const [segnalazioni, setSegnalazioni] = useState(false);\r\n\r\n const formRef = useRef();\r\n const history = useHistory();\r\n\r\n const presetForm = useCallback(({ FormErrors, ...datoModificato }) => {\r\n if (!formData || isEmptyObject(datoModificato)) return;\r\n\r\n const newStato = { ...formData, ...datoModificato };\r\n\r\n setFormData(newStato);\r\n }, [formData]);\r\n\r\n const creaContribuente = useCallback((datiCreazione) => {\r\n FwPlugins.postMessageToParent('SERVIZIO_PAGOF24_FEEDBACK', STEP_PLUGIN_PAGOF24.FEEDBACK);\r\n setLoading(true);\r\n const oggettoCreazione = {\r\n IdStudio: studioSelezionato,\r\n CodiceUfficio: codiceUfficioSelezionato,\r\n Indirizzo: formData.IndirizzoDescrizione,\r\n ...datiCreazione,\r\n };\r\n\r\n postCreaContribuentePersonaFisica(oggettoCreazione)\r\n .then((res) => {\r\n if (res.Success) {\r\n getOttieniContribuentePersonaFisica(studioSelezionato, oggettoCreazione.CodiceFiscale)\r\n .then((response) => {\r\n if (res.Success && res.Result) {\r\n dispatch(setSoggettoAction({\r\n idAnagrafica: response.Result.IdAnagrafica,\r\n idContribuente: response.Result.IdContribuente,\r\n codiceFiscale: response.Result.CodiceFiscale,\r\n cognome: response.Result.Cognome,\r\n nome: response.Result.Nome,\r\n tipoPersona,\r\n // nominativo: oggettoCreazione.Cognome,\r\n }));\r\n setEsisteResidenzaOSedeLegale(true);\r\n } else {\r\n FwPlugins.postMessageToParent('SERVIZIO_PAGOF24_FEEDBACK', STEP_PLUGIN_PAGOF24.FEEDBACK);\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n } else {\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n }, [codiceUfficioSelezionato, dispatch, formData, studioSelezionato]);\r\n\r\n const aggiungiResidenzaFiscaleSedeLegale = useCallback((datiCreazione) => {\r\n FwPlugins.postMessageToParent('SERVIZIO_PAGOF24_FEEDBACK', STEP_PLUGIN_PAGOF24.FEEDBACK);\r\n setLoading(true);\r\n const oggettoCreazione = {\r\n IdStudio: studioSelezionato,\r\n CodiceUfficio: codiceUfficioSelezionato,\r\n IdTipoIndirizzo: soggetto.tipoPersona === TIPO_PERSONA.PERSONA_FISICA ? TIPO_INDIRIZZO.RESIDENZA_FISCALE : TIPO_INDIRIZZO.SEDE_LEGALE,\r\n descrizione: formData.IndirizzoDescrizione,\r\n ...datiCreazione,\r\n };\r\n\r\n postAggiungiIndirizzo(oggettoCreazione)\r\n .then((res) => {\r\n if (res.Success) {\r\n setEsisteResidenzaOSedeLegale(true);\r\n } else {\r\n FwPlugins.postMessageToParent('SERVIZIO_PAGOF24_FEEDBACK', STEP_PLUGIN_PAGOF24.FEEDBACK);\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n }, [codiceUfficioSelezionato, formData.IndirizzoDescrizione, soggetto, studioSelezionato]);\r\n\r\n const recuperaResidenzaOSedeLegale = useCallback((datiAnagrafici) => {\r\n if (datiAnagrafici.IdAnagrafica) {\r\n getOttieniIndirizzoResidenzaFiscale(datiAnagrafici.IdAnagrafica)\r\n .then((res) => {\r\n if (res.Success && res.Result) {\r\n setEsisteResidenzaOSedeLegale(!!res.Result);\r\n } else {\r\n setEsisteResidenzaOSedeLegale(false);\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n } else {\r\n setEsisteResidenzaOSedeLegale(false);\r\n\r\n setLoading(false);\r\n }\r\n }, []);\r\n\r\n const esisteOttieniAnagraficaPersonaFisica = useCallback((codiceFiscale, tipoPersonaParam = 1) => {\r\n FwPlugins.postMessageToParent('SERVIZIO_PAGOF24_FEEDBACK', STEP_PLUGIN_PAGOF24.ANAGRAFICA);\r\n setLoading(true);\r\n\r\n (tipoPersonaParam === TIPO_PERSONA.PERSONA_FISICA\r\n ? getOttieniContribuentePersonaFisica : getOttieniContribuentePersonaGiuridica)(studioSelezionato, codiceFiscale)\r\n .then((res) => {\r\n if (res.Success && res.Result) {\r\n const datiAnagrafici = {\r\n // Contribuente\r\n IdContribuente: res.Result.IdContribuente,\r\n CodiceSIA: res.Result.CodiceSIA,\r\n // Anagrafica\r\n IdAnagrafica: res.Result.IdAnagrafica,\r\n CodiceFiscale: res.Result.CodiceFiscale,\r\n PartitaIva: res.Result.PartitaIva,\r\n Cognome: res.Result.Cognome,\r\n Nome: res.Result.Nome,\r\n Sesso: res.Result.Sesso,\r\n DataDiNascita: res.Result.DataDiNascita,\r\n IdLuogoDiNascita: res.Result.IdLuogoDiNascita,\r\n RagioneSociale: res.Result.RagioneSociale,\r\n IdNaturaGiuridica: res.Result.IdNaturaGiuridica,\r\n NaturaGiuridica: res.Result.NaturaGiuridica,\r\n };\r\n\r\n // caso particolare data di nascita editabile perchè non in anagrafica unica\r\n if (res.Result.DataDiNascita === '0001-01-01T00:00:00Z' || !res.Result.DataDiNascita) {\r\n getOttieniDatiDaCodiceFiscale(codiceFiscale)\r\n .then((response) => {\r\n if (response.Success) {\r\n datiAnagrafici.Sesso = response.Result.Sesso;\r\n datiAnagrafici.DataDiNascita = response.Result.DataDiNascita;\r\n datiAnagrafici.IdLuogoDiNascita = response.Result.IdCodiceComuneDiNascita;\r\n\r\n setDatiAnagraficiContribuente(datiAnagrafici);\r\n dispatch(setSoggettoAction({\r\n idAnagrafica: datiAnagrafici.IdAnagrafica,\r\n idContribuente: datiAnagrafici.IdContribuente,\r\n codiceFiscale: datiAnagrafici.CodiceFiscale,\r\n cognome: datiAnagrafici.Cognome,\r\n nome: datiAnagrafici.Nome,\r\n tipoPersona: tipoPersonaParam,\r\n }));\r\n } else {\r\n Log.error('errore');\r\n }\r\n }).catch((err) => {\r\n Log.error(err);\r\n });\r\n } else {\r\n setDatiAnagraficiContribuente(datiAnagrafici);\r\n dispatch(setSoggettoAction({\r\n idAnagrafica: datiAnagrafici.IdAnagrafica,\r\n idContribuente: datiAnagrafici.IdContribuente,\r\n codiceFiscale: datiAnagrafici.CodiceFiscale,\r\n cognome: datiAnagrafici.Cognome,\r\n nome: datiAnagrafici.Nome,\r\n tipoPersona: tipoPersonaParam,\r\n }));\r\n }\r\n } else {\r\n alert(\"Aspetta c'è qualcosa che non va, Anagrafica non trovata in AnagraficaUnica\");\r\n setLoading(false);\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n }, [dispatch, studioSelezionato]);\r\n\r\n useEffect(() => {\r\n const codiceFiscale = codiceFiscaleSoggettoDaPlugin || codFisc;\r\n if (codiceFiscale\r\n && datiAnagraficiContribuente === null) {\r\n FwPlugins.postMessageToParent('SERVIZIO_PAGOF24_FEEDBACK', STEP_PLUGIN_PAGOF24.FEEDBACK);\r\n setLoading(true);\r\n esisteOttieniAnagraficaPersonaFisica(codiceFiscale, parseInt(tipoPersona, 10));\r\n }\r\n }, [codFisc, codiceFiscaleSoggettoDaPlugin, datiAnagraficiContribuente, esisteOttieniAnagraficaPersonaFisica, tipoPersona]);\r\n\r\n useEffect(() => {\r\n if (datiAnagraficiContribuente) {\r\n if (datiAnagraficiContribuente.IdContribuente) {\r\n recuperaResidenzaOSedeLegale(datiAnagraficiContribuente);\r\n } else {\r\n setLoading(false);\r\n setEsisteResidenzaOSedeLegale(false);\r\n }\r\n }\r\n }, [datiAnagraficiContribuente, recuperaResidenzaOSedeLegale]);\r\n\r\n const proseguiInvio = useCallback(() => {\r\n FwPlugins.postMessageToParent('SERVIZIO_PAGOF24_CONTRIBUENTE_PRESENTE', STEP_PLUGIN_PAGOF24.EMAIL);\r\n history.push(pluginDatiUtenteUfficioPagoF24Url(datiAnagraficiContribuente.IdAnagrafica));\r\n }, [datiAnagraficiContribuente, history]);\r\n\r\n useEffect(() => {\r\n if (esisteResidenzaOSedeLegale) {\r\n proseguiInvio();\r\n }\r\n }, [esisteResidenzaOSedeLegale, proseguiInvio]);\r\n\r\n const onChangeAutocompletes = (campo, elemento) => {\r\n const autocompleteVals = [];\r\n\r\n if (campo === 'CodiceComune') {\r\n autocompleteVals.IdComune = elemento.Id;\r\n autocompleteVals.CodiceComuneDescrizioneComposta = elemento.DescrizioneComposta;\r\n autocompleteVals.ComuneDescrizione = elemento.Descrizione;\r\n autocompleteVals.ComuneCodiceProvincia = elemento.CodiceProvincia;\r\n autocompleteVals.Cap = elemento.Cap;\r\n }\r\n if (campo === 'Toponimo') {\r\n autocompleteVals.IdToponimo = elemento.Id_Toponimo;\r\n autocompleteVals.ToponimoDescrizione = elemento.Descrizione;\r\n }\r\n if (campo === 'NaturaGiuridica') {\r\n autocompleteVals.IdNaturaGiuridica = elemento.IdNaturaGiuridica;\r\n autocompleteVals.NaturaGiuridica = elemento.Descrizione;\r\n }\r\n\r\n presetForm(autocompleteVals);\r\n };\r\n\r\n return (\r\n
    \r\n {loading ? (\r\n
    \r\n \r\n
      Sto impostando i dati...
    \r\n
    \r\n ) : (\r\n 0 && '100%',\r\n }}\r\n >\r\n {!loading && segnalazioni.length > 0\r\n ? (\r\n \r\n
      \r\n {segnalazioni.map((segnalazione, idx) => (\r\n {segnalazione.msg}\r\n \r\n ))}\r\n
    \r\n
    \r\n )}\r\n type=\"alarm\"\r\n />\r\n )\r\n : (\r\n
    \r\n
    \r\n Per creare la delega F24 servono prima alcune informazioni di {datiAnagraficiContribuente.Cognome} {datiAnagraficiContribuente.Nome}.\r\n
    \r\n {!esisteResidenzaOSedeLegale && (\r\n
    \r\n setIsFormValid(validity)}\r\n >\r\n {soggetto.tipoPersona === TIPO_PERSONA.PERSONA_FISICA ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n
    \r\n )}\r\n
    \r\n )}\r\n
    \r\n
    \r\n {!segnalazioni.length > 0 ? (\r\n (\r\n !datiAnagraficiContribuente.IdAnagrafica ? creaContribuente({ ...datiAnagraficiContribuente, ...formData }, !esisteResidenzaOSedeLegale)\r\n : aggiungiResidenzaFiscaleSedeLegale({ ...datiAnagraficiContribuente, ...formData })\r\n )}\r\n emphasis={Button.Emphasis.HIGH}\r\n primary\r\n disabled={!isFormValid}\r\n running={loading}\r\n >\r\n CONTINUA\r\n \r\n ) : (\r\n { FwPlugins.postMessageToParent('SERVIZIO_PAGOF24_RIPROVA', STEP_PLUGIN_PAGOF24.ANAGRAFICA); setSegnalazioni([]); }}\r\n emphasis={Button.Emphasis.HIGH}\r\n primary\r\n running={loading}\r\n >\r\n RIPROVA\r\n \r\n )}\r\n
    \r\n
    \r\n
    \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default CreazioneContribuente;\r\n","import { AuthorizedApp } from 'framework-taskforce';\r\nimport React from 'react';\r\nimport ContenutoPaginaDiSospensione from '../ContenutoPaginaDiSospensione';\r\nimport CreazioneContribuente from '../areas/plugins/creazioneContribuente/CreazioneContribuente';\r\nimport { authorizedServices } from '../models/f24';\r\n\r\nconst CreazioneContribuenteRoute = () => (\r\n )}\r\n >\r\n \r\n \r\n);\r\n\r\nCreazioneContribuenteRoute.defaultProps = {\r\n};\r\n\r\nCreazioneContribuenteRoute.propTypes = {\r\n};\r\n\r\nexport default CreazioneContribuenteRoute;\r\n","/* eslint-disable no-nested-ternary */\r\nimport React, {\r\n useCallback, useEffect, useState, useRef,\r\n} from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport {\r\n Spinner, Form,\r\n} from 'framework-ui-components';\r\nimport {\r\n Button, FeedbackPanel, MiniPanel,\r\n} from 'framework-ui-components/Components/V2';\r\nimport Log, { logApiError } from 'framework-taskforce/utils/log';\r\nimport FwPlugins from 'framework-plugins';\r\nimport { getSegnalazioneError } from 'framework-taskforce/models/segnalazioni';\r\nimport { isEmptyObject } from 'framework-taskforce/utils/object';\r\nimport { useHistory, useParams } from 'react-router';\r\nimport {\r\n getOttieniContribuentePersonaFisica,\r\n getOttieniContribuentePersonaGiuridica,\r\n postCreaContribuentePersonaFisica,\r\n} from '../../../apis/anagraficaContribuente';\r\nimport {\r\n getOttieniDatiDaCodiceFiscale,\r\n getOttieniIndirizzoResidenzaFiscale,\r\n getOttieniIndirizzoSedeLegale,\r\n postAggiungiIndirizzo,\r\n} from '../../../apis/anagrafiche';\r\nimport SezioneResidenza from '../../listaContribuenti/creazioneContribuente/SezioneResidenza';\r\nimport { pluginDatiUtenteUfficioCgnPosUrl } from '../../../models/urls';\r\nimport { setSoggettoAction } from '../../../actions/soggetto';\r\nimport { STEP_PLUGIN_PAGOF24 } from '../../../models/f24';\r\nimport { TIPO_INDIRIZZO, TIPO_PERSONA } from '../../../models/anagrafica';\r\nimport SezioneSedeLegale from '../../listaContribuenti/creazioneContribuente/SezioneSedeLegale';\r\n\r\nconst CreazioneContribuenteCgnPos = () => {\r\n const { codFisc, tipoPersona } = useParams();\r\n\r\n const codiceUfficioSelezionato = useSelector((store) => store.appParams.ufficioSelezionato);\r\n const studioSelezionato = useSelector((store) => store.appParams.studioSelezionato);\r\n const codiceFiscaleSoggettoDaPlugin = useSelector((store) => store.appParams.soggettoDaPlugin?.codiceFiscale);\r\n const soggetto = useSelector((store) => store.soggetto);\r\n\r\n const dispatch = useDispatch();\r\n const [loading, setLoading] = useState(true);\r\n const [formData, setFormData] = useState({ });\r\n const [isFormValid, setIsFormValid] = useState(false);\r\n const [datiAnagraficiContribuente, setDatiAnagraficiContribuente] = useState(null);\r\n const [esisteResidenzaOSedeLegale, setEsisteResidenzaOSedeLegale] = useState(null);\r\n const [segnalazioni, setSegnalazioni] = useState(false);\r\n\r\n const formRef = useRef();\r\n const history = useHistory();\r\n\r\n const presetForm = useCallback(({ FormErrors, ...datoModificato }) => {\r\n if (!formData || isEmptyObject(datoModificato)) return;\r\n\r\n const newStato = { ...formData, ...datoModificato };\r\n\r\n setFormData(newStato);\r\n }, [formData]);\r\n\r\n const creaContribuente = useCallback((datiCreazione) => {\r\n FwPlugins.postMessageToParent('SERVIZIO_PAGOF24_FEEDBACK', STEP_PLUGIN_PAGOF24.FEEDBACK);\r\n setLoading(true);\r\n const oggettoCreazione = {\r\n IdStudio: studioSelezionato,\r\n CodiceUfficio: codiceUfficioSelezionato,\r\n Indirizzo: formData.IndirizzoDescrizione,\r\n ...datiCreazione,\r\n };\r\n\r\n postCreaContribuentePersonaFisica(oggettoCreazione)\r\n .then((res) => {\r\n if (res.Success) {\r\n getOttieniContribuentePersonaFisica(studioSelezionato, oggettoCreazione.CodiceFiscale)\r\n .then((response) => {\r\n if (res.Success && res.Result) {\r\n dispatch(setSoggettoAction({\r\n idAnagrafica: response.Result.IdAnagrafica,\r\n idContribuente: response.Result.IdContribuente,\r\n codiceFiscale: response.Result.CodiceFiscale,\r\n cognome: response.Result.Cognome,\r\n nome: response.Result.Nome,\r\n tipoPersona,\r\n // nominativo: oggettoCreazione.Cognome,\r\n }));\r\n setEsisteResidenzaOSedeLegale(true);\r\n } else {\r\n FwPlugins.postMessageToParent('SERVIZIO_PAGOF24_FEEDBACK', STEP_PLUGIN_PAGOF24.FEEDBACK);\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n } else {\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n }, [codiceUfficioSelezionato, dispatch, formData, studioSelezionato]);\r\n\r\n const aggiungiResidenzaFiscaleSedeLegale = useCallback((datiCreazione) => {\r\n FwPlugins.postMessageToParent('SERVIZIO_PAGOF24_FEEDBACK', STEP_PLUGIN_PAGOF24.FEEDBACK);\r\n setLoading(true);\r\n const oggettoCreazione = {\r\n IdStudio: studioSelezionato,\r\n CodiceUfficio: codiceUfficioSelezionato,\r\n IdTipoIndirizzo: soggetto.tipoPersona === TIPO_PERSONA.PERSONA_FISICA ? TIPO_INDIRIZZO.RESIDENZA_FISCALE : TIPO_INDIRIZZO.SEDE_LEGALE,\r\n descrizione: formData.IndirizzoDescrizione,\r\n ...datiCreazione,\r\n };\r\n\r\n postAggiungiIndirizzo(oggettoCreazione)\r\n .then((res) => {\r\n if (res.Success) {\r\n setEsisteResidenzaOSedeLegale(true);\r\n } else {\r\n FwPlugins.postMessageToParent('SERVIZIO_PAGOF24_FEEDBACK', STEP_PLUGIN_PAGOF24.FEEDBACK);\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n }, [codiceUfficioSelezionato, formData.IndirizzoDescrizione, soggetto, studioSelezionato]);\r\n\r\n const recuperaResidenzaOSedeLegale = useCallback((datiAnagrafici) => {\r\n if (datiAnagrafici.IdAnagrafica) {\r\n (datiAnagrafici.tipoPersona === TIPO_PERSONA.PERSONA_FISICA\r\n ? getOttieniIndirizzoResidenzaFiscale : getOttieniIndirizzoSedeLegale)(datiAnagrafici.IdAnagrafica)\r\n .then((res) => {\r\n if (res.Success && res.Result) {\r\n setEsisteResidenzaOSedeLegale(!!res.Result);\r\n } else {\r\n setEsisteResidenzaOSedeLegale(false);\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n } else {\r\n setEsisteResidenzaOSedeLegale(false);\r\n\r\n setLoading(false);\r\n }\r\n }, []);\r\n\r\n const esisteOttieniAnagraficaPersonaFisica = useCallback((codiceFiscale, tipoPersonaParam = 1) => {\r\n if (studioSelezionato) {\r\n FwPlugins.postMessageToParent('SERVIZIO_PAGOF24_FEEDBACK', STEP_PLUGIN_PAGOF24.ANAGRAFICA);\r\n setLoading(true);\r\n\r\n (tipoPersonaParam === TIPO_PERSONA.PERSONA_FISICA\r\n ? getOttieniContribuentePersonaFisica : getOttieniContribuentePersonaGiuridica)(studioSelezionato, codiceFiscale)\r\n .then((res) => {\r\n if (res.Success && res.Result) {\r\n const datiAnagrafici = {\r\n // Contribuente\r\n IdContribuente: res.Result.IdContribuente,\r\n CodiceSIA: res.Result.CodiceSIA,\r\n // Anagrafica\r\n IdAnagrafica: res.Result.IdAnagrafica,\r\n CodiceFiscale: res.Result.CodiceFiscale,\r\n PartitaIva: res.Result.PartitaIva,\r\n Cognome: res.Result.Cognome,\r\n Nome: res.Result.Nome,\r\n Sesso: res.Result.Sesso,\r\n DataDiNascita: res.Result.DataDiNascita,\r\n IdLuogoDiNascita: res.Result.IdLuogoDiNascita,\r\n RagioneSociale: res.Result.RagioneSociale,\r\n IdNaturaGiuridica: res.Result.IdNaturaGiuridica,\r\n NaturaGiuridica: res.Result.NaturaGiuridica,\r\n };\r\n\r\n // caso particolare data di nascita editabile perchè non in anagrafica unica\r\n if (res.Result.DataDiNascita === '0001-01-01T00:00:00Z' || !res.Result.DataDiNascita) {\r\n getOttieniDatiDaCodiceFiscale(codiceFiscale)\r\n .then((response) => {\r\n if (response.Success) {\r\n datiAnagrafici.Sesso = response.Result.Sesso;\r\n datiAnagrafici.DataDiNascita = response.Result.DataDiNascita;\r\n datiAnagrafici.IdLuogoDiNascita = response.Result.IdCodiceComuneDiNascita;\r\n\r\n setDatiAnagraficiContribuente(datiAnagrafici);\r\n dispatch(setSoggettoAction({\r\n idAnagrafica: datiAnagrafici.IdAnagrafica,\r\n idContribuente: datiAnagrafici.IdContribuente,\r\n codiceFiscale: datiAnagrafici.CodiceFiscale,\r\n cognome: datiAnagrafici.Cognome,\r\n nome: datiAnagrafici.Nome,\r\n tipoPersona: tipoPersonaParam,\r\n }));\r\n } else {\r\n Log.error('errore');\r\n }\r\n }).catch((err) => {\r\n Log.error(err);\r\n });\r\n } else {\r\n setDatiAnagraficiContribuente(datiAnagrafici);\r\n dispatch(setSoggettoAction({\r\n idAnagrafica: datiAnagrafici.IdAnagrafica,\r\n idContribuente: datiAnagrafici.IdContribuente,\r\n codiceFiscale: datiAnagrafici.CodiceFiscale,\r\n cognome: datiAnagrafici.Cognome,\r\n nome: datiAnagrafici.Nome,\r\n tipoPersona: tipoPersonaParam,\r\n }));\r\n }\r\n } else {\r\n alert(\"Aspetta c'è qualcosa che non va, Anagrafica non trovata in AnagraficaUnica\");\r\n setLoading(false);\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n }\r\n }, [dispatch, studioSelezionato]);\r\n\r\n useEffect(() => {\r\n const codiceFiscale = codiceFiscaleSoggettoDaPlugin || codFisc;\r\n if (codiceFiscale\r\n && datiAnagraficiContribuente === null) {\r\n FwPlugins.postMessageToParent('SERVIZIO_PAGOF24_FEEDBACK', STEP_PLUGIN_PAGOF24.FEEDBACK);\r\n setLoading(true);\r\n esisteOttieniAnagraficaPersonaFisica(codiceFiscale, parseInt(tipoPersona, 10));\r\n }\r\n }, [codFisc, codiceFiscaleSoggettoDaPlugin, datiAnagraficiContribuente, esisteOttieniAnagraficaPersonaFisica, tipoPersona]);\r\n\r\n useEffect(() => {\r\n if (datiAnagraficiContribuente) {\r\n if (datiAnagraficiContribuente.IdContribuente) {\r\n recuperaResidenzaOSedeLegale(datiAnagraficiContribuente);\r\n } else {\r\n setLoading(false);\r\n setEsisteResidenzaOSedeLegale(false);\r\n }\r\n }\r\n }, [datiAnagraficiContribuente, recuperaResidenzaOSedeLegale]);\r\n\r\n const proseguiInvio = useCallback(() => {\r\n FwPlugins.postMessageToParent('SERVIZIO_PAGOF24_CONTRIBUENTE_PRESENTE', STEP_PLUGIN_PAGOF24.EMAIL);\r\n history.push(pluginDatiUtenteUfficioCgnPosUrl(datiAnagraficiContribuente.IdAnagrafica));\r\n }, [datiAnagraficiContribuente, history]);\r\n\r\n useEffect(() => {\r\n if (esisteResidenzaOSedeLegale) {\r\n proseguiInvio();\r\n }\r\n }, [esisteResidenzaOSedeLegale, proseguiInvio]);\r\n\r\n const onChangeAutocompletes = (campo, elemento) => {\r\n const autocompleteVals = [];\r\n\r\n if (campo === 'CodiceComune') {\r\n autocompleteVals.IdComune = elemento.Id;\r\n autocompleteVals.CodiceComuneDescrizioneComposta = elemento.DescrizioneComposta;\r\n autocompleteVals.ComuneDescrizione = elemento.Descrizione;\r\n autocompleteVals.ComuneCodiceProvincia = elemento.CodiceProvincia;\r\n autocompleteVals.Cap = elemento.Cap;\r\n }\r\n if (campo === 'Toponimo') {\r\n autocompleteVals.IdToponimo = elemento.Id_Toponimo;\r\n autocompleteVals.ToponimoDescrizione = elemento.Descrizione;\r\n }\r\n if (campo === 'NaturaGiuridica') {\r\n autocompleteVals.IdNaturaGiuridica = elemento.IdNaturaGiuridica;\r\n autocompleteVals.NaturaGiuridica = elemento.Descrizione;\r\n }\r\n\r\n presetForm(autocompleteVals);\r\n };\r\n\r\n return (\r\n
    \r\n {loading ? (\r\n
    \r\n \r\n
      Sto impostando i dati...
    \r\n
    \r\n ) : (\r\n 0 && '100%',\r\n }}\r\n >\r\n {!loading && segnalazioni.length > 0\r\n ? (\r\n \r\n
      \r\n {segnalazioni.map((segnalazione, idx) => (\r\n {segnalazione.msg}\r\n \r\n ))}\r\n
    \r\n
    \r\n )}\r\n type=\"alarm\"\r\n />\r\n )\r\n : (\r\n
    \r\n
    \r\n Per creare la delega F24 servono prima alcune informazioni di {datiAnagraficiContribuente.Cognome} {datiAnagraficiContribuente.Nome}.\r\n
    \r\n {!esisteResidenzaOSedeLegale && (\r\n
    \r\n setIsFormValid(validity)}\r\n >\r\n {soggetto.tipoPersona === TIPO_PERSONA.PERSONA_FISICA ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n
    \r\n )}\r\n
    \r\n )}\r\n
    \r\n
    \r\n {!segnalazioni.length > 0 ? (\r\n (\r\n !datiAnagraficiContribuente.IdAnagrafica ? creaContribuente({ ...datiAnagraficiContribuente, ...formData }, !esisteResidenzaOSedeLegale)\r\n : aggiungiResidenzaFiscaleSedeLegale({ ...datiAnagraficiContribuente, ...formData })\r\n )}\r\n emphasis={Button.Emphasis.HIGH}\r\n primary\r\n disabled={!isFormValid}\r\n running={loading}\r\n >\r\n CONTINUA\r\n \r\n ) : (\r\n { FwPlugins.postMessageToParent('SERVIZIO_PAGOF24_RIPROVA', STEP_PLUGIN_PAGOF24.ANAGRAFICA); setSegnalazioni([]); }}\r\n emphasis={Button.Emphasis.HIGH}\r\n primary\r\n running={loading}\r\n >\r\n RIPROVA\r\n \r\n )}\r\n
    \r\n
    \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default CreazioneContribuenteCgnPos;\r\n","import { AuthorizedApp } from 'framework-taskforce';\r\nimport React from 'react';\r\nimport ContenutoPaginaDiSospensione from '../ContenutoPaginaDiSospensione';\r\nimport CreazioneContribuenteCgnPos from '../areas/plugins/creazioneContribuente/CreazioneContribuenteCgnPos';\r\nimport { authorizedServices } from '../models/f24';\r\n\r\nconst CreazioneContribuenteCgnPosRoute = () => (\r\n )}\r\n >\r\n \r\n \r\n);\r\n\r\nCreazioneContribuenteCgnPosRoute.defaultProps = {\r\n};\r\n\r\nCreazioneContribuenteCgnPosRoute.propTypes = {\r\n};\r\n\r\nexport default CreazioneContribuenteCgnPosRoute;\r\n","/* eslint-disable no-nested-ternary */\r\nimport React, {\r\n useCallback, useEffect, useState, useRef,\r\n} from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport {\r\n Spinner, Form, Input, Link,\r\n} from 'framework-ui-components';\r\nimport {\r\n Button, FeedbackPanel,\r\n} from 'framework-ui-components/Components/V2';\r\nimport { logApiError } from 'framework-taskforce/utils/log';\r\nimport FwPlugins from 'framework-plugins';\r\nimport { getSegnalazioneError } from 'framework-taskforce/models/segnalazioni';\r\nimport { isEmptyObject } from 'framework-taskforce/utils/object';\r\nimport { useHistory, useParams } from 'react-router';\r\nimport { AnteprimaMailPagoF24Link, pluginConfermaEmailPagoF24Url } from '../../../models/urls';\r\nimport TemplateGrid from '../../../components/TemplateGrid/TemplateGrid';\r\nimport { getOttieniDatiUtenteUfficio, postAggiornaDatiUtenteUfficio } from '../../../apis/pagoF24';\r\nimport { STEP_PLUGIN_PAGOF24 } from '../../../models/f24';\r\n\r\nconst DatiUtenteUfficioPerMail = () => {\r\n const { codiceUfficio } = useParams();\r\n const codiceUfficioSelezionato = useSelector((store) => store.appParams.ufficioSelezionato);\r\n\r\n const [loading, setLoading] = useState(true);\r\n const [formData, setFormData] = useState({ });\r\n const [isFormValid, setIsFormValid] = useState(false);\r\n const [datiUtenteUfficio, setDatiUtenteUfficio] = useState(null);\r\n const [segnalazioni, setSegnalazioni] = useState(false);\r\n\r\n const formRef = useRef();\r\n const history = useHistory();\r\n\r\n const presetForm = useCallback(({ FormErrors, ...datoModificato }) => {\r\n if (!formData || isEmptyObject(datoModificato)) return;\r\n\r\n const newStato = { ...formData, ...datoModificato };\r\n\r\n setFormData(newStato);\r\n }, [formData]);\r\n\r\n const ottieniDatiUtenteUfficio = useCallback(() => {\r\n if (datiUtenteUfficio === null) {\r\n getOttieniDatiUtenteUfficio(codiceUfficioSelezionato)\r\n .then((res) => {\r\n if (res.Success) {\r\n setDatiUtenteUfficio(res.Result || false);\r\n if (res.Result) {\r\n setFormData(res.Result);\r\n }\r\n } else {\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n }\r\n }, [codiceUfficioSelezionato, datiUtenteUfficio]);\r\n\r\n useEffect(() => {\r\n if (datiUtenteUfficio === null) {\r\n setLoading(true);\r\n ottieniDatiUtenteUfficio();\r\n }\r\n }, [datiUtenteUfficio, ottieniDatiUtenteUfficio]);\r\n\r\n const proseguiInvio = useCallback(() => {\r\n FwPlugins.postMessageToParent('SERVIZIO_PAGOF24_FEEDBACK', STEP_PLUGIN_PAGOF24.EMAIL);\r\n history.push(pluginConfermaEmailPagoF24Url(codiceUfficioSelezionato));\r\n }, [codiceUfficioSelezionato, history]);\r\n\r\n const aggiornaDatiUtenteUfficio = useCallback(() => {\r\n postAggiornaDatiUtenteUfficio({\r\n CodiceUfficio: codiceUfficioSelezionato,\r\n Email: 'no-reply-cgnf24@cgn.it',\r\n ...formData,\r\n })\r\n .then((response) => {\r\n if (response.Success) {\r\n proseguiInvio();\r\n } else {\r\n setSegnalazioni(response.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n }, [codiceUfficioSelezionato, formData, proseguiInvio]);\r\n\r\n return (\r\n
    \r\n {loading ? (\r\n
    \r\n \r\n
      Sto impostando i dati...
    \r\n
    \r\n ) : (\r\n 0 && '100%',\r\n }}\r\n >\r\n {!loading && segnalazioni.length > 0\r\n ? (\r\n \r\n
      \r\n {segnalazioni.map((segnalazione, idx) => (\r\n {segnalazione.msg}\r\n \r\n ))}\r\n
    \r\n
    \r\n )}\r\n type=\"alarm\"\r\n />\r\n )\r\n : (\r\n
    \r\n
    \r\n Mittente\r\n
    \r\n
    \r\n Fatti riconoscere dai tuoi clienti. Inserisci una descrizione che indichi chi sta inviando questa comunicazione.\r\n
    \r\n
    \r\n setIsFormValid(validity)}\r\n >\r\n
    \r\n \r\n \r\n
    \r\n {/* */}\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n Vedi un'anteprima\r\n  della e-mail che verrà inviata\r\n\r\n
    \r\n
    \r\n )}\r\n
    \r\n
    \r\n {!segnalazioni.length > 0 ? (\r\n aggiornaDatiUtenteUfficio()}\r\n emphasis={Button.Emphasis.HIGH}\r\n primary\r\n disabled={!isFormValid}\r\n running={loading}\r\n >\r\n CONTINUA\r\n \r\n ) : (\r\n { FwPlugins.postMessageToParent('SERVIZIO_PAGOF24_RIPROVA', STEP_PLUGIN_PAGOF24.EMAIL); setSegnalazioni([]); }}\r\n emphasis={Button.Emphasis.HIGH}\r\n primary\r\n running={loading}\r\n >\r\n RIPROVA\r\n \r\n )}\r\n
    \r\n
    \r\n
    \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default DatiUtenteUfficioPerMail;\r\n","import { AuthorizedApp } from 'framework-taskforce';\r\nimport React from 'react';\r\nimport ContenutoPaginaDiSospensione from '../ContenutoPaginaDiSospensione';\r\nimport DatiUtenteUfficioPerMail from '../areas/plugins/datiUtenteUfficio/DatiUtenteUfficioPerMail';\r\nimport { authorizedServices } from '../models/f24';\r\n\r\nconst DatiUtenteUfficioPerMailRoute = () => (\r\n )}\r\n >\r\n \r\n \r\n);\r\n\r\nDatiUtenteUfficioPerMailRoute.defaultProps = {\r\n};\r\n\r\nDatiUtenteUfficioPerMailRoute.propTypes = {\r\n};\r\n\r\nexport default DatiUtenteUfficioPerMailRoute;\r\n","/* eslint-disable no-nested-ternary */\r\nimport React, {\r\n useCallback, useEffect, useState, useRef,\r\n} from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport {\r\n Spinner, Form, Input, Link,\r\n} from 'framework-ui-components';\r\nimport {\r\n Button, FeedbackPanel,\r\n} from 'framework-ui-components/Components/V2';\r\nimport { logApiError } from 'framework-taskforce/utils/log';\r\nimport FwPlugins from 'framework-plugins';\r\nimport { getSegnalazioneError } from 'framework-taskforce/models/segnalazioni';\r\nimport { isEmptyObject } from 'framework-taskforce/utils/object';\r\nimport { useHistory } from 'react-router';\r\nimport EditIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/EditIcon';\r\nimport { AnteprimaMailPagoF24Link, pluginImportaTributiPagoF24Url } from '../../../models/urls';\r\nimport TemplateGrid from '../../../components/TemplateGrid/TemplateGrid';\r\nimport {\r\n postAggiungiRecapito,\r\n postModificaRecapito,\r\n} from '../../../apis/anagrafiche';\r\nimport { getOttieniRecapiti } from '../../../apis/anagrafiche';\r\nimport { STEP_PLUGIN_PAGOF24 } from '../../../models/f24';\r\n\r\nconst ConfermaEmailPagoF24 = () => {\r\n const studioSelezionato = useSelector((store) => store.appParams.studioSelezionato);\r\n const contribuenteNome = useSelector((store) => store.soggetto.cognome);\r\n const contribuenteCognome = useSelector((store) => store.soggetto.nome);\r\n const contribuenteIdAnagrafica = useSelector((store) => store.soggetto.idAnagrafica);\r\n\r\n const [loading, setLoading] = useState(true);\r\n const [formData, setFormData] = useState({ });\r\n const [isFormValid, setIsFormValid] = useState(false);\r\n const [emailPresente, setEmailPresente] = useState(null);\r\n const [emailConfermata, setEmailConfermata] = useState(null);\r\n const [modificaMail, setModificaMail] = useState(false);\r\n const [segnalazioni, setSegnalazioni] = useState(false);\r\n const [recapiti, setRecapiti] = useState([]);\r\n\r\n const formRef = useRef();\r\n const history = useHistory();\r\n\r\n const presetForm = useCallback(({ FormErrors, ...datoModificato }) => {\r\n if (!formData || isEmptyObject(datoModificato)) return;\r\n\r\n let cambiataEmail = false;\r\n if (datoModificato.Email) {\r\n cambiataEmail = true;\r\n }\r\n\r\n const newStato = { ...formData, ...datoModificato };\r\n\r\n if (cambiataEmail) {\r\n newStato.ConfermaEmail = null;\r\n }\r\n\r\n setFormData(newStato);\r\n }, [formData]);\r\n\r\n const aggiungiRecapito = useCallback(() => {\r\n const oggettoCreazione = {\r\n IdStudio: studioSelezionato,\r\n IdAnagrafica: contribuenteIdAnagrafica,\r\n ...formData,\r\n Predefinito: true,\r\n };\r\n\r\n const emailGiaPresente = recapiti.find((x) => (x.Email === formData.Email ? x : false));\r\n if (emailGiaPresente) {\r\n emailGiaPresente.Predefinito = true;\r\n emailGiaPresente.IdRecapito = emailGiaPresente.Id;\r\n postModificaRecapito(emailGiaPresente)\r\n .then((resModifica) => {\r\n if (resModifica.Success) {\r\n setEmailConfermata(true);\r\n } else {\r\n setSegnalazioni(resModifica.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n } else {\r\n postAggiungiRecapito(oggettoCreazione)\r\n .then((res) => {\r\n if (res.Success) {\r\n setEmailConfermata(true);\r\n } else {\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n }\r\n }, [studioSelezionato, contribuenteIdAnagrafica, formData, recapiti]);\r\n\r\n const confermaMail = useCallback(() => {\r\n if (emailPresente.Email !== formData.Email) {\r\n const newOggettoModifica = {\r\n ...emailPresente,\r\n IdRecapito: emailPresente.Id,\r\n };\r\n newOggettoModifica.Predefinito = false;\r\n\r\n postModificaRecapito(newOggettoModifica)\r\n .then((res) => {\r\n if (res.Success) {\r\n if (recapiti) {\r\n const emailGiaPresente = recapiti.find((x) => (x.Email === formData.Email ? x : false));\r\n if (emailGiaPresente) {\r\n emailGiaPresente.Predefinito = true;\r\n emailGiaPresente.IdRecapito = emailGiaPresente.Id;\r\n postModificaRecapito(newOggettoModifica)\r\n .then((resModifica) => {\r\n if (resModifica.Success) {\r\n setEmailConfermata(true);\r\n } else {\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n } else {\r\n aggiungiRecapito();\r\n }\r\n }\r\n } else {\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n } else {\r\n setEmailConfermata(true);\r\n }\r\n }, [aggiungiRecapito, emailPresente, formData.Email, recapiti]);\r\n\r\n const recuperaEmailPredefinita = useCallback(() => {\r\n if (emailPresente === null) {\r\n getOttieniRecapiti(contribuenteIdAnagrafica)\r\n .then((res) => {\r\n if (res.Success && res.Result) {\r\n setRecapiti(res.Result);\r\n const recapito = res.Result.find((x) => (x.Predefinito ? x : false));\r\n if (recapito) {\r\n setEmailPresente(recapito);\r\n setFormData({ ...recapito, ConfermaEmail: recapito.Email });\r\n } else {\r\n setEmailPresente(false);\r\n setFormData({ ...recapito, ConfermaEmail: null });\r\n }\r\n } else {\r\n setEmailPresente(false);\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n } else {\r\n setEmailPresente(false);\r\n setLoading(false);\r\n }\r\n }, [contribuenteIdAnagrafica, emailPresente]);\r\n\r\n useEffect(() => {\r\n if (contribuenteIdAnagrafica\r\n && emailPresente === null) {\r\n setLoading(true);\r\n recuperaEmailPredefinita();\r\n }\r\n }, [emailPresente, contribuenteIdAnagrafica, recuperaEmailPredefinita]);\r\n\r\n const proseguiInvio = useCallback(() => {\r\n history.push(pluginImportaTributiPagoF24Url());\r\n }, [history]);\r\n\r\n const scaricaAnteprimaEmail = useCallback((event) => {\r\n event.preventDefault();\r\n const link = document.createElement('a');\r\n link.href = AnteprimaMailPagoF24Link;\r\n link.target = '_blank';\r\n link.rel = 'noreferrer';\r\n link.setAttribute('download', '');\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (emailConfermata) {\r\n proseguiInvio();\r\n }\r\n }, [emailConfermata, proseguiInvio]);\r\n\r\n return (\r\n
    \r\n {loading ? (\r\n
    \r\n \r\n
      Sto impostando i dati...
    \r\n
    \r\n ) : (\r\n 0 && '100%',\r\n }}\r\n >\r\n {!loading && segnalazioni.length > 0\r\n ? (\r\n \r\n
      \r\n {segnalazioni.map((segnalazione, idx) => (\r\n {segnalazione.msg}\r\n \r\n ))}\r\n
    \r\n
    \r\n )}\r\n type=\"alarm\"\r\n />\r\n )\r\n : (\r\n
    \r\n
    \r\n Destinatario\r\n
    \r\n
    \r\n Inserisci l'e-mail di {contribuenteCognome} {contribuenteNome} a cui verrà inviato\r\n un collegamento con la delega F24 da pagare.\r\n
    \r\n {!emailConfermata && (\r\n
    \r\n setIsFormValid(validity)}\r\n >\r\n
    \r\n \r\n \r\n {emailPresente && emailPresente.Id && !modificaMail ? (\r\n
    \r\n { setModificaMail(true); presetForm({ ConfermaEmail: null }); }}\r\n emphasis={Button.Emphasis.LOW}\r\n >\r\n \r\n Modifica\r\n \r\n
    \r\n ) : [\r\n
    ,\r\n ,\r\n ]}\r\n \r\n
    \r\n \r\n
    \r\n )}\r\n
    \r\n )}\r\n
    \r\n
    \r\n Proteggi il contribuente dalle e-mail contraffatte, \r\n \r\n vedi il fac-simile\r\n \r\n
    \r\n
    \r\n {!segnalazioni.length > 0 ? (\r\n confermaMail() : () => aggiungiRecapito()}\r\n emphasis={Button.Emphasis.HIGH}\r\n primary\r\n disabled={!isFormValid}\r\n running={loading}\r\n >\r\n INVIA F24 AL CONTRIBUENTE\r\n \r\n ) : (\r\n { FwPlugins.postMessageToParent('SERVIZIO_PAGOF24_RIPROVA', STEP_PLUGIN_PAGOF24.EMAIL); setSegnalazioni([]); }}\r\n emphasis={Button.Emphasis.HIGH}\r\n primary\r\n running={loading}\r\n >\r\n RIPROVA\r\n \r\n )}\r\n
    \r\n
    \r\n
    \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default ConfermaEmailPagoF24;\r\n","import { AuthorizedApp } from 'framework-taskforce';\r\nimport React from 'react';\r\nimport ContenutoPaginaDiSospensione from '../ContenutoPaginaDiSospensione';\r\nimport ConfermaEmailPagoF24 from '../areas/plugins/confermaEmail/ConfermaEmailPagoF24';\r\nimport { authorizedServices } from '../models/f24';\r\n\r\nconst ConfermaEmailPagoF24Route = () => (\r\n )}\r\n >\r\n \r\n \r\n);\r\n\r\nConfermaEmailPagoF24Route.defaultProps = {\r\n};\r\n\r\nConfermaEmailPagoF24Route.propTypes = {\r\n};\r\n\r\nexport default ConfermaEmailPagoF24Route;\r\n","/* eslint-disable no-nested-ternary */\r\nimport React, {\r\n useCallback, useEffect, useState, useRef,\r\n} from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport {\r\n Spinner,\r\n} from 'framework-ui-components';\r\nimport {\r\n Button, FeedbackPanel,\r\n} from 'framework-ui-components/Components/V2';\r\nimport Log, { logApiError } from 'framework-taskforce/utils/log';\r\nimport FwPlugins from 'framework-plugins';\r\nimport { getSegnalazioneError } from 'framework-taskforce/models/segnalazioni';\r\nimport usePluginsReducer from 'framework-plugins/hooks/usePluginReducer';\r\nimport useSignalR from 'framework-ui-components/Components/Hooks/useSignalR';\r\nimport {\r\n postImportaTributi,\r\n postCreaDeleghePerTributiImportati,\r\n} from '../../../apis/contribuente';\r\nimport { postDichiaraCompleteMassivamente, postPresentaConPagoF24 } from '../../../apis/deleghe';\r\nimport { STEP_PLUGIN_PAGOF24 } from '../../../models/f24';\r\n\r\nconst ImportaTributi = () => {\r\n const contribuenteIdAnagrafica = useSelector((store) => store.soggetto.idAnagrafica);\r\n const contribuenteId = useSelector((store) => store.soggetto.idContribuente);\r\n const tipoModelloDichiarativo = useSelector((store) => store.appParams.tipoModelloDichiarativo);\r\n const annoCampagnaServizioEsterno = useSelector((store) => store.appParams.annoCampagnaServizioEsterno);\r\n\r\n const [loading, setLoading] = useState(true);\r\n const [dettaglioImposte, setDettaglioImposte] = useState(false);\r\n const [tributiImportati, setTributiImportati] = useState(false);\r\n const [stoCreandoLeDeleghe, setStoCreandoLeDeleghe] = useState(false);\r\n const [delegheCompletate, setDelegheCompletate] = useState(false);\r\n const [deleghePresentate, setDeleghePresentate] = useState(false);\r\n const [segnalazioni, setSegnalazioni] = useState(false);\r\n const [primaImportazione, setPrimaImportazione] = useState(true);\r\n\r\n const importaTributi = useCallback((datiServizioEsterno) => {\r\n if (primaImportazione) {\r\n FwPlugins.postMessageToParent('SERVIZIO_PAGOF24_FEEDBACK', STEP_PLUGIN_PAGOF24.FEEDBACK);\r\n setLoading(true);\r\n setPrimaImportazione(false);\r\n const oggettoTributiDaImportare = {\r\n IdContribuente: contribuenteId,\r\n EstremiProvenienzaTributi: {\r\n TipoModelloDichiarazione: tipoModelloDichiarativo,\r\n Campagna: annoCampagnaServizioEsterno,\r\n IdDichiarazione: datiServizioEsterno.identificativoProvenienzaTributi,\r\n ChiaveProvenienzaTributi: datiServizioEsterno.identificativoProvenienzaTributi,\r\n Ordinaria: true,\r\n },\r\n DebitiTributiLocali: datiServizioEsterno.imposte.filter((tributo) => tributo.ImportoDaVersare > 0).map((tributo) => (\r\n {\r\n CodiceTributo: tributo.Tributo.Codice,\r\n ChiaveTributo: tributo.IdentificativoTributoServizioF24,\r\n Importo: tributo.ImportoDaVersare,\r\n DataScadenza: datiServizioEsterno.dataScadenza,\r\n CodiceComuneOStatoEstero: tributo.Comune.Codice,\r\n Ravvedimento: false,\r\n ImmobiliVariati: false,\r\n Acconto: datiServizioEsterno.tipoVersamento === 'acconto',\r\n Saldo: datiServizioEsterno.tipoVersamento === 'saldo',\r\n NumeroImmobili: tributo.NumeroImmobili,\r\n Detrazione: tributo.ImportoDetrazioni || 0.0,\r\n MeseRiferimento: null,\r\n AnnoRiferimento: annoCampagnaServizioEsterno,\r\n IdentificativoOperazione: null,\r\n NumeroRate: null,\r\n Maggiora: null,\r\n }\r\n )),\r\n };\r\n postImportaTributi(oggettoTributiDaImportare)\r\n .then((res) => {\r\n if (res.Success) {\r\n FwPlugins.postMessageToParent('IMPORTATI_TRIBUTI_IN_F24', true);\r\n setTributiImportati(true);\r\n } else {\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n setLoading(false);\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n }\r\n }, [annoCampagnaServizioEsterno, contribuenteId, primaImportazione, tipoModelloDichiarativo]);\r\n\r\n useEffect(() => {\r\n if (dettaglioImposte) {\r\n importaTributi(dettaglioImposte);\r\n }\r\n }, [dettaglioImposte, importaTributi]);\r\n\r\n const impostaTributi = useCallback((datiServizioEsterno) => {\r\n if (datiServizioEsterno) {\r\n setDettaglioImposte(datiServizioEsterno);\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (contribuenteIdAnagrafica\r\n && !dettaglioImposte) {\r\n FwPlugins.postMessageToParent('SERVIZIO_PAGOF24_EMAIL_CONFERMATA', STEP_PLUGIN_PAGOF24.EMAIL);\r\n }\r\n }, [contribuenteIdAnagrafica, dettaglioImposte]);\r\n\r\n const creDeleghe = useCallback((identificativoProvenienzaTributi) => {\r\n FwPlugins.postMessageToParent('SERVIZIO_PAGOF24_FEEDBACK', STEP_PLUGIN_PAGOF24.FEEDBACK);\r\n setLoading(true);\r\n postCreaDeleghePerTributiImportati({\r\n IdContribuente: contribuenteId,\r\n ChiaveProvenienzaTributi: identificativoProvenienzaTributi,\r\n })\r\n .then((res) => {\r\n if (res.Success && res.Result) {\r\n FwPlugins.postMessageToParent('IMPORTATI_TRIBUTI_IN_F24', true);\r\n setStoCreandoLeDeleghe(true);\r\n } else {\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n setLoading(false);\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n }, [contribuenteId]);\r\n\r\n usePluginsReducer(() => ({\r\n REGISTRATO_UTILIZZO_IN_SERVIZIO: creDeleghe,\r\n TRIBUTI_DA_IMPORTARE: impostaTributi,\r\n }), []);\r\n\r\n const lista = [];\r\n const listaDeleghe = useRef({ lista });\r\n\r\n const settaDeleghe = useCallback((risposta) => {\r\n const arrayRisposta = (Array.isArray(risposta) ? risposta : [risposta]);\r\n listaDeleghe.current.lista = [\r\n ...listaDeleghe.current.lista,\r\n ...arrayRisposta,\r\n ];\r\n }, []);\r\n\r\n useSignalR('DelegaConUtilizziCreata', (data) => {\r\n Log.info('Delega creata');\r\n settaDeleghe(data);\r\n });\r\n\r\n useSignalR('CreazioneDeleghePerContribuenteFallita', (data) => {\r\n setSegnalazioni([getSegnalazioneError(data.MotivazioneFallimento)]);\r\n setLoading(false);\r\n });\r\n\r\n useSignalR('AvvioSessioneVersamentoDelegaPagoF24Completata', (data) => {\r\n setLoading(false);\r\n });\r\n\r\n useSignalR('AvvioSessioneVersamentoDelegaPagoF24Fallita', (data) => {\r\n FwPlugins.postMessageToParent('SERVIZIO_PAGOF24_FEEDBACK_GRANDE', 6);\r\n setSegnalazioni([getSegnalazioneError(data.MotivazioneFallimento)]);\r\n setLoading(false);\r\n });\r\n\r\n const dichiaraCompleta = useCallback(() => {\r\n FwPlugins.postMessageToParent('SERVIZIO_PAGOF24_FEEDBACK', STEP_PLUGIN_PAGOF24.FEEDBACK);\r\n setLoading(true);\r\n // è stato notato che a volte la lista è senza elementi ma nella chiamata successiva ci sono\r\n if (listaDeleghe.current.lista.length > 0) {\r\n postDichiaraCompleteMassivamente(listaDeleghe.current.lista.map((x) => x.IdDelega))\r\n .then((response) => {\r\n if (response.Success) {\r\n FwPlugins.postMessageToParent('DELGHE_SPOSTATE_A_COMPLETATE', 5);\r\n setDelegheCompletate(true);\r\n postPresentaConPagoF24(listaDeleghe.current.lista.map((x) => x.IdDelega))\r\n .then((res) => {\r\n if (res.Success) {\r\n FwPlugins.postMessageToParent('DELGHE_PRESENTATE_CON_F24', STEP_PLUGIN_PAGOF24.FEEDBACK);\r\n setDeleghePresentate(true);\r\n } else {\r\n FwPlugins.postMessageToParent('SERVIZIO_PAGOF24_FEEDBACK_GRANDE', STEP_PLUGIN_PAGOF24.FEEDBACK_GRANDE);\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n setLoading(false);\r\n }\r\n })\r\n .catch((err) => {\r\n FwPlugins.postMessageToParent('SERVIZIO_PAGOF24_FEEDBACK_GRANDE', STEP_PLUGIN_PAGOF24.FEEDBACK_GRANDE);\r\n Log.error(err);\r\n setLoading(false);\r\n });\r\n } else {\r\n setSegnalazioni(response.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n setLoading(false);\r\n }\r\n })\r\n .catch((err) => {\r\n Log.error(err);\r\n setLoading(false);\r\n });\r\n } else {\r\n // dopo un secondo riprovo\r\n setTimeout(() => {\r\n postDichiaraCompleteMassivamente(listaDeleghe.current.lista.map((x) => x.IdDelega))\r\n .then((response) => {\r\n if (response.Success) {\r\n FwPlugins.postMessageToParent('DELGHE_SPOSTATE_A_COMPLETATE', 5);\r\n setDelegheCompletate(true);\r\n postPresentaConPagoF24(listaDeleghe.current.lista.map((x) => x.IdDelega))\r\n .then((res) => {\r\n if (res.Success) {\r\n FwPlugins.postMessageToParent('DELGHE_PRESENTATE_CON_F24', STEP_PLUGIN_PAGOF24.FEEDBACK);\r\n setDeleghePresentate(true);\r\n } else {\r\n FwPlugins.postMessageToParent('SERVIZIO_PAGOF24_FEEDBACK_GRANDE', STEP_PLUGIN_PAGOF24.FEEDBACK_GRANDE);\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n setLoading(false);\r\n }\r\n })\r\n .catch((err) => {\r\n FwPlugins.postMessageToParent('SERVIZIO_PAGOF24_FEEDBACK_GRANDE', STEP_PLUGIN_PAGOF24.FEEDBACK_GRANDE);\r\n Log.error(err);\r\n setLoading(false);\r\n });\r\n } else {\r\n setSegnalazioni(response.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n setLoading(false);\r\n }\r\n })\r\n .catch((err) => {\r\n Log.error(err);\r\n setLoading(false);\r\n });\r\n }, 1000);\r\n }\r\n }, []);\r\n\r\n useSignalR('CreazioneDeleghePerContribuenteCompletata', (data) => {\r\n if (`${data.IdContribuente}` === `${contribuenteId}`) { dichiaraCompleta(); }\r\n });\r\n\r\n const chiudiProcessoPagoF24 = useCallback(() => {\r\n FwPlugins.postMessageToParent('CHIUDI_PROCESSO_F24', true);\r\n }, []);\r\n\r\n return (\r\n
    \r\n {loading ? (\r\n
    \r\n \r\n  \r\n
    \r\n {!tributiImportati ? 'Sto importando i tributi...' : (!delegheCompletate ? 'Sto elaborando la delega...' : 'Sto creando la mail...')}\r\n
    \r\n
    \r\n ) : (\r\n 0 || delegheCompletate || deleghePresentate) && '100%',\r\n }}\r\n >\r\n {!loading && segnalazioni.length > 0\r\n ? (\r\n \r\n
    \r\n {segnalazioni.map((segnalazione, idx) => (\r\n {segnalazione.msg}.\r\n

    \r\n ))}\r\n
    \r\n
    \r\n L' e-mail contenente il link al pagamento non è stata inviata, ma la delega è stata creata su F24 online.\r\n Puoi continuare in due modi.\r\n
    \r\n Per inviare nuovamente l'e-mail:\r\n
      \r\n
    1. vai su F24 online e cancella la delega
    2. \r\n
    3. torna su IMU e rimuovi i tributi con l'apposito pulsante
    4. \r\n
    5. Invia di nuovo con PagoF24
    6. \r\n
    \r\n Per inviare la delega in un altro modo:\r\n
      \r\n
    1. spostati su F24 online
    2. \r\n
    3. vai alla sezione Deleghe → Complete
    4. \r\n
    5. Presenta la delega
    6. \r\n
    \r\n
    \r\n
    \r\n ) : (\r\n
    \r\n
      \r\n {segnalazioni.map((segnalazione, idx) => (\r\n {segnalazione.msg}\r\n \r\n ))}\r\n
    \r\n
    \r\n )\r\n }\r\n type=\"alarm\"\r\n />\r\n )\r\n : (\r\n
    \r\n {deleghePresentate && (\r\n \r\n Una volta che la banca del contribuente confermerà\r\n
    \r\n il pagamento, la sua situazione si aggiornerà e i tributi\r\n
    \r\n risulteranno versati.\r\n
    \r\n )}\r\n type=\"success\"\r\n />\r\n )}\r\n \r\n )}\r\n {deleghePresentate && !segnalazioni.length > 0 && (\r\n
    \r\n
    \r\n chiudiProcessoPagoF24()}\r\n emphasis={Button.Emphasis.HIGH}\r\n primary\r\n running={loading}\r\n >\r\n HO CAPITO\r\n \r\n
    \r\n
    \r\n )}\r\n {segnalazioni.length > 0 && (\r\n
    \r\n
    \r\n { FwPlugins.postMessageToParent('SERVIZIO_PAGOF24_RIPROVA', STEP_PLUGIN_PAGOF24.DELEGHE); setSegnalazioni([]); }\r\n : () => chiudiProcessoPagoF24()}\r\n emphasis={Button.Emphasis.HIGH}\r\n primary\r\n running={loading}\r\n >\r\n {!tributiImportati ? 'RIPROVA' : 'CHIUDI'}\r\n \r\n\r\n
    \r\n
    \r\n )}\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default ImportaTributi;\r\n","import { AuthorizedApp } from 'framework-taskforce';\r\nimport React from 'react';\r\nimport ContenutoPaginaDiSospensione from '../ContenutoPaginaDiSospensione';\r\nimport ImportaTributi from '../areas/plugins/importazioneTributiPiuCreaDeleghe/ImportaTributi';\r\nimport { authorizedServices } from '../models/f24';\r\n\r\nconst ImportaTributiRoute = () => (\r\n )}\r\n >\r\n \r\n \r\n);\r\n\r\nImportaTributiRoute.defaultProps = {\r\n};\r\n\r\nImportaTributiRoute.propTypes = {\r\n};\r\n\r\nexport default ImportaTributiRoute;\r\n","import React, { useCallback, useMemo, useState } from 'react';\r\nimport { Button, ButtonGroup } from 'framework-ui-components/Components/V2';\r\nimport PropTypes from 'prop-types';\r\nimport { logApiError } from 'framework-taskforce/utils/log';\r\nimport { WebRequest } from 'framework-ui-components';\r\nimport { postRichiediCgnPos } from '../../apis/cgnPos';\r\n\r\nconst WizardNavigation = ({\r\n contrattoNexiFileState,\r\n documentoRiconoscimentoFileState,\r\n codiceFiscaleFileState,\r\n documentoAnagraficaAgenziaDelleEntrateFileState,\r\n setResultEmail,\r\n indirizzoEmail,\r\n isTitolareEffettivoCoincideLegaleRappresentante,\r\n titolariEffettiviFileState,\r\n}) => {\r\n const { contrattoNexiLocal, contrattoNexiUploaded, contrattoNexiStatus } = contrattoNexiFileState;\r\n const { documentoRiconoscimentoLocal, documentoRiconoscimentoUploaded, documentoRiconoscimentoStatus } = documentoRiconoscimentoFileState;\r\n const { codiceFiscaleLocal, codiceFiscaleUploaded, codiceFiscaleStatus } = codiceFiscaleFileState;\r\n const {\r\n documentoAnagraficaAgenziaDelleEntrateLocal,\r\n documentoAnagraficaAgenziaDelleEntrateUploaded,\r\n documentoAnagraficaAgenziaDelleEntrateStatus,\r\n } = documentoAnagraficaAgenziaDelleEntrateFileState;\r\n\r\n const [loading, setLoading] = useState(false);\r\n\r\n const caricaContratto = useCallback(() => {\r\n const titolariEffettiviLocalFiles = isTitolareEffettivoCoincideLegaleRappresentante === false ? titolariEffettiviFileState.reduce((acc, item, index) => ({\r\n ...acc,\r\n [`CartaIdentitaTitolareEfettivo_${index}`]: item.files[0]?.file.local.file,\r\n [`TesseraSanitariaTitolareEfettivo_${index}`]: item.files[1]?.file.local.file,\r\n }), {}) : [];\r\n\r\n postRichiediCgnPos({\r\n contrattoNexi: contrattoNexiLocal.file,\r\n documentoRiconoscimento: documentoRiconoscimentoLocal.file,\r\n codiceFiscale: codiceFiscaleLocal.file,\r\n documentoAnagraficaAgenziaDelleEntrate: documentoAnagraficaAgenziaDelleEntrateLocal.file,\r\n ...titolariEffettiviLocalFiles,\r\n }, indirizzoEmail).then(\r\n ({ data }) => {\r\n if (data.Success) {\r\n setResultEmail({\r\n success: true,\r\n uploaded: true,\r\n });\r\n } else {\r\n setResultEmail({\r\n success: false,\r\n uploaded: false,\r\n detectedProblems: data.DetectedProblems,\r\n });\r\n }\r\n setLoading(false);\r\n },\r\n (err) => {\r\n setResultEmail({\r\n success: false,\r\n uploaded: false,\r\n detectedProblems: err,\r\n });\r\n setLoading(false);\r\n },\r\n );\r\n }, [codiceFiscaleLocal,\r\n contrattoNexiLocal,\r\n documentoRiconoscimentoLocal,\r\n indirizzoEmail,\r\n setResultEmail,\r\n documentoAnagraficaAgenziaDelleEntrateLocal,\r\n isTitolareEffettivoCoincideLegaleRappresentante,\r\n titolariEffettiviFileState]);\r\n\r\n const mancanoAllegatiTitolareEffettivo = useMemo(() => titolariEffettiviFileState.some(\r\n (element) => element.files[0]?.file.local === null || element.files[1]?.file.local === null,\r\n ), [titolariEffettiviFileState]);\r\n\r\n return (\r\n
    \r\n \r\n {/* */}\r\n {\r\n setLoading(true);\r\n caricaContratto();\r\n }}\r\n disabled={!contrattoNexiUploaded\r\n || !documentoRiconoscimentoUploaded\r\n || !codiceFiscaleUploaded\r\n || !indirizzoEmail\r\n || !documentoAnagraficaAgenziaDelleEntrateUploaded\r\n || isTitolareEffettivoCoincideLegaleRappresentante === null\r\n || (isTitolareEffettivoCoincideLegaleRappresentante === false && mancanoAllegatiTitolareEffettivo)}\r\n >\r\n Invia i documenti\r\n \r\n \r\n
    \r\n );\r\n};\r\n\r\nWizardNavigation.defaultProps = {\r\n indirizzoEmail: '',\r\n isTitolareEffettivoCoincideLegaleRappresentante: true,\r\n};\r\n\r\nWizardNavigation.propTypes = {\r\n contrattoNexiFileState: PropTypes.shape({\r\n contrattoNexiLocal: PropTypes.shape({\r\n // eslint-disable-next-line react/forbid-prop-types\r\n file: PropTypes.object,\r\n }),\r\n contrattoNexiUploaded: PropTypes.bool,\r\n contrattoNexiStatus: PropTypes.string,\r\n }).isRequired,\r\n documentoRiconoscimentoFileState: PropTypes.shape({\r\n documentoRiconoscimentoLocal: PropTypes.shape({\r\n // eslint-disable-next-line react/forbid-prop-types\r\n file: PropTypes.object,\r\n }),\r\n documentoRiconoscimentoUploaded: PropTypes.bool,\r\n documentoRiconoscimentoStatus: PropTypes.string,\r\n }).isRequired,\r\n documentoAnagraficaAgenziaDelleEntrateFileState: PropTypes.shape({\r\n documentoAnagraficaAgenziaDelleEntrateLocal: PropTypes.shape({\r\n // eslint-disable-next-line react/forbid-prop-types\r\n file: PropTypes.object,\r\n }),\r\n documentoAnagraficaAgenziaDelleEntrateUploaded: PropTypes.bool,\r\n documentoAnagraficaAgenziaDelleEntrateStatus: PropTypes.string,\r\n }).isRequired,\r\n isTitolareEffettivoCoincideLegaleRappresentante: PropTypes.bool,\r\n titolariEffettiviFileState: PropTypes.arrayOf(PropTypes.shape({\r\n posizione: PropTypes.number,\r\n // eslint-disable-next-line react/forbid-prop-types\r\n file: PropTypes.object,\r\n })).isRequired,\r\n codiceFiscaleFileState: PropTypes.shape({\r\n codiceFiscaleLocal: PropTypes.shape({\r\n // eslint-disable-next-line react/forbid-prop-types\r\n file: PropTypes.object,\r\n }),\r\n codiceFiscaleUploaded: PropTypes.bool,\r\n codiceFiscaleStatus: PropTypes.string,\r\n }).isRequired,\r\n setResultEmail: PropTypes.func.isRequired,\r\n indirizzoEmail: PropTypes.string,\r\n};\r\n\r\nexport default WizardNavigation;\r\n","import { WebRequest } from 'framework-ui-components';\r\n\r\nconst postRichiediCgnPos = (cmd, email) => {\r\n const formData = new FormData();\r\n Object.entries(cmd).forEach(([key, val]) => {\r\n formData.append(key, val);\r\n });\r\n return WebRequest.postFile(\r\n `/CgnPos/Richiedi/?emailConferma=${email}`,\r\n formData,\r\n null,\r\n (evt) => {\r\n const progressPercent = evt.loaded / evt.total;\r\n },\r\n );\r\n};\r\n\r\nconst getQrAssociazioneCgnPos = (\r\n codiceUfficio,\r\n) => WebRequest.get('/CgnPos/QrAssociazione', {\r\n codiceUfficio,\r\n});\r\n\r\nconst postQGeneraQrAssociazionePdf = (\r\n codiceUfficio,\r\n) => WebRequest.post('/CgnPos/GeneraQrAssociazionePdf', { CodiceUfficio: codiceUfficio });\r\n\r\nexport {\r\n postRichiediCgnPos,\r\n getQrAssociazioneCgnPos,\r\n postQGeneraQrAssociazionePdf,\r\n};\r\n","import { createContext } from 'react';\r\n\r\nconst WizardContext = createContext({ idAzienda: null });\r\n\r\nexport default WizardContext;\r\n","import {\r\n useState, useCallback, useRef,\r\n} from 'react';\r\nimport { useFormField } from '../../Form/FormContext';\r\nimport useComponentStateWithValidations from './useComponentStateWithValidations';\r\n\r\nexport class ChangeValueListener {\r\n constructor() {\r\n this.listeners = {};\r\n this.value = undefined;\r\n this.validation = {};\r\n }\r\n\r\n isDifferentByLastNotification(newValue, newValidation) {\r\n if (this.value !== newValue) {\r\n return true;\r\n }\r\n if (this.validation.state !== newValidation.state || this.validation.stateMessage !== newValidation.stateMessage) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n initialize(value) {\r\n this.value = value;\r\n }\r\n\r\n onChangeValue(newValue, newValidation) {\r\n if (this.isDifferentByLastNotification(newValue, newValidation)) {\r\n this.value = newValue;\r\n this.validation = newValidation;\r\n Object.values(this.listeners).forEach((listener) => listener(newValue, newValidation));\r\n }\r\n }\r\n\r\n add(key, listener) {\r\n this.listeners[key] = listener;\r\n }\r\n}\r\n\r\n/**\r\n * Custom hook per il controllo/allineamento del valore di un componenete di inputcon lo stato della form.\r\n * @param {func} onChangeValue callback di conferma del valore\r\n * @param {func} onChange callback di modifica del valore stringa\r\n * @param {string | undefined} formFieldName campo della forma a cui collegare valore e stato\r\n * @param {array} validations validazioni\r\n * @param {object} componentRef reference del componente\r\n * @param {object} inputRef reference del componente di input\r\n * @param {string | object | undefined } format formato del valore per parsing/formatting/input dei valori\r\n * @param {number} precision precisione per formato numerico\r\n * @returns {array} stringValue, state, stateMessage, handleChange, setValue, setText, setComponentState, confirmValue\r\n */\r\nexport default function useControlledByValue(\r\n onChangeValue,\r\n onChange,\r\n formFieldName,\r\n validations,\r\n) {\r\n const [internalValue, setInternalValue] = useState();\r\n const [\r\n state, stateMessage, updateState,\r\n ] = useComponentStateWithValidations(validations);\r\n\r\n /**\r\n * Dato che ci sono delle dipendenze incrociate per creare i listerne di changeValue,\r\n * li metto in changeValueListener in modo da poterli aggiungere o rimuvere dinamicamente.\r\n */\r\n const changeValueListener = useRef(new ChangeValueListener());\r\n changeValueListener.current.add('onChangeValue', onChangeValue);\r\n\r\n const setValue = useCallback((newValue, evt, showValidation = true) => {\r\n setInternalValue(newValue);\r\n onChange(newValue, evt);\r\n const validation = updateState(newValue, showValidation);\r\n changeValueListener.current.onChangeValue(newValue, validation);\r\n }, [onChange, updateState]);\r\n\r\n const validate = useCallback(() => {\r\n const validation = updateState(internalValue, true);\r\n changeValueListener.current.onChangeValue(internalValue, validation);\r\n }, [internalValue, updateState]);\r\n\r\n const formComponentRef = useRef({});\r\n formComponentRef.current = {\r\n initializeValue: (value) => {\r\n changeValueListener.current.initialize(value);\r\n setValue(value, undefined, false);\r\n },\r\n validate,\r\n };\r\n\r\n const { onChangeValue: onFormChangeValue } = useFormField(formFieldName, formComponentRef);\r\n changeValueListener.current.add('onFormChangeValue', onFormChangeValue);\r\n\r\n return {\r\n state, stateMessage, value: internalValue, setValue, validate,\r\n };\r\n}\r\n","import React, { useImperativeHandle, useRef } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\nimport { NOOP } from '../../../../utils/const';\r\nimport Validation from '../../../Validation';\r\nimport TextField from '../../FieldControlled/TextField/TextField';\r\nimport { getInputFormat } from '../../FieldControlled/shared';\r\nimport Restriction from '../../../Restriction';\r\nimport useControlledTextByValue from './useControlledTextByValue';\r\nimport useInputConfirmValue from './useInputConfirmValue';\r\n\r\n/**\r\nComponente per l'inserimento di un valore \"formattato\".\r\n\r\nVedi [Design System di CGN - Campi di Input](https://zeroheight.com/1b5e94371/p/940c42-campi-di-input/b/003896)\r\n\r\nAl blur il valore inserito è analizzato in base al formato e alle regole di validazione è restituito (vedi porprietà onChangeValue).\r\n\r\nRef:\r\n- `setValue`: funzione per cambiare il valore dell'input.\r\n- `validate`: valida il valore attualmente inserito.\r\n- `focus`: funzione per tentare di acquisire il focus.\r\n- `contains`: funzione per verificare se il componente \"contiene\" un altro componente nel suo sotto albero.\r\n\r\nConstants:\r\n- `Input.Formats`: formati ammessi per la proprietà `format`;\r\n- `Input.States`: stati ammessi per la proprietà `state` di validations;\r\n- `Input.Validations`: validazioni fornite dal framework (vedi proprietà `validations`)\r\n- `Input.Restrictions`: restrizioni fornite dal framework (vedi proprietà `restrictions`)\r\n\r\nUtilities:\r\n- `Input.valueToString`: funzione per convertira un valore nella sua rappresentazione testuale (`valueToString(value, format, precision)`)\r\n- `Input.stringToValue`: funzione per convertira la rappresentazione testuale in un valore (`stringToValue(text, format, precision)`)\r\n*/\r\n\r\nconst Input = React.forwardRef(({\r\n action, align, className, disabled, inputProps, onActionClick, onBlur, onChange, onChangeValue: onChangeValueDef, onKeyDown,\r\n placeholder, precision, readOnly, restrictions, title, titleIcon, icon,\r\n format, validations, formFieldName, helperText, componentHeight,\r\n}, ref) => {\r\n const {\r\n text, state, stateMessage, handleChange, setValue, validate, confirm,\r\n } = useControlledTextByValue(\r\n onChangeValueDef,\r\n onChange,\r\n formFieldName,\r\n validations,\r\n format,\r\n precision,\r\n );\r\n const redefInputProps = useInputConfirmValue(confirm, onBlur, inputProps);\r\n\r\n const inputRef = useRef();\r\n useImperativeHandle(ref, () => ({\r\n setValue,\r\n validate,\r\n focus: () => inputRef.current.focus(),\r\n contains: (...args) => inputRef.current.contains(...args),\r\n }), [setValue, validate]);\r\n\r\n return (\r\n \r\n );\r\n});\r\n\r\nInput.propTypes = {\r\n /** Icona rappresentativa del campo */\r\n action: PropTypes.element,\r\n\r\n /** Allineamento del testo */\r\n align: PropTypes.oneOf(['left', 'right']),\r\n\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n\r\n /**\r\nModalità di calcolo dell'altezza del componente.\r\nSe uguale a 'with-helper-text' l'altezza del componente è comprensiva del messaggio helperText.\r\n */\r\n componentHeight: PropTypes.oneOf(['minimal', 'with-helper-text']),\r\n\r\n /** Presenta il campo in modalità disabilitato */\r\n disabled: PropTypes.bool,\r\n\r\n /**\r\nSpecifica il formato del valore (vedi `Input.Formats`).\r\n\r\nPuò essere un oggetto nel caso si voglia gestire in modo custom il formato. In questo caso l'oggetto deve avere le seguenti proprietà:\r\n\r\n- parse: funzione che restitusce un oggetto dato un testo e una lista di oggetti\r\n- format: funzione che restituisce il testo dato un item\r\n*/\r\n format: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.shape({\r\n normalizeText: PropTypes.func.isRequired,\r\n format: PropTypes.func.isRequired,\r\n parse: PropTypes.func.isRequired,\r\n }),\r\n ]),\r\n\r\n /** Nome del campo della form per collegare il componente */\r\n formFieldName: PropTypes.string,\r\n\r\n /** Messaggio di supporto all'utilizzo del componente */\r\n helperText: PropTypes.string,\r\n\r\n /** Icona rappresentativa del campo */\r\n icon: PropTypes.element,\r\n\r\n /** Proprietà specifiche del componente input. ATTENZIONE: queste proprità possono essere sovrascitte dal framework. */\r\n // eslint-disable-next-line react/forbid-prop-types\r\n inputProps: PropTypes.object,\r\n\r\n /** Funzione invocata alla pressione del componente action. restituisce l'evento. */\r\n onActionClick: PropTypes.func,\r\n\r\n /** Funzione invocata al blur del componente input. */\r\n onBlur: PropTypes.func,\r\n\r\n /** Funzione invocata alla modifica del valore. restituisce il nuovo valore e l'evento come secondo parametro. */\r\n onChange: PropTypes.func,\r\n\r\n /**\r\nFunzione invocata alla conferma dell'inserimento del valore.\r\nRitorna il valore inserito, primo parametro, e lo stato della validazione, secondo parametro.\r\n*/\r\n onChangeValue: PropTypes.func,\r\n\r\n /** Funzione invocata alla pressione di un tasto. */\r\n onKeyDown: PropTypes.func,\r\n\r\n /** Esempio testuale del dato da inserire nel campo */\r\n placeholder: PropTypes.string,\r\n\r\n /** Nel caso di formati numerici, specifica il numero massimo di cifre dopo la virgola */\r\n precision: PropTypes.number,\r\n\r\n /** Presenta il campo in modalità sola lettura */\r\n readOnly: PropTypes.bool,\r\n\r\n /** Restrizione sui caratteri ammessi nel campo (`Input.Restrictions`). Per dettagli vedi\r\n * documentazione su *Restriction* */\r\n restrictions: PropTypes.arrayOf(PropTypes.string),\r\n\r\n /** Etichetta/Componente del titolo */\r\n title: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\r\n\r\n /** Icona del titolo, da utilizzare SOLO per info o per tooltip */\r\n titleIcon: PropTypes.element,\r\n\r\n /**\r\n * Controlli da effettuare sul campo (`Input.Validations`). Per dettagli vedi documentazione su *Validation*\r\n * */\r\n validations: PropTypes.arrayOf(PropTypes.oneOfType(\r\n [\r\n PropTypes.string,\r\n PropTypes.object,\r\n PropTypes.func,\r\n ],\r\n )),\r\n};\r\n\r\nInput.defaultProps = {\r\n action: undefined,\r\n align: 'left',\r\n className: undefined,\r\n disabled: false,\r\n onActionClick: NOOP,\r\n onBlur: NOOP,\r\n onChange: NOOP,\r\n onChangeValue: NOOP,\r\n onKeyDown: undefined,\r\n placeholder: undefined,\r\n readOnly: false,\r\n title: undefined,\r\n titleIcon: undefined,\r\n icon: undefined,\r\n inputProps: undefined,\r\n format: undefined,\r\n restrictions: undefined,\r\n validations: undefined,\r\n precision: undefined,\r\n formFieldName: undefined,\r\n helperText: undefined,\r\n componentHeight: undefined,\r\n};\r\n\r\nexport default Input;\r\n\r\nInput.valueToString = (value, format, precision) => getInputFormat(format).format(value, precision);\r\nInput.stringToValue = (text, format, precision) => getInputFormat(format).parse(text, precision);\r\nInput.Formats = TextField.Formats;\r\nInput.States = TextField.States;\r\nInput.Validations = Validation.DefaultRules;\r\nInput.Restrictions = Restriction.DefaultValues;\r\n","import {\r\n useState, useCallback, useRef,\r\n} from 'react';\r\nimport { useFormField } from '../../Form/FormContext';\r\nimport { getInputFormat } from '../../FieldControlled/shared';\r\nimport useComponentStateWithValidations from './useComponentStateWithValidations';\r\nimport { ChangeValueListener } from './useControlledByValue';\r\nimport Log from '../../../../utils/log';\r\n\r\n/**\r\n * Custom hook per il controllo/allineamento della rappresentazione testuale di un valore.\r\n * Se il valore è collegata ad una form, gestisce lo stato della form.\r\n * @param {func} onChangeValue callback di conferma del valore\r\n * @param {func} onChange callback di modifica del valore stringa\r\n * @param {string | undefined} formFieldName campo della forma a cui collegare valore e stato\r\n * @param {array} validations validazioni\r\n * @param {object} componentRef reference del componente\r\n * @param {object} inputRef reference del componente di input\r\n * @param {string | object | undefined } format formato del valore per parsing/formatting/input dei valori\r\n * @param {number} precision precisione per formato numerico\r\n * @param {func | undefined} getInitialValue funzione utilizzata per l'eventuale caricamento iniziale del valore\r\n * @returns {array} stringValue, state, stateMessage, handleChange, setValue, setText, setComponentState, confirmValue\r\n */\r\nexport default function useControlledTextByValue(\r\n onChangeValue,\r\n onChange,\r\n formFieldName,\r\n validations,\r\n format,\r\n precision,\r\n getInitialValue = undefined,\r\n) {\r\n const [text, setText] = useState('');\r\n const [\r\n state, stateMessage, updateState,\r\n ] = useComponentStateWithValidations(validations);\r\n\r\n /**\r\n * Dato che ci sono delle dipendenze incrociate per creare i listerne di changeValue,\r\n * li metto in changeValueListener in modo da poterli aggiungere o rimuvere dinamicamente.\r\n */\r\n const changeValueListener = useRef(new ChangeValueListener());\r\n changeValueListener.current.add('onChangeValue', onChangeValue);\r\n\r\n const handleChange = useCallback((newText, evt) => {\r\n if (newText !== text) {\r\n setText(newText);\r\n onChange(newText, evt);\r\n }\r\n }, [text, onChange]);\r\n\r\n const changeByText = useCallback((newText, newValue, evt, showValidation = true) => {\r\n handleChange(newText, evt);\r\n const validation = updateState(newValue, showValidation);\r\n changeValueListener.current.onChangeValue(newValue, validation);\r\n }, [handleChange, updateState]);\r\n\r\n const confirm = useCallback((evt) => {\r\n const newValue = getInputFormat(format).parse(text, precision);\r\n const newText = getInputFormat(format).format(newValue, precision);\r\n changeByText(newText, newValue, evt);\r\n }, [changeByText, format, precision, text]);\r\n\r\n const validate = useCallback(() => {\r\n const newValue = getInputFormat(format).parse(text, precision);\r\n const validation = updateState(newValue, true);\r\n changeValueListener.current.onChangeValue(newValue, validation);\r\n }, [format, precision, text, updateState]);\r\n\r\n const setValue = useCallback((newValue, evt, showValidation = true) => {\r\n const newText = getInputFormat(format).format(newValue, precision);\r\n changeByText(newText, newValue, evt, showValidation);\r\n }, [changeByText, format, precision]);\r\n\r\n const initValue = useCallback((value) => {\r\n changeValueListener.current.initialize(value);\r\n setValue(value, undefined, false);\r\n }, [setValue]);\r\n\r\n const formComponentRef = useRef({});\r\n formComponentRef.current = {\r\n initializeValue: (value) => {\r\n if (getInitialValue) {\r\n const resValue = getInitialValue(value);\r\n if (resValue && resValue.then) {\r\n resValue.then(initValue).catch((error) => {\r\n Log.error(error);\r\n initValue(value);\r\n });\r\n } else {\r\n initValue(resValue);\r\n }\r\n } else {\r\n initValue(value);\r\n }\r\n },\r\n validate,\r\n };\r\n\r\n const { onChangeValue: onFormChangeValue } = useFormField(formFieldName, formComponentRef);\r\n changeValueListener.current.add('onFormChangeValue', onFormChangeValue);\r\n\r\n return {\r\n text, state, stateMessage, handleChange, setValue, validate, confirm,\r\n };\r\n}\r\n","import { useCallback, useMemo } from 'react';\r\n\r\n/**\r\n * Custom hook per la gestione della conferma automantica di un campo di input (input, textarea).\r\n * La conferma avviene al verificarsi di particolari eventi (al momento blur).\r\n *\r\n * Ritorna le proprietà dell'input con l'aggiunta degli eventi indicati.\r\n */\r\nexport default function useInputConfirmValue(confirmValue, onBlur, inputProps) {\r\n const handleBlur = useCallback((evt) => {\r\n confirmValue(evt);\r\n onBlur(evt);\r\n }, [confirmValue, onBlur]);\r\n\r\n return useMemo(() => ({\r\n onBlur: handleBlur,\r\n ...inputProps,\r\n }), [handleBlur, inputProps]);\r\n}\r\n","import React from 'react';\r\nimport Input from './Input';\r\nimport { forwardRef } from 'react';\r\n\r\n/**\r\n * Input per la gestione della mail di posta elettronica\r\n*/\r\nconst InputMail = forwardRef((props, ref) => (\r\n \r\n));\r\n\r\nInputMail.propTypes = Input.propTypes;\r\n\r\nInputMail.defaultProps = {\r\n ...Input.defaultProps,\r\n format: {\r\n normalizeText: (value) => value,\r\n format: (value) => value,\r\n parse: (value) => (value ? value.trim() : value),\r\n },\r\n title: 'Indirizzo e-mail',\r\n validations: [Input.Validations.Email],\r\n};\r\n\r\nexport default InputMail;\r\n","/* eslint-disable max-len */\r\nimport React from 'react';\r\nimport Icon from '../../Icons/Icon';\r\n\r\nexport default Icon(\r\n \r\n \r\n \r\n ,\r\n '0 0 24 24',\r\n 'BackupIcon',\r\n);\r\n","import React, { useMemo, useRef, useCallback } from 'react';\r\n\r\n/**\r\n * Gestisce il caricamento di un file creando un componente input nascosto\r\n * @param {object} props parametri\r\n * @param {string} props.id identificativo componente input\r\n * @param {boolean} props.disabled stato disabilitato\r\n * @param {array} props.accept lista di stringhe che definisce il contenuto accettato\r\n * @param {function} props.onFilesSelected callback invocata alla modifica della lista selezionta\r\n * @param {boolean} props.multiple accetta selezione multipla\r\n * @param {string} props.title titolo della label associata al componente di input\r\n * @returns {object} oggetto con prorietà inputComponent (component di input) e uploadFiles (funzione da invocare per caricare i file)\r\n */\r\nexport default function useFileUpload({\r\n id, disabled, accept, onFilesSelected, multiple = false, title,\r\n}) {\r\n const inputRef = useRef();\r\n const handleOnChange = useCallback((event) => {\r\n onFilesSelected([...event.target.files], event);\r\n }, [onFilesSelected]);\r\n\r\n const uploadFiles = useCallback((event) => {\r\n event && event.preventDefault();\r\n !disabled && inputRef.current.click();\r\n }, [disabled]);\r\n\r\n const inputComponent = useMemo(() => (\r\n <>\r\n {typeof title === 'string' && }\r\n x).join(',')) || 'true'}\r\n className=\"upload__input\"\r\n data-origin=\"fileupload\"\r\n onChange={handleOnChange}\r\n ref={inputRef}\r\n type=\"file\"\r\n />\r\n \r\n ), [accept, disabled, handleOnChange, id, multiple, title]);\r\n\r\n return { inputComponent, uploadFiles };\r\n}\r\n","import React, { useCallback } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\nimport BackupIcon from '../../../GoogleIcons/Outlined/BackupIcon';\r\nimport Link from '../../../Link/Link';\r\nimport useComponentId from '../../Hooks/useComponentId';\r\nimport useFileUploadDragAndDrop from './useFileUploadDragAndDrop';\r\nimport useFileUpload from './useFileUpload';\r\nimport FormFieldFrame from '../../FieldControlled/FormFieldFrame/FormFieldFrame';\r\nimport { getFormFieldClassName } from '../../FieldControlled/classUtilities';\r\nimport { uuid } from '../../../../utils/js';\r\n\r\nexport function getFileType(file) {\r\n let type = `.${file.name.split('.').pop()}`;\r\n if (type.indexOf('/') > -1) {\r\n type = type.substring(type.indexOf('/') + 1);\r\n }\r\n return type;\r\n}\r\n\r\nexport function isAcceptable(file, accept) {\r\n if (!accept) return true;\r\n const acceptArray = Array.isArray(accept) ? accept : [accept];\r\n\r\n if (acceptArray.some((a) => file.type.includes(a.replace('.', '')))) {\r\n return true;\r\n }\r\n\r\n const [mimeType] = file.type.split('/');\r\n\r\n if (acceptArray.some((a) => `${mimeType}/*` === a)) {\r\n return true;\r\n }\r\n\r\n return false;\r\n}\r\n\r\nfunction getSingleFileUploadEmptyClassName({\r\n state, disabled, readOnly, className, dragOver,\r\n}) {\r\n return cns(\r\n 'v2-single-file-upload__empty',\r\n {\r\n 'v2-single-file-upload__empty--drag-over': dragOver,\r\n },\r\n getFormFieldClassName(state, disabled, readOnly),\r\n className,\r\n );\r\n}\r\n\r\n/**\r\n * Caso di SingleFileUpload senza un valore\r\n*/\r\nconst SingleFileUploadEmpty = ({\r\n className, title, titleIcon, disabled, state, stateMessage, helperText, componentHeight, readOnly,\r\n accept, onChange,\r\n}) => {\r\n const id = useComponentId();\r\n\r\n const fireFileSelected = useCallback((file, event) => {\r\n if (isAcceptable(file, accept)) {\r\n onChange(\r\n {\r\n id: uuid(),\r\n file,\r\n name: file.name,\r\n size: file.size,\r\n type: getFileType(file),\r\n },\r\n event,\r\n );\r\n }\r\n }, [accept, onChange]);\r\n\r\n const onFilesSelected = useCallback((files, event) => {\r\n const file = files[0];\r\n fireFileSelected(file, event);\r\n }, [fireFileSelected]);\r\n\r\n const { inputComponent, uploadFiles } = useFileUpload({\r\n id, disabled: readOnly || disabled, accept, onFilesSelected, title,\r\n });\r\n\r\n const { dragOver, dragAndDropEventCallbacks } = useFileUploadDragAndDrop((files, event) => fireFileSelected(files[0], event), readOnly || disabled);\r\n\r\n const handleOnClick = useCallback((event) => {\r\n event.preventDefault();\r\n !disabled && uploadFiles(event);\r\n }, [disabled, uploadFiles]);\r\n\r\n return (\r\n \r\n
    \r\n {!readOnly && !dragOver && (\r\n <>\r\n \r\n Trascina qui oppure\r\n {!disabled && (\r\n \r\n cerca il file\r\n \r\n )}\r\n {disabled && ' cerca il file'}\r\n \r\n )}\r\n {!readOnly && dragOver && 'Rilascia'}\r\n {inputComponent}\r\n
    \r\n \r\n );\r\n};\r\n\r\nSingleFileUploadEmpty.propTypes = {\r\n accept: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.string), PropTypes.string]).isRequired,\r\n className: PropTypes.string,\r\n\r\n disabled: PropTypes.bool,\r\n onChange: PropTypes.func,\r\n readOnly: PropTypes.bool,\r\n state: PropTypes.oneOf(['alarm', 'warning', 'success', 'loading']),\r\n\r\n helperText: PropTypes.string,\r\n componentHeight: PropTypes.oneOf(['minimal', 'with-helper-text']),\r\n stateMessage: PropTypes.string,\r\n title: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\r\n titleIcon: PropTypes.element,\r\n};\r\n\r\nSingleFileUploadEmpty.defaultProps = {\r\n className: undefined,\r\n disabled: false,\r\n readOnly: false,\r\n state: undefined,\r\n stateMessage: undefined,\r\n helperText: undefined,\r\n componentHeight: undefined,\r\n title: undefined,\r\n onChange: undefined,\r\n titleIcon: undefined,\r\n};\r\n\r\nexport default SingleFileUploadEmpty;\r\n","import { useState, useMemo } from 'react';\r\n\r\n/**\r\n * Gestisce il D&D per l'upload di un file\r\n */\r\nexport default function useFileUploadDragAndDrop(fireFilesSelected, disabled) {\r\n const [dragOver, setDragOver] = useState(false);\r\n\r\n const dragAndDropEventCallbacks = useMemo(() => {\r\n const handleDrop = (ev) => {\r\n // Prevent default behavior (Prevent file from being opened)\r\n ev.preventDefault();\r\n setDragOver(false);\r\n\r\n !disabled && fireFilesSelected([...ev.dataTransfer.files], ev);\r\n };\r\n const handleDragEnter = () => {\r\n setDragOver(!disabled);\r\n };\r\n const handleDragOver = (ev) => {\r\n ev.preventDefault();\r\n setDragOver(!disabled);\r\n if (disabled) {\r\n // eslint-disable-next-line no-param-reassign\r\n ev.dataTransfer.dropEffect = 'none';\r\n }\r\n };\r\n const handleDragLeave = () => {\r\n setDragOver(false);\r\n };\r\n\r\n return {\r\n onDrop: handleDrop,\r\n onDragEnter: handleDragEnter,\r\n onDragOver: handleDragOver,\r\n onDragLeave: handleDragLeave,\r\n };\r\n }, [disabled, fireFilesSelected]);\r\n\r\n return { dragOver, dragAndDropEventCallbacks };\r\n}\r\n","import React from 'react';\r\nimport cns from 'classnames';\r\nimport PropTypes from 'prop-types';\r\nimport SingleFileUploadEmpty from './SingleFileUploadEmpty';\r\nimport DeleteIcon from '../../../GoogleIcons/Outlined/DeleteIcon';\r\nimport TextField from '../../FieldControlled/TextField/TextField';\r\nimport useFileUpload from './useFileUpload';\r\n\r\nconst InputPropsDenyDrop = {\r\n onDrop: (ev) => {\r\n ev.preventDefault();\r\n },\r\n onDragOver: (ev) => {\r\n ev.preventDefault();\r\n // eslint-disable-next-line no-param-reassign\r\n ev.dataTransfer.dropEffect = 'none';\r\n },\r\n};\r\n\r\n/**\r\nComponente per l'upload di un file singolo.\r\n\r\nConstants:\r\n\r\n- `SingleFileUpload.States`: stati ammessi per la proprietà state;\r\n- `SingleFileUpload.useFileUpload`: Gestisce il caricamento di un file creando un componente input nascosto;\r\n*/\r\nconst SingleFileUpload = ({\r\n accept, file, onChange,\r\n className, title, titleIcon, disabled, state, stateMessage, helperText, componentHeight, readOnly,\r\n}) => {\r\n if (!file) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n return (\r\n }\r\n onActionClick={(event) => { onChange(undefined, event); }}\r\n inputProps={InputPropsDenyDrop}\r\n />\r\n );\r\n};\r\n\r\nSingleFileUpload.propTypes = {\r\n /** Array contenente le estensioni accetatte come input */\r\n accept: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.string), PropTypes.string]),\r\n\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n\r\n /**\r\nModalità di calcolo dell'altezza del componente.\r\nSe uguale a 'with-helper-text' l'altezza del componente è comprensiva del messaggio helperText.\r\n */\r\n componentHeight: PropTypes.oneOf(['minimal', 'with-helper-text']),\r\n\r\n /** Presenta il campo in modalità disabilitato */\r\n disabled: PropTypes.bool,\r\n\r\n /**\r\n * File caricato.\r\n */\r\n file: PropTypes.shape({\r\n name: PropTypes.string.isRequired,\r\n }),\r\n\r\n /** Messaggio di supporto all'utilizzo del componente */\r\n helperText: PropTypes.string,\r\n\r\n /**\r\n * Callback invocata alla modifica del file:\r\n * ```\r\n * onChange(event, file)\r\n * ```\r\n * dove:\r\n * * *file*: oggetto con informazioni sul file (file, name, size, type)\r\n * * *event*: evento scatenato al caricamento del file\r\n */\r\n onChange: PropTypes.func,\r\n\r\n /** Presenta il campo in modalità sola lettura */\r\n readOnly: PropTypes.bool,\r\n\r\n /** Stato presentato dal componente (vedi `SingleFileUpload.States`) */\r\n state: PropTypes.oneOf(['alarm', 'warning', 'success', 'loading']),\r\n\r\n /** Messaggio di descrizione dello stato */\r\n stateMessage: PropTypes.string,\r\n\r\n /** Etichetta/Componente del titolo */\r\n title: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\r\n\r\n /** Icona del titolo, da utilizzare SOLO per info o per tooltip */\r\n titleIcon: PropTypes.element,\r\n};\r\n\r\nSingleFileUpload.defaultProps = {\r\n accept: '',\r\n className: undefined,\r\n disabled: false,\r\n file: undefined,\r\n onChange: undefined,\r\n readOnly: false,\r\n state: undefined,\r\n stateMessage: undefined,\r\n title: undefined,\r\n titleIcon: undefined,\r\n helperText: undefined,\r\n componentHeight: undefined,\r\n};\r\n\r\nSingleFileUpload.States = TextField.States;\r\nSingleFileUpload.useFileUpload = useFileUpload;\r\n\r\nexport default SingleFileUpload;\r\n","/* eslint-disable max-len */\r\nimport React from 'react';\r\nimport Icon from '../../Icons/Icon';\r\n\r\nexport default Icon(\r\n ,\r\n '0 0 24 24',\r\n 'ErrorIcon',\r\n);\r\n","import React, { useEffect, useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport FileDownloadIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/FileDownloadIcon';\r\nimport ErrorIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/ErrorIcon';\r\nimport { Button, Layout, SingleFileUpload } from 'framework-ui-components/Components/V2';\r\nimport { Link } from 'framework-ui-components';\r\nimport base64toBlob from '../../utils/fileHelper';\r\nimport { ContrattoNexiCgnPos } from '../../models/urls';\r\n\r\nconst UploadDocumento = ({\r\n title,\r\n titleFileUpload,\r\n haScaricatoContratto,\r\n setHaScaricatoContratto,\r\n fileState,\r\n setFileState,\r\n}) => {\r\n const [downloadError, setDownloadError] = useState();\r\n\r\n const { local, uploaded, status } = fileState;\r\n\r\n useEffect(() => {\r\n if (local && !uploaded) {\r\n setFileState((prev) => ({\r\n ...prev,\r\n status: 'loading',\r\n }));\r\n }\r\n }, [local, setFileState, uploaded]);\r\n\r\n const onFileChanged = (fileChanged, evt) => {\r\n setFileState((prev) => ({\r\n ...prev,\r\n local: fileChanged,\r\n uploaded: !!fileChanged,\r\n // status: null,\r\n }));\r\n };\r\n\r\n return (\r\n
    \r\n \r\n \r\n {title && (\r\n
    {title}
    \r\n )}\r\n
    \r\n \r\n
    \r\n \r\n \r\n {title && (\r\n \r\n setHaScaricatoContratto(true)}\r\n >\r\n {\r\n downloadError\r\n ? <> Riprova\r\n : <> Scarica\r\n }\r\n \r\n \r\n )}\r\n \r\n \r\n\r\n \r\n
    \r\n\r\n );\r\n};\r\n\r\nUploadDocumento.defaultProps = {\r\n title: null,\r\n};\r\n\r\nUploadDocumento.propTypes = {\r\n title: PropTypes.string,\r\n titleFileUpload: PropTypes.string.isRequired,\r\n haScaricatoContratto: PropTypes.bool.isRequired,\r\n setHaScaricatoContratto: PropTypes.func.isRequired,\r\n setFileState: PropTypes.func.isRequired,\r\n fileState: PropTypes.shape({\r\n local: PropTypes.shape({\r\n // eslint-disable-next-line react/forbid-prop-types\r\n file: PropTypes.object,\r\n }),\r\n uploaded: PropTypes.bool,\r\n status: PropTypes.string,\r\n }).isRequired,\r\n};\r\n\r\nexport default UploadDocumento;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport('./InputGroup.scss');\r\nconst InputGroup = ({ description, icon, children }) => (\r\n
    \r\n

    {icon} { description }

    \r\n
    \r\n {children}\r\n
    \r\n\r\n
    \r\n);\r\n\r\nInputGroup.Break = () => ();\r\n\r\nInputGroup.defaultProps = {\r\n icon: null,\r\n};\r\n\r\nInputGroup.propTypes = {\r\n description: PropTypes.string.isRequired,\r\n icon: PropTypes.node,\r\n children: PropTypes.node.isRequired,\r\n};\r\n\r\nexport default InputGroup;\r\n","/* eslint-disable max-len */\r\nimport React from 'react';\r\nimport Icon from '../../Icons/Icon';\r\n\r\nexport default Icon(\r\n \r\n \r\n \r\n ,\r\n '0 0 24 24',\r\n 'HelpIcon',\r\n);\r\n","import React from 'react';\r\nimport Icon from 'framework-ui-components/Components/Icons/Icon';\r\n\r\nexport default Icon(\r\n \r\n \r\n \r\n \r\n \r\n \r\n , '0 0 15.47 15.66', 'AssistenteInlineIcon');\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport Assistente from 'Assistente';\r\nimport HelpIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/HelpIcon';\r\nimport AssistenteInlineIcon from './icons/AssistenteInlineIcon';\r\n\r\nconst AssistenteButton = ({\r\n permalink, inline, children, margine, noIcon,\r\n}) => (\r\n inline\r\n ? (\r\n Assistente.apriPermalink(permalink)}\r\n role=\"presentation\"\r\n >\r\n {children}\r\n {!noIcon && ()}\r\n \r\n )\r\n : (\r\n Assistente.apriPermalink(permalink)}\r\n role=\"presentation\"\r\n >\r\n Assistente.apriPermalink(permalink)} />\r\n \r\n )\r\n);\r\n\r\nAssistenteButton.propTypes = {\r\n permalink: PropTypes.string.isRequired,\r\n inline: PropTypes.bool,\r\n children: PropTypes.node,\r\n margine: PropTypes.string,\r\n noIcon: PropTypes.bool,\r\n};\r\n\r\nAssistenteButton.defaultProps = {\r\n children: undefined,\r\n inline: false,\r\n margine: '',\r\n noIcon: false,\r\n};\r\n\r\nexport default AssistenteButton;\r\n","/* eslint-disable max-len */\r\nimport React, { useCallback, useEffect, useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Layout, InputMail, ButtonGroup, Button, SingleFileUpload,\r\n} from 'framework-ui-components/Components/V2';\r\nimport { Link, Radio } from 'framework-ui-components';\r\nimport AddIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/AddIcon';\r\nimport RemoveIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/RemoveIcon';\r\nimport ErrorIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/ErrorIcon';\r\nimport FileDownloadIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/FileDownloadIcon';\r\nimport UploadDocumento from './UploadDocumento';\r\nimport InputGroup from '../custom/InputGroup';\r\nimport { ContrattoNexiCgnPos } from '../../models/urls';\r\nimport AssistenteButton from '../AssistenteButton';\r\n\r\nconst Firma = ({\r\n haScaricatoContratto,\r\n setHaScaricatoContratto,\r\n fileCaricato,\r\n setFileCaricato,\r\n indirizzoEmail,\r\n setIndirizzoEmail,\r\n documentoAnagraficaAgenziaDelleEntrateFileState,\r\n setDocumentoAnagraficaAgenziaDelleEntrateFileState,\r\n contrattoNexiFileState,\r\n setContrattoNexiFileState,\r\n documentoRiconoscimentoFileState,\r\n setDocumentoRiconoscimentoFileState,\r\n codiceFiscaleFileState,\r\n setCodiceFiscaleFileState,\r\n titolariEffettiviFileState,\r\n setTitolariEffettiviFileState,\r\n isTitolareEffettivoCoincideLegaleRappresentante,\r\n setIsTitolareEffettivoCoincideLegaleRappresentante,\r\n}) => {\r\n const [downloadError, setDownloadError] = useState();\r\n\r\n const { contrattoNexiLocal, contrattoNexiUploaded, contrattoNexiStatus } = contrattoNexiFileState;\r\n const { documentoAnagraficaAgenziaDelleEntrateLocal, documentoAnagraficaAgenziaDelleEntrateUploaded, documentoAnagraficaAgenziaDelleEntrateStatus } = documentoAnagraficaAgenziaDelleEntrateFileState;\r\n const { documentoRiconoscimentoLocal, documentoRiconoscimentoUploaded, documentoRiconoscimentoStatus } = documentoRiconoscimentoFileState;\r\n const { codiceFiscaleLocal, codiceFiscaleUploaded, codiceFiscaleStatus } = codiceFiscaleFileState;\r\n\r\n useEffect(() => {\r\n if (contrattoNexiLocal && !contrattoNexiUploaded) {\r\n setContrattoNexiFileState((prev) => ({\r\n ...prev,\r\n Status: 'loading',\r\n }));\r\n }\r\n }, [contrattoNexiLocal, contrattoNexiUploaded, setContrattoNexiFileState]);\r\n\r\n useEffect(() => {\r\n if (documentoRiconoscimentoLocal && !documentoRiconoscimentoUploaded) {\r\n setDocumentoRiconoscimentoFileState((prev) => ({\r\n ...prev,\r\n Status: 'loading',\r\n }));\r\n }\r\n }, [documentoRiconoscimentoLocal, documentoRiconoscimentoUploaded, setDocumentoRiconoscimentoFileState]);\r\n\r\n useEffect(() => {\r\n if (codiceFiscaleLocal && !codiceFiscaleUploaded) {\r\n setCodiceFiscaleFileState((prev) => ({\r\n ...prev,\r\n Status: 'loading',\r\n }));\r\n }\r\n }, [codiceFiscaleLocal, codiceFiscaleUploaded, setCodiceFiscaleFileState]);\r\n\r\n useEffect(() => {\r\n if (documentoAnagraficaAgenziaDelleEntrateLocal && !documentoAnagraficaAgenziaDelleEntrateUploaded) {\r\n setDocumentoAnagraficaAgenziaDelleEntrateFileState((prev) => ({\r\n ...prev,\r\n Status: 'loading',\r\n }));\r\n }\r\n }, [\r\n documentoAnagraficaAgenziaDelleEntrateLocal,\r\n documentoAnagraficaAgenziaDelleEntrateUploaded,\r\n setCodiceFiscaleFileState,\r\n setDocumentoAnagraficaAgenziaDelleEntrateFileState]);\r\n\r\n const onChangeTitolareEffettivoCoincidenteRappresentateLegale = useCallback((event) => {\r\n if (event.target.value) {\r\n setIsTitolareEffettivoCoincideLegaleRappresentante(event.target.value === 'true');\r\n }\r\n }, [setIsTitolareEffettivoCoincideLegaleRappresentante]);\r\n\r\n const handleFileChangeCartaIdentita = useCallback((newLocal, posizioneNellaLista) => {\r\n setTitolariEffettiviFileState((prevState) => {\r\n const newState = [...prevState];\r\n newState[posizioneNellaLista].files[0].file.local = newLocal;\r\n newState[posizioneNellaLista].files[0].file.uploaded = !!newLocal;\r\n return newState;\r\n });\r\n }, [setTitolariEffettiviFileState]);\r\n\r\n const handleFileChangeTesseraSanitaria = useCallback((newLocal, posizioneNellaLista) => {\r\n setTitolariEffettiviFileState((prevState) => {\r\n const newState = [...prevState];\r\n newState[posizioneNellaLista].files[1].file.local = newLocal;\r\n newState[posizioneNellaLista].files[1].file.uploaded = !!newLocal;\r\n return newState;\r\n });\r\n }, [setTitolariEffettiviFileState]);\r\n\r\n return (\r\n
    \r\n \r\n
    Utilizzeremo questo indirizzo e-mail per le comunicazioni.
    \r\n \r\n \r\n \r\n {\r\n validation.state !== 'alarm' ? setIndirizzoEmail(value) : setIndirizzoEmail(null);\r\n }}\r\n />\r\n \r\n \r\n \r\n
    \r\n Informazioni utili
    )}>\r\n \r\n
    \r\n

    \r\n Il servizio CGN POS è riservato ai soli Associati CGN con il "contratto " attivo. Per poter attivare il servizio ti chiediamo di scaricare il documento contrattuale, prenderne visione, compilare i campi evidenziati in giallo, firmarlo digitalmente (.p7m) e di caricare il file firmato nella presente pagina. Tale documento è finalizzato ad ottenere lo SmartPos con cui potrai effettuare non solo i pagamenti liberi garantiti da NEXI Payments SpA, ma anche i pagamenti pagoPA e pagoF24 per te e i tuoi clienti grazie alla collaborazione con i partner tecnologici CGN Fintech Srl e CGN Service Srl. Tali soggetti, rispettivamente fornitore tecnologico e intermediario fiscale del Gruppo Servizi CGN, offrono tutte le necessarie ed opportune misure e procedure tecniche per l'erogazione del servizio.\r\n

    \r\n

    \r\n Ti ricordiamo che sarai successivamente contattato da incaricati di NEXI Payments SpA per fissare un appuntamento finalizzato all'effettiva attivazione del Servizio ed installazione dello SmartPos.\r\n Proseguendo con la richiesta accetti che tali soggetti si limiteranno a dare esecuzione alle richieste dell'utente sulle quali non entrano in merito, invitano sempre ad utilizzo corretto del servizio e declinano ogni responsabilità in merito all'utilizzo, eventualmente anche improprio, dello stesso.\r\n

    \r\n

    \r\n

    Di seguito elenchiamo le commissioni previste da Nexi
    \r\n
    \r\n
      \r\n
    • \r\n Pagamenti liberi\r\n
        \r\n
      • \r\n Credito/Debito EU 0,85%\r\n
      • \r\n
      • \r\n Commercial EU 1,55%\r\n
      • \r\n
      • \r\n Credito/Debito consumer extra EEA 1,54%\r\n
      • \r\n
      • \r\n Commercial extra EEA 2,29%\r\n
      • \r\n
      • \r\n PagoBANCOMAT 0,45%\r\n
      • \r\n
      \r\n
      \r\n Le commissioni sono incassate da Nexi Payments Spa e le percentuali sopra indicate si riferiscono all'importo del pagamento. Tali condizioni sono presenti nel Contratto NEXI, sezione “Commissioni carte di pagamento. Commissioni riservate agli aderenti CGNPOS”.\r\n
    • \r\n
    \r\n
      \r\n
    • \r\n pagoF24: la commissione a carico del contribuente è fissa e ammonta ad 2.50 € per ogni modello F24 pagato.\r\n
    • \r\n
    \r\n
      \r\n
    • \r\n pagoPA: le commissioni a carico del contribuente variano a seconda dell'importo:\r\n
        \r\n
      • \r\n Da 0 a 500 € = la commissione è fissa e ammonta ad 2,00 €\r\n
      • \r\n
      • \r\n Da 500 € a 1000 € = la commissione è fissa e ammonta ad 2.50 €\r\n
      • \r\n
      • \r\n Da 1000 € a 1500 € = la commissione è fissa e ammonta ad 3.50 €\r\n
      • \r\n
      \r\n
    • \r\n
    \r\n
      \r\n
    • \r\n Bollo Aci: la commissione a carico del contribuente è fissa e ammonta ad 2,00 €\r\n
    • \r\n
    \r\n
    \r\n

    \r\n
    \r\n \r\n \r\n Documenti per la richiesta di attivazione
    )}>\r\n \r\n \r\n
    Il titolare effettivo coincide con il legale rappresentante?
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    Contratto Nexi
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n setHaScaricatoContratto(true)}\r\n >\r\n {\r\n downloadError\r\n ? <> Riprova\r\n : <> Scarica il contratto\r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n (\r\n setContrattoNexiFileState((prev) => ({\r\n ...prev,\r\n contrattoNexiLocal: fileChanged,\r\n contrattoNexiUploaded: !!fileChanged,\r\n // Status: null,\r\n }))\r\n )}\r\n state={contrattoNexiStatus}\r\n stateMessage=\"Formato del file .p7m\"\r\n helperText=\"Formato del file .p7m\"\r\n />\r\n \r\n \r\n \r\n \r\n (\r\n setDocumentoRiconoscimentoFileState((prev) => ({\r\n ...prev,\r\n documentoRiconoscimentoLocal: fileChanged,\r\n documentoRiconoscimentoUploaded: !!fileChanged,\r\n // Status: null,\r\n }))\r\n )}\r\n state={documentoRiconoscimentoStatus}\r\n stateMessage=\"Un unico file fronte-retro\"\r\n helperText=\"Un unico file fronte-retro\"\r\n accept={['image/*', '.pdf']}\r\n />\r\n \r\n \r\n \r\n \r\n (\r\n setCodiceFiscaleFileState((prev) => ({\r\n ...prev,\r\n codiceFiscaleLocal: fileChanged,\r\n codiceFiscaleUploaded: !!fileChanged,\r\n // Status: null,\r\n }))\r\n )}\r\n state={codiceFiscaleStatus}\r\n stateMessage=\"Un unico file fronte-retro\"\r\n helperText=\"Un unico file fronte-retro\"\r\n accept={['image/*', '.pdf']}\r\n />\r\n \r\n \r\n { isTitolareEffettivoCoincideLegaleRappresentante === false && titolariEffettiviFileState.map((documenti, idx) => (\r\n // eslint-disable-next-line react/no-array-index-key\r\n \r\n \r\n \r\n 1 ? `Carta d'identità del ${idx + 1}° titolare effettivo` : \"Carta d'identità del titolare effettivo\"}\r\n componentHeight\r\n file={documenti.files[0].file.local}\r\n onChange={(fileChanged, evt) => handleFileChangeCartaIdentita(fileChanged, idx)}\r\n state={documenti.files[0].file.status}\r\n stateMessage=\"Un unico file fronte-retro\"\r\n helperText=\"Un unico file fronte-retro\"\r\n accept={['.pdf']}\r\n />\r\n \r\n \r\n \r\n \r\n 1\r\n ? `C. fiscale/Tessera Sanitaria del ${idx + 1}° titolare effettivo`\r\n : 'C. fiscale/Tessera Sanitaria del titolare effettivo'}\r\n componentHeight\r\n file={documenti.files[1].file.local}\r\n onChange={(fileChanged, evt) => handleFileChangeTesseraSanitaria(fileChanged, idx)}\r\n state={documenti.files[1].file.status}\r\n stateMessage=\"Un unico file fronte-retro\"\r\n helperText=\"Un unico file fronte-retro\"\r\n accept={['.pdf']}\r\n />\r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n (\r\n setDocumentoAnagraficaAgenziaDelleEntrateFileState((prev) => ({\r\n ...prev,\r\n documentoAnagraficaAgenziaDelleEntrateLocal: fileChanged,\r\n documentoAnagraficaAgenziaDelleEntrateUploaded: !!fileChanged,\r\n // Status: null,\r\n }))\r\n )}\r\n state={documentoAnagraficaAgenziaDelleEntrateStatus}\r\n stateMessage=\"Formato .pdf\"\r\n helperText=\"Formato .pdf\"\r\n accept={['.pdf']}\r\n />\r\n \r\n \r\n  \r\n \r\n \r\n \r\n \r\n \r\n { isTitolareEffettivoCoincideLegaleRappresentante === false && (\r\n
    \r\n \r\n {titolariEffettiviFileState && titolariEffettiviFileState.length > 1 && (\r\n setTitolariEffettiviFileState(titolariEffettiviFileState.slice(0, -1))}\r\n className=\"mt-10\"\r\n >\r\n Rimuovi ultimo titolare effettivo\r\n \r\n )}\r\n setTitolariEffettiviFileState([\r\n ...titolariEffettiviFileState,\r\n {\r\n posizione: titolariEffettiviFileState.length,\r\n files: [{\r\n file: {\r\n uploaded: null,\r\n local: null,\r\n status: null,\r\n },\r\n }, {\r\n file: {\r\n uploaded: null,\r\n local: null,\r\n status: null,\r\n },\r\n }],\r\n }])}\r\n >\r\n Aggiungi un ulteriore titolare effettivo\r\n \r\n \r\n
    \r\n )}\r\n \r\n
    \r\n

     

    \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nFirma.defaultProps = {\r\n indirizzoEmail: '',\r\n isTitolareEffettivoCoincideLegaleRappresentante: null,\r\n};\r\n\r\nFirma.propTypes = {\r\n haScaricatoContratto: PropTypes.bool.isRequired,\r\n setHaScaricatoContratto: PropTypes.func.isRequired,\r\n fileCaricato: PropTypes.bool.isRequired,\r\n setFileCaricato: PropTypes.func.isRequired,\r\n documentoAnagraficaAgenziaDelleEntrateFileState: PropTypes.shape({\r\n documentoAnagraficaAgenziaDelleEntrateLocal: PropTypes.shape({\r\n // eslint-disable-next-line react/forbid-prop-types\r\n files: PropTypes.arrayOf(PropTypes.object),\r\n }),\r\n documentoAnagraficaAgenziaDelleEntrateUploaded: PropTypes.bool,\r\n documentoAnagraficaAgenziaDelleEntrateStatus: PropTypes.string,\r\n }).isRequired,\r\n setDocumentoAnagraficaAgenziaDelleEntrateFileState: PropTypes.func.isRequired,\r\n titolariEffettiviFileState: PropTypes.arrayOf(PropTypes.shape({\r\n posizione: PropTypes.number,\r\n // eslint-disable-next-line react/forbid-prop-types\r\n file: PropTypes.object,\r\n })).isRequired,\r\n setTitolariEffettiviFileState: PropTypes.func.isRequired,\r\n contrattoNexiFileState: PropTypes.shape({\r\n contrattoNexiLocal: PropTypes.shape({\r\n // eslint-disable-next-line react/forbid-prop-types\r\n file: PropTypes.object,\r\n }),\r\n contrattoNexiUploaded: PropTypes.bool,\r\n contrattoNexiStatus: PropTypes.string,\r\n }).isRequired,\r\n setContrattoNexiFileState: PropTypes.func.isRequired,\r\n documentoRiconoscimentoFileState: PropTypes.shape({\r\n documentoRiconoscimentoLocal: PropTypes.shape({\r\n // eslint-disable-next-line react/forbid-prop-types\r\n file: PropTypes.object,\r\n }),\r\n documentoRiconoscimentoUploaded: PropTypes.bool,\r\n documentoRiconoscimentoStatus: PropTypes.string,\r\n }).isRequired,\r\n setDocumentoRiconoscimentoFileState: PropTypes.func.isRequired,\r\n codiceFiscaleFileState: PropTypes.shape({\r\n codiceFiscaleLocal: PropTypes.shape({\r\n // eslint-disable-next-line react/forbid-prop-types\r\n file: PropTypes.object,\r\n }),\r\n codiceFiscaleUploaded: PropTypes.bool,\r\n codiceFiscaleStatus: PropTypes.string,\r\n }).isRequired,\r\n setCodiceFiscaleFileState: PropTypes.func.isRequired,\r\n indirizzoEmail: PropTypes.string,\r\n setIndirizzoEmail: PropTypes.func.isRequired,\r\n fileState: PropTypes.shape({\r\n Local: PropTypes.shape({\r\n // eslint-disable-next-line react/forbid-prop-types\r\n file: PropTypes.object,\r\n }),\r\n Uploaded: PropTypes.bool,\r\n Status: PropTypes.string,\r\n }).isRequired,\r\n isTitolareEffettivoCoincideLegaleRappresentante: PropTypes.bool,\r\n setIsTitolareEffettivoCoincideLegaleRappresentante: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default Firma;\r\n","import React, { useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Image } from 'framework-ui-components';\r\nimport WizardNavigation from './WizardNavigation';\r\nimport WizardContext from './WizardContext';\r\nimport Firma from './Firma';\r\n\r\n// import('./Wizard.scss');\r\n\r\nconst Wizard = ({ setResultEmail }) => {\r\n const [haScaricatoContratto, setHaScaricatoContratto] = useState(false);\r\n const [isTitolareEffettivoCoincideLegaleRappresentante, setIsTitolareEffettivoCoincideLegaleRappresentante] = useState(null);\r\n const [titolariEffettiviFileState, setTitolariEffettiviFileState] = useState([{\r\n posizione: 0,\r\n files: [{\r\n file: {\r\n uploaded: null,\r\n local: null,\r\n status: null,\r\n },\r\n }, {\r\n file: {\r\n uploaded: null,\r\n local: null,\r\n status: null,\r\n },\r\n }],\r\n }]);\r\n const [documentoAnagraficaAgenziaDelleEntrateFileState, setDocumentoAnagraficaAgenziaDelleEntrateFileState] = useState({\r\n uploaded: null,\r\n local: null,\r\n status: null,\r\n });\r\n const [contrattoNexiFileState, setContrattoNexiFileState] = useState({\r\n uploaded: null,\r\n local: null,\r\n status: null,\r\n });\r\n const [documentoRiconoscimentoFileState, setDocumentoRiconoscimentoFileState] = useState({\r\n uploaded: null,\r\n local: null,\r\n status: null,\r\n });\r\n const [codiceFiscaleFileState, setCodiceFiscaleFileState] = useState({\r\n uploaded: null,\r\n local: null,\r\n status: null,\r\n });\r\n const [indirizzoEmail, setIndirizzoEmail] = useState(null);\r\n\r\n return (\r\n \r\n
    \r\n
    \r\n

    Firma la richiesta di attivazione per ottenere il CGN POS

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {/* */}\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n );\r\n};\r\n\r\nWizard.propTypes = {\r\n setResultEmail: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default Wizard;\r\n","/* eslint-disable no-nested-ternary */\r\nimport React, {\r\n useEffect, useState,\r\n} from 'react';\r\nimport { useDispatch } from 'react-redux';\r\nimport { setAppParamsAction } from 'framework-taskforce/actions/appParams';\r\nimport {\r\n FeedbackPanel,\r\n ViewportProvider,\r\n Button,\r\n} from 'framework-ui-components/Components/V2';\r\nimport { getSegnalazioneError } from 'framework-taskforce/models/segnalazioni';\r\nimport PageWrapper from '../../components/PageWrapper';\r\nimport Wizard from '../../components/Wizard/Wizard';\r\n\r\nconst ContrattoPos = () => {\r\n const dispatch = useDispatch();\r\n const [resultEmail, setResultEmail] = useState(null);\r\n\r\n useEffect(() => {\r\n dispatch(setAppParamsAction({\r\n sidebarSelected: '0', tabSelected: 0, scartate: null, inPresentazione: null,\r\n }));\r\n });\r\n\r\n return (\r\n \r\n \r\n
    \r\n \r\n
    \r\n {resultEmail && (\r\n
    \r\n \r\n Riceverai una telefonata per concordare il giorno di\r\n consegna del tuo nuovo CGN POS.\r\n
    \r\n Puoi chiudere questa schermata.\r\n
    \r\n ) : (\r\n resultEmail.detectedProblems.length > 1 ? (\r\n
      \r\n {resultEmail.detectedProblems.map((segnalazione, idx) => (\r\n {segnalazione}\r\n \r\n ))}\r\n
    \r\n ) : resultEmail.detectedProblems[0]\r\n )}\r\n type={resultEmail.success ? 'success' : 'alarm'}\r\n />\r\n {!resultEmail.success && resultEmail.detectedProblems && resultEmail.detectedProblems.length > 0 && (\r\n
    \r\n setResultEmail(null)}\r\n emphasis={Button.Emphasis.HIGH}\r\n primary\r\n className=\"mt-20\"\r\n >\r\n RIPROVA\r\n \r\n
    \r\n )}\r\n
    \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default ContrattoPos;\r\n","import { AuthorizedApp } from 'framework-taskforce';\r\nimport React from 'react';\r\nimport ContenutoPaginaDiSospensione from '../ContenutoPaginaDiSospensione';\r\nimport { authorizedServices } from '../models/f24';\r\nimport ContrattoPos from '../areas/virtualPos/ContrattoPos';\r\n\r\nconst ContrattoPosRoute = () => (\r\n )}\r\n >\r\n \r\n \r\n);\r\n\r\nContrattoPosRoute.defaultProps = {\r\n};\r\n\r\nContrattoPosRoute.propTypes = {\r\n};\r\n\r\nexport default ContrattoPosRoute;\r\n","import React, { useEffect, useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Image } from 'framework-ui-components';\r\nimport {\r\n Panel, FeedbackPanel, Layout, Button,\r\n} from 'framework-ui-components/Components/V2';\r\nimport { useSelector } from 'react-redux';\r\nimport FileDownloadIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/FileDownloadIcon';\r\nimport { callDownloadFile } from 'framework-taskforce/utils/file';\r\nimport { logApiError } from 'framework-taskforce/utils/log';\r\nimport { SnackbarWrapper } from 'framework-ui-components/Components/Snackbar';\r\nimport WizardContext from '../../components/Wizard/WizardContext';\r\nimport InputGroup from '../../components/custom/InputGroup';\r\nimport apiDownloadFile from '../../apis/file';\r\nimport { postQGeneraQrAssociazionePdf } from '../../apis/cgnPos';\r\n\r\n// import('./Wizard.scss');\r\n\r\nconst Wizard = ({ qrCodeBase64, segnalazioni }) => {\r\n const codiceUfficioSelezionato = useSelector((store) => store.appParams.ufficioSelezionato);\r\n const [loading, setLoading] = useState(false);\r\n\r\n const scaricaQuietanza = (idDelega) => {\r\n setLoading(true);\r\n postQGeneraQrAssociazionePdf(idDelega).then((res) => {\r\n if (res.Success) {\r\n callDownloadFile(\r\n apiDownloadFile,\r\n res.Result.nomeFile,\r\n res.Result.idFile,\r\n codiceUfficioSelezionato,\r\n res.Result.nomeFile,\r\n ).then((resDownload) => {\r\n setLoading(false);\r\n }).catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n } else {\r\n setLoading(false);\r\n SnackbarWrapper.notifyError(res.DetectedProblems || 'Si è verificato un errore');\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n // setLoading(false);\r\n });\r\n };\r\n\r\n return (\r\n \r\n
    \r\n

    Collega il CGN POS all'ufficio

    \r\n {/*

    Forniti da “NEXI”

    */}\r\n
    \r\n
    \r\n
    \r\n
    \r\n {segnalazioni.length > 0\r\n ? (\r\n \r\n
      \r\n {segnalazioni.map((segnalazione, idx) => (\r\n {segnalazione.msg}\r\n \r\n ))}\r\n
    \r\n
    \r\n )}\r\n type=\"alarm\"\r\n />\r\n )\r\n : (\r\n
    \r\n Codice QR
    )}>\r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n Ufficio {codiceUfficioSelezionato}\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n

     

    \r\n
    \r\n\r\n
    \r\n
    \r\n )}\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n Se riscontri problemi, prova a stampare l'immagine del codice QR\r\n
    \r\n scaricaQuietanza(codiceUfficioSelezionato)}\r\n className=\"ml-24\"\r\n running={loading}\r\n >\r\n \r\n Scarica l'immagine del Codice QR\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nWizard.propTypes = {\r\n qrCodeBase64: PropTypes.string.isRequired,\r\n segnalazioni: PropTypes.arrayOf(\r\n PropTypes.shape({\r\n type: PropTypes.number.isRequired,\r\n }),\r\n ).isRequired,\r\n};\r\n\r\nexport default Wizard;\r\n","import React, {\r\n useEffect, useState,\r\n} from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { setAppParamsAction } from 'framework-taskforce/actions/appParams';\r\nimport {\r\n ViewportProvider,\r\n} from 'framework-ui-components/Components/V2';\r\nimport { Spinner } from 'framework-ui-components';\r\nimport { getSegnalazioneError } from 'framework-taskforce/models/segnalazioni';\r\nimport { logApiError } from 'framework-taskforce/utils/log';\r\nimport PageWrapper from '../../components/PageWrapper';\r\nimport WizardQr from './WizardQr';\r\nimport { getQrAssociazioneCgnPos } from '../../apis/cgnPos';\r\n\r\nconst AssociaPos = () => {\r\n const dispatch = useDispatch();\r\n\r\n const codiceUfficioSelezionato = useSelector((store) => store.appParams.ufficioSelezionato);\r\n\r\n const [qrCodeBase64, setQrCodeBase64] = useState(null);\r\n const [segnalazioni, setSegnalazioni] = useState([]);\r\n const [loading, setLoading] = useState(false);\r\n\r\n useEffect(() => {\r\n dispatch(setAppParamsAction({\r\n sidebarSelected: '0', tabSelected: 0, scartate: null, inPresentazione: null,\r\n }));\r\n });\r\n\r\n useEffect(() => {\r\n if (!qrCodeBase64) {\r\n setLoading(true);\r\n getQrAssociazioneCgnPos(codiceUfficioSelezionato)\r\n .then((response) => {\r\n if (response.Success && response.Result !== null) {\r\n setQrCodeBase64(response.Result);\r\n } else {\r\n setSegnalazioni(\r\n response.DetectedProblems.map((err) => getSegnalazioneError(err)),\r\n );\r\n }\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n }\r\n }, [codiceUfficioSelezionato, qrCodeBase64, setLoading]);\r\n\r\n return (\r\n \r\n \r\n {!loading ? (\r\n
    \r\n \r\n
    \r\n ) : (\r\n
    \r\n
    \r\n \r\n
      Sto impostando i dati...
    \r\n
    \r\n
    \r\n )}\r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default AssociaPos;\r\n","import { AuthorizedApp } from 'framework-taskforce';\r\nimport React from 'react';\r\nimport ContenutoPaginaDiSospensione from '../ContenutoPaginaDiSospensione';\r\nimport { authorizedServices } from '../models/f24';\r\nimport AssociaPos from '../areas/virtualPos/AssociaPos';\r\n\r\nconst AssociaPosRoute = () => (\r\n )}\r\n >\r\n \r\n \r\n);\r\n\r\nAssociaPosRoute.defaultProps = {\r\n};\r\n\r\nAssociaPosRoute.propTypes = {\r\n};\r\n\r\nexport default AssociaPosRoute;\r\n","/* eslint-disable no-nested-ternary */\r\nimport React, {\r\n useCallback, useEffect, useState, useRef,\r\n} from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport {\r\n Spinner, Form, Input, Link,\r\n} from 'framework-ui-components';\r\nimport {\r\n Button, FeedbackPanel,\r\n} from 'framework-ui-components/Components/V2';\r\nimport { logApiError } from 'framework-taskforce/utils/log';\r\nimport FwPlugins from 'framework-plugins';\r\nimport { getSegnalazioneError } from 'framework-taskforce/models/segnalazioni';\r\nimport { isEmptyObject } from 'framework-taskforce/utils/object';\r\nimport { useHistory, useParams } from 'react-router';\r\nimport EditIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/EditIcon';\r\nimport TemplateGrid from '../../../components/TemplateGrid/TemplateGrid';\r\nimport { getOttieniDatiUtenteUfficio, postAggiornaDatiUtenteUfficio } from '../../../apis/pagoF24';\r\nimport { getOttieniRecapiti, postAggiungiRecapito, postModificaRecapito } from '../../../apis/anagrafiche';\r\nimport { pluginImportaTributiCgnPosUrl } from '../../../models/urls';\r\nimport { STEP_PLUGIN_PAGOF24 } from '../../../models/f24';\r\n\r\nconst DatiUtenteUfficioPerMailCgnPos = () => {\r\n const studioSelezionato = useSelector((store) => store.appParams.studioSelezionato);\r\n const nominativoSogg = useSelector((store) => store.soggetto.nominativo);\r\n const codiceUfficioSelezionato = useSelector((store) => store.appParams.ufficioSelezionato);\r\n const contribuenteIdAnagrafica = useSelector((store) => store.soggetto.idAnagrafica);\r\n\r\n const [loading, setLoading] = useState(true);\r\n const [formData, setFormData] = useState({ });\r\n const [isFormValid, setIsFormValid] = useState(false);\r\n const [datiUtenteUfficio, setDatiUtenteUfficio] = useState(null);\r\n const [segnalazioni, setSegnalazioni] = useState(false);\r\n const [emailPresente, setEmailPresente] = useState(null);\r\n const [emailConfermata, setEmailConfermata] = useState(null);\r\n const [modificaMail, setModificaMail] = useState(false);\r\n const [recapiti, setRecapiti] = useState([]);\r\n\r\n const formRef = useRef();\r\n const history = useHistory();\r\n\r\n const presetForm = useCallback(({ FormErrors, ...datoModificato }) => {\r\n if (!formData || isEmptyObject(datoModificato)) return;\r\n\r\n let cambiataEmail = false;\r\n if (datoModificato.EmailDestinatario) {\r\n cambiataEmail = true;\r\n }\r\n\r\n const newStato = { ...formData, ...datoModificato };\r\n\r\n if (cambiataEmail) {\r\n newStato.ConfermaEmail = null;\r\n }\r\n\r\n setFormData(newStato);\r\n }, [formData]);\r\n\r\n const recuperaEmailPredefinita = useCallback((risultatiPrecedenti) => {\r\n if (emailPresente === null) {\r\n getOttieniRecapiti(contribuenteIdAnagrafica)\r\n .then((res) => {\r\n setRecapiti(res.Result);\r\n if (res.Success && res.Result) {\r\n const recapito = res.Result.find((x) => (x.Predefinito ? x : false));\r\n if (recapito) {\r\n setEmailPresente(recapito);\r\n setFormData({ ...risultatiPrecedenti, EmailDestinatario: recapito.Email, ConfermaEmail: recapito.Email });\r\n } else {\r\n setEmailPresente(false);\r\n setFormData({ ...risultatiPrecedenti, EmailDestinatario: null, ConfermaEmail: null });\r\n }\r\n } else {\r\n setEmailPresente(false);\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n } else {\r\n setEmailPresente(false);\r\n setLoading(false);\r\n }\r\n }, [contribuenteIdAnagrafica, emailPresente]);\r\n\r\n const ottieniDatiUtenteUfficio = useCallback(() => {\r\n if (datiUtenteUfficio === null) {\r\n getOttieniDatiUtenteUfficio(codiceUfficioSelezionato)\r\n .then((res) => {\r\n if (res.Success) {\r\n setDatiUtenteUfficio(res.Result || false);\r\n if (res.Result) {\r\n if (contribuenteIdAnagrafica\r\n && emailPresente === null) {\r\n setLoading(true);\r\n recuperaEmailPredefinita(res.Result);\r\n }\r\n }\r\n } else {\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n }\r\n }, [codiceUfficioSelezionato, contribuenteIdAnagrafica, datiUtenteUfficio, emailPresente, recuperaEmailPredefinita]);\r\n\r\n useEffect(() => {\r\n if (datiUtenteUfficio === null) {\r\n setLoading(true);\r\n ottieniDatiUtenteUfficio();\r\n }\r\n }, [datiUtenteUfficio, ottieniDatiUtenteUfficio]);\r\n\r\n const aggiungiRecapito = useCallback(() => {\r\n const oggettoCreazione = {\r\n IdStudio: studioSelezionato,\r\n IdAnagrafica: contribuenteIdAnagrafica,\r\n ...formData,\r\n Predefinito: true,\r\n };\r\n\r\n oggettoCreazione.Email = formData.EmailDestinatario;\r\n\r\n const emailGiaPresente = recapiti.find((x) => (x.Email === formData.EmailDestinatario ? x : false));\r\n if (emailGiaPresente) {\r\n emailGiaPresente.Predefinito = true;\r\n emailGiaPresente.IdRecapito = emailGiaPresente.Id;\r\n postModificaRecapito(emailGiaPresente)\r\n .then((resModifica) => {\r\n if (resModifica.Success) {\r\n setEmailConfermata(true);\r\n } else {\r\n setSegnalazioni(resModifica.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n } else {\r\n postAggiungiRecapito(oggettoCreazione)\r\n .then((res) => {\r\n if (res.Success) {\r\n setEmailConfermata(true);\r\n } else {\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n }\r\n }, [formData, contribuenteIdAnagrafica, studioSelezionato]);\r\n\r\n const confermaMail = useCallback(() => {\r\n if (emailPresente.Email !== formData.EmailDestinatario) {\r\n const newOggettoModifica = {\r\n ...emailPresente,\r\n IdRecapito: emailPresente.Id,\r\n };\r\n newOggettoModifica.Predefinito = false;\r\n newOggettoModifica.Email = formData.EmailDestinatario;\r\n\r\n postModificaRecapito(newOggettoModifica)\r\n .then((res) => {\r\n if (res.Success) {\r\n if (recapiti) {\r\n const emailGiaPresente = recapiti.find((x) => (x.Email === formData.Email ? x : false));\r\n if (emailGiaPresente) {\r\n emailGiaPresente.Predefinito = true;\r\n emailGiaPresente.IdRecapito = emailGiaPresente.Id;\r\n postModificaRecapito(emailGiaPresente)\r\n .then((resModifica) => {\r\n if (resModifica.Success) {\r\n setEmailConfermata(true);\r\n } else {\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n } else {\r\n aggiungiRecapito();\r\n }\r\n }\r\n } else {\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n } else {\r\n setEmailConfermata(true);\r\n }\r\n }, [aggiungiRecapito, emailPresente, formData, recapiti]);\r\n\r\n const aggiornaDatiUtenteUfficio = useCallback(() => {\r\n setLoading(true);\r\n postAggiornaDatiUtenteUfficio({\r\n CodiceUfficio: codiceUfficioSelezionato,\r\n Email: 'no-reply-cgnf24@cgn.it',\r\n ...formData,\r\n })\r\n .then((response) => {\r\n if (response.Success) {\r\n setLoading(true);\r\n if (emailPresente && emailPresente.Id) {\r\n confermaMail();\r\n } else { aggiungiRecapito(); }\r\n // proseguiInvio();\r\n } else {\r\n setSegnalazioni(response.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n }, [aggiungiRecapito, codiceUfficioSelezionato, confermaMail, emailPresente, formData]);\r\n\r\n const proseguiInvio = useCallback(() => {\r\n FwPlugins.postMessageToParent('SERVIZIO_PAGOF24_FEEDBACK', STEP_PLUGIN_PAGOF24.EMAIL);\r\n history.push(pluginImportaTributiCgnPosUrl(codiceUfficioSelezionato));\r\n }, [codiceUfficioSelezionato, history]);\r\n\r\n useEffect(() => {\r\n if (emailConfermata) {\r\n proseguiInvio();\r\n }\r\n }, [emailConfermata, proseguiInvio]);\r\n\r\n return (\r\n
    \r\n {loading ? (\r\n
    \r\n \r\n
      Sto impostando i dati...
    \r\n
    \r\n ) : (\r\n 0 && '100%',\r\n }}\r\n >\r\n {!loading && segnalazioni.length > 0\r\n ? (\r\n \r\n
      \r\n {segnalazioni.map((segnalazione, idx) => (\r\n {segnalazione.msg}\r\n \r\n ))}\r\n
    \r\n
    \r\n )}\r\n type=\"alarm\"\r\n />\r\n )\r\n : (\r\n setIsFormValid(validity)}\r\n >\r\n
    \r\n Comunicazioni via e-mail\r\n
    \r\n
    \r\n CGN POS include una funzione di comunicazione automatica tramite e-mail per\r\n
    \r\n mantenere i clienti informati sull'esito del pagamento.\r\n
    \r\n
    \r\n Il mittente sei tu\r\n
    \r\n
    \r\n Qui puoi scegliere il nome che desideri utilizzare come mittente nell'intestazione\r\n
    \r\n dell'e-mail.\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Il destinatario è il tuo cliente\r\n
    \r\n
    \r\n Chiedi al cliente a quale indirizzo e-mail preferisce farsi spedire queste\r\n
    \r\n comunicazioni.\r\n
    \r\n {!emailConfermata && (\r\n
    \r\n
    \r\n \r\n \r\n {emailPresente && emailPresente.Id && !modificaMail ? (\r\n
    \r\n { setModificaMail(true); presetForm({ ConfermaEmail: null }); }}\r\n emphasis={Button.Emphasis.LOW}\r\n >\r\n \r\n Modifica\r\n \r\n
    \r\n ) : [\r\n
    ,\r\n ,\r\n ]}\r\n \r\n
    \r\n
    \r\n )}\r\n
    \r\n \r\n )}\r\n
    \r\n
    \r\n {!segnalazioni.length > 0 ? (\r\n aggiornaDatiUtenteUfficio()}\r\n emphasis={Button.Emphasis.HIGH}\r\n primary\r\n disabled={!isFormValid}\r\n running={loading}\r\n >\r\n AVANTI\r\n \r\n ) : (\r\n { FwPlugins.postMessageToParent('SERVIZIO_PAGOF24_RIPROVA', STEP_PLUGIN_PAGOF24.EMAIL); setSegnalazioni([]); }}\r\n emphasis={Button.Emphasis.HIGH}\r\n primary\r\n running={loading}\r\n >\r\n RIPROVA\r\n \r\n )}\r\n
    \r\n
    \r\n
    \r\n )}\r\n
    \r\n );\r\n};\r\n\r\nexport default DatiUtenteUfficioPerMailCgnPos;\r\n","import { AuthorizedApp } from 'framework-taskforce';\r\nimport React from 'react';\r\nimport ContenutoPaginaDiSospensione from '../ContenutoPaginaDiSospensione';\r\nimport DatiUtenteUfficioPerMailCgnPos from '../areas/plugins/datiUtenteUfficio/DatiUtenteUfficioPerMailCgnPos';\r\nimport { authorizedServices } from '../models/f24';\r\n\r\nconst DatiUtenteUfficioPerMailCgnPosRoute = () => (\r\n )}\r\n >\r\n \r\n \r\n);\r\n\r\nDatiUtenteUfficioPerMailCgnPosRoute.defaultProps = {\r\n};\r\n\r\nDatiUtenteUfficioPerMailCgnPosRoute.propTypes = {\r\n};\r\n\r\nexport default DatiUtenteUfficioPerMailCgnPosRoute;\r\n","/* eslint-disable no-nested-ternary */\r\nimport React, {\r\n useCallback, useEffect, useState, useRef,\r\n} from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport {\r\n Spinner,\r\n} from 'framework-ui-components';\r\nimport {\r\n Button, FeedbackPanel,\r\n} from 'framework-ui-components/Components/V2';\r\nimport Log, { logApiError } from 'framework-taskforce/utils/log';\r\nimport FwPlugins, { IFrame } from 'framework-plugins';\r\nimport { getSegnalazioneError } from 'framework-taskforce/models/segnalazioni';\r\nimport usePluginsReducer from 'framework-plugins/hooks/usePluginReducer';\r\nimport useSignalR from 'framework-ui-components/Components/Hooks/useSignalR';\r\nimport {\r\n postImportaTributi,\r\n postCreaDeleghePerTributiImportati,\r\n} from '../../../apis/contribuente';\r\nimport { postDichiaraCompleta, postDichiaraCompleteMassivamente } from '../../../apis/deleghe';\r\nimport { postPresentaConPagoF24Pos } from '../../../apis/pagoF24';\r\nimport { STEP_PLUGIN_PAGOF24 } from '../../../models/f24';\r\n\r\nconst ImportaTributiCgnPos = () => {\r\n const contribuenteIdAnagrafica = useSelector((store) => store.soggetto.idAnagrafica);\r\n const contribuenteId = useSelector((store) => store.soggetto.idContribuente);\r\n const tipoModelloDichiarativo = useSelector((store) => store.appParams.tipoModelloDichiarativo);\r\n const annoCampagnaServizioEsterno = useSelector((store) => store.appParams.annoCampagnaServizioEsterno);\r\n\r\n const [loading, setLoading] = useState(true);\r\n const [dettaglioImposte, setDettaglioImposte] = useState(false);\r\n const [tributiImportati, setTributiImportati] = useState(false);\r\n const [stoCreandoLeDeleghe, setStoCreandoLeDeleghe] = useState(false);\r\n const [delegheCompletate, setDelegheCompletate] = useState(false);\r\n const [deleghePresentate, setDeleghePresentate] = useState(false);\r\n const [segnalazioni, setSegnalazioni] = useState(false);\r\n const [primaImportazione, setPrimaImportazione] = useState(true);\r\n const [linkPagoF24Carta, setLinkPagoF24Carta] = useState();\r\n\r\n const importaTributi = useCallback((datiServizioEsterno) => {\r\n if (primaImportazione) {\r\n FwPlugins.postMessageToParent('SERVIZIO_PAGOF24_FEEDBACK', STEP_PLUGIN_PAGOF24.FEEDBACK);\r\n setLoading(true);\r\n setPrimaImportazione(false);\r\n const oggettoTributiDaImportare = {\r\n IdContribuente: contribuenteId,\r\n EstremiProvenienzaTributi: {\r\n TipoModelloDichiarazione: tipoModelloDichiarativo,\r\n Campagna: annoCampagnaServizioEsterno,\r\n IdDichiarazione: datiServizioEsterno.identificativoProvenienzaTributi,\r\n ChiaveProvenienzaTributi: datiServizioEsterno.identificativoProvenienzaTributi,\r\n Ordinaria: true,\r\n },\r\n DebitiTributiLocali: datiServizioEsterno.imposte.filter((tributo) => tributo.ImportoDaVersare > 0).map((tributo) => (\r\n {\r\n CodiceTributo: tributo.Tributo.Codice,\r\n ChiaveTributo: tributo.IdentificativoTributoServizioF24,\r\n Importo: tributo.ImportoDaVersare,\r\n DataScadenza: datiServizioEsterno.dataScadenza,\r\n CodiceComuneOStatoEstero: tributo.Comune.Codice,\r\n Ravvedimento: false,\r\n ImmobiliVariati: false,\r\n Acconto: datiServizioEsterno.tipoVersamento === 'acconto',\r\n Saldo: datiServizioEsterno.tipoVersamento === 'saldo',\r\n NumeroImmobili: tributo.NumeroImmobili,\r\n Detrazione: tributo.ImportoDetrazioni || 0.0,\r\n MeseRiferimento: null,\r\n AnnoRiferimento: annoCampagnaServizioEsterno,\r\n IdentificativoOperazione: null,\r\n NumeroRate: null,\r\n Maggiora: null,\r\n }\r\n )),\r\n };\r\n postImportaTributi(oggettoTributiDaImportare)\r\n .then((res) => {\r\n if (res.Success) {\r\n FwPlugins.postMessageToParent('IMPORTATI_TRIBUTI_IN_F24', true);\r\n setTributiImportati(true);\r\n } else {\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n setLoading(false);\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n }\r\n }, [annoCampagnaServizioEsterno, contribuenteId, primaImportazione, tipoModelloDichiarativo]);\r\n\r\n useEffect(() => {\r\n if (dettaglioImposte) {\r\n importaTributi(dettaglioImposte);\r\n }\r\n }, [dettaglioImposte, importaTributi]);\r\n\r\n const impostaTributi = useCallback((datiServizioEsterno) => {\r\n if (datiServizioEsterno) {\r\n setDettaglioImposte(datiServizioEsterno);\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (contribuenteIdAnagrafica\r\n && !dettaglioImposte) {\r\n FwPlugins.postMessageToParent('SERVIZIO_PAGOF24_EMAIL_CONFERMATA', STEP_PLUGIN_PAGOF24.EMAIL);\r\n }\r\n }, [contribuenteIdAnagrafica, dettaglioImposte]);\r\n\r\n const creDeleghe = useCallback((identificativoProvenienzaTributi) => {\r\n FwPlugins.postMessageToParent('SERVIZIO_PAGOF24_FEEDBACK', STEP_PLUGIN_PAGOF24.FEEDBACK);\r\n setLoading(true);\r\n postCreaDeleghePerTributiImportati({\r\n IdContribuente: contribuenteId,\r\n ChiaveProvenienzaTributi: identificativoProvenienzaTributi,\r\n })\r\n .then((res) => {\r\n if (res.Success && res.Result) {\r\n FwPlugins.postMessageToParent('IMPORTATI_TRIBUTI_IN_F24', true);\r\n setStoCreandoLeDeleghe(true);\r\n } else {\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n setLoading(false);\r\n }\r\n })\r\n .catch((e) => {\r\n logApiError(e);\r\n setLoading(false);\r\n });\r\n }, [contribuenteId]);\r\n\r\n usePluginsReducer(() => ({\r\n REGISTRATO_UTILIZZO_IN_SERVIZIO: creDeleghe,\r\n TRIBUTI_DA_IMPORTARE: impostaTributi,\r\n }), []);\r\n\r\n const lista = [];\r\n const listaDeleghe = useRef({ lista });\r\n\r\n const settaDeleghe = useCallback((risposta) => {\r\n const arrayRisposta = (Array.isArray(risposta) ? risposta : [risposta]);\r\n listaDeleghe.current.lista = [\r\n ...listaDeleghe.current.lista,\r\n ...arrayRisposta,\r\n ];\r\n }, []);\r\n\r\n useSignalR('DelegaConUtilizziCreata', (data) => {\r\n Log.info('Delega creata');\r\n settaDeleghe(data);\r\n });\r\n\r\n useSignalR('CreazioneDeleghePerContribuenteFallita', (data) => {\r\n setSegnalazioni([getSegnalazioneError(data.MotivazioneFallimento)]);\r\n setLoading(false);\r\n });\r\n\r\n useSignalR('AvvioSessioneVersamentoDelegaPagoF24Completata', (data) => {\r\n setLoading(false);\r\n });\r\n\r\n useSignalR('AvvioSessioneVersamentoDelegaPagoF24Fallita', (data) => {\r\n FwPlugins.postMessageToParent('SERVIZIO_PAGOF24_FEEDBACK_GRANDE', STEP_PLUGIN_PAGOF24.FEEDBACK_GRANDE);\r\n setSegnalazioni([getSegnalazioneError(data.MotivazioneFallimento)]);\r\n setLoading(false);\r\n });\r\n\r\n const dichiaraCompleta = useCallback(() => {\r\n FwPlugins.postMessageToParent('SERVIZIO_PAGOF24_FEEDBACK', STEP_PLUGIN_PAGOF24.FEEDBACK);\r\n setLoading(true);\r\n // è stato notato che a volte la lista è senza elementi ma nella chiamata successiva ci sono\r\n if (listaDeleghe.current.lista.length > 0) {\r\n if (listaDeleghe.current.lista.length <= 4) {\r\n postDichiaraCompleteMassivamente(listaDeleghe.current.lista.map((x) => x.IdDelega))\r\n .then((response) => {\r\n if (response.Success) {\r\n FwPlugins.postMessageToParent('DELGHE_SPOSTATE_A_COMPLETATE', STEP_PLUGIN_PAGOF24.FEEDBACK);\r\n setDelegheCompletate(true);\r\n postPresentaConPagoF24Pos(listaDeleghe.current.lista[0].IdDelega)\r\n .then((res) => {\r\n if (res.Success) {\r\n FwPlugins.postMessageToParent('DELGHE_PRESENTATE_CON_F24', STEP_PLUGIN_PAGOF24.PLUGIN_FINTECH);\r\n setDeleghePresentate(true);\r\n setLoading(false);\r\n setLinkPagoF24Carta(res.Result.Link);\r\n } else {\r\n FwPlugins.postMessageToParent('SERVIZIO_PAGOF24_FEEDBACK_GRANDE', STEP_PLUGIN_PAGOF24.FEEDBACK_GRANDE);\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n setLoading(false);\r\n }\r\n })\r\n .catch((err) => {\r\n FwPlugins.postMessageToParent('SERVIZIO_PAGOF24_FEEDBACK_GRANDE', STEP_PLUGIN_PAGOF24.FEEDBACK_GRANDE);\r\n Log.error(err);\r\n setLoading(false);\r\n });\r\n } else {\r\n setSegnalazioni(response.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n setLoading(false);\r\n }\r\n })\r\n .catch((err) => {\r\n Log.error(err);\r\n setLoading(false);\r\n });\r\n } else {\r\n setSegnalazioni([{ msg: 'Attenzione hai generato più di una delega' }]);\r\n }\r\n } else {\r\n // dopo un secondo riprovo\r\n setTimeout(() => {\r\n if (listaDeleghe.current.lista.length <= 4) {\r\n postDichiaraCompleteMassivamente(listaDeleghe.current.lista.map((x) => x.IdDelega))\r\n .then((response) => {\r\n if (response.Success) {\r\n FwPlugins.postMessageToParent('DELGHE_SPOSTATE_A_COMPLETATE', STEP_PLUGIN_PAGOF24.FEEDBACK);\r\n setDelegheCompletate(true);\r\n postPresentaConPagoF24Pos(listaDeleghe.current.lista.map((x) => x.IdDelega))\r\n .then((res) => {\r\n if (res.Success) {\r\n FwPlugins.postMessageToParent('DELGHE_PRESENTATE_CON_F24', STEP_PLUGIN_PAGOF24.FEEDBACK);\r\n setDeleghePresentate(true);\r\n setLinkPagoF24Carta(res.Result.Link);\r\n } else {\r\n FwPlugins.postMessageToParent('SERVIZIO_PAGOF24_FEEDBACK_GRANDE', STEP_PLUGIN_PAGOF24.FEEDBACK_GRANDE);\r\n setSegnalazioni(res.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n setLoading(false);\r\n }\r\n })\r\n .catch((err) => {\r\n FwPlugins.postMessageToParent('SERVIZIO_PAGOF24_FEEDBACK_GRANDE', STEP_PLUGIN_PAGOF24.FEEDBACK_GRANDE);\r\n Log.error(err);\r\n setLoading(false);\r\n });\r\n } else {\r\n setSegnalazioni(response.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n setLoading(false);\r\n }\r\n })\r\n .catch((err) => {\r\n Log.error(err);\r\n setLoading(false);\r\n });\r\n } else {\r\n setSegnalazioni([{ msg: 'Attenzione hai generato più di una delega' }]);\r\n }\r\n }, 1000);\r\n }\r\n }, []);\r\n\r\n useSignalR('CreazioneDeleghePerContribuenteCompletata', (data) => {\r\n if (`${data.IdContribuente}` === `${contribuenteId}`) { dichiaraCompleta(); }\r\n });\r\n\r\n const chiudiProcessoPagoF24 = useCallback(() => {\r\n FwPlugins.postMessageToParent('CHIUDI_PROCESSO_F24', true);\r\n }, []);\r\n\r\n const handlePostMessageFintech = useCallback((payload) => {\r\n if (listaDeleghe.current.lista[0] && listaDeleghe.current.lista[0].IdDelega\r\n && linkPagoF24Carta) {\r\n const { IdDelega } = listaDeleghe.current.lista[0];\r\n\r\n if ((payload.esito === 'CHIUSO_PLUGIN'\r\n || payload.esito === 'ANNULLATA'\r\n || payload.esito === 'ERRORE'\r\n || payload.esito === 'KO') && IdDelega) {\r\n postDichiaraCompleta({ IdDelega }).then((response) => {\r\n if (response.Success) {\r\n chiudiProcessoPagoF24();\r\n if (payload.descrizione && payload.esito !== 'CHIUSO_PLUGIN') {\r\n setSegnalazioni([{ msg: payload.descrizione }]);\r\n }\r\n } else {\r\n chiudiProcessoPagoF24();\r\n // setTitoloFeedbackModal('Ops...');\r\n // setSegnalazioni([{ msg: 'Qualcosa è andato storto e la tua delega potrebbe essere rimasta in presentazione' }]);\r\n }\r\n }).catch((err) => {\r\n // Log.error(err);\r\n setLoading(false);\r\n // setTitoloFeedbackModal('Ops...');\r\n // setSegnalazioni([{ msg: 'Qualcosa è andato storto e la tua delega potrebbe essere rimasta in presentazione' }]);\r\n });\r\n } else if (payload.esito === 'OK') {\r\n chiudiProcessoPagoF24();\r\n }\r\n }\r\n }, [chiudiProcessoPagoF24, linkPagoF24Carta]);\r\n\r\n usePluginsReducer(\r\n () => ({\r\n ESITO_INVIO_CGNPOS: (payload) => {\r\n handlePostMessageFintech(payload);\r\n },\r\n }),\r\n [handlePostMessageFintech],\r\n );\r\n\r\n return (\r\n
    \r\n {loading ? (\r\n
    \r\n \r\n  \r\n
    \r\n {!tributiImportati ? 'Sto importando i tributi...' : (!delegheCompletate ? 'Sto elaborando la delega...' : 'Sto creando la mail...')}\r\n
    \r\n
    \r\n ) : (\r\n \r\n {!loading && segnalazioni.length > 0\r\n ? (\r\n \r\n
    \r\n {segnalazioni.map((segnalazione, idx) => (\r\n {segnalazione.msg}.\r\n

    \r\n ))}\r\n
    \r\n
    \r\n Il pagamento non è andato a buon fine, ma la delega è stata creata su F24 online.\r\n Puoi continuare in due modi.\r\n
    \r\n Per ritentare il pagamento tramite CGN POS:\r\n
      \r\n
    1. vai su F24 online e cancella la delega
    2. \r\n
    3. torna su IMU e rimuovi i tributi con l'apposito pulsante
    4. \r\n
    5. Invia di nuovo con CGN POS
    6. \r\n
    \r\n Per inviare la delega in un altro modo:\r\n
      \r\n
    1. spostati su F24 online
    2. \r\n
    3. vai alla sezione Deleghe → Complete
    4. \r\n
    5. Presenta la delega
    6. \r\n
    \r\n
    \r\n
    \r\n ) : (\r\n
    \r\n
      \r\n {segnalazioni.map((segnalazione, idx) => (\r\n {segnalazione.msg}\r\n \r\n ))}\r\n
    \r\n
    \r\n )\r\n }\r\n type=\"alarm\"\r\n />\r\n )\r\n : (\r\n \r\n {deleghePresentate && linkPagoF24Carta ? (\r\n \r\n ) : ()}\r\n
    \r\n )}\r\n {!linkPagoF24Carta && !segnalazioni.length > 0 && !loading && (\r\n
    \r\n
    \r\n chiudiProcessoPagoF24()}\r\n emphasis={Button.Emphasis.HIGH}\r\n primary\r\n running={loading}\r\n >\r\n HO CAPITO\r\n \r\n
    \r\n
    \r\n )}\r\n {!linkPagoF24Carta && segnalazioni.length > 0 && (\r\n
    \r\n
    \r\n { FwPlugins.postMessageToParent('SERVIZIO_PAGOF24_RIPROVA', STEP_PLUGIN_PAGOF24.DELEGHE); setSegnalazioni([]); }\r\n : () => chiudiProcessoPagoF24()}\r\n emphasis={Button.Emphasis.HIGH}\r\n primary\r\n running={loading}\r\n >\r\n {!tributiImportati ? 'RIPROVA' : 'CHIUDI'}\r\n \r\n\r\n
    \r\n
    \r\n )}\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default ImportaTributiCgnPos;\r\n","import { AuthorizedApp } from 'framework-taskforce';\r\nimport React from 'react';\r\nimport ContenutoPaginaDiSospensione from '../ContenutoPaginaDiSospensione';\r\nimport ImportaTributiCgnPos from '../areas/plugins/importazioneTributiPiuCreaDeleghe/ImportaTributiCgnPos';\r\nimport { authorizedServices } from '../models/f24';\r\n\r\nconst ImportaTributiCgnPosRoute = () => (\r\n )}\r\n >\r\n \r\n \r\n);\r\n\r\nImportaTributiCgnPosRoute.defaultProps = {\r\n};\r\n\r\nImportaTributiCgnPosRoute.propTypes = {\r\n};\r\n\r\nexport default ImportaTributiCgnPosRoute;\r\n","/* eslint-disable jsx-a11y/click-events-have-key-events */\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\nimport useComponentId from '../../Hooks/useComponentId';\r\nimport { NOOP } from '../../../../utils/const';\r\nimport useForwardRefOrRef from '../../../Hooks/useForwardRefOrRef';\r\n\r\nfunction getRadioClassName({\r\n disabled, readOnly, className, checked,\r\n}) {\r\n return cns(\r\n 'v2-radio-field',\r\n {\r\n // 'radio--labeled': !!label,\r\n 'v2-radio-field--disabled': disabled,\r\n 'v2-radio-field--readOnly': readOnly,\r\n 'v2-radio-field--checked': checked,\r\n 'v2-radio-field--unchecked': !checked,\r\n },\r\n className,\r\n );\r\n}\r\n\r\nfunction getBaseInputClassName() {\r\n return cns(\r\n 'v2-radio-field__input',\r\n );\r\n}\r\n\r\n/**\r\nComponente per l'inserimento non assistito di un dato.\r\n\r\n__Il componente è la versione controlled di `Radio`. Se possibile utilizzare questo componente__\r\n\r\nIl componente è \"controlled\" questo significa che il valore dell'input è gestito esternamente dal componente mediante\r\nla proprietà value e onChange.\r\n\r\nRef: Input reference.\r\n*/\r\nconst RadioField = React.forwardRef(({\r\n className, disabled, onChange, readOnly, label, checked, inputProps,\r\n}, ref) => {\r\n const id = useComponentId();\r\n\r\n const inputRef = useForwardRefOrRef(ref);\r\n return (\r\n \r\n onChange(!checked, evt)}\r\n type=\"radio\"\r\n />\r\n \r\n \r\n );\r\n});\r\n\r\nRadioField.propTypes = {\r\n\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n\r\n /** Presenta il campo in modalità disabilitato */\r\n disabled: PropTypes.bool,\r\n\r\n /** Proprietà specifiche del componente input. ATTENZIONE: queste proprità possono essere sovrascitte dal framework. */\r\n // eslint-disable-next-line react/forbid-prop-types\r\n inputProps: PropTypes.object,\r\n\r\n /** Funzione invocata alla modifica del valore. restituisce il nuovo valore e l'evento come secondo parametro. */\r\n onChange: PropTypes.func,\r\n\r\n /** Presenta il campo in modalità sola lettura */\r\n readOnly: PropTypes.bool,\r\n\r\n /** Etichetta del titolo, tipicamente una stringa */\r\n label: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\r\n\r\n /** Valore presentato dalla input */\r\n checked: PropTypes.bool,\r\n};\r\n\r\nRadioField.defaultProps = {\r\n className: undefined,\r\n disabled: false,\r\n onChange: NOOP,\r\n readOnly: false,\r\n label: undefined,\r\n inputProps: undefined,\r\n checked: false,\r\n};\r\n\r\nexport default RadioField;\r\n","/* eslint-disable no-nested-ternary */\r\nimport React, {\r\n useCallback, useState,\r\n} from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport {\r\n Link,\r\n Image,\r\n} from 'framework-ui-components';\r\nimport {\r\n Button,\r\n Layout, Modal, RadioField, FeedbackPanel,\r\n} from 'framework-ui-components/Components/V2';\r\nimport FwPlugins from 'framework-plugins';\r\nimport DontShowAgain from 'framework-ui-components/Components/DontShowAgain/DontShowAgain';\r\nimport { localStorage } from 'framework-ui-components/utils/storage';\r\nimport { getSegnalazioneError } from 'framework-taskforce/models/segnalazioni';\r\nimport Log from 'framework-taskforce/utils/log';\r\nimport TipiStampanoScontrino from '../../../components/icons/custom/TipiStampanoScontrino';\r\nimport { CODICE_RISPOSTA_QUESTIONARIO } from '../../../models/f24';\r\nimport { postNuovaRispostaSondaggio } from '../../../apis/statistiche';\r\n\r\nconst MESSAGE_READ = 'messageRead';\r\n\r\nconst AccettazionePagoF24 = () => {\r\n const codiceUfficioSelezionato = useSelector((store) => store.appParams.ufficioSelezionato);\r\n const annoCampagnaServizioEsterno = useSelector((store) => store.appParams.annoCampagnaServizioEsterno);\r\n const tipoModelloDichiarativo = useSelector((store) => store.appParams.tipoModelloDichiarativo);\r\n const guidUtente = useSelector((store) => store.utente.UserId);\r\n const soggettoDaPlugin = useSelector((store) => store.appParams.soggettoDaPlugin);\r\n const soloAttivazione = useSelector((store) => store.appParams.soloAttivazione);\r\n\r\n const [stepWhy, setStepWhy] = useState(null);\r\n const [segnalazioni, setSegnalazioni] = useState([]);\r\n const [loading, setLoading] = useState(false);\r\n\r\n const handleClick = useCallback((id) => {\r\n setStepWhy(true);\r\n FwPlugins.postMessageToParent('SETTA_LOCAL_STORAGE', id);\r\n const store = localStorage(id);\r\n const currentValue = store.load();\r\n const newValue = currentValue === MESSAGE_READ ? undefined : MESSAGE_READ;\r\n store.save(newValue);\r\n }, [setStepWhy]);\r\n\r\n const chiudiModale = useCallback((attivaPago) => {\r\n FwPlugins.postMessageToParent('CHIUDI_PUBBLICITA_PAGOF24', attivaPago);\r\n }, []);\r\n\r\n const gestisciRispostaSondaggio = useCallback(() => {\r\n setLoading(true);\r\n const oggettoRispostaSondaggio = {\r\n CodiceUfficio: codiceUfficioSelezionato,\r\n CodiceSondaggio: 'PagoF24001',\r\n DescrizioneSondaggio: 'Attivazione pagoF24',\r\n CodiceRisposta: stepWhy,\r\n DescrizioneRisposta: CODICE_RISPOSTA_QUESTIONARIO.toString(stepWhy),\r\n TipoModelloDichiarativo: tipoModelloDichiarativo,\r\n Campagna: annoCampagnaServizioEsterno,\r\n };\r\n\r\n postNuovaRispostaSondaggio(oggettoRispostaSondaggio).then((response) => {\r\n setLoading(false);\r\n if (response.Success) {\r\n chiudiModale(false);\r\n } else {\r\n setSegnalazioni(response.DetectedProblems\r\n .map((err) => getSegnalazioneError(err)));\r\n }\r\n }).catch((err) => {\r\n setLoading(false);\r\n Log.error(err);\r\n setSegnalazioni(['Si è verificato un errore generico.']);\r\n });\r\n }, [annoCampagnaServizioEsterno, chiudiModale, codiceUfficioSelezionato, stepWhy, tipoModelloDichiarativo]);\r\n\r\n return (\r\n
    \r\n {!stepWhy ? (\r\n
    \r\n \r\n \r\n \r\n {/* */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n Semplifica i pagamenti delle deleghe F24: da oggi, puoi farle pagare\r\n
    \r\n ai tuoi clienti con pagoF24!\r\n
    \r\n
    \r\n Semplice, rapido e sicuro e tutto attraverso la condivisione di un link.\r\n
    \r\n
    \r\n Il contribuente potrà scegliere se pagare il suo F24 con carta di credito\r\n
    \r\n o tramite addebito sul suo conto corrente.\r\n

    \r\n \r\n Scopri il servizio e le condizioni economiche\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n ) : (\r\n
    \r\n {!loading && segnalazioni.length > 0\r\n ? (\r\n \r\n
      \r\n {segnalazioni.map((segnalazione, idx) => (\r\n {segnalazione.msg}\r\n \r\n ))}\r\n
    \r\n
    \r\n )}\r\n type=\"alarm\"\r\n />\r\n )\r\n : (\r\n \r\n \r\n \r\n Per favore, spiega la tua scelta:\r\n \r\n \r\n \r\n \r\n setStepWhy(CODICE_RISPOSTA_QUESTIONARIO.NON_MI_INTERESSA)}\r\n />\r\n \r\n \r\n \r\n \r\n setStepWhy(CODICE_RISPOSTA_QUESTIONARIO.PREZZO)}\r\n />\r\n \r\n \r\n \r\n \r\n setStepWhy(CODICE_RISPOSTA_QUESTIONARIO.NON_CHIARO)}\r\n />\r\n \r\n \r\n \r\n \r\n setStepWhy(CODICE_RISPOSTA_QUESTIONARIO.RICONTATTARE)}\r\n />\r\n \r\n \r\n \r\n \r\n Grazie.\r\n \r\n \r\n \r\n )}\r\n
    \r\n )}\r\n \r\n {segnalazioni.length === 0 ? (\r\n chiudiModale(true)) : (() => { gestisciRispostaSondaggio(); })}\r\n primary\r\n emphasis={Button.Emphasis.HIGH}\r\n disabled={\r\n stepWhy\r\n && stepWhy !== CODICE_RISPOSTA_QUESTIONARIO.NON_MI_INTERESSA\r\n && stepWhy !== CODICE_RISPOSTA_QUESTIONARIO.PREZZO\r\n && stepWhy !== CODICE_RISPOSTA_QUESTIONARIO.NON_CHIARO\r\n && stepWhy !== CODICE_RISPOSTA_QUESTIONARIO.RICONTATTARE\r\n }\r\n >\r\n {!stepWhy ? ('Attiva pagoF24') : ('Invia risposta')}\r\n \r\n ) : (\r\n setSegnalazioni([])}\r\n emphasis={Button.Emphasis.HIGH}\r\n primary\r\n running={loading}\r\n >\r\n RIPROVA\r\n \r\n )}\r\n \r\n {!stepWhy && (\r\n // eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions\r\n
    handleClick(`pubblicita-pagoF24-${codiceUfficioSelezionato}`)}>\r\n \r\n
    \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default AccettazionePagoF24;\r\n","import { WebRequest } from 'framework-ui-components';\r\n\r\nconst postNuovaRispostaSondaggio = (command) => WebRequest.post('/Statistiche/NuovaRispostaSondaggio', command);\r\n\r\nexport {\r\n // eslint-disable-next-line import/prefer-default-export\r\n postNuovaRispostaSondaggio,\r\n};\r\n","import { AuthorizedApp } from 'framework-taskforce';\r\nimport React from 'react';\r\nimport ContenutoPaginaDiSospensione from '../ContenutoPaginaDiSospensione';\r\nimport PubblicitaAttivazionePagoF24 from '../areas/plugins/pubblicita/PubblicitaAttivazionePagoF24';\r\nimport { authorizedServices } from '../models/f24';\r\n\r\nconst PubblicitaPagoF24Route = () => (\r\n )}\r\n >\r\n \r\n \r\n);\r\n\r\nPubblicitaPagoF24Route.defaultProps = {\r\n};\r\n\r\nPubblicitaPagoF24Route.propTypes = {\r\n};\r\n\r\nexport default PubblicitaPagoF24Route;\r\n","import React from 'react';\r\nimport { Route, Switch } from 'react-router-dom';\r\nimport { ErrorPage404 } from 'framework-ui-components';\r\nimport DettaglioDelegaFromScadenziarioRoute from './routes/DettaglioDelegaFromScadenziarioRoute';\r\nimport HomeRoute from './routes/HomeRoute';\r\nimport ListaContribuentiRoute from './routes/ListaContribuentiRoute';\r\nimport ListaContribuentiOperatoreBackofficeRoute from './routes/ListaContribuentiOperatoreBackofficeRoute';\r\nimport RiepilogoContribuenteFromScadenzarioRoute from './routes/RiepilogoContribuenteFromScadenzarioRoute';\r\nimport RiepilogoContribuenteFromHomeRoute from './routes/RiepilogoContribuenteFromHomeRoute';\r\nimport PaginaScadenzarioRoute from './routes/PaginaScadenzarioRoute';\r\nimport PaginaDettaglioContribuenteRoute from './routes/PaginaDettaglioContribuenteRoute';\r\nimport PaginaTutteLeDelegheRoute from './routes/PaginaTutteLeDelegheRoute';\r\nimport DettaglioDelegaFromMassiveRoute from './routes/DettaglioDelegaFromMassiveRoute';\r\nimport RiepilogoContribuenteRoute from './routes/RiepilogoContribuenteRoute';\r\nimport DettaglioDelegaRoute from './routes/DettaglioDelegaRoute';\r\nimport ListaIntermediariRoute from './routes/ListaIntermediariRoute';\r\nimport ListaIntermediariBackofficeRoute from './routes/ListaIntermediariBackofficeRoute';\r\nimport PaginaDettaglioIntermediarioRoute from './routes/PaginaDettaglioIntermediarioRoute';\r\nimport DettaglioDelegaIntermediarioRoute from './routes/DettaglioDelegaIntermediarioRoute';\r\nimport AccettazionePagoF24Route from './routes/AccettazionePagoF24Route';\r\nimport CreazioneContribuenteRoute from './routes/CreazioneContribuenteRoute';\r\nimport CreazioneContribuenteCgnPosRoute from './routes/CreazioneContribuenteCgnPosRoute';\r\nimport DatiUtenteUfficioPerMailRoute from './routes/DatiUtenteUfficioPerMailRoute';\r\nimport ConfermaEmailPagoF24Route from './routes/ConfermaEmailPagoF24Route';\r\nimport ImportaTributiRoute from './routes/ImportaTributiRoute';\r\nimport ContrattoPosRoute from './routes/ContrattoPosRoute';\r\nimport AssociaPosRoute from './routes/AssociaPosRoute';\r\nimport DatiUtenteUfficioPerMailCgnPosRoute from './routes/DatiUtenteUfficioPerMailCgnPosRoute';\r\nimport ImportaTributiCgnPosRoute from './routes/ImportaTributiCgnPosRoute';\r\nimport PubblicitaPagoF24Route from './routes/PubblicitaPagoF24Route';\r\n\r\nconst Router = () => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n);\r\n\r\nexport default Router;\r\n","import { Validation } from 'framework-ui-components';\r\n\r\nValidation.register('maggioreImporto', (x, y) => x, {\r\n message: 'Superato importo del tributo',\r\n});\r\n\r\nValidation.register('saldoNegativo', (x, y) => x, {\r\n message: 'Il saldo deve essere a debito per portare la delega a Completa',\r\n});\r\n\r\nValidation.register('confermaMail', (x, y) => x, {\r\n message: 'Le due e-mail non coincidono',\r\n});\r\n\r\n// Validation.register('lunghezzaMatricolaAnnoPrec', (x, y) => `${x}`.length !== 32 && x !== '', {\r\n// message: \"La matricola dell'anno precedente deve essere una stringa alfanumerica di 32 caratteri\",\r\n// });\r\n\r\n// Validation.register(\r\n// 'matricolaAnnoPrecedenteInvCiv',\r\n// (x, y) => x && x.length !== 22 && x.length !== 32 && x !== '',\r\n// {\r\n// message:\r\n// \"La matricola dell'anno precedente deve essere una stringa alfanumerica di 22 o 32 caratteri\",\r\n// },\r\n// );\r\n\r\n// Validation.register(\r\n// 'categoriaPensioneInvCiv',\r\n// (x, y) => x !== '044' && x !== '077' && x !== '078' && x !== '',\r\n// { message: 'La categoria della pensione deve essere uno dei seguenti codici : 044, 077, 078' },\r\n// );\r\n\r\n// Validation.register('noSolamenteZeri', (x, y) => x.match(/^0+$/), {\r\n// message: 'Il campo non può contenere solamente zeri',\r\n// });\r\n\r\n// Validation.register('soloCaratteriNumerici', (x, y) => !x.match(/^[0-9]+$/), {\r\n// message: 'Il campo deve essere formato solo da caratteri numerici',\r\n// });\r\n\r\n// Validation.register('lunghezzaCategoriaPensione', (x, y) => `${x}`.length !== 3 && x !== '', {\r\n// message: 'La categoria della pensione deve essere lunga 3 caratteri numerici',\r\n// });\r\n\r\n// Validation.register('lunghezzaSedeInps', (x, y) => `${x}`.length !== 4 && x !== '', {\r\n// message: 'La sede INPS della pensione deve essere lunga 4 caratteri numerici',\r\n// });\r\n\r\n// Validation.register('lunghezzaCertificatoPensione', (x, y) => `${x}`.length !== 8 && x !== '', {\r\n// message: 'Il numero certificato della pensione deve essere lunga 8 caratteri numerici',\r\n// });\r\n","import { Restriction } from 'framework-ui-components';\r\n\r\nRestriction.register('nienteSpazi', (event) => (event.key !== 'Space' && (event.which || event.keyCode) !== 32));\r\n","/* eslint-disable jsx-a11y/click-events-have-key-events */\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\n\r\nimport InfoTooltip from '../InfoTooltip';\r\n\r\nconst DropdownItem = ({\r\n children, className, disabled, divider, onClick, showInfo, infoContent, infoPosition, ...others\r\n}) => {\r\n const classes = cns(\r\n 'dropdown__listItem',\r\n {\r\n 'dropdown__listItem--disabled': disabled,\r\n },\r\n className,\r\n );\r\n\r\n return (\r\n divider\r\n ?
  • \r\n : (\r\n !disabled && onClick && onClick(event)}\r\n >\r\n {children}\r\n {showInfo && (\r\n \r\n \r\n {infoContent}\r\n \r\n \r\n )}\r\n
  • \r\n )\r\n );\r\n};\r\n\r\nDropdownItem.propTypes = {\r\n /** Contenuto da renderizzare all'interno del componente */\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node,\r\n ]),\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n /** Indica se il componente è disabilitato */\r\n disabled: PropTypes.bool,\r\n /** Indica se il componente ha la funzione di separatore */\r\n divider: PropTypes.bool,\r\n /** Specifica il contenuto del componente InfoTooltip */\r\n infoContent: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\r\n /** Specifica se aprire il contenuto del componente spostato verso sinistra o destra */\r\n infoPosition: PropTypes.oneOf(['left', 'right']),\r\n /**\r\n * Callback invocata al click sul componente:\r\n * ```\r\n * onClick(event)\r\n * ```\r\n * dove:\r\n * * *event*: evento scatenante\r\n */\r\n onClick: PropTypes.func,\r\n /** Indica se mostrare o meno il componente InfoTooltip */\r\n showInfo: PropTypes.bool,\r\n};\r\n\r\nDropdownItem.defaultProps = {\r\n children: null,\r\n className: '',\r\n disabled: false,\r\n divider: false,\r\n infoContent: '',\r\n infoPosition: 'left',\r\n onClick: null,\r\n showInfo: false,\r\n};\r\n\r\nexport default DropdownItem;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\n\r\nconst SubMenuItem = ({ children, inverse, title }) => {\r\n const classes = cns(\r\n 'dropdown__listItem subMenu',\r\n {\r\n inverse,\r\n },\r\n );\r\n\r\n return (\r\n \r\n {title}\r\n
      {children}
    \r\n \r\n );\r\n};\r\n\r\nSubMenuItem.propTypes = {\r\n /** Contenuto da renderizzare all'interno del componente */\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node,\r\n ]),\r\n /** Indica se invertire l'apertura del sottomenu da destra a sinistra */\r\n inverse: PropTypes.bool,\r\n /** Titolo del sottomenu. Nel caso di contenuto custom (non stringa),\r\n * applicare l'attributo data-clickable='false' ai componenti. */\r\n title: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\r\n};\r\n\r\nSubMenuItem.defaultProps = {\r\n children: null,\r\n inverse: false,\r\n title: '',\r\n};\r\n\r\nexport default SubMenuItem;\r\n","/* eslint-disable jsx-a11y/click-events-have-key-events */\r\nimport React, {\r\n useState, useRef, useCallback, useEffect,\r\n} from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\n\r\nimport DropdownItem from './DropdownItem';\r\nimport SubMenu from './SubMenuItem';\r\nimport doesNodeContainClick from '../Utils/doesNodeContainClick';\r\n\r\nconst DropdownList = (props) => {\r\n const {\r\n children,\r\n classPrefix,\r\n right,\r\n onClose,\r\n } = props;\r\n const prefix = classPrefix || 'dropdown';\r\n const classMenu = cns('dropdown__list', `${prefix}--menu`, right ? `${prefix}--menu--right` : '');\r\n\r\n return (\r\n children && (\r\n \r\n {children}\r\n \r\n )\r\n );\r\n};\r\n\r\nDropdownList.propTypes = {\r\n /** Contenuto da renderizzare all'interno del componente */\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node,\r\n ]),\r\n /** Indica un prefisso da applicare alle classi css del componente */\r\n classPrefix: PropTypes.string,\r\n /** On close callback */\r\n onClose: PropTypes.func,\r\n /** Visualizza l'elenco a destra */\r\n right: PropTypes.bool,\r\n};\r\n\r\nDropdownList.defaultProps = {\r\n children: null,\r\n classPrefix: '',\r\n onClose: null,\r\n right: false,\r\n};\r\n\r\nconst DropdownComponent = (props) => {\r\n const {\r\n open, disabled, toggleComponent, title, onClick,\r\n } = props;\r\n\r\n return toggleComponent\r\n ? React.cloneElement(toggleComponent, {\r\n disabled,\r\n onClick,\r\n })\r\n : (\r\n \r\n {title}\r\n \r\n \r\n );\r\n};\r\n\r\nDropdownComponent.propTypes = {\r\n /** Indica se il componente è disabilitato */\r\n disabled: PropTypes.bool,\r\n /** Indica se mostrare il menu aperto */\r\n open: PropTypes.bool,\r\n /** Etichetta da visualizzare nel campo che renderizza il componente */\r\n title: PropTypes.string,\r\n /** Specifica che componente usare come toggle del dropdown */\r\n toggleComponent: PropTypes.element,\r\n /** On click callback */\r\n onClick: PropTypes.func,\r\n};\r\n\r\nDropdownComponent.defaultProps = {\r\n open: false,\r\n disabled: false,\r\n title: '',\r\n toggleComponent: null,\r\n onClick: null,\r\n};\r\n\r\nconst Dropdown = (props) => {\r\n const {\r\n open: openDefault,\r\n children,\r\n title,\r\n } = props;\r\n const {\r\n disabled,\r\n classPrefix,\r\n className,\r\n toggleComponent,\r\n right,\r\n onClick,\r\n ...others\r\n } = props;\r\n\r\n const [open, setOpen] = useState(openDefault);\r\n const refNode = useRef();\r\n\r\n useEffect(() => {\r\n if (!open) return undefined;\r\n const closeIfClickOutside = (e) => {\r\n if (!doesNodeContainClick(refNode.current, e)) {\r\n setOpen(false);\r\n }\r\n };\r\n document.addEventListener('click', closeIfClickOutside);\r\n return () => document.removeEventListener('click', closeIfClickOutside);\r\n }, [open, setOpen]);\r\n\r\n const toggleMenu = useCallback((evt) => {\r\n setOpen(!open);\r\n onClick && onClick(!open, evt);\r\n }, [onClick, open]);\r\n\r\n const chiudi = useCallback((e) => {\r\n if (e.target.hasAttribute('data-clickable') && e.target.getAttribute('data-clickable') === 'false') return;\r\n setOpen(false);\r\n }, [setOpen]);\r\n\r\n const classes = cns(\r\n 'dropdown',\r\n {\r\n 'dropdown--disabled': disabled,\r\n },\r\n open ? 'dropdown--open' : 'dropdown--close',\r\n classPrefix,\r\n className,\r\n );\r\n\r\n return (\r\n \r\n \r\n {open\r\n && (\r\n \r\n {children}\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nDropdown.propTypes = {\r\n /** Contenuto da renderizzare all'interno del componente */\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node,\r\n ]),\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n /** Indica un prefisso da applicare alle classi css del componente */\r\n classPrefix: PropTypes.string,\r\n /** Indica se il componente è disabilitato */\r\n disabled: PropTypes.bool,\r\n /** Indica se mostrare inizialmente il menu aperto */\r\n open: PropTypes.bool,\r\n /** Indica se aprire verso sinistra la tendina, utile se a bordo schermo */\r\n right: PropTypes.bool,\r\n /** Etichetta da visualizzare nel campo che renderizza il componente */\r\n title: PropTypes.string,\r\n /** Specifica che componente usare come toggle del dropdown */\r\n toggleComponent: PropTypes.element,\r\n /**\r\n * Callaback invocata al click del toggle component.\r\n * Il primo prametro specifica se il dropdown è open (true/false), il secondo è l'evento.\r\n */\r\n onClick: PropTypes.func,\r\n};\r\n\r\nDropdown.defaultProps = {\r\n open: false,\r\n children: null,\r\n className: '',\r\n classPrefix: '',\r\n disabled: false,\r\n right: false,\r\n title: '',\r\n toggleComponent: null,\r\n onClick: null,\r\n};\r\n\r\nDropdown.Item = DropdownItem;\r\nDropdown.SubMenu = SubMenu;\r\n\r\nexport default Dropdown;\r\n","import Dropdown from './Dropdown';\r\n\r\nexport default Dropdown;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport Dropdown from '../Dropdown';\r\n\r\n/**\r\nIl componente NavDropDown è una variante della comune dropdown pensata per essere utilizzata all'interno della navigazione.\r\nIl suo funzionamento è identico a quello della dropdown eccetto per lo stile di default applicato.\r\n */\r\nconst NavDropdown = ({ subtitle, title, ...others }) => (\r\n \r\n \r\n
    \r\n {title}\r\n {subtitle}\r\n
    \r\n \r\n )}\r\n />\r\n);\r\n\r\nNavDropdown.Item = Dropdown.Item;\r\nNavDropdown.SubMenu = Dropdown.SubMenu;\r\n\r\nNavDropdown.propTypes = {\r\n /** Sottotitolo visualizzato */\r\n subtitle: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\r\n /** Titolo visualizzato */\r\n title: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\r\n};\r\n\r\nNavDropdown.defaultProps = {\r\n subtitle: '',\r\n title: '',\r\n};\r\n\r\nexport default NavDropdown;\r\n","import NavDropdown from './NavDropdown';\r\n\r\nexport default NavDropdown;\r\n","/* eslint-disable max-len */\r\nimport React from 'react';\r\nimport Icon from '../../Icons/Icon';\r\n\r\nexport default Icon(\r\n \r\n \r\n \r\n ,\r\n '0 0 24 24',\r\n 'MeetingRoom',\r\n);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport DoneIcon from '../../GoogleIcons/Outlined/DoneIcon';\r\nimport MeetingRoom from '../../GoogleIcons/Outlined/MeetingRoom';\r\nimport Button from '../Button/Button';\r\nimport { NOOP } from '../../../utils/const';\r\nimport NavDropdown from '../../NavDropdown';\r\n\r\nconst MenuUfficiItems = ({\r\n uffici, ufficioSelezionato, onUfficioChange,\r\n}) => (\r\n uffici.map((ufficio) => (\r\n onUfficioChange(ufficio) : NOOP}>\r\n \r\n \r\n ))\r\n);\r\n\r\nMenuUfficiItems.propTypes = {\r\n uffici: PropTypes.arrayOf(PropTypes.string),\r\n ufficioSelezionato: PropTypes.string,\r\n onUfficioChange: PropTypes.func.isRequired,\r\n};\r\n\r\nMenuUfficiItems.defaultProps = {\r\n uffici: [],\r\n ufficioSelezionato: null,\r\n};\r\n\r\nexport default MenuUfficiItems;\r\n","import React, { useMemo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport Button from '../Button/Button';\r\nimport MenuUfficiItems from './MenuUfficiItems';\r\nimport MeetingRoom from '../../GoogleIcons/Outlined/MeetingRoom';\r\nimport NavigateNextIcon from '../../GoogleIcons/Outlined/NavigateNextIcon';\r\nimport NavDropdown from '../../NavDropdown';\r\n\r\nconst MenuUffici = ({\r\n uffici, ufficioSelezionato, onUfficioChange,\r\n}) => {\r\n const ufficiOrdered = useMemo(() => (uffici || []).sort((a, b) => a - b), [uffici]);\r\n\r\n return ufficiOrdered.length > 3\r\n ? (\r\n \r\n Cambia ufficio \r\n \r\n )}\r\n >\r\n \r\n \r\n )\r\n : (\r\n \r\n );\r\n};\r\n\r\nMenuUffici.propTypes = {\r\n uffici: PropTypes.arrayOf(PropTypes.string),\r\n ufficioSelezionato: PropTypes.string,\r\n onUfficioChange: PropTypes.func.isRequired,\r\n};\r\n\r\nMenuUffici.defaultProps = {\r\n uffici: [],\r\n ufficioSelezionato: null,\r\n};\r\n\r\nexport default MenuUffici;\r\n","/* eslint-disable max-len */\r\nimport React from 'react';\r\nimport Icon from '../../Icons/Icon';\r\n\r\nexport default Icon(\r\n \r\n \r\n \r\n ,\r\n '0 0 24 24',\r\n 'PermIdentityIcon',\r\n);\r\n","/* eslint-disable max-len */\r\nimport React from 'react';\r\nimport Icon from '../../Icons/Icon';\r\n\r\nexport default Icon(\r\n ,\r\n '0 0 24 24',\r\n 'ExportIcon',\r\n);\r\n","import React, { useCallback } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport Button from '../Button/Button';\r\nimport { NOOP } from '../../../utils/const';\r\nimport NavDropdown from '../../NavDropdown';\r\nimport MenuUffici from './MenuUffici';\r\nimport PermIdentityIcon from '../../GoogleIcons/Outlined/PermIdentityIcon';\r\nimport ExportIcon from '../../GoogleIcons/Outlined/ExportIcon';\r\n\r\nconst MenuUtente = ({\r\n utente, uffici, ufficioSelezionato, onUfficioChange, accountsUrl, myCgnUrl, onLogout, children,\r\n subTitleMenu,\r\n}) => {\r\n const denominazioneUtente = utente ? `${utente.nome} ${utente.cognome}`.toUpperCase() : undefined;\r\n\r\n const urlLogout = `${accountsUrl}/home/logout`;\r\n\r\n const gotoProfiloUtente = useCallback(() => {\r\n window.open(`${myCgnUrl}/#/ufficio/${ufficioSelezionato}`, '_blank').focus();\r\n }, [myCgnUrl, ufficioSelezionato]);\r\n\r\n const logOut = useCallback(() => {\r\n window.location.replace(urlLogout);\r\n }, [urlLogout]);\r\n\r\n const subTitle = subTitleMenu || (ufficioSelezionato ? `Ufficio ${ufficioSelezionato}` : undefined);\r\n\r\n return (\r\n \r\n {children}\r\n \r\n {uffici && uffici.length > 0 && }\r\n \r\n \r\n \r\n \r\n (onLogout ? onLogout(urlLogout) : logOut())}\r\n disabled={!accountsUrl}\r\n >\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nMenuUtente.Item = NavDropdown.Item;\r\n\r\nMenuUtente.propTypes = {\r\n /**\r\n * Informazioni sull'utente corrente (Nome e Cognome)\r\n */\r\n utente: PropTypes.shape({\r\n nome: PropTypes.string,\r\n cognome: PropTypes.string,\r\n }).isRequired,\r\n /**\r\n * Elenco degli uffici associati al profilo dell'utente corrente\r\n */\r\n uffici: PropTypes.arrayOf(PropTypes.string),\r\n /**\r\n * Ufficio corrente selezionato\r\n */\r\n ufficioSelezionato: PropTypes.string,\r\n /**\r\n * Callback chiamata alla selezione di un nuovo ufficio:\r\n * ```\r\n * onUfficioChange(ufficio)\r\n * ```\r\n */\r\n onUfficioChange: PropTypes.func,\r\n /**\r\n * Url dell'applicazione account\r\n */\r\n accountsUrl: PropTypes.string,\r\n /**\r\n * Url dell'applicazione myCgn\r\n */\r\n myCgnUrl: PropTypes.string,\r\n /**\r\n * Elementi aggiuntivi da mostrare all'interno del menu utente usando sempre il componente NavDropdown.Item\r\n */\r\n children: PropTypes.node,\r\n /**\r\n * Funzione alternativa da applicare al click del logout\r\n */\r\n onLogout: PropTypes.func,\r\n /**\r\n * Sottotitolo alternativo all'ufficio selezionato (comportamento di default)\r\n */\r\n subTitleMenu: PropTypes.string,\r\n};\r\n\r\nMenuUtente.defaultProps = {\r\n uffici: [],\r\n ufficioSelezionato: null,\r\n accountsUrl: null,\r\n myCgnUrl: null,\r\n onUfficioChange: NOOP,\r\n children: null,\r\n onLogout: null,\r\n subTitleMenu: null,\r\n};\r\n\r\nexport default MenuUtente;\r\n","import React, { Fragment, useEffect } from 'react';\r\nimport PropTypes from 'prop-types';\r\n// import Notifiche from 'notifiche-plugin';\r\nimport MenuHome from 'Home';\r\nimport MenuGeco from 'GeCo';\r\nimport { useSelector } from 'react-redux';\r\nimport { MenuUtente } from 'framework-ui-components/Components/V2';\r\nimport useCaricamentoServiziEsterni from '../utils/customHooks/useCaricamentoServiziEsterni';\r\n\r\n/**\r\n * Funzione di gestione dell'apertura del link delle notifiche.\r\n * @param {object} data Parametri passati alla richiesta di apertura di un link nelle notifiche.\r\n * @param {object} data.url Url del link.\r\n * @param {object} data.fileAllegato True se il link rappresenta un file da scaricare.\r\n */\r\nconst apriLinkNotifiche = (data) => {\r\n if (data.fileAllegato === true) {\r\n window.open(data.url, '_blank');\r\n } else {\r\n // Nel caso non sia un file si apre in un nuova tab escluso il caso in cui si punti ad una pagina del documentale.\r\n window.open(data.url, (data.url.indexOf('dmsDocumento') !== -1) ? '_self' : '_blank');\r\n }\r\n};\r\n\r\nconst styleHome = {\r\n position: 'absolute',\r\n top: '0',\r\n left: '0',\r\n cursor: 'pointer',\r\n};\r\n\r\nconst styleAssistente = { cssFloat: 'right' };\r\n\r\nconst ServiziEsterni = ({ cambiaUfficio }) => {\r\n const ufficioSelezionato = useSelector((store) => store.appParams.ufficioSelezionato);\r\n const profilo = useSelector((store) => store.utente.Profilo);\r\n const appParamVisualizzazione = useSelector((store) => store.appParams.visualizzazione);\r\n const portaleUnicoUrl = useSelector((store) => store.appParams.PortaleUnicoUrl);\r\n const identityProviderUrl = useSelector((store) => store.appParams.IdentityProviderUrl);\r\n const codiceUfficioOperatore = useSelector((store) => store.appParams.codiceUfficioOperatore);\r\n const from = useSelector((store) => store.appParams.from);\r\n\r\n useCaricamentoServiziEsterni();\r\n\r\n useEffect(() => {\r\n if (ufficioSelezionato) {\r\n MenuHome.cambiaUfficio(ufficioSelezionato);\r\n MenuGeco.cambiaUfficio(ufficioSelezionato);\r\n }\r\n }, [ufficioSelezionato]);\r\n\r\n return (\r\n \r\n {from !== 'cgn' && (\r\n \r\n )}\r\n {appParamVisualizzazione && codiceUfficioOperatore ? (\r\n
    \r\n ) : (\r\n \r\n \r\n \r\n ufficio.CodiceUfficio) : []}\r\n onUfficioChange={(ufficio) => cambiaUfficio(ufficio)}\r\n myCgnUrl={portaleUnicoUrl}\r\n accountsUrl={identityProviderUrl}\r\n />\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nServiziEsterni.propTypes = {\r\n cambiaUfficio: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default ServiziEsterni;\r\n","import { useEffect } from 'react';\r\nimport MenuHome from 'Home';\r\nimport MenuGeco from 'GeCo';\r\nimport Assistente from 'Assistente';\r\nimport { useSelector } from 'react-redux';\r\nimport { insertAnalytics } from '../analytics';\r\n\r\nconst useCaricamentoServiziEsterni = () => {\r\n const ufficioSelezionato = useSelector((store) => store.appParams.ufficioSelezionato);\r\n const assistenteUrl = useSelector((store) => store.appParams.AssistenteUrl);\r\n const gecoUrl = useSelector((store) => store.appParams.GecoUrl);\r\n const homeUrl = useSelector((store) => store.appParams.HomeUrl);\r\n const AnalyticsUrl = useSelector((store) => store.appParams.AnalyticsUrl);\r\n const guidUtente = useSelector((store) => store.utente.UserId);\r\n\r\n useEffect(() => {\r\n if (ufficioSelezionato && guidUtente) {\r\n const domMenuHome = document.getElementById('menuHomePlaceHolder');\r\n MenuHome.inizializza(homeUrl, guidUtente, ufficioSelezionato, domMenuHome);\r\n\r\n const domMenuGeco = document.getElementById('menuGeCoPlaceHolder');\r\n MenuGeco.inizializza(gecoUrl, guidUtente, ufficioSelezionato, domMenuGeco);\r\n\r\n const domAssistente = document.getElementById('menuAssistentePlaceHolder');\r\n Assistente.inizializza(assistenteUrl, guidUtente, ufficioSelezionato, 'f24', domAssistente);\r\n // .then(() => Assistente.mostraPermalink('Ravvedimento_INPS'));\r\n\r\n setTimeout(() => {\r\n insertAnalytics(ufficioSelezionato, 'F24OL', AnalyticsUrl);\r\n }, 1000);\r\n }\r\n }, [ufficioSelezionato, guidUtente, homeUrl, gecoUrl, assistenteUrl, AnalyticsUrl]);\r\n};\r\n\r\nexport default useCaricamentoServiziEsterni;\r\n","/**\r\n * Metodo che inserisce nel document lo script analytics\r\n * @param {*} codiceUfficio\r\n */\r\nconst insertAnalytics = (codiceUfficio, progetto, analyticsUrl, societa = 'CAF CGN', principale = true) => {\r\n const analyticsScriptId = 'analyticsScriptId';\r\n const analyticsScript = document.getElementById(analyticsScriptId);\r\n if (codiceUfficio && !analyticsScript) {\r\n const cacheBreakerDataOra = new Date().getTime();\r\n const script = document.createElement('script');\r\n script.src = `${analyticsUrl}/analytics.js?codiceUfficio=${\r\n codiceUfficio}&principale=${principale}&progetto=${progetto}&societa=${societa}&v=${cacheBreakerDataOra}`;\r\n script.async = true;\r\n script.id = analyticsScriptId;\r\n document.head.appendChild(script);\r\n }\r\n};\r\n\r\nexport {\r\n // eslint-disable-next-line import/prefer-default-export\r\n insertAnalytics,\r\n};\r\n","/* eslint-disable max-len */\r\nimport React from 'react';\r\n\r\nconst LogoContabilita = () => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n);\r\n\r\nexport default LogoContabilita;\r\n","import React, { useCallback, useEffect, useState } from 'react';\r\nimport FwPlugins, {\r\n usePluginReducer,\r\n PluginApp,\r\n PluginRouter,\r\n} from 'framework-plugins';\r\nimport { setAppParamsAction } from 'framework-taskforce/actions/appParams';\r\nimport { isRoot } from 'framework-taskforce/utils/navigation';\r\nimport { Application, Tour } from 'framework-ui-components';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { useHistory, useLocation } from 'react-router-dom';\r\nimport Log from 'framework-taskforce/utils/log';\r\nimport { addParamsUidToUrl } from 'framework-taskforce/utils/qsParams';\r\nimport { setStoredSessionItem } from 'framework-taskforce/utils/store';\r\nimport useViewport, {\r\n MAIN,\r\n} from 'framework-ui-components/Components/V2/Hooks/useViewport';\r\nimport Router from './Router';\r\nimport { getOttieniStudio } from './apis/configurazione';\r\nimport './models/validation';\r\nimport './models/restriction';\r\nimport { setIntermediariAction } from './actions/intermediari';\r\nimport { getOttieniIntermediari } from './apis/intermediari';\r\nimport ServiziEsterni from './components/ServiziEsterni';\r\nimport LogoCgn from './components/icons/LogoCgn';\r\n\r\nconst App = () => {\r\n const profilo = useSelector((store) => store.utente.Profilo);\r\n const [mostraTour, setMostraTour] = useState(false);\r\n const [redirectUrl, setRedirectUrl] = useState(null);\r\n const from = useSelector((store) => store.appParams.from);\r\n\r\n const { resolution } = useViewport();\r\n const resolutionMAIN = resolution === MAIN;\r\n\r\n const dispatch = useDispatch();\r\n\r\n const history = useHistory();\r\n const location = useLocation();\r\n\r\n useEffect(() => {\r\n if (redirectUrl === null) {\r\n if (window.datiRedirect && window.datiRedirect.redirectUrl) {\r\n setRedirectUrl(window.datiRedirect.redirectUrl);\r\n } else {\r\n setRedirectUrl('');\r\n }\r\n }\r\n }, [redirectUrl]);\r\n\r\n useEffect(() => {\r\n if (!FwPlugins.isCalledByParent() && isRoot(location)) {\r\n if (redirectUrl && redirectUrl !== '') {\r\n history.replace(`/${redirectUrl}?from=cgn`);\r\n } else {\r\n history.push('/Home');\r\n }\r\n }\r\n }, [history, location, redirectUrl]);\r\n\r\n const eventoCambiaUfficio = useCallback(\r\n (codiceUfficio) => {\r\n const ufficio = profilo.Uffici\r\n ? profilo.Uffici.find((uff) => uff.CodiceUfficio === codiceUfficio)\r\n : null;\r\n\r\n const isInvioTelematicoAttivo = ufficio.IsUtenteAbilitatoAdele;\r\n const isInvioTelematicoCbiAttivo = ufficio.IsUtenteAbilitatoCbi;\r\n\r\n getOttieniStudio(codiceUfficio)\r\n .then((response) => {\r\n if (response.Success) {\r\n dispatch(\r\n setAppParamsAction({\r\n studioSelezionato: response.Result,\r\n ufficioSelezionato: codiceUfficio,\r\n isInvioTelematicoAttivo,\r\n isInvioTelematicoCbiAttivo,\r\n }),\r\n );\r\n if (redirectUrl && redirectUrl !== '') {\r\n history.replace(`/${redirectUrl}?from=cgn`);\r\n } else {\r\n history.push('/');\r\n }\r\n FwPlugins.postMessageToChilds(\r\n FwPlugins.PluginMessageTypes.CHANGE_OFFICE,\r\n codiceUfficio,\r\n );\r\n } else {\r\n Log.error('App error');\r\n dispatch(\r\n setAppParamsAction({\r\n ufficioSelezionato: codiceUfficio,\r\n studioSelezionato: null,\r\n isInvioTelematicoAttivo,\r\n }),\r\n );\r\n }\r\n })\r\n .catch((err) => {\r\n Log.error(err);\r\n });\r\n },\r\n [dispatch, history, profilo.Uffici, redirectUrl],\r\n );\r\n\r\n usePluginReducer(\r\n () => ({\r\n [FwPlugins.PluginMessageTypes.CHANGE_OFFICE]: eventoCambiaUfficio,\r\n }),\r\n [],\r\n );\r\n\r\n const cambiaUfficio = useCallback(\r\n (codiceUfficio) => {\r\n setStoredSessionItem('UfficioSelezionato', codiceUfficio);\r\n const ufficio = profilo.Uffici\r\n ? profilo.Uffici.find((uff) => uff.CodiceUfficio === codiceUfficio)\r\n : null;\r\n\r\n const isInvioTelematicoAttivo = ufficio.IsUtenteAbilitatoAdele;\r\n const isInvioTelematicoCbiAttivo = ufficio.IsUtenteAbilitatoCbi;\r\n\r\n getOttieniStudio(codiceUfficio)\r\n .then((response) => {\r\n if (response.Success) {\r\n dispatch(\r\n setAppParamsAction({\r\n studioSelezionato: response.Result,\r\n ufficioSelezionato: codiceUfficio,\r\n isInvioTelematicoAttivo,\r\n isInvioTelematicoCbiAttivo,\r\n }),\r\n );\r\n getOttieniIntermediari(response.Result)\r\n .then((respIntermediari) => {\r\n if (respIntermediari.Items) {\r\n dispatch(setIntermediariAction(respIntermediari.Items));\r\n }\r\n Log.error('App error');\r\n })\r\n .catch((err) => {\r\n Log.error(err);\r\n });\r\n history.push(addParamsUidToUrl('/'));\r\n FwPlugins.postMessageToChilds(\r\n FwPlugins.PluginMessageTypes.CHANGE_OFFICE,\r\n codiceUfficio,\r\n );\r\n } else {\r\n Log.error('App error');\r\n dispatch(\r\n setAppParamsAction({\r\n ufficioSelezionato: codiceUfficio,\r\n isInvioTelematicoAttivo,\r\n isInvioTelematicoCbiAttivo,\r\n }),\r\n );\r\n }\r\n })\r\n .catch((err) => {\r\n Log.error(err);\r\n });\r\n },\r\n [dispatch, history, profilo],\r\n );\r\n\r\n useEffect(() => {\r\n const mostraTourSesStorage = localStorage.getItem('mostraTourF24');\r\n if (!mostraTour && mostraTourSesStorage !== 'false' && redirectUrl === '') {\r\n setMostraTour(true);\r\n }\r\n }, [mostraTour, redirectUrl]);\r\n\r\n const chiudiTour = () => {\r\n localStorage.setItem('mostraTourF24', false);\r\n setMostraTour(false);\r\n };\r\n\r\n useEffect(() => {\r\n if (redirectUrl && redirectUrl !== '') {\r\n history.replace(`/${redirectUrl}?from=cgn`);\r\n }\r\n }, [history, redirectUrl]);\r\n\r\n return (\r\n \r\n \r\n \r\n {FwPlugins.isCalledByParent() ? (\r\n \r\n ) : (\r\n \r\n } className=\"f24_application_header--brand-identity\">\r\n \r\n \r\n \r\n \r\n {mostraTour && (\r\n chiudiTour(false)}\r\n slides={[\r\n './Content/images/tour/TourF24_1.png',\r\n './Content/images/tour/TourF24_2.png',\r\n './Content/images/tour/TourF24_3.png',\r\n './Content/images/tour/TourF24_4.png',\r\n './Content/images/tour/TourF24_5.png',\r\n './Content/images/tour/TourF24_6.png',\r\n './Content/images/tour/TourF24_7.png',\r\n './Content/images/tour/TourF24_8.png',\r\n './Content/images/tour/TourF24_9.png',\r\n ]}\r\n />\r\n )}\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default App;\r\n","import { ACTION_UTENTE_INIT_SET } from '../actions/utente';\r\n\r\nexport const utenteInitialState = {};\r\n\r\nexport default (state = utenteInitialState, action) => {\r\n switch (action.type) {\r\n case `${ACTION_UTENTE_INIT_SET}`: {\r\n const { payload } = action;\r\n return {\r\n ...payload,\r\n UserId: payload.UserId.toUpperCase(),\r\n };\r\n }\r\n default:\r\n return state;\r\n }\r\n};\r\n","import { ACTION_SOGGETTO_SET } from '../actions/soggetto';\r\n\r\nexport const soggettoInitialState = {};\r\n\r\nexport default (state = soggettoInitialState, action) => {\r\n switch (action.type) {\r\n case `${ACTION_SOGGETTO_SET}`: {\r\n const { payload } = action;\r\n return payload;\r\n }\r\n default:\r\n return state;\r\n }\r\n};\r\n","import { ACTION_INTERMEDIARI_SET } from '../actions/intermediari';\r\n\r\nexport const intermediariInitialState = {};\r\n\r\nexport default (state = intermediariInitialState, action) => {\r\n switch (action.type) {\r\n case `${ACTION_INTERMEDIARI_SET}`: {\r\n const { payload } = action;\r\n return payload;\r\n }\r\n default:\r\n return state;\r\n }\r\n};\r\n","import { ACTION_CREAZIONE_DELEGHE_SET } from '../actions/creazioneDeleghe';\r\n\r\nexport const creaInitialState = {\r\n // processoConErrori: false,\r\n // completato: false,\r\n // loading: false,\r\n};\r\n\r\nexport default (state = creaInitialState, action) => {\r\n switch (action.type) {\r\n case `${ACTION_CREAZIONE_DELEGHE_SET}`: {\r\n const { payload } = action;\r\n return payload;\r\n }\r\n default:\r\n return state;\r\n }\r\n};\r\n","import { ACTION_PRESENTAZIONE_DELEGHE_CBI } from '../actions/presentazioneDeleghe';\r\n\r\nexport const creaInitialState = {\r\n cbi: {},\r\n // processoConErrori: false,\r\n // completato: false,\r\n // loading: false,\r\n};\r\n\r\nexport default (state = creaInitialState, action) => {\r\n switch (action.type) {\r\n case `${ACTION_PRESENTAZIONE_DELEGHE_CBI}`: {\r\n const { payload } = action;\r\n const newState = {\r\n ...state,\r\n cbi: payload,\r\n };\r\n\r\n return newState;\r\n }\r\n default:\r\n return state;\r\n }\r\n};\r\n","import { ACTION_TRIBUTI_SERVIZIO_ESTERNO_SET } from '../actions/datiDaServizioEsterno';\r\n\r\nexport const datiInitialState = {};\r\n\r\nexport default (state = datiInitialState, action) => {\r\n switch (action.type) {\r\n case `${ACTION_TRIBUTI_SERVIZIO_ESTERNO_SET}`: {\r\n const { payload } = action;\r\n return payload;\r\n }\r\n default:\r\n return state;\r\n }\r\n};\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { HashRouter } from 'react-router-dom';\r\nimport { Provider } from 'react-redux';\r\nimport FwPlugins from 'framework-plugins';\r\nimport { connettiSignalR } from 'framework-ui-components/Components/EventoServer';\r\nimport Log from 'framework-taskforce/utils/log';\r\nimport { getQsParams, getInitialParams } from 'framework-taskforce/utils/qsParams';\r\nimport { isTest } from 'framework-taskforce/utils/environment';\r\nimport { PaginaErrore } from 'framework-taskforce';\r\nimport createStore from 'framework-taskforce/store/createStore';\r\nimport { setUtenteInitAction } from 'framework-taskforce/actions/utente';\r\nimport { setAppParamsAction } from 'framework-taskforce/actions/appParams';\r\nimport { getStoredSessionItem } from 'framework-taskforce/utils/store';\r\nimport App from './App';\r\nimport combineReducers from './reducers/combineReducers';\r\nimport {\r\n getConfigApplicazione, getOttieniStudio,\r\n} from './apis/configurazione';\r\nimport { setIntermediariAction } from './actions/intermediari';\r\nimport { getOttieniIntermediari } from './apis/intermediari';\r\nimport { insertAnalytics } from './utils/analytics';\r\n\r\nconst store = createStore(combineReducers);\r\n\r\nFwPlugins.init('f24');\r\n\r\nconnettiSignalR();\r\n\r\nconst gotoApp = (resultOk) => {\r\n ReactDOM.render(\r\n resultOk\r\n ? (\r\n \r\n \r\n \r\n \r\n \r\n )\r\n : ,\r\n document.getElementById('app-container'),\r\n );\r\n};\r\n\r\n// inizializzazione dell'applicazione\r\nconst initApp = () => {\r\n Log.debug('INIT');\r\n const qsParams = getQsParams(false);\r\n\r\n getConfigApplicazione()\r\n .then((initResponse) => {\r\n if (initResponse) {\r\n const {\r\n UserId,\r\n Profilo,\r\n UfficioDiDefault,\r\n ...altriParametriInit\r\n } = initResponse;\r\n // ATTENZIONE\r\n // const ufficioSelezionato = FwPlugins.getCallerParams().ufficio\r\n // || qsParams.ufficio\r\n // || getInitialParams().ufficioSelezionato\r\n // || (isTest() && UfficioInit);\r\n\r\n // const codiceUfficioOperatore = FwPlugins.getCallerParams().applicazioneOrigine === 'BackOffice'\r\n // ? FwPlugins.getCallerParams().ufficioSelezionato : null;\r\n const sessione = getStoredSessionItem('UfficioSelezionato');\r\n const sqParams = qsParams.ufficio;\r\n const plugin = FwPlugins.getCallerParams().ufficio;\r\n const { from } = qsParams;\r\n const ufficioSelezionato = FwPlugins.getCallerParams().ufficio || getStoredSessionItem('UfficioSelezionato') || qsParams.ufficio || UfficioDiDefault;\r\n const { showIntermediariInTabsMenu, withNoSidebar } = qsParams;\r\n const codiceUfficioAssociato = FwPlugins.getCallerParams()?.codiceUfficioAssociato || null;\r\n\r\n const visualizzazione = !!qsParams.visualizzazione || !!FwPlugins.getCallerParams().visualizzazione;\r\n\r\n store.dispatch(setUtenteInitAction({\r\n UserId,\r\n Profilo,\r\n }));\r\n const sidebarTabIndex = getStoredSessionItem('SidebarTabIndex');\r\n const ufficio = Profilo.Uffici\r\n ? Profilo.Uffici.find((uff) => uff.CodiceUfficio === ufficioSelezionato)\r\n : null;\r\n const isInvioTelematicoAttivo = ufficio.IsUtenteAbilitatoAdele;\r\n const isInvioTelematicoCbiAttivo = ufficio.IsUtenteAbilitatoCbi;\r\n\r\n // eslint-disable-next-line no-nested-ternary\r\n getOttieniStudio(visualizzazione && FwPlugins.getCallerParams().ufficioSelezionato\r\n ? FwPlugins.getCallerParams().ufficioSelezionato : (qsParams.ufficioSelezionato ? qsParams.ufficioSelezionato : ufficioSelezionato))\r\n .then((response) => {\r\n if (response.Success) {\r\n store.dispatch(setAppParamsAction({\r\n studioSelezionato: !qsParams.studioSelezionato || qsParams.studioSelezionato === '' ? response.Result : qsParams.studioSelezionato,\r\n sidebarSelected: FwPlugins.getCallerParams().sidebarSelected || sidebarTabIndex || 0,\r\n scadenzaTributiImportatiDaServzioEsterno: decodeURIComponent(FwPlugins.getCallerParams().scadenza),\r\n tabSelected: 0,\r\n isInvioTelematicoAttivo,\r\n isInvioTelematicoCbiAttivo,\r\n codiceUfficioOperatore: FwPlugins.getCallerParams().ufficioSelezionato || qsParams.ufficioSelezionato || null,\r\n tipoModelloDichiarativo: FwPlugins.getCallerParams().TipoModelloDichiarativo || qsParams.TipoModelloDichiarativo || null,\r\n soggettoDaPlugin:\r\n FwPlugins.getCallerParams().soggettoIdAnagraficaSogg\r\n ? {\r\n idAnagraficaUnica: FwPlugins.getCallerParams().soggettoIdAnagraficaSogg,\r\n codiceFiscale: FwPlugins.getCallerParams().soggettoCodiceFiscale,\r\n nome: FwPlugins.getCallerParams().soggettoNome,\r\n cognome: FwPlugins.getCallerParams().soggettoCognome,\r\n tipoPersona: FwPlugins.getCallerParams().soggettoTipoPersona,\r\n } : null,\r\n fromPluginWithNoSidebar: FwPlugins.isCalledByParent(),\r\n withNoSidebar,\r\n noToolbar: FwPlugins.getCallerParentId() === 'imu' || !!qsParams.noToolbar,\r\n showIntermediariInTabsMenu,\r\n from,\r\n soloAttivazione: FwPlugins.getCallerParams().soloAttivazione\r\n ? FwPlugins.getCallerParams().soloAttivazione.trim() === 'true' && FwPlugins.getCallerParams().soloAttivazione.trim().length !== 0\r\n : false,\r\n codiceUfficioAssociato,\r\n }));\r\n\r\n if (FwPlugins.getCallerParams().anno) {\r\n store.dispatch(setAppParamsAction({\r\n annoCampagnaServizioEsterno: FwPlugins.getCallerParams().anno,\r\n }));\r\n }\r\n\r\n getOttieniIntermediari(response.Result)\r\n .then((respIntermediari) => {\r\n if (respIntermediari.Items) {\r\n store.dispatch(setIntermediariAction(respIntermediari.Items));\r\n }\r\n Log.error('App error');\r\n }).catch((err) => {\r\n Log.error(err);\r\n });\r\n } else {\r\n store.dispatch(setAppParamsAction({\r\n studioSelezionato: null,\r\n sidebarSelected: FwPlugins.getCallerParams().sidebarSelected || sidebarTabIndex || 0,\r\n scadenzaTributiImportatiDaServzioEsterno: decodeURIComponent(FwPlugins.getCallerParams().scadenza),\r\n tabSelected: 0,\r\n isInvioTelematicoAttivo,\r\n codiceUfficioAssociato,\r\n }));\r\n\r\n if (FwPlugins.getCallerParams().anno) {\r\n store.dispatch(setAppParamsAction({\r\n annoCampagnaServizioEsterno: FwPlugins.getCallerParams().anno,\r\n }));\r\n }\r\n\r\n store.dispatch(setAppParamsAction({\r\n soloAttivazione: FwPlugins.getCallerParams().soloAttivazione\r\n ? FwPlugins.getCallerParams().soloAttivazione.trim() === 'true' && FwPlugins.getCallerParams().soloAttivazione.trim().length !== 0\r\n : false,\r\n }));\r\n\r\n Log.error('App error');\r\n }\r\n }).catch((err) => {\r\n Log.error(err);\r\n });\r\n\r\n store.dispatch(setAppParamsAction({\r\n ufficioSelezionato,\r\n isInvioTelematicoAttivo,\r\n ...altriParametriInit,\r\n ...qsParams,\r\n visualizzazione,\r\n codiceUfficioAssociato,\r\n }));\r\n gotoApp(true);\r\n } else {\r\n Log.error('App error');\r\n gotoApp(false);\r\n }\r\n }).catch((err) => {\r\n gotoApp(false);\r\n Log.error(err);\r\n });\r\n};\r\n\r\ninitApp();\r\n\r\n// export only for test:\r\nexport {\r\n initApp, // eslint-disable-line import/prefer-default-export\r\n};\r\n","import { createStore, applyMiddleware, compose } from 'redux';\r\nimport thunk from 'redux-thunk';\r\nimport { isTest } from '../utils/environment';\r\n\r\nexport default (reducers) => {\r\n const createMiddleware = [applyMiddleware(thunk)];\r\n const composeMiddlewares = isTest() && typeof window === 'object'\r\n && window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ // eslint-disable-line no-underscore-dangle\r\n ? window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ // eslint-disable-line no-underscore-dangle\r\n : compose;\r\n return createStore(reducers, composeMiddlewares(...createMiddleware));\r\n};\r\n","import { combineReducers } from 'redux';\r\nimport appParams from 'framework-taskforce/reducers/appParams';\r\nimport utente from 'framework-taskforce/reducers/utente';\r\nimport soggetto from './soggetto';\r\nimport intermediari from './intermediari';\r\nimport creazioneDeleghe from './creazioneDeleghe';\r\nimport presentazioneDeleghe from './presentazioneDeleghe';\r\nimport datiDaServizioEsterno from './datiDaServizioEsterno';\r\n\r\nexport default combineReducers(\r\n {\r\n appParams: appParams({\r\n }),\r\n utente,\r\n soggetto,\r\n intermediari,\r\n creazioneDeleghe,\r\n presentazioneDeleghe,\r\n datiDaServizioEsterno,\r\n },\r\n);\r\n","import { getInitialParams, setQsParams } from '../utils/qsParams';\r\nimport { ACTION_APP_PARAMS_SET } from '../actions/appParams';\r\n\r\nexport default (defaultAppParams = {}) => {\r\n const initialParams = getInitialParams();\r\n const initialState = {\r\n ...defaultAppParams,\r\n ...initialParams,\r\n };\r\n return (state = initialState, action) => {\r\n switch (action.type) {\r\n case `${ACTION_APP_PARAMS_SET}`: {\r\n const { payload } = action;\r\n const newState = {\r\n ...state, ...payload,\r\n };\r\n setQsParams(newState);\r\n return newState;\r\n }\r\n default:\r\n return state;\r\n }\r\n };\r\n};\r\n","var f = true;\r\nfunction caricaMenuAssistente(u, t, c, l, s) {\r\n if (f) {\r\n f = false;\r\n var e = document.createElement(\"script\");\r\n e.type = \"text/javascript\";\r\n e.src = u + \"/App/dist/browser-export.js\";\r\n e.async = false;\r\n e.defer = false;\r\n e.onload = function () { window.Assistente.inizializzaMenu(u, t, c, l, s); };\r\n var h = document.getElementsByTagName(\"head\")[0];\r\n h.insertBefore(e, h.lastChild);\r\n }\r\n};\r\n\r\nmodule.exports = {\r\n inizializza: function (u, t, c, l, s) {\r\n caricaMenuAssistente(u, t, c, l, s);\r\n },\r\n impostaUfficio: function (u) {\r\n window.Assistente && window.Assistente.impostaUfficio && window.Assistente.impostaUfficio(u);\r\n },\r\n impostaServizio: function (s) {\r\n window.Assistente && window.Assistente.impostaServizio && window.Assistente.impostaServizio(s);\r\n },\r\n apriPermalink: function (p) {\r\n window.Assistente && window.Assistente.apriPermalink && window.Assistente.apriPermalink(p);\r\n }\r\n};\r\n","var f = true;\r\n\r\nfunction caricaMenuGeCo(u, t, c, l) {\r\n if (f) {\r\n f = false;\r\n var e = document.createElement(\"script\");\r\n e.type = \"text/javascript\";\r\n e.src = u + \"/App/dist/browser-export.js\";\r\n e.async = false;\r\n e.defer = false;\r\n e.onload = function () { window.GeCo.inizializzaMenu(u, t, c, l) };\r\n var h = document.getElementsByTagName(\"head\")[0];\r\n h.insertBefore(e, h.lastChild);\r\n }\r\n}\r\n\r\nmodule.exports = {\r\n inizializza: function (u, t, c, l) {\r\n setTimeout(() => caricaMenuGeCo(u, t, c, l));\r\n },\r\n cambiaUfficio: function (u) {\r\n window.GeCo && window.GeCo.cambiaUfficio && window.GeCo.cambiaUfficio(u);\r\n }\r\n}","\r\nvar f = true;\r\n\r\nfunction caricaMenuHome(u, t, c, l) {\r\n if (f) {\r\n f = false;\r\n var e = document.createElement(\"script\");\r\n e.type = \"text/javascript\";\r\n e.src = u + \"/App/dist/browser-export.js\";\r\n e.async = false;\r\n e.defer = false;\r\n e.onload = function () { window.inizializzaMenuHome(u, t, c, l) };\r\n var h = document.getElementsByTagName(\"head\")[0];\r\n h.insertBefore(e, h.lastChild);\r\n }\r\n}\r\n\r\nmodule.exports = {\r\n inizializza: function (u, t, c, l) {\r\n setTimeout(() => caricaMenuHome(u, t, c, l));\r\n },\r\n cambiaUfficio: function (u) {\r\n window.modificaUfficioCorrenteMenuHome && window.modificaUfficioCorrenteMenuHome(u);\r\n }\r\n}","module.exports = require('./lib/axios');","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n // Listen for ready state\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(resolve, reject, response);\n\n // Clean up request\n request = null;\n };\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(timeoutErrorMessage, config, 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (config.responseType) {\n try {\n request.responseType = config.responseType;\n } catch (e) {\n // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2.\n // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function.\n if (config.responseType !== 'json') {\n throw e;\n }\n }\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel);\n // Clean up request\n request = null;\n });\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Factory for creating new instances\naxios.create = function create(instanceConfig) {\n return createInstance(mergeConfig(axios.defaults, instanceConfig));\n};\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n // Hook up interceptors middleware\n var chain = [dispatchRequest, undefined];\n var promise = Promise.resolve(config);\n\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n chain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n chain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData(\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData(\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData(\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code\n };\n };\n return error;\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n var valueFromConfig2Keys = ['url', 'method', 'data'];\n var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy', 'params'];\n var defaultToConfig2Keys = [\n 'baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer',\n 'timeout', 'timeoutMessage', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName',\n 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'decompress',\n 'maxContentLength', 'maxBodyLength', 'maxRedirects', 'transport', 'httpAgent',\n 'httpsAgent', 'cancelToken', 'socketPath', 'responseEncoding'\n ];\n var directMergeKeys = ['validateStatus'];\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n }\n\n utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n }\n });\n\n utils.forEach(mergeDeepPropertiesKeys, mergeDeepProperties);\n\n utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n utils.forEach(directMergeKeys, function merge(prop) {\n if (prop in config2) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n var axiosKeys = valueFromConfig2Keys\n .concat(mergeDeepPropertiesKeys)\n .concat(defaultToConfig2Keys)\n .concat(directMergeKeys);\n\n var otherKeys = Object\n .keys(config1)\n .concat(Object.keys(config2))\n .filter(function filterAxiosKeys(key) {\n return axiosKeys.indexOf(key) === -1;\n });\n\n utils.forEach(otherKeys, mergeDeepProperties);\n\n return config;\n};\n","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn(data, headers);\n });\n\n return data;\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nvar defaults = {\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data)) {\n setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n return JSON.stringify(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n /*eslint no-param-reassign:0*/\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (e) { /* Ignore */ }\n }\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\n\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n","'use strict';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n return (typeof payload === 'object') && (payload.isAxiosError === true);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\n/*global toString:true*/\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};\n","/*!\n Copyright (c) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","/* eslint-env browser */\n\n/**\n * This is the web browser implementation of `debug()`.\n */\n\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = localstorage();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n\t'#0000CC',\n\t'#0000FF',\n\t'#0033CC',\n\t'#0033FF',\n\t'#0066CC',\n\t'#0066FF',\n\t'#0099CC',\n\t'#0099FF',\n\t'#00CC00',\n\t'#00CC33',\n\t'#00CC66',\n\t'#00CC99',\n\t'#00CCCC',\n\t'#00CCFF',\n\t'#3300CC',\n\t'#3300FF',\n\t'#3333CC',\n\t'#3333FF',\n\t'#3366CC',\n\t'#3366FF',\n\t'#3399CC',\n\t'#3399FF',\n\t'#33CC00',\n\t'#33CC33',\n\t'#33CC66',\n\t'#33CC99',\n\t'#33CCCC',\n\t'#33CCFF',\n\t'#6600CC',\n\t'#6600FF',\n\t'#6633CC',\n\t'#6633FF',\n\t'#66CC00',\n\t'#66CC33',\n\t'#9900CC',\n\t'#9900FF',\n\t'#9933CC',\n\t'#9933FF',\n\t'#99CC00',\n\t'#99CC33',\n\t'#CC0000',\n\t'#CC0033',\n\t'#CC0066',\n\t'#CC0099',\n\t'#CC00CC',\n\t'#CC00FF',\n\t'#CC3300',\n\t'#CC3333',\n\t'#CC3366',\n\t'#CC3399',\n\t'#CC33CC',\n\t'#CC33FF',\n\t'#CC6600',\n\t'#CC6633',\n\t'#CC9900',\n\t'#CC9933',\n\t'#CCCC00',\n\t'#CCCC33',\n\t'#FF0000',\n\t'#FF0033',\n\t'#FF0066',\n\t'#FF0099',\n\t'#FF00CC',\n\t'#FF00FF',\n\t'#FF3300',\n\t'#FF3333',\n\t'#FF3366',\n\t'#FF3399',\n\t'#FF33CC',\n\t'#FF33FF',\n\t'#FF6600',\n\t'#FF6633',\n\t'#FF9900',\n\t'#FF9933',\n\t'#FFCC00',\n\t'#FFCC33'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\n// eslint-disable-next-line complexity\nfunction useColors() {\n\t// NB: In an Electron preload script, document will be defined but not fully\n\t// initialized. Since we know we're in Chrome, we'll just detect this case\n\t// explicitly\n\tif (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) {\n\t\treturn true;\n\t}\n\n\t// Internet Explorer and Edge do not support colors.\n\tif (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)) {\n\t\treturn false;\n\t}\n\n\t// Is webkit? http://stackoverflow.com/a/16459606/376773\n\t// document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n\treturn (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n\t\t// Is firebug? http://stackoverflow.com/a/398120/376773\n\t\t(typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n\t\t// Is firefox >= v31?\n\t\t// https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||\n\t\t// Double check webkit in userAgent just in case we are in a worker\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\targs[0] = (this.useColors ? '%c' : '') +\n\t\tthis.namespace +\n\t\t(this.useColors ? ' %c' : ' ') +\n\t\targs[0] +\n\t\t(this.useColors ? '%c ' : ' ') +\n\t\t'+' + module.exports.humanize(this.diff);\n\n\tif (!this.useColors) {\n\t\treturn;\n\t}\n\n\tconst c = 'color: ' + this.color;\n\targs.splice(1, 0, c, 'color: inherit');\n\n\t// The final \"%c\" is somewhat tricky, because there could be other\n\t// arguments passed either before or after the %c, so we need to\n\t// figure out the correct index to insert the CSS into\n\tlet index = 0;\n\tlet lastC = 0;\n\targs[0].replace(/%[a-zA-Z%]/g, match => {\n\t\tif (match === '%%') {\n\t\t\treturn;\n\t\t}\n\t\tindex++;\n\t\tif (match === '%c') {\n\t\t\t// We only are interested in the *last* %c\n\t\t\t// (the user may have provided their own)\n\t\t\tlastC = index;\n\t\t}\n\t});\n\n\targs.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.log()` when available.\n * No-op when `console.log` is not a \"function\".\n *\n * @api public\n */\nfunction log(...args) {\n\t// This hackery is required for IE8/9, where\n\t// the `console.log` function doesn't have 'apply'\n\treturn typeof console === 'object' &&\n\t\tconsole.log &&\n\t\tconsole.log(...args);\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\ttry {\n\t\tif (namespaces) {\n\t\t\texports.storage.setItem('debug', namespaces);\n\t\t} else {\n\t\t\texports.storage.removeItem('debug');\n\t\t}\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\nfunction load() {\n\tlet r;\n\ttry {\n\t\tr = exports.storage.getItem('debug');\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n\n\t// If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n\tif (!r && typeof process !== 'undefined' && 'env' in process) {\n\t\tr = process.env.DEBUG;\n\t}\n\n\treturn r;\n}\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n\ttry {\n\t\t// TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context\n\t\t// The Browser also has localStorage in the global context.\n\t\treturn localStorage;\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nformatters.j = function (v) {\n\ttry {\n\t\treturn JSON.stringify(v);\n\t} catch (error) {\n\t\treturn '[UnexpectedJSONParseError]: ' + error.message;\n\t}\n};\n","\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n */\n\nfunction setup(env) {\n\tcreateDebug.debug = createDebug;\n\tcreateDebug.default = createDebug;\n\tcreateDebug.coerce = coerce;\n\tcreateDebug.disable = disable;\n\tcreateDebug.enable = enable;\n\tcreateDebug.enabled = enabled;\n\tcreateDebug.humanize = require('ms');\n\n\tObject.keys(env).forEach(key => {\n\t\tcreateDebug[key] = env[key];\n\t});\n\n\t/**\n\t* Active `debug` instances.\n\t*/\n\tcreateDebug.instances = [];\n\n\t/**\n\t* The currently active debug mode names, and names to skip.\n\t*/\n\n\tcreateDebug.names = [];\n\tcreateDebug.skips = [];\n\n\t/**\n\t* Map of special \"%n\" handling functions, for the debug \"format\" argument.\n\t*\n\t* Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n\t*/\n\tcreateDebug.formatters = {};\n\n\t/**\n\t* Selects a color for a debug namespace\n\t* @param {String} namespace The namespace string for the for the debug instance to be colored\n\t* @return {Number|String} An ANSI color code for the given namespace\n\t* @api private\n\t*/\n\tfunction selectColor(namespace) {\n\t\tlet hash = 0;\n\n\t\tfor (let i = 0; i < namespace.length; i++) {\n\t\t\thash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n\t\t\thash |= 0; // Convert to 32bit integer\n\t\t}\n\n\t\treturn createDebug.colors[Math.abs(hash) % createDebug.colors.length];\n\t}\n\tcreateDebug.selectColor = selectColor;\n\n\t/**\n\t* Create a debugger with the given `namespace`.\n\t*\n\t* @param {String} namespace\n\t* @return {Function}\n\t* @api public\n\t*/\n\tfunction createDebug(namespace) {\n\t\tlet prevTime;\n\n\t\tfunction debug(...args) {\n\t\t\t// Disabled?\n\t\t\tif (!debug.enabled) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst self = debug;\n\n\t\t\t// Set `diff` timestamp\n\t\t\tconst curr = Number(new Date());\n\t\t\tconst ms = curr - (prevTime || curr);\n\t\t\tself.diff = ms;\n\t\t\tself.prev = prevTime;\n\t\t\tself.curr = curr;\n\t\t\tprevTime = curr;\n\n\t\t\targs[0] = createDebug.coerce(args[0]);\n\n\t\t\tif (typeof args[0] !== 'string') {\n\t\t\t\t// Anything else let's inspect with %O\n\t\t\t\targs.unshift('%O');\n\t\t\t}\n\n\t\t\t// Apply any `formatters` transformations\n\t\t\tlet index = 0;\n\t\t\targs[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {\n\t\t\t\t// If we encounter an escaped % then don't increase the array index\n\t\t\t\tif (match === '%%') {\n\t\t\t\t\treturn match;\n\t\t\t\t}\n\t\t\t\tindex++;\n\t\t\t\tconst formatter = createDebug.formatters[format];\n\t\t\t\tif (typeof formatter === 'function') {\n\t\t\t\t\tconst val = args[index];\n\t\t\t\t\tmatch = formatter.call(self, val);\n\n\t\t\t\t\t// Now we need to remove `args[index]` since it's inlined in the `format`\n\t\t\t\t\targs.splice(index, 1);\n\t\t\t\t\tindex--;\n\t\t\t\t}\n\t\t\t\treturn match;\n\t\t\t});\n\n\t\t\t// Apply env-specific formatting (colors, etc.)\n\t\t\tcreateDebug.formatArgs.call(self, args);\n\n\t\t\tconst logFn = self.log || createDebug.log;\n\t\t\tlogFn.apply(self, args);\n\t\t}\n\n\t\tdebug.namespace = namespace;\n\t\tdebug.enabled = createDebug.enabled(namespace);\n\t\tdebug.useColors = createDebug.useColors();\n\t\tdebug.color = selectColor(namespace);\n\t\tdebug.destroy = destroy;\n\t\tdebug.extend = extend;\n\t\t// Debug.formatArgs = formatArgs;\n\t\t// debug.rawLog = rawLog;\n\n\t\t// env-specific initialization logic for debug instances\n\t\tif (typeof createDebug.init === 'function') {\n\t\t\tcreateDebug.init(debug);\n\t\t}\n\n\t\tcreateDebug.instances.push(debug);\n\n\t\treturn debug;\n\t}\n\n\tfunction destroy() {\n\t\tconst index = createDebug.instances.indexOf(this);\n\t\tif (index !== -1) {\n\t\t\tcreateDebug.instances.splice(index, 1);\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tfunction extend(namespace, delimiter) {\n\t\tconst newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace);\n\t\tnewDebug.log = this.log;\n\t\treturn newDebug;\n\t}\n\n\t/**\n\t* Enables a debug mode by namespaces. This can include modes\n\t* separated by a colon and wildcards.\n\t*\n\t* @param {String} namespaces\n\t* @api public\n\t*/\n\tfunction enable(namespaces) {\n\t\tcreateDebug.save(namespaces);\n\n\t\tcreateDebug.names = [];\n\t\tcreateDebug.skips = [];\n\n\t\tlet i;\n\t\tconst split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n\t\tconst len = split.length;\n\n\t\tfor (i = 0; i < len; i++) {\n\t\t\tif (!split[i]) {\n\t\t\t\t// ignore empty strings\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tnamespaces = split[i].replace(/\\*/g, '.*?');\n\n\t\t\tif (namespaces[0] === '-') {\n\t\t\t\tcreateDebug.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));\n\t\t\t} else {\n\t\t\t\tcreateDebug.names.push(new RegExp('^' + namespaces + '$'));\n\t\t\t}\n\t\t}\n\n\t\tfor (i = 0; i < createDebug.instances.length; i++) {\n\t\t\tconst instance = createDebug.instances[i];\n\t\t\tinstance.enabled = createDebug.enabled(instance.namespace);\n\t\t}\n\t}\n\n\t/**\n\t* Disable debug output.\n\t*\n\t* @return {String} namespaces\n\t* @api public\n\t*/\n\tfunction disable() {\n\t\tconst namespaces = [\n\t\t\t...createDebug.names.map(toNamespace),\n\t\t\t...createDebug.skips.map(toNamespace).map(namespace => '-' + namespace)\n\t\t].join(',');\n\t\tcreateDebug.enable('');\n\t\treturn namespaces;\n\t}\n\n\t/**\n\t* Returns true if the given mode name is enabled, false otherwise.\n\t*\n\t* @param {String} name\n\t* @return {Boolean}\n\t* @api public\n\t*/\n\tfunction enabled(name) {\n\t\tif (name[name.length - 1] === '*') {\n\t\t\treturn true;\n\t\t}\n\n\t\tlet i;\n\t\tlet len;\n\n\t\tfor (i = 0, len = createDebug.skips.length; i < len; i++) {\n\t\t\tif (createDebug.skips[i].test(name)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tfor (i = 0, len = createDebug.names.length; i < len; i++) {\n\t\t\tif (createDebug.names[i].test(name)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t* Convert regexp to namespace\n\t*\n\t* @param {RegExp} regxep\n\t* @return {String} namespace\n\t* @api private\n\t*/\n\tfunction toNamespace(regexp) {\n\t\treturn regexp.toString()\n\t\t\t.substring(2, regexp.toString().length - 2)\n\t\t\t.replace(/\\.\\*\\?$/, '*');\n\t}\n\n\t/**\n\t* Coerce `val`.\n\t*\n\t* @param {Mixed} val\n\t* @return {Mixed}\n\t* @api private\n\t*/\n\tfunction coerce(val) {\n\t\tif (val instanceof Error) {\n\t\t\treturn val.stack || val.message;\n\t\t}\n\t\treturn val;\n\t}\n\n\tcreateDebug.enable(createDebug.load());\n\n\treturn createDebug;\n}\n\nmodule.exports = setup;\n","(function(a,b){if(\"function\"==typeof define&&define.amd)define([],b);else if(\"undefined\"!=typeof exports)b();else{b(),a.FileSaver={exports:{}}.exports}})(this,function(){\"use strict\";function b(a,b){return\"undefined\"==typeof b?b={autoBom:!1}:\"object\"!=typeof b&&(console.warn(\"Deprecated: Expected third argument to be a object\"),b={autoBom:!b}),b.autoBom&&/^\\s*(?:text\\/\\S*|application\\/xml|\\S*\\/\\S*\\+xml)\\s*;.*charset\\s*=\\s*utf-8/i.test(a.type)?new Blob([\"\\uFEFF\",a],{type:a.type}):a}function c(b,c,d){var e=new XMLHttpRequest;e.open(\"GET\",b),e.responseType=\"blob\",e.onload=function(){a(e.response,c,d)},e.onerror=function(){console.error(\"could not download file\")},e.send()}function d(a){var b=new XMLHttpRequest;b.open(\"HEAD\",a,!1);try{b.send()}catch(a){}return 200<=b.status&&299>=b.status}function e(a){try{a.dispatchEvent(new MouseEvent(\"click\"))}catch(c){var b=document.createEvent(\"MouseEvents\");b.initMouseEvent(\"click\",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),a.dispatchEvent(b)}}var f=\"object\"==typeof window&&window.window===window?window:\"object\"==typeof self&&self.self===self?self:\"object\"==typeof global&&global.global===global?global:void 0,a=f.saveAs||(\"object\"!=typeof window||window!==f?function(){}:\"download\"in HTMLAnchorElement.prototype?function(b,g,h){var i=f.URL||f.webkitURL,j=document.createElement(\"a\");g=g||b.name||\"download\",j.download=g,j.rel=\"noopener\",\"string\"==typeof b?(j.href=b,j.origin===location.origin?e(j):d(j.href)?c(b,g,h):e(j,j.target=\"_blank\")):(j.href=i.createObjectURL(b),setTimeout(function(){i.revokeObjectURL(j.href)},4E4),setTimeout(function(){e(j)},0))}:\"msSaveOrOpenBlob\"in navigator?function(f,g,h){if(g=g||f.name||\"download\",\"string\"!=typeof f)navigator.msSaveOrOpenBlob(b(f,h),g);else if(d(f))c(f,g,h);else{var i=document.createElement(\"a\");i.href=f,i.target=\"_blank\",setTimeout(function(){e(i)})}}:function(a,b,d,e){if(e=e||open(\"\",\"_blank\"),e&&(e.document.title=e.document.body.innerText=\"downloading...\"),\"string\"==typeof a)return c(a,b,d);var g=\"application/octet-stream\"===a.type,h=/constructor/i.test(f.HTMLElement)||f.safari,i=/CriOS\\/[\\d]+/.test(navigator.userAgent);if((i||g&&h)&&\"object\"==typeof FileReader){var j=new FileReader;j.onloadend=function(){var a=j.result;a=i?a:a.replace(/^data:[^;]*;/,\"data:attachment/file;\"),e?e.location.href=a:location=a,e=null},j.readAsDataURL(a)}else{var k=f.URL||f.webkitURL,l=k.createObjectURL(a);e?e.location=l:location.href=l,e=null,setTimeout(function(){k.revokeObjectURL(l)},4E4)}});f.saveAs=a.saveAs=a,\"undefined\"!=typeof module&&(module.exports=a)});\n\n//# sourceMappingURL=FileSaver.min.js.map","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n","/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar w = d * 7;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function (val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isFinite(val)) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^(-?(?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'weeks':\n case 'week':\n case 'w':\n return n * w;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (msAbs >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (msAbs >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (msAbs >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return plural(ms, msAbs, d, 'day');\n }\n if (msAbs >= h) {\n return plural(ms, msAbs, h, 'hour');\n }\n if (msAbs >= m) {\n return plural(ms, msAbs, m, 'minute');\n }\n if (msAbs >= s) {\n return plural(ms, msAbs, s, 'second');\n }\n return ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, msAbs, n, name) {\n var isPlural = msAbs >= n * 1.5;\n return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');\n}\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","var isarray = require('isarray')\n\n/**\n * Expose `pathToRegexp`.\n */\nmodule.exports = pathToRegexp\nmodule.exports.parse = parse\nmodule.exports.compile = compile\nmodule.exports.tokensToFunction = tokensToFunction\nmodule.exports.tokensToRegExp = tokensToRegExp\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n // \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n // \"/*\" => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g')\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = []\n var key = 0\n var index = 0\n var path = ''\n var defaultDelimiter = options && options.delimiter || '/'\n var res\n\n while ((res = PATH_REGEXP.exec(str)) != null) {\n var m = res[0]\n var escaped = res[1]\n var offset = res.index\n path += str.slice(index, offset)\n index = offset + m.length\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1]\n continue\n }\n\n var next = str[index]\n var prefix = res[2]\n var name = res[3]\n var capture = res[4]\n var group = res[5]\n var modifier = res[6]\n var asterisk = res[7]\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path)\n path = ''\n }\n\n var partial = prefix != null && next != null && next !== prefix\n var repeat = modifier === '+' || modifier === '*'\n var optional = modifier === '?' || modifier === '*'\n var delimiter = prefix || defaultDelimiter\n var pattern = capture || group\n var prevText = prefix || (typeof tokens[tokens.length - 1] === 'string' ? tokens[tokens.length - 1] : '')\n\n tokens.push({\n name: name || key++,\n prefix: prefix || '',\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n asterisk: !!asterisk,\n pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : restrictBacktrack(delimiter, prevText))\n })\n }\n\n // Match any characters still remaining.\n if (index < str.length) {\n path += str.substr(index)\n }\n\n // If the path exists, push it onto the end.\n if (path) {\n tokens.push(path)\n }\n\n return tokens\n}\n\nfunction restrictBacktrack(delimiter, prevText) {\n if (!prevText || prevText.indexOf(delimiter) > -1) {\n return '[^' + escapeString(delimiter) + ']+?'\n }\n\n return escapeString(prevText) + '|(?:(?!' + escapeString(prevText) + ')[^' + escapeString(delimiter) + '])+?'\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options), options)\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n return encodeURI(str).replace(/[?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens, options) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length)\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options))\n }\n }\n\n return function (obj, opts) {\n var path = ''\n var data = obj || {}\n var options = opts || {}\n var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n path += token\n\n continue\n }\n\n var value = data[token.name]\n var segment\n\n if (value == null) {\n if (token.optional) {\n // Prepend partial segment prefixes.\n if (token.partial) {\n path += token.prefix\n }\n\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to be defined')\n }\n }\n\n if (isarray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n }\n\n if (value.length === 0) {\n if (token.optional) {\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j])\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment\n }\n\n continue\n }\n\n segment = token.asterisk ? encodeAsterisk(value) : encode(value)\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n }\n\n path += token.prefix + segment\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param {!RegExp} re\n * @param {Array} keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n re.keys = keys\n return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options && options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {!Array} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g)\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n partial: false,\n asterisk: false,\n pattern: null\n })\n }\n }\n\n return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = []\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source)\n }\n\n var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options))\n\n return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {!Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n var strict = options.strict\n var end = options.end !== false\n var route = ''\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n route += escapeString(token)\n } else {\n var prefix = escapeString(token.prefix)\n var capture = '(?:' + token.pattern + ')'\n\n keys.push(token)\n\n if (token.repeat) {\n capture += '(?:' + prefix + capture + ')*'\n }\n\n if (token.optional) {\n if (!token.partial) {\n capture = '(?:' + prefix + '(' + capture + '))?'\n } else {\n capture = prefix + '(' + capture + ')?'\n }\n } else {\n capture = prefix + '(' + capture + ')'\n }\n\n route += capture\n }\n }\n\n var delimiter = escapeString(options.delimiter || '/')\n var endsWithDelimiter = route.slice(-delimiter.length) === delimiter\n\n // In non-strict mode we allow a slash at the end of match. If the path to\n // match already ends with a slash, we remove it for consistency. The slash\n // is valid at the end of a path match, not in the middle. This is important\n // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n if (!strict) {\n route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?'\n }\n\n if (end) {\n route += '$'\n } else {\n // In non-ending mode, we need the capturing groups to match as much as\n // possible by using a positive lookahead to the end or next path segment.\n route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)'\n }\n\n return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n if (path instanceof RegExp) {\n return regexpToRegexp(path, /** @type {!Array} */ (keys))\n }\n\n if (isarray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\n","module.exports = Array.isArray || function (arr) {\n return Object.prototype.toString.call(arr) == '[object Array]';\n};\n","// Copyright Joyent, Inc. and other Node contributors.\r\n//\r\n// Permission is hereby granted, free of charge, to any person obtaining a\r\n// copy of this software and associated documentation files (the\r\n// \"Software\"), to deal in the Software without restriction, including\r\n// without limitation the rights to use, copy, modify, merge, publish,\r\n// distribute, sublicense, and/or sell copies of the Software, and to permit\r\n// persons to whom the Software is furnished to do so, subject to the\r\n// following conditions:\r\n//\r\n// The above copyright notice and this permission notice shall be included\r\n// in all copies or substantial portions of the Software.\r\n//\r\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\r\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\r\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\r\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\r\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\r\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n\r\n'use strict';\r\n\r\n\r\nvar isWindows = process.platform === 'win32';\r\nvar util = require('util');\r\n\r\n\r\n// resolves . and .. elements in a path array with directory names there\r\n// must be no slashes or device names (c:\\) in the array\r\n// (so also no leading and trailing slashes - it does not distinguish\r\n// relative and absolute paths)\r\nfunction normalizeArray(parts, allowAboveRoot) {\r\n var res = [];\r\n for (var i = 0; i < parts.length; i++) {\r\n var p = parts[i];\r\n\r\n // ignore empty parts\r\n if (!p || p === '.')\r\n continue;\r\n\r\n if (p === '..') {\r\n if (res.length && res[res.length - 1] !== '..') {\r\n res.pop();\r\n } else if (allowAboveRoot) {\r\n res.push('..');\r\n }\r\n } else {\r\n res.push(p);\r\n }\r\n }\r\n\r\n return res;\r\n}\r\n\r\n// returns an array with empty elements removed from either end of the input\r\n// array or the original array if no elements need to be removed\r\nfunction trimArray(arr) {\r\n var lastIndex = arr.length - 1;\r\n var start = 0;\r\n for (; start <= lastIndex; start++) {\r\n if (arr[start])\r\n break;\r\n }\r\n\r\n var end = lastIndex;\r\n for (; end >= 0; end--) {\r\n if (arr[end])\r\n break;\r\n }\r\n\r\n if (start === 0 && end === lastIndex)\r\n return arr;\r\n if (start > end)\r\n return [];\r\n return arr.slice(start, end + 1);\r\n}\r\n\r\n// Regex to split a windows path into three parts: [*, device, slash,\r\n// tail] windows-only\r\nvar splitDeviceRe =\r\n /^([a-zA-Z]:|[\\\\\\/]{2}[^\\\\\\/]+[\\\\\\/]+[^\\\\\\/]+)?([\\\\\\/])?([\\s\\S]*?)$/;\r\n\r\n// Regex to split the tail part of the above into [*, dir, basename, ext]\r\nvar splitTailRe =\r\n /^([\\s\\S]*?)((?:\\.{1,2}|[^\\\\\\/]+?|)(\\.[^.\\/\\\\]*|))(?:[\\\\\\/]*)$/;\r\n\r\nvar win32 = {};\r\n\r\n// Function to split a filename into [root, dir, basename, ext]\r\nfunction win32SplitPath(filename) {\r\n // Separate device+slash from tail\r\n var result = splitDeviceRe.exec(filename),\r\n device = (result[1] || '') + (result[2] || ''),\r\n tail = result[3] || '';\r\n // Split the tail into dir, basename and extension\r\n var result2 = splitTailRe.exec(tail),\r\n dir = result2[1],\r\n basename = result2[2],\r\n ext = result2[3];\r\n return [device, dir, basename, ext];\r\n}\r\n\r\nfunction win32StatPath(path) {\r\n var result = splitDeviceRe.exec(path),\r\n device = result[1] || '',\r\n isUnc = !!device && device[1] !== ':';\r\n return {\r\n device: device,\r\n isUnc: isUnc,\r\n isAbsolute: isUnc || !!result[2], // UNC paths are always absolute\r\n tail: result[3]\r\n };\r\n}\r\n\r\nfunction normalizeUNCRoot(device) {\r\n return '\\\\\\\\' + device.replace(/^[\\\\\\/]+/, '').replace(/[\\\\\\/]+/g, '\\\\');\r\n}\r\n\r\n// path.resolve([from ...], to)\r\nwin32.resolve = function() {\r\n var resolvedDevice = '',\r\n resolvedTail = '',\r\n resolvedAbsolute = false;\r\n\r\n for (var i = arguments.length - 1; i >= -1; i--) {\r\n var path;\r\n if (i >= 0) {\r\n path = arguments[i];\r\n } else if (!resolvedDevice) {\r\n path = process.cwd();\r\n } else {\r\n // Windows has the concept of drive-specific current working\r\n // directories. If we've resolved a drive letter but not yet an\r\n // absolute path, get cwd for that drive. We're sure the device is not\r\n // an unc path at this points, because unc paths are always absolute.\r\n path = process.env['=' + resolvedDevice];\r\n // Verify that a drive-local cwd was found and that it actually points\r\n // to our drive. If not, default to the drive's root.\r\n if (!path || path.substr(0, 3).toLowerCase() !==\r\n resolvedDevice.toLowerCase() + '\\\\') {\r\n path = resolvedDevice + '\\\\';\r\n }\r\n }\r\n\r\n // Skip empty and invalid entries\r\n if (!util.isString(path)) {\r\n throw new TypeError('Arguments to path.resolve must be strings');\r\n } else if (!path) {\r\n continue;\r\n }\r\n\r\n var result = win32StatPath(path),\r\n device = result.device,\r\n isUnc = result.isUnc,\r\n isAbsolute = result.isAbsolute,\r\n tail = result.tail;\r\n\r\n if (device &&\r\n resolvedDevice &&\r\n device.toLowerCase() !== resolvedDevice.toLowerCase()) {\r\n // This path points to another device so it is not applicable\r\n continue;\r\n }\r\n\r\n if (!resolvedDevice) {\r\n resolvedDevice = device;\r\n }\r\n if (!resolvedAbsolute) {\r\n resolvedTail = tail + '\\\\' + resolvedTail;\r\n resolvedAbsolute = isAbsolute;\r\n }\r\n\r\n if (resolvedDevice && resolvedAbsolute) {\r\n break;\r\n }\r\n }\r\n\r\n // Convert slashes to backslashes when `resolvedDevice` points to an UNC\r\n // root. Also squash multiple slashes into a single one where appropriate.\r\n if (isUnc) {\r\n resolvedDevice = normalizeUNCRoot(resolvedDevice);\r\n }\r\n\r\n // At this point the path should be resolved to a full absolute path,\r\n // but handle relative paths to be safe (might happen when process.cwd()\r\n // fails)\r\n\r\n // Normalize the tail path\r\n resolvedTail = normalizeArray(resolvedTail.split(/[\\\\\\/]+/),\r\n !resolvedAbsolute).join('\\\\');\r\n\r\n return (resolvedDevice + (resolvedAbsolute ? '\\\\' : '') + resolvedTail) ||\r\n '.';\r\n};\r\n\r\n\r\nwin32.normalize = function(path) {\r\n var result = win32StatPath(path),\r\n device = result.device,\r\n isUnc = result.isUnc,\r\n isAbsolute = result.isAbsolute,\r\n tail = result.tail,\r\n trailingSlash = /[\\\\\\/]$/.test(tail);\r\n\r\n // Normalize the tail path\r\n tail = normalizeArray(tail.split(/[\\\\\\/]+/), !isAbsolute).join('\\\\');\r\n\r\n if (!tail && !isAbsolute) {\r\n tail = '.';\r\n }\r\n if (tail && trailingSlash) {\r\n tail += '\\\\';\r\n }\r\n\r\n // Convert slashes to backslashes when `device` points to an UNC root.\r\n // Also squash multiple slashes into a single one where appropriate.\r\n if (isUnc) {\r\n device = normalizeUNCRoot(device);\r\n }\r\n\r\n return device + (isAbsolute ? '\\\\' : '') + tail;\r\n};\r\n\r\n\r\nwin32.isAbsolute = function(path) {\r\n return win32StatPath(path).isAbsolute;\r\n};\r\n\r\nwin32.join = function() {\r\n var paths = [];\r\n for (var i = 0; i < arguments.length; i++) {\r\n var arg = arguments[i];\r\n if (!util.isString(arg)) {\r\n throw new TypeError('Arguments to path.join must be strings');\r\n }\r\n if (arg) {\r\n paths.push(arg);\r\n }\r\n }\r\n\r\n var joined = paths.join('\\\\');\r\n\r\n // Make sure that the joined path doesn't start with two slashes, because\r\n // normalize() will mistake it for an UNC path then.\r\n //\r\n // This step is skipped when it is very clear that the user actually\r\n // intended to point at an UNC path. This is assumed when the first\r\n // non-empty string arguments starts with exactly two slashes followed by\r\n // at least one more non-slash character.\r\n //\r\n // Note that for normalize() to treat a path as an UNC path it needs to\r\n // have at least 2 components, so we don't filter for that here.\r\n // This means that the user can use join to construct UNC paths from\r\n // a server name and a share name; for example:\r\n // path.join('//server', 'share') -> '\\\\\\\\server\\\\share\\')\r\n if (!/^[\\\\\\/]{2}[^\\\\\\/]/.test(paths[0])) {\r\n joined = joined.replace(/^[\\\\\\/]{2,}/, '\\\\');\r\n }\r\n\r\n return win32.normalize(joined);\r\n};\r\n\r\n\r\n// path.relative(from, to)\r\n// it will solve the relative path from 'from' to 'to', for instance:\r\n// from = 'C:\\\\orandea\\\\test\\\\aaa'\r\n// to = 'C:\\\\orandea\\\\impl\\\\bbb'\r\n// The output of the function should be: '..\\\\..\\\\impl\\\\bbb'\r\nwin32.relative = function(from, to) {\r\n from = win32.resolve(from);\r\n to = win32.resolve(to);\r\n\r\n // windows is not case sensitive\r\n var lowerFrom = from.toLowerCase();\r\n var lowerTo = to.toLowerCase();\r\n\r\n var toParts = trimArray(to.split('\\\\'));\r\n\r\n var lowerFromParts = trimArray(lowerFrom.split('\\\\'));\r\n var lowerToParts = trimArray(lowerTo.split('\\\\'));\r\n\r\n var length = Math.min(lowerFromParts.length, lowerToParts.length);\r\n var samePartsLength = length;\r\n for (var i = 0; i < length; i++) {\r\n if (lowerFromParts[i] !== lowerToParts[i]) {\r\n samePartsLength = i;\r\n break;\r\n }\r\n }\r\n\r\n if (samePartsLength == 0) {\r\n return to;\r\n }\r\n\r\n var outputParts = [];\r\n for (var i = samePartsLength; i < lowerFromParts.length; i++) {\r\n outputParts.push('..');\r\n }\r\n\r\n outputParts = outputParts.concat(toParts.slice(samePartsLength));\r\n\r\n return outputParts.join('\\\\');\r\n};\r\n\r\n\r\nwin32._makeLong = function(path) {\r\n // Note: this will *probably* throw somewhere.\r\n if (!util.isString(path))\r\n return path;\r\n\r\n if (!path) {\r\n return '';\r\n }\r\n\r\n var resolvedPath = win32.resolve(path);\r\n\r\n if (/^[a-zA-Z]\\:\\\\/.test(resolvedPath)) {\r\n // path is local filesystem path, which needs to be converted\r\n // to long UNC path.\r\n return '\\\\\\\\?\\\\' + resolvedPath;\r\n } else if (/^\\\\\\\\[^?.]/.test(resolvedPath)) {\r\n // path is network UNC path, which needs to be converted\r\n // to long UNC path.\r\n return '\\\\\\\\?\\\\UNC\\\\' + resolvedPath.substring(2);\r\n }\r\n\r\n return path;\r\n};\r\n\r\n\r\nwin32.dirname = function(path) {\r\n var result = win32SplitPath(path),\r\n root = result[0],\r\n dir = result[1];\r\n\r\n if (!root && !dir) {\r\n // No dirname whatsoever\r\n return '.';\r\n }\r\n\r\n if (dir) {\r\n // It has a dirname, strip trailing slash\r\n dir = dir.substr(0, dir.length - 1);\r\n }\r\n\r\n return root + dir;\r\n};\r\n\r\n\r\nwin32.basename = function(path, ext) {\r\n var f = win32SplitPath(path)[2];\r\n // TODO: make this comparison case-insensitive on windows?\r\n if (ext && f.substr(-1 * ext.length) === ext) {\r\n f = f.substr(0, f.length - ext.length);\r\n }\r\n return f;\r\n};\r\n\r\n\r\nwin32.extname = function(path) {\r\n return win32SplitPath(path)[3];\r\n};\r\n\r\n\r\nwin32.format = function(pathObject) {\r\n if (!util.isObject(pathObject)) {\r\n throw new TypeError(\r\n \"Parameter 'pathObject' must be an object, not \" + typeof pathObject\r\n );\r\n }\r\n\r\n var root = pathObject.root || '';\r\n\r\n if (!util.isString(root)) {\r\n throw new TypeError(\r\n \"'pathObject.root' must be a string or undefined, not \" +\r\n typeof pathObject.root\r\n );\r\n }\r\n\r\n var dir = pathObject.dir;\r\n var base = pathObject.base || '';\r\n if (!dir) {\r\n return base;\r\n }\r\n if (dir[dir.length - 1] === win32.sep) {\r\n return dir + base;\r\n }\r\n return dir + win32.sep + base;\r\n};\r\n\r\n\r\nwin32.parse = function(pathString) {\r\n if (!util.isString(pathString)) {\r\n throw new TypeError(\r\n \"Parameter 'pathString' must be a string, not \" + typeof pathString\r\n );\r\n }\r\n var allParts = win32SplitPath(pathString);\r\n if (!allParts || allParts.length !== 4) {\r\n throw new TypeError(\"Invalid path '\" + pathString + \"'\");\r\n }\r\n return {\r\n root: allParts[0],\r\n dir: allParts[0] + allParts[1].slice(0, -1),\r\n base: allParts[2],\r\n ext: allParts[3],\r\n name: allParts[2].slice(0, allParts[2].length - allParts[3].length)\r\n };\r\n};\r\n\r\n\r\nwin32.sep = '\\\\';\r\nwin32.delimiter = ';';\r\n\r\n\r\n// Split a filename into [root, dir, basename, ext], unix version\r\n// 'root' is just a slash, or nothing.\r\nvar splitPathRe =\r\n /^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;\r\nvar posix = {};\r\n\r\n\r\nfunction posixSplitPath(filename) {\r\n return splitPathRe.exec(filename).slice(1);\r\n}\r\n\r\n\r\n// path.resolve([from ...], to)\r\n// posix version\r\nposix.resolve = function() {\r\n var resolvedPath = '',\r\n resolvedAbsolute = false;\r\n\r\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\r\n var path = (i >= 0) ? arguments[i] : process.cwd();\r\n\r\n // Skip empty and invalid entries\r\n if (!util.isString(path)) {\r\n throw new TypeError('Arguments to path.resolve must be strings');\r\n } else if (!path) {\r\n continue;\r\n }\r\n\r\n resolvedPath = path + '/' + resolvedPath;\r\n resolvedAbsolute = path[0] === '/';\r\n }\r\n\r\n // At this point the path should be resolved to a full absolute path, but\r\n // handle relative paths to be safe (might happen when process.cwd() fails)\r\n\r\n // Normalize the path\r\n resolvedPath = normalizeArray(resolvedPath.split('/'),\r\n !resolvedAbsolute).join('/');\r\n\r\n return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.';\r\n};\r\n\r\n// path.normalize(path)\r\n// posix version\r\nposix.normalize = function(path) {\r\n var isAbsolute = posix.isAbsolute(path),\r\n trailingSlash = path && path[path.length - 1] === '/';\r\n\r\n // Normalize the path\r\n path = normalizeArray(path.split('/'), !isAbsolute).join('/');\r\n\r\n if (!path && !isAbsolute) {\r\n path = '.';\r\n }\r\n if (path && trailingSlash) {\r\n path += '/';\r\n }\r\n\r\n return (isAbsolute ? '/' : '') + path;\r\n};\r\n\r\n// posix version\r\nposix.isAbsolute = function(path) {\r\n return path.charAt(0) === '/';\r\n};\r\n\r\n// posix version\r\nposix.join = function() {\r\n var path = '';\r\n for (var i = 0; i < arguments.length; i++) {\r\n var segment = arguments[i];\r\n if (!util.isString(segment)) {\r\n throw new TypeError('Arguments to path.join must be strings');\r\n }\r\n if (segment) {\r\n if (!path) {\r\n path += segment;\r\n } else {\r\n path += '/' + segment;\r\n }\r\n }\r\n }\r\n return posix.normalize(path);\r\n};\r\n\r\n\r\n// path.relative(from, to)\r\n// posix version\r\nposix.relative = function(from, to) {\r\n from = posix.resolve(from).substr(1);\r\n to = posix.resolve(to).substr(1);\r\n\r\n var fromParts = trimArray(from.split('/'));\r\n var toParts = trimArray(to.split('/'));\r\n\r\n var length = Math.min(fromParts.length, toParts.length);\r\n var samePartsLength = length;\r\n for (var i = 0; i < length; i++) {\r\n if (fromParts[i] !== toParts[i]) {\r\n samePartsLength = i;\r\n break;\r\n }\r\n }\r\n\r\n var outputParts = [];\r\n for (var i = samePartsLength; i < fromParts.length; i++) {\r\n outputParts.push('..');\r\n }\r\n\r\n outputParts = outputParts.concat(toParts.slice(samePartsLength));\r\n\r\n return outputParts.join('/');\r\n};\r\n\r\n\r\nposix._makeLong = function(path) {\r\n return path;\r\n};\r\n\r\n\r\nposix.dirname = function(path) {\r\n var result = posixSplitPath(path),\r\n root = result[0],\r\n dir = result[1];\r\n\r\n if (!root && !dir) {\r\n // No dirname whatsoever\r\n return '.';\r\n }\r\n\r\n if (dir) {\r\n // It has a dirname, strip trailing slash\r\n dir = dir.substr(0, dir.length - 1);\r\n }\r\n\r\n return root + dir;\r\n};\r\n\r\n\r\nposix.basename = function(path, ext) {\r\n var f = posixSplitPath(path)[2];\r\n // TODO: make this comparison case-insensitive on windows?\r\n if (ext && f.substr(-1 * ext.length) === ext) {\r\n f = f.substr(0, f.length - ext.length);\r\n }\r\n return f;\r\n};\r\n\r\n\r\nposix.extname = function(path) {\r\n return posixSplitPath(path)[3];\r\n};\r\n\r\n\r\nposix.format = function(pathObject) {\r\n if (!util.isObject(pathObject)) {\r\n throw new TypeError(\r\n \"Parameter 'pathObject' must be an object, not \" + typeof pathObject\r\n );\r\n }\r\n\r\n var root = pathObject.root || '';\r\n\r\n if (!util.isString(root)) {\r\n throw new TypeError(\r\n \"'pathObject.root' must be a string or undefined, not \" +\r\n typeof pathObject.root\r\n );\r\n }\r\n\r\n var dir = pathObject.dir ? pathObject.dir + posix.sep : '';\r\n var base = pathObject.base || '';\r\n return dir + base;\r\n};\r\n\r\n\r\nposix.parse = function(pathString) {\r\n if (!util.isString(pathString)) {\r\n throw new TypeError(\r\n \"Parameter 'pathString' must be a string, not \" + typeof pathString\r\n );\r\n }\r\n var allParts = posixSplitPath(pathString);\r\n if (!allParts || allParts.length !== 4) {\r\n throw new TypeError(\"Invalid path '\" + pathString + \"'\");\r\n }\r\n allParts[1] = allParts[1] || '';\r\n allParts[2] = allParts[2] || '';\r\n allParts[3] = allParts[3] || '';\r\n\r\n return {\r\n root: allParts[0],\r\n dir: allParts[0] + allParts[1].slice(0, -1),\r\n base: allParts[2],\r\n ext: allParts[3],\r\n name: allParts[2].slice(0, allParts[2].length - allParts[3].length)\r\n };\r\n};\r\n\r\n\r\nposix.sep = '/';\r\nposix.delimiter = ':';\r\n\r\n\r\nif (isWindows)\r\n module.exports = win32;\r\nelse /* posix */\r\n module.exports = posix;\r\n\r\nmodule.exports.posix = posix;\r\nmodule.exports.win32 = win32;\r\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n var has = Function.call.bind(Object.prototype.hasOwnProperty);\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n );\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\ncheckPropTypes.resetWarningCache = function() {\n if (process.env.NODE_ENV !== 'production') {\n loggedTypeFailures = {};\n }\n}\n\nmodule.exports = checkPropTypes;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/** @license React v16.11.0\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),n=require(\"object-assign\"),q=require(\"scheduler\");function u(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function B(a,b,c,d,e,f){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f}var D={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){D[a]=new B(a,0,!1,a,null,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];D[b]=new B(b,1,!1,a[1],null,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){D[a]=new B(a,2,!1,a.toLowerCase(),null,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){D[a]=new B(a,2,!1,a,null,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){D[a]=new B(a,3,!1,a.toLowerCase(),null,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){D[a]=new B(a,3,!0,a,null,!1)});[\"capture\",\"download\"].forEach(function(a){D[a]=new B(a,4,!1,a,null,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){D[a]=new B(a,6,!1,a,null,!1)});[\"rowSpan\",\"start\"].forEach(function(a){D[a]=new B(a,5,!1,a.toLowerCase(),null,!1)});var sb=/[\\-:]([a-z])/g;function tb(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(sb,\ntb);D[b]=new B(b,1,!1,a,null,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(sb,tb);D[b]=new B(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(sb,tb);D[b]=new B(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!1)});\nD.xlinkHref=new B(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!0)});function ub(a){switch(typeof a){case \"boolean\":case \"number\":case \"object\":case \"string\":case \"undefined\":return a;default:return\"\"}}\nfunction vb(a,b,c,d){var e=D.hasOwnProperty(b)?D[b]:null;var f=null!==e?0===e.type:d?!1:!(2=b.length))throw Error(u(93));b=b[0]}c=b}null==c&&(c=\"\")}a._wrapperState={initialValue:ub(c)}}\nfunction Mb(a,b){var c=ub(b.value),d=ub(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function Nb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}var Ob={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction Pb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function Qb(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?Pb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar Rb,Sb=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(a.namespaceURI!==Ob.svg||\"innerHTML\"in a)a.innerHTML=b;else{Rb=Rb||document.createElement(\"div\");Rb.innerHTML=\"\"+b.valueOf().toString()+\"\";for(b=Rb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction Tb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}function Ub(a,b){var c={};c[a.toLowerCase()]=b.toLowerCase();c[\"Webkit\"+a]=\"webkit\"+b;c[\"Moz\"+a]=\"moz\"+b;return c}var Vb={animationend:Ub(\"Animation\",\"AnimationEnd\"),animationiteration:Ub(\"Animation\",\"AnimationIteration\"),animationstart:Ub(\"Animation\",\"AnimationStart\"),transitionend:Ub(\"Transition\",\"TransitionEnd\")},Wb={},Xb={};\nYa&&(Xb=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete Vb.animationend.animation,delete Vb.animationiteration.animation,delete Vb.animationstart.animation),\"TransitionEvent\"in window||delete Vb.transitionend.transition);function Yb(a){if(Wb[a])return Wb[a];if(!Vb[a])return a;var b=Vb[a],c;for(c in b)if(b.hasOwnProperty(c)&&c in Xb)return Wb[a]=b[c];return a}var Zb=Yb(\"animationend\"),$b=Yb(\"animationiteration\"),ac=Yb(\"animationstart\"),bc=Yb(\"transitionend\"),dc=\"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting\".split(\" \");\nfunction ec(a){var b=a,c=a;if(a.alternate)for(;b.return;)b=b.return;else{a=b;do b=a,0!==(b.effectTag&1026)&&(c=b.return),a=b.return;while(a)}return 3===b.tag?c:null}function fc(a){if(13===a.tag){var b=a.memoizedState;null===b&&(a=a.alternate,null!==a&&(b=a.memoizedState));if(null!==b)return b.dehydrated}return null}function gc(a){if(ec(a)!==a)throw Error(u(188));}\nfunction hc(a){var b=a.alternate;if(!b){b=ec(a);if(null===b)throw Error(u(188));return b!==a?null:a}for(var c=a,d=b;;){var e=c.return;if(null===e)break;var f=e.alternate;if(null===f){d=e.return;if(null!==d){c=d;continue}break}if(e.child===f.child){for(f=e.child;f;){if(f===c)return gc(e),a;if(f===d)return gc(e),b;f=f.sibling}throw Error(u(188));}if(c.return!==d.return)c=e,d=f;else{for(var g=!1,h=e.child;h;){if(h===c){g=!0;c=e;d=f;break}if(h===d){g=!0;d=e;c=f;break}h=h.sibling}if(!g){for(h=f.child;h;){if(h===\nc){g=!0;c=f;d=e;break}if(h===d){g=!0;d=f;c=e;break}h=h.sibling}if(!g)throw Error(u(189));}}if(c.alternate!==d)throw Error(u(190));}if(3!==c.tag)throw Error(u(188));return c.stateNode.current===c?a:b}function ic(a){a=hc(a);if(!a)return null;for(var b=a;;){if(5===b.tag||6===b.tag)return b;if(b.child)b.child.return=b,b=b.child;else{if(b===a)break;for(;!b.sibling;){if(!b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}}return null}\nvar jc,kc,lc,mc=!1,nc=[],oc=null,pc=null,qc=null,rc=new Map,sc=new Map,tc=[],uc=\"mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput close cancel copy cut paste click change contextmenu reset submit\".split(\" \"),vc=\"focus blur dragenter dragleave mouseover mouseout pointerover pointerout gotpointercapture lostpointercapture\".split(\" \");\nfunction wc(a){var b=xc(a);uc.forEach(function(c){yc(c,a,b)});vc.forEach(function(c){yc(c,a,b)})}function zc(a,b,c,d){return{blockedOn:a,topLevelType:b,eventSystemFlags:c|32,nativeEvent:d}}function Ac(a,b){switch(a){case \"focus\":case \"blur\":oc=null;break;case \"dragenter\":case \"dragleave\":pc=null;break;case \"mouseover\":case \"mouseout\":qc=null;break;case \"pointerover\":case \"pointerout\":rc.delete(b.pointerId);break;case \"gotpointercapture\":case \"lostpointercapture\":sc.delete(b.pointerId)}}\nfunction Bc(a,b,c,d,e){if(null===a||a.nativeEvent!==e)return a=zc(b,c,d,e),null!==b&&(b=Cc(b),null!==b&&kc(b)),a;a.eventSystemFlags|=d;return a}function Dc(a,b,c,d){switch(b){case \"focus\":return oc=Bc(oc,a,b,c,d),!0;case \"dragenter\":return pc=Bc(pc,a,b,c,d),!0;case \"mouseover\":return qc=Bc(qc,a,b,c,d),!0;case \"pointerover\":var e=d.pointerId;rc.set(e,Bc(rc.get(e)||null,a,b,c,d));return!0;case \"gotpointercapture\":return e=d.pointerId,sc.set(e,Bc(sc.get(e)||null,a,b,c,d)),!0}return!1}\nfunction Ec(a){var b=Fc(a.target);if(null!==b){var c=ec(b);if(null!==c)if(b=c.tag,13===b){if(b=fc(c),null!==b){a.blockedOn=b;q.unstable_runWithPriority(a.priority,function(){lc(c)});return}}else if(3===b&&c.stateNode.hydrate){a.blockedOn=3===c.tag?c.stateNode.containerInfo:null;return}}a.blockedOn=null}function Gc(a){if(null!==a.blockedOn)return!1;var b=Hc(a.topLevelType,a.eventSystemFlags,a.nativeEvent);if(null!==b){var c=Cc(b);null!==c&&kc(c);a.blockedOn=b;return!1}return!0}\nfunction Ic(a,b,c){Gc(a)&&c.delete(b)}function Jc(){for(mc=!1;0this.eventPool.length&&this.eventPool.push(a)}function Vc(a){a.eventPool=[];a.getPooled=Wc;a.release=Xc}var Yc=E.extend({animationName:null,elapsedTime:null,pseudoElement:null}),Zc=E.extend({clipboardData:function(a){return\"clipboardData\"in a?a.clipboardData:window.clipboardData}}),$c=E.extend({view:null,detail:null}),ad=$c.extend({relatedTarget:null});\nfunction bd(a){var b=a.keyCode;\"charCode\"in a?(a=a.charCode,0===a&&13===b&&(a=13)):a=b;10===a&&(a=13);return 32<=a||13===a?a:0}\nvar cd={Esc:\"Escape\",Spacebar:\" \",Left:\"ArrowLeft\",Up:\"ArrowUp\",Right:\"ArrowRight\",Down:\"ArrowDown\",Del:\"Delete\",Win:\"OS\",Menu:\"ContextMenu\",Apps:\"ContextMenu\",Scroll:\"ScrollLock\",MozPrintableKey:\"Unidentified\"},ed={8:\"Backspace\",9:\"Tab\",12:\"Clear\",13:\"Enter\",16:\"Shift\",17:\"Control\",18:\"Alt\",19:\"Pause\",20:\"CapsLock\",27:\"Escape\",32:\" \",33:\"PageUp\",34:\"PageDown\",35:\"End\",36:\"Home\",37:\"ArrowLeft\",38:\"ArrowUp\",39:\"ArrowRight\",40:\"ArrowDown\",45:\"Insert\",46:\"Delete\",112:\"F1\",113:\"F2\",114:\"F3\",115:\"F4\",\n116:\"F5\",117:\"F6\",118:\"F7\",119:\"F8\",120:\"F9\",121:\"F10\",122:\"F11\",123:\"F12\",144:\"NumLock\",145:\"ScrollLock\",224:\"Meta\"},fd={Alt:\"altKey\",Control:\"ctrlKey\",Meta:\"metaKey\",Shift:\"shiftKey\"};function gd(a){var b=this.nativeEvent;return b.getModifierState?b.getModifierState(a):(a=fd[a])?!!b[a]:!1}function hd(){return gd}\nvar id=$c.extend({key:function(a){if(a.key){var b=cd[a.key]||a.key;if(\"Unidentified\"!==b)return b}return\"keypress\"===a.type?(a=bd(a),13===a?\"Enter\":String.fromCharCode(a)):\"keydown\"===a.type||\"keyup\"===a.type?ed[a.keyCode]||\"Unidentified\":\"\"},location:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,repeat:null,locale:null,getModifierState:hd,charCode:function(a){return\"keypress\"===a.type?bd(a):0},keyCode:function(a){return\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0},which:function(a){return\"keypress\"===\na.type?bd(a):\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0}}),jd=0,kd=0,ld=!1,md=!1,nd=$c.extend({screenX:null,screenY:null,clientX:null,clientY:null,pageX:null,pageY:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,getModifierState:hd,button:null,buttons:null,relatedTarget:function(a){return a.relatedTarget||(a.fromElement===a.srcElement?a.toElement:a.fromElement)},movementX:function(a){if(\"movementX\"in a)return a.movementX;var b=jd;jd=a.screenX;return ld?\"mousemove\"===a.type?a.screenX-\nb:0:(ld=!0,0)},movementY:function(a){if(\"movementY\"in a)return a.movementY;var b=kd;kd=a.screenY;return md?\"mousemove\"===a.type?a.screenY-b:0:(md=!0,0)}}),od=nd.extend({pointerId:null,width:null,height:null,pressure:null,tangentialPressure:null,tiltX:null,tiltY:null,twist:null,pointerType:null,isPrimary:null}),pd=nd.extend({dataTransfer:null}),qd=$c.extend({touches:null,targetTouches:null,changedTouches:null,altKey:null,metaKey:null,ctrlKey:null,shiftKey:null,getModifierState:hd}),rd=E.extend({propertyName:null,\nelapsedTime:null,pseudoElement:null}),sd=nd.extend({deltaX:function(a){return\"deltaX\"in a?a.deltaX:\"wheelDeltaX\"in a?-a.wheelDeltaX:0},deltaY:function(a){return\"deltaY\"in a?a.deltaY:\"wheelDeltaY\"in a?-a.wheelDeltaY:\"wheelDelta\"in a?-a.wheelDelta:0},deltaZ:null,deltaMode:null}),td=[[\"blur\",\"blur\",0],[\"cancel\",\"cancel\",0],[\"click\",\"click\",0],[\"close\",\"close\",0],[\"contextmenu\",\"contextMenu\",0],[\"copy\",\"copy\",0],[\"cut\",\"cut\",0],[\"auxclick\",\"auxClick\",0],[\"dblclick\",\"doubleClick\",0],[\"dragend\",\"dragEnd\",\n0],[\"dragstart\",\"dragStart\",0],[\"drop\",\"drop\",0],[\"focus\",\"focus\",0],[\"input\",\"input\",0],[\"invalid\",\"invalid\",0],[\"keydown\",\"keyDown\",0],[\"keypress\",\"keyPress\",0],[\"keyup\",\"keyUp\",0],[\"mousedown\",\"mouseDown\",0],[\"mouseup\",\"mouseUp\",0],[\"paste\",\"paste\",0],[\"pause\",\"pause\",0],[\"play\",\"play\",0],[\"pointercancel\",\"pointerCancel\",0],[\"pointerdown\",\"pointerDown\",0],[\"pointerup\",\"pointerUp\",0],[\"ratechange\",\"rateChange\",0],[\"reset\",\"reset\",0],[\"seeked\",\"seeked\",0],[\"submit\",\"submit\",0],[\"touchcancel\",\"touchCancel\",\n0],[\"touchend\",\"touchEnd\",0],[\"touchstart\",\"touchStart\",0],[\"volumechange\",\"volumeChange\",0],[\"drag\",\"drag\",1],[\"dragenter\",\"dragEnter\",1],[\"dragexit\",\"dragExit\",1],[\"dragleave\",\"dragLeave\",1],[\"dragover\",\"dragOver\",1],[\"mousemove\",\"mouseMove\",1],[\"mouseout\",\"mouseOut\",1],[\"mouseover\",\"mouseOver\",1],[\"pointermove\",\"pointerMove\",1],[\"pointerout\",\"pointerOut\",1],[\"pointerover\",\"pointerOver\",1],[\"scroll\",\"scroll\",1],[\"toggle\",\"toggle\",1],[\"touchmove\",\"touchMove\",1],[\"wheel\",\"wheel\",1],[\"abort\",\"abort\",\n2],[Zb,\"animationEnd\",2],[$b,\"animationIteration\",2],[ac,\"animationStart\",2],[\"canplay\",\"canPlay\",2],[\"canplaythrough\",\"canPlayThrough\",2],[\"durationchange\",\"durationChange\",2],[\"emptied\",\"emptied\",2],[\"encrypted\",\"encrypted\",2],[\"ended\",\"ended\",2],[\"error\",\"error\",2],[\"gotpointercapture\",\"gotPointerCapture\",2],[\"load\",\"load\",2],[\"loadeddata\",\"loadedData\",2],[\"loadedmetadata\",\"loadedMetadata\",2],[\"loadstart\",\"loadStart\",2],[\"lostpointercapture\",\"lostPointerCapture\",2],[\"playing\",\"playing\",2],[\"progress\",\n\"progress\",2],[\"seeking\",\"seeking\",2],[\"stalled\",\"stalled\",2],[\"suspend\",\"suspend\",2],[\"timeupdate\",\"timeUpdate\",2],[bc,\"transitionEnd\",2],[\"waiting\",\"waiting\",2]],ud={},vd={},xd=0;for(;xd=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=ce(c)}}\nfunction ee(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?ee(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}function fe(){for(var a=window,b=be();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=be(a.document)}return b}\nfunction ge(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}var he=\"$\",ie=\"/$\",je=\"$?\",ke=\"$!\",le=null,me=null;function ne(a,b){switch(a){case \"button\":case \"input\":case \"select\":case \"textarea\":return!!b.autoFocus}return!1}\nfunction oe(a,b){return\"textarea\"===a||\"option\"===a||\"noscript\"===a||\"string\"===typeof b.children||\"number\"===typeof b.children||\"object\"===typeof b.dangerouslySetInnerHTML&&null!==b.dangerouslySetInnerHTML&&null!=b.dangerouslySetInnerHTML.__html}var pe=\"function\"===typeof setTimeout?setTimeout:void 0,qe=\"function\"===typeof clearTimeout?clearTimeout:void 0;function re(a){for(;null!=a;a=a.nextSibling){var b=a.nodeType;if(1===b||3===b)break}return a}\nfunction se(a){a=a.previousSibling;for(var b=0;a;){if(8===a.nodeType){var c=a.data;if(c===he||c===ke||c===je){if(0===b)return a;b--}else c===ie&&b++}a=a.previousSibling}return null}var te=Math.random().toString(36).slice(2),ue=\"__reactInternalInstance$\"+te,ve=\"__reactEventHandlers$\"+te,we=\"__reactContainere$\"+te;\nfunction Fc(a){var b=a[ue];if(b)return b;for(var c=a.parentNode;c;){if(b=c[we]||c[ue]){c=b.alternate;if(null!==b.child||null!==c&&null!==c.child)for(a=se(a);null!==a;){if(c=a[ue])return c;a=se(a)}return b}a=c;c=a.parentNode}return null}function Cc(a){a=a[ue]||a[we];return!a||5!==a.tag&&6!==a.tag&&13!==a.tag&&3!==a.tag?null:a}function xe(a){if(5===a.tag||6===a.tag)return a.stateNode;throw Error(u(33));}function ye(a){return a[ve]||null}var ze=null,Ae=null,Be=null;\nfunction Ce(){if(Be)return Be;var a,b=Ae,c=b.length,d,e=\"value\"in ze?ze.value:ze.textContent,f=e.length;for(a=0;a=He),Ke=String.fromCharCode(32),Le={beforeInput:{phasedRegistrationNames:{bubbled:\"onBeforeInput\",captured:\"onBeforeInputCapture\"},dependencies:[\"compositionend\",\"keypress\",\"textInput\",\"paste\"]},compositionEnd:{phasedRegistrationNames:{bubbled:\"onCompositionEnd\",captured:\"onCompositionEndCapture\"},dependencies:\"blur compositionend keydown keypress keyup mousedown\".split(\" \")},compositionStart:{phasedRegistrationNames:{bubbled:\"onCompositionStart\",\ncaptured:\"onCompositionStartCapture\"},dependencies:\"blur compositionstart keydown keypress keyup mousedown\".split(\" \")},compositionUpdate:{phasedRegistrationNames:{bubbled:\"onCompositionUpdate\",captured:\"onCompositionUpdateCapture\"},dependencies:\"blur compositionupdate keydown keypress keyup mousedown\".split(\" \")}},Me=!1;\nfunction Ne(a,b){switch(a){case \"keyup\":return-1!==Fe.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"blur\":return!0;default:return!1}}function Oe(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var Pe=!1;function Qe(a,b){switch(a){case \"compositionend\":return Oe(b);case \"keypress\":if(32!==b.which)return null;Me=!0;return Ke;case \"textInput\":return a=b.data,a===Ke&&Me?null:a;default:return null}}\nfunction Re(a,b){if(Pe)return\"compositionend\"===a||!Ge&&Ne(a,b)?(a=Ce(),Be=Ae=ze=null,Pe=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=document.documentMode,sf={select:{phasedRegistrationNames:{bubbled:\"onSelect\",captured:\"onSelectCapture\"},dependencies:\"blur contextmenu dragend focus keydown keyup mousedown mouseup selectionchange\".split(\" \")}},tf=null,uf=null,vf=null,wf=!1;\nfunction xf(a,b){var c=b.window===b?b.document:9===b.nodeType?b:b.ownerDocument;if(wf||null==tf||tf!==be(c))return null;c=tf;\"selectionStart\"in c&&ge(c)?c={start:c.selectionStart,end:c.selectionEnd}:(c=(c.ownerDocument&&c.ownerDocument.defaultView||window).getSelection(),c={anchorNode:c.anchorNode,anchorOffset:c.anchorOffset,focusNode:c.focusNode,focusOffset:c.focusOffset});return vf&&qf(vf,c)?null:(vf=c,a=E.getPooled(sf.select,uf,a,b),a.type=\"select\",a.target=tf,Sc(a),a)}\nvar yf={eventTypes:sf,extractEvents:function(a,b,c,d){var e=d.window===d?d.document:9===d.nodeType?d:d.ownerDocument,f;if(!(f=!e)){a:{e=xc(e);f=ja.onSelect;for(var g=0;gBf||(a.current=Af[Bf],Af[Bf]=null,Bf--)}\nfunction I(a,b){Bf++;Af[Bf]=a.current;a.current=b}var Cf={},J={current:Cf},K={current:!1},Df=Cf;function Ef(a,b){var c=a.type.contextTypes;if(!c)return Cf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}function L(a){a=a.childContextTypes;return null!==a&&void 0!==a}\nfunction Ff(a){G(K,a);G(J,a)}function Gf(a){G(K,a);G(J,a)}function Hf(a,b,c){if(J.current!==Cf)throw Error(u(168));I(J,b,a);I(K,c,a)}function If(a,b,c){var d=a.stateNode;a=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in a))throw Error(u(108,Wa(b)||\"Unknown\",e));return n({},c,{},d)}function Jf(a){var b=a.stateNode;b=b&&b.__reactInternalMemoizedMergedChildContext||Cf;Df=J.current;I(J,b,a);I(K,K.current,a);return!0}\nfunction Kf(a,b,c){var d=a.stateNode;if(!d)throw Error(u(169));c?(b=If(a,b,Df),d.__reactInternalMemoizedMergedChildContext=b,G(K,a),G(J,a),I(J,b,a)):G(K,a);I(K,c,a)}\nvar Lf=q.unstable_runWithPriority,Mf=q.unstable_scheduleCallback,Nf=q.unstable_cancelCallback,Of=q.unstable_shouldYield,Pf=q.unstable_requestPaint,Qf=q.unstable_now,Rf=q.unstable_getCurrentPriorityLevel,Sf=q.unstable_ImmediatePriority,Tf=q.unstable_UserBlockingPriority,Uf=q.unstable_NormalPriority,Vf=q.unstable_LowPriority,Wf=q.unstable_IdlePriority,Xf={},Yf=void 0!==Pf?Pf:function(){},Zf=null,$f=null,ag=!1,bg=Qf(),cg=1E4>bg?Qf:function(){return Qf()-bg};\nfunction dg(){switch(Rf()){case Sf:return 99;case Tf:return 98;case Uf:return 97;case Vf:return 96;case Wf:return 95;default:throw Error(u(332));}}function eg(a){switch(a){case 99:return Sf;case 98:return Tf;case 97:return Uf;case 96:return Vf;case 95:return Wf;default:throw Error(u(332));}}function fg(a,b){a=eg(a);return Lf(a,b)}function gg(a,b,c){a=eg(a);return Mf(a,b,c)}function hg(a){null===Zf?(Zf=[a],$f=Mf(Sf,ig)):Zf.push(a);return Xf}function jg(){if(null!==$f){var a=$f;$f=null;Nf(a)}ig()}\nfunction ig(){if(!ag&&null!==Zf){ag=!0;var a=0;try{var b=Zf;fg(99,function(){for(;a=b&&(wg=!0),a.firstContext=null)}function xg(a,b){if(qg!==a&&!1!==b&&0!==b){if(\"number\"!==typeof b||1073741823===b)qg=a,b=1073741823;b={context:a,observedBits:b,next:null};if(null===pg){if(null===og)throw Error(u(308));pg=b;og.dependencies={expirationTime:0,firstContext:b,responders:null}}else pg=pg.next=b}return a._currentValue}var yg=!1;\nfunction zg(a){return{baseState:a,firstUpdate:null,lastUpdate:null,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function Ag(a){return{baseState:a.baseState,firstUpdate:a.firstUpdate,lastUpdate:a.lastUpdate,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}\nfunction Bg(a,b){return{expirationTime:a,suspenseConfig:b,tag:0,payload:null,callback:null,next:null,nextEffect:null}}function Cg(a,b){null===a.lastUpdate?a.firstUpdate=a.lastUpdate=b:(a.lastUpdate.next=b,a.lastUpdate=b)}\nfunction Dg(a,b){var c=a.alternate;if(null===c){var d=a.updateQueue;var e=null;null===d&&(d=a.updateQueue=zg(a.memoizedState))}else d=a.updateQueue,e=c.updateQueue,null===d?null===e?(d=a.updateQueue=zg(a.memoizedState),e=c.updateQueue=zg(c.memoizedState)):d=a.updateQueue=Ag(e):null===e&&(e=c.updateQueue=Ag(d));null===e||d===e?Cg(d,b):null===d.lastUpdate||null===e.lastUpdate?(Cg(d,b),Cg(e,b)):(Cg(d,b),e.lastUpdate=b)}\nfunction Eg(a,b){var c=a.updateQueue;c=null===c?a.updateQueue=zg(a.memoizedState):Fg(a,c);null===c.lastCapturedUpdate?c.firstCapturedUpdate=c.lastCapturedUpdate=b:(c.lastCapturedUpdate.next=b,c.lastCapturedUpdate=b)}function Fg(a,b){var c=a.alternate;null!==c&&b===c.updateQueue&&(b=a.updateQueue=Ag(b));return b}\nfunction Gg(a,b,c,d,e,f){switch(c.tag){case 1:return a=c.payload,\"function\"===typeof a?a.call(f,d,e):a;case 3:a.effectTag=a.effectTag&-4097|64;case 0:a=c.payload;e=\"function\"===typeof a?a.call(f,d,e):a;if(null===e||void 0===e)break;return n({},d,e);case 2:yg=!0}return d}\nfunction Hg(a,b,c,d,e){yg=!1;b=Fg(a,b);for(var f=b.baseState,g=null,h=0,k=b.firstUpdate,l=f;null!==k;){var m=k.expirationTime;mx?(A=r,r=null):A=r.sibling;var p=y(e,r,h[x],k);if(null===p){null===r&&(r=A);break}a&&\nr&&null===p.alternate&&b(e,r);g=f(p,g,x);null===m?l=p:m.sibling=p;m=p;r=A}if(x===h.length)return c(e,r),l;if(null===r){for(;xx?(A=r,r=null):A=r.sibling;var z=y(e,r,p.value,k);if(null===z){null===r&&(r=A);break}a&&r&&null===z.alternate&&b(e,r);g=f(z,g,x);null===m?l=z:m.sibling=z;m=z;r=A}if(p.done)return c(e,r),l;if(null===r){for(;!p.done;x++,p=h.next())p=C(e,p.value,k),null!==p&&(g=f(p,g,x),null===m?l=p:m.sibling=p,m=p);return l}for(r=d(e,r);!p.done;x++,p=h.next())p=H(r,e,x,p.value,k),null!==p&&(a&&null!==\np.alternate&&r.delete(null===p.key?x:p.key),g=f(p,g,x),null===m?l=p:m.sibling=p,m=p);a&&r.forEach(function(a){return b(e,a)});return l}return function(a,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===Ia&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case Ga:a:{l=f.key;for(k=d;null!==k;){if(k.key===l)if(7===k.tag?f.type===Ia:k.elementType===f.type){c(a,k.sibling);d=e(k,f.type===Ia?f.props.children:f.props,h);d.ref=Yg(a,k,f);d.return=a;a=d;break a}else{c(a,\nk);break}else b(a,k);k=k.sibling}f.type===Ia?(d=eh(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=ch(f.type,f.key,f.props,null,a.mode,h),h.ref=Yg(a,d,f),h.return=a,a=h)}return g(a);case Ha:a:{for(k=f.key;null!==d;){if(d.key===k)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[],h);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=dh(f,a.mode,h);d.return=a;a=d}return g(a)}if(\"string\"===\ntypeof f||\"number\"===typeof f)return f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f,h),d.return=a,a=d):(c(a,d),d=bh(f,a.mode,h),d.return=a,a=d),g(a);if(Xg(f))return z(a,d,f,h);if(Ua(f))return ta(a,d,f,h);l&&Zg(a,f);if(\"undefined\"===typeof f&&!k)switch(a.tag){case 1:case 0:throw a=a.type,Error(u(152,a.displayName||a.name||\"Component\"));}return c(a,d)}}var fh=$g(!0),gh=$g(!1),hh={},ih={current:hh},jh={current:hh},kh={current:hh};function lh(a){if(a===hh)throw Error(u(174));return a}\nfunction mh(a,b){I(kh,b,a);I(jh,a,a);I(ih,hh,a);var c=b.nodeType;switch(c){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:Qb(null,\"\");break;default:c=8===c?b.parentNode:b,b=c.namespaceURI||null,c=c.tagName,b=Qb(b,c)}G(ih,a);I(ih,b,a)}function nh(a){G(ih,a);G(jh,a);G(kh,a)}function oh(a){lh(kh.current);var b=lh(ih.current);var c=Qb(b,a.type);b!==c&&(I(jh,a,a),I(ih,c,a))}function ph(a){jh.current===a&&(G(ih,a),G(jh,a))}var M={current:0};\nfunction qh(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||c.data===je||c.data===ke))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.effectTag&64))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}function rh(a,b){return{responder:a,props:b}}\nvar sh=Ea.ReactCurrentDispatcher,N=Ea.ReactCurrentBatchConfig,th=0,uh=null,O=null,vh=null,wh=null,P=null,xh=null,yh=0,zh=null,Ah=0,Bh=!1,Ch=null,Gh=0;function Q(){throw Error(u(321));}function Hh(a,b){if(null===b)return!1;for(var c=0;cyh&&(yh=m,Jg(yh))):(Ig(m,k.suspenseConfig),f=k.eagerReducer===a?k.eagerState:a(f,k.action));g=k;k=k.next}while(null!==k&&k!==d);l||(h=g,e=f);of(f,b.memoizedState)||(wg=!0);b.memoizedState=f;b.baseUpdate=h;b.baseState=e;c.lastRenderedState=f}return[b.memoizedState,c.dispatch]}\nfunction Rh(a){var b=Nh();\"function\"===typeof a&&(a=a());b.memoizedState=b.baseState=a;a=b.queue={last:null,dispatch:null,lastRenderedReducer:Ph,lastRenderedState:a};a=a.dispatch=Sh.bind(null,uh,a);return[b.memoizedState,a]}function Th(a){return Qh(Ph,a)}function Uh(a,b,c,d){a={tag:a,create:b,destroy:c,deps:d,next:null};null===zh?(zh={lastEffect:null},zh.lastEffect=a.next=a):(b=zh.lastEffect,null===b?zh.lastEffect=a.next=a:(c=b.next,b.next=a,a.next=c,zh.lastEffect=a));return a}\nfunction Vh(a,b,c,d){var e=Nh();Ah|=a;e.memoizedState=Uh(b,c,void 0,void 0===d?null:d)}function Wh(a,b,c,d){var e=Oh();d=void 0===d?null:d;var f=void 0;if(null!==O){var g=O.memoizedState;f=g.destroy;if(null!==d&&Hh(d,g.deps)){Uh(0,c,f,d);return}}Ah|=a;e.memoizedState=Uh(b,c,f,d)}function Xh(a,b){return Vh(516,192,a,b)}function Yh(a,b){return Wh(516,192,a,b)}\nfunction Zh(a,b){if(\"function\"===typeof b)return a=a(),b(a),function(){b(null)};if(null!==b&&void 0!==b)return a=a(),b.current=a,function(){b.current=null}}function $h(){}function ai(a,b){Nh().memoizedState=[a,void 0===b?null:b];return a}function bi(a,b){var c=Oh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Hh(b,d[1]))return d[0];c.memoizedState=[a,b];return a}\nfunction Sh(a,b,c){if(!(25>Gh))throw Error(u(301));var d=a.alternate;if(a===uh||null!==d&&d===uh)if(Bh=!0,a={expirationTime:th,suspenseConfig:null,action:c,eagerReducer:null,eagerState:null,next:null},null===Ch&&(Ch=new Map),c=Ch.get(b),void 0===c)Ch.set(b,a);else{for(b=c;null!==b.next;)b=b.next;b.next=a}else{var e=Pg(),f=Mg.suspense;e=Qg(e,a,f);f={expirationTime:e,suspenseConfig:f,action:c,eagerReducer:null,eagerState:null,next:null};var g=b.last;if(null===g)f.next=f;else{var h=g.next;null!==h&&\n(f.next=h);g.next=f}b.last=f;if(0===a.expirationTime&&(null===d||0===d.expirationTime)&&(d=b.lastRenderedReducer,null!==d))try{var k=b.lastRenderedState,l=d(k,c);f.eagerReducer=d;f.eagerState=l;if(of(l,k))return}catch(m){}finally{}Rg(a,e)}}\nvar Lh={readContext:xg,useCallback:Q,useContext:Q,useEffect:Q,useImperativeHandle:Q,useLayoutEffect:Q,useMemo:Q,useReducer:Q,useRef:Q,useState:Q,useDebugValue:Q,useResponder:Q,useDeferredValue:Q,useTransition:Q},Jh={readContext:xg,useCallback:ai,useContext:xg,useEffect:Xh,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return Vh(4,36,Zh.bind(null,b,a),c)},useLayoutEffect:function(a,b){return Vh(4,36,a,b)},useMemo:function(a,b){var c=Nh();b=void 0===b?null:b;a=a();c.memoizedState=\n[a,b];return a},useReducer:function(a,b,c){var d=Nh();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a=d.queue={last:null,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};a=a.dispatch=Sh.bind(null,uh,a);return[d.memoizedState,a]},useRef:function(a){var b=Nh();a={current:a};return b.memoizedState=a},useState:Rh,useDebugValue:$h,useResponder:rh,useDeferredValue:function(a,b){var c=Rh(a),d=c[0],e=c[1];Xh(function(){q.unstable_next(function(){var c=N.suspense;N.suspense=void 0===b?null:b;try{e(a)}finally{N.suspense=\nc}})},[a,b]);return d},useTransition:function(a){var b=Rh(!1),c=b[0],d=b[1];return[ai(function(b){d(!0);q.unstable_next(function(){var c=N.suspense;N.suspense=void 0===a?null:a;try{d(!1),b()}finally{N.suspense=c}})},[a,c]),c]}},Kh={readContext:xg,useCallback:bi,useContext:xg,useEffect:Yh,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return Wh(4,36,Zh.bind(null,b,a),c)},useLayoutEffect:function(a,b){return Wh(4,36,a,b)},useMemo:function(a,b){var c=Oh();b=void 0===b?\nnull:b;var d=c.memoizedState;if(null!==d&&null!==b&&Hh(b,d[1]))return d[0];a=a();c.memoizedState=[a,b];return a},useReducer:Qh,useRef:function(){return Oh().memoizedState},useState:Th,useDebugValue:$h,useResponder:rh,useDeferredValue:function(a,b){var c=Th(a),d=c[0],e=c[1];Yh(function(){q.unstable_next(function(){var c=N.suspense;N.suspense=void 0===b?null:b;try{e(a)}finally{N.suspense=c}})},[a,b]);return d},useTransition:function(a){var b=Th(!1),c=b[0],d=b[1];return[bi(function(b){d(!0);q.unstable_next(function(){var c=\nN.suspense;N.suspense=void 0===a?null:a;try{d(!1),b()}finally{N.suspense=c}})},[a,c]),c]}},ci=null,di=null,ei=!1;function fi(a,b){var c=gi(5,null,null,0);c.elementType=\"DELETED\";c.type=\"DELETED\";c.stateNode=b;c.return=a;c.effectTag=8;null!==a.lastEffect?(a.lastEffect.nextEffect=c,a.lastEffect=c):a.firstEffect=a.lastEffect=c}\nfunction hi(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,!0):!1;case 13:return!1;default:return!1}}\nfunction ii(a){if(ei){var b=di;if(b){var c=b;if(!hi(a,b)){b=re(c.nextSibling);if(!b||!hi(a,b)){a.effectTag=a.effectTag&-1025|2;ei=!1;ci=a;return}fi(ci,c)}ci=a;di=re(b.firstChild)}else a.effectTag=a.effectTag&-1025|2,ei=!1,ci=a}}function ji(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;ci=a}\nfunction ki(a){if(a!==ci)return!1;if(!ei)return ji(a),ei=!0,!1;var b=a.type;if(5!==a.tag||\"head\"!==b&&\"body\"!==b&&!oe(b,a.memoizedProps))for(b=di;b;)fi(a,b),b=re(b.nextSibling);ji(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(u(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(c===ie){if(0===b){di=re(a.nextSibling);break a}b--}else c!==he&&c!==ke&&c!==je||b++}a=a.nextSibling}di=null}}else di=ci?re(a.stateNode.nextSibling):null;return!0}\nfunction li(){di=ci=null;ei=!1}var mi=Ea.ReactCurrentOwner,wg=!1;function R(a,b,c,d){b.child=null===a?gh(b,null,c,d):fh(b,a.child,c,d)}function ni(a,b,c,d,e){c=c.render;var f=b.ref;vg(b,e);d=Ih(a,b,c,d,f,e);if(null!==a&&!wg)return b.updateQueue=a.updateQueue,b.effectTag&=-517,a.expirationTime<=e&&(a.expirationTime=0),oi(a,b,e);b.effectTag|=1;R(a,b,d,e);return b.child}\nfunction pi(a,b,c,d,e,f){if(null===a){var g=c.type;if(\"function\"===typeof g&&!qi(g)&&void 0===g.defaultProps&&null===c.compare&&void 0===c.defaultProps)return b.tag=15,b.type=g,ri(a,b,g,d,e,f);a=ch(c.type,null,d,null,b.mode,f);a.ref=b.ref;a.return=b;return b.child=a}g=a.child;if(eb)&&Gj.set(a,b)))}}\nfunction Kj(a,b){a.expirationTimea?b:a}\nfunction Z(a){if(0!==a.lastExpiredTime)a.callbackExpirationTime=1073741823,a.callbackPriority=99,a.callbackNode=hg(Lj.bind(null,a));else{var b=Oj(a),c=a.callbackNode;if(0===b)null!==c&&(a.callbackNode=null,a.callbackExpirationTime=0,a.callbackPriority=90);else{var d=Pg();1073741823===b?d=99:1===b||2===b?d=95:(d=10*(1073741821-b)-10*(1073741821-d),d=0>=d?99:250>=d?98:5250>=d?97:95);if(null!==c){var e=a.callbackPriority;if(a.callbackExpirationTime===b&&e>=d)return;c!==Xf&&Nf(c)}a.callbackExpirationTime=\nb;a.callbackPriority=d;b=1073741823===b?hg(Lj.bind(null,a)):gg(d,Qj.bind(null,a),{timeout:10*(1073741821-b)-cg()});a.callbackNode=b}}}\nfunction Qj(a,b){Jj=0;if(b)return b=Pg(),Rj(a,b),Z(a),null;var c=Oj(a);if(0!==c){b=a.callbackNode;if((T&(oj|pj))!==S)throw Error(u(327));Sj();a===U&&c===W||Tj(a,c);if(null!==V){var d=T;T|=oj;var e=Uj(a);do try{Vj();break}catch(h){Wj(a,h)}while(1);rg();T=d;lj.current=e;if(X===rj)throw b=wj,Tj(a,c),Mj(a,c),Z(a),b;if(null===V)switch(e=a.finishedWork=a.current.alternate,a.finishedExpirationTime=c,d=X,U=null,d){case qj:case rj:throw Error(u(345));case sj:Rj(a,2=c){a.lastPingedTime=c;Tj(a,c);break}}f=Oj(a);if(0!==f&&f!==c)break;if(0!==d&&d!==c){a.lastPingedTime=d;break}a.timeoutHandle=pe(Yj.bind(null,a),e);break}Yj(a);break;case uj:Mj(a,c);d=a.lastSuspendedTime;c===d&&(a.nextKnownPendingLevel=Xj(e));if(Bj&&(e=a.lastPingedTime,0===e||e>=c)){a.lastPingedTime=c;Tj(a,c);break}e=Oj(a);if(0!==e&&e!==c)break;if(0!==d&&d!==c){a.lastPingedTime=\nd;break}1073741823!==yj?d=10*(1073741821-yj)-cg():1073741823===xj?d=0:(d=10*(1073741821-xj)-5E3,e=cg(),c=10*(1073741821-c)-e,d=e-d,0>d&&(d=0),d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*kj(d/1960))-d,c=d?d=0:(e=g.busyDelayMs|0,f=cg()-(10*(1073741821-f)-(g.timeoutMs|0||5E3)),d=f<=e?0:e+d-f);if(10 component higher in the tree to provide a loading indicator or placeholder to display.\"+Xa(e))}X!==vj&&(X=sj);f=Ni(f,e);k=d;do{switch(k.tag){case 3:g=f;k.effectTag|=4096;k.expirationTime=b;var x=fj(k,g,b);Eg(k,x);break a;case 1:g=f;var A=k.type,p=k.stateNode;if(0===(k.effectTag&64)&&(\"function\"===typeof A.getDerivedStateFromError||null!==p&&\"function\"===typeof p.componentDidCatch&&\n(null===jj||!jj.has(p)))){k.effectTag|=4096;k.expirationTime=b;var t=ij(k,g,b);Eg(k,t);break a}}k=k.return}while(null!==k)}V=ek(V)}catch(v){b=v;continue}break}while(1)}function Uj(){var a=lj.current;lj.current=Lh;return null===a?Lh:a}function Ig(a,b){aAj&&(Aj=a)}function Zj(){for(;null!==V;)V=fk(V)}function Vj(){for(;null!==V&&!Of();)V=fk(V)}\nfunction fk(a){var b=gk(a.alternate,a,W);a.memoizedProps=a.pendingProps;null===b&&(b=ek(a));mj.current=null;return b}\nfunction ek(a){V=a;do{var b=V.alternate;a=V.return;if(0===(V.effectTag&2048)){a:{var c=b;b=V;var d=W;var e=b.pendingProps;switch(b.tag){case 2:break;case 16:break;case 15:case 0:break;case 1:L(b.type)&&Ff(b);break;case 3:nh(b);Gf(b);e=b.stateNode;e.pendingContext&&(e.context=e.pendingContext,e.pendingContext=null);(null===c||null===c.child)&&ki(b)&&Ci(b);Ii(b);break;case 5:ph(b);d=lh(kh.current);var f=b.type;if(null!==c&&null!=b.stateNode)Ji(c,b,f,e,d),c.ref!==b.ref&&(b.effectTag|=128);else if(e){var g=\nlh(ih.current);if(ki(b)){e=b;var h=e.stateNode;c=e.type;var k=e.memoizedProps,l=d;h[ue]=e;h[ve]=k;f=void 0;d=h;switch(c){case \"iframe\":case \"object\":case \"embed\":F(\"load\",d);break;case \"video\":case \"audio\":for(h=0;h\\x3c/script>\",h=k.removeChild(k.firstChild)):\"string\"===typeof k.is?h=h.createElement(l,{is:k.is}):(h=h.createElement(l),\"select\"===l&&(l=h,k.multiple?l.multiple=!0:k.size&&(l.size=k.size))):h=h.createElementNS(g,l);k=h;k[ue]=c;k[ve]=e;Hi(k,b,!1,!1);b.stateNode=k;l=f;c=e;var m=d,C=Zd(l,c);switch(l){case \"iframe\":case \"object\":case \"embed\":F(\"load\",\nk);d=c;break;case \"video\":case \"audio\":for(d=0;de.tailExpiration&&1f&&(f=c),k>f&&(f=k),d=d.sibling;e.childExpirationTime=f}if(null!==b)return b;null!==a&&0===(a.effectTag&2048)&&(null===a.firstEffect&&(a.firstEffect=V.firstEffect),null!==V.lastEffect&&(null!==a.lastEffect&&(a.lastEffect.nextEffect=V.firstEffect),\na.lastEffect=V.lastEffect),1a?b:a}function Yj(a){var b=dg();fg(99,ik.bind(null,a,b));return null}\nfunction ik(a,b){Sj();if((T&(oj|pj))!==S)throw Error(u(327));var c=a.finishedWork,d=a.finishedExpirationTime;if(null===c)return null;a.finishedWork=null;a.finishedExpirationTime=0;if(c===a.current)throw Error(u(177));a.callbackNode=null;a.callbackExpirationTime=0;a.callbackPriority=90;a.nextKnownPendingLevel=0;var e=Xj(c);a.firstPendingTime=e;d<=a.lastSuspendedTime?a.firstSuspendedTime=a.lastSuspendedTime=a.nextKnownPendingLevel=0:d<=a.firstSuspendedTime&&(a.firstSuspendedTime=d-1);d<=a.lastPingedTime&&\n(a.lastPingedTime=0);d<=a.lastExpiredTime&&(a.lastExpiredTime=0);a===U&&(V=U=null,W=0);1h&&(l=h,h=g,g=l),l=de(p,g),m=de(p,h),l&&m&&(1!==v.rangeCount||v.anchorNode!==l.node||v.anchorOffset!==l.offset||v.focusNode!==m.node||v.focusOffset!==m.offset)&&(t=t.createRange(),t.setStart(l.node,l.offset),v.removeAllRanges(),g>h?(v.addRange(t),v.extend(m.node,m.offset)):(t.setEnd(m.node,m.offset),v.addRange(t))))));t=[];for(v=p;v=v.parentNode;)1===v.nodeType&&t.push({element:v,left:v.scrollLeft,top:v.scrollTop});\"function\"===\ntypeof p.focus&&p.focus();for(p=0;p=c)return yi(a,b,c);I(M,M.current&\n1,b);b=oi(a,b,c);return null!==b?b.sibling:null}I(M,M.current&1,b);break;case 19:d=b.childExpirationTime>=c;if(0!==(a.effectTag&64)){if(d)return Bi(a,b,c);b.effectTag|=64}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null);I(M,M.current,b);if(!d)return null}return oi(a,b,c)}wg=!1}}else wg=!1;b.expirationTime=0;switch(b.tag){case 2:d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.effectTag|=2);a=b.pendingProps;e=Ef(b,J.current);vg(b,c);e=Ih(null,b,d,a,e,c);b.effectTag|=1;if(\"object\"===\ntypeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof){b.tag=1;Mh();if(L(d)){var f=!0;Jf(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;var g=d.getDerivedStateFromProps;\"function\"===typeof g&&Og(b,d,g,a);e.updater=Sg;b.stateNode=e;e._reactInternalFiber=b;Wg(b,d,a,c);b=vi(null,b,d,!0,f,c)}else b.tag=0,R(null,b,e,c),b=b.child;return b;case 16:e=b.elementType;null!==a&&(a.alternate=null,b.alternate=null,b.effectTag|=2);a=b.pendingProps;Va(e);if(1!==e._status)throw e._result;\ne=e._result;b.type=e;f=b.tag=nk(e);a=mg(e,a);switch(f){case 0:b=si(null,b,e,a,c);break;case 1:b=ui(null,b,e,a,c);break;case 11:b=ni(null,b,e,a,c);break;case 14:b=pi(null,b,e,mg(e.type,a),d,c);break;default:throw Error(u(306,e,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:mg(d,e),si(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:mg(d,e),ui(a,b,d,e,c);case 3:wi(b);d=b.updateQueue;if(null===d)throw Error(u(282));e=b.memoizedState;e=null!==e?e.element:\nnull;Hg(b,d,b.pendingProps,null,c);d=b.memoizedState.element;if(d===e)li(),b=oi(a,b,c);else{if(e=b.stateNode.hydrate)di=re(b.stateNode.containerInfo.firstChild),ci=b,e=ei=!0;if(e)for(c=gh(b,null,d,c),b.child=c;c;)c.effectTag=c.effectTag&-3|1024,c=c.sibling;else R(a,b,d,c),li();b=b.child}return b;case 5:return oh(b),null===a&&ii(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,oe(d,e)?g=null:null!==f&&oe(d,f)&&(b.effectTag|=16),ti(a,b),b.mode&4&&1!==c&&e.hidden?(b.expirationTime=\nb.childExpirationTime=1,b=null):(R(a,b,g,c),b=b.child),b;case 6:return null===a&&ii(b),null;case 13:return yi(a,b,c);case 4:return mh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=fh(b,null,d,c):R(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:mg(d,e),ni(a,b,d,e,c);case 7:return R(a,b,b.pendingProps,c),b.child;case 8:return R(a,b,b.pendingProps.children,c),b.child;case 12:return R(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;\ne=b.pendingProps;g=b.memoizedProps;f=e.value;sg(b,f);if(null!==g){var h=g.value;f=of(h,f)?0:(\"function\"===typeof d._calculateChangedBits?d._calculateChangedBits(h,f):1073741823)|0;if(0===f){if(g.children===e.children&&!K.current){b=oi(a,b,c);break a}}else for(h=b.child,null!==h&&(h.return=b);null!==h;){var k=h.dependencies;if(null!==k){g=h.child;for(var l=k.firstContext;null!==l;){if(l.context===d&&0!==(l.observedBits&f)){1===h.tag&&(l=Bg(c,null),l.tag=2,Dg(h,l));h.expirationTime=b&&a<=b}function Mj(a,b){var c=a.firstSuspendedTime,d=a.lastSuspendedTime;cb||0===c)a.lastSuspendedTime=b;b<=a.lastPingedTime&&(a.lastPingedTime=0);b<=a.lastExpiredTime&&(a.lastExpiredTime=0)}\nfunction Nj(a,b){b>a.firstPendingTime&&(a.firstPendingTime=b);var c=a.firstSuspendedTime;0!==c&&(b>=c?a.firstSuspendedTime=a.lastSuspendedTime=a.nextKnownPendingLevel=0:b>=a.lastSuspendedTime&&(a.lastSuspendedTime=b+1),b>a.nextKnownPendingLevel&&(a.nextKnownPendingLevel=b))}function Rj(a,b){var c=a.lastExpiredTime;if(0===c||c>b)a.lastExpiredTime=b}\nfunction rk(a,b,c,d){var e=b.current,f=Pg(),g=Mg.suspense;f=Qg(f,e,g);a:if(c){c=c._reactInternalFiber;b:{if(ec(c)!==c||1!==c.tag)throw Error(u(170));var h=c;do{switch(h.tag){case 3:h=h.stateNode.context;break b;case 1:if(L(h.type)){h=h.stateNode.__reactInternalMemoizedMergedChildContext;break b}}h=h.return}while(null!==h);throw Error(u(171));}if(1===c.tag){var k=c.type;if(L(k)){c=If(c,k,h);break a}}c=h}else c=Cf;null===b.context?b.context=c:b.pendingContext=c;b=Bg(f,g);b.payload={element:a};d=void 0===\nd?null:d;null!==d&&(b.callback=d);Dg(e,b);Rg(e,f);return f}function sk(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return a.child.stateNode;default:return a.child.stateNode}}function tk(a,b){a=a.memoizedState;null!==a&&null!==a.dehydrated&&a.retryTimeP.length&&P.push(a)}\nfunction S(a,b,c,e){var d=typeof a;if(\"undefined\"===d||\"boolean\"===d)a=null;var g=!1;if(null===a)g=!0;else switch(d){case \"string\":case \"number\":g=!0;break;case \"object\":switch(a.$$typeof){case p:case q:g=!0}}if(g)return c(e,a,\"\"===b?\".\"+T(a,0):b),1;g=0;b=\"\"===b?\".\":b+\":\";if(Array.isArray(a))for(var l=0;l=H};l=function(){};exports.unstable_forceFrameRate=function(a){0>a||125L(n,c))void 0!==r&&0>L(r,n)?(a[d]=r,a[v]=c,d=v):(a[d]=n,a[m]=c,d=m);else if(void 0!==r&&0>L(r,c))a[d]=r,a[v]=c,d=v;else break a}}return b}return null}function L(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var O=[],P=[],Q=1,R=null,S=3,T=!1,U=!1,V=!1;\nfunction W(a){for(var b=M(P);null!==b;){if(null===b.callback)N(P);else if(b.startTime<=a)N(P),b.sortIndex=b.expirationTime,K(O,b);else break;b=M(P)}}function X(a){V=!1;W(a);if(!U)if(null!==M(O))U=!0,f(Y);else{var b=M(P);null!==b&&g(X,b.startTime-a)}}\nfunction Y(a,b){U=!1;V&&(V=!1,h());T=!0;var c=S;try{W(b);for(R=M(O);null!==R&&(!(R.expirationTime>b)||a&&!k());){var d=R.callback;if(null!==d){R.callback=null;S=R.priorityLevel;var e=d(R.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?R.callback=e:R===M(O)&&N(O);W(b)}else N(O);R=M(O)}if(null!==R)var m=!0;else{var n=M(P);null!==n&&g(X,n.startTime-b);m=!1}return m}finally{R=null,S=c,T=!1}}\nfunction Z(a){switch(a){case 1:return-1;case 2:return 250;case 5:return 1073741823;case 4:return 1E4;default:return 5E3}}var aa=l;exports.unstable_ImmediatePriority=1;exports.unstable_UserBlockingPriority=2;exports.unstable_NormalPriority=3;exports.unstable_IdlePriority=5;exports.unstable_LowPriority=4;exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=S;S=a;try{return b()}finally{S=c}};\nexports.unstable_next=function(a){switch(S){case 1:case 2:case 3:var b=3;break;default:b=S}var c=S;S=b;try{return a()}finally{S=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();if(\"object\"===typeof c&&null!==c){var e=c.delay;e=\"number\"===typeof e&&0d?(a.sortIndex=e,K(P,a),null===M(O)&&a===M(P)&&(V?h():V=!0,g(X,e-d))):(a.sortIndex=c,K(O,a),U||T||(U=!0,f(Y)));return a};exports.unstable_cancelCallback=function(a){a.callback=null};\nexports.unstable_wrapCallback=function(a){var b=S;return function(){var c=S;S=b;try{return a.apply(this,arguments)}finally{S=c}}};exports.unstable_getCurrentPriorityLevel=function(){return S};exports.unstable_shouldYield=function(){var a=exports.unstable_now();W(a);var b=M(O);return b!==R&&null!==R&&null!==b&&null!==b.callback&&b.startTime<=a&&b.expirationTime= len) return x;\n switch (x) {\n case '%s': return String(args[i++]);\n case '%d': return Number(args[i++]);\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n default:\n return x;\n }\n });\n for (var x = args[i]; i < len; x = args[++i]) {\n if (isNull(x) || !isObject(x)) {\n str += ' ' + x;\n } else {\n str += ' ' + inspect(x);\n }\n }\n return str;\n};\n\n\n// Mark that a method should not be used.\n// Returns a modified function which warns once by default.\n// If --no-deprecation is set, then it is a no-op.\nexports.deprecate = function(fn, msg) {\n // Allow for deprecating things in the process of starting up.\n if (isUndefined(global.process)) {\n return function() {\n return exports.deprecate(fn, msg).apply(this, arguments);\n };\n }\n\n if (process.noDeprecation === true) {\n return fn;\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (process.throwDeprecation) {\n throw new Error(msg);\n } else if (process.traceDeprecation) {\n console.trace(msg);\n } else {\n console.error(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n};\n\n\nvar debugs = {};\nvar debugEnviron;\nexports.debuglog = function(set) {\n if (isUndefined(debugEnviron))\n debugEnviron = process.env.NODE_DEBUG || '';\n set = set.toUpperCase();\n if (!debugs[set]) {\n if (new RegExp('\\\\b' + set + '\\\\b', 'i').test(debugEnviron)) {\n var pid = process.pid;\n debugs[set] = function() {\n var msg = exports.format.apply(exports, arguments);\n console.error('%s %d: %s', set, pid, msg);\n };\n } else {\n debugs[set] = function() {};\n }\n }\n return debugs[set];\n};\n\n\n/**\n * Echos the value of a value. Trys to print the value out\n * in the best way possible given the different types.\n *\n * @param {Object} obj The object to print out.\n * @param {Object} opts Optional options object that alters the output.\n */\n/* legacy: obj, showHidden, depth, colors*/\nfunction inspect(obj, opts) {\n // default options\n var ctx = {\n seen: [],\n stylize: stylizeNoColor\n };\n // legacy...\n if (arguments.length >= 3) ctx.depth = arguments[2];\n if (arguments.length >= 4) ctx.colors = arguments[3];\n if (isBoolean(opts)) {\n // legacy...\n ctx.showHidden = opts;\n } else if (opts) {\n // got an \"options\" object\n exports._extend(ctx, opts);\n }\n // set default options\n if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\n if (isUndefined(ctx.depth)) ctx.depth = 2;\n if (isUndefined(ctx.colors)) ctx.colors = false;\n if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\n if (ctx.colors) ctx.stylize = stylizeWithColor;\n return formatValue(ctx, obj, ctx.depth);\n}\nexports.inspect = inspect;\n\n\n// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\ninspect.colors = {\n 'bold' : [1, 22],\n 'italic' : [3, 23],\n 'underline' : [4, 24],\n 'inverse' : [7, 27],\n 'white' : [37, 39],\n 'grey' : [90, 39],\n 'black' : [30, 39],\n 'blue' : [34, 39],\n 'cyan' : [36, 39],\n 'green' : [32, 39],\n 'magenta' : [35, 39],\n 'red' : [31, 39],\n 'yellow' : [33, 39]\n};\n\n// Don't use 'blue' not visible on cmd.exe\ninspect.styles = {\n 'special': 'cyan',\n 'number': 'yellow',\n 'boolean': 'yellow',\n 'undefined': 'grey',\n 'null': 'bold',\n 'string': 'green',\n 'date': 'magenta',\n // \"name\": intentionally not styling\n 'regexp': 'red'\n};\n\n\nfunction stylizeWithColor(str, styleType) {\n var style = inspect.styles[styleType];\n\n if (style) {\n return '\\u001b[' + inspect.colors[style][0] + 'm' + str +\n '\\u001b[' + inspect.colors[style][1] + 'm';\n } else {\n return str;\n }\n}\n\n\nfunction stylizeNoColor(str, styleType) {\n return str;\n}\n\n\nfunction arrayToHash(array) {\n var hash = {};\n\n array.forEach(function(val, idx) {\n hash[val] = true;\n });\n\n return hash;\n}\n\n\nfunction formatValue(ctx, value, recurseTimes) {\n // Provide a hook for user-specified inspect functions.\n // Check that value is an object with an inspect function on it\n if (ctx.customInspect &&\n value &&\n isFunction(value.inspect) &&\n // Filter out the util module, it's inspect function is special\n value.inspect !== exports.inspect &&\n // Also filter out any prototype objects using the circular check.\n !(value.constructor && value.constructor.prototype === value)) {\n var ret = value.inspect(recurseTimes, ctx);\n if (!isString(ret)) {\n ret = formatValue(ctx, ret, recurseTimes);\n }\n return ret;\n }\n\n // Primitive types cannot have properties\n var primitive = formatPrimitive(ctx, value);\n if (primitive) {\n return primitive;\n }\n\n // Look up the keys of the object.\n var keys = Object.keys(value);\n var visibleKeys = arrayToHash(keys);\n\n if (ctx.showHidden) {\n keys = Object.getOwnPropertyNames(value);\n }\n\n // IE doesn't make error fields non-enumerable\n // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\n if (isError(value)\n && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {\n return formatError(value);\n }\n\n // Some type of object without properties can be shortcutted.\n if (keys.length === 0) {\n if (isFunction(value)) {\n var name = value.name ? ': ' + value.name : '';\n return ctx.stylize('[Function' + name + ']', 'special');\n }\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n }\n if (isDate(value)) {\n return ctx.stylize(Date.prototype.toString.call(value), 'date');\n }\n if (isError(value)) {\n return formatError(value);\n }\n }\n\n var base = '', array = false, braces = ['{', '}'];\n\n // Make Array say that they are Array\n if (isArray(value)) {\n array = true;\n braces = ['[', ']'];\n }\n\n // Make functions say that they are functions\n if (isFunction(value)) {\n var n = value.name ? ': ' + value.name : '';\n base = ' [Function' + n + ']';\n }\n\n // Make RegExps say that they are RegExps\n if (isRegExp(value)) {\n base = ' ' + RegExp.prototype.toString.call(value);\n }\n\n // Make dates with properties first say the date\n if (isDate(value)) {\n base = ' ' + Date.prototype.toUTCString.call(value);\n }\n\n // Make error with message first say the error\n if (isError(value)) {\n base = ' ' + formatError(value);\n }\n\n if (keys.length === 0 && (!array || value.length == 0)) {\n return braces[0] + base + braces[1];\n }\n\n if (recurseTimes < 0) {\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n } else {\n return ctx.stylize('[Object]', 'special');\n }\n }\n\n ctx.seen.push(value);\n\n var output;\n if (array) {\n output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n } else {\n output = keys.map(function(key) {\n return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n });\n }\n\n ctx.seen.pop();\n\n return reduceToSingleString(output, base, braces);\n}\n\n\nfunction formatPrimitive(ctx, value) {\n if (isUndefined(value))\n return ctx.stylize('undefined', 'undefined');\n if (isString(value)) {\n var simple = '\\'' + JSON.stringify(value).replace(/^\"|\"$/g, '')\n .replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"') + '\\'';\n return ctx.stylize(simple, 'string');\n }\n if (isNumber(value))\n return ctx.stylize('' + value, 'number');\n if (isBoolean(value))\n return ctx.stylize('' + value, 'boolean');\n // For some reason typeof null is \"object\", so special case here.\n if (isNull(value))\n return ctx.stylize('null', 'null');\n}\n\n\nfunction formatError(value) {\n return '[' + Error.prototype.toString.call(value) + ']';\n}\n\n\nfunction formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n var output = [];\n for (var i = 0, l = value.length; i < l; ++i) {\n if (hasOwnProperty(value, String(i))) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n String(i), true));\n } else {\n output.push('');\n }\n }\n keys.forEach(function(key) {\n if (!key.match(/^\\d+$/)) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n key, true));\n }\n });\n return output;\n}\n\n\nfunction formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n var name, str, desc;\n desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };\n if (desc.get) {\n if (desc.set) {\n str = ctx.stylize('[Getter/Setter]', 'special');\n } else {\n str = ctx.stylize('[Getter]', 'special');\n }\n } else {\n if (desc.set) {\n str = ctx.stylize('[Setter]', 'special');\n }\n }\n if (!hasOwnProperty(visibleKeys, key)) {\n name = '[' + key + ']';\n }\n if (!str) {\n if (ctx.seen.indexOf(desc.value) < 0) {\n if (isNull(recurseTimes)) {\n str = formatValue(ctx, desc.value, null);\n } else {\n str = formatValue(ctx, desc.value, recurseTimes - 1);\n }\n if (str.indexOf('\\n') > -1) {\n if (array) {\n str = str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n').substr(2);\n } else {\n str = '\\n' + str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n');\n }\n }\n } else {\n str = ctx.stylize('[Circular]', 'special');\n }\n }\n if (isUndefined(name)) {\n if (array && key.match(/^\\d+$/)) {\n return str;\n }\n name = JSON.stringify('' + key);\n if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n name = name.substr(1, name.length - 2);\n name = ctx.stylize(name, 'name');\n } else {\n name = name.replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"')\n .replace(/(^\"|\"$)/g, \"'\");\n name = ctx.stylize(name, 'string');\n }\n }\n\n return name + ': ' + str;\n}\n\n\nfunction reduceToSingleString(output, base, braces) {\n var numLinesEst = 0;\n var length = output.reduce(function(prev, cur) {\n numLinesEst++;\n if (cur.indexOf('\\n') >= 0) numLinesEst++;\n return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, '').length + 1;\n }, 0);\n\n if (length > 60) {\n return braces[0] +\n (base === '' ? '' : base + '\\n ') +\n ' ' +\n output.join(',\\n ') +\n ' ' +\n braces[1];\n }\n\n return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\n}\n\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\nfunction isArray(ar) {\n return Array.isArray(ar);\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return isObject(re) && objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return isObject(d) && objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n return isObject(e) &&\n (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = require('./support/isBuffer');\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n\n\nfunction pad(n) {\n return n < 10 ? '0' + n.toString(10) : n.toString(10);\n}\n\n\nvar months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',\n 'Oct', 'Nov', 'Dec'];\n\n// 26 Feb 16:19:34\nfunction timestamp() {\n var d = new Date();\n var time = [pad(d.getHours()),\n pad(d.getMinutes()),\n pad(d.getSeconds())].join(':');\n return [d.getDate(), months[d.getMonth()], time].join(' ');\n}\n\n\n// log is just a thin wrapper to console.log that prepends a timestamp\nexports.log = function() {\n console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));\n};\n\n\n/**\n * Inherit the prototype methods from one constructor into another.\n *\n * The Function.prototype.inherits from lang.js rewritten as a standalone\n * function (not on Function.prototype). NOTE: If this file is to be loaded\n * during bootstrapping this function needs to be rewritten using some native\n * functions as prototype setup using normal JavaScript does not work as\n * expected during bootstrapping (see mirror.js in r114903).\n *\n * @param {function} ctor Constructor function which needs to inherit the\n * prototype.\n * @param {function} superCtor Constructor function to inherit prototype from.\n */\nexports.inherits = require('inherits');\n\nexports._extend = function(origin, add) {\n // Don't do anything if add isn't an object\n if (!add || !isObject(add)) return origin;\n\n var keys = Object.keys(add);\n var i = keys.length;\n while (i--) {\n origin[keys[i]] = add[keys[i]];\n }\n return origin;\n};\n\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \".\" + \"e6cc1bcfefdc92783ab7\" + \".js\";\n};","// This function allow to reference all chunks\n__webpack_require__.miniCssF = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"../../Content/\" + chunkId + \".css\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.hmd = (module) => {\n\tmodule = Object.create(module);\n\tif (!module.children) module.children = [];\n\tObject.defineProperty(module, 'exports', {\n\t\tenumerable: true,\n\t\tset: () => {\n\t\t\tthrow new Error('ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: ' + module.id);\n\t\t}\n\t});\n\treturn module;\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"/App/Dist/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t296: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkF24\"] = self[\"webpackChunkF24\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module doesn't tell about it's top-level declarations so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(6157);\n"],"names":["inProgress","dataWebpackPrefix","loadStylesheet","installedCssChunks","_setPrototypeOf","t","e","Object","setPrototypeOf","bind","__proto__","_inheritsLoose","o","prototype","create","constructor","assign","n","arguments","length","r","hasOwnProperty","call","apply","isAbsolute","pathname","charAt","spliceOne","list","index","i","k","pop","condition","message","Error","addLeadingSlash","path","stripLeadingSlash","substr","stripBasename","prefix","toLowerCase","indexOf","hasBasename","stripTrailingSlash","slice","createPath","location","search","hash","state","key","currentLocation","hashIndex","searchIndex","parsePath","decodeURI","URIError","to","from","hasTrailingSlash","toParts","split","fromParts","isToAbs","isFromAbs","mustEndAbs","concat","last","up","part","unshift","result","join","createTransitionManager","prompt","listeners","setPrompt","nextPrompt","confirmTransitionTo","action","getUserConfirmation","callback","appendListener","fn","isActive","push","listener","filter","item","notifyListeners","_len","args","Array","_key","forEach","canUseDOM","window","document","createElement","getConfirmation","confirm","HashChangeEvent$1","HashPathCoders","hashbang","encodePath","decodePath","noslash","slash","stripHash","url","getHashPath","href","substring","replaceHashPath","replace","MAX_SIGNED_31_BIT_INT","commonjsGlobal","globalThis","g","defaultValue","calculateChangedBits","_Provider$childContex","_Consumer$contextType","contextProp","Provider","_Component","_this","value","handlers","this","emitter","props","on","handler","off","h","get","set","newValue","changedBits","_proto","getChildContext","_ref","componentWillReceiveProps","nextProps","oldValue","x","y","render","children","Component","childContextTypes","Consumer","_Component2","_this2","getValue","onUpdate","observedBits","setState","_proto2","componentDidMount","context","componentWillUnmount","isArray","contextTypes","_objectWithoutPropertiesLoose","displayName","createNamedContext","Router","_React$Component","history","_isMounted","_pendingLocation","staticContext","unlisten","listen","computeRootMatch","params","isExact","match","cache$1","cacheCount$1","matchPath","options","_options","_options$exact","exact","_options$strict","strict","_options$sensitive","sensitive","reduce","matched","_compilePath","cacheKey","end","pathCache","keys","regexp","compilePath$1","exec","values","memo","name","Route","context$1","computedMatch","_this$props","component","Switch","element","child","useContext","useHistory","useLocation","useParams","HashRouter","globalHistory","_props","navigator","userAgent","_props$getUserConfirm","_props$hashType","hashType","basename","_HashPathCoders$hashT","transitionManager","nextState","forceNextPop","ignorePath","getDOMLocation","prevLocation","a","b","locationsAreEqual$$1","ok","fromLocation","toLocation","toIndex","allPaths","lastIndexOf","fromIndex","delta","go","revertPop","handlePop","encodedPath","initialLocation","listenerCount","addEventListener","handleHashChange","removeEventListener","isBlocked","createHref","baseTag","querySelector","getAttribute","pushHashPath","prevIndex","nextPaths","goBack","goForward","block","unblock","checkDOMListeners","createHashHistory","resolveToLocation","normalizeToLocation","forwardRefShim","C","forwardRef","LinkAnchor","forwardedRef","innerRef","navigate","_onClick","onClick","rest","target","event","ex","preventDefault","defaultPrevented","button","metaKey","altKey","ctrlKey","shiftKey","isModifiedEvent","ref","Link","_ref2","_ref2$component","forwardRefShim$1","forwardRef$1","_ref$ariaCurrent","ariaCurrent","_ref$activeClassName","activeClassName","activeStyle","classNameProp","className","isActiveProp","locationProp","styleProp","style","escapedPath","classnames","joinClassnames","ReactReduxContext","batch","getBatch","CLEARED","nullListeners","notify","Subscription","store","parentSub","unsubscribe","handleChangeWrapper","addNestedSub","trySubscribe","subscribe","notifyNestedSubs","onStateChange","isSubscribed","Boolean","current","next","clear","splice","createListenerCollection","tryUnsubscribe","contextValue","useMemo","subscription","previousState","getState","useEffect","Context","propTypes","dispatch","useIsomorphicLayoutEffect","useLayoutEffect","EMPTY_ARRAY","NO_SUBSCRIPTION_ARRAY","storeStateUpdatesReducer","updateCount","payload","initStateUpdates","randomString","Math","random","toString","ActionTypes","INIT","REPLACE","PROBE_UNKNOWN_ACTION","getUndefinedStateErrorMessage","actionType","type","String","bindActionCreator","actionCreator","_defineProperty","obj","defineProperty","enumerable","configurable","writable","ownKeys","object","enumerableOnly","getOwnPropertySymbols","sym","getOwnPropertyDescriptor","compose","funcs","arg","wrapMapToPropsConstant","getConstant","constant","constantSelector","dependsOnOwnProps","getDependsOnOwnProps","mapToProps","wrapMapToPropsFunc","methodName","proxy","stateOrDispatch","ownProps","defaultMergeProps","stateProps","dispatchProps","mergeProps","mergedProps","pure","areMergedPropsEqual","hasRunOnce","nextMergedProps","wrapMergePropsFunc","impureFinalPropsSelectorFactory","mapStateToProps","mapDispatchToProps","pureFinalPropsSelectorFactory","areStatesEqual","areOwnPropsEqual","areStatePropsEqual","hasRunAtLeastOnce","nextOwnProps","nextStateProps","statePropsChanged","propsChanged","stateChanged","handleSubsequentCalls","_ref$connectHOC","_ref$mapStateToPropsF","_ref$mapDispatchToPro","_ref$mergePropsFactor","_ref$selectorFactory","createStoreHook","useReduxContext","connectHOC","mapStateToPropsFactories","mapDispatchToPropsFactories","mergePropsFactories","selectorFactory","newBatch","useDispatch","useStore","createDispatchHook","refEquality","useSelector","selector","equalityFn","_useReduxContext","contextSub","selectedState","forceRender","useReducer","s","latestSubscriptionCallbackError","useRef","latestSelector","latestSelectedState","err","errorMessage","stack","newSelectedState","checkForUpdates","useSelectorWithStoreAndSubscription","createSelectorHook","LOADED","RELOAD","CHANGE_OFFICE","CHANGE_HASH","CHANGE_HASH2","SERVER_EVENT","FOCUS","DIALOG_SIZE","DIALOG_OK","DIALOG_CANCEL","GOTO_EXTERNAL_HASH","GOTO_EXTERNAL_URL","CALL_FORWARD","CALL_FORWARD_RESPONSE","MODALIZER","MODALIZER_CLICK","CLICK_OUTSIDE_RESTORE","EXTRA_PARAMS","SET_RESOLUTION","GET_ROOT_LOCATION","ParentCallerUrlParam","IFrameClassName","PluginCallsTypes","ParentModalCaller","LogLevel","none","all","error","info","debug","warning","workspace","level","namespaces","newEnable","lev","startsWith","ConsoleLog","init","initWindowConfig","fwplugins","receivers","configs","callerParams","getWindowCalledByParent","calledByParent","getWindowCallerParams","getWindowReceiverData","idReceiver","dataName","setWindowReceiverData","dataValue","setLocation","getHashCleaned","setLocationHash","replaceHistory","queryPos","query","replaceState","title","m","callerExtraParams","getCallerParentIdFromParams","getCallerParentId","isCalledByParent","isPresentIFrame","getElementsByClassName","getUUID","pluginsVersion","ID_PLUGIN_MSGS","CALLBACK_REGS","LAST_MESSAGES","PluginMessages","config","initialized","postMessageToParent","handleMessage","attachEvent","idDestination","configTest","iframes","getElementsByTagName","contentWindow","postMessage","formatMessage","formatForwardMessage","eventName","postMessageToChilds","parent","TypeError","regs","IdReceiver","isOnLastMessages","uuid","lastMessages","isOnLast","includes","shift","data","id","origin","initial","destination","forwardMessageToParent","forwardMessageToChilds","reg","extraParams","initialVersion","originVersion","getIdReceiver","getTitle","validations","newTitle","Presentation","readOnly","format","parse","text","connectionErrorCallback","console","notifyConnectionError","setConnectionErrorCallback","failedCalls","isAxiosError","response","status","Promise","reject","api","concatenateParameters","parameters","parametersList","paramName","encodeURI","getFileNameFromGetFileResponse","headers","matches","filename","enableCredentialWithCors","allResponse","cors","method","contentType","withCredentials","then","post","JSON","stringify","getFile","responseType","postFile","formData","onUploadProgress","onDownloadProgress","processData","progressEvent","setDefaultHeader","CallForwardTypes","callParent","uri","timeoutLimit","resolve","callId","timeoutID","checkResponse","clearTimeout","setTimeout","callChild","callAndResponse","forwardFunc","EventOriginCheck","lastEventOutsideId","lastObjectOutside","eventFilter","originCheck","stopPropagation","isClickableOutside","eventFilterOk","catch","originaEvent","explicitOriginalTarget","srcElement","dispatchEvent","restoreLastOutside","lastEventId","urlParams","setWindowCallerParams","funct","extendStatics","__extends","d","p","__","HttpError","_super","statusCode","trueProto","TimeoutError","AbortError","__assign","HttpResponse","statusText","content","HttpClient","send","delete","getCookieString","nodeHttpClientModule","XhrHttpClient","logger","request","abortSignal","aborted","xhr","XMLHttpRequest","open","setRequestHeader","header","onabort","abort","timeout","onload","responseText","onerror","log","ontimeout","requireFunc","DefaultHttpClient","httpClient","NodeHttpClient","TextMessageFormat","write","output","RecordSeparator","input","messages","RecordSeparatorCode","fromCharCode","NullLogger","_logLevel","_message","instance","Arg","isRequired","val","isIn","getDataDetail","includeContent","detail","isArrayBuffer","byteLength","view","Uint8Array","str","num","formatArrayBuffer","ArrayBuffer","sendMessage","transportName","accessTokenFactory","logMessageContent","thisArg","_arguments","generator","_a","token","body","f","_","label","sent","trys","ops","verb","Symbol","iterator","v","op","done","step","__generator","_b","P","fulfilled","rejected","MessageType","Subject","cancelCallback","observers","_i","observer","complete","SubjectSubscription","subject","dispose","minimumLogLevel","logLevel","Date","toISOString","warn","HandshakeProtocol","writeHandshakeRequest","handshakeRequest","parseHandshakeResponse","messageData","remainingData","Buffer","binaryData","separatorIndex","responseLength","buffer","textData","HubConnectionState","HttpTransportType","TransferFormat","HubConnection","connection","protocol","serverTimeoutInMilliseconds","keepAliveIntervalInMilliseconds","handshakeProtocol","onreceive","processIncomingData","onclose","connectionClosed","callbacks","methods","closedCallbacks","receivedHandshakeResponse","connectionState","Disconnected","cachedPingMessage","writeMessage","Ping","start","handshakePromise","version","handshakeResolver","handshakeRejecter","transferFormat","cleanupTimeout","resetTimeoutPeriod","resetKeepAliveInterval","Connected","stop","cleanupPingTimer","stream","invocationDescriptor","createStreamInvocation","cancelInvocation","createCancelInvocation","invocationId","cancelMessage","invocationEvent","Completion","createInvocation","invoke","newMethod","removeIdx","processHandshakeResponse","messages_1","parseMessages","Invocation","invokeClientMethod","StreamItem","Close","responseMessage","pingServerHandle","features","inherentKeepAlive","timeoutHandle","serverTimeout","invocationMessage","c","nonblocking","StreamInvocation","CancelInvocation","AbortController","isAborted","LongPollingTransport","pollAbort","running","connect","pollOptions","pollUrl","Binary","signal","getAccessToken","updateHeaderToken","now","closeError","receiving","poll","e_1","pollAborted","raiseOnClose","deleteOptions","logMessage","ServerSentEventsTransport","eventSourceConstructor","encodeURIComponent","opened","Text","eventSource","cookies","Cookie","onmessage","close","onopen","WebSocketTransport","webSocketConstructor","webSocket","binaryType","_event","ErrorEvent","readyState","OPEN","wasClean","code","reason","WebSocketModule","EventSourceModule","HttpConnection","baseUrl","resolveUrl","isNode","WebSocket","EventSource","startPromise","startInternal","transport","stopError","negotiateResponse","redirects","_loop_1","this_1","state_1","e_2","skipNegotiation","WebSockets","constructTransport","accessToken_1","getNegotiationResponse","ProtocolVersion","accessToken","createTransport","stopConnection","changeState","negotiateUrl","e_3","resolveNegotiateUrl","createConnectUrl","connectionId","requestedTransport","requestedTransferFormat","connectUrl","transports","transports_1","endpoint","ex_1","isITransport","availableTransports","resolveTransport","ServerSentEvents","LongPolling","transferFormats","map","actualTransport","transportMatches","aTag","JsonHubProtocol","hubMessages","parsedMessage","isInvocationMessage","isStreamItemMessage","isCompletionMessage","assertNotEmptyString","HubConnectionBuilder","configureLogging","logging","withUrl","transportTypeOrOptions","httpConnectionOptions","withHubProtocol","build","Aggregator","ctx","getEventName","events","tentativi","avviaConnessione","con","delay","floor","connettiSignalR","idUtente","gruppi","pathName","connUrl","string","endsWith","concatSlash","qs","UserId","evt","pubblica","disconnettiSignalR","Types","SUCCESS","ERROR","WARNING","MASSIVA","Timeout","MAX_TEXT_LENGTH","_assertThisInitialized","ReferenceError","getChildMapping","mapFn","Children","isValidElement","mapper","getProp","prop","getNextChildMapping","prevChildMapping","onExited","nextChildMapping","prev","nextKeysPending","pendingKeys","prevKey","childMapping","nextKey","pendingNextKey","getValueForKey","mergeChildMappings","hasPrev","hasNext","prevChild","isLeaving","in","cloneElement","exit","enter","TransitionGroup","handleExited","isMounting","firstRender","mounted","getDerivedStateFromProps","appear","node","currentChildMapping","childFactory","TransitionGroupContext","defaultProps","replaceClassName","origClass","classToRemove","RegExp","UNMOUNTED","EXITED","ENTERING","ENTERED","EXITING","Transition","initialStatus","appearStatus","unmountOnExit","mountOnEnter","nextCallback","prevState","updateStatus","componentDidUpdate","prevProps","nextStatus","cancelNextCallback","getTimeouts","mounting","performEnter","performExit","appearing","timeouts","enterTimeout","onEnter","safeSetState","onEntering","onTransitionEnd","onEntered","_this3","onExit","onExiting","cancel","setNextCallback","_this4","active","doesNotHaveTimeoutOrListener","addEndListener","childProps","contextType","classes","classList","remove","setAttribute","baseVal","CSSTransition","appliedClasses","removeClasses","addClass","getClassNames","classNames","isStringClassNames","baseClassName","doneClassName","phase","scrollTop","add","contains","hasClass","_addClass","_this$appliedClasses$","base","getTestIdByDisplayName","customViewBox","BaseIcon","inverted","selected","small","viewBox","others","Badge","alarm","positive","success","safe","outline","Spinner","center","large","Tab","disabled","badge","Tabs","super","sessionStorage","dati","getItem","setItem","seleziona","indice","onSelect","salvaStorage","currentIndex","storedIndex","datiStore","caricaStorage","initialIndex","indexFromStore","MutationObserver","aggiorna","UNSAFE_componentWillReceiveProps","spaced","disconnect","vertical","sIndex","refTabs","observe","attributes","childList","subtree","actionClasses","indexesClasses","tab","tabClasses","role","debounce","func","threshold","execAsap","onMouseOverCB","onMouseOutCB","mouseOver","setMouseOver","useState","callbackRef","over","setOver","onOverCB","onOutCB","useCallback","PopOver","left","right","top","mostraInfo","onMouseOver","onMouseOut","timeoutId","onBlur","onFocus","onMouseEnter","onMouseLeave","Button","flat","floating","icon","primary","big","loading","tooltip","refButton","disabledInternal","setDisabled","setRunning","onClickInternal","blur","res","always","HeaderOperazione","expanded","operazione","onOperazioneBtnClick","ErroreIcon","SuccessoIcon","stato","errori","printIconFromType","printOperationHeaderMessage","multipleMessages","printActionText","anyAsycRunning","operazioniMassive","HeaderMassiva","ultimaOperazione","finishedTimestamp","sort","timeStamp","getIcon","getMessage","HeaderColumn","width","HeaderRow","Header","Row","Column","BodyCell","BodyRow","Body","Cell","Footer","sameType","existFixedColumns","ColumnComponent","comp","Table","clickable","bordered","striped","hover","fixedLayout","fixed","Head","Foot","createDate","date","addZero","getDate","getMonth","getFullYear","createTime","showMills","hour","getHours","minutes","getMinutes","secs","getSeconds","mills","getMilliseconds","dateString","formattedDate","isNaN","setMinutes","getTimezoneOffset","fixDate","getDefault","as","computedDefault","normalizza","absValue","abs","toFixed","valore","precisione","precisioneNorm","power","round","formattaNumero","numeroP","precisioneP","separatoreMigliaia","seperatoreDecimali","numero","valoreP","regex","unformatted","parseFloat","opts","migliaia","decimali","usePrecision","negative","parseInt","mod","Formatter","tipo","ElementType","renderMessageRow","idx","onRimuovi","actions","TabellaOperazioneSincrona","rimuoviOperazione","rimuoviErrore","points","Colors","Progress","indeterminate","percentage","color","percentageValues","total","probObj","arr","zIndex","backgroundColor","DettaglioOperazioneMassiva","segnaErroriOperazioneChecked","showErrors","eliminaOperazioneAsync","onFeedback","checked","selezionati","elaborati","UpIcon","onErroriCollapsed","DownIcon","onErroriExpanded","deleted","testoFeedback","handleFeedback","progresso","aggiornaStatoErrore","getErrori","stampaInfo","SnackbarElement","clearSync","disableAnimation","refList","clearExpand","newOp","controllaHistoryOperazioni","mostraOperazione","operazioneCorrente","operazioniOneShot","removeCurrent","operazioni","expand","avoidStore","removeOnMouseOut","moveToHistory","tmpHistory","reverse","sync","conteggioErrori","numeroErrori","find","calcolaProgresso","completaOperazione","aggiornaOperazione","newError","timeOut","realExpand","idOperazione","om","statoOperazione","snackbar__testoLungo","haErroriNonVisualizzati","opIndex","errId","operazioneMassiva","errore","uniqueOperations","tmpArray","mostraSpinner","acc","stampaTabOperazioniMassive","closeifOpen","onhashchange","locationHashChanged","snackbar__expand","transactionComp","createTransaction","visualizzaOperazioni","visualizzaOperazione","showExpandBar","domContainerNode","refSnackBar","appendChild","show","creaOperazioneMassiva","aggiornaProgressoOperazione","terminaOperazioneMassiva","testoFeedabck","aggiungiErroreAOperazione","inizializzaOperazioni","recuperaOperazioniMassive","Element","notifyMessage","task","LONG","GenericError","logApiError","getStoredSessionItem","setStoredSessionItem","paramValue","decodeURIComponent","StoredParamsKey","isEmptyObject","ParamsUID","qsParams","currentParamsUID","isToStoredParams","getInitialParams","apUid","getQsParams","hideQueryStrings","qsParamsNoUid","newUri","STOP_EVENT_PROPAGATION","ev","Card","defaultClosed","collapsible","breadCrumb","onAction","fullBody","multipleActions","openProp","onOpen","onClose","setOpen","intOpen","setIntOpen","controlled","useOpenClose","CollapseIcon","ExpandIcon","Heading","PaginaErrore","errorHint","errorHintAlternativo","createThunkMiddleware","extraArgument","thunk","withExtraArgument","ACTION_UTENTE_INIT_SET","ACTION_APP_PARAMS_SET","setAppParamsAction","appParams","reducerCreator","dependencies","reducer","globalModalContext","ModalContext","createContext","setContext","getContext","setOpenOrGlobal","subscribeOrGlobal","unsubscribeOrGlobal","deps","latestCallback","latestTimeout","eventContext","addWindowEventListener","removeWindowEventListener","handleMessages","PluginDialogSize","el","boundWidth","height","boundHeight","getBoundingClientRect","devicePixelRatio","display","defaultLocation","LocationContext","LocationProvider","PluginLocationProvider","rootLocation","PluginApp","pluginIsClickableOutside","openedModalList","callAll","modalContextValue","modalizerMessagePayload","postMessageModalizerToParent","eventoReload","eventoCallForward","callAndResponseToParent","eventoFocus","click","toForward","eventoModalizerClick","calledByModal","PluginRouter","Fragment","bodyClass","logo","appName","headerClass","Application","Image","alt","src","div","Tour","slide","onChange","saveState","onEnd","slideS","slides","createPortal","chiudi","indietro","marginRight","avanti","MAIN","freeze","LOW","LOW_MAIN_RESOLUTIONS","RESPONSIVE_MODE_WIDTH","getResolution","mode","innerWidth","innerHeight","resolutions","resolution","xmlns","filterUnits","dx","dy","stdDeviation","floodColor","floodOpacity","operator","in2","transform","EMP_LOW","emphasis","runningInit","onClickInit","blockClassName","tabIndex","runningUnc","setRunningUnc","funcUnc","childrenWithText","trim","Emphasis","MEDIUM","HIGH","ErrorPage404","onContinue","ShipIcon","Logo","ErrorPage","image","actionLabel","onActionClick","asPage","Locked","separatore","newPrecisione","newNumero","grouping","getPrecision","valueFormat","precision","formatValue","alignment","align","convertUTCDateFromLocalDate","newDate","getTime","offset","hours","setHours","AuthorizedApp","servicesToCheck","titoloSospensione","spiegazioneSospensione","applicazioneOrigine","statoSospensione","StatoSospensioneServizio","ufficioSelezionato","checkServizi","servizi","ufficio","profilo","utente","Profilo","Operatore","Uffici","uff","CodiceUfficio","serviziAbilitantiAttiviTrovati","servizio","Servizi","CodiceServizio","StatoAttivazione","serviziAbilitantiDisdettiTrovati","visualizzazione","visualizzazioneDaDisdetto","attivoSoloRdv","servizioNonAttivo","every","ufficioNonPresente","appOrigineBackoffice","pageSospensioneServizio","IsSospeso","InizioSospensione","FineSospensione","opacity","fill","stroke","strokeMiterlimit","strokeWidth","OminoDisperato","pad","number","JustADate","utcMidnightDateObj","initDate","UTC","getUTCDate","getUTCMonth","getUTCFullYear","getUTCHours","getUTCMinutes","getUTCSeconds","getYear","monthNames","getMonthDesc","month","calcStyle","diff","clientHeight","overflow","maxHeight","getSize","documentElement","clientWidth","dragging","onMouseDown","useModalContext","grabbing","scrollable","setProp","properties","setPropRecursive","propName","propIndex","temp","addToForm","isValid","onFormChange","removeFromForm","resetta","validare","FormWrapperPropTypes","WrappedComponent","FormWrapper","FormContext","WComponent","notifica","resetHandler","valido","Checkbox","defaultChecked","disabledProp","readOnlyProp","switch","rSwitch","contesto","cbChecked","uniqueid","labelClassName","inputConteinerClassName","handleChange","checkboxId","htmlFor","isUndefined","isUndefinedOrEmpty","isObject","isDeepEqual","obj1","obj2","keys1","keys2","template","d2","performance","storage","property","load","save","removeItem","localStorage","MESSAGE_READ","isDontShowAgainOptionSelected","DontShowAgain","setChecked","handleClick","clearMessageStatus","useDontShowAgainMessageRead","reloadCond","messageRead","setMessageRead","refMounted","CloseModalButton","DeleteIcon","Item","CLOSED_BY_DONT_SHOW_IT_AGAIN","createClosedByDontShowAgainEvent","dontShowAgainId","GenericItem","dontShowAgainMessage","createWrappedAsyncCallback","beforeCallback","afterCallback","ConfirmItem","primaryLabel","onPrimaryClick","secondaryLabel","onSecondaryClick","classNameBody","working","setWorking","primaryCallback","secondaryCallback","startWorking","stopWorking","FeedbackPanel","Icon","ThumbUpIcon","FeedbackIcon","ReportIcon","QuestionAnswerIcon","FeedbackItem","modalTitle","buttonLabel","Modal","doNotFocus","contentClassName","transitionDuration","initialPos","diffModalContentModalBody","portalElementRef","contentRef","initialPosition","modalContentRef","modalElementRef","setX","setY","setDragging","mouseCoord","setMouseCoord","forceUpdate","updateState","useForceUpdate","mouseWidth","mouseHeight","posX","posY","Number","isInteger","max","createResizeWindowCallback","callbackMouseUp","callbackMouseMove","pageX","pageY","changePosition","offsetLeft","offsetTop","offsetWidth","offsetHeight","useChangeModalPosition","focus","changing","setChanging","setComponentTimeout","timeoutRef","useComponentTimeout","modalContext","marginLeft","marginTop","transition","ModalPortal","doc","portalRef","removeChild","usePortalElement","Generic","Confirm","Feedback","isClosedByDontShowAgainEvent","FeedbackModal","feedbackProps","getSegnalazioneError","msg","IFrameModalizer","clickFromRef","childRef","modalizerEl","useBodyChild","modalizer","setModalizer","messageHandler","useImperativeHandle","position","MouseEvent","bubbles","fromPluginsEvent","getWindowSizeToParam","w","messageToNoRedirect","callAndResponseToChild","iframeDefaultStyle","border","IFrame","updateHash","checkClickableOutside","showSpinner","srcParams","onRedirectUrl","onReceiveMessage","onDialogResize","onDialogOk","onDialogCancel","checkLoaded","onLoaded","inMemoryRouting","notifyLoadedToHashing","initialSrc","setInitialSrc","routerPathBase","setRouterPathBase","currentHash","appLoaded","reloadMissing","hashTag","setLocationHashOrMemory","setInitialSrcAndHash","routerPathBaseParam","queryParms","getQueryParamsFromObject","newHash","getIframeHash","newInitialSrc","hashFromLocation","tagPos","getHashFromSrc","routerPath","newRouterPathBase","eventoChangeHash","subHash","v1","v1parts","v2parts","versionCompare","eventoChangeHash2","onHashChange","newHashWithParams","handleHashchangeEvent","useRoutingHandler","iframeModalizerRef","enabled","clickEvent","useClickOutside","useIFrameInDialog","useViewportResolutionSender","eventoGotoExternalUrl","useGotoExternal","handleLoadingSuccess","handleLoadingFailure","onLoad","loadingError","onSuccess","onFail","childLoadedRef","setLoading","setLoadingError","sendExtraData","checkLoadOk","loaded","useIFrameLoader","ModalIframe","onConfirm","modalProps","iframeProps","defaultModalSize","fixedModalSize","size","setSize","initState","useStateIfEnabled","modalSrcParams","getOttieniContatoriStatoDeleghe","idContribuente","getOttieniContatoriTipoDelegheContribuente","getOttieniContatoriTipoDelegheMassiva","idStudio","getOttieniDelega","idDelega","getEtichetteDelega","postDichiaraAperta","command","postDichiaraCompleta","postDichiaraCompleteMassivamente","idDeleghe","postDichiaraPagata","postDichiaraNonPagata","postDichiaraDaNonPresentare","postDichiaraDaPresentare","postStampaDelega","postStampaCopiaConformeDelega","getStampaUltimaDelega","postStampaDelegaProvvisoria","postStampaDelegaMassiva","postAssociaIntermediario","postCreaDelegaCopiaConformeTrasmissioneTelematica","postEliminaDelega","getOttieniUltimaStampaInDownload","getOttieniUltimoFileTelematicoContribuenteInDownload","postModificaImportoUtilizzoDebito","postModificaImportoUtilizzoCredito","postAssociaContoCorrente","postRimuoviContoCorrente","IdDelega","postImpostaDelegaInviataConCbi","getOttieniIbanContoCorrente","getOttieniInfoModalitaPresentazione","postPresentaConPagoF24","postAggiornaIndirizzi","postQuietanza","lg","lgOffset","lgPull","lgPush","md","mdOffset","mdPull","mdPush","xl","xlPull","xlPush","xlOffset","xs","xsOffset","xsPush","xsPull","Grid","fluid","Col","getViewport","ViewportProvider","container","handleViewportResize","newViewport","Surprise","rx","UnexpectedErrorPage","ErrorBoundary","errorInfo","showDetails","toggleShow","componentDidCatch","onCatch","errorTitle","componentStack","catchComponentError","link","itemActive","isLinkActive","ItemWR","wrappedComponentRef","remainingProps","newRouter","openCallback","Menu","SidebarContext","Submenu","SidebarImpl","onOpenChanged","openInternal","toggle","newOpenInternal","sidebarContext","Sidebar","SideBarF24","resolutionMAIN","backgroundGrigio","isOperatore","setNonSolaLettura","setBackoffice","HomeIcon","EventIcon","BusinessContactIcon","ListIcon","SupervisorIcon","PoliceIcon","PageWrapper","toolbar","noSidebar","forceNoFlex","getBreadcrumbObject","breadcrumb","selectable","ListItem","setWidth","handleSelect","getElementSize","breadcrumbObj","labelClasses","CollapsedListItem","Breadcrumbs","breadcrumbs","maxWidth","collapsed","itemWidthCallback","items","setCollapsed","useCollapsing","lastItem","cssBlock","BreadcrumbsBand","onBack","handleBack","maxBreadcrumbsCompWidth","ToolbarBackIcon","labe","DropdownList","extractDropDownList","dropDownItems","DropdownMenu","overlayClasses","NavigateBeforeIcon","NavigateNextIcon","DropdownButton","showOpenClose","onDropdownOpen","onDropdownClose","onOpenCB","onCloseCB","firstChild","lastChild","ddi","buttonChildren","lastChildrenComp","useToolbarButton","ToolbarDropdownButton","ToolbarButton","Toolbar","bandClass","Divider","addParamVisualizzazioneToUrl","newurl","PdfCondizioneUtilizzoPagoF24Link","AnteprimaMailPagoF24Link","ContrattoNexiCgnPos","delegaSoggettoUrl","codiceUfficioOperatore","fromMassive","fromScadenzario","altriParams","delegaSoggettoUrlLink","tributiContribuenteUrl","CodiceFiscale","tributiContribuenteFromScadenzarioUrl","tributiContribuenteFromHomeUrl","delegheUrl","scartate","inPresentazione","annualita","dettaglioContribuenteUrl","TipoPersona","hrefIntermediariUrl","dettaglioIntermediarioUrl","IdIntermediario","urlScadenzario","anno","ToolbarDiProva","idPerBackButton","noBack","soggetto","appParamVisualizzazione","annoCampagnaServizioEsterno","penultimo","ultimo","nominativo","selezionaBreadcrumb","codiceFiscale","ACTION_SOGGETTO_SET","setSoggettoAction","getOttieniContribuente","postImportaTributi","postCreaDeleghePerTributiImportati","Form","validationState","subscriptions","struttura","All","rivalida","onValidationChange","field","FormErrors","updateValidationState","ValidationLevel","rules","Validation","register","rule","validate","additionalParams","getValidationLevel","validateAll","rulesToVal","warnings","ruleToVal","messageResult","levelResult","valid","codiceFiscaleValido","cf","toUpperCase","set1","set2","charCodeAt","partitaIVAValida","partitaIva","codiceProvinciale","verificaCodiceProvinciaPartitaIva","verificaCodiceControlloPartitaIva","telefonoValido","telefono","ValidationRules","required","minLength","maxLength","CodiceFiscaleAlfaNumerico","PartitaIva","IBAN","Fax","Email","Range","Pattern","Telefono","DateRange","NumberRange","iban","newIban","divident","modulo","IBANValido","mail","minValue","maxValue","pattern","test","DefaultRules","Levels","customRestrictions","getEventKeyChar","which","keyCode","Restriction","restriction","handleKeys","keyName","cleanKeyName","customRestriction","matchKeyEvent","findMatchedKey","DefaultRestrictions","numeri","numerinegativi","numeridecimali","numeridecimalinegativi","lettere","lettereall","alfanumerici","cognomenome","ragionesociale","codicefiscale","numberKeys","letterKeys","letterSpecialKeys","allLetterKeys","alphanumericKeys","char","DefaultValues","Tooltip","enableFunction","enable","EllipsisText","numberOfLines","textClassname","textStyle","WebkitLineClamp","scrollWidth","scrollHeight","dirty","validazione","validareDirty","hasError","hasWarning","ValidationViewer","namecase","endWithSpace","updatedValue","Input","valida","zeroValid","valueP","isZero","valueS","valueState","formatP","formatta","nameCase","upperCase","targetValue","restrictions","isNumber","formattedField","hasSelection","unformattedField","selectionStart","selectionEnd","setSelectionRange","keepZero","activeElement","newEvent","valueChanged","onKeyPress","onKeyDown","reset","aggiornaValoreInput","readOnlyP","getAlignment","inputValue","renderInput","rValue","ellipsis","titleLines","placeholder","inputClass","formattedValue","focused","autoComplete","inputTitleClass","getCellAttributes","templateMatched","row","col","attrs","colDef","cols","rowDef","rows","getCellTop","verticalTop","TemplateGrid","templates","setTemplateMatched","findTemplateMatched","templateMatchedIdx","foundIdx","findIndex","mediaQuery","matchMedia","getTemplateMatchedIdx","childs","numCols","numRows","ceil","mathMedias","mm","addListener","removeListener","Panel","PanelInfoIcon","PanelSuccessIcon","PanelWarningIcon","PanelAlarmIcon","SegnalazioniViewer","segnalazioni","segnalazionErr","segnalazioniWarn","segnalazioniInfo","ModaleModificaUtilizzoTributo","tributoDaModificare","studioSelezionato","isFormValid","setIsFormValid","esito","setEsito","setFormData","setSegnalazioni","formRef","presetForm","datoModificato","newStato","resetDati","Importo","importo","modificaImporto","oggettoModifica","IdContribuente","isDebito","IdDebito","idTributo","IdCredito","Success","sezione","DetectedProblems","descrizione","validity","segnalazione","autoFocus","runing","STATO_DELEGA","APERTA","COMPLETA","IN_PRESENTAZIONE","PAGATA","DA_CONSEGNARE","CONSEGNATA","MODALITA_PRESENTAZIONE","CARTACEA","FILE_TELEMATICO_CONTRIBUENTE","FILE_TELEMATICO_INTERMEDIARIO","INVIO_TELEMATICO_INTERMEDIARIO_ADELE","INVIO_TELEMATICO_INTERMEDIARIO_CBI","PAGO_F24","CGN_POS","MODALITA_VERSAMENTO_PAGOF24","AddebitoCC","CartaCredito","POS","TIPO_DELEGA","ORDINARIO","ACCISE","ELIDE","SOGGETTO_VERSANTE","CONTRIBUENTE","COOBBLIGATO","INTERMADIARIO","STATO_INVIO_PAGOF24","SESSIONE_VERSAMENTO_CREATA","VERSAMENTO_TRAMITE_CBI_AVVIATO","TRANSAZIONE_EFFETTUATA","ELABORAZIONE_PAGAMENTO","ERRORE","NON_PAGATA","toStringLong","modalitaVersamento","toStringShort","createBadge","statoPagoF24","infoAggiuntive","STEP_SCELTA_TELEMATICO","SELEZIONE_PRESENTAZIONE","SCELTA_TELEMATICA_CONTRIBUENTE","SCELTA_TELEMATICA_INTERMEDIARIO","VIA_CARTACEA_DIRETTA","VIA_TELEMATICA_INTERMEDIARIO","VIA_TELEMATICA_INVIO_TELEMATICO","VIA_TELEMATICA_CONTRIBUENTE","VIA_TELEMATICA_CBI_CONTRIBUENTE","VIA_PAGOF24_DIRETTA","VIA_PAGOF24_POS","highlight","parsedValue","Highlighter","textP","dangerouslySetInnerHTML","__html","fromElement","focussable","querySelectorAll","nextElement","nextUUID","SearchListProvider","subscriber","searchProps","searchTerm","closeList","requestId","lastRequestId","searchImpl","searchDebounced","searchNow","webGet","dataSource","renderProperty","term","searchStarted","searchCompleted","errorCatched","SearchButton","SearchIcon","AutoComplete","suggest","forcesSearch","searchResult","selectItem","formDirty","searchListProvider","deactiveIgnoreBlur","eventValue","cValue","isSearchResultListVisible","onFinally","refInput","searchResultListSelectedItem","selectItemAfterLoading","ignoreBlur","elementIndex","activeIgnoreBlur","clearAfterSelect","searchTermValue","getSearchTermDescription","clearAutoComplete","onClear","selectedItem","refContainer","selectedDOM","menuDOM","selectedRect","menuRect","bottom","customList","renderRow","handleListItemClick","resolveListItemClass","onGetError","selectFirstItemIfNoEditing","validareP","renderPropertyP","selectText","inputClasses","scrollOptionIntoView","handleOnBlur","handleOnChange","handleKeyUp","onClearAutoComplete","forceSearch","renderList","ACTIVE","DONE","TODO","Step","State","optional","subTitle","StepItem","stepClasses","intestazioneClasses","renderIcon","Stepper","etichetteAlternative","nonlinear","stepperGroupClasses","stepperClasses","TIPO_PERSONA","PERSONA_FISICA","PERSONA_GIURIDICA","TIPO_ESONERO_ISA","REDDITI","IVA","TIPO_AZIENDA","NON_INDICATO","IMPRESA_INDIVIDUALE_ORDINARIA","IMPRESA_INDIVIDUALE_SPECIALE","SOCIETA_SEMPLICE_AGRICOLA_SPECIALE","SOCIETA_SEMPLICE_NON_AGRICOLA_SPECIALE","SOCIETA_AVVOCATI_SPECIALE","SOCIETA_SEDE_ESTERO_UNITA_LOCALI_ITALIA_SPECIALE","ENTE_REA","ALTRE_SOCIETA","TIPO_INDIRIZZO","RESIDENZA_FISCALE","SEDE_LEGALE","DOMICILIO_FISCALE","SEDE_ATTIVITA","getOttieniPersonaFisica","getOttieniPersonaGiuridica","getOttieniPersonaFisicaById","idAnagrafica","getOttieniPersonaGiuridicaById","getOttieniIndirizzoResidenzaFiscale","getOttieniIndirizzoSedeLegale","postCreaAnagraficaPersonaFisica","postModificaAnagraficaPersonaFisica","postCreaAnagraficaPersonaGiuridica","postModificaAnagraficaPersonaGiuridica","postModificaIndirizzo","postEliminaIndirizzo","postAggiungiIndirizzo","postAggiungiRecapito","postModificaRecapito","postEliminaRecapito","postAggiungiContoCorrente","postModificaContoCorrente","postModificaContoCorrenteDaIban","postAggiungiContoCorrenteDaIban","postEliminaContoCorrente","postAggiungiRappresentante","postEliminaRappresentante","getOttieniIndirizzi","getOttieniRecapiti","getOttieniContiCorrenti","getOttieniDatiDaCodiceFiscale","getOttieniRappresentanti","getGeneraIBAN","abiBanca","cabBanca","numeroConto","cercaFilialiBanca","SezioneSedeLegale","onChangeAutocompletes","residenzaSedeLegaleEditabili","Radio","inputChecked","useRadioFormChecked","radioId","radio","classesLabel","convertDateToISO","parseDate","future","decrease","annoDefault","parts","year","day","formatDate","separator","YearsToShow","DecadesToShow","Viste","DAY","MONTH","YEAR","DECADES","days","months","isOutOfRange","range","Days","listaGiorniMeseCorrente","numeriGiorniMeseCorrente","primoGiornoDelMese","getDay","today","outOfRange","selectedDate","isSelectedDate","isToday","getDateProperties","Months","Years","decade","Decades","century","onChangeView","DateComponentChooser","initView","setView","setDate","getToday","BackIcon","newMonth","getPreviuosDate","ForwardIcon","getNextDate","Views","DatePicker","showS","dateS","updateValue","refDatepickerInput","hide","newD","newState","newDay","futureDate","refNode","dataCorrentementeSelezionata","cDisabled","cReadOnly","updateProps","closeIfClickOutside","getCurrentSelectedDate","wrapperClasses","CalendarIcon","changeVisibility","selectFullDate","WrappedDatePicker","SezioneDatiAnagraficiConTipo","valutaEsistenzaAnagrafica","valutaEsistenzaAnagraficaRadio","datiAnagraficiEditabili","partitaIvaEditabile","tipoPersona","onKeyUp","onPaste","SezioneResidenza","CheckboxTitle","noMargin","NuovoCoobbligato","currentStep","setAnagraficaGiaEsistente","ibanManuale","setIbanManuale","codiceFiscaleOld","setCodiceFiscaleOld","setPartitaIvaEditabile","setDatiAnagraficiEditabili","setResidenzaSedeLegaleEditabili","dataDiNascitaEditabile","setDataDiNascitaEditabile","recuperaResidenzaOSedeLegale","datiAnagrafici","Result","IdIndirizzo","Id","TipoIndirizzo","IdComune","IdToponimo","DescrizioneTipoIndirizzo","CodiceComuneDescrizioneComposta","Comune","ComuneCodiceProvincia","Provincia","IndirizzoDescrizione","Descrizione","NumeroCivico","Frazione","ToponimoDescrizione","Toponimo","Cap","esisteOttieniAnagrafica","CodiceSIA","IdAnagraficaCoobbligato","IdAnagrafica","TipoPersonaCoobbligato","DenominazioneCoobbligato","Denominazione","AutocompleteCoobbligato","Cognome","Nome","CodiceFiscaleCoobbligato","PartitaIvaCoobbligato","Sesso","DataDiNascita","IdLuogoDiNascita","RagioneSociale","IdNaturaGiuridica","NaturaGiuridica","IdCodiceComuneDiNascita","campo","elemento","autocompleteVals","DescrizioneComposta","ComuneDescrizione","CodiceProvincia","Id_Toponimo","AbiBanca","Abi","DescrizioneBanca","Banca","CabBanca","Filiale","Cab","getStepState","IbanGenerato","NumeroConto","cambioIbanManuale","FilialeCab","IbanManuale","idAnagraficaCoobbligato","ModaleCoobbligato","codiceFiscaleCoobbligatoPrecedente","denominazioneCoobbligatoPrecedente","codiceAdECoobbligatoPrecedente","idAnagraficaCoobbligatoPrecedente","idCodiceAdECoobbligatoPrecedente","tipoPersonaCoobbligatoPrecedente","codiceUfficioSelezionato","creazioneNuovoCoobbligato","setCreazioneNuovoCoobbligato","setCurrentStep","anagraficaGiaEsistente","sbiancaCampoIbanGenerato","preventLoop","Codice","IdCodiceCoobbligato","associaCoobbligato","ottieniRecapitiEConti","recapito","Predefinito","Cellulare","IdRecapito","IdContoCorrente","creaAnagrafica","oggettoCreazione","IdStudio","Indirizzo","aggiungiContoERecapito","isIbanManuale","oggettoCreazioneRecapito","oggettoCreazioneConto","Iban","apiModificaDaChiamare","apiAggiungiDaChiamare","onNext","CodiceFiscaleDenominazione","UsaContoCoobbligato","AddIcon","Textblock","LabelValueDetail","getCurrencyValue","LabelOnly","ModaleVersamento","idSoggettoVersante","soggettoVersante","nominativoSoggettoVersante","idContoPrecedente","listaContiCorrente","setListaContiCorrente","aggiuntaNuovoContoCorrente","setAggiuntaNuovoContoCorrente","contoPredefinitoPrecedente","setContoPredefinitoPrecedente","contoPredefinitoPrecedenteDaLista","conto","IdContoSelezionato","aggiungiEdAssociaContoCorrente","oggettoAssociare","exContoPredefinito","rsponse","associaContoCorrente","nuovoConto","DescrizioneSede","DescrizioneFiliale","contoPredefinito","RemoveIcon","AddCircleOutlineIcon","ConfirmModal","confirmProps","ModaleConfermaEliminazione","elimina","nomeElementoEliminato","getOttieniIntermediarioPersonaFisica","getOttieniIntermediarioPersonaGiuridica","getOttieniIntermediari","getOttieniIntermediario","idIntermediario","postCreaIntermediarioPersonaFisica","postCreaIntermediarioPersonaGiuridica","cercaIntermediari","ModaleDichiaraPagata","dataScadenzaVersamento","dataVersamento","dichiaraPagata","dataEffettivoPagamento","setDataEffettivoPagamento","onChangeDataPagamento","InfoTooltip","InfoesIcon","TooltipContent","CloseIcon","showOnHover","useTooltipHoverWithDelay","setShow","Content","Container","Box","positionHorizontal","positionVertical","justifyContent","textAlign","alignItems","ElasticSeparator","callDownloadFile","apiToCall","defaultFilename","fileName","saveAs","getOttieniCampiCodiceTributoDebito","idCodiceTributo","getOttieniCampiCodiceTributoCredito","getOttieniTributo","getDettaglioDebitoErario","idDebito","getDettaglioDebitoAltriEnti","getDettaglioDebitoInps","getDettaglioDebitoInail","getDettaglioDebitoRegioni","getDettaglioDebitoTributiLocali","getDettaglioDebitoAccise","getDettaglioDebitoElide","getUtilizziDebito","getUtilizziCredito","idCredito","getOttieniInfoDettaglioCredito","postCreaDebitoErario","postCreaDebitoRegioni","postCreaDebitoTributiLocali","postCreaDebitoInps","postCreaDebitoInail","postCreaDebitoAltriEnti","postCreaDebitoAccise","postCreaDebitoElide","postCreaCreditoErario","postCreaCreditoRegioni","postCreaCreditoTributiLocali","postCreaCreditoInps","postCreaCreditoInail","postCreaCreditoAltriEnti","cercaSediEntiPrevidenziali","tipologiaSezione","idEnte","postEseguiChiusuraForzataDebito","postAnnullaChiusuraForzataDebito","postEseguiChiusuraForzataCredito","postAnnullaChiusuraForzataCredito","postEliminaDebito","postEliminaCredito","getCercaCodiciTributoDebito","getCercaCodiciTributoCredito","getIsDebitoModificabile","getIsCreditoModificabile","CREDITI_CON_RATEAZIONE","DEBITO","CREDITO","TIPOLOGIA_SEZIONE","ERARIO","INPS","REGIONI","TRIBUTI_LOCALI","ALTRI_ENTI","INAIL","getPostCreazioneDebitoBySezione","idSezione","tipologia","getDettaglioTributoBySezione","PROVENIENZA_TRIBUTO","MANUALE","DIRITTO_CAMERALE","TIPO_COMPENSAZIONE","ORIZZONTALE","VERTICALE","MESI_ANNO","Numero","STEP_SCELTA_GESTIONE_TRIBUTO","PROVENIENZA","GESTIONE_SCADENZE","RATEIZZAZIONE","RAVVEDIMENTO","DICHIARATIVI","SPOSTA_SCADENZA_TRIBUTI","TIPO_LAVORATORE","AUTONOMI","SUBORDINATI","TIPO_RAVVEDIMENTO","OMESSI_VERSAMENTI","DICHIARAZIONI_INFEDELI_ENTRO_90_GG","DICHIARAZIONI_INFEDELI_OLTRE_90_GG","PERSONALIZZATO","DICHIARAZIONE_INFEDELE","TIPO_ELIDE","AGCM","AUTOVEICOLO","IDENTIFICATIVO_REGISTRO","IDENTIFICATIVO_UIBM","INPS_INPDAP","MOTOVEICOLO","RIMORCHIO_REGOLARIZZAZIONE_ALTRO","TIPO_ELIDE_DATASOURCE","Val","getBadge","titolo","EtichetteDelega","etichetteDelega","et","getBadgeConTooltip","Titolo","Tipo","ModaleAiutaci","ModaleRischiDiPagareDueVolte","idFile","codiceUfficio","nomeFile","BOTTONE_NOTE_ELEMENT_ID","DRAWER_NOTE_ELEMENT_ID","configuration","inizializzaNote","noteUrl","IdUtente","async","defer","insertBefore","caricaComponenteNote","idOggettoConNote","Ecosistema","Note","setReadOnly","avvia","containerId","avviaDrawerSeEsistonoNoteImportanti","inizializzaComponentiNote","visualizzaDrawerListaNote","numeroNote","numeroNoteAggiornato","setNumeroNoteAggiornato","NoteUrl","NOTE_CARICATE","note","DescriptionIcon","DrawAttention","closeDelay","tooltipContent","primaLetteraMaiuscola","stringa","NewAccordion","forzaChiusura","isCollapsable","padding16SubPanel","collapse","setCollapse","overflowY","isValidationRequired","listaCampi","nomeCampo","campoPresente","NomeCampo","IsObbligatorio","isCampoDisabled","FieldsColonnaMultiuso","campiSpecifici","cambioValoreRata","disabilitaRateazione","nomiCampi","isPresente","SezioneErarioDebito","rateazione","tributoVals","IdTabellaT0","CodiceRegioneDescrizioneComposta","IdTabellaT1","CodiceEnteLocaleDescrizioneComposta","IdTabellaT2","CodiceProvinciaDescrizioneComposta","IdTabellaT3","CodiceEnteTerritorialeDescrizioneComposta","AnnoRiferimento","Anno","MeseRiferimento","MeseDescrizione","charCode","Rateazione","SezioneRegioniDebito","limiteUnico","annoRiferimento","erroreImportoLimitato","SezioneInail","CodiceSede","IdSede","isAnnoSuperiore2016","periodoOAnno","SezioneAltriEnti","periodoDa","periodoA","annoRiferimentoDa","CodiceSedeDescrizioneComposta","MeseRiferimentoDa","MeseRiferimentoDaDescrizione","MeseRiferimentoA","MeseRiferimentoADescrizione","AnnoRiferimentoDa","AnnoRiferimentoA","cambioValorePeriodoDa","PeriodoDa","cambioValorePeriodoA","PeriodoA","SezioneInps","SezioneRegioniCredito","FieldsColonnaMultiusoEnte","SezioneTributiLocaliCredito","SezioneTributiLocaliDebito","SezioneErarioCredito","SezioneAcciseMonopoliDebito","tabindex","SezioneElideDebito","TipoVersamento","TipoVersamentoDesc","ModaleCreazione","tributoPrecedente","dataScadenzaProvenienteDaDelega","tipoDelega","nominativoSogg","setCampiSpecifici","dettaglioTributoPrecedente","setDettaglioTributoPrecedente","recuperatiDatiCodiceTributo","setRecuperatiDatiCodiceTributo","buttonCreaRef","creaTributo","TipologiaTributo","IdCodiceTributo","NumeroRata","TotaleNumeroRate","ImportoLimitato","ImportoNonLimitato","VistoDiConformita","StartUpInnovativa","IdSezione","postDiCreazioneBySezione","TributoCodice","DataScadenza","modificaTributo","resEliminaCompensativo","modificaStyleModaleInBaseAllaSezione","onChangeCodiceTributo","tributo","oldFormData","errors","LimiteUnico","TributoDescrizione","TributoDescrizioneComposta","CodiceEnte","IdEnte","nuovoStatoFormdata","PeriodoRiferimento","CodiceComune","DescrizioneComune","CodiceRegione","DescrizioneRegione","CodiceEnteLocale","DescrizioneEnteLocale","DescrizioneProvincia","CodiceEnteTerritoriale","DescrizioneEnteTerritoriale","padStart","NumeroRataAnnuale","TipoTributoElide","getDettaglio","param","ottieniListaTributiValidi","tributiValidi","resp","InfoIcon","RiepilogoDelega","datiDelega","infoModalitaPresentazione","isDichiaraDaNonPresentareAttivo","isDichiaraDaPresentareAttivo","setShowModalePresentazioneContribuente","setShowModalePresentazioneIntermediario","setShowModalePresentazioneInvioTelematico","setShowModalePresentazioneCbi","setShowModalePresentazionePagoF24","stampaCartacea","apriWarningStampaCartacea","dichiaraAperta","isDichiaraApertaAttivo","setShowModaleDichiaraPagata","dichiaraChiusa","dichiaraDaNonPresentare","dichiaraDaPresentare","isDichiaraPagataAttivo","isDichiaraCompletaAttivo","totaleDelega","setConfirmEliminaDelega","setDatiDelegaAggiornati","tributiInseribili","setTributiInseribili","ottieniSezioneSpecificaById","setWindowHeight","invioTelematicoCgnUrl","AdeleUrl","f24CbiUrl","F24CBIUrl","applicationId","ApplicationId","noToolbar","isInvioTelematicoCbiAttivo","sestioneContrattiRdv","GestioneContrattiRdv","isInvioTelematicoAttivo","homeUrl","HomeUrl","codiciUfficioAbilitatiPagoF24","CodiciUfficioAbilitatiPagoF24","codiciUfficioAbilitatiCgnPos","CodiciUfficioAbilitatiCgnPos","paginaDiServizioCgnPosUrl","PaginaDiServizioCgnPosUrl","showCgnPos","onMouseEnterCgnPos","onMouseLeaveCgnPos","showInvioTele","onMouseEnterInvioTele","onMouseLeaveInvioTele","confirmFunzionalitaMancante","setConfirmFunzionalitaMancante","showConfirmSegnaDaNonPresentare","setShowConfirmSegnaDaNonPresentare","showDettaglioCBI","setShowDettaglioCBI","titoloFeedbackModal","setTitoloFeedbackModal","datiPerFrameDettaglioCBI","setDatiPerFrameDettaglioCBI","loadingTributiInseribili","setLoadingTributiInseribili","setCreaTributo","aperto","tipologiaTributo","creazioneTributoInCorso","setCreazioneTributoInCorso","successoCrezioneTributo","setSuccessoCrezioneTributo","successo","annoDiRiferimento","tributoDaAggiungereInDelega","setTributoDaAggiungereInDelega","tributoAggiuntoInDelega","setTributoAggiuntoInDelega","idOrigine","getBadgeInvioCbi","statoInvioCbi","stampaF24Provvisorio","NomeFile","IdFile","resDownload","riscaricaUltimoF24","stampaF24CopiaConforme","ottieniTributiInseribili","tributoInserito","getOttieniTributiInseribiliInDelega","precedentementeInseriti","inserito","IsDebito","aggiugiTributi","postUtilizzaCredito","aperturaModaleCreazioneTributo","dataScadenzaDelega","ScadenzaVersamento","TipoDelega","chiusuraModaleCreazioneTributo","codice","dataScadenza","isModifica","IdTributo","feedbackAvvenutaCreazioneTributo","elementoTributiInseribili","CodiceTributo","ImportoResiduo","DoneIcon","Stato","DA_INVIARE","IsDaNonPresentare","SendIcon","CreditCardIcon","IsInvioCgnPosAttivo","HaRichiestoAlmenoUnPos","MotivoInvioTramiteCgnPosNonAttivo","IsInvioTramitePagoF24Attivo","MotivoInvioTramitePagoF24NonAttivo","IsInviaFileTelematicoContribuenteConCbiAttivo","MotivoInviaFileTelematicoContribuenteConCbiNonAttivo","InvioTelematicoIconSmall","IsCreaFileTelematicoContribuenteAttivo","MotivoCreaFileTelematicoContribuenteNonAttivo","IsCreaFileTelematicoIntermediarioAttivo","MotivoCreaFileTelematicoIntermediarioNonAttivo","IsInviaFileTelematicoIntermediarioConAdeleAttivo","MotivoInviaFileTelematicoIntermediarioConAdeleNonAttivo","IsCreaStampaDaConsegnareAttivo","callBack","PrinterIcon","MotivoCreaStampaDaConsegnareNonAttivo","Errata","UndoIcon","SendCancelledIcon","NumeroNote","ArrowBackIcon","VerifiedIcon","aggiungiTributiInDelega","LayersIcon","MoreVertIcon","DesignServiceIcon","CreditScoreIcon","ModalitaPresentazione","DescrizioneStato","DescrizioneTipoDelega","IsPagoF24QrCode","SoggettoVersante","DenominazioneIntermediario","statoInvioTelematico","getBadgeInvioTelematico","StatoInvioTelematico","StatoVersamentoPagoF24","ModalitaVersamentoPagoF24","InfoAggiuntiveStatoPagoF24","StatoInvioCbi","UsaContoIntermediario","IsDelegaConCompensazioneVerticale","IsDelegaConCompensazioneOrizzontale","IconBadge","Selection","DESELECTED","SELECTED_ALL","SELECTED_ALL_IN_PAGE","SELECTED_NONE","SELECTED_NONE_IN_PAGE","SELECTED","NONE_CONTEXT","onSelectedAll","onSelectedAllInPage","onSelectedNone","onSelectedNoneInPage","onSelected","onDeselected","selectionSubscribe","selectionUnsubscribe","getSelection","lastSelection","isSelectedDefault","isSelectedAll","compareSubscribers","s1","s2","forwardToCallback","compare","forwarder","subscribers","collapseAll","ExpandedContext","ColumnGroup","minWidth","fixedWidth","sortable","order","onSort","Empty","HeaderColumnGroup","numberOfChildren","colSpan","ColumnSortIcon","cName","ArrowUp","ArrowDown","changeOrder","useSelectionContext","CheckboxHeaderColumn","selection","handleSelection","setSelection","totalRowsOfPage","useSelection","HeaderPlaceholderColumn","createColumn","column","createPlaceholderColumn","groups","columns","placeholderColumns","hasGroups","groupChildren","ckey","useTableColumns","CheckboxCell","disabledTooltip","setExpanded","renderExpanded","selectionDisabled","setExpandedState","expandedContext","checkboxDisabled","setSelected","sel","useRowSelection","checkboxCell","rowSpan","hoverVisibility","currency","formatValueCurrency","cx","cy","MiniPanel","BadgeInfoIcon","BadgeSuccessIcon","BadgeWarningIcon","BadgeAlarmIcon","Arrow","SelectionPanel","totalNumberOfItems","itemDescriptions","main","descriptions","description","useTableRowContext","ExpandButton","MaximizeIcon","hasScrollbar","setHasScrollbar","TableContainer","onSelectionChange","initialSelection","selectionContext","isSame","changeListenerState","nofitySelectionChange","selectedRows","nofityHeaderChange","selectAll","l","buildContext","resetSelection","publisher","ScrollableTableHead","hasScroolbar","setHasScroolbar","useScrollbarListener","ScrollableTableBody","hasScroll","checkScroll","useComponentWithScroolbar","highligthColumns","headChildren","bodyChildren","othersChildren","head","IS_TABLE_HEAD","useSelectionState","onSelectionChangeCallback","SezioneErario","listaTributi","modificaUtilizzo","showModaleModificaUtilizzo","rimuoviUtilizzo","mostraModifica","showPanelTributiErario","setShowPanelTributiErario","Tributi","showCloseButton","ValoreColonnaMultiuso","noClickPropagation","EditIcon","onSuccessCallback","CodiceUfficioAdE","CodiceAttoAdE","TotaleImportiDebito","TotaleImportiCredito","Saldo","IsCredito","SezioneTributiLocali","showPanelTributiLocali","setShowPanelTributiLocali","ValoreColonnaEnte","Ravvedimento","ImmobiliVariati","Acconto","NumeroImmobili","IdentificativoOperazione","TotaleDetrazioni","Detrazione","showPanelTributiInps","setShowPanelTributiInps","DescrizioneCompostaSede","Matricola","SezioneRegioni","showPanelTributiRegioni","setShowPanelTributiRegioni","DescrizioneCompostaRegione","showPanelTributiInail","setShowPanelTributiInail","PosizioneAssicurativaNumero","PosizioneAssicurativaCodiceControllo","NumeroRiferimento","Causale","showPanelTributiAltriEnti","setShowPanelTributiAltriEnti","DescrizioneCompostaEnte","CodicePosizione","TipoDelegaOrdinario","datiDelegaDaAggiornare","setShowModaleCoobbligato","setConfirmEliminaCoobbligato","setShowModaleVersamento","setConfirmEliminaContoCorrente","loadingErario","tributiErario","setShowModaleUtilizzoTributo","setTributoUtilizzoDaModificare","apriConfirmRimuoviUtilizzo","ottieniTributiErario","loadingInps","tributiInps","ottieniTributiInps","loadingRegioni","tributiRegioni","ottieniTributiRegioni","loadingTributiLocali","tributiLocali","ottieniTributiLocali","loadingInail","tributiInail","ottieniTributiInail","loadingAltriEnti","tributiAltriEnti","ottieniTributiAltriEnti","setShowModaleAnagraficaContribuente","setShowModaleIndirizzoContribuente","isIndirizzoDaAggiornare","ComuneNascita","ProvinciaNascita","ComuneDomicilio","ProvinciaDomicilio","IndirizzoDomicilio","CodiceAdECoobbligato","StatoSessioneVersamentoPagoF24","SezioneAccise","showPanelTributiAccise","setShowPanelTributiAccise","DescrizioneCompostaProvincia","CodiceIdentificativo","DescrizioneRateazione","TipoDelegaAccise","loadingAccise","tributiAccise","ottieniTributiAccise","SezioneElide","showPanelTributiElide","setShowPanelTributiElide","ElementiIdentificativi","TipoDelegaElide","loadingElide","tributiElide","ottieniTributiElide","SezioniDelega","PropTypes","ModaleLoading","ACTION_PRESENTAZIONE_DELEGHE_CBI","setPresentaDelegheCbiAction","ModaleDatiAnagrafica","modificaAnagrafica","newOggettoModifica","haPartitaIva","TipoAnagrafica","ButtonGroup","emphasisOfComps","comps","ImportantRadio","radioProps","inputRef","childrenArray","fontFamily","fontSize","StepSceltaModalita","sceltaModalitaPresentazione","setSceltaModalitaPresentazione","isCreaStampaDaConsegnareAttivo","motivoCreaStampaDaConsegnareNonAttivo","StepSceltaTipoFileTelematico","isCreaFileTelematicoContribuenteAttivo","motivoCreaFileTelematicoContribuenteNonAttivo","isCreaFileTelematicoIntermediarioAttivo","motivoCreaFileTelematicoIntermediarioNonAttivo","isInviaFileTelematicoIntermediarioConAdeleAttivo","motivoInviaFileTelematicoIntermediarioConAdeleNonAttivo","paddingRight","getOttieniFileTelematicoIntermediarioInDownload","idFileTelematicoIntermediario","StepPresentazioneFileTelematicoContribuente","setDataVersamento","setIdContoSelezionato","specificaConto","setSpecificaConto","setIdSoggettoVersante","setNominativoSoggettoVersante","settaValidita","validita","IdAnagraficaContribuente","onChangeDataVersamento","IdAnagraficaIntermediario","CodiceFiscaleIntermediario","StepPresentazioneFileTelematicoIntermediario","setIdIntermediario","setUsaContoIntermediario","SoggettoContoDiAddebito","StepSceltaTipoPagamentoDigitale","isInvioCgnPosAttivo","haRichiestoAlmenoUnPos","motivoInvioTramiteCgnPosNonAttivo","isInvioTramitePagoF24Attivo","motivoInvioTramitePagoF24NonAttivo","isInviaFileTelematicoContribuenteConCbiAttivo","motivoInviaFileTelematicoContribuenteConCbiNonAttivo","StepPresentazioneCBI","postAccettaCondizioniUtilizzo","getHaAccettatoCondizioniUtilizzo","tipoModelloDichiarazione","campagna","getOttieniDatiUtenteUfficio","postAggiornaDatiUtenteUfficio","postPresentaConPagoF24Pos","authorizedServices","TABS_MENU_CONTRIBUENTE","TRIBUTI","DELEGHE","DEBITI_PER_SCADENZA","ANAGRAFICA","INTERMEDIARI","TABS_MENU_MASSIVA","CODICE_RISPOSTA_QUESTIONARIO","NON_MI_INTERESSA","PREZZO","NON_CHIARO","RICONTATTARE","ConfermaEmailPagoF24","proseguiInvio","contribuenteIdAnagrafica","emailPresente","setEmailPresente","emailConfermata","setEmailConfermata","modificaMail","setModificaMail","recapiti","setRecapiti","cambiataEmail","ConfermaEmail","aggiungiRecapito","emailGiaPresente","resModifica","confermaMail","recuperaEmailPredefinita","rel","flexDirection","float","DatiUtenteUfficioPerMail","datiUtenteUfficio","setDatiUtenteUfficio","ottieniDatiUtenteUfficio","aggiornaDatiUtenteUfficio","YoutubeEmbed","embedId","frameBorder","allow","allowFullScreen","AccettazionePagoF24","annoCampagna","tipoModelloDichiarativo","servizioAccettato","setServizioAccettato","pdfScaricato","setPdfScaricato","primaVisualizzazione","setPrimaVisualizzazione","accettaServizio","TipoModelloDichiarazione","Campagna","scaricaPdfAccettazioneServizio","FileDownloadIcon","CompletaContribuente","esisteResidenzaOSedeLegale","setEsisteResidenzaOSedeLegale","aggiungiResidenzaFiscaleSedeLegale","datiCreazione","IdTipoIndirizzo","StepPresentazioneInvioTelematico","DatiUtenteUfficioPerMailPos","EmailDestinatario","risultatiPrecedenti","ModalePresentaDelega","setCurrent","datiDelegaDettaglio","modalitaPresentazione","infoModalitaPresentazioneProp","windowHeight","tipoModelloDichiarativoProp","sceltaModalitaPresentazioneRadio","setSceltaModalitaPresentazioneRadio","setDatiDelega","idContoSelezionato","stepModalitaPresentazione","setStepModalitaPresentazione","usaContoIntermediario","setInfoModalitaPresentazione","setTipoModelloDichiarativo","linkPagoF24Carta","setLinkPagoF24Carta","Delega","setShowWarningPresentaDelegaCallback","avviaPagoF24","conPos","avviaPagoF24Carta","proseguiAccettazionePagoF24","proseguiAnagraficaPagoF24","proseguiDatiUfficioPagoF24","proseguiAnagraficaPagoF24Pos","proseguiEmailPagoF24","avantiFasePresentazione","indietroFasePresentazione","scaricaCopiaConforme","fileTelematicoOrdinario","DataVersamento","fileTelematicoOrdinarioCbi","fileTelematicoContribuente","resCopia","fileCopiaConforme","fileTelematicoIntermediario","inviaFileTelematicoIntermediarioConAdele","associaContoConPresentazioneFileTelematicoCbi","predefinito","oggettoAssociareConto","resAggiungiConto","associaContoConPresentazioneFileTelematicoContribuente","associaContoConPresentazioneFileTelematicoIntermediario","oggettoAssociareIntermediario","resInt","associaContoConPresentazioneFileTelematico","idContoPredefinito","Option","additionalData","isSelected","Select","visible","relatedTarget","closeSelect","valueProp","lastFocus","contestoTxt","refSelected","findDOMNode","listTitleClasses","childrenWithProps","closeIfOpen","chiudiTab","renderMenu","FormSelect","ModaleIndirizzo","modificaIndirizzo","aggiungiIndirizzo","DettaglioDelega","fromIntermediario","f24CBIUrl","f24Url","F24Url","profiloUtente","presentazioneDelegheCbi","presentazioneDeleghe","cbi","primoLoading","setPrimoLoading","setLoadingErario","setLoadingTributiLocali","setLoadingInps","setLoadingRegioni","setLoadingInail","setLoadingAltriEnti","setLoadingAccise","setLoadingElide","setEtichetteDelega","setDatiDelegaDaAggiornare","datiDelegaAggiornati","setIsDichiaraDaNonPresentareAttivo","setIsDichiaraDaPresentareAttivo","setIsDichiaraCompletaAttivo","setIsDichiaraApertaAttivo","setIsDichiaraPagataAttivo","setTributiErario","setTributiLocali","setTributiInps","setTributiRegioni","setTributiInail","setTributiAltriEnti","setTributiAccise","setTributiElide","setTotaleDelega","tributoUtilizzoDaModificare","showModaleUtilizzoTributo","showModaleCoobbligato","showModaleVersamento","showModalePresentazione","setShowModalePresentazione","setModalitaPresentazione","showModaleDichiaraPagata","confirmEliminaCoobbligato","confirmEliminaTributo","setConfirmEliminaTributo","confirmEliminaDelega","showModaleLoading","setShowModaleLoading","nominativoIntermediario","setNominativoIntermediario","modalTitleFeedbackModal","setModalTitleFeedbackModal","idIntermediarioModale","setIdIntermediarioModale","segnalazioniDichiaraPagata","setSegnalazioniDichiaraPagata","confirmEliminaContoCorrente","datiPerInvioDeleghe","setDatiPerInvioDeleghe","showModalIFrameCbi","setShowModalIFrameCbi","showSuccessPagoF24","setShowSuccessPagoF24","showModaleAnagraficaContribuente","showModaleIndirizzoContribuente","oggettoAnagraficaContribuente","setOggettoAnagraficaContribuente","oggettoIndirizzoContribuente","setOggettoIndirizzoContribuente","setIsIndirizzoDaAggiornare","eseguiEliminaDelega","oggettoOld","indirizzoContribuente","ricalcolaTotaleDelega","resTributi","puliziaDatiLocali","IsDichiaraDaNonPresentareAttivo","IsDichiaraDaPresentareAttivo","IsDichiaraCompletaAttivo","IsDichiaraApertaAttivo","IsDichiaraPagataAttivo","ottieniEtichetteDelega","ottieniInfoModalitaPresentazione","ottieniSezioneSpecifica","chiusuraModaleModificaUtilizzoTributo","chiusuraModaleCoobbligato","chiusuraModaleVersamento","chiusuraModaleAnagrafica","chiusuraModaleModificaIndirizzo","getDatoFromDelega","delega","Contribuente","Nominativo","Deleghe","IdDelegaOrigine","DataScadenzaVersamento","DataPagamento","ModelloDelega","TipoDelegaDescrizione","LinkDownloadPdf","LinkDownloadEntratel","LinkDettaglio","componiRichieste","deleghe","inserisciDatiDaSelezione","selezione","IdOrganizzazione","Richiedente","NotificheAbilitate","Richieste","InformazioniAggiuntive","TipoApplicativo","chiusuraModalePresentazione","proseguiInCbi","successoPagoF24","chiusuraModaleDichiaraPagata","ottieniIntermediario","impostaPresentataCbi","oggettoPresentazione","EsitoInvioF24CBI","handlePostMessageFintech","ESITO_INVIO_CGNPOS","pos","IdCodiceAdECoobbligato","postRimuoviUtilizzoCredito","DettaglioDelegaFromScadenziarioRoute","getCercaContribuenti","getOttieniContribuentePersonaFisica","getOttieniContribuentePersonaGiuridica","postCreaContribuentePersonaFisica","postCreaContribuentePersonaGiuridica","postModificaCodiceSIA","getOttieniDatiEsoneroISA","getOttieniDatiDichiarativi","annoDichiarativo","SezioneDatiAnagraficiPersonaFisica","ModaleCreazioneContribuente","fromHome","showPanelCompletaDatiResidenza","setShowPanelCompletaDatiResidenza","creaContribuente","aggiungiSoloResidenza","oggettoIndirizzo","IdAnagraficaRappresentante","oggettoModificaIndirizzo","SezioneDatiAnagraficiPersonaGiuridica","highlightedText","titleComp","clazz","descriptionComp","InputStates","InputStatesList","SelectStates","loadingPage","getHelperTextClassname","componentHeight","FormFieldFrame","titleIcon","stateMessage","helperText","rootProps","badgeState","createBadgeStatus","legendComp","existAction","RANGE_SEP","InputFormats","capitalize","lowercase","uppercase","currencyRange","dateRange","time","bool","DefaultInputFormatObjects","normalizeText","InputFormatObjects","mapTextTransorm","capitalizeString","formatNumber","formatNumberRange","formatCurrencyRange","parseCurrency","parseCurrencyRange","normalizeTextRagne","dateFrom","dateTo","formatDateRange","spearator","dataFrom","dataTo","parseDateRange","parseMonth","parseMonthToDate","minute","parseTime","getInputFormat","getFormFieldClassName","getFormFieldClassNameBase","getInputClassName","getBaseInputClassName","inputFormat","TextField","inputProps","handleKeyDown","compRestrictions","isNumberFormat","numberRestriction","isKeyPressed","useRestrictions","stringValue","targetInfo","handleBeforeInput","requestAnimationFrame","updatedSelectionEnd","currentRef","Formats","States","Restrictions","getItemId","itemKeyProperty","List","onUpdateItem","onRemoveItem","renderItem","onShowLastItem","currentItem","itemsObserverRef","itemsPositionRef","IntersectionObserver","lastId","entries","isIntersecting","intersectionRatio","getElementById","elementId","scrollIntoView","behavior","useKeepElementVisible","isDisabled","enableUpdate","KeyboardEventDisparcher","onUp","onDown","SelectField","listClassName","searchValue","onSearchValueChange","onAddItem","listRight","listTop","showPopup","setShowPopup","containerRef","currentListItem","setCurrentListItem","handleItemSelected","useCurrentListItem","handleInputChange","renderListItem","hidePopup","getSearchValue","textFieldState","ExpandLessIcon","ExpandMoreIcon","NO_ITEMS","moreItems","keepValueOnFormFieldRemoved","fieldComponentRefs","changeValueCallback","fieldName","reference","initializeValue","onChangeValue","validation","registerComponent","componentRef","unregisterComponent","form","EmptyState","showState","validationRules","componentState","setComponentState","alarms","getInputStateByValidations","ChangeValueListener","isDifferentByLastNotification","newValidation","initialize","Combobox","onLoadItems","formFieldName","getValueByItem","getItemByValue","getSearchValueByItem","debounceSearchTextDelay","pageSize","selectRef","reloadItems","handleSearch","stateItems","messageItems","loadMoreItems","debounceDelay","itemsLoadingState","setItemsLoadingState","lastLoading","paging","setPaging","page","searchText","oldCurrentPage","lastPageSize","loadItems","lastPage","lastSearchTerm","isFirstPage","itemsResponse","Items","Count","useLoadItemsFunction","useComboboxItems","setFormValue","setSearchValue","redefInputProps","dirtyValueRef","itemSelectedRef","resetSelectFirstItemPendingRequests","selectFirstItemRef","selectFirstItem","resetPendingRequests","useSelectFirstItemOnBlur","handleSelected","setValue","internalValue","setInternalValue","changeValueListener","showValidation","formComponentRef","onFormChangeValue","useControlledByValue","searchValueChanged","Validations","CercaConVaiAllaLista","autocompleteRef","contribuentiStudio","setContribuentiStudio","setCreaContribuente","tipologiaAnagrafica","creazioneInCorso","setCreazioneInCorso","estp","alert","gotoTibutiSoggetto","aperturaModaleCreazioneAnagrafica","chiusuraModaleCreazioneContribuente","filterValue","clipPath","fontWeight","strokeLinecap","ry","mixBlendMode","isolation","ListaAnniIntelligente","cambioAnnualita","annoSelezionato","elementiVisualizzati","setElementiVisualizzati","fading","setFading","scorriPremutoUp","setScorriPremutoUp","scorriPremutoDown","setScorriPremutoDown","controllerSliderAnni","elem","SvegliaIcon","TourScadenzario","chiudiTour","BlocchettoBottomScadenzario","riepilogoScadenzario","mostraTour","setMostraTour","ProssimaScadenza","TributiDaRavvedere","NumeroDelegheNonPresentate","BlocchettoBottomPresentazione","riepilogoDeleghePresentateCartaceamente","riepilogoDeleghePresentateTelematicamente","riepilogoDeleghePresentateCbi","riepilogoDeleghePresentatePago","riepilogoDeleghePresentateFileTelematico","riepilogoDeleghePresentateCgnPos","OpenInNewIcon","SignorinaClessidra","BlocchettoBottomScartate","riepilogoDelegheScartateTelematicamente","riepilogoDelegheScartateCbi","riepilogoDelegheScartatePago","riepilogoDelegheScartateCgnPos","SignorinaFelice","SituazioneTributiDeleghe","setAnnualita","annualitaSelezionato","setAnnualitaSelezionato","setRiepilogoScadenzario","riepilogoDeleghePresentate","setRiepilogoDeleghePresentate","setRiepilogoDeleghePresentateCartaceamente","setRiepilogoDeleghePresentateTelematicamente","setRiepilogoDeleghePresentateCbi","setRiepilogoDeleghePresentatePago","setRiepilogoDeleghePresentateFileTelematico","setRiepilogoDeleghePresentateCgnPos","riepilogoDelegheScartate","setRiepilogoDelegheScartate","setRiepilogoDelegheScartateTelematicamente","setRiepilogoDelegheScartateCbi","setRiepilogoDelegheScartatePago","setRiepilogoDelegheScartateCgnPos","questAnno","getOttieniRiepilogoScadenzario","getOttieniRiepilogoDeleghePresentate","getOttieniRiepilogoDelegheScartate","cartacee","TotaleDeleghePerModalitaPresentazione","oggetto","Totale","telematicamente","pago","fileContribuente","fileIntermediario","TotaleDelegheScartatePerModalitaPresentazione","telematico","OminoDioBono","TotaleScadenze","tabSelected","TotaleDelegheInPresentazione","TotaleDelegheScartate","SignorinaCheSpostaF24","getCheckboxClassName","switchMode","CheckboxField","ModaleSceltaStampaConQr","valoreQr","setValoreQr","cambiato","setCambiato","getOttieniSceltaQrCode","salvaOpzioneQr","permetteQrCode","ServiziDiPresentazione","showModaleSceltaStampaConQr","setShowModaleSceltaStampaConQr","fromPluginWithNoSidebar","sidebarSelected","ToolbarSpecifica","paddingLeft","paddingTop","HomeRoute","getStartEndIndexes","currentPage","numberOfItems","endIndex","startIndex","getNumberOfPages","changeCurrentPage","newCurrentPage","setCurrentPage","numberOfPages","checkCurrentPage","Pagination","initPageSize","initCurrentPage","pageSizeOptions","setPageSize","onPerviousPage","onNextPage","onFirstPage","onLastPage","isLastPage","myChangeCurrentPage","changePageSize","ps","goToFirstPage","currentPageInfo","sortInfo","setSortInfo","filters","setFilters","createColumnProps","tableChildren","columnGroupChildren","createODataTableColumns","genera","skip","sortProperty","sortOrder","urlFinale","ODataV2","getUrl","u","generaUrl","cerca","QueryOptions","EQUAL","NOT_EQUAL","GREATER_THAN","GREATER_THAN_EQUAL","LESS_THAN","LESS_THAN_EQUAL","SUBSTRING","ENDS_WITH","STARTS_WITH","RANGE","STRING_EQUAL","STRING_NOT_EQUAL","SUBPROPERTY_EQUAL","SUBPROPERTY_NOT_EQUAL","SUBPROPERTY_SUBSTRING","SUBPROPERTY_ENDS_WITH","SUBPROPERTY_STARTS_WITH","DATE_EQUAL","DAY_EQUAL","DATE_RANGE","DATE_GREATER_THAN","DATE_GREATER_THAN_EQUAL","DATE_LESS_THAN","DATE_LESS_THAN_EQUAL","CONTAINS","SUBPROPERTY_CONTAINS","CUSTOM_FILTER","Tag","SelectedFilters","onRemove","filterDescription","timestamp","da","propertyName","displayValue","getFilterDescription","AdvancedFilters","createFilterContext","propertiesMetaInfo","removeFilter","addFilter","replaceAll","propFilters","some","addFilters","getFilter","removeAll","setInfo","getInfo","useFilterContext","InputFilter","ExpandedFilters","DatePickerFilter","dateInit","DateRangeFilter","fromState","setFromState","toState","setToState","inizio","fine","handleFromChange","handleToChange","InputRangeFilter","SelectFilter","AutocompleteFilter","filterProperty","useSetFilterInfo","group","ALL_VALUE","createOnChangeRadio","RadiosFilter","direction","groupClassname","radioDescr","createOnChangeCheck","allValues","lastSelectedValue","lastDeselectedValue","itemDesc","CheckboxesFilter","filterValues","itemDescr","Filter","advancedFiltersLabels","showAdvancedFilters","initShowAdvancedFilters","changeShowAdvancedFilters","states","setIndex","oldIndex","expandedFilters","advancedFilters","getComponents","selectedFilterState","propertiesMetainfo","setPropertiesMetainfo","useSelectedFitlersState","FilterIcon","InputRange","Autocomplete","Radios","Checkboxes","EMPTY_RES","ODataServiceStrategy","opt","first","second","toStringValue","safeUrlString","formatDateTime","customFilter","queryServiceStrategy","setPartialState","newPartialState","storedData","initialFilters","resetPagination","onPageLoaded","odata","beforeLoading","loadFailed","loadSuccessful","setItems","urlFilters","useODataDataState","setPagination","clearFilters","pagination","sortiInfoParm","filtersParam","paginationParam","useODataLoaderState","filtersState","omit","getInitialFilter","loadData","customFilters","filtriProp","rv","newRv","z","resolveFilter","getUrlFilters","dataUrl","results","precUrlRef","useODataLoader","ODataTable","afterFilterChildren","rowRender","enableSelectAll","noDataFoundMessage","storeRef","useStoreMemo","paginationRef","tableRef","oDataTableRef","refreshTable","useODataTableImperativeHandle","filterContent","tableHead","useTableChildren","noDataFoundMessageNode","useNoDataFoundMessageNode","handleSelectionchange","deselected","RigaContribuente","additionalRowData","codiceUfficioOperatoreParams","host","TabellaContribuenti","studioOperatore","tabellaRef","filtroText","onRowsSelected","pageItems","totalCount","currentFilter","refreshTabella","FiltroTesto","updateFiltroText","filtroTextDefault","setValidare","setText","noMinimaLength","setFilterText","resetFilterText","onSearchKeyDown","testoNuovo","tabellaContribuentiRef","ListaContribuentiRoute","FiltroBackoffice","updateCodiceUfficioOperatore","codiceUfficioAssociato","setCodiceUfficio","setFilterCodiceUfficio","codiceUfficioZeroFilled","onCodiceUfficioKeyDown","getOttieniStudio","ListaContribuentiOperatoreBackofficeRoute","Step1Scadenza","setDataScadenzaVersamento","onChangeDataScadenzaVersamento","CalendarioIcon","Step2Elaborazione","listaDeleghe","completato","showTempiLunghi","processoConErrori","delegaCreata","linkDelega","MotivazioneFallimento","ACTION_CREAZIONE_DELEGHE_SET","setCreazioneDelegheAction","creazioneDeleghe","setShowTempiLunghi","loadingApi","setLoadingApi","creaDelega","lista","settaDeleghe","risposta","arrayRisposta","postRateizzaDebito","postResettaScadenzaDebito","postEliminaRateizzazioneDebito","postAvviaCompensazioneVerticale","postAvviaCompensazioneOrizzontale","getOttieniInformazioniPerCompensazione","getOttieniAzioniPossibiliScadenza","getOttieniDebitoConNuovaScadenza","idDebitoOriginale","getOttieniDebitiDaRateizzazione","getOttieniInformazioniPerCompensazioneMassiva","idDebiti","V2TableExpandedCell","contentA","bottomA","rightA","contentB","bottomB","rightB","classNameAggiuntivo","mainRef","parentHeight","setParentHeight","parentElement","minHeight","V2TableMinimizeButton","MinimizeIcon","dettaglio","periodoRiferimento","IsOriginale","numeroColonna","TipoTributo","MatricolaOAltriCodici","Codeline","debitiPerScadenza","RitornaColonneSezioneElide","RigaDebitiSoggettoExpanded","rowData","DescrizioneTributo","DescrizioneSezione","NuovaGestioneIVA","IsRateizzatoOppureGestitaScadenza","NumeroRate","IsProrogato","IsMaggiorato","IsPadre","ProvenienzaNew","ProvenienzaOld","NaturaDebito","NaturaDebitoDescrizione","ChiusuraForzata","Provenienza_OLD","HaUtilizzi","isModificabile","setModaleGestisciScadenza","setModificaTributo","cercaNelleScadenze","apriEliminaRateizzazione","apriRipristinaScadenza","listaRateizzazione","listaProrogatiMaggiorati","utilizzi","ravvedimenti","scadenzeSpostate","apriUtilizzo","eseguiChiusuraForzata","annullaChiusuraForzata","eliminaTributo","rimuoviCompensazioneManuale","recuperaPossibilitaOperazioni","ravvedimento","DataRavvedimento","scadenza","rata","ImportoRata","ImportoInteressi","figlio","utilizzo","IsManuale","CompensazioneManuale","ImportoCompOrizzontale","ImportoCompVerticale","ImportoUtilizzo","LockIcon","RestoreIcon","Sezione","soloCompensazione","gestisciScadenza","IsIva","BuildIcon","LockOpenIcon","ScadenzaAnnoSuccessivo","ImportoResiduoRate","IdScadenzaRateizzazione","Annualita","HaPartitaIVA","Ordinario","Provenienza","ProvenienzaServizio","ProvenienzaAnno","IsRavveduto","IsSocietaDiCapitali180GG","IsFiglio","NoButtonExpandRow","espandibile","expandedState","previousExpandedState","getOttieniRavvedimenti","getOttieniScadenzeSpostate","postEliminaSpostaScadenza","RigaCreditiSoggettoExpanded","dettaglioTributo","DataPresentazioneDichiarazione","EsoneroISA","CodiceAttoAde","CompensatoDaEsportazione","ImportIcon","setSuccessoGestione","setShowOperazioneAsincrona","RigaTributiSoggetto","IsScadenzaSpostata","setShowModaleCompensazioneManuale","ripristinaScadenza","setRipristinaScadenza","eliminaRateizzazione","setEliminaRateizzazione","setListaRateizzazione","setListaProrogatiMaggiorati","setUtilizzi","setDettaglioTributo","setRavvedimenti","setScadenzeSpostate","apiChiamate","setApiChiamate","setIsModificabile","apriRavvedimenti","apriScadenzeSpostate","apriUtilizzi","apriDettaglioTributo","ottieniInformazioniScadenza","RipristinaScadenza","EliminaRateizzazione","IdDebitoRateizzato","idCompensazioneManuale","rowProps","listaAzioni","recuperaRigheDettaglioRate","resRisultato","recuperaFigliProrogatiMaggiorati","IsModificabile","onRenderRigaEspansa","credito","BalanceIcon","apriModificaTributo","SceltaGestione","isCompensabileVerticalmente","isCompensabileOrizzontalmente","setSceltaGestione","isGestisciScadenzaAttivo","creditiPerVerticale","creditiPerOrizzontale","gestionePossibile","intermediari","showFeedbackNoIntermediari","setShowFeedbackNoIntermediari","BalanceDownIcon","BalanceDownGreyIcon","BalanceRightIcon","BalanceRightGreyIcon","DateRangeIcon","GestisciScadenzaDebitoIvaFields","isScadenzaIva","azioniPossibili","scadenzeIva","pianoRateizzazione","pianoRateizzazioneNonPossibile","currentState","loadingPianoRateizzazione","scad","rateizza","NumeroMinimoRate","NumeroMassimoRate","getRate","AnteprimaRateizzazione","CreditiCompatibiliCompensazione","listaCrediti","verticale","orizzontale","ModaleGestisciScadenzaDebitoIva","defaultStepGestisci","setIsCompensabileVerticalmente","setIsCompensabileOrizzontalmente","successCompensazione","setSuccessCompensazione","loadingInfoCompensazione","setLoadingInfoCompensazione","isDebitoCompensatoInteramente","setIsDebitoCompensatoInteramente","setPianoRateizzazione","setPianoRateizzazioneNonPossibile","setScadenzeIva","successOperazione","setSuccessOperazione","nuovoTributo","setNuovoTributo","sceltaGestione","setLoadingPianoRateizzazione","setCreditiPerOrizzontale","setCreditiPerVerticale","creditiDisponibili","setCreditiDisponibili","setGestionePossibile","idScadenzaRateizzazione","aggiornaInfoPerCompensazione","IsCompensabileOrizzontale","CreditiPerOrizzontale","IsCompensabileVerticale","CreditiPerVerticale","Crediti","numeroRate","elementoTributo","elementoNuovoTributo","ModaleCompensazioneManuale","TipoCompensazione","setCompletato","aggiungiNotaFacoltativa","setAggiungiNotaFacoltativa","TipoAzienda","ConSediSecondarie","UnitaLocali","elementoCredito","avviaCompensazioneManuale","ImportoCompensazione","ImportoCompensato","ImportoCompensazioneVerticale","DataCompensazione","GestisciScadenzaFields","infoPanel","azione","Visibile","Chiave","Disabilitato","ModaleGestisciScadenzaDebito","setAzioniPossibili","setInfoPanel","proroga","prorogaSenzaInteressi","maggiora","maggioraDl104","societaDiCapitali","dpcm","getOttieniInfoPanel","TabellaTributiSogg","mostraAperti","checkedTipologiCrediti","checkedTipologiDebiti","modaleGestisciScadenza","chiamataContatori","showModaleCompensazioneManuale","mostraCrediti","mostraDebiti","getOttieniTributiDaGestireUrl","rowsObjectSelected","rowsTributi","updateOptimisticRows","operazioneCompletata","BottoniGestioneSingola","tributoSelezionato","setModaleCreazioneDelegheDaTributo","recuperaInfoPerGestione","IdTributi","tributi","BottoniGestioneMassiva","setModaleGestisciMassivamenteScadenza","tributiSelezionati","setModaleCreazioneDelegheDaTributi","getOttieniMaggiorazioneCameraCommercio","idTabellaT2CameraCommercio","postEliminaTributiDirittoCamerale","elaboraValoreAutocompleteUnitaLocali","aggiungiAltraUnitaLocale","rimuoviUnitaLocale","aziendaConSedeLegaleEstero","unitaSecondaria","AntreprimaCalcolo","anteprimaDirittoCamerale","importoDaVersare","AnnoDirittoCamerale","ModaleCalcoloTributoDirittoCamerale","idAnagraficaSogg","setAnteprimaDirittoCamerale","ImportoBase","testoCrea","CameraCommercio","NumeroUnita","RiduzioneDaNormativa","IdCameraCommercio","resMaggiorazione","Maggiorazione","recuperaImportoBase","formDataPrecedente","tipoContribuente","fatturatoIrap","FatturatoIrap","newFormData","recuperaSedeLegale","idAnagraficaContribuente","idTabellaT2","IdProvinciaSedeLegale","CodiceAgenziaEntrateProvinciaSedeLegale","CodiceAgenziaEntrate","ProvinciaSedeLegale","CodiceAgenziaEntrateCameraCommercio","creaDirittoCamerale","TipoContribuente","idDirittoCamerale","resOttieni","onPrev","unitaLocali","EuroSymbolIcon","idProvinciaSedeLegale","nuoveUnitaLocali","unitaLocaleConCameraDiCommercioDaCambiare","Contitolari","RadioItem","validationMessage","groupValue","tooltipClassname","radioItemClassname","MessageIcon","RadioGroup","radioGroupClassname","AnteprimaRateInps","listaRate","tributoGestito","CausaleContributo","Rata","ModaleCalcoloRateInps","codiceFiscaleSoggetto","causaliContributo","setCausaliContributo","listaRateInps","setListaRateInps","precompilaMatricolaConSede","setPrecompilaMatricolaConSede","showPanelNonGestitoMenoDiUnAnno","setShowPanelNonGestitoMenoDiUnAnno","NoPrimaRata","idSede","IdCodiceSede","resSede","creaRateInps","PrimaRataGiaCreata","MeseDa","MeseA","CodiceSedeAgenziaEntrate","TipoLavoratore","TipoLavoratoreLaa","TipoContributo","indietroAnteprima","listaComandi","Debiti","$values","causale","ElencoAnni","annualitaDisponibili","cambioRadioAnnoSelezionato","espanso","setEspanso","CreditiAperti","DebitiAperti","TabListaTributi","cambioStatoSelezionato","contatoriCrediti","contatoriDebiti","successoGestioneProp","setSuccessoGestioneProp","inCorsoGestioneMassiva","showOperazioneAsincrona","setModaleGestisciScadenzaInTabella","modaleGestisciScadenzaInTabella","refreshAnniTabella","rowsTributiSelected","successoGestione","setCheckedTipologiCrediti","setCheckedTipologiDebiti","showCalcoloTributoDirittoCamerale","setShowCalcoloTributoDirittoCamerale","showCalcoloRateInps","setShowCalcoloRateInps","cambioTipologiaCrediti","cambioTipologiaDebiti","chiusuraModaleCalcoloTributoDirittoCamerale","annoDirittoCamerale","toLocaleDateString","chiusuraModaleCalcoloRateInps","ultimoGenerato","rateInps","TabellaTributiSoggetto","RigaDelegheCompleteSoggetto","IsDelegaConCompensazioni","ImportoDebito","ImportoCredito","setDatiModalePresentazione","windowWidth","gotoDelegaSoggetto","NoteDoneIcon","ibanAssociatoAllaDelega","tipoDelegaDescrizione","saldo","RigaDelegheCompleteSoggettoSmall","TabellaDelegheCompleteSoggetto","setContatori","numeroRighe","setNumeroRighe","contatoriTipoDelega","setContatoriTipoDelega","searchType","ottieniDelegheUrlComplete","rowsDeleghe","QuotaParteDelegheOrdinarie","QuotaParteDelegheAccise","QuotaParteDelegheElide","RigaDelegheInLavorazioneSoggetto","apriEliminaDelega","RigaDelegheInLavorazioneSoggettoSmall","TabellaDelegheInLavorazioneSoggetto","contatoriCheckbox","setContatoriCheckbox","filterState","setFilterState","ottieniDelegheUrlInLavorazione","contatoriInLavorazione","aperte","TotaleDeleghe","QuotaParteDelegheErrate","errate","RigaExpanded","Coobligato","ExternalIcon","RigaDeleghePresentateSoggetto","IsDichiaraNonPagataAttivo","SoggettoVersanteDescrizione","StatoDescrizione","ModalitaPresentazioneDescrizione","dichiaraCompleta","dichiaraNonPagata","rischiDiPagareDueVolte","showWarningSegnaDaNonPresentare","setShowWarningSegnaDaNonPresentare","modalitaPresentazioneDescrizione","scaricaQuietanza","isPagoF24QrCode","getBadgePagoF24","RigaDeleghePresentateSoggettoSmall","badge2","TabellaDeleghePresentateSoggetto","ottieniDelegheUrlPresentate","contatoriInPresentazione","contatoriInPagate","pagate","TabListaDeleghe","setContatoriDeleghe","showPanelCreazioneDelega","panelCreazioneDelega","StepTelematicoIntermediario","showWarningContoPerMassive","disableSoggettoContribuente","StepTelematicoInvioTelematico","ModalePresentaDelegaMassivamente","dataScadenzaMassimaVersamento","isDelegaSenzaIbanPresente","isTutteDelegaSenzaIbanPresente","isMultiContribuente","showWarningPresentaDelega","setShowWarningPresentaDelega","showWarningFileTelematicoPresentaDelega","setShowWarningFileTelematicoPresentaDelega","idIntermediarioSelezionato","idContoCorrenteIntermediario","IdentificativiDeleghe","inviaFileTelematiciIntermediarioConAdele","SELEZIONE_VIA_TELEMATICA","BottoniPresentazioneSingola","rowsDelegheSelected","BottoniPresentazioneMassiva","setDatiModalePresentazioneMassiva","setShowWarningAperteDeleghe","intermediariStudio","isTutteDelegaScadute","getAddDayISOString","setDatiPerModalePresentazioneMassiva","minimaDataDiScadenza","curr","massimaDataDiScadenza","dataVersamentoMinima","dataVersamentoMassima","setFullYear","invioTelematico","StepInformazioniCompensazione","isCompensabile","StepRisultatoCompensazione","listaCompensazioni","motivazioneFallimento","compensazione","codiceTributo","sezioneTributo","periodo","nuovoResiduo","StepRisultatoGestione","listaGestioniScadenza","naturaDebitoDescrizione","ModaleGestisciScadenzaMassivamente","annualitaSelezionata","setListaCompensazioni","setProcessoConErrori","informazioniPerCompensazione","setInformazioniPerCompenszione","massivaInCorso","setMassivaInCorso","listaGestione","settaListaGestioneScadenza","Successo","nuoviTributi","NumeroTributo","TotaleTributi","annoDataScadenza","getOttieniPianoRateizzazioneUnicoMassiva","getOttieniAzioniPossibiliScadenzaMassiva","IsCompensabileOrizzontalmente","postAvviaCompensazioneVerticaleMassiva","postAvviaCompensazioneOrizzontaleMassiva","postRateizzaMassivamente","TableDetail","withSidebar","rowContent","detailContent","noDataMessage","noRowsMessage","onBeforeRenderDetail","defaultIdx","extraContent","detailFooter","setSelectedIdx","idxEvidenziato","lastDefault","setLastDefault","selectedData","checkedAll","setCheckedAll","columnRowRef","rowRef","gotoIndex","checkAll","checkItem","selectRow","refToScroll","scrollTo","RigaTributiPerScadenzaExpanded","DescrizioneRata","aperturaModaleSpostaScadenza","resetListaScadenze","RigaTributiPerScadenza","ImportoResiduoNuovaScadenza","IsRateizzato","IsRavvedimentoGeometri","PercentualeSanzione","SanzioneModificabile","IdPercentuale","TabellaTributiPerScadenza","isPanelPresente","setIdDebitiSelezionati","debitiSelezionati","setDebitiSelezionati","urlOttieniTributiDaGestirePerScadenza","ModaleRavvedimento","dataRavvedimento","setDataRavvedimento","successoOperazione","setSuccessoOperazione","listaDebitiDaRavvedere","setListaDebitiDaRavvedere","percentualiSanzione","setPercentualiSanzione","setSelezionati","validaForm","setValidaForm","avvertiInfedeleEntro90Giorni","setAvvertiInfedeleEntro90Giorni","rowsSelected","IsRavvedibile","onChangeDataRavvedimento","calcolaIlRavvedimento","debitiSelezionatiDaAvviareRavvedimento","debito","ImportoDaRavvedere","PercentualeSanzioneManuale","IdPercentualeSanzioneRavvedimento","creaInteressiSanzioniInferioriAlMinimo","CreaInteressiSanzioniInferioriAlMinimo","Ravvedimenti","getOttieniDebitiDaRavvedere","getOttieniPercentualiSanzioneRavvedimento","ImportoRavvedibile","tabellaTributiRavvedibili","ImportoInLavorazione","ImportoResiduoDebito","MotivazioneNonRavvedibilita","getOptionsPercentualiSanzione","isRavvedimentoGeometri","tipoRavvedimento","listaPercentualiInBaseTipoRavvedimento","DichiarazioniInfedeliEntro90gg","DichiarazioniInfedeliOltre90gg","OmessiVersamenti","PercentualiSanzioneGeometri","percent","Percentuale","PercentualiSanzione","onChangeTipoRavvedimento","newSanzioneFormData","percentualeDaSelezionare","tabellaTributiDaRavvedere","formDataObject","PercentIcon","ReceiptIcon","SpostaScadenzaFields","ModaleSpostaScadenza","ImportoDaSpostare","Data","NuovaScadenza","ScadenzeSpostate","dataSpostataScadenza","Step1Compensazione","setCreditiDaUtilizzare","creditiSelezionati","setCreditiSelezionati","getInfoCompensazione","NessunDebitoCompensabile","ModaleCreazioneDeleghePerTributi","includiFigli","idCreditiDaUtilizzare","setIdCreditiDaUtilizzare","creaDeleghe","IdDebiti","IdCrediti","IncludiFigli","nuovaDelega","gotoListDeleghe","idCrediti","ListaScadenze","ImportoResiduoDebiti","ImportoDebiti","TabTributiPerScadenza","dataDegafaultProp","resetAnni","listScadenzeTributi","setListScadenzeTributi","almenoUnoDebitiScaduti","setAlmenoUnoDebitiScaduti","showModaleRavvedimento","setShowModaleRavvedimento","showModaleSpostaScadenza","setShowModaleSpostaScadenza","idxDiAvvenutaGestione","setIdxDiAvvenutaGestione","dataDaCercare","setDataDaCercare","selectedIdx","prossimaScadenzaIdx","setProssimaScadenzaIdx","setCreaDelega","setShowPanelCreazioneDelega","idxFound","Selezionata","chiusuraModaleRavvedimento","chiusuraModaleSpostaScadenza","datiPerPanel","chiusuraModaleCreazioneDelega","cambioAnno","getOttieniScadenzeContribuente","HaDebitiScaduti","scaricaRiepilogoScadenze","scadenzaSelezionata","mostraChiusi","ListaScadenzeComponent","DettaglioScadenzaComponent","GavelIcon","PlusIcon","idDebitiSelezionati","showIntermediariInTabsMenu","cambiaTab","vaiIntermediariNuovatab","TocIcon","InsertDriveIcon","PersonIcon","RiepilogoContribuente","codFisc","withNoSidebar","scadenzaTributiImportatiDaServzioEsterno","contatoriDeleghe","setPanelCreazioneDelega","datiModalePresentazione","datiModalePresentazioneMassiva","setContatoriInLavorazione","contatoriComplete","setContatoriComplete","contatoriPresentate","setContatoriPresentate","setAnnualitaDisponibili","annualitaDisponibiliPerScadenza","setAnnualitaDisponibiliPerScadenza","setMostraAperti","setContatoriCrediti","setContatoriDebiti","modaleGestisciMassivamenteScadenza","modaleCreazioneDelegheDaTributi","modaleCreazioneDelegheDaTributo","scadenzaVersamento","showSegnalazioni","setShowSegnalazioni","showWarningCompletaDeleghe","setShowWarningCompletaDeleghe","showWarningAperteDeleghe","tabellaTributiRef","tabellaTributiPerScadenzRef","tabellaDelegheRef","dataScadenzaStringa","NumeroDelegheNonCreate","NumeroDelegheCreate","IdFileTelematicoIntermediario","mostraApertiSelezionato","getOttieniContatoriTributiDaGestire","resContatori","getOttieniAnnualitaConTributi","getOttieniAnnualitaConTributiPerScadenza","dataDaServizioEsterno","aperturaModaleCreazioneTributoConModifica","aperturaModaleCreazioneDelega","annoTributo","chiusuraModaleravvedimentoSpostaScadenza","onTabSelected","dichiaraAperte","dichiaraChiuse","onCloseModalePresentazione","onCloseModalePresentazioneMassiva","Errori","isDirittoCamerale","setDataDegafaultProp","curre","RiepilogoContribuenteFromScadenzarioRoute","RiepilogoContribuenteFromHomeRoute","RigaContribuenteScadenzario","ImportoResiduoCrediti","NumeroDelegheErrate","NumeroFigli","getComponentForDelegheNonPresentate","apriContribuente","ArrowForwardIcon","TabellaContribuentiScadenzario","NumeroContribuenti","NumeroDebitiDaVersare","TabScadenzario","annoParam","setAnnoSelezionato","annoDaCambiare","annoCorrente","PaginaScadenzarioRoute","HeaderSezione","classeCssGrid","BottoniDatiAnagrafici","datiAnagraficaEditabili","apriModaleAnagrafica","onClickModifica","Modalizer","modalizerElement","headerFormat","headerRef","getScrollParent","getComputedStyle","parentNode","applyAnimation","animationName","onWheel","toElement","scrollParent","scrollBy","deltaY","relative","normal","FormFooter","onClickSave","onClickCancel","saveDisabled","SaveIcon","DatiAnagraficiPersonaFisicaFields","SezioneIndirizzi","listaIndirizzi","apriModaleIndirizzo","rimuoviRiga","modificaRiga","abilitataModifica","indirizzo","SezioneRecapiti","listaRecapiti","apriModaleRecapito","SezioneContiCorrente","apriModaleContoCorrente","contoCorrentePredefinito","contoCorrente","SezioneCodiceSIA","codiceSia","apriModaleCodiceSia","PROVENIENZA_DATI_CONTRIBUENTE","DICHIARATIVO","SOCIETA_DI_COMODO","NON_DEFINITA","ANNO_DICH","ANNO_PREC_DICH","DUE_ANNI_PREC_DICH","TRE_ANNI_PREC_DICH","SezioneEsoneroISA","listaDatiEsoneroISA","apriModaleDatiEsoneroISA","datiEsoneroISA","IdDatiEsoneroISA","AnnoDichiarativo","DescrizioneTipoEsoneroISA","ScaglioneEsoneroISA","DescrizioneScaglioneEsoneroISA","ModaleRecapito","modificaCodiceSIA","TipoRecapito","ModaleEsoneroISA","scaglioniEsoneroISA","setScaglioniEsoneroISA","TipoEsoneroISA","modificaDatiEsoneroISA","aggiungiDatiEsoneroISA","Item1","Item2","TipoEsonero","Esonerato","modificaRecapito","DatiAnagraficiPersonaGiuridicaFields","SezioneRappresentanti","listaRappresentanti","apriModaleRappresentante","rappresentante","Rappresentante","ValidoDal","ValidoAl","setDatiResidenzaModificati","idAnagraficaRappresentante","setDatiAnagraficiModificati","MODIFICHE_RAPPRESENTANTE","ModaleRappresentante","idAnagraficaProps","datiAnagraficiModificati","datiResidenzaModificati","datiRappresentanteModificati","setDatiRappresentanteModificati","chiamateDiModificaEffettuate","setChiamateDiModificaEffettuate","chiamateDiModificaComplete","setChiamateDiModificaComplete","modificaResidenzaRappresentante","chiamatePrev","chiamata","completata","nuoveSegnalazioni","segnalazioniOld","salvaModificheRappresentante","oggettoModificaAnagrafica","modificaAnagraficaRappresentante","IdRappresentante","modificaRappresentante","aggiungiRappresentante","TipoRappresentante","SezioneDatiDichiarativi","listaDatiDichiarativi","apriModaleDatiDichiarativi","datoDichiarativi","SocietaDiComodo","IdDatiDichiarativo","ModaleDatiDichiarativi","aggiornaDatiDichiarativo","ModaleContoCorrente","modificaContoCorrente","aggiungiContoCorrente","DettaglioContribuente","setDatiAnagraficaEditabili","setListaIndirizzi","setListaDatiEsoneroISA","showModaleAnagrafica","setShowModaleAnagrafica","showModaleIndirizzo","setShowModaleIndirizzo","showModaleRecapito","setShowModaleRecapito","showModaleDatiEsoneroISA","setShowModaleDatiEsoneroISA","showModaleCodiceSIA","setShowModaleCodiceSIA","showModaleContoCorrente","setShowModaleContoCorrente","showModaleRappresentante","setShowModaleRappresentante","showModaleDatiDichiarativi","setShowModaleDatiDichiarativi","setListaRecapiti","setListaRappresentanti","setListaDatiDichiarativi","setOggettoModifica","confirmEliminaIndirizzo","setConfirmEliminaIndirizzo","indirizzoSelezionato","confirmEliminaDatiEsoneroISA","setConfirmEliminaDatiEsoneroISA","datiEsoneroISASelezionato","confirmEliminaRecapito","setConfirmEliminaRecapito","recapitoSelezionato","contoCorrenteSelezionato","confirmEliminaRappresentante","setConfirmEliminaRappresentante","rappresentanteSelezionato","confirmEliminaDatoDichiarativi","setConfirmEliminaDatoDichiarativi","datoDichiarativiSelezionato","confirmEliminaCodiceSia","setConfirmEliminaCodiceSia","segnalazioniFeedbackPanel","setSegnalazioniFeedbackPanel","modificatoCodiceSIA","setModificatoCodiceSIA","widthBreakpoint","classeCssPerSpaziaturaTraSezioni","showEsoneriISA","ottieniAnagrafica","DescrizioneLuogoDiNascita","chiusuraModaleCodiceSIA","chiusuraModaleIndirizzo","chiusuraModaleEsoneroISA","chiusuraModaleRecapito","chiusuraModaleContoCorrente","chiusuraModaleRappresentante","chiusuraModaleDatiDichiarativi","annullaEdit","oggettoModificaCodiceSia","rimuoviCodiceSia","rimuoviIndirizzo","idIndirizzo","rimuoviDatiEsoneroISA","idDatiEsoneroISA","rimuoviRecapito","idRecapito","rimuoviContoCorrente","idContoCorrente","rimuoviRappresentante","idRappresentante","rimuoviDatoDichiarativi","idDatiDichiarativo","mostraModaleRimuoviIndirizzo","mostraModaleRimuoviRecapito","mostraModaleRimuoviDatiEsoneroISA","mostraModaleRimuoviContoCorrente","mostraModaleRimuoviRappresentante","mostraModaleRimuoviDatiDichiarativi","ModaleCodiceSia","PaginaDettaglioContribuente","PaginaDettaglioContribuenteRoute","IsScaduta","InvioConAdele","DenominazioneContribuente","datiAggiuntivi","setDatiAggiuntivi","checkAzioniPossibili","updateContatori","setInitialFilters","contatoriTipoDeleghe","setContatoriTipoDeleghe","showPanelAvviso","setShowPanelAvviso","chiusuraPanelAvviso","PanelAvviso","isRisoluzioneGrande","updateContatoriDeleghe","RigaDebitiDaInserireInDelega","TabellaDebitiDaInserireInDelega","optionsFiltroProvenienza","setOptionsFiltroProvenienza","recuperaOptionFiltroProvenienza","Valore","TabDebitiDaInserireInDelega","setContatoriTributi","idTributi","contribuente","setUsaCrediti","formState","setFormState","voglioCompensare","debiti","idStudioSelezionato","usaCrediti","UsaCrediti","idContribuenti","numeroContribuenti","scelta","DelegheMassive","contatoriTributi","showInvioTelematicoConSuccesso","setShowInvioTelematicoConSuccesso","numeroContribuentiCompletati","numeroDelegheNonCreate","numeroDelegheCreate","aggiornaContatoriDeleghe","aperturaModaleCreazioneDeleghe","PaginaTutteLeDelegheRoute","DettaglioDelegaFromMassiveRoute","RiepilogoContribuenteRoute","DettaglioDelegaRoute","breadcrumbsBase","breadcrumbsTutti","setBreadcrumbs","breadcrumsUniti","Set","intermediariUrl","RigaIntermediario","gotoDettaglioSoggetto","TabellaIntermediari","ACTION_INTERMEDIARI_SET","setIntermediariAction","ModaleCreazioneIntermediario","creaIntermediario","setCreaIntermediario","tabellaIntermediariRef","chiusuraModaleCreazioneIntermediario","ListaIntermediariRoute","ListaIntermediari","ListaIntermediariBackofficeRoute","resolutionMain","PaginaDettaglioIntermediario","setTipoPersona","setCodiceFiscale","denominazione","setDenominazione","delegheAssociate","setDelegheAssociate","getOttieniDelegheAssociateIntermediario","apriDelega","delegaSoggettoFromIntermediarioUrl","PaginaDettaglioIntermediarioRoute","PaginaDettaglio","DettaglioDelegaIntermediarioRoute","guidUtente","soggettoDaPlugin","soloAttivazione","AccettazionePagoF24Route","codiceFiscaleSoggettoDaPlugin","datiAnagraficiContribuente","setDatiAnagraficiContribuente","cognome","nome","esisteOttieniAnagraficaPersonaFisica","tipoPersonaParam","CreazioneContribuenteRoute","CreazioneContribuenteCgnPosRoute","DatiUtenteUfficioPerMailRoute","contribuenteNome","contribuenteCognome","ConfermaEmailPagoF24Route","contribuenteId","dettaglioImposte","setDettaglioImposte","tributiImportati","setTributiImportati","stoCreandoLeDeleghe","setStoCreandoLeDeleghe","delegheCompletate","setDelegheCompletate","deleghePresentate","setDeleghePresentate","primaImportazione","setPrimaImportazione","importaTributi","datiServizioEsterno","oggettoTributiDaImportare","EstremiProvenienzaTributi","IdDichiarazione","identificativoProvenienzaTributi","ChiaveProvenienzaTributi","Ordinaria","DebitiTributiLocali","imposte","ImportoDaVersare","Tributo","ChiaveTributo","IdentificativoTributoServizioF24","CodiceComuneOStatoEstero","tipoVersamento","ImportoDetrazioni","Maggiora","impostaTributi","creDeleghe","REGISTRATO_UTILIZZO_IN_SERVIZIO","TRIBUTI_DA_IMPORTARE","chiudiProcessoPagoF24","ImportaTributiRoute","WizardNavigation","contrattoNexiFileState","documentoRiconoscimentoFileState","codiceFiscaleFileState","documentoAnagraficaAgenziaDelleEntrateFileState","setResultEmail","indirizzoEmail","isTitolareEffettivoCoincideLegaleRappresentante","titolariEffettiviFileState","contrattoNexiLocal","contrattoNexiUploaded","contrattoNexiStatus","documentoRiconoscimentoLocal","documentoRiconoscimentoUploaded","documentoRiconoscimentoStatus","codiceFiscaleLocal","codiceFiscaleUploaded","codiceFiscaleStatus","documentoAnagraficaAgenziaDelleEntrateLocal","documentoAnagraficaAgenziaDelleEntrateUploaded","documentoAnagraficaAgenziaDelleEntrateStatus","caricaContratto","titolariEffettiviLocalFiles","files","file","local","cmd","email","FormData","append","postRichiediCgnPos","contrattoNexi","documentoRiconoscimento","documentoAnagraficaAgenziaDelleEntrate","uploaded","detectedProblems","mancanoAllegatiTitolareEffettivo","posizione","idAzienda","onChangeValueDef","newText","changeByText","initValue","useControlledTextByValue","confirmValue","handleBlur","useInputConfirmValue","valueToString","stringToValue","InputMail","useFileUpload","accept","onFilesSelected","multiple","uploadFiles","inputComponent","getFileType","getSingleFileUploadEmptyClassName","dragOver","SingleFileUploadEmpty","fireFileSelected","acceptArray","mimeType","isAcceptable","dragAndDropEventCallbacks","fireFilesSelected","setDragOver","onDrop","dataTransfer","onDragEnter","onDragOver","dropEffect","onDragLeave","useFileUploadDragAndDrop","handleOnClick","BackupIcon","InputPropsDenyDrop","SingleFileUpload","UploadDocumento","titleFileUpload","haScaricatoContratto","setHaScaricatoContratto","fileState","setFileState","downloadError","setDownloadError","download","ErrorIcon","fileChanged","InputGroup","Break","AssistenteButton","permalink","inline","margine","noIcon","AssistenteInlineIcon","HelpIcon","Firma","fileCaricato","setFileCaricato","setIndirizzoEmail","setDocumentoAnagraficaAgenziaDelleEntrateFileState","setContrattoNexiFileState","setDocumentoRiconoscimentoFileState","setCodiceFiscaleFileState","setTitolariEffettiviFileState","setIsTitolareEffettivoCoincideLegaleRappresentante","Status","onChangeTitolareEffettivoCoincidenteRappresentateLegale","handleFileChangeCartaIdentita","newLocal","posizioneNellaLista","handleFileChangeTesseraSanitaria","documenti","Local","Uploaded","Wizard","resultEmail","ContrattoPosRoute","qrCodeBase64","setQrCodeBase64","WizardQr","AssociaPosRoute","DatiUtenteUfficioPerMailCgnPosRoute","ImportaTributiCgnPosRoute","getRadioClassName","RadioField","stepWhy","setStepWhy","chiudiModale","attivaPago","gestisciRispostaSondaggio","CodiceSondaggio","DescrizioneSondaggio","CodiceRisposta","DescrizioneRisposta","TipoModelloDichiarativo","PubblicitaPagoF24Route","PubblicitaAttivazionePagoF24","DropdownItem","divider","showInfo","infoContent","infoPosition","cssFloat","SubMenuItem","inverse","classPrefix","classMenu","DropdownComponent","toggleComponent","Dropdown","openDefault","toggleMenu","hasAttribute","SubMenu","NavDropdown","subtitle","MenuUfficiItems","uffici","onUfficioChange","MeetingRoom","MenuUffici","ufficiOrdered","MenuUtente","accountsUrl","myCgnUrl","onLogout","subTitleMenu","denominazioneUtente","urlLogout","gotoProfiloUtente","logOut","PermIdentityIcon","ExportIcon","styleHome","cursor","styleAssistente","ServiziEsterni","cambiaUfficio","portaleUnicoUrl","PortaleUnicoUrl","identityProviderUrl","IdentityProviderUrl","assistenteUrl","AssistenteUrl","gecoUrl","GecoUrl","AnalyticsUrl","domMenuHome","domMenuGeco","domAssistente","progetto","analyticsUrl","societa","principale","analyticsScriptId","analyticsScript","cacheBreakerDataOra","script","insertAnalytics","redirectUrl","setRedirectUrl","datiRedirect","Location","isRoot","eventoCambiaUfficio","IsUtenteAbilitatoAdele","IsUtenteAbilitatoCbi","respIntermediari","mostraTourSesStorage","LogoCgn","utenteInitialState","soggettoInitialState","intermediariInitialState","creaInitialState","datiInitialState","createStore","preloadedState","enhancer","currentReducer","currentListeners","nextListeners","isDispatching","ensureCanMutateNextListeners","proto","getPrototypeOf","isPlainObject","replaceReducer","nextReducer","outerSubscribe","observeState","reducers","reducerKeys","finalReducers","shapeAssertionError","finalReducerKeys","assertReducerShape","hasChanged","previousStateForKey","nextStateForKey","defaultAppParams","initialState","setStoredParams","datiDaServizioEsterno","middlewares","_dispatch","middlewareAPI","chain","middleware","source","getOwnPropertyDescriptors","defineProperties","_objectSpread2","applyMiddleware","gotoApp","resultOk","initResponse","userinfo","UfficioDiDefault","altriParametriInit","sidebarTabIndex","soggettoIdAnagraficaSogg","idAnagraficaUnica","soggettoCodiceFiscale","soggettoNome","soggettoCognome","soggettoTipoPersona","initApp","module","exports","inizializza","Assistente","inizializzaMenu","caricaMenuAssistente","impostaUfficio","impostaServizio","apriPermalink","GeCo","caricaMenuGeCo","inizializzaMenuHome","caricaMenuHome","modificaUfficioCorrenteMenuHome","utils","settle","buildURL","buildFullPath","parseHeaders","isURLSameOrigin","createError","requestData","requestHeaders","isFormData","auth","username","password","unescape","Authorization","btoa","fullPath","baseURL","paramsSerializer","onreadystatechange","responseURL","responseHeaders","getAllResponseHeaders","timeoutErrorMessage","isStandardBrowserEnv","xsrfValue","xsrfCookieName","read","xsrfHeaderName","upload","cancelToken","promise","Axios","mergeConfig","createInstance","defaultConfig","extend","axios","instanceConfig","defaults","Cancel","CancelToken","isCancel","promises","spread","__CANCEL__","executor","resolvePromise","throwIfRequested","InterceptorManager","dispatchRequest","interceptors","interceptor","getUri","use","eject","isAbsoluteURL","combineURLs","requestedURL","enhanceError","transformData","throwIfCancellationRequested","transformRequest","merge","common","adapter","transformResponse","toJSON","lineNumber","columnNumber","config1","config2","valueFromConfig2Keys","mergeDeepPropertiesKeys","defaultToConfig2Keys","directMergeKeys","getMergedValue","mergeDeepProperties","axiosKeys","otherKeys","validateStatus","fns","normalizeHeaderName","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","process","isBuffer","isStream","isFile","isBlob","isArrayBufferView","isURLSearchParams","maxContentLength","maxBodyLength","encode","serializedParams","isDate","hashmarkIndex","relativeURL","expires","domain","secure","cookie","toGMTString","isString","originURL","msie","urlParsingNode","hostname","port","resolveURL","requestURL","parsed","normalizedName","ignoreDuplicateOf","line","isFunction","isView","pipe","URLSearchParams","product","assignValue","stripBOM","hasOwn","argType","inner","default","formatArgs","useColors","namespace","humanize","lastC","env","DEBUG","__nwjs","WebkitAppearance","firebug","exception","table","$1","localstorage","colors","formatters","j","createDebug","prevTime","self","ms","coerce","formatter","selectColor","destroy","instances","delimiter","newDebug","disable","names","toNamespace","skips","len","createEvent","initMouseEvent","global","HTMLAnchorElement","URL","webkitURL","createObjectURL","revokeObjectURL","msSaveOrOpenBlob","autoBom","Blob","innerText","HTMLElement","safari","FileReader","onloadend","readAsDataURL","reactIs","REACT_STATICS","getDefaultProps","getDerivedStateFromError","mixins","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","TYPE_STATICS","getStatics","isMemo","ForwardRef","Memo","getOwnPropertyNames","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","descriptor","argIndex","framesToPop","plural","msAbs","isPlural","isFinite","long","fmtShort","propIsEnumerable","propertyIsEnumerable","test1","test2","test3","letter","shouldUseNative","symbols","toObject","isarray","pathToRegexp","repeat","partial","asterisk","attachKeys","regexpToRegexp","flags","arrayToRegexp","tokensToRegExp","stringToRegexp","compile","tokensToFunction","PATH_REGEXP","tokens","defaultDelimiter","escaped","capture","modifier","prevText","escapeGroup","restrictBacktrack","escapeString","encodeURIComponentPretty","pretty","segment","re","route","endsWithDelimiter","isWindows","platform","util","normalizeArray","allowAboveRoot","trimArray","lastIndex","splitDeviceRe","splitTailRe","win32","win32SplitPath","device","tail","result2","win32StatPath","isUnc","normalizeUNCRoot","resolvedDevice","resolvedTail","resolvedAbsolute","cwd","normalize","trailingSlash","paths","joined","lowerFrom","lowerTo","lowerFromParts","lowerToParts","min","samePartsLength","outputParts","_makeLong","resolvedPath","dirname","root","dir","ext","extname","pathObject","sep","pathString","allParts","splitPathRe","posix","posixSplitPath","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","run","marker","runClearTimeout","array","noop","nextTick","browser","argv","versions","once","removeAllListeners","emit","prependListener","prependOnceListener","binding","chdir","umask","checkPropTypes","typeSpecs","componentName","getStack","resetWarningCache","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","propFullName","secret","shim","ReactPropTypes","symbol","any","arrayOf","getShim","elementType","instanceOf","objectOf","oneOf","oneOfType","shape","aa","q","ba","ca","ea","extractEvents","eventTypes","fa","phasedRegistrationNames","ha","registrationName","ia","ja","ka","onError","la","ma","na","oa","pa","qa","sa","ua","va","wa","currentTarget","ra","xa","ya","za","Aa","_dispatchListeners","_dispatchInstances","isPropagationStopped","isPersistent","release","Ba","Ca","injectEventPluginOrder","injectEventPluginsByName","Da","stateNode","Ea","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","ReactCurrentDispatcher","ReactCurrentBatchConfig","suspense","Fa","for","Ga","Ha","Ia","Ja","Ka","La","Ma","Na","Oa","Pa","Qa","Ra","Sa","Ta","Ua","Wa","$$typeof","_status","_result","Xa","tag","_debugOwner","_debugSource","return","Ya","Za","$a","ab","bb","cb","db","eb","fb","gb","hb","ib","jb","kb","Map","lb","mb","nb","ob","B","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","sanitizeURL","D","sb","tb","ub","vb","qb","rb","pb","removeAttribute","setAttributeNS","wb","nodeName","yb","_valueTracker","stopTracking","xb","zb","Ab","_wrapperState","initialChecked","Bb","initialValue","Cb","Eb","Fb","Gb","ownerDocument","Ib","Hb","Jb","defaultSelected","Kb","Lb","Mb","Nb","textContent","xlinkHref","Ob","Pb","Qb","Rb","Sb","namespaceURI","innerHTML","valueOf","MSApp","execUnsafeLocalFunction","Tb","nodeType","nodeValue","Ub","Vb","animationend","animationiteration","animationstart","transitionend","Wb","Xb","Yb","animation","Zb","$b","ac","bc","dc","ec","alternate","effectTag","fc","memoizedState","dehydrated","gc","ic","sibling","hc","jc","kc","lc","mc","nc","oc","pc","qc","rc","sc","tc","uc","vc","zc","blockedOn","topLevelType","eventSystemFlags","nativeEvent","Ac","pointerId","Bc","Cc","Ec","Fc","unstable_runWithPriority","priority","hydrate","containerInfo","Gc","Hc","Ic","Jc","Kc","unstable_scheduleCallback","unstable_NormalPriority","Lc","Mc","correspondingUseElement","Nc","Oc","dispatchConfig","Pc","_targetInst","Qc","Rc","Sc","Tc","Uc","E","Interface","isDefaultPrevented","returnValue","Wc","eventPool","Xc","destructor","Vc","getPooled","cancelBubble","persist","eventPhase","cancelable","isTrusted","Yc","elapsedTime","pseudoElement","Zc","clipboardData","$c","ad","bd","cd","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Apps","Scroll","MozPrintableKey","ed","fd","Alt","Control","Meta","Shift","gd","getModifierState","hd","locale","jd","kd","ld","nd","screenX","screenY","clientX","clientY","buttons","movementX","movementY","od","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","pd","qd","touches","targetTouches","changedTouches","rd","sd","deltaX","wheelDeltaX","wheelDeltaY","wheelDelta","deltaZ","deltaMode","td","ud","vd","xd","yd","zd","Ad","Bd","Cd","Dd","bubbled","captured","eventPriority","Ed","getEventPriority","Fd","unstable_UserBlockingPriority","Gd","Hd","Jd","Kd","targetInst","ancestors","Ld","F","Md","Nd","Od","Pd","Qd","Dc","Rd","Sd","WeakMap","xc","yc","has","Td","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","lineClamp","lineHeight","orphans","tabSize","widows","zoom","fillOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeOpacity","Ud","Vd","Wd","setProperty","Xd","menuitem","area","br","embed","hr","img","keygen","meta","track","wbr","Yd","Zd","is","$d","ae","be","ce","de","nextSibling","ee","compareDocumentPosition","fe","HTMLIFrameElement","ge","contentEditable","he","ie","je","ke","le","me","ne","oe","pe","qe","se","previousSibling","te","ue","ve","we","xe","ye","ze","Ae","Be","Ce","De","Ee","Fe","Ge","He","documentMode","Ie","Je","Ke","Le","beforeInput","compositionEnd","compositionStart","compositionUpdate","Me","Ne","Oe","Pe","Se","Qe","Re","Te","datetime","tel","week","Ue","Ve","change","We","Xe","Ye","Ze","$e","af","bf","detachEvent","df","ef","ff","gf","hf","lf","jf","_isInputEventSupported","kf","mouseEnter","mouseLeave","pointerEnter","pointerLeave","mf","defaultView","parentWindow","of","pf","qf","rf","sf","select","tf","uf","vf","wf","xf","anchorNode","anchorOffset","focusNode","focusOffset","yf","SimpleEventPlugin","EnterLeaveEventPlugin","ChangeEventPlugin","SelectEventPlugin","BeforeInputEventPlugin","Af","Bf","G","I","Cf","J","K","Df","Ef","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","L","Ff","Gf","Hf","If","Jf","__reactInternalMemoizedMergedChildContext","Kf","Lf","Mf","Nf","unstable_cancelCallback","Of","unstable_shouldYield","Pf","unstable_requestPaint","Qf","unstable_now","Rf","unstable_getCurrentPriorityLevel","Sf","unstable_ImmediatePriority","Tf","Uf","Vf","unstable_LowPriority","Wf","unstable_IdlePriority","Xf","Yf","Zf","$f","ag","bg","cg","dg","eg","fg","gg","hg","ig","jg","kg","mg","ng","og","pg","qg","rg","sg","_context","_currentValue","tg","ug","childExpirationTime","vg","firstContext","expirationTime","wg","xg","responders","yg","zg","baseState","firstUpdate","lastUpdate","firstCapturedUpdate","lastCapturedUpdate","firstEffect","lastEffect","firstCapturedEffect","lastCapturedEffect","Ag","Bg","suspenseConfig","nextEffect","Cg","Dg","updateQueue","Eg","Fg","Gg","Hg","Ig","Jg","Kg","Lg","Mg","Ng","refs","Og","Sg","isMounted","_reactInternalFiber","enqueueSetState","Pg","Qg","Rg","enqueueReplaceState","enqueueForceUpdate","Tg","shouldComponentUpdate","isPureReactComponent","Ug","updater","Vg","Wg","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","Xg","Yg","_owner","_stringRef","Zg","$g","ah","bh","ch","implementation","dh","eh","A","H","ta","fh","gh","hh","ih","jh","kh","lh","mh","tagName","nh","oh","ph","M","qh","memoizedProps","revealOrder","rh","responder","sh","N","th","uh","O","vh","wh","xh","yh","zh","Ah","Bh","Ch","Gh","Q","Hh","Ih","Jh","Kh","Lh","Mh","Nh","baseUpdate","Oh","Ph","Qh","lastRenderedReducer","lastRenderedState","eagerReducer","eagerState","Rh","Sh","Th","Uh","Vh","Wh","Xh","Yh","Zh","$h","ai","bi","readContext","useDebugValue","useResponder","useDeferredValue","useTransition","unstable_next","ci","di","ei","fi","gi","hi","pendingProps","ii","ji","ki","li","mi","ReactCurrentOwner","R","ni","oi","pi","qi","ri","si","ti","ui","UNSAFE_componentWillUpdate","componentWillUpdate","vi","wi","pendingContext","Hi","Ii","Ji","Ki","xi","retryTime","yi","fallback","unstable_avoidThisFallback","zi","Ai","isBackwards","rendering","tailExpiration","tailMode","Bi","Ci","Li","Mi","Ni","onclick","Oi","WeakSet","Pi","Si","Ri","Ti","Ui","__reactInternalSnapshotBeforeUpdate","Vi","Wi","Qi","Xi","Yi","Zi","$i","_reactRootContainer","aj","wasMultiple","bj","cj","dj","ej","fj","gj","hj","ij","jj","gk","kj","lj","mj","S","nj","oj","pj","qj","rj","sj","tj","uj","vj","T","U","V","W","X","wj","xj","yj","zj","Aj","Bj","Cj","Y","Dj","Ej","Fj","Gj","Hj","Ij","Jj","timeoutMs","Kj","Lj","Z","Mj","Nj","Oj","lastExpiredTime","Pj","firstPendingTime","lastPingedTime","nextKnownPendingLevel","callbackExpirationTime","callbackPriority","callbackNode","Qj","Rj","Sj","Tj","Uj","Vj","Wj","finishedWork","finishedExpirationTime","lastSuspendedTime","Xj","Yj","busyMinDurationMs","busyDelayMs","Zj","bk","ck","pingCache","dk","ek","fk","createElementNS","createTextNode","ik","firstSuspendedTime","rangeCount","Db","focusedElem","selectionRange","jk","createRange","setStart","removeAllRanges","addRange","setEnd","scrollLeft","Dh","cc","dd","hk","Eh","Fh","xk","Di","Ei","Fi","wd","Gi","kk","lk","mk","hidden","_ctor","Va","nk","_calculateChangedBits","unstable_observedBits","pk","isReactComponent","pendingChildren","qk","rk","sk","tk","uk","wk","wc","_internalRoot","yk","Ak","zk","Bk","vk","unmount","ak","Ck","unstable_renderSubtreeIntoContainer","unmountComponentAtNode","unstable_createPortal","unstable_batchedUpdates","flushSync","Events","findFiberByHostInstance","__REACT_DEVTOOLS_GLOBAL_HOOK__","supportsFiber","inject","onCommitFiberRoot","onCommitFiberUnmount","overrideHookState","overrideProps","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","bundleType","rendererPackageName","Dk","Ek","checkDCE","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Lazy","Portal","Profiler","StrictMode","Suspense","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","__self","__source","keyPrefix","count","escape","toArray","only","createRef","PureComponent","_currentValue2","_threadCount","lazy","createFactory","IsSomeRendererActing","MessageChannel","unstable_forceFrameRate","cancelAnimationFrame","port2","port1","sortIndex","startTime","priorityLevel","unstable_wrapCallback","unstable_continueExecution","unstable_pauseExecution","unstable_getFirstCallbackNode","unstable_Profiling","observable","ctor","superCtor","super_","TempCtor","copy","readUInt8","formatRegExp","objects","inspect","isNull","deprecate","noDeprecation","warned","throwDeprecation","traceDeprecation","trace","debugEnviron","debugs","seen","stylize","stylizeNoColor","depth","isBoolean","showHidden","_extend","customInspect","stylizeWithColor","styleType","styles","recurseTimes","ret","primitive","simple","formatPrimitive","visibleKeys","arrayToHash","isError","formatError","isRegExp","braces","toUTCString","formatProperty","formatArray","cur","reduceToSingleString","desc","ar","objectToString","debuglog","NODE_DEBUG","pid","isNullOrUndefined","isSymbol","isPrimitive","inherits","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","getter","__esModule","definition","chunkId","miniCssF","Function","hmd","needAttach","scripts","charset","onScriptComplete","doneFns","toStringTag","fullhref","existingLinkTags","dataHref","existingStyleTags","findStylesheet","linkTag","errorType","realHref","createStylesheet","miniCss","installedChunks","installedChunkData","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","chunkIds","moreModules","runtime","chunkLoadingGlobal"],"sourceRoot":""}