{"version":3,"file":"browser-bundle.js","mappings":"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","sources":["backoffice://dashboard/./node_modules/object-is/implementation.js?","backoffice://dashboard/./node_modules/axios/lib/core/dispatchRequest.js?","backoffice://dashboard/./node_modules/math-intrinsics/max.js?","backoffice://dashboard/./node_modules/axios/lib/helpers/parseHeaders.js?","backoffice://dashboard/./node_modules/type-to-reducer/lib/index.js?","backoffice://dashboard/./node_modules/react-dom/cjs/react-dom.production.min.js?","backoffice://dashboard/./node_modules/uuid/lib/bytesToUuid.js?","backoffice://dashboard/./node_modules/object-keys/index.js?","backoffice://dashboard/./node_modules/set-function-name/index.js?","backoffice://dashboard/./node_modules/function-bind/index.js?","backoffice://dashboard/./node_modules/is-date-object/index.js?","backoffice://dashboard/./node_modules/is-regex/index.js?","backoffice://dashboard/./node_modules/regexp.prototype.flags/polyfill.js?","backoffice://dashboard/./node_modules/math-intrinsics/min.js?","backoffice://dashboard/./node_modules/axios/lib/core/Axios.js?","backoffice://dashboard/./node_modules/axios/lib/cancel/Cancel.js?","backoffice://dashboard/./node_modules/es-errors/range.js?","backoffice://dashboard/./node_modules/prop-types/lib/ReactPropTypesSecret.js?","backoffice://dashboard/./node_modules/symbol-observable/es/index.js?","backoffice://dashboard/./node_modules/symbol-observable/es/ponyfill.js?","backoffice://dashboard/./node_modules/deep-equal/index.js?","backoffice://dashboard/./node_modules/math-intrinsics/round.js?","backoffice://dashboard/./node_modules/gopd/index.js?","backoffice://dashboard/./node_modules/regexp.prototype.flags/implementation.js?","backoffice://dashboard/./node_modules/es-object-atoms/index.js?","backoffice://dashboard/./node_modules/axios/lib/core/mergeConfig.js?","backoffice://dashboard/./node_modules/classnames/index.js?","backoffice://dashboard/./node_modules/math-intrinsics/isNaN.js?","backoffice://dashboard/./node_modules/uuid/v1.js?","backoffice://dashboard/./node_modules/get-proto/Reflect.getPrototypeOf.js?","backoffice://dashboard/./node_modules/isarray/index.js?","backoffice://dashboard/./node_modules/react-is/cjs/react-is.production.min.js?","backoffice://dashboard/./node_modules/es-errors/uri.js?","backoffice://dashboard/./node_modules/axios/lib/helpers/cookies.js?","backoffice://dashboard/./node_modules/axios/lib/core/settle.js?","backoffice://dashboard/./node_modules/react-helmet/lib/HelmetUtils.js?","backoffice://dashboard/./node_modules/get-intrinsic/index.js?","backoffice://dashboard/./node_modules/scheduler/index.js?","backoffice://dashboard/./node_modules/call-bound/index.js?","backoffice://dashboard/./node_modules/axios/lib/axios.js?","backoffice://dashboard/./node_modules/object-assign/index.js?","backoffice://dashboard/./node_modules/axios/lib/core/buildFullPath.js?","backoffice://dashboard/./node_modules/dunder-proto/get.js?","backoffice://dashboard/./node_modules/es-errors/eval.js?","backoffice://dashboard/./node_modules/axios/lib/helpers/bind.js?","backoffice://dashboard/./node_modules/axios/lib/utils.js?","backoffice://dashboard/./node_modules/redux-promise-middleware/dist/index.js?","backoffice://dashboard/./node_modules/framework-ui-components/node_modules/debug/src/common.js?","backoffice://dashboard/./node_modules/axios/lib/helpers/normalizeHeaderName.js?","backoffice://dashboard/./node_modules/axios/lib/adapters/xhr.js?","backoffice://dashboard/./node_modules/is-arguments/index.js?","backoffice://dashboard/./node_modules/path-to-regexp/index.js?","backoffice://dashboard/./node_modules/call-bind-apply-helpers/functionCall.js?","backoffice://dashboard/./node_modules/call-bind-apply-helpers/applyBind.js?","backoffice://dashboard/./node_modules/get-proto/Object.getPrototypeOf.js?","backoffice://dashboard/./node_modules/call-bind-apply-helpers/reflectApply.js?","backoffice://dashboard/./node_modules/call-bind-apply-helpers/actualApply.js?","backoffice://dashboard/./node_modules/shallowequal/index.js?","backoffice://dashboard/./node_modules/potenziali-pratiche/index.js?","backoffice://dashboard/./node_modules/has-property-descriptors/index.js?","backoffice://dashboard/./node_modules/gopd/gOPD.js?","backoffice://dashboard/./node_modules/axios/lib/helpers/isURLSameOrigin.js?","backoffice://dashboard/./node_modules/react-helmet/lib/Helmet.js?","backoffice://dashboard/./node_modules/immutability-helper/index.js?","backoffice://dashboard/./node_modules/set-function-length/index.js?","backoffice://dashboard/./node_modules/es-errors/index.js?","backoffice://dashboard/./node_modules/has-symbols/shams.js?","backoffice://dashboard/./node_modules/define-properties/index.js?","backoffice://dashboard/./node_modules/hasown/index.js?","backoffice://dashboard/./node_modules/object-is/shim.js?","backoffice://dashboard/./node_modules/axios/lib/cancel/isCancel.js?","backoffice://dashboard/./node_modules/functions-have-names/index.js?","backoffice://dashboard/./node_modules/regexp.prototype.flags/index.js?","backoffice://dashboard/./node_modules/es-errors/syntax.js?","backoffice://dashboard/./node_modules/axios/lib/core/createError.js?","backoffice://dashboard/./node_modules/axios/lib/cancel/CancelToken.js?","backoffice://dashboard/./node_modules/axios/lib/helpers/isAxiosError.js?","backoffice://dashboard/./node_modules/object-is/polyfill.js?","backoffice://dashboard/./node_modules/axios/lib/core/transformData.js?","backoffice://dashboard/./node_modules/redux-thunk/lib/index.js?","backoffice://dashboard/./node_modules/hoist-non-react-statics/index.js?","backoffice://dashboard/./node_modules/Home/index.js?","backoffice://dashboard/./node_modules/call-bind-apply-helpers/functionApply.js?","backoffice://dashboard/./node_modules/call-bind/index.js?","backoffice://dashboard/./node_modules/react-helmet/lib/HelmetConstants.js?","backoffice://dashboard/./node_modules/es-errors/type.js?","backoffice://dashboard/./node_modules/axios/lib/core/InterceptorManager.js?","backoffice://dashboard/./node_modules/call-bind-apply-helpers/index.js?","backoffice://dashboard/./node_modules/uuid/v4.js?","backoffice://dashboard/./node_modules/react/index.js?","backoffice://dashboard/./node_modules/object-keys/implementation.js?","backoffice://dashboard/./node_modules/prop-types/factoryWithThrowingShims.js?","backoffice://dashboard/./node_modules/file-saver/dist/FileSaver.min.js?","backoffice://dashboard/./node_modules/scheduler/cjs/scheduler.production.min.js?","backoffice://dashboard/./node_modules/framework-ui-components/node_modules/debug/src/browser.js?","backoffice://dashboard/./node_modules/redux-promise-middleware/dist/isPromise.js?","backoffice://dashboard/./node_modules/axios/lib/core/enhanceError.js?","backoffice://dashboard/./node_modules/object-keys/isArguments.js?","backoffice://dashboard/./node_modules/react-dom/index.js?","backoffice://dashboard/./node_modules/math-intrinsics/sign.js?","backoffice://dashboard/./node_modules/Assistente/index.js?","backoffice://dashboard/./node_modules/get-proto/index.js?","backoffice://dashboard/./node_modules/react-side-effect/lib/index.js?","backoffice://dashboard/./node_modules/axios/lib/helpers/isAbsoluteURL.js?","backoffice://dashboard/./node_modules/es-define-property/index.js?","backoffice://dashboard/./node_modules/react-is/index.js?","backoffice://dashboard/./node_modules/ms/index.js?","backoffice://dashboard/./node_modules/uuid/lib/rng-browser.js?","backoffice://dashboard/./node_modules/axios/lib/helpers/combineURLs.js?","backoffice://dashboard/./node_modules/GeCo/index.js?","backoffice://dashboard/./node_modules/regexp.prototype.flags/shim.js?","backoffice://dashboard/./node_modules/math-intrinsics/pow.js?","backoffice://dashboard/./node_modules/axios/lib/defaults.js?","backoffice://dashboard/./node_modules/axios/lib/helpers/spread.js?","backoffice://dashboard/./node_modules/invariant/browser.js?","backoffice://dashboard/./node_modules/math-intrinsics/abs.js?","backoffice://dashboard/./node_modules/uuid/index.js?","backoffice://dashboard/./node_modules/function-bind/implementation.js?","backoffice://dashboard/./node_modules/prop-types/index.js?","backoffice://dashboard/./node_modules/math-intrinsics/floor.js?","backoffice://dashboard/./node_modules/axios/index.js?","backoffice://dashboard/./node_modules/object-is/index.js?","backoffice://dashboard/./node_modules/has-symbols/index.js?","backoffice://dashboard/./node_modules/has-tostringtag/shams.js?","backoffice://dashboard/./node_modules/define-data-property/index.js?","backoffice://dashboard/./node_modules/react/cjs/react.production.min.js?","backoffice://dashboard/./node_modules/axios/lib/helpers/buildURL.js?","backoffice://dashboard/./node_modules/es-errors/ref.js?","backoffice://dashboard/./node_modules/react-router/node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js?","backoffice://dashboard/webpack/bootstrap?","backoffice://dashboard/webpack/runtime/compat get default export?","backoffice://dashboard/webpack/runtime/define property getters?","backoffice://dashboard/webpack/runtime/global?","backoffice://dashboard/webpack/runtime/harmony module decorator?","backoffice://dashboard/webpack/runtime/hasOwnProperty shorthand?","backoffice://dashboard/webpack/runtime/publicPath?","backoffice://dashboard/./node_modules/react-redux/es/utils/PropTypes.js?","backoffice://dashboard/./node_modules/react-redux/es/components/Provider.js?","backoffice://dashboard/./node_modules/react-redux/es/utils/Subscription.js?","backoffice://dashboard/./node_modules/react-redux/es/components/connectAdvanced.js?","backoffice://dashboard/./node_modules/react-redux/es/utils/shallowEqual.js?","backoffice://dashboard/./node_modules/lodash-es/_freeGlobal.js?","backoffice://dashboard/./node_modules/lodash-es/_root.js?","backoffice://dashboard/./node_modules/lodash-es/_Symbol.js?","backoffice://dashboard/./node_modules/lodash-es/_getRawTag.js?","backoffice://dashboard/./node_modules/lodash-es/_objectToString.js?","backoffice://dashboard/./node_modules/lodash-es/_baseGetTag.js?","backoffice://dashboard/./node_modules/lodash-es/_getPrototype.js?","backoffice://dashboard/./node_modules/lodash-es/_overArg.js?","backoffice://dashboard/./node_modules/lodash-es/isPlainObject.js?","backoffice://dashboard/./node_modules/redux/es/createStore.js?","backoffice://dashboard/./node_modules/lodash-es/isObjectLike.js?","backoffice://dashboard/./node_modules/redux/es/combineReducers.js?","backoffice://dashboard/./node_modules/redux/es/bindActionCreators.js?","backoffice://dashboard/./node_modules/redux/es/compose.js?","backoffice://dashboard/./node_modules/redux/es/applyMiddleware.js?","backoffice://dashboard/./node_modules/react-redux/es/connect/wrapMapToProps.js?","backoffice://dashboard/./node_modules/react-redux/es/connect/mapDispatchToProps.js?","backoffice://dashboard/./node_modules/react-redux/es/connect/mapStateToProps.js?","backoffice://dashboard/./node_modules/react-redux/es/connect/mergeProps.js?","backoffice://dashboard/./node_modules/react-redux/es/connect/selectorFactory.js?","backoffice://dashboard/./node_modules/react-redux/es/connect/connect.js?","backoffice://dashboard/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js?","backoffice://dashboard/./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js?","backoffice://dashboard/./node_modules/@babel/runtime/helpers/esm/extends.js?","backoffice://dashboard/./node_modules/resolve-pathname/esm/resolve-pathname.js?","backoffice://dashboard/./node_modules/value-equal/esm/value-equal.js?","backoffice://dashboard/./node_modules/tiny-invariant/dist/esm/tiny-invariant.js?","backoffice://dashboard/./node_modules/history/esm/history.js?","backoffice://dashboard/./node_modules/mini-create-react-context/dist/esm/index.js?","backoffice://dashboard/./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js?","backoffice://dashboard/./node_modules/react-router/esm/react-router.js?","backoffice://dashboard/./node_modules/react-router-dom/esm/react-router-dom.js?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Snackbar/SnackbarUtils.jsx?","backoffice://dashboard/./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js?","backoffice://dashboard/./node_modules/react-transition-group/esm/TransitionGroupContext.js?","backoffice://dashboard/./node_modules/react-transition-group/esm/utils/ChildMapping.js?","backoffice://dashboard/./node_modules/react-transition-group/esm/TransitionGroup.js?","backoffice://dashboard/./node_modules/dom-helpers/esm/removeClass.js?","backoffice://dashboard/./node_modules/react-transition-group/esm/Transition.js?","backoffice://dashboard/./node_modules/react-transition-group/esm/CSSTransition.js?","backoffice://dashboard/./node_modules/dom-helpers/esm/addClass.js?","backoffice://dashboard/./node_modules/dom-helpers/esm/hasClass.js?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Icons/Icon.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Icons/ErroreIcon.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Badge/Badge.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Badge/index.js?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Spinner/Spinner.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Spinner/index.js?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Tabs/Tab.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Tabs/Tabs.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Tabs/index.js?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Icons/SuccessoIcon.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Utils/debouncer.js?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Hooks/useMouseOver.js?","backoffice://dashboard/./node_modules/framework-ui-components/Components/PopOver/PopOver.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/PopOver/index.js?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Button/Button.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Button/index.js?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Snackbar/HeaderOperazione.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Snackbar/HeaderMassiva.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Table/HeaderColumn.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Table/HeaderRow.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Table/Header.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Table/BodyCell.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Table/BodyRow.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Table/Body.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Table/Footer.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/utils/react.js?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Utils/table.js?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Table/Table.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Table/index.js?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Formatter/formatter-date.js?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Formatter/formatter-hour.js?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Utils/getElementType.js?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Formatter/Formatter.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Formatter/index.js?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Snackbar/TabellaOperazioneSincrona.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Icons/DownIcon.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Icons/UpIcon.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Progress/Progress.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Progress/index.js?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Snackbar/DettaglioOperazioneMassiva.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Utils/doesNodeContainClick.js?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Snackbar/Snackbar.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Snackbar/SnackbarWrapper.js?","backoffice://dashboard/./node_modules/framework-ui-components/Components/EventoServer/connectionError.js?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Snackbar/index.jsx?","backoffice://dashboard/./App/actions/applicationActions.js?","backoffice://dashboard/./App/components/LoadingPanel/index.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Application/Body.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Application/Header.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Application/Application.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Application/index.js?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Image/Image.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Image/index.js?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Tour/Tour.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Tour/index.js?","backoffice://dashboard/./node_modules/framework-plugins/models/constants.js?","backoffice://dashboard/./node_modules/framework-ui-components/Components/ConsoleLogger/ConsoleLog.js?","backoffice://dashboard/./node_modules/framework-plugins/utils/log.js?","backoffice://dashboard/./node_modules/framework-plugins/models/windowData.js?","backoffice://dashboard/./node_modules/framework-plugins/utils/navigation.js?","backoffice://dashboard/./node_modules/framework-plugins/models/caller.js?","backoffice://dashboard/./node_modules/framework-plugins/models/config.js?","backoffice://dashboard/./node_modules/framework-plugins/models/messages.js?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Utils/baseComponentHelper.js?","backoffice://dashboard/./node_modules/framework-ui-components/Components/ConsoleLogger/index.js?","backoffice://dashboard/./node_modules/framework-ui-components/utils/log.js?","backoffice://dashboard/./node_modules/framework-ui-components/Components/WebRequest/WebRequest.js?","backoffice://dashboard/./node_modules/framework-ui-components/Components/WebRequest/index.js?","backoffice://dashboard/./node_modules/framework-plugins/models/forward.js?","backoffice://dashboard/./node_modules/framework-plugins/models/clickOut.js?","backoffice://dashboard/./node_modules/framework-plugins/index.js?","backoffice://dashboard/./App/actions/utenteActions.js?","backoffice://dashboard/./node_modules/framework-ui-components/utils/const.js?","backoffice://dashboard/./node_modules/framework-ui-components/Components/V2/Hooks/useChildrenWithText.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/V2/Button/Button.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/V2/Hooks/useRunningState.js?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Icons/InfoesIcon.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Tooltip/Tooltip.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/InfoTooltip/InfoTooltip.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/InfoTooltip/index.js?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Dropdown/DropdownItem.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Dropdown/SubMenuItem.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Dropdown/Dropdown.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Dropdown/index.js?","backoffice://dashboard/./node_modules/framework-ui-components/Components/NavDropdown/NavDropdown.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/NavDropdown/index.js?","backoffice://dashboard/./node_modules/framework-ui-components/Components/GoogleIcons/Outlined/DoneIcon.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/GoogleIcons/Outlined/MeetingRoom.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/V2/MenuUtente/MenuUfficiItems.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/GoogleIcons/Outlined/NavigateNextIcon.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/V2/MenuUtente/MenuUffici.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/GoogleIcons/Outlined/PermIdentityIcon.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/GoogleIcons/Outlined/ExportIcon.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/V2/MenuUtente/MenuUtente.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Icons/CollapseIcon.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Icons/ExpandIcon.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Card/Card.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Card/index.js?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Heading/Heading.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Heading/index.js?","backoffice://dashboard/./node_modules/framework-plugins/hooks/usePluginHandler.js?","backoffice://dashboard/./node_modules/framework-plugins/hooks/useEventListener.js?","backoffice://dashboard/./node_modules/framework-plugins/utils/const.js?","backoffice://dashboard/./node_modules/framework-plugins/components/parent/IFrame/IFrameModalizer.jsx?","backoffice://dashboard/./node_modules/framework-plugins/components/parent/IFrame/useFocus.jsx?","backoffice://dashboard/./node_modules/framework-plugins/hooks/usePluginAppViewport.js?","backoffice://dashboard/./node_modules/framework-plugins/components/parent/IFrame/useForwardMessageToParent.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/V2/ViewportProvider/ViewportContext.js?","backoffice://dashboard/./node_modules/framework-ui-components/Components/V2/Hooks/useViewport.js?","backoffice://dashboard/./node_modules/framework-plugins/components/parent/IFrame/useCallForward.jsx?","backoffice://dashboard/./node_modules/framework-plugins/components/parent/IFrame/useClickOutside.jsx?","backoffice://dashboard/./node_modules/framework-plugins/components/parent/IFrame/useRootLocation.jsx?","backoffice://dashboard/./node_modules/framework-plugins/components/parent/IFrame/IFrame.jsx?","backoffice://dashboard/./node_modules/framework-plugins/components/parent/IFrame/useRoutingHandler.jsx?","backoffice://dashboard/./node_modules/framework-plugins/utils/version.js?","backoffice://dashboard/./node_modules/framework-plugins/components/parent/IFrame/useIFrameInDialog.jsx?","backoffice://dashboard/./node_modules/framework-plugins/components/parent/IFrame/useViewportResolutionSender.jsx?","backoffice://dashboard/./node_modules/framework-plugins/components/parent/IFrame/useGotoExternal.jsx?","backoffice://dashboard/./node_modules/framework-plugins/components/parent/IFrame/useIFrameLoader.jsx?","backoffice://dashboard/./node_modules/framework-plugins/components/parent/IFrame/index.js?","backoffice://dashboard/./node_modules/@aspnet/signalr/dist/esm/Errors.js?","backoffice://dashboard/./node_modules/@aspnet/signalr/dist/esm/ILogger.js?","backoffice://dashboard/./node_modules/@aspnet/signalr/dist/esm/HttpClient.js?","backoffice://dashboard/./node_modules/@aspnet/signalr/dist/esm/XhrHttpClient.js?","backoffice://dashboard/./node_modules/@aspnet/signalr/dist/esm/DefaultHttpClient.js?","backoffice://dashboard/./node_modules/@aspnet/signalr/dist/esm/TextMessageFormat.js?","backoffice://dashboard/./node_modules/@aspnet/signalr/dist/esm/Loggers.js?","backoffice://dashboard/./node_modules/@aspnet/signalr/dist/esm/Utils.js?","backoffice://dashboard/./node_modules/@aspnet/signalr/dist/esm/IHubProtocol.js?","backoffice://dashboard/./node_modules/@aspnet/signalr/dist/esm/HandshakeProtocol.js?","backoffice://dashboard/./node_modules/@aspnet/signalr/dist/esm/HubConnection.js?","backoffice://dashboard/./node_modules/@aspnet/signalr/dist/esm/ITransport.js?","backoffice://dashboard/./node_modules/@aspnet/signalr/dist/esm/AbortController.js?","backoffice://dashboard/./node_modules/@aspnet/signalr/dist/esm/LongPollingTransport.js?","backoffice://dashboard/./node_modules/@aspnet/signalr/dist/esm/ServerSentEventsTransport.js?","backoffice://dashboard/./node_modules/@aspnet/signalr/dist/esm/WebSocketTransport.js?","backoffice://dashboard/./node_modules/@aspnet/signalr/dist/esm/HttpConnection.js?","backoffice://dashboard/./node_modules/@aspnet/signalr/dist/esm/JsonHubProtocol.js?","backoffice://dashboard/./node_modules/@aspnet/signalr/dist/esm/HubConnectionBuilder.js?","backoffice://dashboard/./node_modules/framework-ui-components/Components/EventoServer/index.js?","backoffice://dashboard/./node_modules/framework-ui-components/Components/EventoServer/EventAggregator.js?","backoffice://dashboard/./node_modules/framework-ui-components/Components/EventoServer/Utils.js?","backoffice://dashboard/./App/libs/EventoServer/index.js?","backoffice://dashboard/./App/helpers/useSignalR.js?","backoffice://dashboard/./App/areas/PrestazioniAgevolate/index.jsx?","backoffice://dashboard/./App/areas/Visureipocatastali/index.jsx?","backoffice://dashboard/./App/areas/Isee/index.jsx?","backoffice://dashboard/./App/areas/Home/index.js?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Icons/Logo.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/ErrorPages/ErrorPage.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/ErrorPages/Surprise.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/ErrorPages/UnexpectedErrorPage.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/ErrorBoundary/ErrorBoundary.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/ErrorBoundary/index.js?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Sidebar/Body.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Sidebar/Item.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Sidebar/ItemWrapper.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Sidebar/SidebarContext.js?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Sidebar/Menu.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Sidebar/Submenu.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Sidebar/Sidebar.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Sidebar/index.js?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Grid/Row.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Grid/Column.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Grid/Grid.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Grid/index.js?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Icons/DocumentIcon.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Icons/BusinessContactIcon.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Icons/CloneIcon.jsx?","backoffice://dashboard/./App/enums/Servizi.js?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Icons/ToolbarBackIcon.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Toolbar/Toolbar.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Toolbar/index.js?","backoffice://dashboard/./App/components/PageWrapper/index.jsx?","backoffice://dashboard/./App/Components/Icons/7304Icon.js?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Icons/DeleteIcon.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Utils/formHelpers.js?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Form/FormContext.js?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Form/withForm.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Hooks/useForm.js?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Hooks/useActivation.js?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Checkbox/Checkbox.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Checkbox/index.js?","backoffice://dashboard/./node_modules/framework-ui-components/utils/js.js?","backoffice://dashboard/./node_modules/framework-ui-components/utils/storage.js?","backoffice://dashboard/./node_modules/framework-ui-components/Components/DontShowAgain/DontShowAgain.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Modal/hooks.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Modal/Body.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Modal/Header.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Modal/Footer.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/ModalContext/ModalContext.js?","backoffice://dashboard/./node_modules/framework-ui-components/Components/ModalContext/useModalContext.js?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Hooks/useMountedRef.js?","backoffice://dashboard/./node_modules/framework-ui-components/Components/DontShowAgain/useDontShowAgainMessageRead.js?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Modal/Modal.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Modal/index.js?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Confirm/FooterButton.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Confirm/Confirm.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Utils/modals.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Confirm/index.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Panel/Panel.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Panel/index.js?","backoffice://dashboard/./node_modules/framework-ui-components/Components/ButtonGroup/ButtonGroup.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/ButtonGroup/index.js?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Icons/PlusIcon.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Icons/MoreIcon.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Icons/PrinterIcon.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Utils/numeriHelper.js?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Validation/index.js?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Restriction/Restriction.js?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Restriction/index.js?","backoffice://dashboard/./node_modules/framework-ui-components/Components/EllipsisText/EllipsisText.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/EllipsisText/index.js?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Hooks/useValidations.js?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Validation/ValidationViewer.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Utils/stringHelper.js?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Input/Input.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Input/index.js?","backoffice://dashboard/./App/components/InputRicerca/index.jsx?","backoffice://dashboard/./App/apis/setteTrentaApi.js?","backoffice://dashboard/./App/enums/TipoDichiarazione.js?","backoffice://dashboard/./App/enums/StatoDichiarazione.js?","backoffice://dashboard/./App/enums/Scadenze730.js?","backoffice://dashboard/./App/components/Icons/ImportIcon.js?","backoffice://dashboard/./App/actions/dichiarativiActions.js?","backoffice://dashboard/./node_modules/framework-ui-components/Components/ODataTable/SelectCheckbox.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/ODataTable/ODataTableContext.js?","backoffice://dashboard/./node_modules/framework-ui-components/Components/ODataTable/Column.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Utils/nodeHelpers.js?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Select/Option.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Select/Divider.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Select/Select.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Select/index.js?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Utils/odata.js?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Utils/queryServiceStrategy/QueryOptions.js?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Filter/Components.js?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Filter/Components/InputFilter.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Filter/Components/SelectFilter.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Highlighter/Highlighter.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Highlighter/index.js?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Icons/SearchIcon.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/AutoComplete/SearchListProvider.js?","backoffice://dashboard/./node_modules/framework-ui-components/Components/AutoComplete/AutoComplete.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/AutoComplete/index.js?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Filter/Components/AutocompleteFilter.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Filter/Components/InputRangeFilter.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Icons/CalendarIcon.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Utils/dateHelper.js?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Icons/BackIcon.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Icons/ForwardIcon.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/DatePicker/DateComponentChooser.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/DatePicker/DatePicker.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/DatePicker/index.js?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Filter/Components/DatePickerFilter.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Filter/Components/DateRangeFilter.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Tag/Tag.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Tag/index.js?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Filter/SelectedFilters.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Icons/SortRightIcon.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Filter/Filter.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Filter/index.js?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Utils/queryServiceStrategy/ODataServiceStrategy.js?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Utils/QueryOptions.js?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Utils/queryServiceStrategy/OData2ServiceStrategy.js?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Icons/SortLeftIcon.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Icons/SkipToStartIcon.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Icons/SkipToEndIcon.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/ODataTable/ODataTableStorage.js?","backoffice://dashboard/./node_modules/framework-ui-components/Components/ODataTable/ODataTable.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Utils/ODataLoader.js?","backoffice://dashboard/./node_modules/framework-ui-components/Components/ODataTable/index.js?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Dropdown/OptionDropdown.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Icons/InfoIcon.jsx?","backoffice://dashboard/./App/areas/Shared/ModaleStorico/index.jsx?","backoffice://dashboard/./App/apis/sharedApi.js?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Form/Form.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Form/index.js?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Textblock/Textblock.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Textblock/index.js?","backoffice://dashboard/./App/enums/EsitoControlloSiatel.js?","backoffice://dashboard/./App/areas/SetteTrenta/ModaleModifica/ModaleCodiceFiscale.jsx?","backoffice://dashboard/./App/areas/SetteTrenta/ModaleModifica/ModaleInfoCodiceFiscale.jsx?","backoffice://dashboard/./App/areas/SetteTrenta/ModaleRiduzioneAcc/index.jsx?","backoffice://dashboard/./App/areas/SetteTrenta/ModaleModificaSegnalibro/index.jsx?","backoffice://dashboard/./App/helpers/checkServizio.js?","backoffice://dashboard/./App/areas/SetteTrenta/RigaDichiarazione/CellaNumeroNoteDichiarazione.jsx?","backoffice://dashboard/./App/areas/SetteTrenta/RigaDichiarazione.js?","backoffice://dashboard/./App/helpers/stringHelper.js?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Radio/Radio.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Radio/useRadioFormChecked.js?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Radio/index.js?","backoffice://dashboard/./App/enums/DichiarazioneIntegrativaObbligatorietaProtocollo.js?","backoffice://dashboard/./App/apis/anagraficaApi.js?","backoffice://dashboard/./App/apis/sostitutiApi.js?","backoffice://dashboard/./App/areas/SetteTrenta/ModaleCreazione/index.jsx?","backoffice://dashboard/./App/areas/SetteTrenta/ModaleCreazione/gestoreModale.jsx?","backoffice://dashboard/./App/areas/SetteTrenta/ModaleStampa/index.jsx?","backoffice://dashboard/./App/components/Icons/AssistenteInlineIcon.js?","backoffice://dashboard/./App/components/Assistente/index.js?","backoffice://dashboard/./App/areas/SetteTrenta/ModaleStampa2/index.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/FileUpload/FileUpload.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/FileUpload/index.js?","backoffice://dashboard/./App/enums/StatoDichiarazioneDaImportare.js?","backoffice://dashboard/./App/enums/TipoImportazione.js?","backoffice://dashboard/./App/areas/SetteTrenta/ModaleImportazione/RigaImportazione.jsx?","backoffice://dashboard/./App/areas/SetteTrenta/ModaleImportazione/index.jsx?","backoffice://dashboard/./App/areas/SetteTrenta/ModaleImportazioneRedditiPF/RigaImportazione.jsx?","backoffice://dashboard/./App/areas/SetteTrenta/ModaleImportazioneRedditiPF/index.jsx?","backoffice://dashboard/./App/areas/SetteTrenta/ModaleUploadFile/index.jsx?","backoffice://dashboard/./App/areas/SetteTrenta/ModaleScadenze/LogoScadenze.jsx?","backoffice://dashboard/./App/areas/SetteTrenta/ModaleScadenze/index.jsx?","backoffice://dashboard/./App/areas/SetteTrenta/ModaleScadenze/ModaleUltimaScadenza.jsx?","backoffice://dashboard/./App/areas/SetteTrenta/ModaleScadenze/ModaleTermineUltimo.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Stepper/State.js?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Stepper/Step.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Stepper/StepItem.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Stepper/Stepper.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Stepper/index.js?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Icons/TrashIcon.jsx?","backoffice://dashboard/./App/components/FileSelector/index.jsx?","backoffice://dashboard/./App/areas/SetteTrenta/ModaleImportazionePdf/index.jsx?","backoffice://dashboard/./App/helpers/apriPermalinkAssistente.js?","backoffice://dashboard/./App/areas/SetteTrenta/ModaleNotificaScarto/index.jsx?","backoffice://dashboard/./App/enums/StatiRicerca.js?","backoffice://dashboard/./App/areas/SetteTrenta/ElasticTable.jsx?","backoffice://dashboard/./App/areas/SetteTrenta/gestoreAzioniMassive.js?","backoffice://dashboard/./App/components/Icons/AuditIcon.js?","backoffice://dashboard/./App/components/Icons/ExcelIcon.js?","backoffice://dashboard/./App/components/PotenzialiIsee/NotificaPotenzialiIsee.jsx?","backoffice://dashboard/./App/areas/SetteTrenta/SetteTrenta.jsx?","backoffice://dashboard/./App/areas/SetteTrenta/DettaglioBarra4.jsx?","backoffice://dashboard/./App/areas/SetteTrenta/Barra4.jsx?","backoffice://dashboard/./App/areas/SetteTrenta/Sostituto.js?","backoffice://dashboard/./App/areas/SetteTrenta/ModaleSostituto/index.jsx?","backoffice://dashboard/./App/enums/KeyCodes.js?","backoffice://dashboard/./App/areas/SetteTrenta/RigaSostituto.jsx?","backoffice://dashboard/./App/areas/SetteTrenta/ElencoSostituti.jsx?","backoffice://dashboard/./App/areas/RichiesteEnti/index.jsx?","backoffice://dashboard/./App/areas/SetteTrenta/index.jsx?","backoffice://dashboard/./node_modules/framework-plugins/hooks/usePluginReducer.js?","backoffice://dashboard/./App/areas/SetteTrentaNew/index.jsx?","backoffice://dashboard/./App/apis/successioniApi.js?","backoffice://dashboard/./App/components/Icons/AccettatoIcon.js?","backoffice://dashboard/./App/components/Icons/AssenteIcon.js?","backoffice://dashboard/./App/components/Icons/RifiutatoIcon.js?","backoffice://dashboard/./App/areas/Successioni/ModaleAllegaRicevuta.js?","backoffice://dashboard/./App/areas/Successioni/ModaleAllegaRicevutaSecondaria.js?","backoffice://dashboard/./App/areas/Successioni/ModaleCreaVoltura.js?","backoffice://dashboard/./App/areas/Successioni/ModaleTrasmissioneManuale.js?","backoffice://dashboard/./App/areas/Successioni/RigaDichiarazione.js?","backoffice://dashboard/./App/areas/Successioni/ModaleCreaSuccessione.jsx?","backoffice://dashboard/./App/areas/Successioni/index.js?","backoffice://dashboard/./App/apis/assegnoNucleoFamiliareApi.js?","backoffice://dashboard/./node_modules/framework-ui-components/Components/V2/Breadcrumbs/Breadcrumbs.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Utils/documentUtils.js?","backoffice://dashboard/./node_modules/framework-ui-components/Components/V2/Toolbar/BreadcrumbsBand.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/V2/DropdownList/DropdownList.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/V2/Hooks/useMenuOpenState.js?","backoffice://dashboard/./node_modules/framework-ui-components/Components/V2/DropdownButton/DropdownButton.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/V2/Toolbar/Toolbar.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/V2/Toolbar/Divider.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/V2/ButtonGroup/ButtonGroup.jsx?","backoffice://dashboard/./App/areas/ANF/BreadcrumbToolbar.jsx?","backoffice://dashboard/./App/areas/ANF/PageWrapperV2.jsx?","backoffice://dashboard/./App/areas/ANF/FiltriRicerca.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Icons/BadgeAlarmIcon.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Icons/BadgeWarningIcon.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Icons/BadgeSuccessIcon.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Icons/BadgeInfoIcon.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/V2/Panel/MiniPanel.jsx?","backoffice://dashboard/./App/areas/ANF/ModaleEsitiInps.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/V2/Modals/Modal/ModalContext.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/V2/Modals/Modal/useModalContext.js?","backoffice://dashboard/./node_modules/framework-ui-components/Components/V2/Modals/Modal/Header.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/V2/Modals/Modal/Body.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/V2/Modals/Modal/Footer.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/V2/Modals/Modal/CloseModalButton.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/V2/Modals/Modal/Item.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/V2/Modals/Modal/utils.js?","backoffice://dashboard/./node_modules/framework-ui-components/Components/V2/Modals/Modal/GenericItem.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/V2/Modals/Modal/ConfirmItem.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/GoogleIcons/Filled/FeedbackIcon.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/GoogleIcons/Filled/QuestionAnswerIcon.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/GoogleIcons/Filled/ThumbUpIcon.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/GoogleIcons/Filled/ReportIcon.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/V2/Modals/FeedbackModal/FeedbackPanel.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/V2/Modals/Modal/FeedbackItem.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/V2/Modals/Modal/Modal.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/V2/Hooks/useComponentTimeout.js?","backoffice://dashboard/./node_modules/framework-ui-components/Components/V2/Modals/ConfirmModal/ConfirmModal.jsx?","backoffice://dashboard/./Content/images/danger.svg?","backoffice://dashboard/./Content/images/info.svg?","backoffice://dashboard/./App/components/Confirm/index.jsx?","backoffice://dashboard/./App/areas/ANF/RigaDichiarazione.jsx?","backoffice://dashboard/./App/areas/ANF/ElencoDichiarazioni.jsx?","backoffice://dashboard/./App/areas/ANF/BarraAzioni/InputRicerca.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/V2/SplitButton/SplitButton.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/GoogleIcons/Outlined/AddIcon.jsx?","backoffice://dashboard/./App/areas/ANF/BarraAzioni/AzioniCreaDomanda.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/GoogleIcons/Outlined/MoreVertIcon.jsx?","backoffice://dashboard/./App/areas/ANF/BarraAzioni/AzioneCambioStato.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/GoogleIcons/Outlined/PrintIcon.jsx?","backoffice://dashboard/./App/areas/ANF/BarraAzioni/infoAzioneDisabilitata.jsx?","backoffice://dashboard/./App/areas/ANF/BarraAzioni/StampaDichiarazioni.jsx?","backoffice://dashboard/./App/areas/ANF/BarraAzioni/AltreAzioni.jsx?","backoffice://dashboard/./App/areas/ANF/BarraAzioni/AzioniAssegnoNucleoFamiliare.jsx?","backoffice://dashboard/./App/areas/ANF/BarraAzioni/index.jsx?","backoffice://dashboard/./App/areas/ANF/AssegniNucleoFamiliare.jsx?","backoffice://dashboard/./App/areas/ANF/helpersDate.jsx?","backoffice://dashboard/./App/areas/ANF/ModaleCreazioneOrdinario.jsx?","backoffice://dashboard/./App/areas/ANF/ModaleCreazioneVariazione.jsx?","backoffice://dashboard/./App/areas/ANF/ModaleCreazioneArretrato.jsx?","backoffice://dashboard/./App/areas/ANF/index.jsx?","backoffice://dashboard/./App/areas/AssegnoUnicoUniversaleMonoanno/index.jsx?","backoffice://dashboard/./App/areas/AssegnoUnicoUniversaleMonoanno/helpers.js?","backoffice://dashboard/./App/helpers/throttle.js?","backoffice://dashboard/./App/areas/ElaborazioniMassive/RigaOperazione.jsx?","backoffice://dashboard/./App/areas/ElaborazioniMassive/index.js?","backoffice://dashboard/./App/apis/elaborazioniMassiveApi.js?","backoffice://dashboard/./App/areas/ElaborazioniMassiveNew/index.js?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Icons/SuccessIcon.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Icons/DownloadIcon.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Icons/AlertIcon.jsx?","backoffice://dashboard/./App/components/RoundProgress/index.jsx?","backoffice://dashboard/./App/components/PieChart/index.jsx?","backoffice://dashboard/./App/areas/ElaborazioniMassive/RigaDettaglioOperazione.jsx?","backoffice://dashboard/./App/areas/ElaborazioniMassive/DettaglioOperazione.jsx?","backoffice://dashboard/./App/areas/Imu/storeSession.js?","backoffice://dashboard/./App/areas/Imu/session.js?","backoffice://dashboard/./App/areas/Imu/index.jsx?","backoffice://dashboard/./App/areas/Firme/index.jsx?","backoffice://dashboard/./App/areas/ServiziCittadino/index.jsx?","backoffice://dashboard/./App/areas/Disoccupazioni/index.jsx?","backoffice://dashboard/./App/components/AppContainer/index.jsx?","backoffice://dashboard/./App/components/LayoutContext/index.jsx?","backoffice://dashboard/./node_modules/framework-ui-components/Components/V2/ViewportProvider/util.js?","backoffice://dashboard/./node_modules/framework-ui-components/Components/V2/ViewportProvider/ViewportProvider.jsx?","backoffice://dashboard/./App/reducers/initialState.js?","backoffice://dashboard/./App/reducers/applicationReducer.js?","backoffice://dashboard/./App/reducers/utenteReducer.js?","backoffice://dashboard/./App/reducers/combineReducers.js?","backoffice://dashboard/./App/reducers/dichiarativiReducer.js?","backoffice://dashboard/./node_modules/framework-ui-components/Components/Redux/reducerHelper.js?","backoffice://dashboard/./App/index.jsx?","backoffice://dashboard/./App/store/configureStore.js?"],"sourcesContent":["'use strict';\n\nvar numberIsNaN = function (value) {\n\treturn value !== value;\n};\n\nmodule.exports = function is(a, b) {\n\tif (a === 0 && b === 0) {\n\t\treturn 1 / a === 1 / b;\n\t}\n\tif (a === b) {\n\t\treturn true;\n\t}\n\tif (numberIsNaN(a) && numberIsNaN(b)) {\n\t\treturn true;\n\t}\n\treturn false;\n};\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/** @type {import('./max')} */\nmodule.exports = Math.max;\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\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nexports.default = typeToReducer;\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction typeToReducer(reducerMap, initialState) {\n var makeType = function makeType(prefix, type) {\n return prefix.concat(type).join('_');\n };\n\n var iterator = function iterator(reducers) {\n var initial = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var prefix = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n\n var reducerTypes = Object.keys(reducers || {});\n return reducerTypes.reduce(function (acc, type) {\n var reducer = reducers[type];\n return typeof reducer === 'function' ? _extends({}, acc, _defineProperty({}, makeType(prefix, type), reducer)) : iterator(reducer, acc, [makeType(prefix, type)]);\n }, initial);\n };\n\n var flattened = iterator(reducerMap);\n\n return function () {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState;\n var action = arguments[1];\n\n var reducer = flattened[action.type];\n return reducer ? reducer(state, action) : state;\n };\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.retryTime 2 && !!arguments[2];\n\tif (!loose || functionsHaveConfigurableNames) {\n\t\tif (hasDescriptors) {\n\t\t\tdefine(/** @type {Parameters[0]} */ (fn), 'name', name, true, true);\n\t\t} else {\n\t\t\tdefine(/** @type {Parameters[0]} */ (fn), 'name', name);\n\t\t}\n\t}\n\treturn fn;\n};\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;\n","'use strict';\n\nvar callBound = require('call-bound');\n\nvar getDay = callBound('Date.prototype.getDay');\n/** @type {import('.')} */\nvar tryDateObject = function tryDateGetDayCall(value) {\n\ttry {\n\t\tgetDay(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\n\n/** @type {(value: unknown) => string} */\nvar toStr = callBound('Object.prototype.toString');\nvar dateClass = '[object Date]';\nvar hasToStringTag = require('has-tostringtag/shams')();\n\n/** @type {import('.')} */\nmodule.exports = function isDateObject(value) {\n\tif (typeof value !== 'object' || value === null) {\n\t\treturn false;\n\t}\n\treturn hasToStringTag ? tryDateObject(value) : toStr(value) === dateClass;\n};\n","'use strict';\n\nvar callBound = require('call-bound');\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar hasOwn = require('hasown');\nvar gOPD = require('gopd');\n\n/** @type {import('.')} */\nvar fn;\n\nif (hasToStringTag) {\n\t/** @type {(receiver: ThisParameterType, ...args: Parameters) => ReturnType} */\n\tvar $exec = callBound('RegExp.prototype.exec');\n\t/** @type {object} */\n\tvar isRegexMarker = {};\n\n\tvar throwRegexMarker = function () {\n\t\tthrow isRegexMarker;\n\t};\n\t/** @type {{ toString(): never, valueOf(): never, [Symbol.toPrimitive]?(): never }} */\n\tvar badStringifier = {\n\t\ttoString: throwRegexMarker,\n\t\tvalueOf: throwRegexMarker\n\t};\n\n\tif (typeof Symbol.toPrimitive === 'symbol') {\n\t\tbadStringifier[Symbol.toPrimitive] = throwRegexMarker;\n\t}\n\n\t/** @type {import('.')} */\n\t// @ts-expect-error TS can't figure out that the $exec call always throws\n\t// eslint-disable-next-line consistent-return\n\tfn = function isRegex(value) {\n\t\tif (!value || typeof value !== 'object') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// eslint-disable-next-line no-extra-parens\n\t\tvar descriptor = /** @type {NonNullable} */ (gOPD)(/** @type {{ lastIndex?: unknown }} */ (value), 'lastIndex');\n\t\tvar hasLastIndexDataProperty = descriptor && hasOwn(descriptor, 'value');\n\t\tif (!hasLastIndexDataProperty) {\n\t\t\treturn false;\n\t\t}\n\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-extra-parens\n\t\t\t$exec(value, /** @type {string} */ (/** @type {unknown} */ (badStringifier)));\n\t\t} catch (e) {\n\t\t\treturn e === isRegexMarker;\n\t\t}\n\t};\n} else {\n\t/** @type {(receiver: ThisParameterType, ...args: Parameters) => ReturnType} */\n\tvar $toString = callBound('Object.prototype.toString');\n\t/** @const @type {'[object RegExp]'} */\n\tvar regexClass = '[object RegExp]';\n\n\t/** @type {import('.')} */\n\tfn = function isRegex(value) {\n\t\t// In older browsers, typeof regex incorrectly returns 'function'\n\t\tif (!value || (typeof value !== 'object' && typeof value !== 'function')) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn $toString(value) === regexClass;\n\t};\n}\n\nmodule.exports = fn;\n","'use strict';\n\nvar implementation = require('./implementation');\n\nvar supportsDescriptors = require('define-properties').supportsDescriptors;\nvar $gOPD = Object.getOwnPropertyDescriptor;\n\nmodule.exports = function getPolyfill() {\n\tif (supportsDescriptors && (/a/mig).flags === 'gim') {\n\t\tvar descriptor = $gOPD(RegExp.prototype, 'flags');\n\t\tif (\n\t\t\tdescriptor\n\t\t\t&& typeof descriptor.get === 'function'\n\t\t\t&& 'dotAll' in RegExp.prototype\n\t\t\t&& 'hasIndices' in RegExp.prototype\n\t\t) {\n\t\t\t/* eslint getter-return: 0 */\n\t\t\tvar calls = '';\n\t\t\tvar o = {};\n\t\t\tObject.defineProperty(o, 'hasIndices', {\n\t\t\t\tget: function () {\n\t\t\t\t\tcalls += 'd';\n\t\t\t\t}\n\t\t\t});\n\t\t\tObject.defineProperty(o, 'sticky', {\n\t\t\t\tget: function () {\n\t\t\t\t\tcalls += 'y';\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tdescriptor.get.call(o);\n\n\t\t\tif (calls === 'dy') {\n\t\t\t\treturn descriptor.get;\n\t\t\t}\n\t\t}\n\t}\n\treturn implementation;\n};\n","'use strict';\n\n/** @type {import('./min')} */\nmodule.exports = Math.min;\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\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\n/** @type {import('./range')} */\nmodule.exports = RangeError;\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","/* global window */\nimport ponyfill from './ponyfill.js';\n\nvar root;\n\nif (typeof self !== 'undefined') {\n root = self;\n} else if (typeof window !== 'undefined') {\n root = window;\n} else if (typeof global !== 'undefined') {\n root = global;\n} else if (typeof module !== 'undefined') {\n root = module;\n} else {\n root = Function('return this')();\n}\n\nvar result = ponyfill(root);\nexport default result;\n","export default function symbolObservablePonyfill(root) {\n\tvar result;\n\tvar Symbol = root.Symbol;\n\n\tif (typeof Symbol === 'function') {\n\t\tif (Symbol.observable) {\n\t\t\tresult = Symbol.observable;\n\t\t} else {\n\t\t\tresult = Symbol('observable');\n\t\t\tSymbol.observable = result;\n\t\t}\n\t} else {\n\t\tresult = '@@observable';\n\t}\n\n\treturn result;\n};\n","var objectKeys = require('object-keys');\nvar isArguments = require('is-arguments');\nvar is = require('object-is');\nvar isRegex = require('is-regex');\nvar flags = require('regexp.prototype.flags');\nvar isDate = require('is-date-object');\n\nvar getTime = Date.prototype.getTime;\n\nfunction deepEqual(actual, expected, options) {\n var opts = options || {};\n\n // 7.1. All identical values are equivalent, as determined by ===.\n if (opts.strict ? is(actual, expected) : actual === expected) {\n return true;\n }\n\n // 7.3. Other pairs that do not both pass typeof value == 'object', equivalence is determined by ==.\n if (!actual || !expected || (typeof actual !== 'object' && typeof expected !== 'object')) {\n return opts.strict ? is(actual, expected) : actual == expected;\n }\n\n /*\n * 7.4. For all other Object pairs, including Array objects, equivalence is\n * determined by having the same number of owned properties (as verified\n * with Object.prototype.hasOwnProperty.call), the same set of keys\n * (although not necessarily the same order), equivalent values for every\n * corresponding key, and an identical 'prototype' property. Note: this\n * accounts for both named and indexed properties on Arrays.\n */\n // eslint-disable-next-line no-use-before-define\n return objEquiv(actual, expected, opts);\n}\n\nfunction isUndefinedOrNull(value) {\n return value === null || value === undefined;\n}\n\nfunction isBuffer(x) {\n if (!x || typeof x !== 'object' || typeof x.length !== 'number') {\n return false;\n }\n if (typeof x.copy !== 'function' || typeof x.slice !== 'function') {\n return false;\n }\n if (x.length > 0 && typeof x[0] !== 'number') {\n return false;\n }\n return true;\n}\n\nfunction objEquiv(a, b, opts) {\n /* eslint max-statements: [2, 50] */\n var i, key;\n if (typeof a !== typeof b) { return false; }\n if (isUndefinedOrNull(a) || isUndefinedOrNull(b)) { return false; }\n\n // an identical 'prototype' property.\n if (a.prototype !== b.prototype) { return false; }\n\n if (isArguments(a) !== isArguments(b)) { return false; }\n\n var aIsRegex = isRegex(a);\n var bIsRegex = isRegex(b);\n if (aIsRegex !== bIsRegex) { return false; }\n if (aIsRegex || bIsRegex) {\n return a.source === b.source && flags(a) === flags(b);\n }\n\n if (isDate(a) && isDate(b)) {\n return getTime.call(a) === getTime.call(b);\n }\n\n var aIsBuffer = isBuffer(a);\n var bIsBuffer = isBuffer(b);\n if (aIsBuffer !== bIsBuffer) { return false; }\n if (aIsBuffer || bIsBuffer) { // && would work too, because both are true or both false here\n if (a.length !== b.length) { return false; }\n for (i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) { return false; }\n }\n return true;\n }\n\n if (typeof a !== typeof b) { return false; }\n\n try {\n var ka = objectKeys(a);\n var kb = objectKeys(b);\n } catch (e) { // happens when one is a string literal and the other isn't\n return false;\n }\n // having the same number of owned properties (keys incorporates hasOwnProperty)\n if (ka.length !== kb.length) { return false; }\n\n // the same set of keys (although not necessarily the same order),\n ka.sort();\n kb.sort();\n // ~~~cheap key test\n for (i = ka.length - 1; i >= 0; i--) {\n if (ka[i] != kb[i]) { return false; }\n }\n // equivalent values for every corresponding key, and ~~~possibly expensive deep test\n for (i = ka.length - 1; i >= 0; i--) {\n key = ka[i];\n if (!deepEqual(a[key], b[key], opts)) { return false; }\n }\n\n return true;\n}\n\nmodule.exports = deepEqual;\n","'use strict';\n\n/** @type {import('./round')} */\nmodule.exports = Math.round;\n","'use strict';\n\n/** @type {import('.')} */\nvar $gOPD = require('./gOPD');\n\nif ($gOPD) {\n\ttry {\n\t\t$gOPD([], 'length');\n\t} catch (e) {\n\t\t// IE 8 has a broken gOPD\n\t\t$gOPD = null;\n\t}\n}\n\nmodule.exports = $gOPD;\n","'use strict';\n\nvar setFunctionName = require('set-function-name');\nvar $TypeError = require('es-errors/type');\n\nvar $Object = Object;\n\nmodule.exports = setFunctionName(function flags() {\n\tif (this == null || this !== $Object(this)) {\n\t\tthrow new $TypeError('RegExp.prototype.flags getter called on non-object');\n\t}\n\tvar result = '';\n\tif (this.hasIndices) {\n\t\tresult += 'd';\n\t}\n\tif (this.global) {\n\t\tresult += 'g';\n\t}\n\tif (this.ignoreCase) {\n\t\tresult += 'i';\n\t}\n\tif (this.multiline) {\n\t\tresult += 'm';\n\t}\n\tif (this.dotAll) {\n\t\tresult += 's';\n\t}\n\tif (this.unicode) {\n\t\tresult += 'u';\n\t}\n\tif (this.unicodeSets) {\n\t\tresult += 'v';\n\t}\n\tif (this.sticky) {\n\t\tresult += 'y';\n\t}\n\treturn result;\n}, 'get flags', true);\n\n","'use strict';\n\n/** @type {import('.')} */\nmodule.exports = Object;\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","/*!\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","'use strict';\n\n/** @type {import('./isNaN')} */\nmodule.exports = Number.isNaN || function isNaN(a) {\n\treturn a !== a;\n};\n","var rng = require('./lib/rng');\nvar bytesToUuid = require('./lib/bytesToUuid');\n\n// **`v1()` - Generate time-based UUID**\n//\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\n\nvar _nodeId;\nvar _clockseq;\n\n// Previous uuid creation time\nvar _lastMSecs = 0;\nvar _lastNSecs = 0;\n\n// See https://github.com/uuidjs/uuid for API details\nfunction v1(options, buf, offset) {\n var i = buf && offset || 0;\n var b = buf || [];\n\n options = options || {};\n var node = options.node || _nodeId;\n var clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq;\n\n // node and clockseq need to be initialized to random values if they're not\n // specified. We do this lazily to minimize issues related to insufficient\n // system entropy. See #189\n if (node == null || clockseq == null) {\n var seedBytes = rng();\n if (node == null) {\n // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n node = _nodeId = [\n seedBytes[0] | 0x01,\n seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]\n ];\n }\n if (clockseq == null) {\n // Per 4.2.2, randomize (14 bit) clockseq\n clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;\n }\n }\n\n // UUID timestamps are 100 nano-second units since the Gregorian epoch,\n // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so\n // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'\n // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.\n var msecs = options.msecs !== undefined ? options.msecs : new Date().getTime();\n\n // Per 4.2.1.2, use count of uuid's generated during the current clock\n // cycle to simulate higher resolution clock\n var nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1;\n\n // Time since last uuid creation (in msecs)\n var dt = (msecs - _lastMSecs) + (nsecs - _lastNSecs)/10000;\n\n // Per 4.2.1.2, Bump clockseq on clock regression\n if (dt < 0 && options.clockseq === undefined) {\n clockseq = clockseq + 1 & 0x3fff;\n }\n\n // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n // time interval\n if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {\n nsecs = 0;\n }\n\n // Per 4.2.1.2 Throw error if too many uuids are requested\n if (nsecs >= 10000) {\n throw new Error('uuid.v1(): Can\\'t create more than 10M uuids/sec');\n }\n\n _lastMSecs = msecs;\n _lastNSecs = nsecs;\n _clockseq = clockseq;\n\n // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n msecs += 12219292800000;\n\n // `time_low`\n var tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n b[i++] = tl >>> 24 & 0xff;\n b[i++] = tl >>> 16 & 0xff;\n b[i++] = tl >>> 8 & 0xff;\n b[i++] = tl & 0xff;\n\n // `time_mid`\n var tmh = (msecs / 0x100000000 * 10000) & 0xfffffff;\n b[i++] = tmh >>> 8 & 0xff;\n b[i++] = tmh & 0xff;\n\n // `time_high_and_version`\n b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n b[i++] = tmh >>> 16 & 0xff;\n\n // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n b[i++] = clockseq >>> 8 | 0x80;\n\n // `clock_seq_low`\n b[i++] = clockseq & 0xff;\n\n // `node`\n for (var n = 0; n < 6; ++n) {\n b[i + n] = node[n];\n }\n\n return buf ? buf : bytesToUuid(b);\n}\n\nmodule.exports = v1;\n","'use strict';\n\n/** @type {import('./Reflect.getPrototypeOf')} */\nmodule.exports = (typeof Reflect !== 'undefined' && Reflect.getPrototypeOf) || null;\n","module.exports = Array.isArray || function (arr) {\n return Object.prototype.toString.call(arr) == '[object Array]';\n};\n","/** @license React v16.13.1\n * react-is.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'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","'use strict';\n\n/** @type {import('./uri')} */\nmodule.exports = URIError;\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\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","exports.__esModule = true;\nexports.warn = exports.requestIdleCallback = exports.reducePropsToState = exports.mapStateOnServer = exports.handleClientStateChange = exports.convertReactPropstoHtmlAttributes = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _objectAssign = require(\"object-assign\");\n\nvar _objectAssign2 = _interopRequireDefault(_objectAssign);\n\nvar _HelmetConstants = require(\"./HelmetConstants.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar encodeSpecialCharacters = function encodeSpecialCharacters(str) {\n var encode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n if (encode === false) {\n return String(str);\n }\n\n return String(str).replace(/&/g, \"&\").replace(//g, \">\").replace(/\"/g, \""\").replace(/'/g, \"'\");\n};\n\nvar getTitleFromPropsList = function getTitleFromPropsList(propsList) {\n var innermostTitle = getInnermostProperty(propsList, _HelmetConstants.TAG_NAMES.TITLE);\n var innermostTemplate = getInnermostProperty(propsList, _HelmetConstants.HELMET_PROPS.TITLE_TEMPLATE);\n\n if (innermostTemplate && innermostTitle) {\n // use function arg to avoid need to escape $ characters\n return innermostTemplate.replace(/%s/g, function () {\n return innermostTitle;\n });\n }\n\n var innermostDefaultTitle = getInnermostProperty(propsList, _HelmetConstants.HELMET_PROPS.DEFAULT_TITLE);\n\n return innermostTitle || innermostDefaultTitle || undefined;\n};\n\nvar getOnChangeClientState = function getOnChangeClientState(propsList) {\n return getInnermostProperty(propsList, _HelmetConstants.HELMET_PROPS.ON_CHANGE_CLIENT_STATE) || function () {};\n};\n\nvar getAttributesFromPropsList = function getAttributesFromPropsList(tagType, propsList) {\n return propsList.filter(function (props) {\n return typeof props[tagType] !== \"undefined\";\n }).map(function (props) {\n return props[tagType];\n }).reduce(function (tagAttrs, current) {\n return _extends({}, tagAttrs, current);\n }, {});\n};\n\nvar getBaseTagFromPropsList = function getBaseTagFromPropsList(primaryAttributes, propsList) {\n return propsList.filter(function (props) {\n return typeof props[_HelmetConstants.TAG_NAMES.BASE] !== \"undefined\";\n }).map(function (props) {\n return props[_HelmetConstants.TAG_NAMES.BASE];\n }).reverse().reduce(function (innermostBaseTag, tag) {\n if (!innermostBaseTag.length) {\n var keys = Object.keys(tag);\n\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var lowerCaseAttributeKey = attributeKey.toLowerCase();\n\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && tag[lowerCaseAttributeKey]) {\n return innermostBaseTag.concat(tag);\n }\n }\n }\n\n return innermostBaseTag;\n }, []);\n};\n\nvar getTagsFromPropsList = function getTagsFromPropsList(tagName, primaryAttributes, propsList) {\n // Calculate list of tags, giving priority innermost component (end of the propslist)\n var approvedSeenTags = {};\n\n return propsList.filter(function (props) {\n if (Array.isArray(props[tagName])) {\n return true;\n }\n if (typeof props[tagName] !== \"undefined\") {\n warn(\"Helmet: \" + tagName + \" should be of type \\\"Array\\\". Instead found type \\\"\" + _typeof(props[tagName]) + \"\\\"\");\n }\n return false;\n }).map(function (props) {\n return props[tagName];\n }).reverse().reduce(function (approvedTags, instanceTags) {\n var instanceSeenTags = {};\n\n instanceTags.filter(function (tag) {\n var primaryAttributeKey = void 0;\n var keys = Object.keys(tag);\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var lowerCaseAttributeKey = attributeKey.toLowerCase();\n\n // Special rule with link tags, since rel and href are both primary tags, rel takes priority\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && !(primaryAttributeKey === _HelmetConstants.TAG_PROPERTIES.REL && tag[primaryAttributeKey].toLowerCase() === \"canonical\") && !(lowerCaseAttributeKey === _HelmetConstants.TAG_PROPERTIES.REL && tag[lowerCaseAttributeKey].toLowerCase() === \"stylesheet\")) {\n primaryAttributeKey = lowerCaseAttributeKey;\n }\n // Special case for innerHTML which doesn't work lowercased\n if (primaryAttributes.indexOf(attributeKey) !== -1 && (attributeKey === _HelmetConstants.TAG_PROPERTIES.INNER_HTML || attributeKey === _HelmetConstants.TAG_PROPERTIES.CSS_TEXT || attributeKey === _HelmetConstants.TAG_PROPERTIES.ITEM_PROP)) {\n primaryAttributeKey = attributeKey;\n }\n }\n\n if (!primaryAttributeKey || !tag[primaryAttributeKey]) {\n return false;\n }\n\n var value = tag[primaryAttributeKey].toLowerCase();\n\n if (!approvedSeenTags[primaryAttributeKey]) {\n approvedSeenTags[primaryAttributeKey] = {};\n }\n\n if (!instanceSeenTags[primaryAttributeKey]) {\n instanceSeenTags[primaryAttributeKey] = {};\n }\n\n if (!approvedSeenTags[primaryAttributeKey][value]) {\n instanceSeenTags[primaryAttributeKey][value] = true;\n return true;\n }\n\n return false;\n }).reverse().forEach(function (tag) {\n return approvedTags.push(tag);\n });\n\n // Update seen tags with tags from this instance\n var keys = Object.keys(instanceSeenTags);\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var tagUnion = (0, _objectAssign2.default)({}, approvedSeenTags[attributeKey], instanceSeenTags[attributeKey]);\n\n approvedSeenTags[attributeKey] = tagUnion;\n }\n\n return approvedTags;\n }, []).reverse();\n};\n\nvar getInnermostProperty = function getInnermostProperty(propsList, property) {\n for (var i = propsList.length - 1; i >= 0; i--) {\n var props = propsList[i];\n\n if (props.hasOwnProperty(property)) {\n return props[property];\n }\n }\n\n return null;\n};\n\nvar reducePropsToState = function reducePropsToState(propsList) {\n return {\n baseTag: getBaseTagFromPropsList([_HelmetConstants.TAG_PROPERTIES.HREF], propsList),\n bodyAttributes: getAttributesFromPropsList(_HelmetConstants.ATTRIBUTE_NAMES.BODY, propsList),\n encode: getInnermostProperty(propsList, _HelmetConstants.HELMET_PROPS.ENCODE_SPECIAL_CHARACTERS),\n htmlAttributes: getAttributesFromPropsList(_HelmetConstants.ATTRIBUTE_NAMES.HTML, propsList),\n linkTags: getTagsFromPropsList(_HelmetConstants.TAG_NAMES.LINK, [_HelmetConstants.TAG_PROPERTIES.REL, _HelmetConstants.TAG_PROPERTIES.HREF], propsList),\n metaTags: getTagsFromPropsList(_HelmetConstants.TAG_NAMES.META, [_HelmetConstants.TAG_PROPERTIES.NAME, _HelmetConstants.TAG_PROPERTIES.CHARSET, _HelmetConstants.TAG_PROPERTIES.HTTPEQUIV, _HelmetConstants.TAG_PROPERTIES.PROPERTY, _HelmetConstants.TAG_PROPERTIES.ITEM_PROP], propsList),\n noscriptTags: getTagsFromPropsList(_HelmetConstants.TAG_NAMES.NOSCRIPT, [_HelmetConstants.TAG_PROPERTIES.INNER_HTML], propsList),\n onChangeClientState: getOnChangeClientState(propsList),\n scriptTags: getTagsFromPropsList(_HelmetConstants.TAG_NAMES.SCRIPT, [_HelmetConstants.TAG_PROPERTIES.SRC, _HelmetConstants.TAG_PROPERTIES.INNER_HTML], propsList),\n styleTags: getTagsFromPropsList(_HelmetConstants.TAG_NAMES.STYLE, [_HelmetConstants.TAG_PROPERTIES.CSS_TEXT], propsList),\n title: getTitleFromPropsList(propsList),\n titleAttributes: getAttributesFromPropsList(_HelmetConstants.ATTRIBUTE_NAMES.TITLE, propsList)\n };\n};\n\nvar requestIdleCallback = function () {\n if (typeof window !== \"undefined\" && typeof window.requestIdleCallback !== \"undefined\") {\n return window.requestIdleCallback;\n }\n\n return function (cb) {\n var start = Date.now();\n return setTimeout(function () {\n cb({\n didTimeout: false,\n timeRemaining: function timeRemaining() {\n return Math.max(0, 50 - (Date.now() - start));\n }\n });\n }, 1);\n };\n}();\n\nvar cancelIdleCallback = function () {\n if (typeof window !== \"undefined\" && typeof window.cancelIdleCallback !== \"undefined\") {\n return window.cancelIdleCallback;\n }\n\n return function (id) {\n return clearTimeout(id);\n };\n}();\n\nvar warn = function warn(msg) {\n return console && typeof console.warn === \"function\" && console.warn(msg);\n};\n\nvar _helmetIdleCallback = null;\n\nvar handleClientStateChange = function handleClientStateChange(newState) {\n var baseTag = newState.baseTag,\n bodyAttributes = newState.bodyAttributes,\n htmlAttributes = newState.htmlAttributes,\n linkTags = newState.linkTags,\n metaTags = newState.metaTags,\n noscriptTags = newState.noscriptTags,\n onChangeClientState = newState.onChangeClientState,\n scriptTags = newState.scriptTags,\n styleTags = newState.styleTags,\n title = newState.title,\n titleAttributes = newState.titleAttributes;\n\n\n if (_helmetIdleCallback) {\n cancelIdleCallback(_helmetIdleCallback);\n }\n\n _helmetIdleCallback = requestIdleCallback(function () {\n updateAttributes(_HelmetConstants.TAG_NAMES.BODY, bodyAttributes);\n updateAttributes(_HelmetConstants.TAG_NAMES.HTML, htmlAttributes);\n\n updateTitle(title, titleAttributes);\n\n var tagUpdates = {\n baseTag: updateTags(_HelmetConstants.TAG_NAMES.BASE, baseTag),\n linkTags: updateTags(_HelmetConstants.TAG_NAMES.LINK, linkTags),\n metaTags: updateTags(_HelmetConstants.TAG_NAMES.META, metaTags),\n noscriptTags: updateTags(_HelmetConstants.TAG_NAMES.NOSCRIPT, noscriptTags),\n scriptTags: updateTags(_HelmetConstants.TAG_NAMES.SCRIPT, scriptTags),\n styleTags: updateTags(_HelmetConstants.TAG_NAMES.STYLE, styleTags)\n };\n\n var addedTags = {};\n var removedTags = {};\n\n Object.keys(tagUpdates).forEach(function (tagType) {\n var _tagUpdates$tagType = tagUpdates[tagType],\n newTags = _tagUpdates$tagType.newTags,\n oldTags = _tagUpdates$tagType.oldTags;\n\n\n if (newTags.length) {\n addedTags[tagType] = newTags;\n }\n if (oldTags.length) {\n removedTags[tagType] = tagUpdates[tagType].oldTags;\n }\n });\n\n _helmetIdleCallback = null;\n onChangeClientState(newState, addedTags, removedTags);\n });\n};\n\nvar updateTitle = function updateTitle(title, attributes) {\n if (typeof title === \"string\" && document.title !== title) {\n document.title = title;\n }\n\n updateAttributes(_HelmetConstants.TAG_NAMES.TITLE, attributes);\n};\n\nvar updateAttributes = function updateAttributes(tagName, attributes) {\n var elementTag = document.getElementsByTagName(tagName)[0];\n\n if (!elementTag) {\n return;\n }\n\n var helmetAttributeString = elementTag.getAttribute(_HelmetConstants.HELMET_ATTRIBUTE);\n var helmetAttributes = helmetAttributeString ? helmetAttributeString.split(\",\") : [];\n var attributesToRemove = [].concat(helmetAttributes);\n var attributeKeys = Object.keys(attributes);\n\n for (var i = 0; i < attributeKeys.length; i++) {\n var attribute = attributeKeys[i];\n var value = attributes[attribute] || \"\";\n\n if (elementTag.getAttribute(attribute) !== value) {\n elementTag.setAttribute(attribute, value);\n }\n\n if (helmetAttributes.indexOf(attribute) === -1) {\n helmetAttributes.push(attribute);\n }\n\n var indexToSave = attributesToRemove.indexOf(attribute);\n if (indexToSave !== -1) {\n attributesToRemove.splice(indexToSave, 1);\n }\n }\n\n for (var _i = attributesToRemove.length - 1; _i >= 0; _i--) {\n elementTag.removeAttribute(attributesToRemove[_i]);\n }\n\n if (helmetAttributes.length === attributesToRemove.length) {\n elementTag.removeAttribute(_HelmetConstants.HELMET_ATTRIBUTE);\n } else if (elementTag.getAttribute(_HelmetConstants.HELMET_ATTRIBUTE) !== attributeKeys.join(\",\")) {\n elementTag.setAttribute(_HelmetConstants.HELMET_ATTRIBUTE, attributeKeys.join(\",\"));\n }\n};\n\nvar updateTags = function updateTags(type, tags) {\n var headElement = document.head || document.querySelector(_HelmetConstants.TAG_NAMES.HEAD);\n var tagNodes = headElement.querySelectorAll(type + \"[\" + _HelmetConstants.HELMET_ATTRIBUTE + \"]\");\n var oldTags = Array.prototype.slice.call(tagNodes);\n var newTags = [];\n var indexToDelete = void 0;\n\n if (tags && tags.length) {\n tags.forEach(function (tag) {\n var newElement = document.createElement(type);\n\n for (var attribute in tag) {\n if (tag.hasOwnProperty(attribute)) {\n if (attribute === _HelmetConstants.TAG_PROPERTIES.INNER_HTML) {\n newElement.innerHTML = tag.innerHTML;\n } else if (attribute === _HelmetConstants.TAG_PROPERTIES.CSS_TEXT) {\n if (newElement.styleSheet) {\n newElement.styleSheet.cssText = tag.cssText;\n } else {\n newElement.appendChild(document.createTextNode(tag.cssText));\n }\n } else {\n var value = typeof tag[attribute] === \"undefined\" ? \"\" : tag[attribute];\n newElement.setAttribute(attribute, value);\n }\n }\n }\n\n newElement.setAttribute(_HelmetConstants.HELMET_ATTRIBUTE, \"true\");\n\n // Remove a duplicate tag from domTagstoRemove, so it isn't cleared.\n if (oldTags.some(function (existingTag, index) {\n indexToDelete = index;\n return newElement.isEqualNode(existingTag);\n })) {\n oldTags.splice(indexToDelete, 1);\n } else {\n newTags.push(newElement);\n }\n });\n }\n\n oldTags.forEach(function (tag) {\n return tag.parentNode.removeChild(tag);\n });\n newTags.forEach(function (tag) {\n return headElement.appendChild(tag);\n });\n\n return {\n oldTags: oldTags,\n newTags: newTags\n };\n};\n\nvar generateElementAttributesAsString = function generateElementAttributesAsString(attributes) {\n return Object.keys(attributes).reduce(function (str, key) {\n var attr = typeof attributes[key] !== \"undefined\" ? key + \"=\\\"\" + attributes[key] + \"\\\"\" : \"\" + key;\n return str ? str + \" \" + attr : attr;\n }, \"\");\n};\n\nvar generateTitleAsString = function generateTitleAsString(type, title, attributes, encode) {\n var attributeString = generateElementAttributesAsString(attributes);\n return attributeString ? \"<\" + type + \" \" + _HelmetConstants.HELMET_ATTRIBUTE + \"=\\\"true\\\" \" + attributeString + \">\" + encodeSpecialCharacters(title, encode) + \"\" : \"<\" + type + \" \" + _HelmetConstants.HELMET_ATTRIBUTE + \"=\\\"true\\\">\" + encodeSpecialCharacters(title, encode) + \"\";\n};\n\nvar generateTagsAsString = function generateTagsAsString(type, tags, encode) {\n return tags.reduce(function (str, tag) {\n var attributeHtml = Object.keys(tag).filter(function (attribute) {\n return !(attribute === _HelmetConstants.TAG_PROPERTIES.INNER_HTML || attribute === _HelmetConstants.TAG_PROPERTIES.CSS_TEXT);\n }).reduce(function (string, attribute) {\n var attr = typeof tag[attribute] === \"undefined\" ? attribute : attribute + \"=\\\"\" + encodeSpecialCharacters(tag[attribute], encode) + \"\\\"\";\n return string ? string + \" \" + attr : attr;\n }, \"\");\n\n var tagContent = tag.innerHTML || tag.cssText || \"\";\n\n var isSelfClosing = _HelmetConstants.SELF_CLOSING_TAGS.indexOf(type) === -1;\n\n return str + \"<\" + type + \" \" + _HelmetConstants.HELMET_ATTRIBUTE + \"=\\\"true\\\" \" + attributeHtml + (isSelfClosing ? \"/>\" : \">\" + tagContent + \"\");\n }, \"\");\n};\n\nvar convertElementAttributestoReactProps = function convertElementAttributestoReactProps(attributes) {\n var initProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n return Object.keys(attributes).reduce(function (obj, key) {\n obj[_HelmetConstants.REACT_TAG_MAP[key] || key] = attributes[key];\n return obj;\n }, initProps);\n};\n\nvar convertReactPropstoHtmlAttributes = function convertReactPropstoHtmlAttributes(props) {\n var initAttributes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n return Object.keys(props).reduce(function (obj, key) {\n obj[_HelmetConstants.HTML_TAG_MAP[key] || key] = props[key];\n return obj;\n }, initAttributes);\n};\n\nvar generateTitleAsReactComponent = function generateTitleAsReactComponent(type, title, attributes) {\n var _initProps;\n\n // assigning into an array to define toString function on it\n var initProps = (_initProps = {\n key: title\n }, _initProps[_HelmetConstants.HELMET_ATTRIBUTE] = true, _initProps);\n var props = convertElementAttributestoReactProps(attributes, initProps);\n\n return [_react2.default.createElement(_HelmetConstants.TAG_NAMES.TITLE, props, title)];\n};\n\nvar generateTagsAsReactComponent = function generateTagsAsReactComponent(type, tags) {\n return tags.map(function (tag, i) {\n var _mappedTag;\n\n var mappedTag = (_mappedTag = {\n key: i\n }, _mappedTag[_HelmetConstants.HELMET_ATTRIBUTE] = true, _mappedTag);\n\n Object.keys(tag).forEach(function (attribute) {\n var mappedAttribute = _HelmetConstants.REACT_TAG_MAP[attribute] || attribute;\n\n if (mappedAttribute === _HelmetConstants.TAG_PROPERTIES.INNER_HTML || mappedAttribute === _HelmetConstants.TAG_PROPERTIES.CSS_TEXT) {\n var content = tag.innerHTML || tag.cssText;\n mappedTag.dangerouslySetInnerHTML = { __html: content };\n } else {\n mappedTag[mappedAttribute] = tag[attribute];\n }\n });\n\n return _react2.default.createElement(type, mappedTag);\n });\n};\n\nvar getMethodsForTag = function getMethodsForTag(type, tags, encode) {\n switch (type) {\n case _HelmetConstants.TAG_NAMES.TITLE:\n return {\n toComponent: function toComponent() {\n return generateTitleAsReactComponent(type, tags.title, tags.titleAttributes, encode);\n },\n toString: function toString() {\n return generateTitleAsString(type, tags.title, tags.titleAttributes, encode);\n }\n };\n case _HelmetConstants.ATTRIBUTE_NAMES.BODY:\n case _HelmetConstants.ATTRIBUTE_NAMES.HTML:\n return {\n toComponent: function toComponent() {\n return convertElementAttributestoReactProps(tags);\n },\n toString: function toString() {\n return generateElementAttributesAsString(tags);\n }\n };\n default:\n return {\n toComponent: function toComponent() {\n return generateTagsAsReactComponent(type, tags);\n },\n toString: function toString() {\n return generateTagsAsString(type, tags, encode);\n }\n };\n }\n};\n\nvar mapStateOnServer = function mapStateOnServer(_ref) {\n var baseTag = _ref.baseTag,\n bodyAttributes = _ref.bodyAttributes,\n encode = _ref.encode,\n htmlAttributes = _ref.htmlAttributes,\n linkTags = _ref.linkTags,\n metaTags = _ref.metaTags,\n noscriptTags = _ref.noscriptTags,\n scriptTags = _ref.scriptTags,\n styleTags = _ref.styleTags,\n _ref$title = _ref.title,\n title = _ref$title === undefined ? \"\" : _ref$title,\n titleAttributes = _ref.titleAttributes;\n return {\n base: getMethodsForTag(_HelmetConstants.TAG_NAMES.BASE, baseTag, encode),\n bodyAttributes: getMethodsForTag(_HelmetConstants.ATTRIBUTE_NAMES.BODY, bodyAttributes, encode),\n htmlAttributes: getMethodsForTag(_HelmetConstants.ATTRIBUTE_NAMES.HTML, htmlAttributes, encode),\n link: getMethodsForTag(_HelmetConstants.TAG_NAMES.LINK, linkTags, encode),\n meta: getMethodsForTag(_HelmetConstants.TAG_NAMES.META, metaTags, encode),\n noscript: getMethodsForTag(_HelmetConstants.TAG_NAMES.NOSCRIPT, noscriptTags, encode),\n script: getMethodsForTag(_HelmetConstants.TAG_NAMES.SCRIPT, scriptTags, encode),\n style: getMethodsForTag(_HelmetConstants.TAG_NAMES.STYLE, styleTags, encode),\n title: getMethodsForTag(_HelmetConstants.TAG_NAMES.TITLE, { title: title, titleAttributes: titleAttributes }, encode)\n };\n};\n\nexports.convertReactPropstoHtmlAttributes = convertReactPropstoHtmlAttributes;\nexports.handleClientStateChange = handleClientStateChange;\nexports.mapStateOnServer = mapStateOnServer;\nexports.reducePropsToState = reducePropsToState;\nexports.requestIdleCallback = requestIdleCallback;\nexports.warn = warn;","'use strict';\n\nvar undefined;\n\nvar $Object = require('es-object-atoms');\n\nvar $Error = require('es-errors');\nvar $EvalError = require('es-errors/eval');\nvar $RangeError = require('es-errors/range');\nvar $ReferenceError = require('es-errors/ref');\nvar $SyntaxError = require('es-errors/syntax');\nvar $TypeError = require('es-errors/type');\nvar $URIError = require('es-errors/uri');\n\nvar abs = require('math-intrinsics/abs');\nvar floor = require('math-intrinsics/floor');\nvar max = require('math-intrinsics/max');\nvar min = require('math-intrinsics/min');\nvar pow = require('math-intrinsics/pow');\nvar round = require('math-intrinsics/round');\nvar sign = require('math-intrinsics/sign');\n\nvar $Function = Function;\n\n// eslint-disable-next-line consistent-return\nvar getEvalledConstructor = function (expressionSyntax) {\n\ttry {\n\t\treturn $Function('\"use strict\"; return (' + expressionSyntax + ').constructor;')();\n\t} catch (e) {}\n};\n\nvar $gOPD = require('gopd');\nvar $defineProperty = require('es-define-property');\n\nvar throwTypeError = function () {\n\tthrow new $TypeError();\n};\nvar ThrowTypeError = $gOPD\n\t? (function () {\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n\t\t\targuments.callee; // IE 8 does not throw here\n\t\t\treturn throwTypeError;\n\t\t} catch (calleeThrows) {\n\t\t\ttry {\n\t\t\t\t// IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n\t\t\t\treturn $gOPD(arguments, 'callee').get;\n\t\t\t} catch (gOPDthrows) {\n\t\t\t\treturn throwTypeError;\n\t\t\t}\n\t\t}\n\t}())\n\t: throwTypeError;\n\nvar hasSymbols = require('has-symbols')();\n\nvar getProto = require('get-proto');\nvar $ObjectGPO = require('get-proto/Object.getPrototypeOf');\nvar $ReflectGPO = require('get-proto/Reflect.getPrototypeOf');\n\nvar $apply = require('call-bind-apply-helpers/functionApply');\nvar $call = require('call-bind-apply-helpers/functionCall');\n\nvar needsEval = {};\n\nvar TypedArray = typeof Uint8Array === 'undefined' || !getProto ? undefined : getProto(Uint8Array);\n\nvar INTRINSICS = {\n\t__proto__: null,\n\t'%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,\n\t'%Array%': Array,\n\t'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n\t'%ArrayIteratorPrototype%': hasSymbols && getProto ? getProto([][Symbol.iterator]()) : undefined,\n\t'%AsyncFromSyncIteratorPrototype%': undefined,\n\t'%AsyncFunction%': needsEval,\n\t'%AsyncGenerator%': needsEval,\n\t'%AsyncGeneratorFunction%': needsEval,\n\t'%AsyncIteratorPrototype%': needsEval,\n\t'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n\t'%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,\n\t'%BigInt64Array%': typeof BigInt64Array === 'undefined' ? undefined : BigInt64Array,\n\t'%BigUint64Array%': typeof BigUint64Array === 'undefined' ? undefined : BigUint64Array,\n\t'%Boolean%': Boolean,\n\t'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n\t'%Date%': Date,\n\t'%decodeURI%': decodeURI,\n\t'%decodeURIComponent%': decodeURIComponent,\n\t'%encodeURI%': encodeURI,\n\t'%encodeURIComponent%': encodeURIComponent,\n\t'%Error%': $Error,\n\t'%eval%': eval, // eslint-disable-line no-eval\n\t'%EvalError%': $EvalError,\n\t'%Float16Array%': typeof Float16Array === 'undefined' ? undefined : Float16Array,\n\t'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n\t'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n\t'%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,\n\t'%Function%': $Function,\n\t'%GeneratorFunction%': needsEval,\n\t'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n\t'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n\t'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n\t'%isFinite%': isFinite,\n\t'%isNaN%': isNaN,\n\t'%IteratorPrototype%': hasSymbols && getProto ? getProto(getProto([][Symbol.iterator]())) : undefined,\n\t'%JSON%': typeof JSON === 'object' ? JSON : undefined,\n\t'%Map%': typeof Map === 'undefined' ? undefined : Map,\n\t'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Map()[Symbol.iterator]()),\n\t'%Math%': Math,\n\t'%Number%': Number,\n\t'%Object%': $Object,\n\t'%Object.getOwnPropertyDescriptor%': $gOPD,\n\t'%parseFloat%': parseFloat,\n\t'%parseInt%': parseInt,\n\t'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n\t'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n\t'%RangeError%': $RangeError,\n\t'%ReferenceError%': $ReferenceError,\n\t'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n\t'%RegExp%': RegExp,\n\t'%Set%': typeof Set === 'undefined' ? undefined : Set,\n\t'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Set()[Symbol.iterator]()),\n\t'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n\t'%String%': String,\n\t'%StringIteratorPrototype%': hasSymbols && getProto ? getProto(''[Symbol.iterator]()) : undefined,\n\t'%Symbol%': hasSymbols ? Symbol : undefined,\n\t'%SyntaxError%': $SyntaxError,\n\t'%ThrowTypeError%': ThrowTypeError,\n\t'%TypedArray%': TypedArray,\n\t'%TypeError%': $TypeError,\n\t'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n\t'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n\t'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n\t'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n\t'%URIError%': $URIError,\n\t'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n\t'%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,\n\t'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet,\n\n\t'%Function.prototype.call%': $call,\n\t'%Function.prototype.apply%': $apply,\n\t'%Object.defineProperty%': $defineProperty,\n\t'%Object.getPrototypeOf%': $ObjectGPO,\n\t'%Math.abs%': abs,\n\t'%Math.floor%': floor,\n\t'%Math.max%': max,\n\t'%Math.min%': min,\n\t'%Math.pow%': pow,\n\t'%Math.round%': round,\n\t'%Math.sign%': sign,\n\t'%Reflect.getPrototypeOf%': $ReflectGPO\n};\n\nif (getProto) {\n\ttry {\n\t\tnull.error; // eslint-disable-line no-unused-expressions\n\t} catch (e) {\n\t\t// https://github.com/tc39/proposal-shadowrealm/pull/384#issuecomment-1364264229\n\t\tvar errorProto = getProto(getProto(e));\n\t\tINTRINSICS['%Error.prototype%'] = errorProto;\n\t}\n}\n\nvar doEval = function doEval(name) {\n\tvar value;\n\tif (name === '%AsyncFunction%') {\n\t\tvalue = getEvalledConstructor('async function () {}');\n\t} else if (name === '%GeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('function* () {}');\n\t} else if (name === '%AsyncGeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('async function* () {}');\n\t} else if (name === '%AsyncGenerator%') {\n\t\tvar fn = doEval('%AsyncGeneratorFunction%');\n\t\tif (fn) {\n\t\t\tvalue = fn.prototype;\n\t\t}\n\t} else if (name === '%AsyncIteratorPrototype%') {\n\t\tvar gen = doEval('%AsyncGenerator%');\n\t\tif (gen && getProto) {\n\t\t\tvalue = getProto(gen.prototype);\n\t\t}\n\t}\n\n\tINTRINSICS[name] = value;\n\n\treturn value;\n};\n\nvar LEGACY_ALIASES = {\n\t__proto__: null,\n\t'%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],\n\t'%ArrayPrototype%': ['Array', 'prototype'],\n\t'%ArrayProto_entries%': ['Array', 'prototype', 'entries'],\n\t'%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],\n\t'%ArrayProto_keys%': ['Array', 'prototype', 'keys'],\n\t'%ArrayProto_values%': ['Array', 'prototype', 'values'],\n\t'%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],\n\t'%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],\n\t'%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],\n\t'%BooleanPrototype%': ['Boolean', 'prototype'],\n\t'%DataViewPrototype%': ['DataView', 'prototype'],\n\t'%DatePrototype%': ['Date', 'prototype'],\n\t'%ErrorPrototype%': ['Error', 'prototype'],\n\t'%EvalErrorPrototype%': ['EvalError', 'prototype'],\n\t'%Float32ArrayPrototype%': ['Float32Array', 'prototype'],\n\t'%Float64ArrayPrototype%': ['Float64Array', 'prototype'],\n\t'%FunctionPrototype%': ['Function', 'prototype'],\n\t'%Generator%': ['GeneratorFunction', 'prototype'],\n\t'%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],\n\t'%Int8ArrayPrototype%': ['Int8Array', 'prototype'],\n\t'%Int16ArrayPrototype%': ['Int16Array', 'prototype'],\n\t'%Int32ArrayPrototype%': ['Int32Array', 'prototype'],\n\t'%JSONParse%': ['JSON', 'parse'],\n\t'%JSONStringify%': ['JSON', 'stringify'],\n\t'%MapPrototype%': ['Map', 'prototype'],\n\t'%NumberPrototype%': ['Number', 'prototype'],\n\t'%ObjectPrototype%': ['Object', 'prototype'],\n\t'%ObjProto_toString%': ['Object', 'prototype', 'toString'],\n\t'%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],\n\t'%PromisePrototype%': ['Promise', 'prototype'],\n\t'%PromiseProto_then%': ['Promise', 'prototype', 'then'],\n\t'%Promise_all%': ['Promise', 'all'],\n\t'%Promise_reject%': ['Promise', 'reject'],\n\t'%Promise_resolve%': ['Promise', 'resolve'],\n\t'%RangeErrorPrototype%': ['RangeError', 'prototype'],\n\t'%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],\n\t'%RegExpPrototype%': ['RegExp', 'prototype'],\n\t'%SetPrototype%': ['Set', 'prototype'],\n\t'%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],\n\t'%StringPrototype%': ['String', 'prototype'],\n\t'%SymbolPrototype%': ['Symbol', 'prototype'],\n\t'%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],\n\t'%TypedArrayPrototype%': ['TypedArray', 'prototype'],\n\t'%TypeErrorPrototype%': ['TypeError', 'prototype'],\n\t'%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],\n\t'%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],\n\t'%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],\n\t'%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],\n\t'%URIErrorPrototype%': ['URIError', 'prototype'],\n\t'%WeakMapPrototype%': ['WeakMap', 'prototype'],\n\t'%WeakSetPrototype%': ['WeakSet', 'prototype']\n};\n\nvar bind = require('function-bind');\nvar hasOwn = require('hasown');\nvar $concat = bind.call($call, Array.prototype.concat);\nvar $spliceApply = bind.call($apply, Array.prototype.splice);\nvar $replace = bind.call($call, String.prototype.replace);\nvar $strSlice = bind.call($call, String.prototype.slice);\nvar $exec = bind.call($call, RegExp.prototype.exec);\n\n/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\nvar rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g; /** Used to match backslashes in property paths. */\nvar stringToPath = function stringToPath(string) {\n\tvar first = $strSlice(string, 0, 1);\n\tvar last = $strSlice(string, -1);\n\tif (first === '%' && last !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected closing `%`');\n\t} else if (last === '%' && first !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected opening `%`');\n\t}\n\tvar result = [];\n\t$replace(string, rePropName, function (match, number, quote, subString) {\n\t\tresult[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;\n\t});\n\treturn result;\n};\n/* end adaptation */\n\nvar getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n\tvar intrinsicName = name;\n\tvar alias;\n\tif (hasOwn(LEGACY_ALIASES, intrinsicName)) {\n\t\talias = LEGACY_ALIASES[intrinsicName];\n\t\tintrinsicName = '%' + alias[0] + '%';\n\t}\n\n\tif (hasOwn(INTRINSICS, intrinsicName)) {\n\t\tvar value = INTRINSICS[intrinsicName];\n\t\tif (value === needsEval) {\n\t\t\tvalue = doEval(intrinsicName);\n\t\t}\n\t\tif (typeof value === 'undefined' && !allowMissing) {\n\t\t\tthrow new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n\t\t}\n\n\t\treturn {\n\t\t\talias: alias,\n\t\t\tname: intrinsicName,\n\t\t\tvalue: value\n\t\t};\n\t}\n\n\tthrow new $SyntaxError('intrinsic ' + name + ' does not exist!');\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n\tif (typeof name !== 'string' || name.length === 0) {\n\t\tthrow new $TypeError('intrinsic name must be a non-empty string');\n\t}\n\tif (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n\t\tthrow new $TypeError('\"allowMissing\" argument must be a boolean');\n\t}\n\n\tif ($exec(/^%?[^%]*%?$/, name) === null) {\n\t\tthrow new $SyntaxError('`%` may not be present anywhere but at the beginning and end of the intrinsic name');\n\t}\n\tvar parts = stringToPath(name);\n\tvar intrinsicBaseName = parts.length > 0 ? parts[0] : '';\n\n\tvar intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);\n\tvar intrinsicRealName = intrinsic.name;\n\tvar value = intrinsic.value;\n\tvar skipFurtherCaching = false;\n\n\tvar alias = intrinsic.alias;\n\tif (alias) {\n\t\tintrinsicBaseName = alias[0];\n\t\t$spliceApply(parts, $concat([0, 1], alias));\n\t}\n\n\tfor (var i = 1, isOwn = true; i < parts.length; i += 1) {\n\t\tvar part = parts[i];\n\t\tvar first = $strSlice(part, 0, 1);\n\t\tvar last = $strSlice(part, -1);\n\t\tif (\n\t\t\t(\n\t\t\t\t(first === '\"' || first === \"'\" || first === '`')\n\t\t\t\t|| (last === '\"' || last === \"'\" || last === '`')\n\t\t\t)\n\t\t\t&& first !== last\n\t\t) {\n\t\t\tthrow new $SyntaxError('property names with quotes must have matching quotes');\n\t\t}\n\t\tif (part === 'constructor' || !isOwn) {\n\t\t\tskipFurtherCaching = true;\n\t\t}\n\n\t\tintrinsicBaseName += '.' + part;\n\t\tintrinsicRealName = '%' + intrinsicBaseName + '%';\n\n\t\tif (hasOwn(INTRINSICS, intrinsicRealName)) {\n\t\t\tvalue = INTRINSICS[intrinsicRealName];\n\t\t} else if (value != null) {\n\t\t\tif (!(part in value)) {\n\t\t\t\tif (!allowMissing) {\n\t\t\t\t\tthrow new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n\t\t\t\t}\n\t\t\t\treturn void undefined;\n\t\t\t}\n\t\t\tif ($gOPD && (i + 1) >= parts.length) {\n\t\t\t\tvar desc = $gOPD(value, part);\n\t\t\t\tisOwn = !!desc;\n\n\t\t\t\t// By convention, when a data property is converted to an accessor\n\t\t\t\t// property to emulate a data property that does not suffer from\n\t\t\t\t// the override mistake, that accessor's getter is marked with\n\t\t\t\t// an `originalValue` property. Here, when we detect this, we\n\t\t\t\t// uphold the illusion by pretending to see that original data\n\t\t\t\t// property, i.e., returning the value rather than the getter\n\t\t\t\t// itself.\n\t\t\t\tif (isOwn && 'get' in desc && !('originalValue' in desc.get)) {\n\t\t\t\t\tvalue = desc.get;\n\t\t\t\t} else {\n\t\t\t\t\tvalue = value[part];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tisOwn = hasOwn(value, part);\n\t\t\t\tvalue = value[part];\n\t\t\t}\n\n\t\t\tif (isOwn && !skipFurtherCaching) {\n\t\t\t\tINTRINSICS[intrinsicRealName] = value;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar callBindBasic = require('call-bind-apply-helpers');\n\n/** @type {(thisArg: string, searchString: string, position?: number) => number} */\nvar $indexOf = callBindBasic([GetIntrinsic('%String.prototype.indexOf%')]);\n\n/** @type {import('.')} */\nmodule.exports = function callBoundIntrinsic(name, allowMissing) {\n\t// eslint-disable-next-line no-extra-parens\n\tvar intrinsic = /** @type {Parameters[0][0]} */ (GetIntrinsic(name, !!allowMissing));\n\tif (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {\n\t\treturn callBindBasic([intrinsic]);\n\t}\n\treturn intrinsic;\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","/*\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","'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 callBind = require('call-bind-apply-helpers');\nvar gOPD = require('gopd');\n\nvar hasProtoAccessor;\ntry {\n\t// eslint-disable-next-line no-extra-parens, no-proto\n\thasProtoAccessor = /** @type {{ __proto__?: typeof Array.prototype }} */ ([]).__proto__ === Array.prototype;\n} catch (e) {\n\tif (!e || typeof e !== 'object' || !('code' in e) || e.code !== 'ERR_PROTO_ACCESS') {\n\t\tthrow e;\n\t}\n}\n\n// eslint-disable-next-line no-extra-parens\nvar desc = !!hasProtoAccessor && gOPD && gOPD(Object.prototype, /** @type {keyof typeof Object.prototype} */ ('__proto__'));\n\nvar $Object = Object;\nvar $getPrototypeOf = $Object.getPrototypeOf;\n\n/** @type {import('./get')} */\nmodule.exports = desc && typeof desc.get === 'function'\n\t? callBind([desc.get])\n\t: typeof $getPrototypeOf === 'function'\n\t\t? /** @type {import('./get')} */ function getDunder(value) {\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\treturn $getPrototypeOf(value == null ? value : $Object(value));\n\t\t}\n\t\t: false;\n","'use strict';\n\n/** @type {import('./eval')} */\nmodule.exports = EvalError;\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 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","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nexports.default = promiseMiddleware;\n\nvar _isPromise = require('./isPromise');\n\nvar _isPromise2 = _interopRequireDefault(_isPromise);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar defaultTypes = ['PENDING', 'FULFILLED', 'REJECTED'];\n\n/**\n * @function promiseMiddleware\n * @description\n * @returns {function} thunk\n */\nfunction promiseMiddleware() {\n var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var promiseTypeSuffixes = config.promiseTypeSuffixes || defaultTypes;\n\n return function (ref) {\n var dispatch = ref.dispatch;\n\n\n return function (next) {\n return function (action) {\n if (action.payload) {\n if (!(0, _isPromise2.default)(action.payload) && !(0, _isPromise2.default)(action.payload.promise)) {\n return next(action);\n }\n } else {\n return next(action);\n }\n\n // Deconstruct the properties of the original action object to constants\n var type = action.type,\n payload = action.payload,\n meta = action.meta;\n\n // Assign values for promise type suffixes\n\n var _promiseTypeSuffixes = _slicedToArray(promiseTypeSuffixes, 3),\n PENDING = _promiseTypeSuffixes[0],\n FULFILLED = _promiseTypeSuffixes[1],\n REJECTED = _promiseTypeSuffixes[2];\n\n /**\n * @function getAction\n * @description Utility function for creating a rejected or fulfilled\n * flux standard action object.\n * @param {boolean} Is the action rejected?\n * @returns {object} action\n */\n\n\n var getAction = function getAction(newPayload, isRejected) {\n return _extends({\n type: type + '_' + (isRejected ? REJECTED : FULFILLED)\n }, newPayload === null || typeof newPayload === 'undefined' ? {} : {\n payload: newPayload\n }, meta !== undefined ? { meta: meta } : {}, isRejected ? {\n error: true\n } : {});\n };\n\n /**\n * Assign values for promise and data variables. In the case the payload\n * is an object with a `promise` and `data` property, the values of those\n * properties will be used. In the case the payload is a promise, the\n * value of the payload will be used and data will be null.\n */\n var promise = void 0;\n var data = void 0;\n\n if (!(0, _isPromise2.default)(action.payload) && _typeof(action.payload) === 'object') {\n promise = payload.promise;\n data = payload.data;\n } else {\n promise = payload;\n data = undefined;\n }\n\n /**\n * First, dispatch the pending action. This flux standard action object\n * describes the pending state of a promise and will include any data\n * (for optimistic updates) and/or meta from the original action.\n */\n next(_extends({\n type: type + '_' + PENDING\n }, data !== undefined ? { payload: data } : {}, meta !== undefined ? { meta: meta } : {}));\n\n /*\n * @function handleReject\n * @description Dispatch the rejected action and return\n * an error object. The error object is the original error\n * that was thrown. The user of the library is responsible for\n * best practices in ensure that they are throwing an Error object.\n * @params reason The reason the promise was rejected\n * @returns {object}\n */\n var handleReject = function handleReject(reason) {\n var rejectedAction = getAction(reason, true);\n dispatch(rejectedAction);\n throw reason;\n };\n\n /*\n * @function handleFulfill\n * @description Dispatch the fulfilled action and\n * return the success object. The success object should\n * contain the value and the dispatched action.\n * @param value The value the promise was resloved with\n * @returns {object}\n */\n var handleFulfill = function handleFulfill() {\n var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\n var resolvedAction = getAction(value, false);\n dispatch(resolvedAction);\n\n return { value: value, action: resolvedAction };\n };\n\n /**\n * Second, dispatch a rejected or fulfilled action. This flux standard\n * action object will describe the resolved state of the promise. In\n * the case of a rejected promise, it will include an `error` property.\n *\n * In order to allow proper chaining of actions using `then`, a new\n * promise is constructed and returned. This promise will resolve\n * with two properties: (1) the value (if fulfilled) or reason\n * (if rejected) and (2) the flux standard action.\n *\n * Rejected object:\n * {\n * reason: ...\n * action: {\n * error: true,\n * type: 'ACTION_REJECTED',\n * payload: ...\n * }\n * }\n *\n * Fulfilled object:\n * {\n * value: ...\n * action: {\n * type: 'ACTION_FULFILLED',\n * payload: ...\n * }\n * }\n */\n return promise.then(handleFulfill, handleReject);\n };\n };\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","'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');\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 hasToStringTag = require('has-tostringtag/shams')();\nvar callBound = require('call-bound');\n\nvar $toString = callBound('Object.prototype.toString');\n\n/** @type {import('.')} */\nvar isStandardArguments = function isArguments(value) {\n\tif (\n\t\thasToStringTag\n\t\t&& value\n\t\t&& typeof value === 'object'\n\t\t&& Symbol.toStringTag in value\n\t) {\n\t\treturn false;\n\t}\n\treturn $toString(value) === '[object Arguments]';\n};\n\n/** @type {import('.')} */\nvar isLegacyArguments = function isArguments(value) {\n\tif (isStandardArguments(value)) {\n\t\treturn true;\n\t}\n\treturn value !== null\n\t\t&& typeof value === 'object'\n\t\t&& 'length' in value\n\t\t&& typeof value.length === 'number'\n\t\t&& value.length >= 0\n\t\t&& $toString(value) !== '[object Array]'\n\t\t&& 'callee' in value\n\t\t&& $toString(value.callee) === '[object Function]';\n};\n\nvar supportsStandardArguments = (function () {\n\treturn isStandardArguments(arguments);\n}());\n\n// @ts-expect-error TODO make this not error\nisStandardArguments.isLegacyArguments = isLegacyArguments; // for tests\n\n/** @type {import('.')} */\nmodule.exports = supportsStandardArguments ? isStandardArguments : isLegacyArguments;\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","'use strict';\n\n/** @type {import('./functionCall')} */\nmodule.exports = Function.prototype.call;\n","'use strict';\n\nvar bind = require('function-bind');\nvar $apply = require('./functionApply');\nvar actualApply = require('./actualApply');\n\n/** @type {import('./applyBind')} */\nmodule.exports = function applyBind() {\n\treturn actualApply(bind, $apply, arguments);\n};\n","'use strict';\n\nvar $Object = require('es-object-atoms');\n\n/** @type {import('./Object.getPrototypeOf')} */\nmodule.exports = $Object.getPrototypeOf || null;\n","'use strict';\n\n/** @type {import('./reflectApply')} */\nmodule.exports = typeof Reflect !== 'undefined' && Reflect && Reflect.apply;\n","'use strict';\n\nvar bind = require('function-bind');\n\nvar $apply = require('./functionApply');\nvar $call = require('./functionCall');\nvar $reflectApply = require('./reflectApply');\n\n/** @type {import('./actualApply')} */\nmodule.exports = $reflectApply || bind.call($call, $apply);\n","//\n\nmodule.exports = function shallowEqual(objA, objB, compare, compareContext) {\n var ret = compare ? compare.call(compareContext, objA, objB) : void 0;\n\n if (ret !== void 0) {\n return !!ret;\n }\n\n if (objA === objB) {\n return true;\n }\n\n if (typeof objA !== \"object\" || !objA || typeof objB !== \"object\" || !objB) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n\n // Test for A's keys different from B.\n for (var idx = 0; idx < keysA.length; idx++) {\n var key = keysA[idx];\n\n if (!bHasOwnProperty(key)) {\n return false;\n }\n\n var valueA = objA[key];\n var valueB = objB[key];\n\n ret = compare ? compare.call(compareContext, valueA, valueB, key) : void 0;\n\n if (ret === false || (ret === void 0 && valueA !== valueB)) {\n return false;\n }\n }\n\n return true;\n};\n","let f = true;\r\nlet l = false;\r\nconst q = [];\r\n\r\nconst init = () => {\r\n l = true;\r\n q.forEach(x => x());\r\n};\r\n\r\nconst caricaComponente = ({ callback, ...params }) => {\r\n if (f) {\r\n f = false;\r\n !!callback && q.push(callback);\r\n const e = document.createElement('script');\r\n e.type = 'text/javascript';\r\n e.src = `${params.url}/home/browserexportjs`;\r\n e.async = false;\r\n e.defer = false;\r\n e.onload = () => window.inizializzaPotenzialiPratiche({ ...params, callback: init });\r\n const h = document.getElementsByTagName('head')[0];\r\n h.insertBefore(e, h.lastChild);\r\n }\r\n else if (l) {\r\n !!callback && callback();\r\n }\r\n else {\r\n !!callback && q.push(callback);\r\n }\r\n};\r\n\r\nmodule.exports = {\r\n inizializza(params) {\r\n caricaComponente(params);\r\n },\r\n\r\n};\r\n","'use strict';\n\nvar $defineProperty = require('es-define-property');\n\nvar hasPropertyDescriptors = function hasPropertyDescriptors() {\n\treturn !!$defineProperty;\n};\n\nhasPropertyDescriptors.hasArrayLengthDefineBug = function hasArrayLengthDefineBug() {\n\t// node v0.6 has a bug where array lengths can be Set but not Defined\n\tif (!$defineProperty) {\n\t\treturn null;\n\t}\n\ttry {\n\t\treturn $defineProperty([], 'length', { value: 1 }).length !== 1;\n\t} catch (e) {\n\t\t// In Firefox 4-22, defining length on an array throws an exception.\n\t\treturn true;\n\t}\n};\n\nmodule.exports = hasPropertyDescriptors;\n","'use strict';\n\n/** @type {import('./gOPD')} */\nmodule.exports = Object.getOwnPropertyDescriptor;\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","exports.__esModule = true;\nexports.Helmet = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _reactSideEffect = require(\"react-side-effect\");\n\nvar _reactSideEffect2 = _interopRequireDefault(_reactSideEffect);\n\nvar _deepEqual = require(\"deep-equal\");\n\nvar _deepEqual2 = _interopRequireDefault(_deepEqual);\n\nvar _HelmetUtils = require(\"./HelmetUtils.js\");\n\nvar _HelmetConstants = require(\"./HelmetConstants.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Helmet = function Helmet(Component) {\n var _class, _temp;\n\n return _temp = _class = function (_React$Component) {\n _inherits(HelmetWrapper, _React$Component);\n\n function HelmetWrapper() {\n _classCallCheck(this, HelmetWrapper);\n\n return _possibleConstructorReturn(this, _React$Component.apply(this, arguments));\n }\n\n HelmetWrapper.prototype.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {\n return !(0, _deepEqual2.default)(this.props, nextProps);\n };\n\n HelmetWrapper.prototype.mapNestedChildrenToProps = function mapNestedChildrenToProps(child, nestedChildren) {\n if (!nestedChildren) {\n return null;\n }\n\n switch (child.type) {\n case _HelmetConstants.TAG_NAMES.SCRIPT:\n case _HelmetConstants.TAG_NAMES.NOSCRIPT:\n return {\n innerHTML: nestedChildren\n };\n\n case _HelmetConstants.TAG_NAMES.STYLE:\n return {\n cssText: nestedChildren\n };\n }\n\n throw new Error(\"<\" + child.type + \" /> elements are self-closing and can not contain children. Refer to our API for more information.\");\n };\n\n HelmetWrapper.prototype.flattenArrayTypeChildren = function flattenArrayTypeChildren(_ref) {\n var _extends2;\n\n var child = _ref.child,\n arrayTypeChildren = _ref.arrayTypeChildren,\n newChildProps = _ref.newChildProps,\n nestedChildren = _ref.nestedChildren;\n\n return _extends({}, arrayTypeChildren, (_extends2 = {}, _extends2[child.type] = [].concat(arrayTypeChildren[child.type] || [], [_extends({}, newChildProps, this.mapNestedChildrenToProps(child, nestedChildren))]), _extends2));\n };\n\n HelmetWrapper.prototype.mapObjectTypeChildren = function mapObjectTypeChildren(_ref2) {\n var _extends3, _extends4;\n\n var child = _ref2.child,\n newProps = _ref2.newProps,\n newChildProps = _ref2.newChildProps,\n nestedChildren = _ref2.nestedChildren;\n\n switch (child.type) {\n case _HelmetConstants.TAG_NAMES.TITLE:\n return _extends({}, newProps, (_extends3 = {}, _extends3[child.type] = nestedChildren, _extends3.titleAttributes = _extends({}, newChildProps), _extends3));\n\n case _HelmetConstants.TAG_NAMES.BODY:\n return _extends({}, newProps, {\n bodyAttributes: _extends({}, newChildProps)\n });\n\n case _HelmetConstants.TAG_NAMES.HTML:\n return _extends({}, newProps, {\n htmlAttributes: _extends({}, newChildProps)\n });\n }\n\n return _extends({}, newProps, (_extends4 = {}, _extends4[child.type] = _extends({}, newChildProps), _extends4));\n };\n\n HelmetWrapper.prototype.mapArrayTypeChildrenToProps = function mapArrayTypeChildrenToProps(arrayTypeChildren, newProps) {\n var newFlattenedProps = _extends({}, newProps);\n\n Object.keys(arrayTypeChildren).forEach(function (arrayChildName) {\n var _extends5;\n\n newFlattenedProps = _extends({}, newFlattenedProps, (_extends5 = {}, _extends5[arrayChildName] = arrayTypeChildren[arrayChildName], _extends5));\n });\n\n return newFlattenedProps;\n };\n\n HelmetWrapper.prototype.warnOnInvalidChildren = function warnOnInvalidChildren(child, nestedChildren) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!_HelmetConstants.VALID_TAG_NAMES.some(function (name) {\n return child.type === name;\n })) {\n if (typeof child.type === \"function\") {\n return (0, _HelmetUtils.warn)(\"You may be attempting to nest components within each other, which is not allowed. Refer to our API for more information.\");\n }\n\n return (0, _HelmetUtils.warn)(\"Only elements types \" + _HelmetConstants.VALID_TAG_NAMES.join(\", \") + \" are allowed. Helmet does not support rendering <\" + child.type + \"> elements. Refer to our API for more information.\");\n }\n\n if (nestedChildren && typeof nestedChildren !== \"string\") {\n throw new Error(\"Helmet expects a string as a child of <\" + child.type + \">. Did you forget to wrap your children in braces? ( <\" + child.type + \">{``} ) Refer to our API for more information.\");\n }\n }\n\n return true;\n };\n\n HelmetWrapper.prototype.mapChildrenToProps = function mapChildrenToProps(children, newProps) {\n var _this2 = this;\n\n var arrayTypeChildren = {};\n\n _react2.default.Children.forEach(children, function (child) {\n if (!child || !child.props) {\n return;\n }\n\n var _child$props = child.props,\n nestedChildren = _child$props.children,\n childProps = _objectWithoutProperties(_child$props, [\"children\"]);\n\n var newChildProps = (0, _HelmetUtils.convertReactPropstoHtmlAttributes)(childProps);\n\n _this2.warnOnInvalidChildren(child, nestedChildren);\n\n switch (child.type) {\n case _HelmetConstants.TAG_NAMES.LINK:\n case _HelmetConstants.TAG_NAMES.META:\n case _HelmetConstants.TAG_NAMES.NOSCRIPT:\n case _HelmetConstants.TAG_NAMES.SCRIPT:\n case _HelmetConstants.TAG_NAMES.STYLE:\n arrayTypeChildren = _this2.flattenArrayTypeChildren({\n child: child,\n arrayTypeChildren: arrayTypeChildren,\n newChildProps: newChildProps,\n nestedChildren: nestedChildren\n });\n break;\n\n default:\n newProps = _this2.mapObjectTypeChildren({\n child: child,\n newProps: newProps,\n newChildProps: newChildProps,\n nestedChildren: nestedChildren\n });\n break;\n }\n });\n\n newProps = this.mapArrayTypeChildrenToProps(arrayTypeChildren, newProps);\n return newProps;\n };\n\n HelmetWrapper.prototype.render = function render() {\n var _props = this.props,\n children = _props.children,\n props = _objectWithoutProperties(_props, [\"children\"]);\n\n var newProps = _extends({}, props);\n\n if (children) {\n newProps = this.mapChildrenToProps(children, newProps);\n }\n\n return _react2.default.createElement(Component, newProps);\n };\n\n _createClass(HelmetWrapper, null, [{\n key: \"canUseDOM\",\n\n\n // Component.peek comes from react-side-effect:\n // For testing, you may use a static peek() method available on the returned component.\n // It lets you get the current state without resetting the mounted instance stack.\n // Don’t use it for anything other than testing.\n\n /**\n * @param {Object} base: {\"target\": \"_blank\", \"href\": \"http://mysite.com/\"}\n * @param {Object} bodyAttributes: {\"className\": \"root\"}\n * @param {String} defaultTitle: \"Default Title\"\n * @param {Boolean} encodeSpecialCharacters: true\n * @param {Object} htmlAttributes: {\"lang\": \"en\", \"amp\": undefined}\n * @param {Array} link: [{\"rel\": \"canonical\", \"href\": \"http://mysite.com/example\"}]\n * @param {Array} meta: [{\"name\": \"description\", \"content\": \"Test description\"}]\n * @param {Array} noscript: [{\"innerHTML\": \" console.log(newState)\"\n * @param {Array} script: [{\"type\": \"text/javascript\", \"src\": \"http://mysite.com/js/test.js\"}]\n * @param {Array} style: [{\"type\": \"text/css\", \"cssText\": \"div { display: block; color: blue; }\"}]\n * @param {String} title: \"Title\"\n * @param {Object} titleAttributes: {\"itemprop\": \"name\"}\n * @param {String} titleTemplate: \"MySite.com - %s\"\n */\n set: function set(canUseDOM) {\n Component.canUseDOM = canUseDOM;\n }\n }]);\n\n return HelmetWrapper;\n }(_react2.default.Component), _class.propTypes = {\n base: _propTypes2.default.object,\n bodyAttributes: _propTypes2.default.object,\n children: _propTypes2.default.oneOfType([_propTypes2.default.arrayOf(_propTypes2.default.node), _propTypes2.default.node]),\n defaultTitle: _propTypes2.default.string,\n encodeSpecialCharacters: _propTypes2.default.bool,\n htmlAttributes: _propTypes2.default.object,\n link: _propTypes2.default.arrayOf(_propTypes2.default.object),\n meta: _propTypes2.default.arrayOf(_propTypes2.default.object),\n noscript: _propTypes2.default.arrayOf(_propTypes2.default.object),\n onChangeClientState: _propTypes2.default.func,\n script: _propTypes2.default.arrayOf(_propTypes2.default.object),\n style: _propTypes2.default.arrayOf(_propTypes2.default.object),\n title: _propTypes2.default.string,\n titleAttributes: _propTypes2.default.object,\n titleTemplate: _propTypes2.default.string\n }, _class.defaultProps = {\n encodeSpecialCharacters: true\n }, _class.peek = Component.peek, _class.rewind = function () {\n var mappedState = Component.rewind();\n if (!mappedState) {\n // provide fallback if mappedState is undefined\n mappedState = (0, _HelmetUtils.mapStateOnServer)({\n baseTag: [],\n bodyAttributes: {},\n encodeSpecialCharacters: true,\n htmlAttributes: {},\n linkTags: [],\n metaTags: [],\n noscriptTags: [],\n scriptTags: [],\n styleTags: [],\n title: \"\",\n titleAttributes: {}\n });\n }\n\n return mappedState;\n }, _temp;\n};\n\nvar NullComponent = function NullComponent() {\n return null;\n};\n\nvar HelmetSideEffects = (0, _reactSideEffect2.default)(_HelmetUtils.reducePropsToState, _HelmetUtils.handleClientStateChange, _HelmetUtils.mapStateOnServer)(NullComponent);\n\nvar HelmetExport = Helmet(HelmetSideEffects);\nHelmetExport.renderStatic = HelmetExport.rewind;\n\nexports.Helmet = HelmetExport;\nexports.default = HelmetExport;","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar invariant = require(\"invariant\");\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar splice = Array.prototype.splice;\nvar toString = Object.prototype.toString;\nfunction type(obj) {\n return toString.call(obj).slice(8, -1);\n}\nvar assign = Object.assign || /* istanbul ignore next */ (function (target, source) {\n getAllKeys(source).forEach(function (key) {\n if (hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n });\n return target;\n});\nvar getAllKeys = typeof Object.getOwnPropertySymbols === 'function'\n ? function (obj) { return Object.keys(obj).concat(Object.getOwnPropertySymbols(obj)); }\n /* istanbul ignore next */\n : function (obj) { return Object.keys(obj); };\nfunction copy(object) {\n return Array.isArray(object)\n ? assign(object.constructor(object.length), object)\n : (type(object) === 'Map')\n ? new Map(object)\n : (type(object) === 'Set')\n ? new Set(object)\n : (object && typeof object === 'object')\n ? assign(Object.create(Object.getPrototypeOf(object)), object)\n /* istanbul ignore next */\n : object;\n}\nvar Context = /** @class */ (function () {\n function Context() {\n this.commands = assign({}, defaultCommands);\n this.update = this.update.bind(this);\n // Deprecated: update.extend, update.isEquals and update.newContext\n this.update.extend = this.extend = this.extend.bind(this);\n this.update.isEquals = function (x, y) { return x === y; };\n this.update.newContext = function () { return new Context().update; };\n }\n Object.defineProperty(Context.prototype, \"isEquals\", {\n get: function () {\n return this.update.isEquals;\n },\n set: function (value) {\n this.update.isEquals = value;\n },\n enumerable: true,\n configurable: true\n });\n Context.prototype.extend = function (directive, fn) {\n this.commands[directive] = fn;\n };\n Context.prototype.update = function (object, $spec) {\n var _this = this;\n var spec = (typeof $spec === 'function') ? { $apply: $spec } : $spec;\n if (!(Array.isArray(object) && Array.isArray(spec))) {\n invariant(!Array.isArray(spec), 'update(): You provided an invalid spec to update(). The spec may ' +\n 'not contain an array except as the value of $set, $push, $unshift, ' +\n '$splice or any custom command allowing an array value.');\n }\n invariant(typeof spec === 'object' && spec !== null, 'update(): You provided an invalid spec to update(). The spec and ' +\n 'every included key path must be plain objects containing one of the ' +\n 'following commands: %s.', Object.keys(this.commands).join(', '));\n var nextObject = object;\n getAllKeys(spec).forEach(function (key) {\n if (hasOwnProperty.call(_this.commands, key)) {\n var objectWasNextObject = object === nextObject;\n nextObject = _this.commands[key](spec[key], nextObject, spec, object);\n if (objectWasNextObject && _this.isEquals(nextObject, object)) {\n nextObject = object;\n }\n }\n else {\n var nextValueForKey = type(object) === 'Map'\n ? _this.update(object.get(key), spec[key])\n : _this.update(object[key], spec[key]);\n var nextObjectValue = type(nextObject) === 'Map'\n ? nextObject.get(key)\n : nextObject[key];\n if (!_this.isEquals(nextValueForKey, nextObjectValue)\n || typeof nextValueForKey === 'undefined'\n && !hasOwnProperty.call(object, key)) {\n if (nextObject === object) {\n nextObject = copy(object);\n }\n if (type(nextObject) === 'Map') {\n nextObject.set(key, nextValueForKey);\n }\n else {\n nextObject[key] = nextValueForKey;\n }\n }\n }\n });\n return nextObject;\n };\n return Context;\n}());\nexports.Context = Context;\nvar defaultCommands = {\n $push: function (value, nextObject, spec) {\n invariantPushAndUnshift(nextObject, spec, '$push');\n return value.length ? nextObject.concat(value) : nextObject;\n },\n $unshift: function (value, nextObject, spec) {\n invariantPushAndUnshift(nextObject, spec, '$unshift');\n return value.length ? value.concat(nextObject) : nextObject;\n },\n $splice: function (value, nextObject, spec, originalObject) {\n invariantSplices(nextObject, spec);\n value.forEach(function (args) {\n invariantSplice(args);\n if (nextObject === originalObject && args.length) {\n nextObject = copy(originalObject);\n }\n splice.apply(nextObject, args);\n });\n return nextObject;\n },\n $set: function (value, _nextObject, spec) {\n invariantSet(spec);\n return value;\n },\n $toggle: function (targets, nextObject) {\n invariantSpecArray(targets, '$toggle');\n var nextObjectCopy = targets.length ? copy(nextObject) : nextObject;\n targets.forEach(function (target) {\n nextObjectCopy[target] = !nextObject[target];\n });\n return nextObjectCopy;\n },\n $unset: function (value, nextObject, _spec, originalObject) {\n invariantSpecArray(value, '$unset');\n value.forEach(function (key) {\n if (Object.hasOwnProperty.call(nextObject, key)) {\n if (nextObject === originalObject) {\n nextObject = copy(originalObject);\n }\n delete nextObject[key];\n }\n });\n return nextObject;\n },\n $add: function (values, nextObject, _spec, originalObject) {\n invariantMapOrSet(nextObject, '$add');\n invariantSpecArray(values, '$add');\n if (type(nextObject) === 'Map') {\n values.forEach(function (_a) {\n var key = _a[0], value = _a[1];\n if (nextObject === originalObject && nextObject.get(key) !== value) {\n nextObject = copy(originalObject);\n }\n nextObject.set(key, value);\n });\n }\n else {\n values.forEach(function (value) {\n if (nextObject === originalObject && !nextObject.has(value)) {\n nextObject = copy(originalObject);\n }\n nextObject.add(value);\n });\n }\n return nextObject;\n },\n $remove: function (value, nextObject, _spec, originalObject) {\n invariantMapOrSet(nextObject, '$remove');\n invariantSpecArray(value, '$remove');\n value.forEach(function (key) {\n if (nextObject === originalObject && nextObject.has(key)) {\n nextObject = copy(originalObject);\n }\n nextObject.delete(key);\n });\n return nextObject;\n },\n $merge: function (value, nextObject, _spec, originalObject) {\n invariantMerge(nextObject, value);\n getAllKeys(value).forEach(function (key) {\n if (value[key] !== nextObject[key]) {\n if (nextObject === originalObject) {\n nextObject = copy(originalObject);\n }\n nextObject[key] = value[key];\n }\n });\n return nextObject;\n },\n $apply: function (value, original) {\n invariantApply(value);\n return value(original);\n },\n};\nvar defaultContext = new Context();\nexports.isEquals = defaultContext.update.isEquals;\nexports.extend = defaultContext.extend;\nexports.default = defaultContext.update;\n// @ts-ignore\nexports.default.default = module.exports = assign(exports.default, exports);\n// invariants\nfunction invariantPushAndUnshift(value, spec, command) {\n invariant(Array.isArray(value), 'update(): expected target of %s to be an array; got %s.', command, value);\n invariantSpecArray(spec[command], command);\n}\nfunction invariantSpecArray(spec, command) {\n invariant(Array.isArray(spec), 'update(): expected spec of %s to be an array; got %s. ' +\n 'Did you forget to wrap your parameter in an array?', command, spec);\n}\nfunction invariantSplices(value, spec) {\n invariant(Array.isArray(value), 'Expected $splice target to be an array; got %s', value);\n invariantSplice(spec.$splice);\n}\nfunction invariantSplice(value) {\n invariant(Array.isArray(value), 'update(): expected spec of $splice to be an array of arrays; got %s. ' +\n 'Did you forget to wrap your parameters in an array?', value);\n}\nfunction invariantApply(fn) {\n invariant(typeof fn === 'function', 'update(): expected spec of $apply to be a function; got %s.', fn);\n}\nfunction invariantSet(spec) {\n invariant(Object.keys(spec).length === 1, 'Cannot have more than one key in an object with $set');\n}\nfunction invariantMerge(target, specValue) {\n invariant(specValue && typeof specValue === 'object', 'update(): $merge expects a spec of type \\'object\\'; got %s', specValue);\n invariant(target && typeof target === 'object', 'update(): $merge expects a target of type \\'object\\'; got %s', target);\n}\nfunction invariantMapOrSet(target, command) {\n var typeOfTarget = type(target);\n invariant(typeOfTarget === 'Map' || typeOfTarget === 'Set', 'update(): %s expects a target of type Set or Map; got %s', command, typeOfTarget);\n}\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\nvar define = require('define-data-property');\nvar hasDescriptors = require('has-property-descriptors')();\nvar gOPD = require('gopd');\n\nvar $TypeError = require('es-errors/type');\nvar $floor = GetIntrinsic('%Math.floor%');\n\n/** @type {import('.')} */\nmodule.exports = function setFunctionLength(fn, length) {\n\tif (typeof fn !== 'function') {\n\t\tthrow new $TypeError('`fn` is not a function');\n\t}\n\tif (typeof length !== 'number' || length < 0 || length > 0xFFFFFFFF || $floor(length) !== length) {\n\t\tthrow new $TypeError('`length` must be a positive 32-bit integer');\n\t}\n\n\tvar loose = arguments.length > 2 && !!arguments[2];\n\n\tvar functionLengthIsConfigurable = true;\n\tvar functionLengthIsWritable = true;\n\tif ('length' in fn && gOPD) {\n\t\tvar desc = gOPD(fn, 'length');\n\t\tif (desc && !desc.configurable) {\n\t\t\tfunctionLengthIsConfigurable = false;\n\t\t}\n\t\tif (desc && !desc.writable) {\n\t\t\tfunctionLengthIsWritable = false;\n\t\t}\n\t}\n\n\tif (functionLengthIsConfigurable || functionLengthIsWritable || !loose) {\n\t\tif (hasDescriptors) {\n\t\t\tdefine(/** @type {Parameters[0]} */ (fn), 'length', length, true, true);\n\t\t} else {\n\t\t\tdefine(/** @type {Parameters[0]} */ (fn), 'length', length);\n\t\t}\n\t}\n\treturn fn;\n};\n","'use strict';\n\n/** @type {import('.')} */\nmodule.exports = Error;\n","'use strict';\n\n/** @type {import('./shams')} */\n/* eslint complexity: [2, 18], max-statements: [2, 33] */\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\n\n\t/** @type {{ [k in symbol]?: unknown }} */\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tvar symObj = Object(sym);\n\tif (typeof sym === 'string') { return false; }\n\n\tif (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }\n\tif (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }\n\n\t// temp disabled per https://github.com/ljharb/object.assign/issues/17\n\t// if (sym instanceof Symbol) { return false; }\n\t// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n\t// if (!(symObj instanceof Symbol)) { return false; }\n\n\t// if (typeof Symbol.prototype.toString !== 'function') { return false; }\n\t// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\tvar symVal = 42;\n\tobj[sym] = symVal;\n\tfor (var _ in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\t// eslint-disable-next-line no-extra-parens\n\t\tvar descriptor = /** @type {PropertyDescriptor} */ (Object.getOwnPropertyDescriptor(obj, sym));\n\t\tif (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }\n\t}\n\n\treturn true;\n};\n","'use strict';\n\nvar keys = require('object-keys');\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol('foo') === 'symbol';\n\nvar toStr = Object.prototype.toString;\nvar concat = Array.prototype.concat;\nvar defineDataProperty = require('define-data-property');\n\nvar isFunction = function (fn) {\n\treturn typeof fn === 'function' && toStr.call(fn) === '[object Function]';\n};\n\nvar supportsDescriptors = require('has-property-descriptors')();\n\nvar defineProperty = function (object, name, value, predicate) {\n\tif (name in object) {\n\t\tif (predicate === true) {\n\t\t\tif (object[name] === value) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t} else if (!isFunction(predicate) || !predicate()) {\n\t\t\treturn;\n\t\t}\n\t}\n\n\tif (supportsDescriptors) {\n\t\tdefineDataProperty(object, name, value, true);\n\t} else {\n\t\tdefineDataProperty(object, name, value);\n\t}\n};\n\nvar defineProperties = function (object, map) {\n\tvar predicates = arguments.length > 2 ? arguments[2] : {};\n\tvar props = keys(map);\n\tif (hasSymbols) {\n\t\tprops = concat.call(props, Object.getOwnPropertySymbols(map));\n\t}\n\tfor (var i = 0; i < props.length; i += 1) {\n\t\tdefineProperty(object, props[i], map[props[i]], predicates[props[i]]);\n\t}\n};\n\ndefineProperties.supportsDescriptors = !!supportsDescriptors;\n\nmodule.exports = defineProperties;\n","'use strict';\n\nvar call = Function.prototype.call;\nvar $hasOwn = Object.prototype.hasOwnProperty;\nvar bind = require('function-bind');\n\n/** @type {import('.')} */\nmodule.exports = bind.call(call, $hasOwn);\n","'use strict';\n\nvar getPolyfill = require('./polyfill');\nvar define = require('define-properties');\n\nmodule.exports = function shimObjectIs() {\n\tvar polyfill = getPolyfill();\n\tdefine(Object, { is: polyfill }, {\n\t\tis: function testObjectIs() {\n\t\t\treturn Object.is !== polyfill;\n\t\t}\n\t});\n\treturn polyfill;\n};\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar functionsHaveNames = function functionsHaveNames() {\n\treturn typeof function f() {}.name === 'string';\n};\n\nvar gOPD = Object.getOwnPropertyDescriptor;\nif (gOPD) {\n\ttry {\n\t\tgOPD([], 'length');\n\t} catch (e) {\n\t\t// IE 8 has a broken gOPD\n\t\tgOPD = null;\n\t}\n}\n\nfunctionsHaveNames.functionsHaveConfigurableNames = function functionsHaveConfigurableNames() {\n\tif (!functionsHaveNames() || !gOPD) {\n\t\treturn false;\n\t}\n\tvar desc = gOPD(function () {}, 'name');\n\treturn !!desc && !!desc.configurable;\n};\n\nvar $bind = Function.prototype.bind;\n\nfunctionsHaveNames.boundFunctionsHaveNames = function boundFunctionsHaveNames() {\n\treturn functionsHaveNames() && typeof $bind === 'function' && function f() {}.bind().name !== '';\n};\n\nmodule.exports = functionsHaveNames;\n","'use strict';\n\nvar define = require('define-properties');\nvar callBind = require('call-bind');\n\nvar implementation = require('./implementation');\nvar getPolyfill = require('./polyfill');\nvar shim = require('./shim');\n\nvar flagsBound = callBind(getPolyfill());\n\ndefine(flagsBound, {\n\tgetPolyfill: getPolyfill,\n\timplementation: implementation,\n\tshim: shim\n});\n\nmodule.exports = flagsBound;\n","'use strict';\n\n/** @type {import('./syntax')} */\nmodule.exports = SyntaxError;\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 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\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 implementation = require('./implementation');\n\nmodule.exports = function getPolyfill() {\n\treturn typeof Object.is === 'function' ? Object.is : implementation;\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\nexports.__esModule = true;\nfunction 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\nexports['default'] = thunk;","/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\n'use strict';\n\nvar REACT_STATICS = {\n childContextTypes: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\n\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n arguments: true,\n arity: true\n};\n\nvar isGetOwnPropertySymbolsAvailable = typeof Object.getOwnPropertySymbols === 'function';\n\nmodule.exports = function hoistNonReactStatics(targetComponent, sourceComponent, customStatics) {\n if (typeof sourceComponent !== 'string') { // don't hoist over string (html) components\n var keys = Object.getOwnPropertyNames(sourceComponent);\n\n /* istanbul ignore else */\n if (isGetOwnPropertySymbolsAvailable) {\n keys = keys.concat(Object.getOwnPropertySymbols(sourceComponent));\n }\n\n for (var i = 0; i < keys.length; ++i) {\n if (!REACT_STATICS[keys[i]] && !KNOWN_STATICS[keys[i]] && (!customStatics || !customStatics[keys[i]])) {\n try {\n targetComponent[keys[i]] = sourceComponent[keys[i]];\n } catch (error) {\n\n }\n }\n }\n }\n\n return targetComponent;\n};\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}","'use strict';\n\n/** @type {import('./functionApply')} */\nmodule.exports = Function.prototype.apply;\n","'use strict';\n\nvar setFunctionLength = require('set-function-length');\n\nvar $defineProperty = require('es-define-property');\n\nvar callBindBasic = require('call-bind-apply-helpers');\nvar applyBind = require('call-bind-apply-helpers/applyBind');\n\nmodule.exports = function callBind(originalFunction) {\n\tvar func = callBindBasic(arguments);\n\tvar adjustedLength = originalFunction.length - (arguments.length - 1);\n\treturn setFunctionLength(\n\t\tfunc,\n\t\t1 + (adjustedLength > 0 ? adjustedLength : 0),\n\t\ttrue\n\t);\n};\n\nif ($defineProperty) {\n\t$defineProperty(module.exports, 'apply', { value: applyBind });\n} else {\n\tmodule.exports.apply = applyBind;\n}\n","exports.__esModule = true;\nvar ATTRIBUTE_NAMES = exports.ATTRIBUTE_NAMES = {\n BODY: \"bodyAttributes\",\n HTML: \"htmlAttributes\",\n TITLE: \"titleAttributes\"\n};\n\nvar TAG_NAMES = exports.TAG_NAMES = {\n BASE: \"base\",\n BODY: \"body\",\n HEAD: \"head\",\n HTML: \"html\",\n LINK: \"link\",\n META: \"meta\",\n NOSCRIPT: \"noscript\",\n SCRIPT: \"script\",\n STYLE: \"style\",\n TITLE: \"title\"\n};\n\nvar VALID_TAG_NAMES = exports.VALID_TAG_NAMES = Object.keys(TAG_NAMES).map(function (name) {\n return TAG_NAMES[name];\n});\n\nvar TAG_PROPERTIES = exports.TAG_PROPERTIES = {\n CHARSET: \"charset\",\n CSS_TEXT: \"cssText\",\n HREF: \"href\",\n HTTPEQUIV: \"http-equiv\",\n INNER_HTML: \"innerHTML\",\n ITEM_PROP: \"itemprop\",\n NAME: \"name\",\n PROPERTY: \"property\",\n REL: \"rel\",\n SRC: \"src\"\n};\n\nvar REACT_TAG_MAP = exports.REACT_TAG_MAP = {\n \"accesskey\": \"accessKey\",\n \"charset\": \"charSet\",\n \"class\": \"className\",\n \"contenteditable\": \"contentEditable\",\n \"contextmenu\": \"contextMenu\",\n \"http-equiv\": \"httpEquiv\",\n \"itemprop\": \"itemProp\",\n \"tabindex\": \"tabIndex\"\n};\n\nvar HELMET_PROPS = exports.HELMET_PROPS = {\n DEFAULT_TITLE: \"defaultTitle\",\n ENCODE_SPECIAL_CHARACTERS: \"encodeSpecialCharacters\",\n ON_CHANGE_CLIENT_STATE: \"onChangeClientState\",\n TITLE_TEMPLATE: \"titleTemplate\"\n};\n\nvar HTML_TAG_MAP = exports.HTML_TAG_MAP = Object.keys(REACT_TAG_MAP).reduce(function (obj, key) {\n obj[REACT_TAG_MAP[key]] = key;\n return obj;\n}, {});\n\nvar SELF_CLOSING_TAGS = exports.SELF_CLOSING_TAGS = [TAG_NAMES.NOSCRIPT, TAG_NAMES.SCRIPT, TAG_NAMES.STYLE];\n\nvar HELMET_ATTRIBUTE = exports.HELMET_ATTRIBUTE = \"data-react-helmet\";","'use strict';\n\n/** @type {import('./type')} */\nmodule.exports = TypeError;\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 bind = require('function-bind');\nvar $TypeError = require('es-errors/type');\n\nvar $call = require('./functionCall');\nvar $actualApply = require('./actualApply');\n\n/** @type {(args: [Function, thisArg?: unknown, ...args: unknown[]]) => Function} TODO FIXME, find a way to use import('.') */\nmodule.exports = function callBindBasic(args) {\n\tif (args.length < 1 || typeof args[0] !== 'function') {\n\t\tthrow new $TypeError('a function is required');\n\t}\n\treturn $actualApply(bind, $call, args);\n};\n","var rng = require('./lib/rng');\nvar bytesToUuid = require('./lib/bytesToUuid');\n\nfunction v4(options, buf, offset) {\n var i = buf && offset || 0;\n\n if (typeof(options) == 'string') {\n buf = options === 'binary' ? new Array(16) : null;\n options = null;\n }\n options = options || {};\n\n var rnds = options.random || (options.rng || rng)();\n\n // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n rnds[6] = (rnds[6] & 0x0f) | 0x40;\n rnds[8] = (rnds[8] & 0x3f) | 0x80;\n\n // Copy bytes to buffer, if provided\n if (buf) {\n for (var ii = 0; ii < 16; ++ii) {\n buf[i + ii] = rnds[ii];\n }\n }\n\n return buf || bytesToUuid(rnds);\n}\n\nmodule.exports = v4;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","'use strict';\n\nvar keysShim;\nif (!Object.keys) {\n\t// modified from https://github.com/es-shims/es5-shim\n\tvar has = Object.prototype.hasOwnProperty;\n\tvar toStr = Object.prototype.toString;\n\tvar isArgs = require('./isArguments'); // eslint-disable-line global-require\n\tvar isEnumerable = Object.prototype.propertyIsEnumerable;\n\tvar hasDontEnumBug = !isEnumerable.call({ toString: null }, 'toString');\n\tvar hasProtoEnumBug = isEnumerable.call(function () {}, 'prototype');\n\tvar dontEnums = [\n\t\t'toString',\n\t\t'toLocaleString',\n\t\t'valueOf',\n\t\t'hasOwnProperty',\n\t\t'isPrototypeOf',\n\t\t'propertyIsEnumerable',\n\t\t'constructor'\n\t];\n\tvar equalsConstructorPrototype = function (o) {\n\t\tvar ctor = o.constructor;\n\t\treturn ctor && ctor.prototype === o;\n\t};\n\tvar excludedKeys = {\n\t\t$applicationCache: true,\n\t\t$console: true,\n\t\t$external: true,\n\t\t$frame: true,\n\t\t$frameElement: true,\n\t\t$frames: true,\n\t\t$innerHeight: true,\n\t\t$innerWidth: true,\n\t\t$onmozfullscreenchange: true,\n\t\t$onmozfullscreenerror: true,\n\t\t$outerHeight: true,\n\t\t$outerWidth: true,\n\t\t$pageXOffset: true,\n\t\t$pageYOffset: true,\n\t\t$parent: true,\n\t\t$scrollLeft: true,\n\t\t$scrollTop: true,\n\t\t$scrollX: true,\n\t\t$scrollY: true,\n\t\t$self: true,\n\t\t$webkitIndexedDB: true,\n\t\t$webkitStorageInfo: true,\n\t\t$window: true\n\t};\n\tvar hasAutomationEqualityBug = (function () {\n\t\t/* global window */\n\t\tif (typeof window === 'undefined') { return false; }\n\t\tfor (var k in window) {\n\t\t\ttry {\n\t\t\t\tif (!excludedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tequalsConstructorPrototype(window[k]);\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}());\n\tvar equalsConstructorPrototypeIfNotBuggy = function (o) {\n\t\t/* global window */\n\t\tif (typeof window === 'undefined' || !hasAutomationEqualityBug) {\n\t\t\treturn equalsConstructorPrototype(o);\n\t\t}\n\t\ttry {\n\t\t\treturn equalsConstructorPrototype(o);\n\t\t} catch (e) {\n\t\t\treturn false;\n\t\t}\n\t};\n\n\tkeysShim = function keys(object) {\n\t\tvar isObject = object !== null && typeof object === 'object';\n\t\tvar isFunction = toStr.call(object) === '[object Function]';\n\t\tvar isArguments = isArgs(object);\n\t\tvar isString = isObject && toStr.call(object) === '[object String]';\n\t\tvar theKeys = [];\n\n\t\tif (!isObject && !isFunction && !isArguments) {\n\t\t\tthrow new TypeError('Object.keys called on a non-object');\n\t\t}\n\n\t\tvar skipProto = hasProtoEnumBug && isFunction;\n\t\tif (isString && object.length > 0 && !has.call(object, 0)) {\n\t\t\tfor (var i = 0; i < object.length; ++i) {\n\t\t\t\ttheKeys.push(String(i));\n\t\t\t}\n\t\t}\n\n\t\tif (isArguments && object.length > 0) {\n\t\t\tfor (var j = 0; j < object.length; ++j) {\n\t\t\t\ttheKeys.push(String(j));\n\t\t\t}\n\t\t} else {\n\t\t\tfor (var name in object) {\n\t\t\t\tif (!(skipProto && name === 'prototype') && has.call(object, name)) {\n\t\t\t\t\ttheKeys.push(String(name));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (hasDontEnumBug) {\n\t\t\tvar skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);\n\n\t\t\tfor (var k = 0; k < dontEnums.length; ++k) {\n\t\t\t\tif (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) {\n\t\t\t\t\ttheKeys.push(dontEnums[k]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn theKeys;\n\t};\n}\nmodule.exports = keysShim;\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","(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(a,b,c){var d=new XMLHttpRequest;d.open(\"GET\",a),d.responseType=\"blob\",d.onload=function(){g(d.response,b,c)},d.onerror=function(){console.error(\"could not download file\")},d.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.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),g=f.saveAs||(\"object\"!=typeof window||window!==f?function(){}:\"download\"in HTMLAnchorElement.prototype&&!a?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(b,d,e,g){if(g=g||open(\"\",\"_blank\"),g&&(g.document.title=g.document.body.innerText=\"downloading...\"),\"string\"==typeof b)return c(b,d,e);var h=\"application/octet-stream\"===b.type,i=/constructor/i.test(f.HTMLElement)||f.safari,j=/CriOS\\/[\\d]+/.test(navigator.userAgent);if((j||h&&i||a)&&\"undefined\"!=typeof FileReader){var k=new FileReader;k.onloadend=function(){var a=k.result;a=j?a:a.replace(/^data:[^;]*;/,\"data:attachment/file;\"),g?g.location.href=a:location=a,g=null},k.readAsDataURL(b)}else{var l=f.URL||f.webkitURL,m=l.createObjectURL(b);g?g.location=m:location.href=m,g=null,setTimeout(function(){l.revokeObjectURL(m)},4E4)}});f.saveAs=g.saveAs=g,\"undefined\"!=typeof module&&(module.exports=g)});\n\n//# sourceMappingURL=FileSaver.min.js.map","/** @license React v0.17.0\n * scheduler.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'use strict';Object.defineProperty(exports,\"__esModule\",{value:!0});var f,g,h,k,l;\nif(\"undefined\"===typeof window||\"function\"!==typeof MessageChannel){var p=null,q=null,t=function(){if(null!==p)try{var a=exports.unstable_now();p(!0,a);p=null}catch(b){throw setTimeout(t,0),b;}},u=Date.now();exports.unstable_now=function(){return Date.now()-u};f=function(a){null!==p?setTimeout(f,0,a):(p=a,setTimeout(t,0))};g=function(a,b){q=setTimeout(a,b)};h=function(){clearTimeout(q)};k=function(){return!1};l=exports.unstable_forceFrameRate=function(){}}else{var w=window.performance,x=window.Date,\ny=window.setTimeout,z=window.clearTimeout,A=window.requestAnimationFrame,B=window.cancelAnimationFrame;\"undefined\"!==typeof console&&(\"function\"!==typeof A&&console.error(\"This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills\"),\"function\"!==typeof B&&console.error(\"This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills\"));if(\"object\"===typeof w&&\n\"function\"===typeof w.now)exports.unstable_now=function(){return w.now()};else{var C=x.now();exports.unstable_now=function(){return x.now()-C}}var D=!1,E=null,F=-1,G=5,H=0;k=function(){return exports.unstable_now()>=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= 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","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nexports.default = isPromise;\nfunction isPromise(value) {\n if (value !== null && (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object') {\n return value && typeof value.then === 'function';\n }\n\n return false;\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 toStr = Object.prototype.toString;\n\nmodule.exports = function isArguments(value) {\n\tvar str = toStr.call(value);\n\tvar isArgs = str === '[object Arguments]';\n\tif (!isArgs) {\n\t\tisArgs = str !== '[object Array]' &&\n\t\t\tvalue !== null &&\n\t\t\ttypeof value === 'object' &&\n\t\t\ttypeof value.length === 'number' &&\n\t\t\tvalue.length >= 0 &&\n\t\t\ttoStr.call(value.callee) === '[object Function]';\n\t}\n\treturn isArgs;\n};\n","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","'use strict';\n\nvar $isNaN = require('./isNaN');\n\n/** @type {import('./sign')} */\nmodule.exports = function sign(number) {\n\tif ($isNaN(number) || number === 0) {\n\t\treturn number;\n\t}\n\treturn number < 0 ? -1 : +1;\n};\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","'use strict';\n\nvar reflectGetProto = require('./Reflect.getPrototypeOf');\nvar originalGetProto = require('./Object.getPrototypeOf');\n\nvar getDunderProto = require('dunder-proto/get');\n\n/** @type {import('.')} */\nmodule.exports = reflectGetProto\n\t? function getProto(O) {\n\t\t// @ts-expect-error TS can't narrow inside a closure, for some reason\n\t\treturn reflectGetProto(O);\n\t}\n\t: originalGetProto\n\t\t? function getProto(O) {\n\t\t\tif (!O || (typeof O !== 'object' && typeof O !== 'function')) {\n\t\t\t\tthrow new TypeError('getProto: not an object');\n\t\t\t}\n\t\t\t// @ts-expect-error TS can't narrow inside a closure, for some reason\n\t\t\treturn originalGetProto(O);\n\t\t}\n\t\t: getDunderProto\n\t\t\t? function getProto(O) {\n\t\t\t\t// @ts-expect-error TS can't narrow inside a closure, for some reason\n\t\t\t\treturn getDunderProto(O);\n\t\t\t}\n\t\t\t: null;\n","'use strict';\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar React = require('react');\nvar React__default = _interopDefault(React);\nvar shallowEqual = _interopDefault(require('shallowequal'));\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 _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction withSideEffect(reducePropsToState, handleStateChangeOnClient, mapStateOnServer) {\n if (typeof reducePropsToState !== 'function') {\n throw new Error('Expected reducePropsToState to be a function.');\n }\n\n if (typeof handleStateChangeOnClient !== 'function') {\n throw new Error('Expected handleStateChangeOnClient to be a function.');\n }\n\n if (typeof mapStateOnServer !== 'undefined' && typeof mapStateOnServer !== 'function') {\n throw new Error('Expected mapStateOnServer to either be undefined or a function.');\n }\n\n function getDisplayName(WrappedComponent) {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n }\n\n return function wrap(WrappedComponent) {\n if (typeof WrappedComponent !== 'function') {\n throw new Error('Expected WrappedComponent to be a React component.');\n }\n\n var mountedInstances = [];\n var state;\n\n function emitChange() {\n state = reducePropsToState(mountedInstances.map(function (instance) {\n return instance.props;\n }));\n\n if (SideEffect.canUseDOM) {\n handleStateChangeOnClient(state);\n } else if (mapStateOnServer) {\n state = mapStateOnServer(state);\n }\n }\n\n var SideEffect =\n /*#__PURE__*/\n function (_Component) {\n _inheritsLoose(SideEffect, _Component);\n\n function SideEffect() {\n return _Component.apply(this, arguments) || this;\n }\n\n // Try to use displayName of wrapped component\n // Expose canUseDOM so tests can monkeypatch it\n SideEffect.peek = function peek() {\n return state;\n };\n\n SideEffect.rewind = function rewind() {\n if (SideEffect.canUseDOM) {\n throw new Error('You may only call rewind() on the server. Call peek() to read the current state.');\n }\n\n var recordedState = state;\n state = undefined;\n mountedInstances = [];\n return recordedState;\n };\n\n var _proto = SideEffect.prototype;\n\n _proto.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {\n return !shallowEqual(nextProps, this.props);\n };\n\n _proto.componentWillMount = function componentWillMount() {\n mountedInstances.push(this);\n emitChange();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n emitChange();\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n var index = mountedInstances.indexOf(this);\n mountedInstances.splice(index, 1);\n emitChange();\n };\n\n _proto.render = function render() {\n return React__default.createElement(WrappedComponent, this.props);\n };\n\n return SideEffect;\n }(React.Component);\n\n _defineProperty(SideEffect, \"displayName\", \"SideEffect(\" + getDisplayName(WrappedComponent) + \")\");\n\n _defineProperty(SideEffect, \"canUseDOM\", canUseDOM);\n\n return SideEffect;\n };\n}\n\nmodule.exports = withSideEffect;\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/** @type {import('.')} */\nvar $defineProperty = Object.defineProperty || false;\nif ($defineProperty) {\n\ttry {\n\t\t$defineProperty({}, 'a', { value: 1 });\n\t} catch (e) {\n\t\t// IE 8 has a broken defineProperty\n\t\t$defineProperty = false;\n\t}\n}\n\nmodule.exports = $defineProperty;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\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","// Unique ID creation requires a high quality random # generator. In the\n// browser this is a little complicated due to unknown quality of Math.random()\n// and inconsistent support for the `crypto` API. We do the best we can via\n// feature-detection\n\n// getRandomValues needs to be invoked in a context where \"this\" is a Crypto\n// implementation. Also, find the complete implementation of crypto on IE11.\nvar getRandomValues = (typeof(crypto) != 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto)) ||\n (typeof(msCrypto) != 'undefined' && typeof window.msCrypto.getRandomValues == 'function' && msCrypto.getRandomValues.bind(msCrypto));\n\nif (getRandomValues) {\n // WHATWG crypto RNG - http://wiki.whatwg.org/wiki/Crypto\n var rnds8 = new Uint8Array(16); // eslint-disable-line no-undef\n\n module.exports = function whatwgRNG() {\n getRandomValues(rnds8);\n return rnds8;\n };\n} else {\n // Math.random()-based (RNG)\n //\n // If all else fails, use Math.random(). It's fast, but is of unspecified\n // quality.\n var rnds = new Array(16);\n\n module.exports = function mathRNG() {\n for (var i = 0, r; i < 16; i++) {\n if ((i & 0x03) === 0) r = Math.random() * 0x100000000;\n rnds[i] = r >>> ((i & 0x03) << 3) & 0xff;\n }\n\n return rnds;\n };\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","let f = true;\r\n\r\nfunction caricaMenuGeCo(u, t, c, l, a, s) {\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 = `${u}/App/dist/browser-export.js`;\r\n e.async = false;\r\n e.defer = false;\r\n e.onload = function onload() {\r\n window.GeCo.inizializzaMenu(u, t, c, l, a, s);\r\n };\r\n const h = document.getElementsByTagName('head')[0];\r\n h.insertBefore(e, h.lastChild);\r\n }\r\n}\r\n\r\nlet menuPluginCaricato = true;\r\n\r\nfunction caricaMenuPluginGeCo(url, utente, ufficio, container, urlHelpdesk, origineAperturaModaleQuesito, area, servizio) {\r\n if (menuPluginCaricato) {\r\n menuPluginCaricato = false;\r\n const e = document.createElement('script');\r\n e.type = 'text/javascript';\r\n e.src = `${url}/App/dist/browser-export.js`;\r\n e.async = false;\r\n e.defer = false;\r\n e.onload = function onload() {\r\n window.GeCo.inizializzaMenuPlugin(url, utente, ufficio, container, urlHelpdesk, origineAperturaModaleQuesito, area, servizio);\r\n };\r\n const h = document.getElementsByTagName('head')[0];\r\n h.insertBefore(e, h.lastChild);\r\n }\r\n}\r\n\r\nmodule.exports = {\r\n inizializza(u, t, c, l, a, s) {\r\n setTimeout(() => caricaMenuGeCo(u, t, c, l, a, s));\r\n },\r\n inizializzaMenuPlugin(url, utente, ufficio, container, urlHelpdesk, origineAperturaModaleQuesito, area, servizio) {\r\n setTimeout(() => caricaMenuPluginGeCo(url, utente, ufficio, container, urlHelpdesk, origineAperturaModaleQuesito, area, servizio));\r\n },\r\n cambiaUfficio(u) {\r\n window.GeCo && window.GeCo.cambiaUfficio && window.GeCo.cambiaUfficio(u);\r\n },\r\n impostaAreaSelezionata(a) {\r\n window.GeCo && window.GeCo.impostaAreaSelezionata && window.GeCo.impostaAreaSelezionata(a);\r\n },\r\n impostaServizioCorrente(a) {\r\n window.GeCo && window.GeCo.impostaServizioCorrente && window.GeCo.impostaServizioCorrente(a);\r\n },\r\n creaNuovoQuesito() {\r\n window.GeCo && window.GeCo.creaNuovoQuesito && window.GeCo.creaNuovoQuesito();\r\n },\r\n};\r\n","'use strict';\n\nvar supportsDescriptors = require('define-properties').supportsDescriptors;\nvar getPolyfill = require('./polyfill');\nvar gOPD = require('gopd');\nvar defineProperty = Object.defineProperty;\nvar $TypeError = require('es-errors');\nvar getProto = require('get-proto');\nvar regex = /a/;\n\nmodule.exports = function shimFlags() {\n\tif (!supportsDescriptors || !getProto) {\n\t\tthrow new $TypeError('RegExp.prototype.flags requires a true ES5 environment that supports property descriptors');\n\t}\n\tvar polyfill = getPolyfill();\n\tvar proto = getProto(regex);\n\tvar descriptor = gOPD(proto, 'flags');\n\tif (!descriptor || descriptor.get !== polyfill) {\n\t\tdefineProperty(proto, 'flags', {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: false,\n\t\t\tget: polyfill\n\t\t});\n\t}\n\treturn polyfill;\n};\n","'use strict';\n\n/** @type {import('./pow')} */\nmodule.exports = Math.pow;\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\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","/**\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","'use strict';\n\n/** @type {import('./abs')} */\nmodule.exports = Math.abs;\n","var v1 = require('./v1');\nvar v4 = require('./v4');\n\nvar uuid = v4;\nuuid.v1 = v1;\nuuid.v4 = v4;\n\nmodule.exports = uuid;\n","'use strict';\n\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar toStr = Object.prototype.toString;\nvar max = Math.max;\nvar funcType = '[object Function]';\n\nvar concatty = function concatty(a, b) {\n var arr = [];\n\n for (var i = 0; i < a.length; i += 1) {\n arr[i] = a[i];\n }\n for (var j = 0; j < b.length; j += 1) {\n arr[j + a.length] = b[j];\n }\n\n return arr;\n};\n\nvar slicy = function slicy(arrLike, offset) {\n var arr = [];\n for (var i = offset || 0, j = 0; i < arrLike.length; i += 1, j += 1) {\n arr[j] = arrLike[i];\n }\n return arr;\n};\n\nvar joiny = function (arr, joiner) {\n var str = '';\n for (var i = 0; i < arr.length; i += 1) {\n str += arr[i];\n if (i + 1 < arr.length) {\n str += joiner;\n }\n }\n return str;\n};\n\nmodule.exports = function bind(that) {\n var target = this;\n if (typeof target !== 'function' || toStr.apply(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n var args = slicy(arguments, 1);\n\n var bound;\n var binder = function () {\n if (this instanceof bound) {\n var result = target.apply(\n this,\n concatty(args, arguments)\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n }\n return target.apply(\n that,\n concatty(args, arguments)\n );\n\n };\n\n var boundLength = max(0, target.length - args.length);\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n boundArgs[i] = '$' + i;\n }\n\n bound = Function('binder', 'return function (' + joiny(boundArgs, ',') + '){ return binder.apply(this,arguments); }')(binder);\n\n if (target.prototype) {\n var Empty = function Empty() {};\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\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","'use strict';\n\n/** @type {import('./floor')} */\nmodule.exports = Math.floor;\n","module.exports = require('./lib/axios');","'use strict';\n\nvar define = require('define-properties');\nvar callBind = require('call-bind');\n\nvar implementation = require('./implementation');\nvar getPolyfill = require('./polyfill');\nvar shim = require('./shim');\n\nvar polyfill = callBind(getPolyfill(), Object);\n\ndefine(polyfill, {\n\tgetPolyfill: getPolyfill,\n\timplementation: implementation,\n\tshim: shim\n});\n\nmodule.exports = polyfill;\n","'use strict';\n\nvar origSymbol = typeof Symbol !== 'undefined' && Symbol;\nvar hasSymbolSham = require('./shams');\n\n/** @type {import('.')} */\nmodule.exports = function hasNativeSymbols() {\n\tif (typeof origSymbol !== 'function') { return false; }\n\tif (typeof Symbol !== 'function') { return false; }\n\tif (typeof origSymbol('foo') !== 'symbol') { return false; }\n\tif (typeof Symbol('bar') !== 'symbol') { return false; }\n\n\treturn hasSymbolSham();\n};\n","'use strict';\n\nvar hasSymbols = require('has-symbols/shams');\n\n/** @type {import('.')} */\nmodule.exports = function hasToStringTagShams() {\n\treturn hasSymbols() && !!Symbol.toStringTag;\n};\n","'use strict';\n\nvar $defineProperty = require('es-define-property');\n\nvar $SyntaxError = require('es-errors/syntax');\nvar $TypeError = require('es-errors/type');\n\nvar gopd = require('gopd');\n\n/** @type {import('.')} */\nmodule.exports = function defineDataProperty(\n\tobj,\n\tproperty,\n\tvalue\n) {\n\tif (!obj || (typeof obj !== 'object' && typeof obj !== 'function')) {\n\t\tthrow new $TypeError('`obj` must be an object or a function`');\n\t}\n\tif (typeof property !== 'string' && typeof property !== 'symbol') {\n\t\tthrow new $TypeError('`property` must be a string or a symbol`');\n\t}\n\tif (arguments.length > 3 && typeof arguments[3] !== 'boolean' && arguments[3] !== null) {\n\t\tthrow new $TypeError('`nonEnumerable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 4 && typeof arguments[4] !== 'boolean' && arguments[4] !== null) {\n\t\tthrow new $TypeError('`nonWritable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 5 && typeof arguments[5] !== 'boolean' && arguments[5] !== null) {\n\t\tthrow new $TypeError('`nonConfigurable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 6 && typeof arguments[6] !== 'boolean') {\n\t\tthrow new $TypeError('`loose`, if provided, must be a boolean');\n\t}\n\n\tvar nonEnumerable = arguments.length > 3 ? arguments[3] : null;\n\tvar nonWritable = arguments.length > 4 ? arguments[4] : null;\n\tvar nonConfigurable = arguments.length > 5 ? arguments[5] : null;\n\tvar loose = arguments.length > 6 ? arguments[6] : false;\n\n\t/* @type {false | TypedPropertyDescriptor} */\n\tvar desc = !!gopd && gopd(obj, property);\n\n\tif ($defineProperty) {\n\t\t$defineProperty(obj, property, {\n\t\t\tconfigurable: nonConfigurable === null && desc ? desc.configurable : !nonConfigurable,\n\t\t\tenumerable: nonEnumerable === null && desc ? desc.enumerable : !nonEnumerable,\n\t\t\tvalue: value,\n\t\t\twritable: nonWritable === null && desc ? desc.writable : !nonWritable\n\t\t});\n\t} else if (loose || (!nonEnumerable && !nonWritable && !nonConfigurable)) {\n\t\t// must fall back to [[Set]], and was not explicitly asked to make non-enumerable, non-writable, or non-configurable\n\t\tobj[property] = value; // eslint-disable-line no-param-reassign\n\t} else {\n\t\tthrow new $SyntaxError('This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.');\n\t}\n};\n","/** @license React v16.11.0\n * react.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'use strict';var h=require(\"object-assign\"),n=\"function\"===typeof Symbol&&Symbol.for,p=n?Symbol.for(\"react.element\"):60103,q=n?Symbol.for(\"react.portal\"):60106,r=n?Symbol.for(\"react.fragment\"):60107,t=n?Symbol.for(\"react.strict_mode\"):60108,u=n?Symbol.for(\"react.profiler\"):60114,v=n?Symbol.for(\"react.provider\"):60109,w=n?Symbol.for(\"react.context\"):60110,x=n?Symbol.for(\"react.forward_ref\"):60112,y=n?Symbol.for(\"react.suspense\"):60113;n&&Symbol.for(\"react.suspense_list\");\nvar z=n?Symbol.for(\"react.memo\"):60115,aa=n?Symbol.for(\"react.lazy\"):60116;n&&Symbol.for(\"react.fundamental\");n&&Symbol.for(\"react.responder\");n&&Symbol.for(\"react.scope\");var A=\"function\"===typeof Symbol&&Symbol.iterator;\nfunction B(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cP.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 {\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__.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))","__webpack_require__.p = \"/App/dist/\";","import PropTypes from 'prop-types';\n\nexport var subscriptionShape = PropTypes.shape({\n trySubscribe: PropTypes.func.isRequired,\n tryUnsubscribe: PropTypes.func.isRequired,\n notifyNestedSubs: PropTypes.func.isRequired,\n isSubscribed: PropTypes.func.isRequired\n});\n\nexport var storeShape = PropTypes.shape({\n subscribe: PropTypes.func.isRequired,\n dispatch: PropTypes.func.isRequired,\n getState: PropTypes.func.isRequired\n});","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nimport { Component, Children } from 'react';\nimport PropTypes from 'prop-types';\nimport { storeShape, subscriptionShape } from '../utils/PropTypes';\nimport warning from '../utils/warning';\n\nvar didWarnAboutReceivingStore = false;\nfunction warnAboutReceivingStore() {\n if (didWarnAboutReceivingStore) {\n return;\n }\n didWarnAboutReceivingStore = true;\n\n warning(' does not support changing `store` on the fly. ' + 'It is most likely that you see this error because you updated to ' + 'Redux 2.x and React Redux 2.x which no longer hot reload reducers ' + 'automatically. See https://github.com/reactjs/react-redux/releases/' + 'tag/v2.0.0 for the migration instructions.');\n}\n\nvar Provider = function (_Component) {\n _inherits(Provider, _Component);\n\n Provider.prototype.getChildContext = function getChildContext() {\n return { store: this.store, storeSubscription: null };\n };\n\n function Provider(props, context) {\n _classCallCheck(this, Provider);\n\n var _this = _possibleConstructorReturn(this, _Component.call(this, props, context));\n\n _this.store = props.store;\n return _this;\n }\n\n Provider.prototype.render = function render() {\n return Children.only(this.props.children);\n };\n\n return Provider;\n}(Component);\n\nexport { Provider as default };\n\n\nif (process.env.NODE_ENV !== 'production') {\n Provider.prototype.componentWillReceiveProps = function (nextProps) {\n var store = this.store;\n var nextStore = nextProps.store;\n\n\n if (store !== nextStore) {\n warnAboutReceivingStore();\n }\n };\n}\n\nProvider.propTypes = {\n store: storeShape.isRequired,\n children: PropTypes.element.isRequired\n};\nProvider.childContextTypes = {\n store: storeShape.isRequired,\n storeSubscription: subscriptionShape\n};\nProvider.displayName = 'Provider';","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n// 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 // the current/next pattern is copied from redux's createStore code.\n // TODO: refactor+expose that code to be reusable here?\n var current = [];\n var next = [];\n\n return {\n clear: function clear() {\n next = CLEARED;\n current = CLEARED;\n },\n notify: function notify() {\n var listeners = current = next;\n for (var i = 0; i < listeners.length; i++) {\n listeners[i]();\n }\n },\n subscribe: function subscribe(listener) {\n var isSubscribed = true;\n if (next === current) next = current.slice();\n next.push(listener);\n\n return function unsubscribe() {\n if (!isSubscribed || current === CLEARED) return;\n isSubscribed = false;\n\n if (next === current) next = current.slice();\n next.splice(next.indexOf(listener), 1);\n };\n }\n };\n}\n\nvar Subscription = function () {\n function Subscription(store, parentSub, onStateChange) {\n _classCallCheck(this, Subscription);\n\n this.store = store;\n this.parentSub = parentSub;\n this.onStateChange = onStateChange;\n this.unsubscribe = null;\n this.listeners = nullListeners;\n }\n\n Subscription.prototype.addNestedSub = function addNestedSub(listener) {\n this.trySubscribe();\n return this.listeners.subscribe(listener);\n };\n\n Subscription.prototype.notifyNestedSubs = function notifyNestedSubs() {\n this.listeners.notify();\n };\n\n Subscription.prototype.isSubscribed = function isSubscribed() {\n return Boolean(this.unsubscribe);\n };\n\n Subscription.prototype.trySubscribe = function trySubscribe() {\n if (!this.unsubscribe) {\n this.unsubscribe = this.parentSub ? this.parentSub.addNestedSub(this.onStateChange) : this.store.subscribe(this.onStateChange);\n\n this.listeners = createListenerCollection();\n }\n };\n\n Subscription.prototype.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 };","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nimport hoistStatics from 'hoist-non-react-statics';\nimport invariant from 'invariant';\nimport { Component, createElement } from 'react';\n\nimport Subscription from '../utils/Subscription';\nimport { storeShape, subscriptionShape } from '../utils/PropTypes';\n\nvar hotReloadingVersion = 0;\nvar dummyState = {};\nfunction noop() {}\nfunction makeSelectorStateful(sourceSelector, store) {\n // wrap the selector in an object that tracks its results between runs.\n var selector = {\n run: function runComponentSelector(props) {\n try {\n var nextProps = sourceSelector(store.getState(), props);\n if (nextProps !== selector.props || selector.error) {\n selector.shouldComponentUpdate = true;\n selector.props = nextProps;\n selector.error = null;\n }\n } catch (error) {\n selector.shouldComponentUpdate = true;\n selector.error = error;\n }\n }\n };\n\n return selector;\n}\n\nexport default function connectAdvanced(\n/*\n selectorFactory is a func that is responsible for returning the selector function used to\n compute new props from state, props, and dispatch. For example:\n export default connectAdvanced((dispatch, options) => (state, props) => ({\n thing: state.things[props.thingId],\n saveThing: fields => dispatch(actionCreators.saveThing(props.thingId, fields)),\n }))(YourComponent)\n Access to dispatch is provided to the factory so selectorFactories can bind actionCreators\n outside of their selector as an optimization. Options passed to connectAdvanced are passed to\n the selectorFactory, along with displayName and WrappedComponent, as the second argument.\n Note that selectorFactory is responsible for all caching/memoization of inbound and outbound\n props. Do not use connectAdvanced directly without memoizing results between calls to your\n selector, otherwise the Connect component will re-render on every state or props change.\n*/\nselectorFactory) {\n var _contextTypes, _childContextTypes;\n\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n _ref$getDisplayName = _ref.getDisplayName,\n getDisplayName = _ref$getDisplayName === undefined ? function (name) {\n return 'ConnectAdvanced(' + name + ')';\n } : _ref$getDisplayName,\n _ref$methodName = _ref.methodName,\n methodName = _ref$methodName === undefined ? 'connectAdvanced' : _ref$methodName,\n _ref$renderCountProp = _ref.renderCountProp,\n renderCountProp = _ref$renderCountProp === undefined ? undefined : _ref$renderCountProp,\n _ref$shouldHandleStat = _ref.shouldHandleStateChanges,\n shouldHandleStateChanges = _ref$shouldHandleStat === undefined ? true : _ref$shouldHandleStat,\n _ref$storeKey = _ref.storeKey,\n storeKey = _ref$storeKey === undefined ? 'store' : _ref$storeKey,\n _ref$withRef = _ref.withRef,\n withRef = _ref$withRef === undefined ? false : _ref$withRef,\n connectOptions = _objectWithoutProperties(_ref, ['getDisplayName', 'methodName', 'renderCountProp', 'shouldHandleStateChanges', 'storeKey', 'withRef']);\n\n var subscriptionKey = storeKey + 'Subscription';\n var version = hotReloadingVersion++;\n\n var contextTypes = (_contextTypes = {}, _contextTypes[storeKey] = storeShape, _contextTypes[subscriptionKey] = subscriptionShape, _contextTypes);\n var childContextTypes = (_childContextTypes = {}, _childContextTypes[subscriptionKey] = subscriptionShape, _childContextTypes);\n\n return function wrapWithConnect(WrappedComponent) {\n invariant(typeof WrappedComponent == 'function', 'You must pass a component to the function returned by ' + ('connect. Instead received ' + JSON.stringify(WrappedComponent)));\n\n var wrappedComponentName = WrappedComponent.displayName || WrappedComponent.name || 'Component';\n\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 withRef: withRef,\n displayName: displayName,\n wrappedComponentName: wrappedComponentName,\n WrappedComponent: WrappedComponent\n });\n\n var Connect = function (_Component) {\n _inherits(Connect, _Component);\n\n function Connect(props, context) {\n _classCallCheck(this, Connect);\n\n var _this = _possibleConstructorReturn(this, _Component.call(this, props, context));\n\n _this.version = version;\n _this.state = {};\n _this.renderCount = 0;\n _this.store = props[storeKey] || context[storeKey];\n _this.propsMode = Boolean(props[storeKey]);\n _this.setWrappedInstance = _this.setWrappedInstance.bind(_this);\n\n invariant(_this.store, 'Could not find \"' + storeKey + '\" in either the context or props of ' + ('\"' + displayName + '\". Either wrap the root component in a , ') + ('or explicitly pass \"' + storeKey + '\" as a prop to \"' + displayName + '\".'));\n\n _this.initSelector();\n _this.initSubscription();\n return _this;\n }\n\n Connect.prototype.getChildContext = function getChildContext() {\n var _ref2;\n\n // If this component received store from props, its subscription should be transparent\n // to any descendants receiving store+subscription from context; it passes along\n // subscription passed to it. Otherwise, it shadows the parent subscription, which allows\n // Connect to control ordering of notifications to flow top-down.\n var subscription = this.propsMode ? null : this.subscription;\n return _ref2 = {}, _ref2[subscriptionKey] = subscription || this.context[subscriptionKey], _ref2;\n };\n\n Connect.prototype.componentDidMount = function componentDidMount() {\n if (!shouldHandleStateChanges) return;\n\n // componentWillMount fires during server side rendering, but componentDidMount and\n // componentWillUnmount do not. Because of this, trySubscribe happens during ...didMount.\n // Otherwise, unsubscription would never take place during SSR, causing a memory leak.\n // To handle the case where a child component may have triggered a state change by\n // dispatching an action in its componentWillMount, we have to re-run the select and maybe\n // re-render.\n this.subscription.trySubscribe();\n this.selector.run(this.props);\n if (this.selector.shouldComponentUpdate) this.forceUpdate();\n };\n\n Connect.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n this.selector.run(nextProps);\n };\n\n Connect.prototype.shouldComponentUpdate = function shouldComponentUpdate() {\n return this.selector.shouldComponentUpdate;\n };\n\n Connect.prototype.componentWillUnmount = function componentWillUnmount() {\n if (this.subscription) this.subscription.tryUnsubscribe();\n this.subscription = null;\n this.notifyNestedSubs = noop;\n this.store = null;\n this.selector.run = noop;\n this.selector.shouldComponentUpdate = false;\n };\n\n Connect.prototype.getWrappedInstance = function getWrappedInstance() {\n invariant(withRef, 'To access the wrapped instance, you need to specify ' + ('{ withRef: true } in the options argument of the ' + methodName + '() call.'));\n return this.wrappedInstance;\n };\n\n Connect.prototype.setWrappedInstance = function setWrappedInstance(ref) {\n this.wrappedInstance = ref;\n };\n\n Connect.prototype.initSelector = function initSelector() {\n var sourceSelector = selectorFactory(this.store.dispatch, selectorFactoryOptions);\n this.selector = makeSelectorStateful(sourceSelector, this.store);\n this.selector.run(this.props);\n };\n\n Connect.prototype.initSubscription = function initSubscription() {\n if (!shouldHandleStateChanges) return;\n\n // parentSub'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 var parentSub = (this.propsMode ? this.props : this.context)[subscriptionKey];\n this.subscription = new Subscription(this.store, parentSub, this.onStateChange.bind(this));\n\n // `notifyNestedSubs` is duplicated to handle the case where the component is unmounted in\n // the middle of the notification loop, where `this.subscription` will then be null. An\n // extra null check every change can be avoided by copying the method onto `this` and then\n // replacing it with a no-op on unmount. This can probably be avoided if Subscription's\n // listeners logic is changed to not call listeners that have been unsubscribed in the\n // middle of the notification loop.\n this.notifyNestedSubs = this.subscription.notifyNestedSubs.bind(this.subscription);\n };\n\n Connect.prototype.onStateChange = function onStateChange() {\n this.selector.run(this.props);\n\n if (!this.selector.shouldComponentUpdate) {\n this.notifyNestedSubs();\n } else {\n this.componentDidUpdate = this.notifyNestedSubsOnComponentDidUpdate;\n this.setState(dummyState);\n }\n };\n\n Connect.prototype.notifyNestedSubsOnComponentDidUpdate = function notifyNestedSubsOnComponentDidUpdate() {\n // `componentDidUpdate` is conditionally implemented when `onStateChange` determines it\n // needs to notify nested subs. Once called, it unimplements itself until further state\n // changes occur. Doing it this way vs having a permanent `componentDidMount` that does\n // a boolean check every time avoids an extra method call most of the time, resulting\n // in some perf boost.\n this.componentDidUpdate = undefined;\n this.notifyNestedSubs();\n };\n\n Connect.prototype.isSubscribed = function isSubscribed() {\n return Boolean(this.subscription) && this.subscription.isSubscribed();\n };\n\n Connect.prototype.addExtraProps = function addExtraProps(props) {\n if (!withRef && !renderCountProp && !(this.propsMode && this.subscription)) return props;\n // make a shallow copy so that fields added don't leak to the original selector.\n // this is especially important for 'ref' since that's a reference back to the component\n // instance. a singleton memoized selector would then be holding a reference to the\n // instance, preventing the instance from being garbage collected, and that would be bad\n var withExtras = _extends({}, props);\n if (withRef) withExtras.ref = this.setWrappedInstance;\n if (renderCountProp) withExtras[renderCountProp] = this.renderCount++;\n if (this.propsMode && this.subscription) withExtras[subscriptionKey] = this.subscription;\n return withExtras;\n };\n\n Connect.prototype.render = function render() {\n var selector = this.selector;\n selector.shouldComponentUpdate = false;\n\n if (selector.error) {\n throw selector.error;\n } else {\n return createElement(WrappedComponent, this.addExtraProps(selector.props));\n }\n };\n\n return Connect;\n }(Component);\n\n Connect.WrappedComponent = WrappedComponent;\n Connect.displayName = displayName;\n Connect.childContextTypes = childContextTypes;\n Connect.contextTypes = contextTypes;\n Connect.propTypes = contextTypes;\n\n if (process.env.NODE_ENV !== 'production') {\n Connect.prototype.componentWillUpdate = function componentWillUpdate() {\n // We are hot reloading!\n if (this.version !== version) {\n this.version = version;\n this.initSelector();\n\n if (this.subscription) this.subscription.tryUnsubscribe();\n this.initSubscription();\n if (shouldHandleStateChanges) this.subscription.trySubscribe();\n }\n };\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\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}","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nexport default freeGlobal;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nexport default root;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nexport default Symbol;\n","import Symbol from './_Symbol.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nexport default getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nexport default objectToString;\n","import Symbol from './_Symbol.js';\nimport getRawTag from './_getRawTag.js';\nimport objectToString from './_objectToString.js';\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nexport default baseGetTag;\n","import overArg from './_overArg.js';\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nexport default getPrototype;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nexport default overArg;\n","import baseGetTag from './_baseGetTag.js';\nimport getPrototype from './_getPrototype.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nexport default isPlainObject;\n","import isPlainObject from 'lodash-es/isPlainObject';\nimport $$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 */\nexport var ActionTypes = {\n INIT: '@@redux/INIT'\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 */\nexport default function createStore(reducer, preloadedState, enhancer) {\n var _ref2;\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 function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = currentListeners.slice();\n }\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 function getState() {\n return currentState;\n }\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 function subscribe(listener) {\n if (typeof listener !== 'function') {\n throw new Error('Expected listener to be a function.');\n }\n\n var isSubscribed = true;\n\n ensureCanMutateNextListeners();\n nextListeners.push(listener);\n\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n\n isSubscribed = false;\n\n ensureCanMutateNextListeners();\n var index = nextListeners.indexOf(listener);\n nextListeners.splice(index, 1);\n };\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 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 for (var i = 0; i < listeners.length; i++) {\n listeners[i]();\n }\n\n return action;\n }\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 function replaceReducer(nextReducer) {\n if (typeof nextReducer !== 'function') {\n throw new Error('Expected the nextReducer to be a function.');\n }\n\n currentReducer = nextReducer;\n dispatch({ type: ActionTypes.INIT });\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/zenparsing/es-observable\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') {\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 { unsubscribe: unsubscribe };\n }\n }, _ref[$$observable] = function () {\n return this;\n }, _ref;\n }\n\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 dispatch({ 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 * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nexport default isObjectLike;\n","import { ActionTypes } from './createStore';\nimport isPlainObject from 'lodash-es/isPlainObject';\nimport warning from './utils/warning';\n\nfunction getUndefinedStateErrorMessage(key, action) {\n var actionType = action && action.type;\n var actionName = actionType && '\"' + actionType.toString() + '\"' || 'an action';\n\n return 'Given action ' + actionName + ', reducer \"' + key + '\" returned undefined. ' + 'To ignore an action, you must explicitly return the previous state.';\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\n unexpectedKeys.forEach(function (key) {\n unexpectedKeyCache[key] = true;\n });\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 assertReducerSanity(reducers) {\n Object.keys(reducers).forEach(function (key) {\n var reducer = reducers[key];\n var initialState = reducer(undefined, { type: ActionTypes.INIT });\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.');\n }\n\n var type = '@@redux/PROBE_UNKNOWN_ACTION_' + Math.random().toString(36).substring(7).split('').join('.');\n if (typeof reducer(undefined, { type: type }) === '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.');\n }\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 */\nexport default function combineReducers(reducers) {\n var reducerKeys = Object.keys(reducers);\n var finalReducers = {};\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 var finalReducerKeys = Object.keys(finalReducers);\n\n if (process.env.NODE_ENV !== 'production') {\n var unexpectedKeyCache = {};\n }\n\n var sanityError;\n try {\n assertReducerSanity(finalReducers);\n } catch (e) {\n sanityError = e;\n }\n\n return function combination() {\n var state = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n var action = arguments[1];\n\n if (sanityError) {\n throw sanityError;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n if (warningMessage) {\n warning(warningMessage);\n }\n }\n\n var hasChanged = false;\n var nextState = {};\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 if (typeof nextStateForKey === 'undefined') {\n var errorMessage = getUndefinedStateErrorMessage(key, action);\n throw new Error(errorMessage);\n }\n nextState[key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n return hasChanged ? nextState : state;\n };\n}","function bindActionCreator(actionCreator, dispatch) {\n return function () {\n return dispatch(actionCreator.apply(undefined, arguments));\n };\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 a single function as the first argument,\n * and get a 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 */\nexport default function 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 keys = Object.keys(actionCreators);\n var boundActionCreators = {};\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var actionCreator = actionCreators[key];\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n }\n }\n return boundActionCreators;\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 */\n\nexport default function compose() {\n for (var _len = arguments.length, funcs = 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 var last = funcs[funcs.length - 1];\n var rest = funcs.slice(0, -1);\n return function () {\n return rest.reduceRight(function (composed, f) {\n return f(composed);\n }, last.apply(undefined, arguments));\n };\n}","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nimport compose from './compose';\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 */\nexport default function applyMiddleware() {\n for (var _len = arguments.length, middlewares = Array(_len), _key = 0; _key < _len; _key++) {\n middlewares[_key] = arguments[_key];\n }\n\n return function (createStore) {\n return function (reducer, preloadedState, enhancer) {\n var store = createStore(reducer, preloadedState, enhancer);\n var _dispatch = store.dispatch;\n var chain = [];\n\n var middlewareAPI = {\n getState: store.getState,\n dispatch: function dispatch(action) {\n return _dispatch(action);\n }\n };\n chain = middlewares.map(function (middleware) {\n return middleware(middlewareAPI);\n });\n _dispatch = compose.apply(undefined, chain)(store.dispatch);\n\n return _extends({}, store, {\n dispatch: _dispatch\n });\n };\n };\n}","import verifyPlainObject from '../utils/verifyPlainObject';\n\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 constantSelector.dependsOnOwnProps = false;\n return constantSelector;\n };\n}\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..\nexport function getDependsOnOwnProps(mapToProps) {\n return mapToProps.dependsOnOwnProps !== null && mapToProps.dependsOnOwnProps !== undefined ? Boolean(mapToProps.dependsOnOwnProps) : mapToProps.length !== 1;\n}\n\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// \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 };\n\n // allow detectFactoryAndVerify to get ownProps\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\n return props;\n };\n\n return proxy;\n };\n}","import { bindActionCreators } from 'redux';\nimport { wrapMapToPropsConstant, wrapMapToPropsFunc } from './wrapMapToProps';\n\nexport function whenMapDispatchToPropsIsFunction(mapDispatchToProps) {\n return typeof mapDispatchToProps === 'function' ? wrapMapToPropsFunc(mapDispatchToProps, 'mapDispatchToProps') : undefined;\n}\n\nexport function whenMapDispatchToPropsIsMissing(mapDispatchToProps) {\n return !mapDispatchToProps ? wrapMapToPropsConstant(function (dispatch) {\n return { dispatch: dispatch };\n }) : undefined;\n}\n\nexport function whenMapDispatchToPropsIsObject(mapDispatchToProps) {\n return mapDispatchToProps && typeof mapDispatchToProps === 'object' ? wrapMapToPropsConstant(function (dispatch) {\n return bindActionCreators(mapDispatchToProps, dispatch);\n }) : undefined;\n}\n\nexport default [whenMapDispatchToPropsIsFunction, whenMapDispatchToPropsIsMissing, whenMapDispatchToPropsIsObject];","import { wrapMapToPropsConstant, wrapMapToPropsFunc } from './wrapMapToProps';\n\nexport function whenMapStateToPropsIsFunction(mapStateToProps) {\n return typeof mapStateToProps === 'function' ? wrapMapToPropsFunc(mapStateToProps, 'mapStateToProps') : undefined;\n}\n\nexport function whenMapStateToPropsIsMissing(mapStateToProps) {\n return !mapStateToProps ? wrapMapToPropsConstant(function () {\n return {};\n }) : undefined;\n}\n\nexport default [whenMapStateToPropsIsFunction, whenMapStateToPropsIsMissing];","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nimport verifyPlainObject from '../utils/verifyPlainObject';\n\nexport function defaultMergeProps(stateProps, dispatchProps, ownProps) {\n return _extends({}, ownProps, stateProps, dispatchProps);\n}\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\n var hasRunOnce = false;\n var mergedProps = void 0;\n\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\n if (process.env.NODE_ENV !== 'production') verifyPlainObject(mergedProps, displayName, 'mergeProps');\n }\n\n return mergedProps;\n };\n };\n}\n\nexport function whenMergePropsIsFunction(mergeProps) {\n return typeof mergeProps === 'function' ? wrapMergePropsFunc(mergeProps) : undefined;\n}\n\nexport function whenMergePropsIsOmitted(mergeProps) {\n return !mergeProps ? function () {\n return defaultMergeProps;\n } : undefined;\n}\n\nexport default [whenMergePropsIsFunction, whenMergePropsIsOmitted];","function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nimport verifySubselectors from './verifySubselectors';\n\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}\n\nexport function pureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, _ref) {\n var areStatesEqual = _ref.areStatesEqual,\n areOwnPropsEqual = _ref.areOwnPropsEqual,\n areStatePropsEqual = _ref.areStatePropsEqual;\n\n var hasRunAtLeastOnce = false;\n var state = void 0;\n var ownProps = void 0;\n var stateProps = void 0;\n var dispatchProps = void 0;\n var mergedProps = void 0;\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\n if (mapDispatchToProps.dependsOnOwnProps) dispatchProps = mapDispatchToProps(dispatch, ownProps);\n\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n\n function handleNewProps() {\n if (mapStateToProps.dependsOnOwnProps) stateProps = mapStateToProps(state, ownProps);\n\n if (mapDispatchToProps.dependsOnOwnProps) dispatchProps = mapDispatchToProps(dispatch, ownProps);\n\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\n if (statePropsChanged) mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n\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\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}\n\n// TODO: Add more comments\n\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 = _objectWithoutProperties(_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\n return selectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, options);\n}","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\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\n/*\n connect is a facade over connectAdvanced. It turns its args into a compatible\n selectorFactory, which has the signature:\n\n (dispatch, options) => (nextState, nextOwnProps) => nextFinalProps\n \n connect passes its args to connectAdvanced as options, which will in turn pass them to\n selectorFactory each time a Connect component instance is instantiated or hot reloaded.\n\n selectorFactory returns a final props selector from its mapStateToProps,\n mapStateToPropsFactories, mapDispatchToProps, mapDispatchToPropsFactories, mergeProps,\n mergePropsFactories, and pure args.\n\n The resulting final props selector is called by the Connect component instance whenever\n it receives new props or store state.\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}\n\n// createConnect with default args builds the 'official' connect behavior. Calling it with\n// different options opens up some testing and extensibility scenarios\nexport function createConnect() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$connectHOC = _ref.connectHOC,\n connectHOC = _ref$connectHOC === undefined ? connectAdvanced : _ref$connectHOC,\n _ref$mapStateToPropsF = _ref.mapStateToPropsFactories,\n mapStateToPropsFactories = _ref$mapStateToPropsF === undefined ? defaultMapStateToPropsFactories : _ref$mapStateToPropsF,\n _ref$mapDispatchToPro = _ref.mapDispatchToPropsFactories,\n mapDispatchToPropsFactories = _ref$mapDispatchToPro === undefined ? defaultMapDispatchToPropsFactories : _ref$mapDispatchToPro,\n _ref$mergePropsFactor = _ref.mergePropsFactories,\n mergePropsFactories = _ref$mergePropsFactor === undefined ? defaultMergePropsFactories : _ref$mergePropsFactor,\n _ref$selectorFactory = _ref.selectorFactory,\n selectorFactory = _ref$selectorFactory === undefined ? defaultSelectorFactory : _ref$selectorFactory;\n\n return function connect(mapStateToProps, mapDispatchToProps, mergeProps) {\n var _ref2 = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {},\n _ref2$pure = _ref2.pure,\n pure = _ref2$pure === undefined ? true : _ref2$pure,\n _ref2$areStatesEqual = _ref2.areStatesEqual,\n areStatesEqual = _ref2$areStatesEqual === undefined ? strictEqual : _ref2$areStatesEqual,\n _ref2$areOwnPropsEqua = _ref2.areOwnPropsEqual,\n areOwnPropsEqual = _ref2$areOwnPropsEqua === undefined ? shallowEqual : _ref2$areOwnPropsEqua,\n _ref2$areStatePropsEq = _ref2.areStatePropsEqual,\n areStatePropsEqual = _ref2$areStatePropsEq === undefined ? shallowEqual : _ref2$areStatePropsEq,\n _ref2$areMergedPropsE = _ref2.areMergedPropsEqual,\n areMergedPropsEqual = _ref2$areMergedPropsE === undefined ? shallowEqual : _ref2$areMergedPropsE,\n extraOptions = _objectWithoutProperties(_ref2, ['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\n return connectHOC(selectorFactory, _extends({\n // used in error messages\n methodName: 'connect',\n\n // used to compute Connect's displayName from the wrapped component's displayName.\n getDisplayName: function getDisplayName(name) {\n return 'Connect(' + name + ')';\n },\n\n // if mapStateToProps is falsy, the Connect component doesn't subscribe to store state changes\n shouldHandleStateChanges: Boolean(mapStateToProps),\n\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\n }, extraOptions));\n };\n}\n\nexport default createConnect();","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","function valueOf(obj) {\n return obj.valueOf ? obj.valueOf() : Object.prototype.valueOf.call(obj);\n}\n\nfunction valueEqual(a, b) {\n // Test for strict equality first.\n if (a === b) return true;\n\n // Otherwise, if either of them == null they are not equal.\n if (a == null || b == null) return false;\n\n if (Array.isArray(a)) {\n return (\n Array.isArray(b) &&\n a.length === b.length &&\n a.every(function(item, index) {\n return valueEqual(item, b[index]);\n })\n );\n }\n\n if (typeof a === 'object' || typeof b === 'object') {\n var aValue = valueOf(a);\n var bValue = valueOf(b);\n\n if (aValue !== a || bValue !== b) return valueEqual(aValue, bValue);\n\n return Object.keys(Object.assign({}, a, b)).every(function(key) {\n return valueEqual(a[key], b[key]);\n });\n }\n\n return false;\n}\n\nexport default valueEqual;\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","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\nexport function 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\nconst Badge = ({\r\n children, className, info, alarm, warning, positive, safe, ...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 warning: false,\r\n safe: false,\r\n};\r\n\r\nBadge.propTypes = {\r\n /** Assegna lo stile testuale al badge */\r\n alarm: 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 /** 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\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\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\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 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\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 refButtonIntenal = useRef();\r\n const refButton = ref || refButtonIntenal;\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 {operazione.stato === StatoOperazione.COMPLETED && operazione.checked && (\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.stato === StatoOperazione.COMPLETED\r\n && errori.length > 0\r\n && (showErrors\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 {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 {operazione.stato === StatoOperazione.PENDING && (\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 {operazione.stato === StatoOperazione.PENDING\r\n && errori.length > 0 && {errori.length}}\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(\r\n operazione.id, e.id, operazione.stato === StatoOperazione.COMPLETED,\r\n )}\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 { render } from 'react-dom';\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\nconst domContainerNode = document.createElement('div');\r\ndomContainerNode.setAttribute('id', 'snackbar');\r\ndocument.body.appendChild(domContainerNode);\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\r\nclass 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\nlet refSnackBar;\r\nrender(\r\n { refSnackBar = r; }} />,\r\n domContainerNode,\r\n);\r\n\r\nconst Snackbar = {\r\n show(operazione) {\r\n refSnackBar != null && refSnackBar.show(operazione);\r\n },\r\n creaOperazioneMassiva(operazione) {\r\n refSnackBar != null && refSnackBar.creaOperazioneMassiva(operazione);\r\n },\r\n aggiornaProgressoOperazione(id, progresso) {\r\n refSnackBar != null && refSnackBar.aggiornaProgressoOperazione(id, progresso);\r\n },\r\n terminaOperazioneMassiva(id, progresso, testoFeedabck, onFeedback) {\r\n refSnackBar != null && refSnackBar.completaOperazione(id, progresso, testoFeedabck, onFeedback);\r\n },\r\n aggiungiErroreAOperazione(id, err) {\r\n refSnackBar != null && refSnackBar.aggiungiErroreAOperazione(id, err);\r\n },\r\n inizializzaOperazioni(operazioni) {\r\n refSnackBar != null && refSnackBar.inizializzaOperazioni(operazioni);\r\n },\r\n recuperaOperazioniMassive() {\r\n return refSnackBar != null ? JSON.parse(JSON.stringify(refSnackBar.state.operazioniMassive)) : {};\r\n },\r\n clear() {\r\n refSnackBar != null && refSnackBar.clear();\r\n },\r\n};\r\n\r\nSnackbar.Types = Types;\r\nSnackbar.Element = 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","// 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 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","export const startLoadingApplication = () => dispatch => dispatch({ type: 'START_LOADING_APPLICATION' });\r\n\r\nexport const stopLoadingApplication = () => dispatch => dispatch({ type: 'STOP_LOADING_APPLICATION' });\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Spinner } from 'framework-ui-components';\r\n\r\nconst LoadingPanel = ({ children, isLoading }) => (\r\n
\r\n {isLoading\r\n && (\r\n
\r\n \r\n
\r\n )}\r\n {children}\r\n
\r\n);\r\n\r\nLoadingPanel.propTypes = {\r\n children: PropTypes.element,\r\n isLoading: PropTypes.bool.isRequired,\r\n};\r\n\r\nexport default LoadingPanel;\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\n * Il componente viene utilizzato per renderizzare una guida al software o a parte di esso.\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","/**\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(/[?&]+([^=&]+)=([^&]*)/gi,\r\n (m, key, value) => { params[key] = value; });\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}`);\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","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 = (\r\n type, uri, params, timeoutLimit = TimeoutMaxMs,\r\n) => 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 = (\r\n type, uri, params, idDestination = null, timeoutLimit = TimeoutMaxMs,\r\n) => 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","export const cambiaUfficio = ufficio => dispatch => dispatch({ type: 'CAMBIA_UFFICIO', ufficio });\r\n\r\nexport const attivaTour730 = () => dispatch => dispatch({ type: 'ATTIVA_TOUR_730' });\r\n\r\nexport const disattivaTour730 = () => dispatch => dispatch({ type: 'DISATTIVA_TOUR_730' });\r\n\r\nexport const attivaTourRichiesteEnti = () => dispatch => dispatch({ type: 'ATTIVA_TOUR_RICHIESTEENTI' });\r\n\r\nexport const disattivaTourRichiesteEnti = () => dispatch => dispatch({ type: 'DISATTIVA_TOUR_RICHIESTEENTI' });\r\n\r\nexport const attivaTourImu = () => dispatch => dispatch({ type: 'ATTIVA_TOUR_IMU' });\r\n\r\nexport const disattivaTourImu = () => dispatch => dispatch({ type: 'DISATTIVA_TOUR_IMU' });\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, { 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","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\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 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 from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\nimport useMouseOver from '../Hooks/useMouseOver';\r\n\r\n/**\r\nIl componente visualizza un testo in pop over al mouse over.\r\n\r\n_ATTENZIONE_ l'attuale implementazione ha dei problemi con certi tipi di overflow.\r\nPuò accadere infatti che il testo in pop over venga \"coperto\" da contenuti al di fuori del div che lo contiene.\r\nQuesto vale per tutti i componenti che lo utilizano (Ellipsis, InfoToolip).\r\n */\r\nconst Tooltip = ({\r\n children, left, right, top, content, enableFunction, className,\r\n}) => {\r\n const [mostraInfo, onMouseOver, onMouseOut] = useMouseOver();\r\n\r\n const enable = !enableFunction || enableFunction();\r\n\r\n const classes = cns(\r\n 'infoTooltip',\r\n {\r\n 'infoTooltip--left': left,\r\n 'infoTooltip--right': right,\r\n 'infoTooltip--top': top,\r\n 'infoTooltip--enable': enable,\r\n },\r\n className,\r\n );\r\n\r\n return (\r\n \r\n {children}\r\n {mostraInfo && enable && (\r\n \r\n {content}\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nTooltip.propTypes = {\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 il testo del tooltip */\r\n content: PropTypes.node.isRequired,\r\n /** funciton per indicare se abilitare o no il tooltip */\r\n enableFunction: PropTypes.func,\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n};\r\n\r\nTooltip.defaultProps = {\r\n children: null,\r\n left: false,\r\n right: false,\r\n top: false,\r\n enableFunction: null,\r\n className: null,\r\n};\r\n\r\nexport default Tooltip;\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\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","/* 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 // console.log('closeIfClickOutside called');\r\n if (!doesNodeContainClick(refNode.current, e)) {\r\n setOpen(false);\r\n }\r\n };\r\n document.addEventListener('click', closeIfClickOutside);\r\n // console.log('registered');\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 '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 '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","/* 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","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}) => {\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 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\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};\r\n\r\nexport default MenuUtente;\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 { 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 { 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","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 { 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","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 getHashTag(src) {\r\n return src.indexOf('#') < 0 ? '#' : '';\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 setInitialSrcAndHash = useCallback((routerPathBaseParam, hash) => {\r\n const queryParms = getQueryParamsFromObject({ ...srcParams, [ParentResolution]: getResolution() });\r\n const newHash = getIframeHash(routerPathBaseParam, hash);\r\n const newInitialSrc = `${src}${getHashTag(src)}${updateHash ? newHash : ''}?${ParentCallerUrlParam}=${MessagesPlugin.getIdReceiver()}${queryParms}`;\r\n setInitialSrc(newInitialSrc);\r\n if (updateHash) {\r\n currentHash.current = newHash;\r\n if (!inMemoryRouting) {\r\n setLocationHash(hashTag + hash);\r\n }\r\n }\r\n return newInitialSrc;\r\n }, [srcParams, src, updateHash, inMemoryRouting, hashTag]);\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(\r\n PluginMessageTypes.CHANGE_HASH, hash,\r\n );\r\n return;\r\n }\r\n\r\n currentHash.current = hash;\r\n setLocationHash(hashTag + hash);\r\n }, [hashTag, routerPathBase, 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(\r\n PluginMessageTypes.CHANGE_HASH, hash,\r\n );\r\n MessagesPlugin.postMessageToParent(\r\n PluginMessageTypes.CHANGE_HASH2, { action, path: hash },\r\n );\r\n return;\r\n }\r\n currentHash.current = hash;\r\n setLocationHash(hashTag + hash, action === 'REPLACE');\r\n }, [hashTag, routerPathBase, 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(\r\n PluginMessageTypes.RELOAD, newInitialSrc,\r\n );\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(\r\n PluginMessageTypes.SET_RESOLUTION, getWindowSizeToParam({\r\n innerHeight: height,\r\n innerWidth: width,\r\n }),\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(\r\n PluginMessageTypes.EXTRA_PARAMS, extraParams,\r\n );\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","// 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","import EventoServer, { connettiSignalR } from 'framework-ui-components/Components/EventoServer';\r\n\r\n\r\nconnettiSignalR(window.datiUtente.IdentificativoUtente);\r\n\r\nexport default EventoServer;\r\n","import { useEffect } from 'react';\r\nimport EventoServer from '../libs/EventoServer';\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","import React, { useCallback } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport FwPlugins, { IFrame } from 'framework-plugins';\r\nimport { Helmet } from 'react-helmet';\r\nimport useSignalR from '../../helpers/useSignalR';\r\n\r\nconst PrestazioniAgevolate = ({ ufficio }) => {\r\n const refreshPrestazioneAgevolata = useCallback((evt) => {\r\n FwPlugins.postMessageToChilds('REFRESH_PRESTAZIONI_AGEVOLATE', null);\r\n }, []);\r\n\r\n const onDichiarazioneStatoModificato = useCallback((evt) => {\r\n FwPlugins.postMessageToChilds('REFRESH_PRESTAZIONI_AGEVOLATE', null);\r\n }, []);\r\n\r\n useSignalR('DichiarazioneStatoModificato', onDichiarazioneStatoModificato);\r\n useSignalR('DichiarazioneDatiAggiuntiviModificati', refreshPrestazioneAgevolata);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst mapStoreToProps = (store) => ({\r\n ufficio: store.utente.ufficioSelezionato.CodiceUfficio,\r\n});\r\n\r\nPrestazioniAgevolate.propTypes = {\r\n ufficio: PropTypes.string.isRequired,\r\n};\r\n\r\nexport default connect(mapStoreToProps)(PrestazioniAgevolate);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport { IFrame } from 'framework-plugins';\r\nimport { Helmet } from 'react-helmet';\r\n\r\nconst Visureipocatastali = ({ ufficio }) => (\r\n \r\n \r\n \r\n \r\n);\r\n\r\nconst mapStoreToProps = (store) => ({\r\n ufficio: store.utente.ufficioSelezionato.CodiceUfficio,\r\n});\r\n\r\nVisureipocatastali.propTypes = {\r\n ufficio: PropTypes.string.isRequired,\r\n};\r\n\r\nexport default connect(mapStoreToProps)(Visureipocatastali);\r\n","import React, { useCallback } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport FwPlugins, { IFrame } from 'framework-plugins';\r\nimport { Helmet } from 'react-helmet';\r\nimport useSignalR from '../../helpers/useSignalR';\r\n\r\nconst MODELLO_ISEE = 25;\r\nconst IN_ELABORAZIONE = 41;\r\nconst ACQUISITA_INPS = 135;\r\n\r\nconst Isee = ({ ufficio }) => {\r\n const refreshDichiarazioniIsee = useCallback((evt) => {\r\n if (evt.Modello === MODELLO_ISEE) {\r\n FwPlugins.postMessageToChilds('REFRESH_DICHIARAZIONI_ISEE', null);\r\n }\r\n }, []);\r\n\r\n const onDichiarazioneStatoModificato = useCallback((evt) => {\r\n if (evt.Modello === MODELLO_ISEE) {\r\n if (evt.NuovoStato === ACQUISITA_INPS) {\r\n FwPlugins.postMessageToChilds('ON_STATO_MODIFICATO', evt);\r\n } else if (evt.NuovoStato !== IN_ELABORAZIONE) {\r\n FwPlugins.postMessageToChilds('REFRESH_DICHIARAZIONI_ISEE', null);\r\n }\r\n }\r\n }, []);\r\n\r\n useSignalR('DichiarazioneStatoModificato', onDichiarazioneStatoModificato);\r\n useSignalR('DichiarazioneTipoModificato', refreshDichiarazioniIsee);\r\n useSignalR('AnagraficaDichiarazioneModificata', refreshDichiarazioniIsee);\r\n useSignalR('DichiarazioneDatiAggiuntiviModificati', refreshDichiarazioniIsee);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst mapStoreToProps = (store) => ({\r\n ufficio: store.utente.ufficioSelezionato.CodiceUfficio,\r\n});\r\n\r\nIsee.propTypes = {\r\n ufficio: PropTypes.string.isRequired,\r\n};\r\n\r\nexport default connect(mapStoreToProps)(Isee);\r\n","export default () => null;\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 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 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 { matchPath } from 'react-router';\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 = ({ open, children, className }) => {\r\n const [openInternal, setOpen] = useState(open);\r\n const toggle = () => setOpen(!openInternal);\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 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 lo slidebar aperto */\r\n open: PropTypes.bool,\r\n};\r\n\r\nSidebarImpl.defaultProps = {\r\n children: null,\r\n className: '',\r\n open: false,\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 = ({ open, children, className }) => (\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 lo slidebar aperto */\r\n open: PropTypes.bool,\r\n};\r\n\r\nSidebar.defaultProps = {\r\n children: null,\r\n className: '',\r\n open: false,\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 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","import React from 'react';\r\nimport Icon from './Icon';\r\n\r\nexport default Icon(, '0 0 13 16', 'DocumentIcon');\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(\r\n \r\n \r\n \r\n , '0 0 14 16', 'CloneIcon',\r\n);\r\n","export default {\r\n '7OL': '7OL',\r\n '730': '730',\r\n 'SUC': 'SUC',\r\n 'ANF': 'ANF',\r\n 'AUU': 'AUU',\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 \r\n \r\n ,\r\n '0 0 20 20',\r\n 'ToolbarBackIcon',\r\n);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\nimport ToolbarBackIcon from '../Icons/ToolbarBackIcon';\r\n\r\nconst Toolbar = ({\r\n actions, back, buttons, className, onBack, title, ...others\r\n}) => (\r\n \r\n {back && (\r\n \r\n \r\n
    \r\n )}\r\n
    {title}
    \r\n
    {actions}
    \r\n
    {buttons}
    \r\n
    \r\n);\r\n\r\nToolbar.propTypes = {\r\n /** Componente contenente i bottoni da visualizzare */\r\n actions: PropTypes.element,\r\n /** Indica se visualizzare il tasto di back */\r\n back: PropTypes.bool,\r\n /** Componente contenente i bottoni da visualizzare */\r\n buttons: PropTypes.element,\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n /**\r\n * Funzione invocata al click del tasto back:\r\n * ```\r\n * onBack(event)\r\n * ```\r\n * dove:\r\n * * *event*: evento scatenante\r\n */\r\n onBack: PropTypes.func,\r\n /** Il titolo della toolbar */\r\n title: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.object,\r\n ]),\r\n};\r\n\r\nToolbar.defaultProps = {\r\n actions: null,\r\n back: false,\r\n buttons: null,\r\n className: '',\r\n onBack: null,\r\n title: '',\r\n};\r\n\r\nexport default Toolbar;\r\n","import Toolbar from './Toolbar';\r\n\r\nexport default Toolbar;\r\n","import React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport Helmet from 'react-helmet';\r\nimport { Toolbar } from 'framework-ui-components';\r\nimport { withRouter } from 'react-router-dom';\r\nimport LoadingPanel from '../LoadingPanel';\r\n\r\nclass PageWrapper extends Component {\r\n handlePageBack = () => {\r\n const { onPageBack, history } = this.props;\r\n if (onPageBack) {\r\n onPageBack();\r\n } else {\r\n history.goBack();\r\n }\r\n }\r\n\r\n render() {\r\n const {\r\n children,\r\n helmetTitle,\r\n isLoadingPage,\r\n pageActions,\r\n pageBack,\r\n pageButtons,\r\n pageTitle,\r\n className\r\n } = this.props;\r\n\r\n return (\r\n
    \r\n {helmetTitle && }\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\nPageWrapper.defaultProps = {\r\n children: null,\r\n helmetTitle: null,\r\n isLoadingPage: false,\r\n onPageBack: null,\r\n pageActions: null,\r\n pageBack: false,\r\n pageButtons: null,\r\n};\r\n\r\nPageWrapper.propTypes = {\r\n children: PropTypes.element,\r\n helmetTitle: PropTypes.string,\r\n isLoadingPage: PropTypes.bool,\r\n onPageBack: PropTypes.func,\r\n pageActions: PropTypes.element,\r\n pageBack: PropTypes.bool,\r\n pageButtons: PropTypes.element,\r\n pageTitle: PropTypes.oneOfType([PropTypes.string, PropTypes.node]).isRequired,\r\n history: PropTypes.shape({\r\n goBack: PropTypes.func.isRequired,\r\n }).isRequired,\r\n};\r\n\r\nexport default withRouter(PageWrapper);\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 , '0 0 16 13.3',\r\n);\r\n","import React from 'react';\r\nimport Icon from './Icon';\r\n\r\nexport default Icon(, '0 0 24 24', 'DeleteIcon');\r\n","const 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 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","/* 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 React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\n\r\nfunction Body({\r\n children, scrollable, overflow, maxHeight,\r\n}) {\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 /** Assegna la classe scrollable al componente */\r\n scrollable: PropTypes.any, // eslint-disable-line react/forbid-prop-types\r\n /** Altezza massima */\r\n maxHeight: PropTypes.string,\r\n /** Proprietà di overflow da personalizzare */\r\n overflow: PropTypes.string,\r\n};\r\n\r\nBody.defaultProps = {\r\n children: null,\r\n scrollable: null,\r\n maxHeight: null,\r\n overflow: null,\r\n};\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\nfunction Header({ children, dragging, onMouseDown }) {\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 ]),\r\n /** Assegna la classe dragging al componente\r\n * @ignore\r\n */\r\n dragging: PropTypes.bool,\r\n /** Callback invocata alla pressione del mouse\r\n * @ignore\r\n */\r\n onMouseDown: PropTypes.func,\r\n};\r\n\r\nHeader.defaultProps = {\r\n children: null,\r\n dragging: false,\r\n onMouseDown: null,\r\n};\r\n\r\nexport default Header;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nfunction 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 ]),\r\n};\r\n\r\nFooter.defaultProps = {\r\n children: null,\r\n};\r\n\r\nexport default Footer;\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, 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 { 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, 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 React, {\r\n useRef, useEffect, useMemo, forwardRef,\r\n} from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { createPortal } from 'react-dom';\r\nimport cns from 'classnames';\r\n\r\nimport DeleteIcon from '../Icons/DeleteIcon';\r\nimport Spinner from '../Spinner';\r\nimport DontShowAgain from '../DontShowAgain/DontShowAgain';\r\nimport { usePortalElement, useChangeModalPosition, useBodyModalOpenClass } from './hooks';\r\nimport Body from './Body';\r\nimport Header from './Header';\r\nimport Footer from './Footer';\r\nimport useModalContext from '../ModalContext/useModalContext';\r\nimport { sameType } from '../../utils/react';\r\nimport { NOOP } from '../../utils/const';\r\nimport useDontShowAgainMessageRead from '../DontShowAgain/useDontShowAgainMessageRead';\r\n\r\nconst ModalCloseButton = ({ onClose }) => (\r\n \r\n \r\n \r\n);\r\n\r\nModalCloseButton.propTypes = {\r\n /**\r\n * Callback di chiusura della modale\r\n */\r\n onClose: PropTypes.func,\r\n};\r\n\r\nModalCloseButton.defaultProps = {\r\n onClose: null,\r\n};\r\n\r\nconst ModalContent = forwardRef((props, ref) => {\r\n const {\r\n children,\r\n className,\r\n x, y,\r\n style,\r\n ...others\r\n } = props;\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n});\r\n\r\nModalContent.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.isRequired,\r\n /** Indica la posizione del contenuto */\r\n x: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.number,\r\n ]).isRequired,\r\n y: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.number,\r\n ]).isRequired,\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\nModalContent.defaultProps = {\r\n style: {},\r\n};\r\n\r\n/**\r\nPresenta una finestra modale con Body, Header e Footer.\r\nCrea un elemento a livello body su cui renderizzare la modale.\r\n */\r\nconst Modal = (props) => {\r\n const {\r\n children,\r\n className,\r\n contentClassName,\r\n doNotFocus,\r\n initialPos,\r\n loading,\r\n onClose,\r\n show,\r\n style,\r\n dontShowAgainId,\r\n ...others\r\n } = props;\r\n\r\n const contentRef = useRef();\r\n const portalElementRef = usePortalElement(show);\r\n const {\r\n x, y, overflow, maxHeight, dragging, onMouseDown,\r\n } = useChangeModalPosition(initialPos, contentRef, portalElementRef);\r\n useBodyModalOpenClass(show);\r\n\r\n useModalContext(show);\r\n\r\n const messageRead = useDontShowAgainMessageRead(dontShowAgainId, show);\r\n\r\n useEffect(() => {\r\n if (!doNotFocus && contentRef.current) contentRef.current.focus();\r\n }, [doNotFocus]);\r\n\r\n const modalCloseButtonElement = useMemo(() => , [onClose]);\r\n\r\n const childrenWithProps = useMemo(() => {\r\n const newChildren = [];\r\n React.Children.forEach(\r\n children,\r\n (child) => {\r\n if (sameType(child, Body)) {\r\n newChildren.push(React.cloneElement(child, {\r\n overflow,\r\n maxHeight,\r\n key: newChildren.length + 1,\r\n }));\r\n if (dontShowAgainId) {\r\n newChildren.push();\r\n }\r\n } else if (sameType(child, Header)) {\r\n newChildren.push(React.cloneElement(child, {\r\n dragging,\r\n onMouseDown,\r\n key: newChildren.length + 1,\r\n }));\r\n } else {\r\n newChildren.push(child);\r\n }\r\n },\r\n );\r\n return newChildren;\r\n }, [children, overflow, maxHeight, dontShowAgainId, dragging, onMouseDown]);\r\n\r\n if (!show) return null;\r\n if (messageRead) {\r\n onClose();\r\n return null;\r\n }\r\n\r\n const classes = cns('modal', className);\r\n const contentClasses = cns('modal--content', contentClassName);\r\n\r\n return createPortal(\r\n (\r\n
    \r\n
    \r\n
    \r\n \r\n {modalCloseButtonElement}\r\n {childrenWithProps}\r\n {loading &&
    }\r\n \r\n
    \r\n
    \r\n ),\r\n portalElementRef.current,\r\n );\r\n};\r\n\r\nModal.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 /** Class css dal aggiungere a modal--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 /** Indica se mostrare un'animazione di caricamento */\r\n loading: PropTypes.bool,\r\n /**\r\n * Callback di chiusura della modale:\r\n * ```\r\n * onClose(event)\r\n * ```\r\n * dove:\r\n * * *event*: evento scatenante. Potrebbe essere undefined se chiusa per la gestione dontShowAgain.\r\n */\r\n onClose: PropTypes.func,\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\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\n dontShowAgainId: PropTypes.string,\r\n};\r\n\r\nModal.defaultProps = {\r\n children: null,\r\n className: '',\r\n contentClassName: '',\r\n doNotFocus: false,\r\n initialPos: {\r\n x: 'auto',\r\n y: (window.innerHeight * 0.05),\r\n },\r\n loading: false,\r\n onClose: NOOP,\r\n show: false,\r\n style: {},\r\n dontShowAgainId: undefined,\r\n};\r\n\r\nModal.Body = Body;\r\nModal.Header = Header;\r\nModal.Footer = Footer;\r\nModal.clearMessageStatus = DontShowAgain.clearMessageStatus;\r\n\r\nexport default Modal;\r\n","import Modal from './Modal';\r\n\r\nexport default Modal;\r\n","import React, {\r\n useRef,\r\n useEffect,\r\n} from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport Button from '../Button';\r\n\r\n/**\r\n * Bottone della confirm.\r\n * Lo stato di primary è definito da una combinazione delle proprietà text, flat e primary di Button.\r\n * Se il bottone è primary, tenta di ottenere il focus dopo il mount.\r\n */\r\nconst ConfirmButton = ({\r\n text, onClick, disabled, loading, primary,\r\n}) => {\r\n const ref = useRef();\r\n useEffect(() => {\r\n primary && setTimeout(() => {\r\n ref.current && ref.current.focus();\r\n }, 0);\r\n }, [primary]);\r\n\r\n return (\r\n \r\n {text}\r\n \r\n );\r\n};\r\n\r\nConfirmButton.propTypes = {\r\n text: PropTypes.string.isRequired,\r\n onClick: PropTypes.func.isRequired,\r\n disabled: PropTypes.bool,\r\n loading: PropTypes.bool,\r\n primary: PropTypes.bool,\r\n};\r\n\r\nConfirmButton.defaultProps = {\r\n disabled: false,\r\n loading: false,\r\n primary: false,\r\n};\r\n\r\nexport default ConfirmButton;\r\n","import React, {\r\n useState,\r\n useRef,\r\n useEffect,\r\n useMemo,\r\n useCallback,\r\n} from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\nimport Modal from '../Modal';\r\nimport SuccessoIcon from '../Icons/SuccessoIcon';\r\nimport ErroreIcon from '../Icons/ErroreIcon';\r\nimport InfoIcon from '../Icons/InfoesIcon';\r\nimport { createModalPromise } from '../Utils/modals';\r\nimport FooterButton from './FooterButton';\r\n\r\nconst Confirm = ({\r\n className,\r\n message,\r\n type, confirmPrimary,\r\n testoConferma, confirmText, cancelText,\r\n title,\r\n onConfirm, onCancel,\r\n show,\r\n onClose,\r\n dontShowAgainId,\r\n}) => {\r\n const [working, setWorking] = useState(false);\r\n const refMainButton = useRef();\r\n\r\n useEffect(() => {\r\n setTimeout(() => {\r\n refMainButton.current && refMainButton.current.focus();\r\n }, 0);\r\n }, []);\r\n\r\n const renderIcon = useCallback(() => {\r\n if (type === 'success') {\r\n return ;\r\n }\r\n if (type === 'error' || type === 'warning') {\r\n return ;\r\n }\r\n if (type === 'info') {\r\n return ;\r\n }\r\n return null;\r\n }, [type]);\r\n\r\n const annulla = useCallback(() => {\r\n if (onCancel) {\r\n const res = onCancel();\r\n if (res && res.then) {\r\n setWorking(true);\r\n res.then(() => {\r\n setWorking(false);\r\n onClose && onClose();\r\n });\r\n return;\r\n }\r\n }\r\n onClose && onClose();\r\n }, [onClose, onCancel]);\r\n\r\n const conferma = useCallback(() => {\r\n if (onConfirm) {\r\n const res = onConfirm();\r\n if (res && res.then) {\r\n setWorking(true);\r\n res.then(() => {\r\n setWorking(false);\r\n onClose && onClose();\r\n });\r\n return;\r\n }\r\n }\r\n onClose && onClose();\r\n }, [onClose, onConfirm]);\r\n\r\n const classes = useMemo(\r\n () => cns(\r\n 'confirm',\r\n {\r\n 'confirm--success': type === 'success',\r\n 'confirm--error': type === 'error',\r\n 'confirm--warning': type === 'warning',\r\n 'confirm--info': type === 'info',\r\n },\r\n className,\r\n ),\r\n [className, type],\r\n );\r\n\r\n return (\r\n \r\n \r\n
    {renderIcon()}
    \r\n
    {title}
    \r\n
    \r\n {message}\r\n \r\n \r\n \r\n \r\n
    \r\n );\r\n};\r\n\r\nConfirm.propTypes = {\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n /** Indica il testo della finestra */\r\n message: PropTypes.oneOfType([PropTypes.string, PropTypes.node]).isRequired,\r\n /**\r\n * Callback invocata al click sul pulsante Annulla. Se questo\r\n * metodo ritorna una *Promise* viene gestito lo spinner nel modale.\r\n */\r\n onCancel: PropTypes.func,\r\n /**\r\n * Callback invocata al click sul pulsante Conferma. Se questo\r\n * metodo ritorna una *Promise* viene gestito lo spinner nel modale.\r\n */\r\n onConfirm: PropTypes.func.isRequired,\r\n /**\r\n * Callback di chiusura della modale.\r\n */\r\n onClose: PropTypes.func,\r\n /** Indica se mostrare o meno la modale */\r\n show: PropTypes.bool,\r\n /** @Deprecated: usare confirmText */\r\n testoConferma: PropTypes.string,\r\n /** Testo alternativo del pulsante Conferma */\r\n confirmText: PropTypes.string,\r\n /** Testo alternativo del pulsante Annulla */\r\n cancelText: PropTypes.string,\r\n /** Indica se il bottone confirm è la scelta primaria */\r\n confirmPrimary: PropTypes.bool,\r\n /** Indica il titolo della finestra */\r\n title: PropTypes.string.isRequired,\r\n /** Indica il tipo di Confirm da renderizzare */\r\n type: PropTypes.oneOf(['error', 'warning', 'success', 'info']),\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\n dontShowAgainId: PropTypes.string,\r\n};\r\n\r\nConfirm.defaultProps = {\r\n className: '',\r\n testoConferma: undefined,\r\n cancelText: undefined,\r\n confirmText: undefined,\r\n type: 'error',\r\n show: true,\r\n onClose: null,\r\n onCancel: null,\r\n confirmPrimary: true,\r\n dontShowAgainId: undefined,\r\n};\r\n\r\nConfirm.createModalPromise = (props) => createModalPromise(Confirm, props, 'temp-modal-confirm');\r\n\r\nexport default Confirm;\r\n","import React from 'react';\r\nimport { render } from 'react-dom';\r\nimport ModalContext from '../ModalContext/ModalContext';\r\n\r\n// eslint-disable-next-line import/prefer-default-export\r\nexport function createModalPromise(type, properties, id = 'temp-element') {\r\n const tempElement = document.createElement('div');\r\n tempElement.setAttribute('id', id);\r\n const dispose = () => {\r\n ModalContext.setOpenOrGlobal(false); // Trucco! La modale non viene \"chiusa\" ma distrutto il componente che la contiene.\r\n render(
    , tempElement);\r\n }; // to destroy Confirm\r\n const confirmPromise = new Promise(() => { });\r\n // override then method\r\n confirmPromise.then = (resolve, reject) => {\r\n const onClose = properties.onClose ? () => {\r\n properties.onClose();\r\n dispose();\r\n } : dispose;\r\n render(React.createElement(type, {\r\n ...properties, onClose, onConfirm: resolve, onCancel: reject, resolve, reject,\r\n }), tempElement);\r\n };\r\n return confirmPromise;\r\n}\r\n","import Confirm from './Confirm';\r\n\r\nfunction CreateConfirm(title, message, type, testoConferma, className, cancelText, confirmPrimary, dontShowAgainId) {\r\n return Confirm.createModalPromise({\r\n className, message, confirmText: testoConferma, cancelText, title, type: type || 'warning', confirmPrimary, dontShowAgainId,\r\n });\r\n}\r\n\r\nexport default CreateConfirm;\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 from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\n/**\r\nIl ButtonGroup serve per raggruppare un insieme di bottoni spaziandoli corretamente tra di loro ed evitando l'effetto assembramento\r\n */\r\nconst ButtonGroup = ({ children }) => (\r\n
    \r\n {children}\r\n
    \r\n);\r\n\r\nButtonGroup.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\nButtonGroup.defaultProps = {\r\n children: null,\r\n};\r\n\r\nexport default ButtonGroup;\r\n","import ButtonGroup from './ButtonGroup';\r\n\r\nexport default ButtonGroup;\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","import React from 'react';\r\nimport Icon from './Icon';\r\n\r\nexport default Icon(, null, 'MoreIcon');\r\n","import React from 'react';\r\nimport Icon from './Icon';\r\n\r\nexport default Icon(, '0 0 16 16', 'PrinterIcon');\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 = Math.pow(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 * 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 return format(value, precision || 0);\r\n case 'currency':\r\n return format(value, precision || 2);\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, precision || 0);\r\n case 'currency':\r\n return `${currency} ${format(value, precision || 2)}`;\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 parse,\r\n format,\r\n formatValue,\r\n formatValueCurrency,\r\n normalizza,\r\n alignment,\r\n};\r\n","import { parse } from '../Utils/numeriHelper';\r\n\r\nexport const ValidationLevel = {\r\n ERROR: 'error',\r\n WARNING: 'warning',\r\n};\r\n\r\nconst rules = {};\r\n\r\nconst Validation = {\r\n register(name, func, params) {\r\n rules[name] = { ...params, rule: func };\r\n },\r\n\r\n validate(name, value, additionalParams) {\r\n if (!rules[name]) {\r\n throw new Error(`Funzione di validazione ${name} sconosciuta`);\r\n }\r\n const params = {};\r\n for (const prop in rules[name]) {\r\n if (Object.prototype.hasOwnProperty.call(rules[name], prop)) {\r\n params[prop] = rules[name][prop];\r\n }\r\n }\r\n if (additionalParams !== undefined) {\r\n for (const prop in additionalParams) {\r\n if (Object.prototype.hasOwnProperty.call(additionalParams, prop)) {\r\n params[prop] = additionalParams[prop];\r\n }\r\n }\r\n }\r\n const res = rules[name].rule(value, params);\r\n if (res) { return params.message; }\r\n return null;\r\n },\r\n\r\n getValidationLevel(level) {\r\n if (!level || level === ValidationLevel.ERROR) { return ValidationLevel.ERROR; }\r\n if (level === ValidationLevel.WARNING) { return ValidationLevel.WARNING; }\r\n throw new TypeError(`Validation level '${level}' non riconosciuto`);\r\n },\r\n\r\n validateAll(rulesToVal, value) {\r\n const messages = [];\r\n const warnings = [];\r\n if (rulesToVal) {\r\n let i = 0;\r\n for (i = 0; i < rulesToVal.length; i += 1) {\r\n let message = null;\r\n let level = ValidationLevel.ERROR;\r\n const ruleToVal = rulesToVal[i];\r\n if (typeof (ruleToVal) === 'string') {\r\n message = Validation.validate(ruleToVal, value);\r\n level = Validation.getValidationLevel(rules[ruleToVal].level);\r\n } else if (typeof (ruleToVal) === 'function') {\r\n const result = ruleToVal(value);\r\n if (typeof (result) === 'string' || !result) {\r\n message = result;\r\n } else {\r\n // se la funzione ritorna un oggetto controllo se presente l'attributo warning\r\n const { message: messageResult, level: levelResult } = result;\r\n message = messageResult;\r\n level = Validation.getValidationLevel(levelResult);\r\n }\r\n } else {\r\n message = Validation.validate(ruleToVal.rule, value, ruleToVal);\r\n level = ruleToVal.level\r\n ? Validation.getValidationLevel(ruleToVal.level)\r\n : Validation.getValidationLevel(rules[ruleToVal.rule].level);\r\n }\r\n if (message != null) {\r\n if (level === ValidationLevel.WARNING) {\r\n warnings.push(message);\r\n } else {\r\n messages.push(message);\r\n }\r\n }\r\n }\r\n }\r\n return {\r\n valid: messages.length === 0,\r\n messages,\r\n warnings,\r\n };\r\n },\r\n};\r\n\r\nexport const codiceFiscaleValido = (value) => {\r\n // se vuota i dati sono validi\r\n if (value === null || value === undefined) {\r\n return true;\r\n }\r\n // se non è una stringa non è un codice fiscale valido\r\n if (typeof (value) !== 'string') {\r\n return false;\r\n }\r\n let cf = value;\r\n let s;\r\n if (cf === '') {\r\n return true;\r\n }\r\n cf = cf.toUpperCase();\r\n if (cf.length !== 16) {\r\n return false;\r\n }\r\n const validi = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';\r\n for (let i = 0; i < 16; i += 1) {\r\n if (validi.indexOf(cf.charAt(i)) === -1) {\r\n return false;\r\n }\r\n }\r\n const set1 = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';\r\n const set2 = 'ABCDEFGHIJABCDEFGHIJKLMNOPQRSTUVWXYZ';\r\n const setpari = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';\r\n const setdisp = 'BAKPLCQDREVOSFTGUHMINJWZYX';\r\n s = 0;\r\n for (let i = 1; i <= 13; i += 2) {\r\n s += setpari.indexOf(set2.charAt(set1.indexOf(cf.charAt(i))));\r\n }\r\n for (let i = 0; i <= 14; i += 2) {\r\n s += setdisp.indexOf(set2.charAt(set1.indexOf(cf.charAt(i))));\r\n }\r\n if (s % 26 !== cf.charCodeAt(15) - 'A'.charCodeAt(0)) {\r\n return false;\r\n }\r\n return true;\r\n};\r\n\r\nexport const IBANValido = (iban) => {\r\n // se vuota i dati sono validi\r\n if (iban === null || iban === undefined) {\r\n return true;\r\n }\r\n // se non è una stringa non è un numero di cellualre valido\r\n if (typeof (iban) !== 'string') {\r\n return false;\r\n }\r\n if (iban.length === 0) {\r\n return true;\r\n }\r\n let newIban = iban.toUpperCase();\r\n if (newIban.length < 2 || newIban.substring(0, 2) !== 'IT') {\r\n return false;\r\n }\r\n const modulo = (divident, divisor) => {\r\n let m = 0;\r\n for (let i = 0; i < divident.length; i += 1) {\r\n m = (m * 10 + parseInt(divident.charAt(i), 10)) % divisor;\r\n }\r\n return m;\r\n };\r\n if (newIban.search(/^[A-Z]{2}/gi) < 0) {\r\n return false;\r\n }\r\n newIban = newIban.substring(4) + newIban.substring(0, 4);\r\n newIban = newIban.replace(/[A-Z]/g, (match) => match.charCodeAt(0) - 55);\r\n return parseInt(modulo(newIban, 97), 10) === 1;\r\n};\r\n\r\nfunction verificaCodiceProvinciaPartitaIva(partitaIva) {\r\n const codiceProvinciale = parseInt(partitaIva.substring(7, 10), 10);\r\n if ((codiceProvinciale === 0 || codiceProvinciale > 100)\r\n && codiceProvinciale !== 120\r\n && codiceProvinciale !== 121\r\n && codiceProvinciale !== 888\r\n && codiceProvinciale !== 999) {\r\n return false;\r\n }\r\n return true;\r\n}\r\n\r\nfunction verificaCodiceControlloPartitaIva(partitaIva) {\r\n // calcolo il codice di controllo\r\n let s = 0; let\r\n c = 0;\r\n for (let i = 0; i <= 9; i += 2) {\r\n s += partitaIva.charCodeAt(i) - '0'.charCodeAt(0);\r\n }\r\n for (let i = 1; i <= 9; i += 2) {\r\n c = 2 * (partitaIva.charCodeAt(i) - '0'.charCodeAt(0));\r\n if (c > 9) {\r\n c -= 9;\r\n }\r\n s += c;\r\n }\r\n // verifico che il codice di controllo sia corretto\r\n if ((10 - s % 10) % 10 !== partitaIva.charCodeAt(10) - '0'.charCodeAt(0)) {\r\n return false;\r\n }\r\n return true;\r\n}\r\n\r\nexport const partitaIVAValida = (partitaIva) => {\r\n // se vuota i dati sono validi\r\n if (partitaIva === null || partitaIva === undefined) {\r\n return true;\r\n }\r\n // se non è una stringa non è una partita IVA valdia\r\n if (typeof (partitaIva) !== 'string') {\r\n return false;\r\n }\r\n if (partitaIva.length === 0) {\r\n return true;\r\n }\r\n // se la lunghezza non è corretta allora è sicuramente errata\r\n if (partitaIva.length !== 11) {\r\n return false;\r\n }\r\n // se sono presenti caratteri non numerici allora è errata\r\n const validi = '0123456789';\r\n for (let i = 0; i < 11; i += 1) {\r\n if (validi.indexOf(partitaIva.charAt(i)) === -1) {\r\n return false;\r\n }\r\n }\r\n\r\n if (\r\n !verificaCodiceProvinciaPartitaIva(partitaIva)\r\n || !verificaCodiceControlloPartitaIva(partitaIva)\r\n ) {\r\n return false;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nexport const telefonoValido = (telefono) => {\r\n // se vuota i dati sono validi\r\n if (telefono === null || telefono === undefined) {\r\n return true;\r\n }\r\n // se non è una stringa non è un numero di cellualre valido\r\n if (typeof (telefono) !== 'string') {\r\n return false;\r\n }\r\n if (telefono.length === 0) {\r\n return true;\r\n }\r\n if (telefono.replace(/ /g, '').match(/^[+]?[0|3]{1}[1-9]+[-\\s/]?[0-9]{5,}$/i)) {\r\n return true;\r\n }\r\n return false;\r\n};\r\n\r\nexport const mailValida = (mail) => {\r\n // se vuota i dati sono validi\r\n if (mail === null || mail === undefined) {\r\n return true;\r\n }\r\n // se non è una stringa non è un numero di cellualre valido\r\n if (typeof (mail) !== 'string') {\r\n return false;\r\n }\r\n if (mail.length === 0) {\r\n return true;\r\n }\r\n if (mail\r\n .replace(/ /g, '')\r\n .match(/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])$/i)) {\r\n return true;\r\n }\r\n return false;\r\n};\r\n\r\nconst ValidationRules = {\r\n required: 'required',\r\n minLength: 'minLength',\r\n maxLength: 'maxLength',\r\n CodiceFiscaleAlfaNumerico: 'CodiceFiscaleAlfaNumerico',\r\n PartitaIva: 'PartitaIva',\r\n CodiceFiscale: 'CodiceFiscale',\r\n IBAN: 'IBAN',\r\n Fax: 'Fax',\r\n Email: 'Email',\r\n Range: 'Range',\r\n Pattern: 'Pattern',\r\n Telefono: 'Telefono',\r\n};\r\n\r\nValidation.register(ValidationRules.required, (x, y) => !(`${x || ''}`).trim(), { message: 'Campo obbligatorio' });\r\nValidation.register(ValidationRules.minLength, (x, y) => (y.minLength && (`${x}`).length < y.minLength), { message: 'Campo troppo corto' });\r\nValidation.register(ValidationRules.maxLength, (x, y) => (y.maxLength && (`${x}`).length >= y.maxLength), { message: 'Campo troppo lungo' });\r\nValidation.register(ValidationRules.CodiceFiscaleAlfaNumerico, (x, y) => !codiceFiscaleValido(`${x || ''}`), { message: 'Codice Fiscale non valido' });\r\nValidation.register(ValidationRules.PartitaIva, (x, y) => !partitaIVAValida(x || ''), { message: 'Partita IVA non valida' });\r\nValidation.register(ValidationRules.CodiceFiscale, (x, y) => !partitaIVAValida(`${x || ''}`) && !codiceFiscaleValido(`${x}`),\r\n { message: 'Codice Fiscale non valido' });\r\nValidation.register(ValidationRules.IBAN, (x, y) => !IBANValido(`${x || ''}`), { message: 'IBAN non valido' });\r\nValidation.register(ValidationRules.Telefono, (x, y) => !telefonoValido(`${x || ''}`), { message: 'Telefono non valido' });\r\nValidation.register(ValidationRules.Fax, (x, y) => !telefonoValido(`${x || ''}`), { message: 'Fax non valido' });\r\nValidation.register(ValidationRules.Email, (x, y) => !mailValida(`${x || ''}`), { message: 'Email non valida' });\r\nValidation.register(ValidationRules.Range, (x, y) => {\r\n let val = null;\r\n if (x != null && x !== '') {\r\n val = parse(x);\r\n }\r\n return val < y.minValue || val > y.maxValue;\r\n}, { message: \"Valore non compreso nell'intervallo\" });\r\nValidation.register(ValidationRules.Pattern, (x, y) => !y.pattern.test(x), { message: 'Valore non corrispondente al pattern' });\r\n\r\nValidation.DefaultRules = ValidationRules;\r\nValidation.Levels = ValidationLevel;\r\n\r\nexport default Validation;\r\n","const customRestrictions = {};\r\n\r\n// restituisce il carattere descritto nell'evento come codice\r\nconst getEventKeyChar = (event) => String.fromCharCode(event.which || event.keyCode);\r\n\r\n// controlla se l'evento soddisfa la restrizione passata come parametro keyName\r\nconst matchKeyEvent = (event, keyName) => {\r\n const cleanKeyName = keyName.toLowerCase().trim();\r\n const customRestriction = customRestrictions[cleanKeyName] || null;\r\n if (customRestriction) {\r\n return customRestriction.restriction(event);\r\n }\r\n return keyName === getEventKeyChar(event);\r\n};\r\n\r\n// verifica che sia soddisfatta almeno una regola di restrizione passata in keys\r\nconst findMatchedKey = (event, keys) => keys.find((k) => matchKeyEvent(event, k));\r\n\r\nconst Restriction = {\r\n register(name, func) {\r\n customRestrictions[name.toLowerCase()] = { restriction: func };\r\n },\r\n\r\n isValid(event, handleKeys) {\r\n return !!findMatchedKey(event, handleKeys);\r\n },\r\n};\r\n\r\n// RESTRIZIONI PREDEFINITE\r\n\r\nconst DefaultRestrictions = {\r\n numeri: 'numeri',\r\n numerinegativi: 'numerinegativi',\r\n numeridecimali: 'numeridecimali',\r\n numeridecimalinegativi: 'numeridecimalinegativi',\r\n lettere: 'lettere',\r\n lettereall: 'lettereall',\r\n alfanumerici: 'alfanumerici',\r\n cognomenome: 'cognomenome',\r\n ragionesociale: 'ragionesociale',\r\n codicefiscale: 'codicefiscale',\r\n};\r\n\r\nconst numberKeys = '0123456789'.split('');\r\nconst letterKeys = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.split('');\r\nconst letterSpecialKeys = 'äâàçèéêëìîïíñòôóöûùüúÁÀÂÄÇÈÉÊËÌÎÏÍÑÔÖÒÙÛÜÓÚß'.split('');\r\nconst allLetterKeys = [...letterKeys, ...letterSpecialKeys];\r\nconst alphanumericKeys = [...numberKeys, ...allLetterKeys];\r\n\r\nRestriction.register(DefaultRestrictions.numeri,\r\n (event) => numberKeys.indexOf(getEventKeyChar(event)) !== -1);\r\n\r\nRestriction.register(DefaultRestrictions.numerinegativi,\r\n (event) => {\r\n const char = getEventKeyChar(event);\r\n return numberKeys.indexOf(char) !== -1 || char === '-';\r\n });\r\n\r\nRestriction.register(DefaultRestrictions.numeridecimali,\r\n (event) => {\r\n const char = getEventKeyChar(event);\r\n return numberKeys.indexOf(char) !== -1 || char === '.' || char === ',';\r\n });\r\n\r\nRestriction.register(DefaultRestrictions.numeridecimalinegativi,\r\n (event) => {\r\n const char = getEventKeyChar(event);\r\n return numberKeys.indexOf(char) !== -1 || char === '-' || char === '.' || char === ',';\r\n });\r\n\r\nRestriction.register(DefaultRestrictions.lettere,\r\n (event) => letterKeys.indexOf(getEventKeyChar(event)) !== -1);\r\n\r\nRestriction.register(DefaultRestrictions.lettereall,\r\n (event) => allLetterKeys.indexOf(getEventKeyChar(event)) !== -1);\r\n\r\nRestriction.register(DefaultRestrictions.alfanumerici,\r\n (event) => alphanumericKeys.indexOf(getEventKeyChar(event)) !== -1);\r\n\r\nRestriction.register(DefaultRestrictions.cognomenome,\r\n (event) => {\r\n const char = getEventKeyChar(event);\r\n return allLetterKeys.indexOf(char) !== -1 || char === '\\'' || char === '`' || char === ' ';\r\n });\r\n\r\nRestriction.register(DefaultRestrictions.ragionesociale,\r\n (event) => {\r\n const char = getEventKeyChar(event);\r\n return alphanumericKeys.indexOf(char) !== -1 || char === '\\'' || char === '`'\r\n || char === '&' || char === ' ' || char === '-' || char === '_';\r\n });\r\n\r\nRestriction.register(DefaultRestrictions.codicefiscale,\r\n (event) => {\r\n const char = getEventKeyChar(event);\r\n return letterKeys.indexOf(char) !== -1 || numberKeys.indexOf(char) !== -1;\r\n });\r\n\r\nRestriction.DefaultValues = DefaultRestrictions;\r\n\r\nexport default Restriction;\r\n","import Restriction from './Restriction';\r\n\r\nexport default Restriction;\r\n","import React, { useRef, useEffect } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\nimport Tooltip from '../Tooltip/Tooltip';\r\n\r\n/**\r\nTesto che mostra i \"tre puntini\" se supera lo spazio assegnato e il testo completo nella tooltip.\r\n*/\r\nconst EllipsisText = ({\r\n className, children, left, top, disabled, numberOfLines,\r\n}) => {\r\n const ref = useRef();\r\n const textClassname = cns('ellipsis__text', className, { 'ellipsis__text--multilines': numberOfLines > 1 });\r\n const textStyle = numberOfLines > 1 ? { WebkitLineClamp: numberOfLines } : undefined;\r\n\r\n return (\r\n !disabled && ref.current && (\r\n (ref.current.offsetWidth < ref.current.scrollWidth)\r\n || (ref.current.offsetHeight < ref.current.scrollHeight)\r\n )}\r\n className=\"ellipsis__info-tooltip\"\r\n >\r\n \r\n {children}\r\n \r\n \r\n );\r\n};\r\n\r\nEllipsisText.propTypes = {\r\n /**\r\n * Classe custom.\r\n */\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 tooltip spostato verso sinistra */\r\n left: PropTypes.bool,\r\n /** Mostra il tooltip sopra */\r\n top: PropTypes.bool,\r\n /** Permette di disabilitare il tooltip */\r\n disabled: PropTypes.bool,\r\n /** Numero di linee su cui visualizzare il testo */\r\n numberOfLines: PropTypes.number,\r\n};\r\n\r\nEllipsisText.defaultProps = {\r\n className: undefined,\r\n children: null,\r\n left: false,\r\n top: true,\r\n disabled: false,\r\n numberOfLines: 1,\r\n};\r\n\r\nexport default EllipsisText;\r\n","import EllipsisText from './EllipsisText';\r\n\r\nexport default EllipsisText;\r\n","/**\r\n * Hook che indica la presenza di errori o warning nelle strutture passate in input\r\n * @param {*} validare\r\n * @param {*} dirty\r\n * @param {*} validazione\r\n * @returns oggetto con hasError e HasWarning\r\n */\r\nfunction useValidations(validare, dirty, validazione) {\r\n const validareDirty = validare || dirty;\r\n const hasError = !validazione.valid && validareDirty;\r\n const hasWarning = !hasError && validazione.warnings && validazione.warnings.length > 0 && validareDirty;\r\n return ({\r\n hasError,\r\n hasWarning,\r\n });\r\n}\r\n\r\nexport default useValidations;\r\n","import React, { Fragment } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\nimport ErroreIcon from '../Icons/ErroreIcon';\r\n\r\nconst ValidationViewer = ({\r\n hasError, hasWarning, validazione, className,\r\n}) => (\r\n \r\n {hasError && (\r\n
      \r\n {validazione.messages.map(\r\n (x, i) =>
    • {x}
    • , // eslint-disable-line\r\n )}\r\n
    \r\n )}\r\n {hasError && }\r\n {hasWarning && (\r\n
      \r\n {validazione.warnings.map(\r\n (x, i) =>
    • {x}
    • , // eslint-disable-line\r\n )}\r\n
    \r\n )}\r\n {hasWarning && }\r\n
    \r\n);\r\n\r\nValidationViewer.propTypes = {\r\n className: PropTypes.string,\r\n hasError: PropTypes.bool,\r\n hasWarning: PropTypes.bool,\r\n validazione: PropTypes.shape({\r\n messages: PropTypes.arrayOf(PropTypes.string),\r\n warnings: PropTypes.arrayOf(PropTypes.string),\r\n valid: PropTypes.bool,\r\n }).isRequired,\r\n};\r\n\r\nValidationViewer.defaultProps = {\r\n hasError: false,\r\n hasWarning: false,\r\n className: undefined,\r\n};\r\n\r\nexport default ValidationViewer;\r\n","/**\r\n * Funzione che rimuove gli spazi multipli ad una stringa\r\n * @param {string} value\r\n * @returns {string}\r\n */\r\nconst removeMultipleSpace = (value) => (value ? value.trim().replace(/^\\s+/, '').replace(/\\s\\s+/g, ' ') : value);\r\n\r\n/**\r\n * Funzione che maiuscolizza le parole passate per visualizzarle come nomi ('paOLO roSSI' -> 'Paolo Rossi')\r\n * e rimuove spazi iniziali e finali\r\n * @param {string} value\r\n * @returns {string}\r\n */\r\nconst namecase = (value) => (value\r\n ? value.trim().toLowerCase().replace(/[ '-]([a-z])/g, (x) => x.toUpperCase()).replace(/^([a-z])/g, (x) => x.toUpperCase())\r\n : value);\r\n\r\nexport {\r\n removeMultipleSpace,\r\n namecase,\r\n};\r\n","/* eslint-disable react-hooks/rules-of-hooks */\r\n// eslint-disable-next-line max-classes-per-file\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\nimport Validation from '../Validation';\r\nimport {\r\n parse, format, alignment, formatValue,\r\n} from '../Utils/numeriHelper';\r\nimport { getProp, setProp } from '../Utils/formHelpers';\r\nimport { getTitle, getRandomId, Presentation } from '../Utils/baseComponentHelper';\r\nimport { FormWrapperPropTypes } from '../Form/withForm';\r\nimport Restriction from '../Restriction';\r\nimport Log from '../../utils/log';\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 { namecase } from '../Utils/stringHelper';\r\n\r\nconst KeyCodes = {\r\n Period: 190,\r\n DecimalPoint: 110,\r\n Comma: 188,\r\n};\r\n\r\nclass Input extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n const { stato, name, value } = this.props;\r\n if (stato && name && value) {\r\n Log.warn(`Input[${name}]: se impostato lo state e il name non deve essere impostato il value`);\r\n }\r\n this.state = {\r\n dirty: false,\r\n value: this.getValue(false),\r\n };\r\n this.uniqueid = getRandomId();\r\n\r\n this.formattedField = React.createRef();\r\n this.unformattedField = React.createRef();\r\n }\r\n\r\n componentDidMount() {\r\n const {\r\n name, addToForm, zeroValid,\r\n } = this.props;\r\n if (addToForm && name) {\r\n addToForm(name, this.valida(), this.reset);\r\n }\r\n const value = this.getValue();\r\n if (zeroValid && this.isZero(value) && format) {\r\n this.aggiornaValoreInput(this.formatta(value, zeroValid));\r\n }\r\n }\r\n\r\n UNSAFE_componentWillReceiveProps({ value, readOnly: readOnlyProp, disabled: disabledProp }) {\r\n const { value: valueP, readOnly: readOnlyP, zeroValid } = this.props;\r\n const { readOnly } = useActivation(disabledProp, readOnlyProp);\r\n if ((value || value === '' || (!zeroValid && this.isZero(value))) && valueP !== value) {\r\n this.setState({ value });\r\n }\r\n if (readOnly !== readOnlyP) {\r\n this.aggiornaValoreInput(this.formatta(value, zeroValid));\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n const { name, removeFromForm } = this.props;\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 getAlignment() {\r\n const { align, format: formatP } = this.props;\r\n return alignment(formatP, align);\r\n }\r\n\r\n isValid = () => this.valida().valid;\r\n\r\n isZero = (val) => val === 0;\r\n\r\n getValue = (setState = true) => {\r\n const {\r\n stato, name, zeroValid, defaultValue, value: valueP,\r\n } = this.props;\r\n // eslint-disable-next-line react/destructuring-assignment\r\n const value = this.state ? this.state.value : valueP;\r\n if (stato && name) {\r\n return getProp(name, stato);\r\n }\r\n if (value || value === '' || (zeroValid && this.isZero(value))) {\r\n if (setState) this.setState({ value });\r\n return value;\r\n }\r\n let valueS = null;\r\n if (this.state) {\r\n const { value: valueState } = this.state;\r\n valueS = valueState;\r\n }\r\n if (valueS === null) {\r\n if (defaultValue || defaultValue === '' || (zeroValid && this.isZero(defaultValue))) {\r\n if (setState) this.setState({ value: defaultValue });\r\n return defaultValue;\r\n }\r\n if (setState) this.setState({ value: undefined });\r\n return undefined;\r\n }\r\n return valueS;\r\n };\r\n\r\n reset = () => {\r\n this.setState({ dirty: false });\r\n };\r\n\r\n clear = () => {\r\n this.setState({\r\n value: '',\r\n });\r\n };\r\n\r\n valida = () => {\r\n const {\r\n format: formatP, validations, zeroValid,\r\n } = this.props;\r\n if (validations === undefined) { return { valid: true }; }\r\n let value = this.getValue(false);\r\n if (formatP && value !== '' && (!value || zeroValid)) {\r\n value = this.formatta(+value, true);\r\n }\r\n return Validation.validateAll(validations, value);\r\n };\r\n\r\n notifica = (event) => {\r\n const {\r\n format: formatP, name, onChange, nameCase, upperCase, readOnly, stato, onFormChange,\r\n } = this.props;\r\n let value = null;\r\n let targetValue = event.target.value === undefined || event.target.value === null ? '' : event.target.value;\r\n targetValue = new Presentation({ readOnly }).parse(targetValue);\r\n // nel caso di restrizioni verifico che non siano passati caratteri\r\n // particolari (ad esempio da un incolla)\r\n const { restrictions } = this.props;\r\n if (restrictions) {\r\n const isNumber = typeof targetValue === 'number';\r\n targetValue = `${targetValue}`.split('').filter((char) => Restriction.isValid({ keyCode: char.charCodeAt(0) }, restrictions)).join('');\r\n if (isNumber) targetValue = Number(targetValue);\r\n }\r\n // procedo con la formattazione\r\n if (formatP) {\r\n value = parseFloat(parse(targetValue));\r\n if (this.formattedField.current && this.formattedField.current.value === '') {\r\n value = null;\r\n }\r\n } else if (nameCase) {\r\n // nel caso di nameCase ed uppercase formatto la stringa, e ripristino il cursore\r\n const hasSelection = !!this.unformattedField.current.selectionStart;\r\n const start = hasSelection ? this.unformattedField.current.selectionStart : 0;\r\n const end = hasSelection ? this.unformattedField.current.selectionEnd : 0;\r\n value = namecase(targetValue);\r\n this.unformattedField.current.value = value;\r\n if (hasSelection) {\r\n this.unformattedField.current.setSelectionRange(start, end);\r\n }\r\n } else if (upperCase) {\r\n const hasSelection = !!this.unformattedField.current.selectionStart;\r\n const start = hasSelection ? this.unformattedField.current.selectionStart : 0;\r\n const end = hasSelection ? this.unformattedField.current.selectionEnd : 0;\r\n value = targetValue.toUpperCase();\r\n this.unformattedField.current.value = value;\r\n if (hasSelection) {\r\n this.unformattedField.current.setSelectionRange(start, end);\r\n }\r\n } else {\r\n value = targetValue;\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 this.setState({ value });\r\n onChange && onChange(event, value);\r\n };\r\n\r\n formatta = (value, keepZero) => {\r\n const { precisione, format: formatP } = this.props;\r\n if (!formatP) return value;\r\n if ((value === 0 && !keepZero) || Number.isNaN(value)) { return ''; }\r\n return formatValue(value, formatP, precisione);\r\n };\r\n\r\n focus = () => {\r\n this.formattedField.current && this.formattedField.current.focus();\r\n this.unformattedField.current && this.unformattedField.current.focus();\r\n };\r\n\r\n focused = () => (this.formattedField && document.activeElement === this.formattedField.current)\r\n || (this.unformattedField && document.activeElement === this.unformattedField.current);\r\n\r\n onBlur = (event) => {\r\n const {\r\n format: formatP, disabled: disabledProp, readOnly: readOnlyProp, onBlur,\r\n } = this.props;\r\n\r\n const { active } = useActivation(disabledProp, readOnlyProp);\r\n\r\n const newEvent = event;\r\n if (active) {\r\n newEvent.target.value = this.valueChanged(formatP, newEvent);\r\n }\r\n const { dirty } = this.state;\r\n if (!dirty) {\r\n this.setState({ dirty: true });\r\n }\r\n onBlur && onBlur(newEvent);\r\n };\r\n\r\n onKeyPress = (event) => {\r\n const { restrictions, onKeyPress } = this.props;\r\n if (restrictions) {\r\n if (!Restriction.isValid(event, restrictions)) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n }\r\n }\r\n onKeyPress && onKeyPress(event);\r\n };\r\n\r\n onKeyDown = (event) => {\r\n const { format: formatP, precisione, onKeyDown } = this.props;\r\n if (formatP) {\r\n if (formatP === 'number' && !precisione\r\n && (event.which === KeyCodes.DecimalPoint || event.which === KeyCodes.Comma)) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n }\r\n if ((event.which === KeyCodes.Comma || event.which === KeyCodes.DecimalPoint || event.which === KeyCodes.Period)) {\r\n if (this.formattedField.current.value.indexOf(',') !== -1) {\r\n event.preventDefault();\r\n } else {\r\n event.preventDefault();\r\n this.formattedField.current.value = `${this.formattedField.current.value},`;\r\n }\r\n }\r\n }\r\n onKeyDown && onKeyDown(event);\r\n };\r\n\r\n aggiornaValoreInput(value) {\r\n const { readOnly: readOnlyProp, disabled: disabledProp } = this.props;\r\n const { readOnly } = useActivation(disabledProp, readOnlyProp);\r\n if (this.formattedField.current) {\r\n this.formattedField.current.value = new Presentation({ readOnly }).format(value);\r\n }\r\n }\r\n\r\n valueChanged(formatP, newEvent) {\r\n const { zeroValid } = this.props;\r\n let inputValue = newEvent.target.value;\r\n const val = newEvent.target.value;\r\n if (formatP) {\r\n let valore = this.formatta(parseFloat(parse(newEvent.target.value)), zeroValid);\r\n inputValue = parseFloat(parse(valore), 10);\r\n if (newEvent.target.value === '') {\r\n inputValue = null;\r\n valore = '';\r\n }\r\n setTimeout(() => {\r\n this.aggiornaValoreInput(val === '' ? '' : valore);\r\n if (zeroValid && val === '') { // hp cancellato, non mi deve riproposse 0\r\n this.notifica({ target: { value: '' } });\r\n } else {\r\n this.notifica({ target: { value: parseFloat(parse(valore), 10) } });\r\n }\r\n }, 0);\r\n }\r\n return inputValue;\r\n }\r\n\r\n renderInput(value) {\r\n const {\r\n actions,\r\n addToForm,\r\n className,\r\n format: formatP,\r\n isValid,\r\n nameCase,\r\n onBlur,\r\n onChange,\r\n onFormChange,\r\n onKeyDown,\r\n precisione,\r\n removeFromForm,\r\n resetta,\r\n stato,\r\n type,\r\n upperCase,\r\n validare,\r\n validations,\r\n value: rValue,\r\n title,\r\n zeroValid,\r\n name,\r\n defaultValue,\r\n restrictions,\r\n onKeyPress,\r\n readOnly: readOnlyProp,\r\n disabled: disabledProp,\r\n align,\r\n ellipsis,\r\n titleLines,\r\n placeholder,\r\n icon,\r\n ...others\r\n } = this.props;\r\n\r\n let newValue = value;\r\n\r\n const { disabled, readOnly } = useActivation(disabledProp, readOnlyProp);\r\n\r\n const inputClass = cns(\r\n 'input__input',\r\n 'validationViewer__target',\r\n `input__input--${this.getAlignment()}`,\r\n {\r\n 'input__input--readonly': readOnly,\r\n },\r\n );\r\n\r\n if (readOnly) {\r\n let formattedValue;\r\n if (formatP) {\r\n if (zeroValid && this.isZero(newValue)) {\r\n formattedValue = this.formatta(+newValue, zeroValid);\r\n } else if (zeroValid && !newValue) {\r\n formattedValue = '';\r\n } else {\r\n formattedValue = this.formatta(+newValue, zeroValid);\r\n }\r\n } else {\r\n formattedValue = newValue;\r\n }\r\n const t = new Presentation({ readOnly }).format(formattedValue);\r\n return (\r\n \r\n {t} \r\n \r\n );\r\n }\r\n\r\n if (formatP) {\r\n if (!this.focused()) {\r\n if (this.formattedField.current) {\r\n if (parse(newValue) !== parse(this.formattedField.current.value)) {\r\n setTimeout(() => {\r\n this.aggiornaValoreInput(this.formatta(+newValue, zeroValid));\r\n }, 0);\r\n } else if (zeroValid && this.isZero(newValue)) {\r\n setTimeout(() => {\r\n this.aggiornaValoreInput(this.formatta(+newValue, zeroValid));\r\n }, 0);\r\n } else if (zeroValid && !newValue) {\r\n setTimeout(() => {\r\n this.aggiornaValoreInput('');\r\n }, 0);\r\n } else if (!newValue && !zeroValid) {\r\n setTimeout(() => {\r\n this.aggiornaValoreInput(newValue || '');\r\n }, 0);\r\n }\r\n } else {\r\n newValue = !!format && (!zeroValid || newValue !== '') ? this.formatta(+newValue, zeroValid) : newValue;\r\n }\r\n }\r\n return (\r\n \r\n );\r\n }\r\n if (newValue && nameCase) {\r\n newValue = namecase(newValue);\r\n } else if (newValue && upperCase) {\r\n newValue = newValue.toUpperCase();\r\n }\r\n return (\r\n \r\n );\r\n }\r\n\r\n render() {\r\n const {\r\n isValid, validare, name, format: formatP, className, icon,\r\n title, titleLines, actions, readOnly: readOnlyProp, disabled: disabledProp,\r\n } = this.props;\r\n const { dirty } = this.state;\r\n const { 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 contesto = this.getValue(false);\r\n\r\n const { hasError, hasWarning } = useValidations(validare, dirty, validazione);\r\n\r\n const classes = cns(\r\n 'input',\r\n {\r\n 'input--empty': contesto === undefined || contesto === null || contesto === '',\r\n 'input--has-validation': hasError || hasWarning,\r\n 'input--invalid': hasError,\r\n 'input--valid': !hasError,\r\n 'input--right-with-icon': icon && this.getAlignment() === 'right',\r\n },\r\n `input--titleLines${titleLines}`,\r\n className,\r\n );\r\n\r\n const inputTitleClass = cns('input__title', { 'input__title--readOnly': readOnly });\r\n\r\n const label = name || title;\r\n\r\n return (\r\n
    \r\n
    \r\n {this.renderInput(contesto)}\r\n {label && }\r\n {title && {this.getTitle()}}\r\n \r\n \r\n {icon && React.createElement(icon, { className: 'input__icon' })}\r\n
    \r\n {!readOnly && actions &&
    {actions}
    }\r\n
    \r\n );\r\n }\r\n}\r\n\r\nInput.defaultProps = {\r\n actions: null,\r\n className: null,\r\n format: null,\r\n name: null,\r\n nameCase: false,\r\n upperCase: false,\r\n onBlur: null,\r\n onChange: null,\r\n onKeyDown: null,\r\n precisione: null,\r\n title: null,\r\n type: null,\r\n zeroValid: false,\r\n validations: null,\r\n restrictions: null,\r\n value: null,\r\n onKeyPress: null,\r\n readOnly: false,\r\n disabled: false,\r\n align: null,\r\n ellipsis: {\r\n left: false,\r\n top: true,\r\n disabled: false,\r\n },\r\n titleLines: 1,\r\n placeholder: undefined,\r\n icon: undefined,\r\n};\r\n\r\nInput.propTypes = {\r\n ...FormWrapperPropTypes,\r\n /** Azioni da associare a destra del componente */\r\n actions: PropTypes.any, // eslint-disable-line react/forbid-prop-types\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\r\n /** Indica come formattare il campo (number, currency) */\r\n format: PropTypes.oneOf(['currency', '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 /** 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 /** Presenta il campo in modalità sola lettura */\r\n readOnly: PropTypes.bool,\r\n /** Presenta il campo in modalità disabilitato */\r\n disabled: PropTypes.bool,\r\n /**\r\n * Callback invocata alla perdita del focus del campo:\r\n * onBlur(event)\r\n * dove:\r\n * * *event*: evento scatenante\r\n */\r\n onBlur: PropTypes.func,\r\n /**\r\n * Callback invocata al cambio di valore:\r\n * ```\r\n * onChange(event)\r\n * ```\r\n * dove:\r\n * * *event*: evento scatenante\r\n */\r\n onChange: PropTypes.func,\r\n /**\r\n * Callback invocata alla pressione di un tasto con il campo in focus:\r\n * ```\r\n * onKeyDown(event)\r\n * ```\r\n * dove:\r\n * * *event*: evento scatenante\r\n */\r\n onKeyDown: PropTypes.func,\r\n /**\r\n * Callback invocata alla pressione di un tasto con il campo in focus:\r\n * ```\r\n * onKeyPress(event)\r\n * ```\r\n * dove:\r\n * * *event*: evento scatenante\r\n */\r\n onKeyPress: PropTypes.func,\r\n /** Precisione numerica */\r\n precisione: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.number,\r\n ]),\r\n /** Etichetta da visualizzare nel campo che renderizza il componente */\r\n title: PropTypes.string,\r\n\r\n /**\r\nDimensione del componente.\r\n\r\nSe il testo è lungo, utilizzare la dimensione adeguata per presentarlo in modo completo.\r\n\r\n`medium` presenta una riga di label, `large` die righe.\r\n\r\nATTENZIONE: se il componente presenta una label con più righe,\r\nallineare verso il basso tutti gli altri componenti form presentati nella stessa riga.\r\n */\r\n titleLines: PropTypes.oneOf([1, 2]),\r\n\r\n /** Tipo di input da renderizzare */\r\n type: PropTypes.string,\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 /** Valore visualizzato nel campo */\r\n value: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.number,\r\n ]),\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\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 /** Elemento Icona aggiunta a dx del campo di input. Es. `EuroIcon` nel caso di `format=\"currency\"` */\r\n icon: PropTypes.elementType,\r\n};\r\n\r\nexport default Input;\r\n","import Input from './Input';\r\nimport withForm from '../Form/withForm';\r\n\r\nexport default withForm(Input);\r\n","import React, { Component, Fragment } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Button, Grid, Input } from 'framework-ui-components';\r\nimport DeleteIcon from 'framework-ui-components/Components/Icons/DeleteIcon';\r\n\r\nclass InputRicerca extends Component {\r\n state = {\r\n searchTerm: '',\r\n }\r\n\r\n onChangeSearch = (event) => {\r\n this.setState({ searchTerm: event.target.value }, () => {\r\n if (this.state.searchTerm == '') this.clickCerca();\r\n });\r\n }\r\n\r\n clickCerca = () => {\r\n this.props.onClickCerca && this.props.onClickCerca(this.state.searchTerm);\r\n }\r\n\r\n onSearchKeyDown = (event) => {\r\n if (event.keyCode == 13) {\r\n this.clickCerca();\r\n }\r\n }\r\n\r\n svuotaRicerca = (reload) => {\r\n this.setState({ searchTerm: '' }, () => reload && this.clickCerca());\r\n if (this.refInput.formattedField.current) this.refInput.formattedField.current.value = '';\r\n if (this.refInput.unformattedField.current) this.refInput.unformattedField.current.value = '';\r\n }\r\n\r\n render() {\r\n const { buttonText, title } = this.props;\r\n\r\n return (\r\n \r\n \r\n \r\n this.refInput = r}\r\n onChange={this.onChangeSearch}\r\n onKeyDown={this.onSearchKeyDown}\r\n />\r\n {this.state.searchTerm\r\n && \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nInputRicerca.propTypes = {\r\n buttonText: PropTypes.string,\r\n onClickCerca: PropTypes.func,\r\n title: PropTypes.string,\r\n};\r\n\r\nInputRicerca.defaultProps = {\r\n title: 'Cerca',\r\n buttonText: 'Cerca',\r\n};\r\n\r\nexport default InputRicerca;\r\n","import { WebRequest } from 'framework-ui-components';\r\n\r\n// #region Get actions\r\n\r\nexport const dichiarazioni = studio => WebRequest.get('SetteTrenta/Tutti', { studio });\r\n\r\nexport const cercaDichiarazioni = params => WebRequest.get('SetteTrenta/CercaSetteTrenta', params);\r\n\r\nexport const statiSetteTrenta = (studio, searchTerm, anno) => WebRequest.get('SetteTrenta/StatiSetteTrenta', { studio, searchTerm, anno });\r\n\r\nexport const isAbilitatoImportXmlAnnoCorrente = (studio, anno) => WebRequest.get('SetteTrenta/IsAbilitatoImportXmlAnnoCorrente', { studio, anno });\r\n\r\nexport const soscaf = (studio, anno) => WebRequest.get('SetteTrenta/Soscaf', { studio, anno });\r\n\r\nexport const impostazioniServizioSetteTrenta = anno => WebRequest.get('SetteTrenta/ImpostazioniServizioSetteTrenta', { anno });\r\n\r\nexport const esisteDichiarazionePerAnagrafica = (codiceFiscale, codiceUfficio, tipoDichiarazione, anno) => WebRequest.get('SetteTrenta/EsisteDichiarazionePerAnagrafica', {\r\n codiceFiscale, codiceUfficio, tipoDichiarazione, anno,\r\n});\r\n\r\nexport const preferenzeStampa = (idUtente, anno) => WebRequest.get('SetteTrenta/PreferenzeStampa', { idUtente, anno });\r\n\r\nexport const erratiCodiciFiscaliDichiarazione = (idDichiarazioneDichiarante, idDichiarazioneConiuge, anno) => WebRequest.get('SetteTrenta/ErroriCodiciFiscaliDichiarazione', { idDichiarazioneDichiarante, idDichiarazioneConiuge, anno });\r\n\r\nexport const listaDocMancanti = (idDichiarazione, anno) => WebRequest.get('SetteTrenta/ListaDocumentiMancanti', { idDichiarazione, anno });\r\n\r\nexport const listaPdfImportabili730 = () => WebRequest.get('SetteTrenta/ListaPdfImportabili730', {});\r\n// #endregion\r\n\r\n// #region Post actions\r\n\r\nexport const elimina = (idDichiarazione, anno) => WebRequest.post('SetteTrenta/Elimina', {}, { idDichiarazione, anno });\r\n\r\nexport const annullaElimina = (idDichiarazione, anno) => WebRequest.post('SetteTrenta/AnnullaElimina', {}, { idDichiarazione, anno });\r\n\r\nexport const impostaStatoCompleta = (idDichiarazione, anno) => WebRequest.post('SetteTrenta/ImpostaStatoCompleta', {}, { idDichiarazione, anno });\r\n\r\nexport const impostaStatoDaControllare = (idDichiarazione, anno) => WebRequest.post('SetteTrenta/ImpostaStatoDaControllare', {}, { idDichiarazione, anno });\r\n\r\nexport const impostaStatoTrasmettiManualmente = (idDichiarazione, anno) => WebRequest.post('SetteTrenta/ImpostaStatoTrasmettiManualmente', {}, { idDichiarazione, anno });\r\n\r\nexport const impostaStatoInLavorazione = (idDichiarazione, anno) => WebRequest.post('SetteTrenta/ImpostaStatoInLavorazione', {}, { idDichiarazione, anno });\r\n\r\nexport const impostaStatoAnnullata = (idDichiarazione, anno) => WebRequest.post('SetteTrenta/ImpostaStatoAnnullata', {}, { idDichiarazione, anno });\r\n\r\nexport const stampeVarie = idDichiarazione => WebRequest.post('SetteTrenta/StampeVarie', {}, { idDichiarazione });\r\n\r\nexport const stampaUfficiale = idDichiarazione => WebRequest.post('SetteTrenta/StampaUfficiale', {}, { idDichiarazione });\r\n\r\nexport const stampaF24 = idDichiarazione => WebRequest.post('SetteTrenta/StampaF24', {}, { idDichiarazione });\r\n\r\nexport const stampaParcelle = idDichiarazione => WebRequest.post('SetteTrenta/StampaParcelle', {}, { idDichiarazione });\r\n\r\nexport const stampaMassivaDiProva = dichiarazioniIds => WebRequest.post('SetteTrenta/StampaMassivaDiProva', dichiarazioniIds);\r\n\r\nexport const stampaMassivaVarie = dichiarazioniIds => WebRequest.post('SetteTrenta/StampaMassivaVarie', dichiarazioniIds);\r\n\r\nexport const stampaMassivaUfficiale = dichiarazioniIds => WebRequest.post('SetteTrenta/StampaMassivaUfficiale', dichiarazioniIds);\r\n\r\nexport const cambioStatoMassivoInLavorazione = (dichiarazioniIds, anno) => WebRequest.post('SetteTrenta/CambioStatoMassivoInLavorazione', { DichiarazioniIds: dichiarazioniIds, Anno: anno });\r\n\r\nexport const cambioStatoMassivoAnnulla = (dichiarazioniIds, anno) => WebRequest.post('SetteTrenta/cambioStatoMassivoAnnulla', { DichiarazioniIds: dichiarazioniIds, Anno: anno });\r\n\r\nexport const cambioStatoMassivoDaInviare = (dichiarazioniIds, anno) => WebRequest.post('SetteTrenta/cambioStatoMassivoDaInviare', { DichiarazioniIds: dichiarazioniIds, Anno: anno });\r\n\r\nexport const cambioStatoMassivoCompleta = (dichiarazioniIds, anno) => WebRequest.post('SetteTrenta/cambioStatoMassivoCompleta', { DichiarazioniIds: dichiarazioniIds, Anno: anno });\r\n\r\nexport const protocolloIntegrativaObbligatorio = (codiceFiscale, studio, anno) => WebRequest.post('SetteTrenta/ProtocolloIntegrativoObbligatorio', {}, { codiceFiscale, studio, anno });\r\n\r\nexport const creaSetteTrentaOrdinaria = (studio, codiceFiscale, nome, cognome, tipo, anno) => WebRequest.post('SetteTrenta/CreaOrdinaria', {\r\n Studio: studio,\r\n CodiceFiscale: codiceFiscale,\r\n Nome: nome,\r\n Cognome: cognome,\r\n TipoDichiarazione: tipo,\r\n Anno: anno,\r\n});\r\n\r\nexport const creaDaAnnoPrecedente = (studio, codiceFiscale, nome, cognome, tipo, anno, origine) => WebRequest.post('SetteTrenta/CreaDaAnnoPrecedente', {\r\n Studio: studio,\r\n CodiceFiscale: codiceFiscale,\r\n Nome: nome,\r\n Cognome: cognome,\r\n TipoDichiarazione: tipo,\r\n Anno: anno,\r\n Origine: origine,\r\n});\r\n\r\n\r\nexport const creaSetteTrentaIntegrativa = cmd => WebRequest.post('SetteTrenta/CreaIntegrativo', cmd);\r\n\r\nexport const creaStampaOld = (\r\n filtri,\r\n dichiarazioniIds,\r\n IsStampaUfficiale,\r\n StampaDichiarazione,\r\n AutocertificazioneGenerica,\r\n FascicoloContribuente,\r\n AutocertificazioneFamiglieNumerose,\r\n DelegaUnica, // DelegaPrecompilatoCU AnnoImpostaPiuUno\r\n InformativaPrivacy,\r\n AutocertificazioneFamiliari,\r\n StampaF24,\r\n Scelta582x1000,\r\n AutocertificazioneC4,\r\n RichiestaAccredito,\r\n DocumentiDaConsegnare,\r\n AutocertificazioneOneri,\r\n PromemoriaConguagli,\r\n DelegaPrecompilatoCU, // DelegaPrecompilatoCU AnnoImposta\r\n AutocertificazioneF6,\r\n CalcoloBonusIRPEF,\r\n Fatture,\r\n LetteraNovita,\r\n Barra2Provvisorio,\r\n RistampaLeStampate,\r\n FronteRetro,\r\n ModelliCompilati,\r\n GuidaLettura,\r\n NrCopie,\r\n // ImpostazioneStampa,\r\n // MaxPaginePdf,\r\n // IsStampaUfficiale,\r\n SalvaPreferenze,\r\n codiceUfficio,\r\n anno,\r\n ArchiviaInZip,\r\n) => WebRequest.post(`SetteTrenta/CreaStampaOld?${filtri}`, {\r\n DichiarazioniIds: dichiarazioniIds,\r\n StampaDichiarazione,\r\n AutocertificazioneGenerica,\r\n FascicoloContribuente,\r\n AutocertificazioneFamiglieNumerose,\r\n DelegaUnica, // DelegaPrecompilatoCU AnnoImpostaPiuUno\r\n InformativaPrivacy,\r\n AutocertificazioneFamiliari,\r\n StampaF24,\r\n Scelta582x1000,\r\n AutocertificazioneC4,\r\n RichiestaAccredito,\r\n DocumentiDaConsegnare,\r\n AutocertificazioneOneri,\r\n PromemoriaConguagli,\r\n DelegaPrecompilatoCU, // DelegaPrecompilatoCU AnnoImposta\r\n AutocertificazioneF6,\r\n CalcoloBonusIRPEF,\r\n Fatture,\r\n LetteraNovita,\r\n Barra2Provvisorio,\r\n RistampaLeStampate,\r\n FronteRetro,\r\n NrCopie,\r\n SoloModelliCompilati: ModelliCompilati,\r\n GuidaLettura,\r\n SalvaPreferenze,\r\n // IsStampaUfficiale,\r\n CodiceUfficio: codiceUfficio,\r\n Anno: anno,\r\n ArchiviaInZip,\r\n});\r\n\r\nexport const creaStampa = (\r\n filtri,\r\n dichiarazioniIds,\r\n IsStampaUfficiale,\r\n StampaDichiarazione,\r\n AutocertificazioneGenerica,\r\n FascicoloContribuente,\r\n DelegaUnica, // DelegaPrecompilatoCU AnnoImpostaPiuUno\r\n InformativaPrivacy,\r\n AutocertificazioneFamiliari,\r\n StampaF24,\r\n Scelta582x1000,\r\n AutocertificazioneC4,\r\n AutocertificazioneCasiParticolariQuadroC,\r\n RichiestaAccredito,\r\n DocumentiDaConsegnare,\r\n AutocertificazioneOneri,\r\n PromemoriaConguagli,\r\n DelegaPrecompilatoCU, // DelegaPrecompilatoCU AnnoImposta\r\n AutocertificazioneF6,\r\n CalcoloBonusIRPEF,\r\n Fatture,\r\n LetteraNovita,\r\n Barra2Provvisorio,\r\n RistampaLeStampate,\r\n FronteRetro,\r\n ModelliCompilati,\r\n GuidaLettura,\r\n Ricevuta730AdE,\r\n NrCopie,\r\n // ImpostazioneStampa,\r\n // MaxPaginePdf,\r\n // IsStampaUfficiale,\r\n SalvaPreferenze,\r\n codiceUfficio,\r\n anno,\r\n ArchiviaInZip,\r\n) => WebRequest.post(`SetteTrenta/CreaStampa?${filtri}`, {\r\n DichiarazioniIds: dichiarazioniIds,\r\n StampaDichiarazione,\r\n AutocertificazioneGenerica,\r\n FascicoloContribuente,\r\n DelegaUnica, // DelegaPrecompilatoCU AnnoImpostaPiuUno\r\n InformativaPrivacy,\r\n AutocertificazioneFamiliari,\r\n StampaF24,\r\n Scelta582x1000,\r\n AutocertificazioneC4,\r\n AutocertificazioneCasiParticolariQuadroC,\r\n RichiestaAccredito,\r\n DocumentiDaConsegnare,\r\n AutocertificazioneOneri,\r\n PromemoriaConguagli,\r\n DelegaPrecompilatoCU, // DelegaPrecompilatoCU AnnoImposta\r\n AutocertificazioneF6,\r\n CalcoloBonusIRPEF,\r\n Fatture,\r\n LetteraNovita,\r\n Barra2Provvisorio,\r\n RistampaLeStampate,\r\n FronteRetro,\r\n NrCopie,\r\n SoloModelliCompilati: ModelliCompilati,\r\n GuidaLettura,\r\n Ricevuta730AdE,\r\n SalvaPreferenze,\r\n // IsStampaUfficiale,\r\n CodiceUfficio: codiceUfficio,\r\n Anno: anno,\r\n ArchiviaInZip,\r\n});\r\n\r\nexport const stampaBarra4 = (dichiarazioni) => {\r\n const { CodiceUfficio, Anno } = dichiarazioni[0] || {};\r\n return WebRequest.post(\r\n Anno < 2020 ? 'SetteTrenta/CreaStampaOld' : 'SetteTrenta/CreaStampa', {\r\n DichiarazioniIds: Anno < 2020 ? dichiarazioni.map(x => x.IdDichiarazione) : dichiarazioni.map(x => ({\r\n id: x.IdDichiarazione, cf: x.CodiceFiscale, cognome: x.Cognome, nome: x.Nome, origine: x.DatiAddizionali.Origine,\r\n })),\r\n StampaDichiarazione: false,\r\n IsStampaUfficiale: true,\r\n AutocertificazioneGenerica: false,\r\n AutocertificazioneFamiliari: false,\r\n AutocertificazioneFamiglieNumerose: false,\r\n AutocertificazioneC4: false,\r\n AutocertificazioneCasiParticolariQuadroC: false,\r\n AutocertificazioneOneri: false,\r\n AutocertificazioneF6: false,\r\n CalcoloBonusIRPEF: false,\r\n DelegaUnica: false,\r\n StampaF24: false,\r\n InformativaPrivacy: false,\r\n RichiestaAccredito: false,\r\n PromemoriaConguagli: false,\r\n RistampaLeStampate: false,\r\n DocumentiDaConsegnare: false,\r\n FronteRetro: false,\r\n SoloModelliCompilati: false,\r\n GuidaLettura: false,\r\n NrCopie: 1,\r\n SalvaPreferenze: false,\r\n CodiceUfficio,\r\n Ricevuta7304: true,\r\n Anno,\r\n },\r\n );\r\n};\r\n\r\nexport const dettaglioBarra4 = (idDichiarazione, anno) => WebRequest.get('SetteTrenta/Dettaglio7304', { idDichiarazione, anno });\r\n\r\nexport const stampaContribuenti7304 = (baseUrl, anno, codiceUfficio) => {\r\n window.open(`${baseUrl}?anno=${anno}&ufficio=${codiceUfficio}`);\r\n};\r\n\r\nexport const modificaAnagraficheDichiarazione = cmd => WebRequest.post('SetteTrenta/ModificaAnagraficheDichiarazione', cmd);\r\n\r\nexport const totali7304 = (studio, anno, searchTerm) => WebRequest.get('SetteTrenta/Barra4', { studio, anno, searchTerm });\r\n\r\nexport const datiRiduzioneAcconto = (idDichiarazione, anno) => WebRequest.get('SetteTrenta/DatiRiduzioneAcconto', { idDichiarazione, anno });\r\n\r\nexport const stampaRiduzioneAcconto = stato => WebRequest.post('SetteTrenta/StampaRiduzioneAcconto', stato);\r\n\r\nexport const creaDaXmlAnnoCorrente = (file, lista, studio, anno, nomeFile) => WebRequest.post('SetteTrenta/ImportazioneXmlAnnoCorrente', {\r\n PathFornituraXmlAnnoCorrenteDaImportare: file, listaDichiarazioni: lista, ufficio: studio, Anno: anno, NomeFile: nomeFile,\r\n});\r\n\r\nexport const creaDaRedditiPFAnnoCorrente = (lista, studio, anno, nomeFile, pathFornituraRedditiPFDaImportare) => WebRequest.post('SetteTrenta/ImportazioneRedditiPFAnnoCorrente', {\r\n listaDichiarazioni: lista, ufficio: studio, Anno: anno, NomeFile: nomeFile, PathFornituraRedditiPFDaImportare: pathFornituraRedditiPFDaImportare,\r\n});\r\n\r\nexport const stampaLetteraPrecontrolli = stato => WebRequest.post('SetteTrenta/StampaLetteraPrecontrolli', stato);\r\n\r\nexport const stampaLetteraDiniego = stato => WebRequest.post('SetteTrenta/StampaLetteraDiniego', stato);\r\n\r\nexport const modificaSegnalibro = (id, segnalibro) => WebRequest.post('Dichiarazione/ModificaSegnalibro', { IdDichiarazione: id, Segnalibro: segnalibro });\r\n\r\nexport const creaTabulatoDebitiCrediti = (lista, currentUserId, studio, anno, filtri) => WebRequest.post(`SetteTrenta/TabulatoDebitiCrediti?${filtri}`, {\r\n ListaDichiarazioni: lista,\r\n CodiceUfficio: studio,\r\n Anno: anno,\r\n CurrentUserId: currentUserId,\r\n /* public Guid CorrelationId { get; set; } */\r\n});\r\n\r\nexport const creaTabulatoOneriAnnoPrecedente = (lista, currentUserId, studio, anno, filtri) => WebRequest.post(`SetteTrenta/TabulatoOneriAnnoPrecedente?${filtri}`, {\r\n ListaDichiarazioni: lista,\r\n CodiceUfficio: studio,\r\n Anno: anno,\r\n CurrentUserId: currentUserId,\r\n /* public Guid CorrelationId { get; set; } */\r\n});\r\n\r\nexport const creaTabulatoDettaglioProspettoLiquidazioneQuadroA = (lista, currentUserId, studio, anno, filtri) => WebRequest.post(`SetteTrenta/TabulatoDettaglioProspettoLiquidazioneQuadroA?${filtri}`, {\r\n ListaDichiarazioni: lista,\r\n CodiceUfficio: studio,\r\n Anno: anno,\r\n CurrentUserId: currentUserId,\r\n /* public Guid CorrelationId { get; set; } */\r\n});\r\n\r\nexport const creaTabulatoDettaglioProspettoLiquidazioneQuadroB = (lista, currentUserId, studio, anno, filtri) => WebRequest.post(`SetteTrenta/TabulatoDettaglioProspettoLiquidazioneQuadroB?${filtri}`, {\r\n ListaDichiarazioni: lista,\r\n CodiceUfficio: studio,\r\n Anno: anno,\r\n CurrentUserId: currentUserId,\r\n /* public Guid CorrelationId { get; set; } */\r\n});\r\n\r\n// #endregion\r\n","const TipoDichiarazione = {\r\n // / \r\n // / Ordinaria\r\n // / \r\n Ordinaria: 0,\r\n\r\n // / \r\n // / Correttiva nei termini\r\n // / \r\n CorrettivaNeiTermini: 1,\r\n\r\n // / \r\n // / Integrativa a favore\r\n // / \r\n IntegrativaFavore: 2,\r\n\r\n // / \r\n // / Integrativa normale\r\n // / \r\n Integrativa: 3,\r\n\r\n // / \r\n // / Tardiva\r\n // / \r\n Tardiva: 4,\r\n\r\n // / \r\n // / Omessa\r\n // / \r\n Omessa: 5,\r\n\r\n // / \r\n // / Annullata (CU 770 MCP)\r\n // / \r\n Annullata: 6,\r\n\r\n // / \r\n // / Sostitutiva (CU 770 MCP)\r\n // / \r\n Sostitutiva: 7,\r\n\r\n // / \r\n // / Integrativa Articolo 2 comma 8-ter\r\n // / \r\n IntegrativaArt2Co8Ter: 8,\r\n\r\n // / \r\n // / Ordinaria liquidazione\r\n // / \r\n OrdinariaLiquidazione: 9,\r\n\r\n // / \r\n // / Correttiva integrativa parziale\r\n // / \r\n CorrettivaIntegrativaParziale: 10,\r\n\r\n // / \r\n // / Simulata\r\n // / \r\n Simulata: 11,\r\n\r\n // / \r\n // / Integrativa art. 1 comma 634-636 L. 190/2014\r\n // / \r\n IntegrativaArt1Co634: 12,\r\n\r\n // / \r\n // / Dichiarazione sostitutiva con nuova trascrizione dei dati e voltura\r\n // / \r\n SostitutivaConNuovaTrascrizioneEVoltura: 13,\r\n\r\n // / \r\n // / Dichiarazione sostitutiva senza una nuova trascrizione dei dati e voltura\r\n // / \r\n SostitutivaSenzaNuovaTrascrizioneEVoltura: 14,\r\n\r\n // / \r\n // / Dichiarazione sostitutiva dei soli allegati\r\n // / \r\n SostitutivaSoliAllegati: 15,\r\n // / \r\n // / Il codice 1 Integrazione della dichiarazione con riferimento esclusivamente ai dati minor debito maggior credito\r\n // / \r\n SetteTrentaIntegrativaCodice1: 16,\r\n // / \r\n // / Il codice 2 Integrazione della dichiarazione con riferimento esclusivamente ai dati del sostituto d’imposta\r\n // / \r\n SetteTrentaIntegrativaCodice2: 17,\r\n // / \r\n // / Il codice 3 Integrazione della dichiarazione con riferimento sia ai dati del sostituto d’imposta sia ad altri dati della dichiarazione da cui scaturiscono un maggior importo a credito, un minor debito oppure un’imposta invariata\r\n // / \r\n SetteTrentaIntegrativaCodice3: 18,\r\n\r\n Variazione: 19,\r\n\r\n /// \r\n /// Dichiarazione di successione cartacea, prima dichiarazione\r\n /// \r\n SuccessioniCartaceaPrimaDichiarazione: 32,\r\n\r\n /// \r\n /// Dichiarazione di successione cartacea, modificativa\r\n /// \r\n SuccessioniCartaceaModificativa: 33,\r\n\r\n /// \r\n /// Dichiarazione di successione cartacea, integrativa\r\n /// \r\n SuccessioniCartaceaIntegrativa: 34,\r\n\r\n /// \r\n /// Dichiarazione di successione cartacea, sostitutiva\r\n /// \r\n SuccessioniCartaceaSostitutiva: 35,\r\n\r\n /// \r\n /// Dichiarazione di successione cartacea, aggiuntiva\r\n /// \r\n SuccessioniCartaceaAggiuntiva: 36,\r\n};\r\n\r\nconst toString = (tipo) => {\r\n switch (tipo) {\r\n case TipoDichiarazione.Ordinaria:\r\n return 'Ordinaria';\r\n case TipoDichiarazione.CorrettivaNeiTermini:\r\n return 'Correttiva nei termini';\r\n case TipoDichiarazione.IntegrativaFavore:\r\n return 'Integrativa a favore';\r\n case TipoDichiarazione.Integrativa:\r\n return 'Integrativa';\r\n case TipoDichiarazione.Tardiva:\r\n return 'Tardiva';\r\n case TipoDichiarazione.Omessa:\r\n return 'Omessa';\r\n case TipoDichiarazione.Annullata:\r\n return 'Annullata';\r\n case TipoDichiarazione.Sostitutiva:\r\n return 'Sostitutiva';\r\n case TipoDichiarazione.IntegrativaArt2Co8Ter:\r\n return 'Integrativa Art2 Co8Ter';\r\n case TipoDichiarazione.OrdinariaLiquidazione:\r\n return 'Ordinaria Liquidazione';\r\n case TipoDichiarazione.CorrettivaIntegrativaParziale:\r\n return 'Correttiva Integrativa Parziale';\r\n case TipoDichiarazione.Simulata:\r\n return 'Simulata';\r\n case TipoDichiarazione.IntegrativaArt1Co634:\r\n return 'Integrativa Art1 Co634';\r\n case TipoDichiarazione.SostitutivaConNuovaTrascrizioneEVoltura:\r\n return 'Sostitutiva con nuova trascrizione e voltura';\r\n case TipoDichiarazione.SostitutivaSenzaNuovaTrascrizioneEVoltura:\r\n return 'Sostitutiva senza nuova trascrizione e voltura';\r\n case TipoDichiarazione.SostitutivaSoliAllegati:\r\n return 'Sostitutiva soli allegati';\r\n case TipoDichiarazione.SetteTrentaIntegrativaCodice1:\r\n return '730 integrativa codice 1';\r\n case TipoDichiarazione.SetteTrentaIntegrativaCodice2:\r\n return '730 integrativa codice 2';\r\n case TipoDichiarazione.SetteTrentaIntegrativaCodice3:\r\n return '730 integrativa codice 3';\r\n case TipoDichiarazione.Variazione:\r\n return 'Variazione';\r\n case TipoDichiarazione.SuccessioniCartaceaPrimaDichiarazione:\r\n return 'Cartacea Modello 4, prima dichiarazione';\r\n case TipoDichiarazione.SuccessioniCartaceaModificativa:\r\n return 'Cartacea Modello 4, modificativa';\r\n case TipoDichiarazione.SuccessioniCartaceaIntegrativa:\r\n return 'Cartacea Modello 4, integrativa';\r\n case TipoDichiarazione.SuccessioniCartaceaSostitutiva:\r\n return 'Cartacea Modello 4, sostitutiva';\r\n case TipoDichiarazione.SuccessioniCartaceaAggiuntiva:\r\n return 'Cartacea Modello 4, aggiuntiva';\r\n default:\r\n return '';\r\n }\r\n};\r\n\r\nTipoDichiarazione.stringify = toString;\r\n\r\nexport default TipoDichiarazione;\r\n","const StatoDichiarazione = {\r\n // / \r\n // / Dichiarazione annullata\r\n // / \r\n Annullata: 0,\r\n\r\n // / \r\n // / Dichiarazione dell'anno precedente\r\n // / \r\n AnnoPrecedente: 5,\r\n\r\n // / \r\n // / Dichiarazione importabile\r\n // / \r\n Importabile: 6,\r\n\r\n // / \r\n // / Dichiarazione senza errori ma non ancora completata\r\n // / \r\n InLavorazione: 20,\r\n\r\n // / \r\n // / Dichiarazione completata e non modificabile\r\n // / \r\n Completa: 30,\r\n\r\n // / \r\n // / Dichiarazione che deve essere controllata (Audit)\r\n // / \r\n DaControllare: 31,\r\n\r\n // / \r\n // / Dichiarazione completa di cui è stato generato il telematico (Trasmessa CGN)\r\n // / \r\n DaInviare: 40,\r\n\r\n // / \r\n // / Dichiarazione da trasmettere (Agenzia Entrate)\r\n // / \r\n DaTrasmettere: 41,\r\n\r\n // / \r\n // / La trasmissione all'ente non è riuscita\r\n // / \r\n TrasmissioneNonRiuscita: 45,\r\n\r\n // / \r\n // / Dichiarazione trasmessa all'agenzia delle entrate in modo manuale (Gestito solo per successioni)\r\n // / \r\n TrasmessaManualmente: 50,\r\n\r\n // / \r\n // / Dichiarazione trasmessa a cui è stata allegata la ricevuta (Agenzia Entrate)\r\n // / \r\n TrasmessaAutomaticamente: 60,\r\n\r\n // / \r\n // / Dichiarazione consegnata manualmente\r\n // / \r\n ConsegnaManuale: 70,\r\n\r\n // / \r\n // / Dichiarazione da annullare\r\n // / \r\n DaAnnullare: 80,\r\n\r\n // / \r\n // / Dichiarazione annullata con ricevuta\r\n // / \r\n AnnullataAE: 90,\r\n\r\n // / \r\n // / Dichiarazione scartata per codice fiscale\r\n // / \r\n ScartataCF: 100,\r\n\r\n // / \r\n // / Dichiarazione scartata per precompilato\r\n // / \r\n ScartataPrecompilato: 101,\r\n\r\n // / \r\n // / Dichiarazione scartata per ricalcolo\r\n // / \r\n ScartataRicalcolo: 102,\r\n\r\n // / \r\n // / Dichiarazione scartata dall'ente incaricato (Agenzia Entrate)\r\n // / \r\n ScartataEnte: 103,\r\n\r\n // / \r\n // / Dichiarazione scartata da Audit\r\n // / \r\n ScartataAudit: 104,\r\n\r\n // / \r\n // / Dichiarazione bloccata CAF\r\n // / \r\n BloccataCAF: 110,\r\n\r\n // / \r\n // / Dichiarazione bloccata per integrativa\r\n // / \r\n BloccataIntegrativa: 111,\r\n\r\n // / Stampata\r\n Stampata: 115,\r\n\r\n // Trasmessa\r\n TrasmessaEPASA: 120,\r\n\r\n // Scartata EPASA\r\n ScartataEPASA: 130,\r\n\r\n AccoltaINPS: 135,\r\n\r\n RifiutataINPS: 140,\r\n\r\n InviataINPS: 145,\r\n\r\n ReiezioneINPS: 150,\r\n};\r\n\r\nconst toString = (tipo, errori) => {\r\n switch (tipo) {\r\n case StatoDichiarazione.AnnoPrecedente:\r\n return 'Anno precedente';\r\n case StatoDichiarazione.Importabile:\r\n return 'Anno precedente';\r\n case StatoDichiarazione.InLavorazione:\r\n return errori ? 'Errata' : 'In lavorazione';\r\n case StatoDichiarazione.Completa:\r\n return 'Completa';\r\n case StatoDichiarazione.DaInviare:\r\n return 'Trasmessa CGN';\r\n case StatoDichiarazione.Tardiva:\r\n return 'Tardiva';\r\n case StatoDichiarazione.TrasmessaManualmente:\r\n return 'Trasmessa manualmente';\r\n case StatoDichiarazione.TrasmessaAutomaticamente:\r\n return 'Ricevuta A.E.';\r\n case StatoDichiarazione.ConsegnaManuale:\r\n return 'Consegna manuale';\r\n case StatoDichiarazione.DaControllare:\r\n return 'Controllo Audit';\r\n case StatoDichiarazione.DaTrasmettere:\r\n return 'Inviata A.E.';\r\n case StatoDichiarazione.DaAnnullare:\r\n return 'Da annullare A.E.';\r\n case StatoDichiarazione.Annullata:\r\n return 'Annullata';\r\n case StatoDichiarazione.AnnullataAE:\r\n return 'Annullata A.E.';\r\n case StatoDichiarazione.ScartataCF:\r\n return 'Scartata Codice Fiscale';\r\n case StatoDichiarazione.ScartataPrecompilato:\r\n return 'Scartata Precompilato';\r\n case StatoDichiarazione.ScartataRicalcolo:\r\n return 'Scartata Ricalcolo';\r\n case StatoDichiarazione.ScartataEnte:\r\n return 'Scartata A.E.';\r\n case StatoDichiarazione.ScartataAudit:\r\n return 'Scartata Audit';\r\n case StatoDichiarazione.BloccataCAF:\r\n return 'Bloccata CAF';\r\n case StatoDichiarazione.BloccataIntegrativa:\r\n return 'Bloccata Integrativo';\r\n case StatoDichiarazione.Stampata:\r\n return 'Stampata';\r\n case StatoDichiarazione.TrasmessaEPASA:\r\n return 'In lavorazione EPASA';\r\n case StatoDichiarazione.ScartataEPASA:\r\n return 'Scartato EPASA';\r\n case StatoDichiarazione.RifiutataINPS:\r\n return 'Rifiutata INPS';\r\n case StatoDichiarazione.InviataINPS:\r\n return 'Inviata INPS';\r\n case StatoDichiarazione.AccoltaINPS:\r\n return 'Accolta INPS';\r\n case StatoDichiarazione.ReiezioneINPS:\r\n return 'Reiezione INPS';\r\n default:\r\n return '';\r\n }\r\n};\r\n\r\nStatoDichiarazione.stringify = toString;\r\n\r\nexport default StatoDichiarazione;\r\n","const Scadenze730 = {\r\n Agosto23: 0,\r\n Agosto31: 1,\r\n Settembre22: 2,\r\n UltimaScadenza: 3,\r\n TermineUltimo: 4,\r\n NonSelezionato: -1,\r\n};\r\n\r\nconst toString = (tipo) => {\r\n switch (tipo) {\r\n case Scadenze730.Agosto23:\r\n return '23 Agosto ore 24.00';\r\n case Scadenze730.Agosto31:\r\n return '31 Agosto ore 24.00';\r\n case Scadenze730.Settembre22:\r\n return '22 Settembre ore 24.00';\r\n case Scadenze730.UltimaScadenza:\r\n return '28 Settembre ore 13.00';\r\n case Scadenze730.TermineUltimo:\r\n return '28 Settembre ore 16.00';\r\n default:\r\n return '';\r\n }\r\n};\r\n\r\nScadenze730.stringify = toString;\r\n\r\nexport default Scadenze730;\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 , '0 0 16 16',\r\n);\r\n","import { anniRegistrati } from '../apis/sharedApi';\r\n\r\nexport const getAnniRegistrati = () => dispatch => dispatch({ type: 'ANNI_REGISTRATI_GET', payload: anniRegistrati() });\r\n\r\nexport const setAnniRegistrati = anni => dispatch => dispatch({ type: 'ANNI_REGISTRATI_SET', payload: anni });\r\n\r\nexport const setAnnoSelezionato = anno => dispatch => dispatch({ type: 'ANNO_SELEZIONATO_SET', payload: anno });\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport Checkbox from '../Checkbox';\r\n\r\nconst SelectCheckBox = ({ item, itemIndex, onSelected }) => (\r\n onSelected(itemIndex)}\r\n />\r\n);\r\n\r\nSelectCheckBox.propTypes = {\r\n /** Elemento bindato alla riga della tabella */\r\n item: PropTypes.object, // eslint-disable-line react/forbid-prop-types\r\n /** Indice dell'elemento bindato */\r\n itemIndex: PropTypes.number,\r\n /**\r\n * Callback invocata alla selezione\r\n * ```\r\n * onSelected(itemIndex)\r\n * ```\r\n * dove:\r\n * * *itemIndex*: indice dell'elemento\r\n */\r\n onSelected: PropTypes.func,\r\n};\r\n\r\nSelectCheckBox.defaultProps = {\r\n item: {},\r\n itemIndex: 0,\r\n onSelected: null,\r\n};\r\n\r\nexport default SelectCheckBox;\r\n","import { createContext } from 'react';\r\n\r\nexport default createContext({\r\n sortProperty: null,\r\n sortDirection: null,\r\n sortCallback: null,\r\n});\r\n","import React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\nimport ODataTableContext from './ODataTableContext';\r\n\r\nclass Column extends Component {\r\n static contextType = ODataTableContext;\r\n\r\n static type = 'ODataTableColumn';\r\n\r\n static _componentType = 'Column';\r\n\r\n ordina = () => {\r\n const { propertyName } = this.props;\r\n if (propertyName === '') return;\r\n const { sortProperty, sortDirection, sortCallback } = this.context;\r\n const direzione = sortProperty === propertyName ? !sortDirection : true;\r\n sortCallback(propertyName, direzione);\r\n };\r\n\r\n render() {\r\n const {\r\n children,\r\n className,\r\n filter,\r\n propertyName,\r\n width,\r\n ...others\r\n } = this.props;\r\n const {\r\n sortDirection,\r\n sortProperty,\r\n } = this.context;\r\n const style = width ? { width } : undefined;\r\n\r\n const columnClasses = cns(\r\n {\r\n 'column--sortable': propertyName,\r\n },\r\n className,\r\n );\r\n const caretClasses = cns(\r\n 'table__caret',\r\n {\r\n 'table__caret--up': sortDirection,\r\n },\r\n );\r\n\r\n return (\r\n \r\n {children}\r\n {sortProperty === propertyName\r\n && propertyName != null\r\n && (\r\n \r\n )}\r\n \r\n );\r\n }\r\n}\r\n\r\nColumn.defaultProps = {\r\n children: null,\r\n filter: null,\r\n propertyName: '',\r\n className: '',\r\n width: null,\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 /**\r\n * Descrive il filtro da applicare per il campo della colonna.\r\n * Per maggiori dettagli consultare la scheda del\r\n * componente **Filter**.\r\n */\r\n filter: PropTypes.shape({\r\n propertyName: PropTypes.string,\r\n description: PropTypes.string,\r\n type: PropTypes.string,\r\n query: PropTypes.number,\r\n component: PropTypes.number,\r\n options: PropTypes.array,\r\n autoFocus: PropTypes.bool,\r\n range: PropTypes.object,\r\n url: PropTypes.string,\r\n renderProperty: PropTypes.string,\r\n width: PropTypes.string,\r\n right: PropTypes.bool,\r\n }),\r\n /** Proprietà gestita dalla colonna */\r\n propertyName: PropTypes.string,\r\n /** Classi css personalizzate da aggiungere al componente */\r\n className: PropTypes.string,\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\nexport default Column;\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","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","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","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","const FilterTypes = {\r\n INPUT: 0,\r\n SELECT: 1,\r\n AUTOCOMPLETE: 2,\r\n RANGE: 3,\r\n DATEPICKER: 4,\r\n DATERANGE: 5,\r\n};\r\n\r\nexport {\r\n FilterTypes, // eslint-disable-line import/prefer-default-export\r\n};\r\n","import React, { Component, createRef } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport Input from '../../Input';\r\nimport { FilterTypes } from '../Components';\r\n\r\nclass InputFilter extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = { value: '' };\r\n this.refFilterInput = createRef();\r\n }\r\n\r\n clear = () => {\r\n this.refFilterInput.current.clear();\r\n this.setState({ value: '' });\r\n }\r\n\r\n handleKeyUp = (evt) => {\r\n const { item } = this.props;\r\n const { value } = evt.target;\r\n if (item.type === 'number' && isNaN(value)) {\r\n this.clear();\r\n return;\r\n }\r\n this.notifica(evt);\r\n };\r\n\r\n onChange = (evt) => {\r\n this.setState({ value: evt.target.value });\r\n }\r\n\r\n notifica = (evt) => {\r\n const { item } = this.props;\r\n this.notifyAddFilter(\r\n item.propertyName,\r\n item.queryOption,\r\n evt,\r\n null,\r\n null,\r\n FilterTypes.INPUT,\r\n item.customFilter,\r\n );\r\n };\r\n\r\n notifyAddFilter = (...filter) => {\r\n const { addFilter } = this.props;\r\n addFilter && addFilter(...filter);\r\n };\r\n\r\n render() {\r\n const {\r\n addFilter,\r\n item,\r\n customFilter,\r\n ...others\r\n } = this.props;\r\n const { value } = this.state;\r\n return (\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nInputFilter.propTypes = {\r\n /** Callback invocata all'aggiunta di un termine di filtro */\r\n addFilter: PropTypes.func.isRequired,\r\n /** Descrittore del filtro da applicare */\r\n item: PropTypes.shape({\r\n propertyName: PropTypes.string.isRequired,\r\n }).isRequired,\r\n};\r\n\r\nexport default InputFilter;\r\n","import React, { Component, createRef } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport Select from '../../Select';\r\nimport { FilterTypes } from '../Components';\r\nimport { isUndefined } from '../../../utils/js';\r\n\r\nclass SelectFilter extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.refSelect = createRef();\r\n }\r\n\r\n handleChange = (evt, value, additionalData) => {\r\n const { addFilter, item } = this.props;\r\n\r\n addFilter && addFilter(\r\n item.propertyName,\r\n item.queryOption,\r\n {\r\n target: {\r\n value,\r\n displayValue: additionalData,\r\n name: item.description,\r\n },\r\n },\r\n null,\r\n null,\r\n FilterTypes.SELECT,\r\n item.customFilter,\r\n );\r\n\r\n this.refSelect.clear();\r\n };\r\n\r\n render() {\r\n const {\r\n item,\r\n title,\r\n ...others\r\n } = this.props;\r\n\r\n return (\r\n
    \r\n
    \r\n { this.refSelect = r; }}\r\n title={item.description}\r\n {...others}\r\n >\r\n {item.options && item.options.map((x, i) => (\r\n \r\n {x.description}\r\n \r\n ))}\r\n \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nSelectFilter.propTypes = {\r\n /** Callback invocata all'aggiunta di un termine di filtro */\r\n addFilter: PropTypes.func.isRequired,\r\n /** Titolo */\r\n title: PropTypes.string,\r\n /** Descrittore del filtro da applicare */\r\n item: PropTypes.shape({\r\n propertyName: PropTypes.string.isRequired,\r\n description: PropTypes.string,\r\n width: PropTypes.number,\r\n\r\n // eslint-disable-next-line react/forbid-prop-types\r\n customFilter: PropTypes.array,\r\n // eslint-disable-next-line react/forbid-prop-types\r\n options: PropTypes.array,\r\n // eslint-disable-next-line react/forbid-prop-types\r\n queryOption: PropTypes.array,\r\n\r\n }).isRequired,\r\n};\r\n\r\nSelectFilter.defaultProps = {\r\n title: undefined,\r\n};\r\n\r\nexport default SelectFilter;\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","/* 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) { return { valid: true }; }\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 = () => { onChange && onChange(searchTerm); };\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","import React, { Component, createRef } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport Autocomplete from '../../AutoComplete';\r\nimport { FilterTypes } from '../Components';\r\n\r\nclass AutocompleteFilter extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.autocompleteRef = createRef();\r\n }\r\n\r\n handleChange = (selectedItem) => {\r\n const { item } = this.props;\r\n\r\n this.autocompleteRef.clear();\r\n\r\n this.notifyAddFilter(\r\n item.propertyName,\r\n item.queryOption,\r\n null,\r\n {\r\n result: selectedItem,\r\n props: this.props,\r\n },\r\n null,\r\n FilterTypes.AUTOCOMPLETE,\r\n item.customFilter,\r\n );\r\n };\r\n\r\n notifyAddFilter = (...filter) => {\r\n const { addFilter } = this.props;\r\n\r\n addFilter && addFilter(...filter);\r\n };\r\n\r\n render() {\r\n const {\r\n item,\r\n } = this.props;\r\n\r\n return (\r\n \r\n
    \r\n { this.autocompleteRef = r; }}\r\n renderProperty={item.renderProperty}\r\n title={item.description}\r\n url={item.url}\r\n />\r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nAutocompleteFilter.propTypes = {\r\n /** Callback invocata all'aggiunta di un termine di filtro */\r\n addFilter: PropTypes.func.isRequired,\r\n /** Descrittore del filtro da applicare */\r\n item: PropTypes.shape({\r\n propertyName: PropTypes.string.isRequired,\r\n }).isRequired,\r\n};\r\n\r\nexport default AutocompleteFilter;\r\n","import React, { Component, createRef } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport Input from '../../Input';\r\nimport { QueryOptions } from '../../Utils/QueryOptions';\r\nimport { FilterTypes } from '../Components';\r\n\r\nclass InputRangeFilter extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n from: null,\r\n to: null,\r\n };\r\n\r\n this.refRangeDa = createRef();\r\n this.refRangeA = createRef();\r\n }\r\n\r\n handleKeyDown = (evt) => {\r\n const { item } = this.props;\r\n const { from, to } = this.state;\r\n\r\n // Enter code\r\n if (evt.keyCode === 13) {\r\n const da = isNaN(parseInt(from, 10)) ? null : parseInt(from, 10);\r\n const a = isNaN(parseInt(to, 10)) ? null : parseInt(to, 10);\r\n\r\n if (da === null || a === null || da > a) {\r\n return;\r\n }\r\n\r\n const filter = {};\r\n filter.from = da;\r\n filter.to = a;\r\n\r\n this.notifyAddFilter(\r\n item.propertyName,\r\n QueryOptions.RANGE,\r\n evt,\r\n null,\r\n {\r\n clearFields: this.clearFields,\r\n values: filter,\r\n },\r\n FilterTypes.RANGE,\r\n item.customFilter,\r\n );\r\n\r\n this.setState({\r\n from: null,\r\n to: null,\r\n });\r\n }\r\n };\r\n\r\n notifyAddFilter = (...filter) => {\r\n const { addFilter } = this.props;\r\n\r\n addFilter && addFilter(...filter);\r\n };\r\n\r\n clearFields = () => {\r\n this.refRangeDa.clear();\r\n this.refRangeA.clear();\r\n };\r\n\r\n handleFromChange = (evt) => {\r\n this.setState({\r\n from: evt.target.value,\r\n });\r\n };\r\n\r\n handleToChange = (evt) => {\r\n this.setState({\r\n to: evt.target.value,\r\n });\r\n };\r\n\r\n render() {\r\n const {\r\n item,\r\n } = this.props;\r\n\r\n return (\r\n
    \r\n
    \r\n { this.refRangeDa = r; }}\r\n title={`${item.description || item.propertyName} da`}\r\n />\r\n { this.refRangeA = r; }}\r\n title={`${item.description || item.propertyName} a`}\r\n />\r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nInputRangeFilter.propTypes = {\r\n /** Callback invocata all'aggiunta di un termine di filtro */\r\n addFilter: PropTypes.func.isRequired,\r\n /** Descrittore del filtro da applicare */\r\n item: PropTypes.shape({\r\n propertyName: PropTypes.string.isRequired,\r\n description: PropTypes.string,\r\n width: PropTypes.number,\r\n\r\n // eslint-disable-next-line react/forbid-prop-types\r\n customFilter: PropTypes.array,\r\n }).isRequired,\r\n};\r\n\r\nexport default InputRangeFilter;\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 * 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\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\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 formatDate,\r\n formatTime,\r\n getTimezoneOffset,\r\n parseIsoDateToString,\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, { Component, createRef } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport DatePicker from '../../DatePicker';\r\nimport { FilterTypes } from '../Components';\r\nimport { formatDate, convertDateToISO } from '../../Utils/dateHelper';\r\n\r\nclass DatePickerFilter extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.refDatepicker = createRef();\r\n }\r\n\r\n handleChange = (date) => {\r\n const { item } = this.props;\r\n\r\n if (date == null) {\r\n return;\r\n }\r\n\r\n this.refDatepicker.clear();\r\n\r\n this.notifyAddFilter(\r\n item.propertyName,\r\n item.queryOption,\r\n {\r\n target: {\r\n name: item.description,\r\n displayValue: date ? formatDate(date.getDate(), date.getMonth() + 1, date.getFullYear(), '/') : '',\r\n value: convertDateToISO(date),\r\n },\r\n },\r\n null,\r\n null,\r\n FilterTypes.DATEPICKER,\r\n item.customFilter,\r\n );\r\n };\r\n\r\n notifyAddFilter = (...filter) => {\r\n const { addFilter } = this.props;\r\n\r\n addFilter && addFilter(...filter);\r\n };\r\n\r\n render() {\r\n const {\r\n item,\r\n ...others\r\n } = this.props;\r\n\r\n return (\r\n \r\n { this.refDatepicker = r; }}\r\n title={item.description}\r\n {...others}\r\n />\r\n
    \r\n );\r\n }\r\n}\r\n\r\nDatePickerFilter.propTypes = {\r\n /** Callback invocata all'aggiunta di un termine di filtro */\r\n addFilter: PropTypes.func.isRequired,\r\n /** Descrittore del filtro da applicare */\r\n item: PropTypes.shape({\r\n propertyName: PropTypes.string.isRequired,\r\n queryOption: PropTypes.number,\r\n description: PropTypes.string,\r\n width: PropTypes.number,\r\n // eslint-disable-next-line react/forbid-prop-types\r\n customFilter: PropTypes.array,\r\n }).isRequired,\r\n};\r\n\r\nexport default DatePickerFilter;\r\n","import React, { Component, createRef } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport DatePicker from '../../DatePicker';\r\nimport { QueryOptions } from '../../Utils/QueryOptions';\r\nimport { FilterTypes } from '../Components';\r\n\r\nclass DateRangeFilter extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n inizio: null,\r\n fine: null,\r\n };\r\n\r\n this.inizioDateRange = createRef();\r\n this.fineDateRange = createRef();\r\n }\r\n\r\n handleInizioChange = (inizio) => {\r\n this.setState({\r\n inizio,\r\n }, this.check);\r\n };\r\n\r\n handleFineChange = (fine) => {\r\n this.setState({\r\n fine,\r\n }, this.check);\r\n };\r\n\r\n check = () => {\r\n const { fine, inizio } = this.state;\r\n if (inizio && fine) {\r\n this.notifica();\r\n }\r\n };\r\n\r\n notifica = () => {\r\n const { item } = this.props;\r\n const { inizio, fine } = this.state;\r\n\r\n // imposto l'ora di fine giornata alla data fine\r\n if (fine && fine instanceof Date) {\r\n fine.setHours(23, 59, 59);\r\n }\r\n\r\n this.notifyAddFilter(\r\n item.propertyName,\r\n QueryOptions.DATE_RANGE,\r\n null,\r\n null,\r\n {\r\n values: {\r\n inizio,\r\n fine,\r\n },\r\n sbiancaCampi: this.clearFields,\r\n },\r\n FilterTypes.DATERANGE,\r\n item.customFilter,\r\n );\r\n\r\n this.setState({\r\n inizio: null,\r\n fine: null,\r\n });\r\n };\r\n\r\n notifyAddFilter = (...filter) => {\r\n const { addFilter } = this.props;\r\n\r\n addFilter && addFilter(...filter);\r\n };\r\n\r\n clearFields = () => {\r\n this.inizioDateRange.clear();\r\n this.fineDateRange.clear();\r\n };\r\n\r\n render() {\r\n const {\r\n item,\r\n right,\r\n } = this.props;\r\n const {\r\n inizio,\r\n fine,\r\n } = this.state;\r\n\r\n return (\r\n
    \r\n
    \r\n { this.inizioDateRange = r; }}\r\n title={`${item.description || item.propertyName} da`}\r\n range={{ to: fine }}\r\n />\r\n { this.fineDateRange = r; }}\r\n title={`${item.description || item.propertyName} a`}\r\n range={{ from: inizio }}\r\n />\r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nDateRangeFilter.defaultProps = {\r\n right: false,\r\n};\r\n\r\nDateRangeFilter.propTypes = {\r\n /** Callback invocata all'aggiunta di un termine di filtro */\r\n addFilter: PropTypes.func.isRequired,\r\n /** Indica se aprire il menu nell'altro senso */\r\n right: PropTypes.bool,\r\n /** Descrittore del filtro da applicare */\r\n item: PropTypes.shape({\r\n propertyName: PropTypes.string.isRequired,\r\n description: PropTypes.string,\r\n customFilter: PropTypes.string,\r\n width: PropTypes.string,\r\n }).isRequired,\r\n};\r\n\r\nexport default DateRangeFilter;\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","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport Tag from '../Tag';\r\nimport Button from '../Button';\r\nimport DeleteIcon from '../Icons/DeleteIcon';\r\nimport { formatDate } from '../Utils/dateHelper';\r\nimport { FilterTypes } from './Components';\r\n\r\nconst SelectedFilters = ({ filters, onClean, onRemoveFilter }) => {\r\n const keyFilters = Object.keys(filters);\r\n\r\n return (\r\n
    \r\n \r\n \r\n \r\n {keyFilters.map((key) => filters[key].map((item) => {\r\n let value = item.displayValue || item.valore;\r\n if (item.filterType === FilterTypes.DATERANGE) {\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 (item.filterType === FilterTypes.RANGE) {\r\n value = ` da ${value.from} a ${value.to}`;\r\n }\r\n\r\n return (\r\n onRemoveFilter(item)}\r\n >\r\n {item.description || item.name}\r\n {': '}\r\n {item.displayValue || value}\r\n \r\n );\r\n }))}\r\n
    \r\n );\r\n};\r\n\r\nSelectedFilters.propTypes = {\r\n /** Lista dei filtri applicati */\r\n filters: PropTypes.object, // eslint-disable-line react/forbid-prop-types\r\n /** Callback invocata al click sul pulsante che rimuove tutti i filtri applicati */\r\n onClean: PropTypes.func.isRequired,\r\n /** Callback invocata al click sul pulsante che rimuove un singolo filtro applicato */\r\n onRemoveFilter: PropTypes.func.isRequired,\r\n};\r\n\r\nSelectedFilters.defaultProps = {\r\n filters: {},\r\n};\r\n\r\nexport default SelectedFilters;\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 12 12', 'SortRightIcon',\r\n);\r\n","/* eslint-disable no-trailing-spaces */\r\n/* eslint-disable max-len */\r\nimport React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\nimport { QueryOptions } from '../Utils/QueryOptions';\r\nimport InputFilter from './Components/InputFilter';\r\nimport SelectFilter from './Components/SelectFilter';\r\nimport AutocompleteFilter from './Components/AutocompleteFilter';\r\nimport InputRangeFilter from './Components/InputRangeFilter';\r\nimport { FilterTypes } from './Components';\r\nimport DatePickerFilter from './Components/DatePickerFilter';\r\nimport DateRangeFilter from './Components/DateRangeFilter';\r\nimport SelectedFilters from './SelectedFilters';\r\nimport DownIcon from '../Icons/DownIcon';\r\nimport SortRightIcon from '../Icons/SortRightIcon';\r\nimport { isUndefinedOrEmpty } from '../../utils/js';\r\n\r\n/**\r\nIl componente `Filter` visualizza una serie di input per impostare dei filtri di ricerca come ad esempio nel caso di una tabella. \r\nEsso riceve come proprietà la lista dei campi di filtro da mostrare e permette di specificare una callback da invocare quando viene aggiunto o rimosso un filtro; \r\nè inoltre possibile impostare dei filtri iniziali attraverso la prop `initialFilters`\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\nclass Filter extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n filter: this.initializeFilter(props),\r\n showOtherFilters: false,\r\n };\r\n this.filterRefs = [];\r\n }\r\n\r\n componentDidMount() {\r\n const { initialFilters, filterCallback } = this.props;\r\n const { filter } = this.state;\r\n if (initialFilters && filterCallback) {\r\n this.onFilterAdded(filter, true);\r\n }\r\n }\r\n\r\n initializeFilter = (props) => {\r\n const initFilters = {};\r\n\r\n props.initialFilters && props.initialFilters.forEach((x) => {\r\n if (!Object.keys(initFilters).find((y) => y === x.propertyName)) {\r\n initFilters[x.propertyName] = [];\r\n }\r\n\r\n const filtroRic = props.filtriRicerca.find((y) => y.propertyName === x.propertyName);\r\n const filtroRicDescription = filtroRic.description ? filtroRic.description : filtroRic.propertyName;\r\n initFilters[x.propertyName].push({\r\n description: x.description ? x.description : filtroRicDescription,\r\n displayValue: x.displayValue,\r\n name: x.propertyName,\r\n query: x.query,\r\n valore: x.value,\r\n filterType: x.filterType,\r\n customFilter: x.customFilter,\r\n });\r\n });\r\n\r\n return initFilters;\r\n };\r\n\r\n checkValidity = (item, queryOption, evt, autocompleteObj, range, filterType) => {\r\n if (!item) {\r\n return false;\r\n }\r\n\r\n if (autocompleteObj != null && autocompleteObj.result !== '') {\r\n return true;\r\n }\r\n if (evt && filterType === FilterTypes.SELECT) {\r\n return true;\r\n }\r\n if (evt && (evt.keyCode === 13 || filterType === FilterTypes.SELECT\r\n || filterType === FilterTypes.DATEPICKER)/* && filterValue !== \"\" */) {\r\n return true;\r\n }\r\n if (filterType === FilterTypes.DATERANGE && range) {\r\n return true;\r\n }\r\n return false;\r\n };\r\n\r\n collectValues = (item, queryOption, evt, autocompleteObj, range, filterType, customFilter) => {\r\n const filterObj = {\r\n name: item,\r\n query: queryOption,\r\n customFilter,\r\n filterType,\r\n };\r\n const { filtriRicerca } = this.props;\r\n\r\n const desc = filtriRicerca\r\n .find((x) => x.propertyName === item\r\n && (range != null || (range == null && x.queryOption === queryOption))).description;\r\n\r\n switch (filterType) {\r\n case FilterTypes.INPUT:\r\n filterObj.valore = evt.target.value;\r\n filterObj.description = desc;\r\n filterObj.displayValue = evt.target.displayValue;\r\n break;\r\n\r\n case FilterTypes.SELECT:\r\n filterObj.valore = evt.target.value;\r\n filterObj.description = desc;\r\n filterObj.displayValue = evt.target.displayValue;\r\n break;\r\n\r\n case FilterTypes.AUTOCOMPLETE:\r\n filterObj.valore = autocompleteObj.result.Value;\r\n filterObj.description = desc;\r\n filterObj.displayValue = autocompleteObj.result[autocompleteObj.props.item.renderProperty || 'Description'];\r\n break;\r\n\r\n case FilterTypes.RANGE:\r\n filterObj.valore = range.values;\r\n filterObj.description = desc;\r\n filterObj.displayValue = evt.target.displayValue;\r\n break;\r\n\r\n case FilterTypes.DATEPICKER:\r\n filterObj.valore = evt.target.value;\r\n filterObj.description = desc;\r\n filterObj.displayValue = evt.target.displayValue;\r\n break;\r\n\r\n case FilterTypes.DATERANGE:\r\n filterObj.valore = range.values;\r\n filterObj.description = desc;\r\n filterObj.displayValue = range.displayValue;\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n\r\n const { filter } = this.state;\r\n // controllo se è già impostato un filtro con quel valore\r\n let index = -1;\r\n for (let i = 0; i < filter[item].length; i += 1) {\r\n if (filter[item][i].valore === filterObj.valore) {\r\n index = i;\r\n }\r\n }\r\n // se già esiste non aggiungo il nuovo filtro\r\n if (index !== -1) {\r\n return null;\r\n }\r\n\r\n return filterObj;\r\n };\r\n\r\n clearFields = (type, evt, range, item) => {\r\n if (range && range.clearFields) {\r\n range.clearFields();\r\n } else if (evt != null) {\r\n // Sbianco i filtri per input\r\n if (this.filterRefs[item]) {\r\n this.filterRefs[item].clear();\r\n }\r\n }\r\n };\r\n\r\n addFilter = (item, queryOption, evt, autocompleteRef, rangeRef, filterType, customFilter) => {\r\n if (this.checkValidity(item, queryOption, evt, autocompleteRef, rangeRef, filterType)) {\r\n if (evt && filterType === FilterTypes.INPUT) {\r\n evt.persist();\r\n }\r\n\r\n const { filter } = this.state;\r\n if (filter[item] == null) {\r\n filter[item] = [];\r\n }\r\n\r\n const newFilter = this.collectValues(\r\n item,\r\n queryOption,\r\n evt,\r\n autocompleteRef,\r\n rangeRef,\r\n filterType,\r\n customFilter,\r\n );\r\n if (!newFilter || isUndefinedOrEmpty(newFilter.valore)) {\r\n return;\r\n }\r\n\r\n filter[item] = [...filter[item], newFilter];\r\n\r\n this.setState({ filter }, () => {\r\n this.onFilterAdded(filter, false);\r\n this.clearFields(filterType, evt, rangeRef, item);\r\n });\r\n }\r\n };\r\n\r\n removeFilter = (item) => {\r\n const { filter } = this.state;\r\n let index = -1;\r\n for (let i = 0; i < filter[item.name].length; i += 1) {\r\n if (filter[item.name][i].valore === item.valore) {\r\n index = i;\r\n }\r\n }\r\n\r\n filter[item.name].splice(index, 1);\r\n if (filter[item.name].length === 0) {\r\n delete filter[item.name];\r\n }\r\n\r\n this.setState({\r\n filter,\r\n }, () => {\r\n this.onFilterAdded(filter, false);\r\n });\r\n };\r\n\r\n reinitializeFilter = (filter) => {\r\n this.setState({\r\n filter,\r\n });\r\n };\r\n\r\n cleanAll = () => {\r\n this.setState({\r\n filter: {},\r\n }, () => {\r\n const { filter } = this.state;\r\n\r\n this.onFilterAdded(filter, false);\r\n });\r\n };\r\n\r\n cleanFilter = () => {\r\n this.setState({ filter: [] });\r\n };\r\n\r\n onFilterAdded = (filter, resetPosition) => {\r\n const { filterCallback } = this.props;\r\n\r\n if (typeof filterCallback === 'function') {\r\n filterCallback(filter, resetPosition);\r\n }\r\n };\r\n\r\n renderFilterItem = (item, index) => {\r\n const tmpItem = item;\r\n tmpItem.description = item.description || item.propertyName;\r\n tmpItem.type = item || 'text';\r\n tmpItem.queryOption = item.query != null ? item.query : QueryOptions.STARTS_WITH;\r\n tmpItem.width = item.width;\r\n\r\n const props = {\r\n index,\r\n item: tmpItem,\r\n autoFocus: item.autoFocus,\r\n addFilter: this.addFilter,\r\n range: item.range,\r\n right: item.right,\r\n customFilter: item.customFilter,\r\n };\r\n\r\n return this.renderComponent(props, index);\r\n };\r\n\r\n renderComponent = (props, index) => {\r\n switch (props.item.component) {\r\n case FilterTypes.SELECT:\r\n return (\r\n \r\n );\r\n\r\n case FilterTypes.AUTOCOMPLETE:\r\n return (\r\n \r\n );\r\n\r\n case FilterTypes.RANGE:\r\n return (\r\n \r\n );\r\n\r\n case FilterTypes.DATEPICKER:\r\n return (\r\n \r\n );\r\n\r\n case FilterTypes.DATERANGE:\r\n return (\r\n \r\n );\r\n\r\n case FilterTypes.INPUT:\r\n default:\r\n return (\r\n { this.filterRefs[props.item.propertyName] = r; }}\r\n {...props} // eslint-disable-line react/jsx-props-no-spreading\r\n />\r\n );\r\n }\r\n };\r\n\r\n toggleOtherFilters = () => {\r\n this.setState((prevState) => ({ showOtherFilters: !prevState.showOtherFilters }));\r\n };\r\n\r\n getFilterClasses = (show) => cns(\r\n 'filter__campiRicerca',\r\n {\r\n 'filter__campiRicerca--show': show,\r\n },\r\n );\r\n\r\n render() {\r\n const { filtriRicerca, show, otherFiltersLabel } = this.props;\r\n const { filter, showOtherFilters } = this.state;\r\n const [filtriRicercaMain, filtriRicercaOther] = filtriRicerca.reduce((res, el) => {\r\n res[el.showInOthers ? 1 : 0].push(el);\r\n return res;\r\n }, [[], []]);\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n {filtriRicercaMain && filtriRicercaMain.map(this.renderFilterItem)}\r\n
    \r\n {filtriRicercaOther && filtriRicercaOther.length > 0 && (\r\n
    \r\n \r\n {showOtherFilters ? : }\r\n {otherFiltersLabel}\r\n \r\n
    \r\n {filtriRicercaOther.map(this.renderFilterItem)}\r\n
    \r\n
    \r\n )}\r\n
    \r\n {Object.keys(filter).length > 0\r\n && (\r\n \r\n )}\r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nFilter.propTypes = {\r\n /**\r\n Funzione di callback che viene invocata ad ogni modifica dei filtri selezionati,\r\n riceve come parametro un oggetto contenente i dati di filtraggio in cui per\r\n ogni proprietà abbiamo un insieme di filtri scelti:\r\n\r\n ```\r\n filterCallback(filter, resetPosition)\r\n ```\r\n\r\n dove:\r\n\r\n - *filter*: dati di filtraggio in cui per ogni proprietà abbiamo un insieme di filtri scelti\r\n - *resetPosition*: ritorna true solo durante il caricamento del componente\r\n */\r\n filterCallback: PropTypes.func,\r\n /**\r\nArray contenente una lista di oggetti con la seguente struttura:\r\n\r\n- `propertyName` (required): nome del campo da filtrare, ossia il nome della proprietà lato server\r\n- `description`: testo visualizzato nella label del campo di ricerca.\r\n Se non impostato, verrà utilizzato il `propertyName`\r\n- `customFilter`: con questo parametro è possibile passare una funzione per forzare il comportamento del filtro. \r\n Ad esempio `customFilter: `(a, b) => `(${a} in [${b}])` `; \r\n quando dovrà essere passato il filtro come parametro per una chiamata verrà usata questa funzione per formattarlo.\r\n- `type`: tipo dell'input (es text, number)\r\n- `query`: enum rappresentante la query option. \r\n Per utilizzarlo è necessario importare l'oggetto `QueryOptions` mediante il seguente import: \r\n ``import {QueryOptions} from \"framework-ui-components\"``. \r\n Se la proprietà non viene indicata sarà utilizzato il valore di default `QueryOptions.STARTS_WITH`.\r\n- `component`: tipo del filtro;\r\n i tipi utilizzabili sono disponibili importando l'enum `FilterTypes` \r\n (``import {FilterTypes} from \"framework-ui-components\"``). \r\n Se non viene passata questa proprietà, il valore di default sarà `INPUT`. \r\n Può assumere i seguenti valori:\r\n\r\n - `INPUT`\r\n - `SELECT`\r\n - `AUTOCOMPLETE`: _nota bene_ : l'oggetto ritornato dal controller dovrà essere un array di oggetti con proprietà `Value` e `Description`.\r\n - `RANGE`\r\n - `DATEPICKER`\r\n- `options`: disponibili solo per il componente `SELECT`,\r\n definisce le options da visualizare tramite un array di oggetti, contenenti le proprietà `Description` e `Value`. \r\n Es: ``options: [{Description: 'M', Value: 1},{Description: 'F', Value: 2}]``\r\n- `autoFocus`: indica se il filtro di default deve ricevere il focus (non funziona se impostato `showInOthers` a true)\r\n- `range`: permette di definire dei limiti sul valore da inserire come filtro. \r\n Ad esempio ``range: { to: new Date() }`` in un filtro `DATEPICKER` indicherà che non\r\n potranno essere selezionate date superiori all'oggi\r\n- `url`: disponibile solo per il componente `AUTOCOMPLETE`, definisce l'url dell'endpoint attraverso cui effettuare le ricerche\r\n- `renderProperty`: Nel caso di filtro `AUTOCOMPLETE` permette di indicare il nome della proprietà da renderizzare nelle opzioni selezionabili\r\n- `width`: permette di poter determinare la larghezza che il filtro dovrà occupare nel content dei filtri (px, ch, em, %)\r\n- `showInOthers`: permette di spostare il filtro in una sezione \"Altri filtri\" inizialmente non visualizzata\r\n */\r\n filtriRicerca: PropTypes.arrayOf(PropTypes.shape({\r\n propertyName: PropTypes.string.isRequired,\r\n description: PropTypes.string,\r\n customFilter: PropTypes.func,\r\n type: PropTypes.string,\r\n query: PropTypes.number,\r\n component: PropTypes.number,\r\n options: PropTypes.array,\r\n autoFocus: PropTypes.bool,\r\n range: PropTypes.object,\r\n url: PropTypes.string,\r\n renderProperty: PropTypes.string,\r\n width: PropTypes.string,\r\n showInOthers: PropTypes.bool,\r\n })),\r\n /**\r\nArray contenente una lista di oggetti che verranno utilizzati\r\nper settare dei filtri iniziali:\r\n\r\n- `propertyName`: nome del campo da filtrare, ossia il nome della proprietà lato server\r\n- `description`: testo visualizzato nella label del campo di ricerca.\r\n Se non impostato, verrà utilizzato il `propertyName`\r\n- `displayValue`: testo da mostrare nel caso in cui si voglia sovrascrivere il valore di default\r\n- `query`: enum rappresentante la query option.\r\n Per utilizzarlo è necessario importare l'oggetto `QueryOptions` mediante il seguente import:\r\n ``import {QueryOptions} from \"framework-ui-components\"``.\r\n Se la proprietà non viene indicata sarà utilizzato il valore di default `QueryOptions.STARTS_WITH`.\r\n- `value`: valore iniziale del filtro\r\n */\r\n initialFilters: PropTypes.arrayOf(PropTypes.shape({\r\n propertyName: PropTypes.string.isRequired,\r\n description: PropTypes.string,\r\n displayValue: PropTypes.string,\r\n query: PropTypes.number,\r\n value: PropTypes.any,\r\n })),\r\n /** Indica se il componente è espanso e i filtri visibili */\r\n show: PropTypes.bool,\r\n /**\r\n * Indica l'etichetta da visualizzare per la sezione *\"Altri filtri\"* (valore di default).\r\n * Per spostare un filtro in questa sezione basta impostare a true il parametro `showInOthers`\r\n * nei filtri di ricerca\r\n */\r\n otherFiltersLabel: PropTypes.string,\r\n};\r\n\r\nFilter.defaultProps = {\r\n filterCallback: null,\r\n filtriRicerca: [],\r\n initialFilters: [],\r\n show: false,\r\n otherFiltersLabel: 'Altri filtri',\r\n};\r\n\r\nFilter.Input = InputFilter;\r\nFilter.Select = SelectFilter;\r\nFilter.Autocomplete = AutocompleteFilter;\r\nFilter.Range = InputRangeFilter;\r\nFilter.DatePicker = DatePickerFilter;\r\nFilter.FilterTypes = FilterTypes;\r\nFilter.QueryOptions = QueryOptions;\r\nFilter.DateRange = DateRangeFilter;\r\n\r\nexport default Filter;\r\n","import Filter from './Filter';\r\n\r\nexport default Filter;\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) => { throw Error('Not implemented'); };\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 React from 'react';\r\nimport Icon from './Icon';\r\n\r\nexport default Icon(, '0 0 12 12', 'SortLeftIcon');\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 12 12', 'SkipToStartIcon',\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 , '0 0 12 12', 'SkipToEndIcon',\r\n);\r\n","\r\nexport default class ODataTableStorage {\r\n constructor(store) {\r\n this.store = store;\r\n }\r\n\r\n caricaStato = () => {\r\n if (this.store && window.sessionStorage) {\r\n const dati = window.sessionStorage.getItem(this.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 salvaStato = (dati) => {\r\n if (this.store && window.sessionStorage) {\r\n window.sessionStorage.setItem(this.store, JSON.stringify(dati));\r\n }\r\n };\r\n}\r\n","/* eslint-disable react/jsx-props-no-spreading */\r\n/* eslint-disable react/forbid-prop-types */\r\nimport React, { Component, useMemo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\nimport SelectCheckBox from './SelectCheckbox';\r\nimport Column from './Column';\r\nimport Select from '../Select';\r\nimport Dropdown from '../Dropdown';\r\nimport OData from '../Utils/odata';\r\nimport Table from '../Table';\r\nimport Checkbox from '../Checkbox';\r\nimport Spinner from '../Spinner';\r\nimport Filter from '../Filter';\r\nimport { QueryOptions, resolveFilter } from '../Utils/QueryOptions';\r\nimport SortLeftIcon from '../Icons/SortLeftIcon';\r\nimport SortRightIcon from '../Icons/SortRightIcon';\r\nimport SkipToStartIcon from '../Icons/SkipToStartIcon';\r\nimport SkipToEndIcon from '../Icons/SkipToEndIcon';\r\nimport DownIcon from '../Icons/DownIcon';\r\nimport ODataTableContext from './ODataTableContext';\r\nimport Log from '../../utils/log';\r\nimport { deprecatedUsage } from '../Utils/devUtils';\r\nimport ODataTableStorage from './ODataTableStorage';\r\nimport { groupBy } from '../Utils/ODataLoader';\r\nimport { loadDataSource, existFixedColumns } from '../Utils/table';\r\n\r\nconst TablePagination = (props) => {\r\n const {\r\n abilitataPrecedente, onClickToStart, onClickToPrec,\r\n abilitataSuccessiva, onClickToEnd, onClickToSucc,\r\n currentPage, currentPageRef, onChangeCurrentPage,\r\n totalPages, totalItems,\r\n pageSize, onChangePageSize, availablePageSizes,\r\n } = props;\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {' di '}\r\n {totalPages}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Totale:\r\n {totalItems}\r\n \r\n Risultati per pagina: \r\n \r\n {availablePageSizes.map((x, i) => (\r\n \r\n {x}\r\n \r\n ))}\r\n \r\n \r\n );\r\n};\r\n\r\nTablePagination.propTypes = {\r\n /**\r\n * Abilitazione bottoni prec.\r\n */\r\n abilitataPrecedente: PropTypes.bool,\r\n /**\r\n * Callback attivata al click di \"vai allo start\".\r\n */\r\n onClickToStart: PropTypes.func,\r\n /**\r\n * Callback attivata al click di \"vai al precendete\".\r\n */\r\n onClickToPrec: PropTypes.func,\r\n /**\r\n * Abilitazione bottoni succ.\r\n */\r\n abilitataSuccessiva: PropTypes.bool,\r\n /**\r\n * Callback attivata al click di \"vai allo start\".\r\n */\r\n onClickToEnd: PropTypes.func,\r\n /**\r\n * Callback attivata al click di \"vai al precendete\".\r\n */\r\n onClickToSucc: PropTypes.func,\r\n /**\r\n * Numero pagina corrente.\r\n */\r\n currentPage: PropTypes.number,\r\n /**\r\n * Numero pagina corrente.\r\n */\r\n totalPages: PropTypes.number,\r\n /**\r\n * Ref function dell'input di modifica pagina corrente.\r\n */\r\n currentPageRef: PropTypes.func,\r\n /**\r\n * Callback attivata al click di \"vai al precendete\".\r\n */\r\n onChangeCurrentPage: PropTypes.func,\r\n /**\r\n * Numero totale di oggetti.\r\n */\r\n totalItems: PropTypes.number,\r\n /**\r\n * Dimensione di una pagina.\r\n */\r\n pageSize: PropTypes.number,\r\n /**\r\n * Callback attivata alla modifica della dimensione della pagina.\r\n */\r\n onChangePageSize: PropTypes.func,\r\n /**\r\n * Lista di dimensioni pagine\r\n */\r\n availablePageSizes: PropTypes.arrayOf(PropTypes.number),\r\n};\r\n\r\nTablePagination.defaultProps = {\r\n abilitataPrecedente: true,\r\n onClickToStart: null,\r\n onClickToPrec: null,\r\n abilitataSuccessiva: true,\r\n onClickToEnd: null,\r\n onClickToSucc: null,\r\n currentPage: 0,\r\n totalPages: 1,\r\n currentPageRef: undefined,\r\n onChangeCurrentPage: null,\r\n totalItems: 0,\r\n pageSize: 5,\r\n onChangePageSize: null,\r\n availablePageSizes: [10, 20, 50],\r\n};\r\n\r\n/**\r\n * Gestisce un pulsante toggle per visualizza/nascodenre i filtri\r\n */\r\nconst ToggleFiltriAvanzati = (props) => {\r\n const { showFilters, onClick } = props;\r\n return (\r\n \r\n {showFilters ? : }\r\n {' Filtri avanzati'}\r\n \r\n );\r\n};\r\n\r\nToggleFiltriAvanzati.propTypes = {\r\n /**\r\n * Indica se il filtro è visibile\r\n */\r\n showFilters: PropTypes.bool,\r\n /**\r\n * Callback attivata al click dell'azione. L'unico paramatro è l'azione stessa.\r\n */\r\n onClick: PropTypes.func,\r\n};\r\n\r\nToggleFiltriAvanzati.defaultProps = {\r\n showFilters: false,\r\n onClick: null,\r\n};\r\n\r\n/**\r\n * ODataTable GroupActions\r\n */\r\nconst GroupActions = (props) => {\r\n const { groupActions, onClick } = props;\r\n return (\r\n
    \r\n \r\n {groupActions.map((x) => (\r\n { onClick(x); }}\r\n >\r\n {x}\r\n \r\n ))}\r\n \r\n
    \r\n );\r\n};\r\n\r\nGroupActions.propTypes = {\r\n /**\r\n * Elenco delle azioni applicabili agli elementi selezionati\r\n * della tabella\r\n */\r\n groupActions: PropTypes.array, // eslint-disable-line react/forbid-prop-types\r\n /**\r\n * Callback attivata al click dell'azione. L'unico paramatro è l'azione stessa.\r\n */\r\n onClick: PropTypes.func,\r\n};\r\n\r\nGroupActions.defaultProps = {\r\n groupActions: null,\r\n onClick: null,\r\n};\r\n\r\n/**\r\n * Tabella della ODataTable.\r\n * TODO sposare all'interno la gestione della selezione degli items.\r\n */\r\nconst DataTable = (props) => {\r\n const {\r\n className,\r\n selectable, selected, onSelectedAll, onSelected,\r\n columnHeaders, items, row, additionalRowData,\r\n } = props;\r\n const fixed = useMemo(() => existFixedColumns(columnHeaders, Column), [columnHeaders]);\r\n const Row = row;\r\n return (\r\n \r\n \r\n \r\n {selectable && (\r\n \r\n \r\n \r\n )}\r\n {columnHeaders}\r\n \r\n \r\n \r\n {items.map((x, i) => (\r\n \r\n ))}\r\n \r\n \r\n );\r\n};\r\n\r\nDataTable.propTypes = {\r\n /**\r\n * Classi css aggiuntive\r\n */\r\n className: PropTypes.string,\r\n /**\r\n * Indica se gli elementi della tabella sono selezionabili\r\n */\r\n selectable: PropTypes.bool,\r\n /**\r\n * Indica se tutti gli elementi sono selezionati\r\n */\r\n selected: PropTypes.bool,\r\n /**\r\n * callback invocata alla selezione di tutti gli elementi\r\n */\r\n onSelectedAll: PropTypes.func,\r\n /**\r\n * callback invocata alla selezione di un elemento\r\n */\r\n onSelected: PropTypes.func,\r\n /**\r\n * Contenuto da renderizzare\r\n */\r\n columnHeaders: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node,\r\n ]),\r\n /**\r\n * Array degli elementi da visualizzare.\r\n */\r\n items: PropTypes.array,\r\n /**\r\n * Componente da renderizzare come riga della tabella\r\n */\r\n row: PropTypes.elementType,\r\n /**\r\n * Informazioni aggiuntive iniettate nel componente Row\r\n */\r\n additionalRowData: PropTypes.object,\r\n};\r\n\r\nDataTable.defaultProps = {\r\n className: undefined,\r\n selectable: false,\r\n selected: false,\r\n columnHeaders: undefined,\r\n row: undefined,\r\n items: [],\r\n additionalRowData: undefined,\r\n\r\n onSelectedAll: undefined,\r\n onSelected: undefined,\r\n};\r\n\r\n/**\r\nIl componente `ODataTable` è stato pensato per permettere agevolmente di disegnare una griglia paginata collegata ad un endpoint `OData`,\r\nsemplificandone al massimo l'utilizzo ma permettendo comunque un grado di flessibilità sufficiente.\r\n\r\nNella sua versione più semplice la `ODataTable` ci permette di disegnare una tabella specificando solamente:\r\n\r\n- L'endpoint `OData` a cui collegarsi tramite la proprietà url\r\n- Le colonne da disegnare specificando le `ODataTable.Columns` presenti\r\n- Come disegnare ogni riga specificando un componente per il rendering di una riga (nel nostro caso `ExampleRow`)\r\n\r\nLe funzionalità offerte da questo componente sono:\r\n\r\n- Ordinamento delle righe de/crescente cliccando sull'intestazione della colonna desiderata\r\n- Paginazione automatica\r\n- Possibilità per l'utente di modificare la dimensione della pagina\r\n- Possibilità di mostrate i filtri per le colonne prescelte tramite la proprietà filter applicabile all'oggetto `ODataTable.Column`.\r\nTramite questa prop è possibile specificare: type: tipo del campo di input\r\n\r\nPer gestire le colonne di una tabella il componente `ODataTable` mette a disposizione il sotto-componente `ODataTable.Columns`\r\nche permettono di specificare l'intestazione della colonna e opzionalmente,\r\nla proprietà su cui eseguire l'ordinamento mediante il parametro propertyName.\r\nIl componente `ODataTable` permette anche di avere delle checkbox per la selezione delle singole righe o\r\ndi tutte le righe semplicemente specificando la proprietà selectable e inserendo in ogni riga una `ODataTable.SelectCheckBoxAggiungendo`\r\nalle colonne la prop filter è possibile aggiungere dei filtri per i campi desiderati; per informazioni sulle Props ammesse,\r\nriferirsi alla documentazione del componente Filter.Per aggiungere un filtro su una proprietà non presente nella tabella è possibile specificare,\r\ntramite la prop additionalFilters, i campi aggiuntivi su cui effettuare il filtraggio.\r\n\r\nSpesso `ODataTable` è utilizzata con il componente `Filter` (vedi documentazione).\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\nVedere le linee guida del componente `Filter` per i dettagli.\r\n\r\n */\r\nclass ODataTable extends Component {\r\n static Column = Column;\r\n\r\n static SelectCheckBox = SelectCheckBox;\r\n\r\n static FilterTypes = Filter.FilterTypes;\r\n\r\n static QueryOptions = QueryOptions;\r\n\r\n static resolveFilters(filter) {\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 return filtri;\r\n }\r\n\r\n constructor(props, context) {\r\n super(props, context);\r\n\r\n this.odata = props.odata || OData;\r\n\r\n let dati = null;\r\n if (props.store) {\r\n dati = new ODataTableStorage(props.store).caricaStato();\r\n if (dati != null) dati.filtri = this.mergeFilters(dati.filtri);\r\n }\r\n this.firstRender = true;\r\n const sortOrderP = props.sortOrder !== false;\r\n this.state = {\r\n loading: false,\r\n selected: false,\r\n items: [],\r\n count: 0,\r\n currentPage: dati != null ? dati.currentPage : 0,\r\n pageSize: dati != null ? dati.pageSize : props.pageSize || 20,\r\n availablePageSizes: props.availablePageSizes,\r\n totalPages: 0,\r\n sortProperty: dati != null ? dati.sortProperty : props.sortProperty,\r\n sortOrder: dati != null ? dati.sortOrder : sortOrderP,\r\n filter: dati != null ? dati.filtri : {},\r\n showFilters: props.showFilters,\r\n };\r\n }\r\n\r\n UNSAFE_componentWillReceiveProps({ url, store }) {\r\n const { url: urlP, store: storeP } = this.props;\r\n if (urlP !== url || storeP !== store) {\r\n this.reinizializza({ url, store });\r\n }\r\n }\r\n\r\n reinizializza = ({ url, store }) => {\r\n const dati = store ? new ODataTableStorage(store).caricaStato() : null;\r\n const filter = dati != null ? this.mergeFilters(dati.filtri) : {};\r\n this.refFilter.reinitializeFilter(filter);\r\n this.setState({\r\n currentPage: 0,\r\n filter,\r\n }, this.loadPage);\r\n };\r\n\r\n ordina = (proprieta, ordine) => {\r\n this.setState({\r\n sortProperty: proprieta,\r\n sortOrder: ordine,\r\n }, this.loadPage);\r\n };\r\n\r\n /**\r\n * @public\r\n * Ritorna l'url della tabella.\r\n * @returns {string} url\r\n */\r\n // eslint-disable-next-line react/no-unused-class-component-methods\r\n urlCorrente = () => {\r\n const { url } = this.props;\r\n const {\r\n filter, pageSize, currentPage, sortProperty, sortOrder,\r\n } = this.state;\r\n const filtri = ODataTable.resolveFilters(filter);\r\n\r\n return this.odata.generaUrl(\r\n url,\r\n pageSize,\r\n currentPage * pageSize,\r\n sortProperty,\r\n sortOrder,\r\n filtri,\r\n );\r\n };\r\n\r\n loadPage = () => {\r\n this.setState({\r\n loading: true,\r\n selected: false,\r\n });\r\n const {\r\n currentPage, filter, pageSize, sortProperty,\r\n sortOrder,\r\n } = this.state;\r\n const filtri = ODataTable.resolveFilters(filter);\r\n this.refInput.value = currentPage + 1;\r\n\r\n const { store } = this.props;\r\n if (store) {\r\n new ODataTableStorage(store).salvaStato({\r\n pageSize,\r\n currentPage,\r\n sortProperty,\r\n sortOrder,\r\n filtri: filter,\r\n });\r\n }\r\n const { url } = this.props;\r\n if (url && typeof (url) === 'string') {\r\n this.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, currentPage, sortProperty, sortOrder);\r\n });\r\n }\r\n const { dataSource } = this.props;\r\n loadDataSource(\r\n dataSource,\r\n (result, props) => this.setResults(result, props.pageSize, props.filtri, props.currentPage, props.sortProperty, props.sortOrder),\r\n {\r\n pageSize, currentPage, sortProperty, sortOrder, filtri,\r\n },\r\n );\r\n };\r\n\r\n setResults = (results, pageSize, filtri, currentPage, sortProperty, sortOrder) => {\r\n this.setState({\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 }, this.notificaSelezionati);\r\n const { onPageLoad } = this.props;\r\n if (onPageLoad) {\r\n onPageLoad(\r\n results.Items,\r\n results.Count,\r\n filtri,\r\n currentPage,\r\n sortProperty,\r\n sortOrder,\r\n );\r\n }\r\n // se arrivo in una pagina con zero elementi che non è\r\n // la prima ma ci sarebbero altre pagine torna in prima pagina\r\n if (results && results.Items && results.Items.length === 0\r\n && Math.ceil(results.Count / pageSize) > 0 && currentPage > 0) {\r\n this.setState({\r\n currentPage: 0,\r\n }, this.loadPage);\r\n }\r\n };\r\n\r\n iniziale = () => {\r\n this.setState({\r\n currentPage: 0,\r\n }, this.loadPage);\r\n };\r\n\r\n precedente = () => {\r\n const { currentPage } = this.state;\r\n if (currentPage === 0) {\r\n return;\r\n }\r\n this.setState((prevState) => ({\r\n currentPage: prevState.currentPage - 1,\r\n }), this.loadPage);\r\n };\r\n\r\n prossima = () => {\r\n const { currentPage, totalPages } = this.state;\r\n if (currentPage === totalPages - 1 || totalPages === 0) {\r\n return;\r\n }\r\n this.setState((prevState) => ({\r\n currentPage: prevState.currentPage + 1,\r\n }), this.loadPage);\r\n };\r\n\r\n ultima = () => {\r\n const { currentPage, totalPages } = this.state;\r\n if (currentPage === totalPages - 1 || totalPages === 0) {\r\n return;\r\n }\r\n this.setState((prevState) => ({\r\n currentPage: prevState.totalPages - 1,\r\n }), this.loadPage);\r\n };\r\n\r\n modificaPageSize = (event, value) => {\r\n this.setState({\r\n pageSize: value,\r\n currentPage: 0,\r\n }, this.loadPage);\r\n };\r\n\r\n seleziona = () => {\r\n const { selected, items } = this.state;\r\n const nuovo = !selected;\r\n const newItems = items.map((item) => ({ ...item, Selected: nuovo }));\r\n this.setState({\r\n selected: nuovo,\r\n items: newItems,\r\n }, () => this.notificaSelezionati() && this.forceUpdate());\r\n };\r\n\r\n selezionatoSingolo = (indice) => {\r\n const { items } = this.state;\r\n const newItems = [...items];\r\n newItems[indice].Selected = !newItems[indice].Selected;\r\n this.setState((prevState) => ({\r\n items: newItems,\r\n selected: prevState.items.every((x) => x.Selected),\r\n }), this.notificaSelezionati);\r\n };\r\n\r\n notificaSelezionati = () => {\r\n const { onSelezionati } = this.props;\r\n onSelezionati && onSelezionati(this.selezionati());\r\n };\r\n\r\n selezionati = () => {\r\n const { items } = this.state;\r\n return items.filter((x) => x.Selected);\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 pulisciSelezione = () => {\r\n const { items } = this.state;\r\n const newItems = items.map((item) => ({ ...item, Selected: false }));\r\n this.setState({ items: newItems, selected: false });\r\n };\r\n\r\n hasChildrenWithFilters = () => {\r\n const { additionalFilters, children } = this.props;\r\n return (children && React.Children.toArray(children)\r\n .filter((x) => x && x.props.filter != null).length > 0) || additionalFilters;\r\n };\r\n\r\n toggleFilters = () => {\r\n this.setState((prevState) => ({ showFilters: !prevState.showFilters }));\r\n };\r\n\r\n populateFilters = () => {\r\n const { additionalFilters, children, useAdvancedFilters } = this.props;\r\n deprecatedUsage(\r\n this,\r\n !useAdvancedFilters,\r\n 'framework-ui-components',\r\n 'ODataTable.useAdvancedFilters',\r\n 'ODataTable: You have to use useAdvancedFilters=true. The current behavior will be removed in the future release.',\r\n );\r\n\r\n const filters = [];\r\n React.Children\r\n .map(children, (x, i) => {\r\n if (x && x.type._componentType === 'Column' && x.props.filter != null) { // eslint-disable-line no-underscore-dangle\r\n filters.push({\r\n propertyName: x.props.propertyName || x.props.filter.propertyName,\r\n description: x.props.filter.description || x.props.propertyName,\r\n type: x.props.filter.type,\r\n query: x.props.filter.query,\r\n component: x.props.filter.component,\r\n options: x.props.filter.options,\r\n autoFocus: x.props.filter.autoFocus,\r\n range: x.props.filter.range,\r\n url: x.props.filter.url,\r\n renderProperty: x.props.filter.renderProperty,\r\n width: x.props.filter.width,\r\n right: x.props.filter.right,\r\n customFilter: x.props.filter.customFilter,\r\n showInOthers: useAdvancedFilters && x.props.filter.showInOthers,\r\n });\r\n }\r\n });\r\n\r\n if (additionalFilters) {\r\n additionalFilters\r\n .forEach((x) => {\r\n filters.push({\r\n propertyName: x.propertyName,\r\n description: x.description || x.propertyName,\r\n type: x.type,\r\n query: x.query,\r\n component: x.component,\r\n options: x.options,\r\n autoFocus: x.autoFocus,\r\n range: x.range,\r\n url: x.url,\r\n renderProperty: x.renderProperty,\r\n width: x.width,\r\n right: x.right,\r\n customFilter: x.customFilter,\r\n showInOthers: useAdvancedFilters && x.showInOthers,\r\n });\r\n });\r\n }\r\n\r\n return filters;\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 clearFilters = () => {\r\n this.refFilter && this.refFilter.cleanAll();\r\n };\r\n\r\n notifica = (value) => {\r\n const { onGroupAction, url } = this.props;\r\n const {\r\n filter, items, sortProperty, sortOrder,\r\n } = this.state;\r\n if (onGroupAction) {\r\n const selected = items.filter((x) => x.Selected);\r\n if (selected.length > 0) {\r\n let generatedUrl = null;\r\n if (selected.length === items.length) {\r\n const filtri = [];\r\n Object.keys(filter).forEach((x) => {\r\n const query = resolveFilter(x, filter[x]);\r\n filtri.push(query);\r\n });\r\n generatedUrl = this.odata.generaUrl(\r\n url,\r\n null,\r\n null,\r\n sortProperty,\r\n sortOrder,\r\n filtri,\r\n );\r\n }\r\n onGroupAction(value, selected, generatedUrl);\r\n }\r\n }\r\n };\r\n\r\n setCurrentPage = (evt) => {\r\n const { value } = evt.target;\r\n const { totalPages, currentPage } = this.state;\r\n if (value === '') {\r\n this.refInput.value = '';\r\n } else if (value === '0') {\r\n this.setState({ currentPage: 0 }, this.loadPage);\r\n } else if (value > 0 && value <= totalPages) {\r\n this.setState({ currentPage: value - 1 }, this.loadPage);\r\n } else {\r\n this.refInput.value = currentPage + 1;\r\n }\r\n };\r\n\r\n onFiltersReloaded = (f, reload) => {\r\n this.setState((prevState) => ({\r\n filter: f,\r\n currentPage: reload ? prevState.currentPage : 0,\r\n }), () => {\r\n this.refInput.value = 1;\r\n this.loadPage();\r\n });\r\n };\r\n\r\n mergeFilters(filtri) {\r\n let definitionFilter = null;\r\n const filterStored = {};\r\n Object.keys(filtri).forEach((x) => {\r\n const filtriProp = filtri[x];\r\n filterStored[x] = filtriProp.map((f) => {\r\n if (f.query === QueryOptions.CUSTOM_FILTER) {\r\n if (!definitionFilter) {\r\n definitionFilter = this.populateFilters();\r\n }\r\n const defFilters = definitionFilter.filter((df) => df.propertyName === f.name\r\n && df.query === QueryOptions.CUSTOM_FILTER);\r\n let defFilter;\r\n if (defFilters.length !== 1) {\r\n Log.error('Filtro custom non univocamente identificabile');\r\n defFilter = null;\r\n } else {\r\n [defFilter] = defFilters;\r\n }\r\n return {\r\n ...f,\r\n customFilter: defFilter ? defFilter.customFilter : null,\r\n };\r\n }\r\n return f;\r\n });\r\n });\r\n return filterStored;\r\n }\r\n\r\n render() {\r\n const {\r\n loading, currentPage, totalPages, filter,\r\n sortProperty, sortOrder, count, pageSize,\r\n availablePageSizes, showFilters, selected,\r\n items,\r\n } = this.state;\r\n const {\r\n className, row, initialFilters, store,\r\n groupActions, selectable, children, emptyMessage,\r\n additionalRowData, useAdvancedFilters,\r\n } = this.props;\r\n const tableClasses = cns(\r\n {\r\n 'table--loading': loading,\r\n },\r\n className,\r\n );\r\n const abilitataPrecedente = parseInt(currentPage, 10) === 0;\r\n const abilitataSuccessiva = parseInt(currentPage, 10) === (parseInt(totalPages, 10) - 1);\r\n const hasFilters = this.hasChildrenWithFilters();\r\n let filters = [];\r\n if (hasFilters) {\r\n filters = this.populateFilters();\r\n }\r\n const filtriApplicati = Object.keys(filter).length !== 0;\r\n let filtriIniziali = initialFilters || [];\r\n\r\n if (this.firstRender && store && !initialFilters) {\r\n this.firstRender = false;\r\n const dati = new ODataTableStorage(store).caricaStato();\r\n if (dati != null) {\r\n filtriIniziali = [];\r\n Object.keys(dati.filtri).forEach((x) => {\r\n filtriIniziali = filtriIniziali.concat(dati.filtri[x]);\r\n });\r\n filtriIniziali.map((filtroIniziale) => {\r\n const newFiltroIniziale = filtroIniziale;\r\n // imposto anche sui filtri iniziali il custom filter (se necessario)\r\n if (newFiltroIniziale.query === QueryOptions.CUSTOM_FILTER && filters) {\r\n const defFilters = filters.filter((df) => df.propertyName === newFiltroIniziale.name\r\n && df.query === QueryOptions.CUSTOM_FILTER);\r\n let defFilter;\r\n if (defFilters.length !== 1) {\r\n Log.error('Filtro custom non univocamente identificabile');\r\n defFilter = null;\r\n } else {\r\n [defFilter] = defFilters;\r\n }\r\n newFiltroIniziale.customFilter = defFilter ? defFilter.customFilter : undefined;\r\n }\r\n newFiltroIniziale.propertyName = newFiltroIniziale.name;\r\n newFiltroIniziale.value = newFiltroIniziale.valore;\r\n return newFiltroIniziale;\r\n });\r\n }\r\n }\r\n\r\n const containerClasses = cns('table__container', { 'table__container--advanced_filters': useAdvancedFilters });\r\n\r\n return (\r\n // eslint-disable-next-line react/jsx-no-constructed-context-values\r\n \r\n
    \r\n {groupActions && [\r\n ,\r\n
    ,\r\n ]}\r\n {\r\n !useAdvancedFilters\r\n && hasFilters\r\n && \r\n }\r\n { this.refInput = r; }}\r\n onChangeCurrentPage={this.setCurrentPage}\r\n totalPages={totalPages}\r\n totalItems={count}\r\n pageSize={pageSize}\r\n onChangePageSize={this.modificaPageSize}\r\n availablePageSizes={availablePageSizes}\r\n />\r\n
    \r\n { this.refFilter = r; }}\r\n show={hasFilters && (showFilters || useAdvancedFilters)}\r\n otherFiltersLabel={useAdvancedFilters ? 'Filtri Avanzati' : undefined}\r\n />\r\n {!useAdvancedFilters &&
    }\r\n \r\n {loading && (\r\n
    \r\n \r\n
    \r\n )}\r\n {filtriApplicati && !loading && items.length === 0\r\n &&
    Nessun elemento trovato per i filtri di ricerca impostati
    }\r\n {!filtriApplicati && !loading && items.length === 0 && emptyMessage\r\n &&
    {emptyMessage}
    }\r\n
    \r\n \r\n );\r\n }\r\n}\r\n\r\nODataTable.defaultProps = {\r\n additionalFilters: undefined,\r\n additionalRowData: null,\r\n availablePageSizes: [10, 20, 50],\r\n children: null,\r\n className: null,\r\n dataSource: null,\r\n emptyMessage: null,\r\n groupActions: null,\r\n initialFilters: null,\r\n onGroupAction: null,\r\n onPageLoad: null,\r\n onSelezionati: null,\r\n pageSize: 20,\r\n row: null,\r\n selectable: false,\r\n showFilters: false,\r\n sortOrder: true,\r\n sortProperty: null,\r\n store: null,\r\n url: null,\r\n odata: undefined,\r\n};\r\n\r\nODataTable.propTypes = {\r\n /**\r\nDefinisce dei filtri aggiuntivi. Per maggiori dettagli consultare la scheda del componente `Filter`.\r\n */\r\n additionalFilters: PropTypes.arrayOf(PropTypes.shape({\r\n propertyName: PropTypes.string.isRequired,\r\n description: PropTypes.string,\r\n type: PropTypes.string,\r\n query: PropTypes.number,\r\n component: PropTypes.number,\r\n options: PropTypes.array,\r\n autoFocus: PropTypes.bool,\r\n range: PropTypes.object,\r\n url: PropTypes.string,\r\n renderProperty: PropTypes.string,\r\n width: PropTypes.string,\r\n customFilter: PropTypes.func,\r\n showInOthers: PropTypes.bool,\r\n })),\r\n /**\r\nInformazioni aggiuntive iniettate nel componente Row\r\n */\r\n additionalRowData: PropTypes.object, // eslint-disable-line react/forbid-prop-types\r\n /**\r\nLista di dimensioni pagine\r\n */\r\n availablePageSizes: PropTypes.arrayOf(PropTypes.number),\r\n /**\r\nContenuto da renderizzare (vedi `Column`)\r\n */\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node,\r\n ]),\r\n /**\r\nClassi css aggiuntive\r\n */\r\n className: PropTypes.string,\r\n /**\r\nDefinisce gli elementi da renderizzare senza effettuare chiamate a API:```\r\n dataSource(pageSize, skip, sortProperty, sortOrder, filtri)\r\n```\r\ndove:\r\n\r\n- `pageSize`: dimensione della pagina\r\n- `skip`: currentPage * pageSize\r\n- `sortProperty`: proprietà di ordinamento\r\n- `sortOrder`: tipologia di ordinamento (true = ordinamento crescente)\r\n- `filtri`: eventuali filtri da applicare\r\n */\r\n dataSource: PropTypes.func,\r\n /**\r\nMessaggio da visualizzare in assenza di risultati\r\n */\r\n emptyMessage: PropTypes.node,\r\n /**\r\nElenco delle azioni applicabili agli elementi selezionati della tabella\r\n */\r\n groupActions: PropTypes.array, // eslint-disable-line react/forbid-prop-types\r\n /**\r\nDefinisce dei filtri iniziali preimpostati\r\n */\r\n initialFilters: PropTypes.array, // eslint-disable-line react/forbid-prop-types\r\n /**\r\nCallback invocata alla selezione di una azione di gruppo:\r\n\r\n```\r\n onGroupAction(value, selected, generatedUrl)\r\n```\r\ndove:\r\n\r\n- `value`: valore dell'azione selezionata\r\n- `selected`: items selezionati su cui applicare l'azione\r\n- `generatedUrl`: url generata con la configurazione attuale della tabella\r\n (nel caso di selezione di tutti gli elementi)\r\n */\r\n onGroupAction: PropTypes.func,\r\n /**\r\nCallback invocata ad ogni caricamento di pagina:\r\n\r\n```\r\n onPageLoad(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 onPageLoad: PropTypes.func,\r\n /**\r\nCallback invocata alla selezione di almeno una riga\r\n\r\n```\r\n onSelezionati(items)\r\n```\r\ndove:\r\n\r\n- `items`: array con gli items selezionati\r\n */\r\n onSelezionati: PropTypes.func,\r\n /**\r\nDimensione iniziare di una pagina di risultati\r\n */\r\n pageSize: PropTypes.number,\r\n /**\r\nComponente da renderizzare come riga della tabella\r\n */\r\n row: PropTypes.func,\r\n /**\r\nIndica se gli elementi della tabella sono selezionabili\r\n */\r\n selectable: PropTypes.bool,\r\n /**\r\nIndica se mostrare i filtri aperti o collassati\r\n */\r\n showFilters: PropTypes.bool,\r\n /**\r\nIndica se invertire l'ordinamento\r\n */\r\n sortOrder: PropTypes.bool,\r\n /**\r\nNome del campo su cui effettuare l'ordinamento di default\r\n */\r\n sortProperty: PropTypes.string,\r\n /**\r\nNome dell'oggetto salvato nello storage del browser.\r\nIn questo modo quando viene ricaricata la apgina verranno riapplicati gli eventuali filtri\r\nche erano stati impostati e verrà posizionata la tabella alla pagina che era stata visitata\r\n */\r\n store: PropTypes.string,\r\n /**\r\nUrl da chiamare per ottenere i risultati\r\n */\r\n url: PropTypes.string,\r\n\r\n /**\r\nCustomize l'OData provider. Vedi `Components/Utils/odata`.\r\n */\r\n odata: PropTypes.shape({\r\n generaUrl: PropTypes.func.isRequired,\r\n cerca: PropTypes.func.isRequired,\r\n }),\r\n /**\r\nUsa gestione filtri avanzati.\r\nQuesta gestione prevede che di default i filtri vengano sempre visualizzati,\r\nma alcuni vengano presentati in una sezione (Filtri avanzati appunto)\r\nche l'utente può visualizzare o nascondere agento su un pulsante toggle.\r\n\r\nPer specificare che un filtro deve stare nella sezione \"Filtri avanzati\",\r\nimpostare la proprietà `showInOthers`.\r\n */\r\n useAdvancedFilters: PropTypes.bool,\r\n};\r\n\r\nODataTable.defaultProps = {\r\n availablePageSizes: [10, 20, 50],\r\n useAdvancedFilters: false,\r\n};\r\n\r\nexport default ODataTable;\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 ODataTable from './ODataTable';\r\n\r\nexport default ODataTable;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport Dropdown from './index';\r\nimport MoreIcon from '../Icons/MoreIcon';\r\n\r\nconst OptionDropdown = ({ children, ...others }) => (\r\n }\r\n {...others}\r\n className=\"dropdown dropdown--small dropdown--option\"\r\n >\r\n {children}\r\n \r\n);\r\n\r\nOptionDropdown.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\nOptionDropdown.defaultProps = {\r\n children: null,\r\n};\r\n\r\nOptionDropdown.Item = Dropdown.Item;\r\n\r\nexport default OptionDropdown;\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 48 48', 'InfoIcon',\r\n);\r\n","import React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Modal, Table, Button, Formatter,\r\n} from 'framework-ui-components';\r\n\r\nimport { storico } from 'apis/sharedApi';\r\n\r\nclass ModaleStorico extends Component {\r\n state = {\r\n storico: [],\r\n }\r\n\r\n componentWillMount() {\r\n this.caricaStorico(this.props.idDichiarazione);\r\n }\r\n\r\n caricaStorico(idDichiarazione) {\r\n storico(idDichiarazione)\r\n .then(x => this.setState({ storico: x }));\r\n }\r\n\r\n disegnaDatiAggiuntivi(dati) {\r\n const parsed = JSON.parse(dati);\r\n\r\n return Object.keys(parsed).map((x, i) => {\r\n if (Array.isArray(parsed[x])) {\r\n return
      {parsed[x].map((z, j) =>
    • {z}
    • )}
    ;\r\n }\r\n return {x}:{parsed[x]};\r\n });\r\n }\r\n\r\n render() {\r\n const {\r\n denominazione,\r\n onClose,\r\n } = this.props;\r\n const {\r\n storico,\r\n } = this.state;\r\n\r\n return (\r\n \r\n Storico dichiarazione {denominazione}\r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {storico.map((x, i) => (\r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n
    AzioneData modifica
    {x.Descrizione}\r\n {x.DatiAddizionali && this.disegnaDatiAggiuntivi(x.DatiAddizionali)}\r\n -
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nModaleStorico.propTypes = {\r\n denominazione: PropTypes.string,\r\n idDichiarazione: PropTypes.string,\r\n onClose: PropTypes.func,\r\n};\r\n\r\nexport default ModaleStorico;\r\n","import { WebRequest } from 'framework-ui-components';\r\n\r\nexport const storico = id => WebRequest.get('/Dichiarazione/Storico', { id });\r\n\r\nexport const anniRegistrati = () => WebRequest.get('/Home/AnniRegistrati', { });\r\n","import React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cns from 'classnames';\r\n\r\nimport FormContext from './FormContext';\r\n\r\n/**\r\nComponente per raggruppare componenti di input.\r\n\r\nPer eseguire una validazione della form, utilizzare il metodo `valida()` della reference.\r\n\r\n_Nota: se usate gli hooks vedi `useFormState` per la gestione dello stato, vedi `useForm` per la gestione del contesto delle form._\r\n\r\n */\r\nclass Form extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n validare: false,\r\n };\r\n\r\n this.validationState = {};\r\n this.subscriptions = {};\r\n this.errori = {};\r\n this.struttura = {};\r\n this.isValid = true;\r\n }\r\n\r\n addToForm = (name, value, callback) => {\r\n this.validationState[name] = value;\r\n this.errori[name] = [];\r\n this.subscriptions[name] = callback;\r\n this.struttura.All = (this.struttura.All || []).concat(name);\r\n\r\n this.rivalida();\r\n };\r\n\r\n removeFromForm = (name) => {\r\n delete this.validationState[name];\r\n delete this.errori[name];\r\n delete this.subscriptions[name];\r\n const position = this.struttura.All.indexOf(name);\r\n if (~position) { // eslint-disable-line no-bitwise\r\n this.struttura.All.splice(position, 1);\r\n }\r\n\r\n this.rivalida();\r\n };\r\n\r\n resetta = () => {\r\n this.setState({\r\n validare: false,\r\n });\r\n Object.keys(this.subscriptions).forEach((prop) => prop != null\r\n && this.subscriptions[prop] != null && this.subscriptions[prop]());\r\n };\r\n\r\n // API pubblica\r\n // eslint-disable-next-line react/no-unused-class-component-methods\r\n valida = () => {\r\n this.setState({\r\n validare: true,\r\n });\r\n return this.isValid;\r\n };\r\n\r\n rivalida = () => {\r\n const { onValidationChange } = this.props;\r\n let nuovaValidità = true;\r\n\r\n Object.keys(this.validationState).forEach((x) => {\r\n nuovaValidità = nuovaValidità && this.validationState[x];\r\n });\r\n if (this.isValid !== nuovaValidità) {\r\n this.isValid = nuovaValidità;\r\n\r\n if (onValidationChange) {\r\n setTimeout(() => onValidationChange(this.isValid));\r\n }\r\n }\r\n };\r\n\r\n updateValidationState = (field, isValid, messages) => {\r\n const { onChange } = this.props;\r\n this.validationState[field] = isValid;\r\n\r\n const uguali = (this.errori[field] || []).length === messages.length\r\n && (this.errori[field] || []).every((v, i) => v === messages[i]);\r\n if (!uguali) {\r\n this.errori[field] = messages;\r\n setTimeout(() => onChange({ FormErrors: this.errori }));\r\n }\r\n\r\n this.rivalida();\r\n };\r\n\r\n render() {\r\n const {\r\n children,\r\n className,\r\n onChange,\r\n stato,\r\n } = this.props;\r\n const {\r\n validare,\r\n } = this.state;\r\n\r\n const classes = cns(\r\n 'form',\r\n className,\r\n );\r\n\r\n return (\r\n \r\n
    \r\n {children}\r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nForm.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 invocata al cambiamento del valore di un input della form:\r\n * ```\r\n * onChange({ ...updates, FormErrors: errori })\r\n * ```\r\n * dove:\r\n * * *errori*: elenco degli errori associati ai fields della form\r\n * * *updates*: sono i campi modificati.\r\n */\r\n onChange: PropTypes.func.isRequired,\r\n /**\r\n * Callback invocata al cambiamento dello stato di validazione della form:\r\n * ```\r\n * onValidationChange(isValid)\r\n * ```\r\n * dove:\r\n * * *isValid*: validità della form\r\n */\r\n onValidationChange: PropTypes.func,\r\n /**\r\nOggetto con coppie nome:valore a cui vengono bindati i campi della form (vedi proprietà name dei componenti di input).\r\n */\r\n stato: PropTypes.object.isRequired, // eslint-disable-line react/forbid-prop-types\r\n};\r\n\r\nForm.defaultProps = {\r\n children: null,\r\n className: '',\r\n onValidationChange: null,\r\n};\r\n\r\nexport default Form;\r\n","import Form from './Form';\r\n\r\nexport default Form;\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","const EsitoControlloSiatel = {\r\n //\r\n // Summary:\r\n // Il codice fiscale è corretto\r\n Corretto: 0,\r\n //\r\n // Summary:\r\n // Il codice fiscale è stato sostituito da un'altro\r\n Sostituito: 1,\r\n //\r\n // Summary:\r\n // Non Presente in base anagrafica\r\n NonValidato: 2,\r\n //\r\n // Summary:\r\n // base di un omocodice\r\n BaseOmocodice: 3,\r\n //\r\n // Summary:\r\n // Non è una persona fisica\r\n NonPersonaFisica: 5,\r\n //\r\n // Summary:\r\n // Non utilizzabile\r\n Nonutilizzabile: 6,\r\n //\r\n // Summary:\r\n // Più soggetti per la stessa anagrafica\r\n PiuSoggetti: 7,\r\n //\r\n // Summary:\r\n // Indicata una partita iva al posto di un codice fiscale\r\n PartitaIVAIndicata: 8,\r\n //\r\n // Summary:\r\n // Codice fiscale formalmente errato\r\n FormalmenteErrato: 9,\r\n //\r\n // Summary:\r\n // USATO UN CODICE FISCALE AL POSTO DI PARTITA IVA\r\n IndicatoCodiceFiscale: 10,\r\n //\r\n // Summary:\r\n // pROBLEMI NELL'ESECUZIONE DELLA PROCEDURA\r\n NonEffettuabile: 21,\r\n //\r\n // Summary:\r\n // dATI INSUFFICIENTI O ERRATI PER L'INDIVIDUAZIONE DEL SOGGETTO\r\n DatiInsufficienti: 110,\r\n //\r\n // Summary:\r\n // Soggetto non presente in archivio anagrafiche\r\n NonPresente: 111,\r\n //\r\n // Summary:\r\n // Non presente in archivio persone giuridiche\r\n NonPresente2: 112,\r\n //\r\n // Summary:\r\n // Il codice fiscale è formalmente errato\r\n CodiceFiscaleErrato: 2002,\r\n //\r\n // Summary:\r\n // Mancano dati anagrafici nel tracciato\r\n DatiAnagraficiMancanti: 2010,\r\n //\r\n // Summary:\r\n // Data di nascita incongruente\r\n DataNascitaErrata: 2011,\r\n //\r\n // Summary:\r\n // Tipo record errato\r\n ErratoTipoRecord: 4000,\r\n //\r\n // Summary:\r\n // Dati del codice fiscale assenti\r\n CodiceFiscaleAssente: 5100,\r\n //\r\n // Summary:\r\n // Il codice fiscale deve essere ancora controllato\r\n DaControllare: 10000,\r\n //\r\n // Summary:\r\n // Il controllo del codice fiscale è in corso ma non è stata ricevuta risposta dall'\r\n // agenzia delle entrate\r\n ControlloInCorso: 10001,\r\n};\r\n\r\nexport default EsitoControlloSiatel;\r\n","import React, { Component, Fragment } from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport { Grid, Modal, Heading, Form, Button, Input, Textblock, Panel } from 'framework-ui-components';\r\nimport { erratiCodiciFiscaliDichiarazione } from 'apis/setteTrentaApi';\r\nimport { EsitoControlloSiatel } from 'enums';\r\n\r\nconst Vocale = carattere => {\r\n if (carattere == 'A' || carattere == 'E' || carattere == 'I' || carattere == 'O' || carattere == 'U') {\r\n return true;\r\n }\r\n\r\n return false;\r\n};\r\n\r\nconst codiceFiscaleValido = value => {\r\n\r\n // se vuota i dati sono validi\r\n if (value === null || value === undefined) {\r\n return true;\r\n }\r\n\r\n // se non � una stringa non � un codice fiscale valido\r\n if (typeof (value) != \"string\") {\r\n return false;\r\n }\r\n\r\n let cf = value;\r\n let validi, i, s, set1, set2, setpari, setdisp;\r\n\r\n if (cf == '') {\r\n return true;\r\n }\r\n\r\n cf = cf.toUpperCase();\r\n\r\n if (cf.length != 16) {\r\n return false;\r\n }\r\n\r\n validi = \"ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789\";\r\n for (let i = 0; i < 16; i++) {\r\n if (validi.indexOf(cf.charAt(i)) == -1) {\r\n return false;\r\n }\r\n }\r\n\r\n set1 = \"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ\";\r\n set2 = \"ABCDEFGHIJABCDEFGHIJKLMNOPQRSTUVWXYZ\";\r\n setpari = \"ABCDEFGHIJKLMNOPQRSTUVWXYZ\";\r\n setdisp = \"BAKPLCQDREVOSFTGUHMINJWZYX\";\r\n\r\n s = 0;\r\n for (let i = 1; i <= 13; i += 2) {\r\n s += setpari.indexOf(set2.charAt(set1.indexOf(cf.charAt(i))));\r\n }\r\n\r\n for (let i = 0; i <= 14; i += 2) {\r\n s += setdisp.indexOf(set2.charAt(set1.indexOf(cf.charAt(i))));\r\n }\r\n\r\n if (s % 26 != cf.charCodeAt(15) - 'A'.charCodeAt(0)) {\r\n return false;\r\n }\r\n\r\n return true;\r\n};\r\n\r\n\r\nconst nomeCompatibileCodiceFiscale = (nome, cf) => {\r\n if (nome == \"\") {\r\n return true;\r\n }\r\n\r\n if (cf == \"\" || cf == null) {\r\n return true;\r\n }\r\n\r\n if (!codiceFiscaleValido(cf)) {\r\n return true;\r\n }\r\n\r\n var nomeAux = nome.replace(/[^a-zA-Z]+/gi, '');\r\n\r\n var nomeCondensato = \"\";\r\n for (const car of nomeAux) {\r\n if (!Vocale(car.toUpperCase())) {\r\n nomeCondensato += car;\r\n }\r\n }\r\n\r\n if (nomeCondensato.length > 3) {\r\n nomeCondensato = nomeCondensato[0] + nomeCondensato.substring(2);\r\n }\r\n\r\n if (nomeCondensato.length < 3) {\r\n for (const car of nome) {\r\n if (Vocale(car.toUpperCase())) {\r\n nomeCondensato += car;\r\n }\r\n }\r\n }\r\n\r\n if (nomeCondensato.length < 3) {\r\n for (var i = 0; i < (3 - nomeCondensato.length); i++) {\r\n nomeCondensato += \"X\";\r\n }\r\n }\r\n\r\n // verifico la coerenza\r\n if (nomeCondensato.length >= 3 && nomeCondensato.substring(0, 3).toLowerCase() == cf.substring(3, 6).toLowerCase()) {\r\n return true;\r\n }\r\n\r\n return false;\r\n};\r\n\r\nconst cognomeCompatibileCodiceFiscale = (nome, cf) => {\r\n if (nome == \"\") {\r\n return true;\r\n }\r\n\r\n if (cf == \"\" || cf == null) {\r\n return true;\r\n }\r\n\r\n if (!codiceFiscaleValido(cf)) {\r\n return true;\r\n }\r\n\r\n var nomeAux = nome.replace(/[^a-zA-Z]+/gi, '');\r\n\r\n var nomeCondensato = \"\";\r\n for (const car of nomeAux) {\r\n if (!Vocale(car.toUpperCase())) {\r\n nomeCondensato += car;\r\n }\r\n }\r\n\r\n if (nomeCondensato.length < 3) {\r\n for (const car of nome) {\r\n if (Vocale(car.toUpperCase())) {\r\n nomeCondensato += car;\r\n }\r\n }\r\n }\r\n\r\n if (nomeCondensato.length < 3) {\r\n for (var i = 0; i < (3 - nomeCondensato.Length); i++) {\r\n nomeCondensato += \"X\";\r\n }\r\n }\r\n\r\n // verifico la coerenza\r\n if (nomeCondensato.length >= 3 && nomeCondensato.substring(0, 3).toLowerCase() == cf.substring(0, 3).toLowerCase()) {\r\n return true;\r\n }\r\n\r\n return false;\r\n};\r\n\r\nconst _initialData = {\r\n IdAnagraficaDichiarante: null,\r\n IdAnagraficaConiuge: null,\r\n CodiceFiscaleDichiarante: null,\r\n CognomeDichiarante: null,\r\n NomeDichiarante: null,\r\n CodiceFiscaleConiuge: null,\r\n DenominazioneConiuge: null,\r\n dichiaranteErrato: false,\r\n coniugeErrato: false,\r\n altriErrati: false,\r\n codiciFiscaliDichiarazione: [],\r\n loading: false\r\n};\r\n\r\nclass ModaleCodiceFiscale extends Component {\r\n state = {\r\n ..._initialData\r\n }\r\n\r\n componentWillReceiveProps({ show, data, idDichiarazione, idDichiarazioneConiuge }) {\r\n if (show != this.props.show && show) {\r\n this.setState(data);\r\n this.caricaCodiciFiscali(idDichiarazione, idDichiarazioneConiuge);\r\n }\r\n }\r\n\r\n caricaCodiciFiscali = (idDichiarazione, idDichiarazioneConiuge) => {\r\n this.setState({ loading: true }, () => {\r\n erratiCodiciFiscaliDichiarazione(idDichiarazione, idDichiarazioneConiuge, this.props.annoSelezionato)\r\n .then(res => {\r\n let dichiaranteErrato = res.find(x => x.CodiceFiscale == this.state.CodiceFiscaleDichiarante &&\r\n (x.Stato != EsitoControlloSiatel.DaControllare && x.Stato != EsitoControlloSiatel.ControlloInCorso && x.Stato != EsitoControlloSiatel.Corretto));\r\n let coniugeErrato = res.find(x => x.CodiceFiscale == this.state.CodiceFiscaleConiuge &&\r\n (x.Stato != EsitoControlloSiatel.DaControllare && x.Stato != EsitoControlloSiatel.ControlloInCorso && x.Stato != EsitoControlloSiatel.Corretto));\r\n let altriErrati = res.filter(x => x.CodiceFiscale != this.state.CodiceFiscaleDichiarante && x.CodiceFiscale != this.state.CodiceFiscaleConiuge &&\r\n (x.Stato != EsitoControlloSiatel.DaControllare && x.Stato != EsitoControlloSiatel.ControlloInCorso && x.Stato != EsitoControlloSiatel.Corretto));\r\n this.setState({\r\n codiciFiscaliDichiarazione: res,\r\n dichiaranteErrato: dichiaranteErrato,\r\n coniugeErrato: coniugeErrato,\r\n altriErrati: altriErrati,\r\n NuovoCodiceFiscaleConiuge: coniugeErrato ? coniugeErrato.NuovoCodiceFiscale : '',\r\n NuovoCodiceFiscaleDichiarante: dichiaranteErrato ? dichiaranteErrato.NuovoCodiceFiscale : '',\r\n loading: false\r\n });\r\n });\r\n });\r\n }\r\n\r\n changeForm = data => {\r\n this.setState(data);\r\n }\r\n\r\n annulla = () => {\r\n const { onClose } = this.props;\r\n this.setState(_initialData, () => {\r\n onClose && onClose();\r\n });\r\n }\r\n\r\n modifica = () => {\r\n const { onModifica } = this.props;\r\n if (this.refForm.valida()) {\r\n onModifica && onModifica(this.state);\r\n }\r\n }\r\n\r\n inLavorazione = () => {\r\n const { inLavorazione, onClose } = this.props;\r\n inLavorazione && inLavorazione(this.state);\r\n onClose && onClose();\r\n }\r\n\r\n render() {\r\n const { errore, isLoading, show } = this.props;\r\n const { CodiceFiscaleDichiarante, CognomeDichiarante, NomeDichiarante, CodiceFiscaleConiuge, DenominazioneConiuge,\r\n dichiaranteErrato, coniugeErrato, altriErrati, loading } = this.state;\r\n\r\n return (\r\n \r\n \r\n Correggi codici fiscali\r\n \r\n \r\n
    this.refForm = r}>\r\n \r\n \r\n Dichiarante{dichiaranteErrato && : {dichiaranteErrato.DescrizioneStato}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {dichiaranteErrato &&\r\n \r\n \r\n x.toLowerCase() == this.state.CodiceFiscaleDichiarante.toLowerCase() ? \"I codici fiscali devono essere diversi\" : null]} disabled={!dichiaranteErrato} />\r\n \r\n \r\n cognomeCompatibileCodiceFiscale(x, this.state.NuovoCodiceFiscaleDichiarante) ? null : \"Cognome non compatibile con il codice fiscale\"]} disabled={!dichiaranteErrato} />\r\n \r\n \r\n nomeCompatibileCodiceFiscale(x, this.state.NuovoCodiceFiscaleDichiarante) ? null : \"Nome non compatibile con il codice fiscale\"]} disabled={!dichiaranteErrato} />\r\n \r\n \r\n }\r\n\r\n {CodiceFiscaleConiuge &&\r\n \r\n \r\n Coniuge{coniugeErrato && : {coniugeErrato.DescrizioneStato}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {coniugeErrato &&\r\n \r\n \r\n x.toLowerCase() == this.state.CodiceFiscaleConiuge.toLowerCase() ? \"I codici fiscali devono essere diversi\" : null]} disabled={!coniugeErrato} />\r\n \r\n \r\n cognomeCompatibileCodiceFiscale(x, this.state.NuovoCodiceFiscaleConiuge) ? null : \"Cognome non compatibile con il codice fiscale\"]} disabled={!coniugeErrato} />\r\n \r\n \r\n nomeCompatibileCodiceFiscale(x, this.state.NuovoCodiceFiscaleConiuge) ? null : \"Nome non compatibile con il codice fiscale\"]} disabled={!coniugeErrato} />\r\n \r\n \r\n }\r\n \r\n }\r\n\r\n {altriErrati && altriErrati.length > 0 &&\r\n \r\n \r\n Altri soggetti\r\n \r\n {altriErrati.map((x, i) =>\r\n (\r\n {x.CodiceFiscale}: {x.DescrizioneStato} {x.NuovoCodiceFiscale && ({x.NuovoCodiceFiscale})}\r\n )\r\n )}\r\n \r\n }\r\n \r\n
    \r\n {errore &&\r\n {errore}\r\n }\r\n
    \r\n \r\n \r\n {(coniugeErrato || dichiaranteErrato) &&\r\n \r\n }\r\n {(!coniugeErrato && !dichiaranteErrato) &&\r\n \r\n }\r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nModaleCodiceFiscale.propTypes = {\r\n errore: PropTypes.string,\r\n idDichiarazione: PropTypes.string.isRequired,\r\n idDichiarazioneConiuge: PropTypes.string,\r\n isLoading: PropTypes.bool,\r\n onClose: PropTypes.func,\r\n onModifica: PropTypes.func,\r\n show: PropTypes.bool,\r\n annoSelezionato: PropTypes.number\r\n};\r\n\r\nexport default ModaleCodiceFiscale;","import React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport { Grid, Modal, Button } from 'framework-ui-components';\r\nimport { erratiCodiciFiscaliDichiarazione } from 'apis/setteTrentaApi';\r\nimport { EsitoControlloSiatel } from 'enums';\r\n\r\nconst _initialData = {\r\n IdAnagraficaDichiarante: null,\r\n IdAnagraficaConiuge: null,\r\n CodiceFiscaleDichiarante: null,\r\n CognomeDichiarante: null,\r\n NomeDichiarante: null,\r\n CodiceFiscaleConiuge: null,\r\n DenominazioneConiuge: null,\r\n dichiaranteErrato: false,\r\n coniugeErrato: false,\r\n altriErrati: false,\r\n codiciFiscaliDichiarazione: [],\r\n loading: false\r\n};\r\n\r\nclass ModaleInfoCodiceFiscale extends Component {\r\n state = {\r\n ..._initialData\r\n }\r\n\r\n componentWillReceiveProps({ show, data, idDichiarazione, idDichiarazioneConiuge }) {\r\n if (show != this.props.show && show) {\r\n this.setState(data);\r\n this.caricaCodiciFiscali(idDichiarazione, idDichiarazioneConiuge);\r\n }\r\n }\r\n\r\n caricaCodiciFiscali = (idDichiarazione, idDichiarazioneConiuge) => {\r\n this.setState({ loading: true }, () => {\r\n erratiCodiciFiscaliDichiarazione(idDichiarazione, idDichiarazioneConiuge,this.props.annoSelezionato)\r\n .then(res => {\r\n let dichiaranteErrato = res.find(x => x.CodiceFiscale == this.state.CodiceFiscaleDichiarante &&\r\n (x.Stato != EsitoControlloSiatel.DaControllare && x.Stato != EsitoControlloSiatel.ControlloInCorso && x.Stato != EsitoControlloSiatel.Corretto));\r\n let coniugeErrato = res.find(x => x.CodiceFiscale == this.state.CodiceFiscaleConiuge &&\r\n (x.Stato != EsitoControlloSiatel.DaControllare && x.Stato != EsitoControlloSiatel.ControlloInCorso && x.Stato != EsitoControlloSiatel.Corretto));\r\n let altriErrati = res.filter(x => x.CodiceFiscale != this.state.CodiceFiscaleDichiarante && x.CodiceFiscale != this.state.CodiceFiscaleConiuge &&\r\n (x.Stato != EsitoControlloSiatel.DaControllare && x.Stato != EsitoControlloSiatel.ControlloInCorso && x.Stato != EsitoControlloSiatel.Corretto));\r\n this.setState({\r\n codiciFiscaliDichiarazione: res,\r\n dichiaranteErrato: dichiaranteErrato,\r\n coniugeErrato: coniugeErrato,\r\n altriErrati: altriErrati,\r\n loading: false\r\n });\r\n });\r\n });\r\n }\r\n\r\n annulla = () => {\r\n const { onClose } = this.props;\r\n this.setState(_initialData, () => {\r\n onClose && onClose();\r\n });\r\n }\r\n\r\n correggi = () => {\r\n const { onCorreggi, onClose } = this.props;\r\n\r\n onCorreggi && onCorreggi();\r\n onClose();\r\n }\r\n\r\n riapri = () => {\r\n const { onRiapri, onClose } = this.props;\r\n onRiapri && onRiapri();\r\n onClose();\r\n }\r\n\r\n visualizza = () => {\r\n const { onVisualizza } = this.props;\r\n onVisualizza && onVisualizza();\r\n }\r\n\r\n render() {\r\n\r\n const { isLoading, show } = this.props;\r\n const { dichiaranteErrato, coniugeErrato, altriErrati, loading } = this.state;\r\n const width = \"6\";\r\n\r\n return (\r\n \r\n \r\n Dichiarazione scartata per codici fiscali\r\n \r\n \r\n \r\n \r\n \r\n Questa dichiarazione è stata scartata a causa di errori nei codici fiscali contenuti.\r\n \r\n \r\n \r\n {(dichiaranteErrato || coniugeErrato) &&\r\n \r\n Sono presenti errori nei codici fiscali del {dichiaranteErrato ? dichiarante : coniuge} {dichiaranteErrato && coniugeErrato && e del coniuge} {altriErrati && altriErrati.length > 0 && , dei familiari o del sostituto d'imposta}.\r\n\r\n Correggi questi errori.\r\n

    \r\n
    \r\n }\r\n\r\n {!dichiaranteErrato && !coniugeErrato && altriErrati && altriErrati.length > 0 &&\r\n \r\n Sono presenti errori nei codici fiscali dei familiari o del sostituto d'imposta
    \r\n {altriErrati.map((x, i) =>\r\n (\r\n {x.CodiceFiscale}: {x.DescrizioneStato} {x.NuovoCodiceFiscale && ({x.NuovoCodiceFiscale})}\r\n )\r\n )}\r\n

    \r\n
    \r\n }\r\n\r\n \r\n Visualizza la dichiarazione per identificare gli errori.\r\n

    \r\n
    \r\n
    \r\n \r\n {(dichiaranteErrato || coniugeErrato) &&\r\n \r\n \r\n \r\n }\r\n\r\n {!dichiaranteErrato && !coniugeErrato && altriErrati && altriErrati.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\nModaleInfoCodiceFiscale.propTypes = {\r\n errore: PropTypes.string,\r\n idDichiarazione: PropTypes.string.isRequired,\r\n idDichiarazioneConiuge: PropTypes.string,\r\n isLoading: PropTypes.bool,\r\n onClose: PropTypes.func,\r\n onModifica: PropTypes.func,\r\n show: PropTypes.bool,\r\n annoSelezionato:PropTypes.number\r\n};\r\n\r\nexport default ModaleInfoCodiceFiscale;","\"use strict\";\r\n\r\nimport React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Button, Form, Grid, Checkbox, Input, Modal, Panel } from 'framework-ui-components';\r\nimport { SnackbarWrapper as SnackbarManager } from 'framework-ui-components/Components/Snackbar';\r\nimport { datiRiduzioneAcconto, stampaRiduzioneAcconto } from 'apis/setteTrentaApi';\r\n\r\nfunction base64ToArrayBuffer(base64) {\r\n var binaryString = window.atob(base64);\r\n var binaryLen = binaryString.length;\r\n var bytes = new Uint8Array(binaryLen);\r\n for (var i = 0; i < binaryLen; i++) {\r\n var ascii = binaryString.charCodeAt(i);\r\n bytes[i] = ascii;\r\n }\r\n return bytes;\r\n}\r\n\r\nfunction saveByteArray(reportName, byte) {\r\n var blob = new Blob([byte]);\r\n var link = document.createElement('a');\r\n link.href = window.URL.createObjectURL(blob);\r\n var fileName = reportName + \".pdf\";\r\n link.download = fileName;\r\n link.click();\r\n};\r\n\r\nclass ModaleRiduzioneAcc extends Component {\r\n\r\n state = {\r\n idDichiarazione: this.props.idDichiarazione,\r\n annullareIrpef: false,\r\n ridurreIrpef: false,\r\n importoIrpef: null,\r\n annullareCedolare: false,\r\n ridurreCedolare: false,\r\n importoCedolare: null,\r\n annullareIrpefConiuge: false,\r\n ridurreIrpefConiuge: false,\r\n importoIrpefConiuge: null,\r\n annullareCedolareConiuge: false,\r\n ridurreCedolareConiuge: false,\r\n importoCedolareConiuge: null,\r\n descrizioneSostituto: \"\",\r\n senzaSostituto: false,\r\n dichiarante: \"\",\r\n secondoAccontoIRPEF: 0,\r\n secondoAccontoCedolareSecca: 0,\r\n coniuge: \"\",\r\n secondoAccontoIRPEFConiuge: 0,\r\n secondoAccontoCedolareSeccaConiuge: 0,\r\n abilitaStampa: false,\r\n loadModal: true\r\n }\r\n\r\n componentDidMount() {\r\n datiRiduzioneAcconto(this.props.idDichiarazione, this.props.annoSelezionato)\r\n .then(res => {\r\n if (res != null) {\r\n this.setState({\r\n loadModal: false,\r\n descrizioneSostituto: res.DescrizioneSostituto,\r\n senzaSostituto: res.SenzaSostituto,\r\n dichiarante: res.DescrizioneDichiarante,\r\n secondoAccontoIRPEF: res.SecondoAccontoIRPEF,\r\n secondoAccontoCedolareSecca: res.SecondoAccontoCedolareSecca,\r\n coniuge: res.DescrizioneConiuge,\r\n secondoAccontoIRPEFConiuge: res.SecondoAccontoIRPEFConiuge,\r\n secondoAccontoCedolareSeccaConiuge: res.SecondoAccontoCedolareSeccaConiuge\r\n });\r\n } else {\r\n SnackbarManager.notifyError(\"Errore lettura dati dichiarazione\");\r\n this.props.onClose();\r\n }\r\n });\r\n }\r\n\r\n stampa = () => {\r\n // correggi valori nulli o errati \r\n let args = Object.assign({}, this.state);\r\n if (!args.importoIrpef) { args.importoIrpef = 0; }\r\n if (!args.importoCedolare) { args.importoCedolare = 0; }\r\n if (!args.importoIrpefConiuge) { args.importoIrpefConiuge = 0; }\r\n if (!args.importoCedolareConiuge) { args.importoCedolareConiuge = 0; }\r\n\r\n let cfDichiarante = \"\";\r\n try {\r\n cfDichiarante = args.dichiarante.match(/\\(([^)]+)\\)/)[1];\r\n } catch (e) { }\r\n\r\n if (this.form.valida()) {\r\n args.Anno = this.props.annoSelezionato;\r\n stampaRiduzioneAcconto(args, this.props.annoSelezionato)\r\n .then((a) => this.showFile(a, cfDichiarante))\r\n .then(() => {\r\n this.setState({ loadModal: false });\r\n this.props.onClose();\r\n });\r\n this.setState({ loadModal: true });\r\n }\r\n }\r\n\r\n showFile = (res, cfDichiarante) => {\r\n let sampleArr = base64ToArrayBuffer(res);\r\n saveByteArray(\"ridAcc\" + cfDichiarante, sampleArr);\r\n }\r\n\r\n handleChange = data => {\r\n if (data.annullareIrpef) {\r\n data.ridurreIrpef = false;\r\n data.importoIrpef = null;\r\n }\r\n if (data.ridurreIrpef) {\r\n data.annullareIrpef = false;\r\n }\r\n\r\n if (data.annullareCedolare) {\r\n data.ridurreCedolare = false;\r\n data.importoCedolare = null;\r\n }\r\n if (data.ridurreCedolare) {\r\n data.annullareCedolare = false;\r\n }\r\n\r\n if (data.annullareIrpefConiuge) {\r\n data.ridurreIrpefConiuge = false;\r\n data.importoIrpefConiuge = null;\r\n }\r\n if (data.ridurreIrpefConiuge) {\r\n data.annullareIrpefConiuge = false;\r\n }\r\n\r\n if (data.annullareCedolareConiuge) {\r\n data.ridurreCedolareConiuge = false;\r\n data.importoCedolareConiuge = null;\r\n }\r\n if (data.ridurreCedolareConiuge) {\r\n data.annullareCedolareConiuge = false;\r\n }\r\n\r\n this.setState(data);\r\n }\r\n\r\n validaImportoIrpef() {\r\n return [\r\n (x, y) => { if (this.state.ridurreIrpef && !(x > 0)) { return \"Se acconto vale 0, allora selezionare \\\"Annullamento secondo acconto IRPEF\\\"\"; } else { return null; } },\r\n (x, y) => { if (this.state.ridurreIrpef && (this.state.importoIrpef >= this.state.secondoAccontoIRPEF)) { return \"Valore maggiore o uguale all'importo del secondo/unico acconto IRPEF\"; } else { return null; } }\r\n ];\r\n }\r\n\r\n validaImportoIrpefConiuge() {\r\n return [\r\n (x, y) => { if (this.state.ridurreIrpefConiuge && !(x > 0)) { return \"Se acconto vale 0, allora selezionare \\\"Annullamento secondo acconto IRPEF\\\"\"; } else { return null; } },\r\n (x, y) => { if (this.state.ridurreIrpefConiuge && (x >= this.state.secondoAccontoIRPEFConiuge)) { return \"Valore maggiore o uguale all'importo del secondo/unico acconto IRPEF\"; } else { return null; } }\r\n ];\r\n }\r\n\r\n validaImportoCedolare() {\r\n return [\r\n (x, y) => { if (this.state.ridurreCedolare && !(x > 0)) { return \"Se acconto vale 0, allora selezionare \\\"Annullamento secondo acconto IRPEF\\\"\"; } else { return null; } },\r\n (x, y) => { if (this.state.ridurreCedolare && (x >= this.state.secondoAccontoCedolareSecca)) { return \"Valore maggiore o uguale all'importo del secondo/unico acconto IRPEF\"; } else { return null; } }\r\n ];\r\n }\r\n\r\n validaImportoCedolareConiuge() {\r\n return [\r\n (x, y) => { if (this.state.ridurreCedolareConiuge && !(x > 0)) { return \"Se acconto vale 0, allora selezionare \\\"Annullamento secondo acconto IRPEF\\\"\"; } else { return null; } },\r\n (x, y) => { if (this.state.ridurreCedolareConiuge && (x >= this.state.secondoAccontoCedolareSeccaConiuge)) { return \"Valore maggiore o uguale all'importo del secondo/unico acconto IRPEF\"; } else { return null; } }\r\n ];\r\n }\r\n\r\n validaForm = e => {\r\n this.form.valida();\r\n }\r\n\r\n render() {\r\n const { showModal, onClose, isLoading } = this.props;\r\n const {\r\n loadModal,\r\n descrizioneSostituto,\r\n senzaSostituto,\r\n\r\n dichiarante,\r\n secondoAccontoIRPEF,\r\n annullareIrpef,\r\n ridurreIrpef,\r\n importoIrpef,\r\n secondoAccontoCedolareSecca,\r\n annullareCedolare,\r\n ridurreCedolare,\r\n importoCedolare,\r\n coniuge,\r\n secondoAccontoIRPEFConiuge,\r\n annullareIrpefConiuge,\r\n ridurreIrpefConiuge,\r\n importoIrpefConiuge,\r\n secondoAccontoCedolareSeccaConiuge,\r\n annullareCedolareConiuge,\r\n ridurreCedolareConiuge,\r\n importoCedolareConiuge,\r\n\r\n } = this.state;\r\n\r\n\r\n const abilitaStampa = (ridurreIrpef || annullareIrpef || annullareCedolare || ridurreCedolare || annullareIrpefConiuge || ridurreIrpefConiuge || annullareCedolareConiuge || ridurreCedolareConiuge)\r\n\r\n var mbody = null;\r\n var mfooter = null;\r\n if (senzaSostituto) {\r\n\r\n mbody = (\r\n \r\n \r\n Non e' possibile generare la lettera di annullamento/riduzione secondo acconto in quanto la dichiarazione e' senza sostituto d'imposta: e' sufficiente modificare l'importo dell'acconto nell'F24 oppure non versarlo\r\n \r\n \r\n );\r\n mfooter = (\r\n \r\n \r\n \r\n );\r\n\r\n } else if (secondoAccontoIRPEF == 0 && secondoAccontoCedolareSecca == 0\r\n && secondoAccontoIRPEFConiuge == 0 && secondoAccontoCedolareSeccaConiuge == 0) {\r\n\r\n mbody = (\r\n \r\n \r\n Non e' possibile generare la lettera di annullamento/riduzione secondo acconto in quanto la dichiarazione non presenta nessun secondo acconto IRPEF o cedolare secca\r\n \r\n \r\n );\r\n mfooter = (\r\n \r\n \r\n \r\n );\r\n\r\n } else {\r\n\r\n mbody = (\r\n \r\n
    this.form = r}>\r\n

    Sostituto d'imposta: {descrizioneSostituto}

    \r\n {(secondoAccontoIRPEF > 0 || secondoAccontoCedolareSecca > 0) &&
    \r\n
    \r\n

    Dichiarante: {dichiarante}

    \r\n
    \r\n }\r\n\r\n {secondoAccontoIRPEF > 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 {secondoAccontoCedolareSecca > 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 {coniuge && (secondoAccontoIRPEFConiuge > 0 || secondoAccontoCedolareSeccaConiuge > 0) &&
    \r\n
    \r\n

    Coniuge: {coniuge}

    \r\n
    \r\n }\r\n {coniuge && secondoAccontoIRPEFConiuge > 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 {coniuge && secondoAccontoCedolareSeccaConiuge > 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 mfooter = (\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n Lettera riduzione/annullamento secondo acconto\r\n {mbody}\r\n {mfooter}\r\n \r\n );\r\n }\r\n}\r\n//ModaleRiduzioneAcc.propTypes = {\r\n// datiIniziali: PropTypes.object,\r\n// isLoading: PropTypes.bool,\r\n// messaggioErrore: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]),\r\n// messaggioErrore: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]),\r\n// onAnnulla: PropTypes.func.isRequired,\r\n// onCreaNuova: PropTypes.func,\r\n// onRipristinaEliminata: PropTypes.func,\r\n// showModal: PropTypes.bool.isRequired,\r\n// tipoDichiarazione: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\r\n// ufficioSelezionato: PropTypes.string\r\n//};\r\n\r\nexport default ModaleRiduzioneAcc;","\r\n\r\nimport React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Form, Grid, Input, Modal, Button,\r\n} from 'framework-ui-components';\r\n\r\nimport {modificaSegnalibro} from \"../../../apis/setteTrentaApi\";\r\n\r\nclass ModaleStampa extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n segnalibro: this.props.segnalibro,\r\n };\r\n }\r\n\r\n annulla = () => {\r\n this.props.onClose && this.props.onClose();\r\n }\r\n\r\n modifica = () => {\r\n modificaSegnalibro(this.props.idDichiarazione,this.state.segnalibro).then(x => {\r\n this.annulla();\r\n })\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n Modifica segnalibro\r\n \r\n
    this.setState(data)}>\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n
    \r\n\r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nModaleStampa.propTypes = {\r\n segnalibro: PropTypes.string,\r\n idDichiarazione: PropTypes.number,\r\n};\r\n\r\nexport default ModaleStampa;\r\n","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\n\r\nconst checkServizio = servizio => (WrappedComponent) => {\r\n class Wrapper extends Component {\r\n render() {\r\n const { servizioAttivo, ...others } = this.props;\r\n return (\r\n \r\n );\r\n }\r\n }\r\n\r\n const mapStoreToProps = (store) => {\r\n const serviziUfficio = store.utente.ufficioSelezionato.Servizi;\r\n\r\n return {\r\n servizioAttivo: !!serviziUfficio.find(x => x.CodiceServizio === servizio && x.StatoAttivazione === 3),\r\n accessoNonConsentito: !!!serviziUfficio.find(x => x.CodiceServizio === servizio) || !!!serviziUfficio.find(x => x.CodiceServizio === servizio && (x.StatoAttivazione == 3 || x.StatoAttivazione == 4))\r\n };\r\n };\r\n\r\n Wrapper.displayName = `checkServizio(${WrappedComponent.displayName || WrappedComponent.name})`;\r\n\r\n return connect(mapStoreToProps, null, null, { pure: false, withRef: true })(Wrapper);\r\n};\r\n\r\nexport default checkServizio;\r\n","/* eslint-disable jsx-a11y/click-events-have-key-events */\r\n/* eslint-disable jsx-a11y/no-noninteractive-element-interactions */\r\n/* eslint-disable max-len */\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport Icon from 'framework-ui-components/Components/Icons/Icon';\r\nimport { PopOver } from 'framework-ui-components';\r\n\r\nconst NOOP = () => { };\r\n\r\n// con il framerow-ui-components 1.8.15 è possibile usare l'icona standard\r\nconst FileIcon = Icon(\r\n ,\r\n '0 0 18 18',\r\n 'FileIcon',\r\n);\r\n\r\nexport default function CellaNumeroNoteDichiarazione({ numeroNote, onClick }) {\r\n // eventuale Badge {numeroNote}\r\n const tooltip = numeroNote === 1 ? 'Esiste una nota' : `Esistono ${numeroNote} note`;\r\n return (\r\n \r\n {numeroNote > 0 ? (\r\n
    \r\n \r\n \r\n \r\n
    \r\n ) : undefined}\r\n \r\n );\r\n}\r\n\r\nCellaNumeroNoteDichiarazione.propTypes = {\r\n numeroNote: PropTypes.number,\r\n onClick: PropTypes.func,\r\n};\r\n\r\nCellaNumeroNoteDichiarazione.defaultProps = {\r\n numeroNote: 0,\r\n onClick: NOOP,\r\n};\r\n","/* eslint react/no-multi-comp: \"off\" */\r\nimport React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport {\r\n Confirm, OptionDropdown, ODataTable, Spinner, Formatter, Modal, Button, PopOver, Highlighter,\r\n} from 'framework-ui-components';\r\nimport SuccessoIcon from 'framework-ui-components/Components/Icons/SuccessoIcon';\r\nimport ErroreIcon from 'framework-ui-components/Components/Icons/ErroreIcon';\r\nimport InfoIcon from 'framework-ui-components/Components/Icons/InfoIcon';\r\nimport { SnackbarWrapper as SnackbarManager } from 'framework-ui-components/Components/Snackbar';\r\nimport CollapseIcon from 'framework-ui-components/Components/Icons/CollapseIcon';\r\nimport ExpandIcon from 'framework-ui-components/Components/Icons/ExpandIcon';\r\nimport {\r\n elimina, impostaStatoAnnullata, impostaStatoCompleta, impostaStatoDaControllare, impostaStatoInLavorazione,\r\n stampaF24, stampaParcelle, stampaUfficiale, stampeVarie, modificaAnagraficheDichiarazione,\r\n creaDaAnnoPrecedente\r\n} from 'apis/setteTrentaApi';\r\n\r\nimport TipoDichiarazione from 'enums/TipoDichiarazione';\r\nimport StatoDichiarazione from 'enums/StatoDichiarazione';\r\nimport { startLoadingApplication, stopLoadingApplication } from 'actions/applicationActions';\r\nimport Servizi from 'enums/Servizi';\r\n\r\nimport ModaleStorico from '../Shared/ModaleStorico';\r\nimport { capitalizeFirstLetter } from '../../helpers/stringHelper';\r\nimport ModaleCodiceFiscale from './ModaleModifica/ModaleCodiceFiscale';\r\nimport ModaleInfoCodiceFiscale from './ModaleModifica/ModaleInfoCodiceFiscale';\r\nimport ModaleRiduzioneAcc from './ModaleRiduzioneAcc';\r\nimport ModaleModificaSegnalibro from './ModaleModificaSegnalibro';\r\nimport checkServizio from '../../helpers/checkServizio';\r\nimport CellaNumeroNoteDichiarazione from './RigaDichiarazione/CellaNumeroNoteDichiarazione';\r\n\r\nclass ModaleAvviso extends Component {\r\n state = {\r\n show: true,\r\n }\r\n\r\n componentDidMount = () => {\r\n setTimeout(() => { this.refMainButton.refButton.focus(); }, 0);\r\n }\r\n\r\n close = () => {\r\n this.setState({ show: false });\r\n }\r\n\r\n annulla = () => {\r\n const { reject } = this.props;\r\n this.close();\r\n reject();\r\n }\r\n\r\n conferma = () => {\r\n const { resolve } = this.props;\r\n this.close();\r\n resolve();\r\n }\r\n\r\n render = () => (\r\n \r\n
    Attenzione
    \r\n La dichiarazione è stata riportata in lavorazione.
    Ricordati di ritrasmetterla una volta corretta.
    \r\n \r\n \r\n \r\n
    \r\n )\r\n}\r\n\r\nconst Avviso = () => new Promise(((resolve, reject) => {\r\n const reactElement = (\r\n \r\n );\r\n ReactDOM.render(reactElement, document.createElement('div'));\r\n}));\r\n\r\nclass RigaDichiarazione extends Component {\r\n state = {\r\n mostraStorico: false,\r\n visualizzaTrasmissioneManuale: false,\r\n caricando: false,\r\n mostraModaleModifica: false,\r\n mostraModaleInfo: false,\r\n modaleModificaData: null,\r\n messaggioErroreModifica: null,\r\n loadingModaleModifica: false,\r\n modificaSegnalibro: false,\r\n espanso: false,\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n if (this.props.item.Id != prevProps.item.Id) {\r\n this.setState({ espanso: false });\r\n }\r\n }\r\n\r\n apriModaleIntegrativa = () => {\r\n this.props.additionalRowData && this.props.additionalRowData.onApriModaleIntegrativa && this.props.additionalRowData.onApriModaleIntegrativa(this.props.item);\r\n }\r\n\r\n creaDaAnnoPrecedente = (item) => {\r\n this.props.startLoadingApplication();\r\n creaDaAnnoPrecedente(item.CodiceUfficio, item.CodiceFiscale, item.Nome, item.Cognome, TipoDichiarazione.Ordinaria, item.Anno, item.DatiAddizionali.Origine).then((res) => {\r\n if (res.Success) {\r\n // var url = this.props.anniRegistrati.filter(x => x.Anno == this.props.annoSelezionato)[0].Url730;\r\n // window.location.href = url + \"#/Frontespizio/\" + res.IdDichiarazione.split('/')[1];\r\n } else {\r\n SnackbarManager.notifyError(res.DetectedProblems);\r\n }\r\n });\r\n }\r\n\r\n modifica = () => {\r\n const {\r\n anniRegistrati, annoSelezionato, servizioAttivo, item,\r\n } = this.props;\r\n\r\n let visualizza = '';\r\n if (servizioAttivo == false) {\r\n visualizza = 'Visualizza/';\r\n }\r\n\r\n const url = anniRegistrati.filter(x => x.Anno == annoSelezionato)[0].Url730;\r\n if (item.Tipo == TipoDichiarazione.SetteTrentaIntegrativaCodice2) {\r\n window.location.href = `${url}#/SostitutoImposta/${visualizza}${item.IdDichiarazione.split('/')[1]}`;\r\n } else {\r\n window.location.href = `${url}#/Frontespizio/${visualizza}${item.IdDichiarazione.split('/')[1]}`;\r\n }\r\n }\r\n\r\n elimina = () => {\r\n if (this.props.item.DatiAddizionali.Tipologia == 'Co') {\r\n Confirm('Conferma', `Verrà eliminata anche la dichiarazione di ${this.props.item.DatiAddizionali.Coniuge} in quanto risulta congiunta. Se desideri eliminarne solo una, prima devi separare le dichiarazioni.`, 'warning', 'Elimina entrambe').then((x) => {\r\n elimina(this.props.item.IdDichiarazione, this.props.annoSelezionato).then((x) => {\r\n if (!x.Success) {\r\n x.DetectedProblems.unshift(\"Errore durante l'eliminazione della dichiarazione.\");\r\n SnackbarManager.notifyError(x.DetectedProblems);\r\n }\r\n });\r\n });\r\n } else {\r\n Confirm('Conferma', `Sei sicuro di voler eliminare la dichiarazione di ${this.props.item.Dichiarante}?`, 'warning').then((x) => {\r\n elimina(this.props.item.IdDichiarazione, this.props.annoSelezionato).then((x) => {\r\n if (!x.Success) {\r\n x.DetectedProblems.unshift(\"Errore durante l'eliminazione della dichiarazione.\");\r\n SnackbarManager.notifyError(x.DetectedProblems);\r\n }\r\n });\r\n });\r\n }\r\n }\r\n\r\n stampeVarie = () => {\r\n stampeVarie(this.props.item.IdDichiarazione).then((x) => {\r\n if (!x.Success) {\r\n x.DetectedProblems.unshift('Errore durante elaborazione stampe varie.');\r\n SnackbarManager.notifyError(x.DetectedProblems);\r\n }\r\n });\r\n }\r\n\r\n stampaUfficiale = () => {\r\n stampaUfficiale(this.props.item.IdDichiarazione).then((x) => {\r\n if (!x.Success) {\r\n x.DetectedProblems.unshift('Errore durante elaborazione stampa ufficiale');\r\n SnackbarManager.notifyError(x.DetectedProblems);\r\n }\r\n });\r\n }\r\n\r\n stampaF24 = () => {\r\n stampaF24(this.props.item.IdDichiarazione).then((x) => {\r\n if (!x.Success) {\r\n x.DetectedProblems.unshift('Errore durante elaborazione stampa F24');\r\n SnackbarManager.notifyError(x.DetectedProblems);\r\n }\r\n });\r\n }\r\n\r\n stampaParcelle = () => {\r\n stampaParcelle(this.props.item.IdDichiarazione).then((x) => {\r\n if (!x.Success) {\r\n x.DetectedProblems.unshift('Errore durante elaborazione stampa parcelle');\r\n SnackbarManager.notifyError(x.DetectedProblems);\r\n }\r\n });\r\n }\r\n\r\n apriModaleStorico = () => {\r\n this.setState({ mostraStorico: true });\r\n }\r\n\r\n chiudiModaleStorico = () => {\r\n this.setState({ mostraStorico: false });\r\n }\r\n\r\n apriModaleModificaCodiceFiscale = () => {\r\n const data = {\r\n IdAnagraficaDichiarante: this.props.item.DatiAddizionali.IdAnagraficaDichiarante,\r\n CodiceFiscaleDichiarante: this.props.item.CodiceFiscale,\r\n CognomeDichiarante: this.props.item.Cognome,\r\n NomeDichiarante: this.props.item.Nome,\r\n IdAnagraficaConiuge: this.props.item.DatiAddizionali.IdAnagraficaConiuge,\r\n CodiceFiscaleConiuge: this.props.item.DatiAddizionali.CodiceFiscaleConiuge,\r\n DenominazioneConiuge: this.props.item.DatiAddizionali.Coniuge,\r\n };\r\n this.setState({ mostraModaleModifica: true, modaleModificaData: data });\r\n }\r\n\r\n chiudiModaleModifica = () => {\r\n this.setState({ mostraModaleModifica: false, modaleModificaData: null });\r\n }\r\n\r\n apriModaleInfoCodiceFiscale = () => {\r\n const data = {\r\n IdAnagraficaDichiarante: this.props.item.DatiAddizionali.IdAnagraficaDichiarante,\r\n CodiceFiscaleDichiarante: this.props.item.CodiceFiscale,\r\n CognomeDichiarante: this.props.item.Cognome,\r\n NomeDichiarante: this.props.item.Nome,\r\n IdAnagraficaConiuge: this.props.item.DatiAddizionali.IdAnagraficaConiuge,\r\n CodiceFiscaleConiuge: this.props.item.DatiAddizionali.CodiceFiscaleConiuge,\r\n DenominazioneConiuge: this.props.item.DatiAddizionali.Coniuge,\r\n };\r\n this.setState({ mostraModaleInfo: true, modaleModificaData: data });\r\n }\r\n\r\n apriModaleRiduzioneAcc = () => {\r\n this.setState({ mostraModaleRiduzioneAcc: true });\r\n }\r\n\r\n chiudiModaleInfo = () => {\r\n this.setState({ mostraModaleInfo: false });\r\n }\r\n\r\n chiudiModaleRiduzioneAcc = () => {\r\n this.setState({ mostraModaleRiduzioneAcc: false });\r\n }\r\n\r\n // #region Stati\r\n\r\n controllaESettaCompleta = () => {\r\n this.settaCompleta();\r\n }\r\n\r\n settaCompleta = () => {\r\n Confirm('Cambio stato', 'Portare la dichiarazione in Completa?', 'warning')\r\n .then((x) => {\r\n this.props.startLoadingApplication();\r\n impostaStatoCompleta(this.props.item.IdDichiarazione, this.props.annoSelezionato)\r\n .then((x) => {\r\n if (!x.Success) {\r\n x.DetectedProblems.unshift('Errore durante il completamento della dichiarazione');\r\n SnackbarManager.notifyError(x.DetectedProblems);\r\n this.props.stopLoadingApplication();\r\n }\r\n });\r\n });\r\n }\r\n\r\n controllaESettaDaControllare = () => {\r\n this.settaDaControllare();\r\n }\r\n\r\n settaDaControllare = () => {\r\n Confirm('Cambio stato', 'Portare la dichiarazione in Trasmessa a CGN?', 'warning')\r\n .then((x) => {\r\n this.props.startLoadingApplication();\r\n impostaStatoDaControllare(this.props.item.IdDichiarazione, this.props.annoSelezionato)\r\n .then((x) => {\r\n if (!x.Success) {\r\n x.DetectedProblems.unshift('Errore durante impostazione stato Da Inviare');\r\n SnackbarManager.notifyError(x.DetectedProblems);\r\n this.props.stopLoadingApplication();\r\n }\r\n });\r\n });\r\n }\r\n\r\n settaInLavorazione = () => {\r\n Confirm('Cambio stato', 'Portare la dichiarazione In Lavorazione?', 'warning')\r\n .then((x) => {\r\n this.props.startLoadingApplication();\r\n impostaStatoInLavorazione(this.props.item.IdDichiarazione, this.props.annoSelezionato)\r\n .then((x) => {\r\n if (!x.Success) {\r\n x.DetectedProblems.unshift('Errore durante impostazione stato In Lavorazione');\r\n SnackbarManager.notifyError(x.DetectedProblems);\r\n this.props.stopLoadingApplication();\r\n }\r\n });\r\n });\r\n }\r\n\r\n settaAnnullata = () => {\r\n Confirm('Cambio stato', 'Annullare la dichiarazione?', 'warning')\r\n .then((x) => {\r\n this.props.startLoadingApplication();\r\n impostaStatoAnnullata(this.props.item.IdDichiarazione, this.props.annoSelezionato)\r\n .then((x) => {\r\n if (!x.Success) {\r\n x.DetectedProblems.unshift('Errore durante impostazione stato Annullata');\r\n SnackbarManager.notifyError(x.DetectedProblems);\r\n this.props.stopLoadingApplication();\r\n }\r\n });\r\n });\r\n }\r\n\r\n // #endregion\r\n\r\n visualizzaDichiarazione = () => {\r\n const { anniRegistrati, annoSelezionato, item } = this.props;\r\n\r\n if (item.Stato == StatoDichiarazione.Importabile) {\r\n this.creaDaAnnoPrecedente(item);\r\n } else if (item.Stato == StatoDichiarazione.InLavorazione || (item.Stato == StatoDichiarazione.InLavorazione && item.HaErrori)\r\n || item.Stato == StatoDichiarazione.AnnoPrecedente || item.Stato == StatoDichiarazione.ScartataPrecompilato) {\r\n this.modifica();\r\n } else if (item.Stato == StatoDichiarazione.ScartataCF) {\r\n this.apriModaleInfoCodiceFiscale();\r\n } else {\r\n const url = anniRegistrati.filter(x => x.Anno == annoSelezionato)[0].Url730;\r\n if (item.Tipo == TipoDichiarazione.SetteTrentaIntegrativaCodice2) {\r\n window.location.href = `${url}#/SostitutoImposta/Visualizza/${item.IdDichiarazione.split('/')[1]}`;\r\n } else {\r\n window.location.href = `${url}#/Frontespizio/Visualizza/${item.IdDichiarazione.split('/')[1]}`;\r\n }\r\n }\r\n }\r\n\r\n trasmettiManualmente = () => {\r\n trasmettiManualmente(this.props.item.IdDichiarazione)\r\n .then((x) => {\r\n if (x.Success) {\r\n SnackbarManager.notifySuccess('Dichiarazione avanzata a Trasmessa');\r\n } else {\r\n SnackbarManager.notifyError(x.DetectedProblems);\r\n }\r\n });\r\n }\r\n\r\n modificaCodiceFiscale = (data) => {\r\n const cmd = {\r\n CodiceUfficio: this.props.item.CodiceUfficio,\r\n IdAnagraficaDichiarante: data.dichiaranteErrato ? data.IdAnagraficaDichiarante : null,\r\n CodiceFiscaleDichiarante: data.dichiaranteErrato ? data.NuovoCodiceFiscaleDichiarante : null,\r\n CognomeDichiarante: data.dichiaranteErrato ? data.NuovoCognomeDichiarante : null,\r\n NomeDichiarante: data.dichiaranteErrato ? data.NuovoNomeDichiarante : null,\r\n IdAnagraficaConiuge: data.coniugeErrato ? data.IdAnagraficaConiuge : null,\r\n CodiceFiscaleConiuge: data.coniugeErrato ? data.NuovoCodiceFiscaleConiuge : null,\r\n CognomeConiuge: data.coniugeErrato ? data.NuovoCognomeConiuge : null,\r\n NomeConiuge: data.coniugeErrato ? data.NuovoNomeConiuge : null,\r\n Anno: this.props.annoSelezionato,\r\n };\r\n\r\n if (cmd.IdAnagraficaConiuge || cmd.IdAnagraficaDichiarante) {\r\n this.setState({ loadingModaleModifica: true }, () => {\r\n modificaAnagraficheDichiarazione(cmd)\r\n .then((res) => {\r\n if (res.Success) {\r\n setTimeout(() => { // rallento l'esecuzione dei comandi per evitare concorrenza nell'aggiornamento di anagrafiche\r\n impostaStatoInLavorazione(this.props.item.IdDichiarazione, this.props.annoSelezionato)\r\n .then((x) => {\r\n if (!x.Success) {\r\n x.DetectedProblems.unshift('Errore durante impostazione stato In Lavorazione');\r\n SnackbarManager.notifyError(x.DetectedProblems);\r\n } else {\r\n Avviso();\r\n }\r\n });\r\n }, 400);\r\n this.setState({ loadingModaleModifica: false, messaggioErroreModifica: null, mostraModaleModifica: false });\r\n } else {\r\n this.setState({ loadingModaleModifica: false, messaggioErroreModifica: res.DetectedProblems });\r\n }\r\n });\r\n });\r\n }\r\n }\r\n\r\n // crea / modifica ANF\r\n urlAssegnoNucleoFamiliare(idDichiarazione, modifica = false) {\r\n const { anniRegistrati, annoSelezionato } = this.props;\r\n const url = anniRegistrati.find(x => x.Anno == annoSelezionato).UrlANF;\r\n const [id] = idDichiarazione.match(/\\d+(\\-[A-Z])?/);\r\n return `${url}#/Frontespizio/${!modifica ? 'Visualizza/' : ''}${id}`;\r\n }\r\n\r\n apriDichiarazione(id, modifica) {\r\n window.open(this.urlAssegnoNucleoFamiliare(id, modifica), '_blank');\r\n return Promise.resolve();\r\n }\r\n\r\n scaricaRicevutaAdE = () => {\r\n const { additionalRowData: { scaricaRicevutaAdE }, item } = this.props;\r\n scaricaRicevutaAdE && scaricaRicevutaAdE(item);\r\n }\r\n\r\n render() {\r\n const {\r\n additionalRowData, item, annoSelezionato, anniRegistrati,\r\n } = this.props;\r\n const datiAggiuntivi = item.DatiAddizionali || {};\r\n const {\r\n caricando, mostraStorico,\r\n mostraModaleModifica, modaleModificaData, messaggioErroreModifica, loadingModaleModifica,\r\n mostraModaleInfo, mostraModaleRiduzioneAcc, espanso, modificaSegnalibro,\r\n } = this.state;\r\n\r\n const url = anniRegistrati.filter(x => x.Anno == annoSelezionato)[0].Url730;\r\n\r\n return (\r\n \r\n {(item.Stato != StatoDichiarazione.Importabile || annoSelezionato > 2019) && }\r\n \r\n \r\n {espanso &&
    }\r\n \r\n \r\n \r\n {espanso &&
    }\r\n \r\n \r\n {datiAggiuntivi && datiAggiuntivi.Tipologia && capitalizeFirstLetter(datiAggiuntivi.Tipologia)}\r\n \r\n \r\n \r\n \r\n \r\n {StatoDichiarazione.stringify(item.Stato, item.HaErrori)}\r\n \r\n\r\n \r\n {TipoDichiarazione.stringify(item.Tipo)}\r\n \r\n \r\n {item.Segnalibro}\r\n \r\n\r\n {\r\n (additionalRowData.tabNr == 3 || additionalRowData.tabNr == 0)\r\n && (\r\n \r\n {((item.Stato == StatoDichiarazione.DaInviare\r\n || item.Stato == StatoDichiarazione.TrasmessaAutomaticamente || item.Stato == StatoDichiarazione.TrasmessaManualmente\r\n || item.Stato == StatoDichiarazione.DaTrasmettere || item.Stato == StatoDichiarazione.DaAnnullare) && datiAggiuntivi && datiAggiuntivi.StampaUfficialeEffettuata == 'True')\r\n && }\r\n {((item.Stato == StatoDichiarazione.DaInviare\r\n || item.Stato == StatoDichiarazione.TrasmessaAutomaticamente || item.Stato == StatoDichiarazione.TrasmessaManualmente\r\n || item.Stato == StatoDichiarazione.DaTrasmettere || item.Stato == StatoDichiarazione.DaAnnullare) && datiAggiuntivi && datiAggiuntivi.StampaUfficialeEffettuata == 'False')\r\n && }\r\n {item.Stato == StatoDichiarazione.DaControllare\r\n && }\r\n \r\n )\r\n }\r\n\r\n \r\n \r\n \r\n \r\n \r\n {caricando\r\n ? \r\n : (\r\n \r\n {false\r\n && annoSelezionato > 2019 && item.Stato === StatoDichiarazione.TrasmessaAutomaticamente\r\n && Scarica ricevuta AdE}\r\n\r\n {/* Modifica */}\r\n {\r\n this.props.servizioAttivo == true && (item.Stato == StatoDichiarazione.InLavorazione || (item.Stato == StatoDichiarazione.InLavorazione && item.HaErrori)\r\n || item.Stato == StatoDichiarazione.AnnoPrecedente || item.Stato == StatoDichiarazione.completa)\r\n && Modifica\r\n }\r\n\r\n {/* Visualizza */}\r\n {(this.props.servizioAttivo == false\r\n || (item.Stato == StatoDichiarazione.ScartataCF || item.Stato == StatoDichiarazione.ScartataAudit || item.Stato == StatoDichiarazione.Annullata\r\n || item.Stato == StatoDichiarazione.ScartataRicalcolo || item.Stato == StatoDichiarazione.ScartataEnte || item.Stato == StatoDichiarazione.BloccataIntegrativa\r\n || item.Stato == StatoDichiarazione.AnnullataAE || item.Stato == StatoDichiarazione.DaAnnullare || item.Stato == StatoDichiarazione.TrasmessaAutomaticamente\r\n || item.Stato == StatoDichiarazione.DaInviare || item.Stato == StatoDichiarazione.DaTrasmettere || item.Stato == StatoDichiarazione.DaControllare))\r\n && { window.location.href = url + (this.props.item.Tipo == TipoDichiarazione.SetteTrentaIntegrativaCodice2 ? '#/SostitutoImposta/Visualizza/' : '#/Frontespizio/Visualizza/') + this.props.item.IdDichiarazione.split('/')[1]; }}>Visualizza\r\n }\r\n\r\n {/* Modifica CF */}\r\n {this.props.servizioAttivo == true && item.Stato == StatoDichiarazione.ScartataCF\r\n && Correggi codici fiscali\r\n }\r\n\r\n {this.props.servizioAttivo == true && this.setState({ modificaSegnalibro: true })}>Modifica segnalibro}\r\n\r\n {/* Stampa Riduzione secondo acconto - da riabilitare quando corretto */}\r\n\r\n {\r\n this.props.servizioAttivo == true && item.Tipo != TipoDichiarazione.SetteTrentaIntegrativaCodice3 && (item.Stato == StatoDichiarazione.TrasmessaAutomaticamente || item.Stato == StatoDichiarazione.DaTrasmettere || item.Stato == StatoDichiarazione.DaInviare)\r\n && { this.apriModaleRiduzioneAcc(); }}>Lettera di riduzione/annullamento del secondo acconto\r\n }\r\n\r\n {/* Crea integrativa */}\r\n {\r\n this.props.servizioAttivo\r\n && additionalRowData.impostazioni\r\n && additionalRowData.impostazioni.CampagnaIntegrativiAperta\r\n && ((item.Tipo === TipoDichiarazione.Ordinaria && [StatoDichiarazione.Completa, StatoDichiarazione.TrasmessaAutomaticamente].includes(item.Stato))\r\n || (item.Tipo === TipoDichiarazione.SetteTrentaIntegrativaCodice2 && StatoDichiarazione.TrasmessaAutomaticamente === item.Stato))\r\n && Crea integrativa\r\n }\r\n\r\n {/* Setta come completa */}\r\n {this.props.servizioAttivo == true && (item.Stato == StatoDichiarazione.InLavorazione && !item.HaErrori)\r\n && Imposta come \"Completa\"\r\n }\r\n {/* Setta come trasmessa cgn */}\r\n {this.props.servizioAttivo == true && (item.Stato == StatoDichiarazione.Completa || item.Stato == StatoDichiarazione.Annullata)\r\n && Imposta come \"Trasmessa CGN\"\r\n }\r\n {/* Setta come In Lavorazione */}\r\n {this.props.servizioAttivo == true && (item.Stato == StatoDichiarazione.Completa || item.Stato == StatoDichiarazione.ScartataAudit\r\n || item.Stato == StatoDichiarazione.ScartataPrecompilato\r\n || item.Stato == StatoDichiarazione.Annullata || item.Stato == StatoDichiarazione.ScartataRicalcolo\r\n || item.Stato == StatoDichiarazione.AnnullataAE)\r\n\r\n && Imposta come \"In Lavorazione\"\r\n\r\n }\r\n {/* Setta come Annullata */}\r\n {this.props.servizioAttivo == true && (item.Stato == StatoDichiarazione.DaControllare || item.Stato == StatoDichiarazione.DaInviare)\r\n && Imposta come \"Annullata\"\r\n }\r\n {/* Storico: sempre presente */}\r\n Storico\r\n {/* Elimina */}\r\n {this.props.servizioAttivo == true && (item.Stato == StatoDichiarazione.InLavorazione || (item.Stato == StatoDichiarazione.InLavorazione && item.HaErrori)\r\n || item.Stato == StatoDichiarazione.AnnoPrecedente || item.Stato == StatoDichiarazione.Completa\r\n || item.Stato == StatoDichiarazione.Annullata || item.Stato == StatoDichiarazione.AnnullataAE)\r\n && Elimina\r\n }\r\n \r\n )\r\n }\r\n\r\n\r\n {mostraStorico\r\n && (\r\n \r\n )}\r\n\r\n \r\n\r\n window.location.href = `${url}#/Frontespizio/Visualizza/${item.IdDichiarazione.split('/')[1]}`}\r\n errore={messaggioErroreModifica}\r\n isLoading={loadingModaleModifica}\r\n annoSelezionato={annoSelezionato}\r\n />\r\n\r\n {mostraModaleRiduzioneAcc && (\r\n \r\n )\r\n }\r\n\r\n {modificaSegnalibro && (\r\n this.setState({ modificaSegnalibro: false })}\r\n segnalibro={item.Segnalibro}\r\n />\r\n )}\r\n \r\n \r\n {espanso ? : }\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nRigaDichiarazione.propTypes = {\r\n additionalRowData: PropTypes.object,\r\n item: PropTypes.object,\r\n startLoadingApplication: PropTypes.func,\r\n stopLoadingApplication: PropTypes.func,\r\n};\r\n\r\nconst mapStoreToProps = store => ({\r\n annoSelezionato: store.dichiarativi.annoSelezionato,\r\n anniRegistrati: store.dichiarativi.anniRegistrati.data,\r\n codiceUfficio: store.utente.ufficioSelezionato.CodiceUfficio,\r\n});\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n startLoadingApplication: bindActionCreators(startLoadingApplication, dispatch),\r\n stopLoadingApplication: bindActionCreators(stopLoadingApplication, dispatch),\r\n});\r\n\r\nexport default checkServizio(Servizi['7OL'])(connect(mapStoreToProps, mapDispatchToProps, null, { pure: false, withRef: true })(RigaDichiarazione));\r\n","export const capitalizeFirstLetter = string => string && string.charAt(0).toUpperCase() + string.slice(1).toLowerCase();\r\n","import React, { useMemo, useCallback } 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\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\nconst Radio = ({\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}) => {\r\n const {\r\n onFormChange,\r\n stato,\r\n notifica,\r\n } = useForm(name, () => { }, 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 });\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","const DichiarazioneIntegrativaObbligatorietaProtocollo = {\r\n // / \r\n // / Dichiarazione annullata\r\n // / \r\n NonRichiesto: 0,\r\n\r\n // / \r\n // / Dichiarazione dell'anno precedente\r\n // / \r\n Facoltativo: 1,\r\n\r\n // / \r\n // / Dichiarazione senza errori ma non ancora completata\r\n // / \r\n Obbligatorio: 2,\r\n};\r\n\r\nexport default DichiarazioneIntegrativaObbligatorietaProtocollo;\r\n","import { WebRequest } from 'framework-ui-components';\r\n\r\nexport const cercaAnagraficaInUfficio = (codiceFiscale, codiceUfficio) => WebRequest.get('Anagrafica/CercaAnagraficaInUfficio', { codiceFiscale, codiceUfficio });\r\n\r\nexport const creaAnagraficaPersonaFisica = cmd => WebRequest.post('Anagrafica/CreaPersonaFisica', cmd);\r\n","import { WebRequest } from 'framework-ui-components';\r\n\r\nexport const sostitutoImposta = id => WebRequest.get('api/V1/SostitutoImposta/OttieniSostitutoImpostaDaId', { id });\r\n\r\nexport const sostitutoImpostaDaCodiceFiscale = (codiceFiscale, studio) => WebRequest.get('api/V1/SostitutoImposta/SostitutoImpostaDaCodiceFiscale', { codiceFiscale, studio });\r\n\r\nexport const ottieniSostitutoImposta = (codiceFiscale, codiceUfficio, codiceSede) => WebRequest.get('api/V1/SostitutoImposta/OttieniSostitutoImposta', { codiceFiscale, codiceUfficio, codiceSede });\r\n\r\nexport const creaSostitutoImposta = cmd => WebRequest.post('api/V1/SostitutoImposta/CreaSostitutoImposta', cmd);\r\n\r\nexport const modificaSostitutoImposta = cmd => WebRequest.post('api/V1/SostitutoImposta/ModificaSostitutoImposta', cmd);\r\n\r\nexport const disabilitaSostitutoImposta = id => WebRequest.post('api/V1/SostitutoImposta/DisabilitaSostitutoImposta', {}, { id });\r\n\r\nexport const abilitaSostitutoImposta = id => WebRequest.post('api/V1/SostitutoImposta/AbilitaSostitutoImposta', {}, { id });\r\n\r\nexport const gestioneSostitutiImpostaAbilitata = () => WebRequest.get('api/V1/SostitutoImposta/GestioneSostitutiImpostaAbilitata', {});\r\n\r\nexport const casisticaModificaSostitutiImpostaDaDichiarazioni = (studio, codiceFiscale, codiceSede, anno) => WebRequest.get('api/V1/SostitutoImposta/CasisticaModificaSostitutiImpostaDaDichiarazioni', {\r\n studio, codiceFiscale, codiceSede, anno,\r\n});\r\n\r\nexport const codiceFiscaleAppartieneSostitutoCentralizzato = () => WebRequest.get('api/V1/SostitutoImposta/codiceFiscaleAppartieneSostitutoCentralizzato', {});\r\n","import React, { Component, Fragment } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Autocomplete, Button, Form, Grid, Heading, Input, Modal, Panel, Radio, Textblock, Select, Validation,\r\n} from 'framework-ui-components';\r\nimport InfoesIcon from 'framework-ui-components/Components/Icons/InfoesIcon';\r\nimport { codiceFiscaleValido } from 'framework-ui-components/Components/Validation';\r\nimport { TipoDichiarazione, DichiarazioneIntegrativaObbligatorietaProtocollo } from 'enums';\r\nimport { cercaAnagraficaInUfficio } from 'apis/anagraficaApi';\r\nimport { esisteDichiarazionePerAnagrafica, protocolloIntegrativaObbligatorio } from 'apis/setteTrentaApi';\r\nimport { creaSostitutoImposta, sostitutoImposta } from 'apis/sostitutiApi';\r\nimport { renderMessaggi, renderPulsanti } from './gestoreModale';\r\n\r\nValidation.register(\r\n 'CodiceFiscaleAlfaNumericoTrimmed',\r\n (x, y) => !codiceFiscaleValido((x || '').trim()), { message: 'Codice Fiscale non valido' },\r\n);\r\n\r\nValidation.register(\r\n 'ValidaCognome',\r\n (x, y) => /[0-9]/.test(x), { message: 'Il cognome deve contenere solo lettere' },\r\n);\r\n\r\nValidation.register(\r\n 'ValidaNome',\r\n (x, y) => /[0-9]/.test(x), { message: 'Il nome deve contenere solo lettere' },\r\n);\r\n\r\nconst _tipoDichiarazione = {\r\n NON_SELEZIONATO: 0,\r\n ORDINARIA: 'ordinaria',\r\n INTEGRATIVA: 'integrativa',\r\n};\r\n\r\nconst FORM_INITIAL_STATE = {\r\n IdAnagrafica: null,\r\n IdSostituoImpostaPrecedente: null,\r\n sostitutoPrecedente: {\r\n\r\n },\r\n dichiarazioneEsistente: null,\r\n CodiceFiscale: '',\r\n Cognome: '',\r\n Nome: '',\r\n TipoDichiarazione: _tipoDichiarazione.NON_SELEZIONATO,\r\n Protocollo: '',\r\n windowMessage: '',\r\n caricandoModale: false,\r\n obbligatorioCodice1: DichiarazioneIntegrativaObbligatorietaProtocollo.Facoltativo,\r\n obbligatorioCodice2: DichiarazioneIntegrativaObbligatorietaProtocollo.Facoltativo,\r\n obbligatorioCodice3: DichiarazioneIntegrativaObbligatorietaProtocollo.Facoltativo,\r\n DataPrimaRata: 0,\r\n SceltaSostituto: 1,\r\n Sostituto: null,\r\n};\r\n\r\nclass ModaleCreazione extends Component {\r\n state = {\r\n ...FORM_INITIAL_STATE,\r\n bloccaInserimento: true,\r\n caricandoModale: false,\r\n cfValidoSiatel: true,\r\n DescrizioneComue: '',\r\n TipologiaIndirizzo: '',\r\n }\r\n\r\n componentDidMount() {\r\n const { datiIniziali, tipoDichiarazione, ufficioSelezionato } = this.props;\r\n\r\n if (tipoDichiarazione == _tipoDichiarazione.ORDINARIA) {\r\n this.setState({ TipoDichiarazione: TipoDichiarazione.Ordinaria });\r\n }\r\n if (tipoDichiarazione == _tipoDichiarazione.INTEGRATIVA) {\r\n this.setState({ TipoDichiarazione: TipoDichiarazione.SetteTrentaIntegrativaCodice2 });\r\n }\r\n if (datiIniziali) {\r\n this.setState(datiIniziali, () => {\r\n this.cercaAnagraficaInUfficio(datiIniziali.CodiceFiscale, ufficioSelezionato);\r\n this.valutaObbligatorietaProtocollo(datiIniziali.CodiceFiscale);\r\n });\r\n this.setState({ TipoDichiarazione: TipoDichiarazione.SetteTrentaIntegrativaCodice2 });\r\n }\r\n\r\n this.cfInput && this.cfInput.focus();\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n const { datiIniziali, tipoDichiarazione } = this.props;\r\n\r\n if (tipoDichiarazione != nextProps.tipoDichiarazione && nextProps.tipoDichiarazione == _tipoDichiarazione.ORDINARIA) {\r\n this.setState({ TipoDichiarazione: TipoDichiarazione.Ordinaria });\r\n }\r\n if (tipoDichiarazione != nextProps.tipoDichiarazione && nextProps.tipoDichiarazione == _tipoDichiarazione.INTEGRATIVA) {\r\n this.setState({ TipoDichiarazione: TipoDichiarazione.SetteTrentaIntegrativaCodice1 });\r\n }\r\n if (datiIniziali != nextProps.datiIniziali && nextProps.datiIniziali) {\r\n this.setState(nextProps.datiIniziali, () => {\r\n this.cercaAnagraficaInUfficio(nextProps.datiIniziali.CodiceFiscale, nextProps.ufficioSelezionato);\r\n this.valutaObbligatorietaProtocollo(nextProps.datiIniziali.CodiceFiscale);\r\n });\r\n this.setState({ TipoDichiarazione: TipoDichiarazione.SetteTrentaIntegrativaCodice1 });\r\n }\r\n }\r\n\r\n annulla = () => {\r\n this.setState(FORM_INITIAL_STATE, () => this.props.onAnnulla && this.props.onAnnulla());\r\n }\r\n\r\n crea = () => {\r\n if (this.form.valida()) {\r\n if (this.state.TipoDichiarazione == TipoDichiarazione.SetteTrentaIntegrativaCodice2\r\n && this.state.SceltaSostituto == 1\r\n && this.state.Sostituto && !this.state.Sostituto.IdSostituto) {\r\n const cmd = {\r\n ...this.state.Sostituto,\r\n CodiceUfficio: this.props.ufficioSelezionato,\r\n CodiceSede: this.state.Sostituto.CodiceSede || 0,\r\n CodiceFiscale: this.state.CodiceFiscaleSostituto,\r\n Anno: this.props.annoSelezionato,\r\n };\r\n creaSostitutoImposta(cmd)\r\n .then((res) => {\r\n if (res.Success) {\r\n const sostituto = {\r\n ...this.state.Sostituto,\r\n IdSostituto: res.Response.IdSostitutoImposta,\r\n };\r\n this.setState({ Sostituto: sostituto }, () => this.props.onCreaNuova && this.props.onCreaNuova(this.state));\r\n }\r\n });\r\n } else {\r\n this.props.onCreaNuova && this.props.onCreaNuova(this.state);\r\n }\r\n }\r\n }\r\n\r\n modifica = () => {\r\n const { anniRegistrati, annoSelezionato } = this.props;\r\n const url = anniRegistrati.filter(x => x.Anno == annoSelezionato)[0].Url730;\r\n window.location.href = `${url}#/Frontespizio/${this.state.dichiarazioneEsistente.IdDichiarazione.split('/')[1]}`;\r\n }\r\n\r\n updateForm = (data) => {\r\n if (data.TipoDichiarazione && data.TipoDichiarazione == TipoDichiarazione.SetteTrentaIntegrativaCodice1\r\n && this.state.obbligatorioCodice1 == DichiarazioneIntegrativaObbligatorietaProtocollo.NonRichiesto) {\r\n data.Protocollo = null;\r\n } else if (data.TipoDichiarazione && data.TipoDichiarazione == TipoDichiarazione.SetteTrentaIntegrativaCodice2\r\n && this.state.obbligatorioCodice2 == DichiarazioneIntegrativaObbligatorietaProtocollo.NonRichiesto) {\r\n data.Protocollo = null;\r\n } else if (data.TipoDichiarazione && data.TipoDichiarazione == TipoDichiarazione.SetteTrentaIntegrativaCodice3\r\n && this.state.obbligatorioCodice3 == DichiarazioneIntegrativaObbligatorietaProtocollo.NonRichiesto) {\r\n data.Protocollo = null;\r\n }\r\n\r\n this.setState(data);\r\n }\r\n\r\n ripristina = () => {\r\n this.form.valida() && this.props.onRipristinaEliminata && this.props.onRipristinaEliminata(this.state);\r\n }\r\n\r\n visualizza = () => {\r\n const { anniRegistrati, annoSelezionato } = this.props;\r\n const url = anniRegistrati.filter(x => x.Anno == annoSelezionato)[0].Url730;\r\n window.location.href = `${url}#/Frontespizio/Visualizza/${this.state.dichiarazioneEsistente.IdDichiarazione.split('/')[1]}`;\r\n }\r\n\r\n incolla = (e) => {\r\n const str = e.clipboardData.getData('Text');\r\n e.preventDefault();\r\n this.setState({ CodiceFiscale: str.trim() }, () => this.valutaEsistenzaAnagrafica({ target: { value: str.trim() } }));\r\n }\r\n\r\n valutaEsistenzaAnagrafica = (evt) => {\r\n const value = evt.target.value.trim();\r\n\r\n if (/^[A-Za-z0-9]{16}$/.test(value)) {\r\n this.cercaAnagraficaInUfficio(value, this.props.ufficioSelezionato);\r\n this.valutaObbligatorietaProtocollo(value);\r\n } else {\r\n // svuota campi\r\n this.setState({\r\n Cognome: '', Nome: '', bloccaInserimento: true, dichiarazioneEsistente: null,\r\n });\r\n }\r\n }\r\n\r\n cercaAnagraficaInUfficio = (codiceFiscale, ufficio) => {\r\n this.setState({ caricandoModale: true }, () => {\r\n cercaAnagraficaInUfficio(codiceFiscale, ufficio)\r\n .then((res) => {\r\n if (res) {\r\n // Esiste e valorizzo\r\n this.setState({\r\n bloccaInserimento: true,\r\n caricandoModale: false,\r\n\r\n Cognome: res.Cognome,\r\n Nome: res.Nome,\r\n IdAnagrafica: res.IdAnagrafica,\r\n }, () => {\r\n // Controllo se esiste una dichiarazione\r\n esisteDichiarazionePerAnagrafica(this.state.CodiceFiscale, this.props.ufficioSelezionato, this.state.TipoDichiarazione, this.props.annoSelezionato)\r\n .then((ex) => {\r\n ex && this.setState({ dichiarazioneEsistente: ex, IdSostituoImpostaPrecedente: ex.IdSostitutoImposta });\r\n if (ex != null && ex.IdSostitutoImposta != null) {\r\n sostitutoImposta(ex.IdSostitutoImposta).then(zz => this.setState({ sostitutoPrecedente: zz || { IdSostituto: 0 } }));\r\n } else {\r\n this.setState({ sostitutoPrecedente: { IdSostituto: 0 } });\r\n }\r\n });\r\n });\r\n } else {\r\n // Non esiste\r\n this.setState({ caricandoModale: false, bloccaInserimento: false });\r\n }\r\n });\r\n });\r\n }\r\n\r\n valutaObbligatorietaProtocollo(value) {\r\n if (this.state.TipoDichiarazione && this.state.TipoDichiarazione != TipoDichiarazione.Ordinaria && value && value.length == 16) {\r\n protocolloIntegrativaObbligatorio(value, this.props.ufficioSelezionato, this.props.annoSelezionato)\r\n .then((res) => {\r\n this.setState({ obbligatorioCodice1: res.ObbligatorioCodice1, obbligatorioCodice2: res.ObbligatorioCodice2, obbligatorioCodice3: res.ObbligatorioCodice3 });\r\n });\r\n }\r\n }\r\n\r\n validaProtocollo(annoSelezionato) {\r\n const errorMessage = 'Il testo deve essere di 17 caratteri.';\r\n let validations = [];\r\n\r\n if (this.state.TipoDichiarazione && this.state.TipoDichiarazione == TipoDichiarazione.SetteTrentaIntegrativaCodice1\r\n && this.state.obbligatorioCodice1 == DichiarazioneIntegrativaObbligatorietaProtocollo.Obbligatorio) {\r\n validations = ['required', { rule: 'minLength', minLength: 17, message: errorMessage }, { rule: 'maxLength', maxLength: 18, message: errorMessage }, { rule: 'Pattern', pattern: new RegExp(`${annoSelezionato % 100}[0-9]{14}[0-9]`, 'i'), message: 'Protocollo non valido' }];\r\n } else if (this.state.TipoDichiarazione && this.state.TipoDichiarazione == TipoDichiarazione.SetteTrentaIntegrativaCodice2\r\n && this.state.obbligatorioCodice2 == DichiarazioneIntegrativaObbligatorietaProtocollo.Obbligatorio) {\r\n validations = ['required', {\r\n rule: 'minLength', minLength: 17, message: errorMessage,\r\n }, { rule: 'maxLength', maxLength: 18, message: errorMessage }, { rule: 'Pattern', pattern: new RegExp(`${annoSelezionato % 100}[0-9]{14}[0-9]`, 'i'), message: 'Protocollo non valido' }];\r\n } else if (this.state.TipoDichiarazione && this.state.TipoDichiarazione == TipoDichiarazione.SetteTrentaIntegrativaCodice3\r\n && this.state.obbligatorioCodice3 == DichiarazioneIntegrativaObbligatorietaProtocollo.Obbligatorio) {\r\n validations = ['required', { rule: 'minLength', minLength: 17, message: errorMessage }, { rule: 'maxLength', maxLength: 18, message: errorMessage }];\r\n } else if (this.state.TipoDichiarazione\r\n && (this.state.TipoDichiarazione == TipoDichiarazione.SetteTrentaIntegrativaCodice1 && this.state.obbligatorioCodice1 == DichiarazioneIntegrativaObbligatorietaProtocollo.Facoltativo && this.state.Protocollo)\r\n || (this.state.TipoDichiarazione == TipoDichiarazione.SetteTrentaIntegrativaCodice2 && this.state.obbligatorioCodice2 == DichiarazioneIntegrativaObbligatorietaProtocollo.Facoltativo && this.state.Protocollo)\r\n || (this.state.TipoDichiarazione == TipoDichiarazione.SetteTrentaIntegrativaCodice3 && this.state.obbligatorioCodice3 == DichiarazioneIntegrativaObbligatorietaProtocollo.Facoltativo && this.state.Protocollo)) {\r\n validations = [{ rule: 'minLength', minLength: 17, message: errorMessage }, { rule: 'maxLength', maxLength: 18, message: errorMessage }, { rule: 'Pattern', pattern: new RegExp(`${annoSelezionato % 100}[0-9]{14}[0-9]`, 'i'), message: 'Protocollo non valido' }];\r\n }\r\n\r\n return validations;\r\n }\r\n\r\n abilitaProtocollo() {\r\n let disabled = false;\r\n if (this.state.TipoDichiarazione && this.state.TipoDichiarazione == TipoDichiarazione.SetteTrentaIntegrativaCodice1\r\n && this.state.obbligatorioCodice1 == DichiarazioneIntegrativaObbligatorietaProtocollo.NonRichiesto) {\r\n disabled = true;\r\n } else if (this.state.TipoDichiarazione && this.state.TipoDichiarazione == TipoDichiarazione.SetteTrentaIntegrativaCodice2\r\n && this.state.obbligatorioCodice2 == DichiarazioneIntegrativaObbligatorietaProtocollo.NonRichiesto) {\r\n disabled = true;\r\n } else if (this.state.TipoDichiarazione && this.state.TipoDichiarazione == TipoDichiarazione.SetteTrentaIntegrativaCodice3\r\n && this.state.obbligatorioCodice3 == DichiarazioneIntegrativaObbligatorietaProtocollo.NonRichiesto) {\r\n disabled = true;\r\n }\r\n return disabled;\r\n }\r\n\r\n titleProtocollo() {\r\n let title = 'Numero protocollo';\r\n if (this.state.TipoDichiarazione && this.state.TipoDichiarazione == TipoDichiarazione.SetteTrentaIntegrativaCodice1\r\n && this.state.obbligatorioCodice1 == DichiarazioneIntegrativaObbligatorietaProtocollo.NonRichiesto) {\r\n title = 'Protocollo non richiesto';\r\n } else if (this.state.TipoDichiarazione && this.state.TipoDichiarazione == TipoDichiarazione.SetteTrentaIntegrativaCodice2\r\n && this.state.obbligatorioCodice2 == DichiarazioneIntegrativaObbligatorietaProtocollo.NonRichiesto) {\r\n title = 'Protocollo non richiesto';\r\n } else if (this.state.TipoDichiarazione && this.state.TipoDichiarazione == TipoDichiarazione.SetteTrentaIntegrativaCodice3\r\n && this.state.obbligatorioCodice3 == DichiarazioneIntegrativaObbligatorietaProtocollo.NonRichiesto) {\r\n title = 'Protocollo non richiesto';\r\n }\r\n return title;\r\n }\r\n\r\n changeSceltaSostituto = (evt) => {\r\n if (evt.target.value == 0) {\r\n this.setState({ CodiceFiscaleSostituto: null, Sostituto: null });\r\n }\r\n if (evt.target.value == 1) {\r\n this.setState({ CodiceIban: null });\r\n }\r\n }\r\n\r\n changeCodiceFiscaleSostituto = (sost) => {\r\n if (typeof (sost) == 'string') {\r\n const { Sostituto } = this.state;\r\n const sost = { CodiceFiscale: sost };\r\n this.setState(Object.assign({ Sostituto: sost }, Sostituto && Sostituto.IdSostituto ? { TipologiaIndirizzo: null, DescrizioneComune: null } : {}));\r\n }\r\n\r\n if (typeof (sost) == 'object') {\r\n this.setState({\r\n Sostituto: sost, DescrizioneComune: sost.DescrizioneComue, TipologiaIndirizzo: sost.TipologiaIndirizzo, CodiceFiscaleSostituto: sost.CodiceFiscale,\r\n });\r\n }\r\n }\r\n\r\n changeTipoIndirizzoSostituto = (tipo) => {\r\n const sostituto = {\r\n ...this.state.Sostituto,\r\n TipologiaIndirizzo: (tipo && tipo.Descrizione) || null,\r\n };\r\n\r\n this.setState({ Sostituto: sostituto, TipologiaIndirizzo: tipo.Descrizione });\r\n }\r\n\r\n changeComuneSostituto = (comune) => {\r\n const sostituto = {\r\n ...this.state.Sostituto,\r\n CodiceComune: comune.CodiceComune,\r\n Cap: comune.Cap,\r\n DescrizioneComune: comune.Descrizione,\r\n CodiceProvincia: comune.CodiceProvincia,\r\n };\r\n\r\n this.setState({ Sostituto: sostituto, DescrizioneComune: comune.Descrizione });\r\n }\r\n\r\n render() {\r\n const {\r\n showModal, tipoDichiarazione, isLoading, messaggioErrore, datiIniziali, ufficioSelezionato, annoSelezionato, impostazioni,\r\n } = this.props;\r\n const {\r\n bloccaInserimento, windowMessage, caricandoModale, dichiarazioneEsistente, sostitutoPrecedente, DescrizioneComune, TipologiaIndirizzo,\r\n } = this.state;\r\n\r\n return (\r\n \r\n \r\n {datiIniziali ? `Nuova integrativa per ${datiIniziali.Cognome} ${datiIniziali.Nome}` : `Nuova dichiarazione ${tipoDichiarazione}`}\r\n {tipoDichiarazione === _tipoDichiarazione.INTEGRATIVA && (\r\n \r\n \r\n
    \r\n )}\r\n \r\n \r\n
    this.form = r}>\r\n \r\n {!datiIniziali\r\n && (\r\n \r\n \r\n this.cfInput = r}\r\n />\r\n \r\n \r\n )\r\n }\r\n {!datiIniziali\r\n && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n\r\n {renderMessaggi(dichiarazioneEsistente, this.state.TipoDichiarazione, this.state.CodiceFiscale.length >= 16 ? this.state.CodiceFiscale : null)}\r\n\r\n {messaggioErrore && {messaggioErrore}}\r\n\r\n {tipoDichiarazione == _tipoDichiarazione.INTEGRATIVA\r\n && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {this.state.TipoDichiarazione == TipoDichiarazione.SetteTrentaIntegrativaCodice2 && sostitutoPrecedente != null && sostitutoPrecedente.IdSostituto != null\r\n && (\r\n \r\n \r\n \r\n Sostituto d'imposta attuale\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n\r\n {\r\n this.state.TipoDichiarazione == TipoDichiarazione.SetteTrentaIntegrativaCodice2 && messaggioErrore == null && (sostitutoPrecedente == null || (sostitutoPrecedente != null && sostitutoPrecedente.IdSostituto != null))\r\n && (\r\n \r\n
    \r\n \r\n \r\n Modifica sostituto di imposta\r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n {this.state.SceltaSostituto == 0\r\n ? (\r\n \r\n {dichiarazioneEsistente != null && (dichiarazioneEsistente.DaTrattenere7304 || 0) > 0 && (dichiarazioneEsistente.DaRimborsare7304 || 0) == 0\r\n && (\r\n \r\n \r\n \r\n )\r\n }\r\n {dichiarazioneEsistente != null && ((dichiarazioneEsistente.DaTrattenere7304 || 0) == 0 && (dichiarazioneEsistente.DaRimborsare7304 || 0) > 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 `${item.CodiceFiscale} ${item.CodiceSede > 0 ? ` - ${item.CodiceSede} ` : ''} - ${item.Denominazione}`}\r\n disabled={this.state.SceltaSostituto != 1}\r\n name=\"CodiceFiscaleSostituto\"\r\n title=\"Codice fiscale sostituto\"\r\n />\r\n \r\n {this.state.Sostituto\r\n && this.state.Sostituto.IdSostituto\r\n && (\r\n \r\n \r\n
    \r\n Per la modifica dei dati di un sostituto già presente in archivio, accedere all’archivio sostituti\r\n
    \r\n
    \r\n
    \r\n )\r\n }\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n )\r\n }\r\n
    \r\n )\r\n }\r\n
    \r\n )\r\n }\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n {renderPulsanti(dichiarazioneEsistente, this.state.TipoDichiarazione, this.crea, this.modifica, this.visualizza, this.ripristina)}\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nModaleCreazione.TipoDichiarazione = _tipoDichiarazione;\r\n\r\nModaleCreazione.propTypes = {\r\n datiIniziali: PropTypes.object,\r\n isLoading: PropTypes.bool,\r\n messaggioErrore: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]),\r\n onAnnulla: PropTypes.func.isRequired,\r\n onCreaNuova: PropTypes.func,\r\n onRipristinaEliminata: PropTypes.func,\r\n showModal: PropTypes.bool.isRequired,\r\n tipoDichiarazione: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\r\n ufficioSelezionato: PropTypes.string,\r\n annoSelezionato: PropTypes.number,\r\n};\r\n\r\nModaleCreazione.defaultProps = {\r\n tipoDichiarazione: _tipoDichiarazione.NON_SELEZIONATO,\r\n};\r\n\r\nexport default ModaleCreazione;\r\n","import React from 'react';\r\nimport { Button, Panel } from 'framework-ui-components';\r\n\r\nimport { StatoDichiarazione, TipoDichiarazione } from 'enums';\r\n\r\nexport const renderMessaggi = (dichiarazioneEsistente, tipoDichiarazione, codiceFiscale) => {\r\n if (tipoDichiarazione == TipoDichiarazione.Ordinaria) {\r\n if (dichiarazioneEsistente && dichiarazioneEsistente.Eliminata) {\r\n return Esiste una dichiarazione eliminata per questo codice fiscale ed è possibile ripristinarla.;\r\n }\r\n if (dichiarazioneEsistente && !dichiarazioneEsistente.Eliminata && (dichiarazioneEsistente.Stato == StatoDichiarazione.AnnoPrecedente\r\n || dichiarazioneEsistente.Stato == StatoDichiarazione.InLavorazione\r\n || dichiarazioneEsistente.Stato == StatoDichiarazione.Annullata\r\n || dichiarazioneEsistente.Stato == StatoDichiarazione.Completa)) {\r\n return Esiste già una dichiarazione per questo codice fiscale ed è possibile modificarla.;\r\n }\r\n if (dichiarazioneEsistente && !dichiarazioneEsistente.Eliminata && (dichiarazioneEsistente.Stato != StatoDichiarazione.AnnoPrecedente\r\n || dichiarazioneEsistente.Stato != StatoDichiarazione.InLavorazione\r\n || dichiarazioneEsistente.Stato != StatoDichiarazione.Annullata\r\n || dichiarazioneEsistente.Stato != StatoDichiarazione.Completa)) {\r\n return Esiste già una dichiarazione per questo codice fiscale ed è possibile visualizzarla.;\r\n }\r\n } else {\r\n if (!dichiarazioneEsistente && codiceFiscale) {\r\n return Non esiste una dichiarazione ordinaria valida su cui procedere con l'integrativa.;\r\n } if (codiceFiscale && dichiarazioneEsistente.Tipo == TipoDichiarazione.SetteTrentaIntegrativaCodice1\r\n && (dichiarazioneEsistente.Stato == StatoDichiarazione.InLavorazione || dichiarazioneEsistente.Stato == StatoDichiarazione.Annullata)) {\r\n /* Integrativo Cod1 esistente */\r\n return Esiste già una dichiarazione integrativa codice 1 per questo codice fiscale ed è possibile modificarla;\r\n } if (codiceFiscale\r\n && (dichiarazioneEsistente.Tipo == TipoDichiarazione.SetteTrentaIntegrativaCodice1 || dichiarazioneEsistente.Tipo == TipoDichiarazione.SetteTrentaIntegrativaCodice3)\r\n && (dichiarazioneEsistente.Stato == StatoDichiarazione.Completa || dichiarazioneEsistente.Stato == StatoDichiarazione.DaInviare\r\n || dichiarazioneEsistente.Stato == StatoDichiarazione.DaControllare || dichiarazioneEsistente.Stato == StatoDichiarazione.DaTrasmettere\r\n || dichiarazioneEsistente.Stato == StatoDichiarazione.TrasmessaAutomaticamente || dichiarazioneEsistente.Stato == StatoDichiarazione.DaAnnullare || dichiarazioneEsistente.Stato == StatoDichiarazione.AnnullataAE\r\n || dichiarazioneEsistente.Stato == StatoDichiarazione.ScartataAudit || dichiarazioneEsistente.Stato == StatoDichiarazione.ScartataCF || dichiarazioneEsistente.Stato == StatoDichiarazione.ScartataRicalcolo\r\n )) {\r\n /* Integrativo Cod1-Cod3 esistente */\r\n return Esiste già una dichiarazione integrativa per questo codice fiscale;\r\n } if (codiceFiscale\r\n && (dichiarazioneEsistente.Tipo == TipoDichiarazione.SetteTrentaIntegrativaCodice2)\r\n && (dichiarazioneEsistente.Stato == StatoDichiarazione.Completa || dichiarazioneEsistente.Stato == StatoDichiarazione.DaInviare\r\n || dichiarazioneEsistente.Stato == StatoDichiarazione.DaControllare || dichiarazioneEsistente.Stato == StatoDichiarazione.DaTrasmettere\r\n || dichiarazioneEsistente.Stato == StatoDichiarazione.DaAnnullare || dichiarazioneEsistente.Stato == StatoDichiarazione.AnnullataAE || dichiarazioneEsistente.Stato == StatoDichiarazione.ScartataAudit\r\n || dichiarazioneEsistente.Stato == StatoDichiarazione.ScartataCF || dichiarazioneEsistente.Stato == StatoDichiarazione.ScartataRicalcolo)) {\r\n /* Integrativo Cod2 esistente */\r\n return Esiste già una dichiarazione integrativa per questo codice fiscale;\r\n } if (codiceFiscale && (tipoDichiarazione == TipoDichiarazione.SetteTrentaIntegrativaCodice2 || tipoDichiarazione == TipoDichiarazione.SetteTrentaIntegrativaCodice3)\r\n && dichiarazioneEsistente.SenzaSostitutoImposta) {\r\n /* Integrativo Cod2-Cod3 senza sostituto di imposta */\r\n return La dichiarazione presente è senza Sostituto di Imposta. Impossibile creare l'integrativo scelto.;\r\n } if (codiceFiscale && dichiarazioneEsistente.Tipo == TipoDichiarazione.SetteTrentaIntegrativaCodice3\r\n && (dichiarazioneEsistente.Stato == StatoDichiarazione.InLavorazione || dichiarazioneEsistente.Stato == StatoDichiarazione.Annullata || dichiarazioneEsistente.Stato == StatoDichiarazione.AnnullataAE)) {\r\n /* Integrativo Cod3 esistente */\r\n return Esiste già una dichiarazione integrativa codice 3 per questo codice fiscale ed è possibile modificarla;\r\n } if (codiceFiscale && dichiarazioneEsistente.Tipo == TipoDichiarazione.SetteTrentaIntegrativaCodice2\r\n && (dichiarazioneEsistente.Stato == StatoDichiarazione.InLavorazione || dichiarazioneEsistente.Stato == StatoDichiarazione.Annullata || dichiarazioneEsistente.Stato == StatoDichiarazione.AnnullataAE)) {\r\n /* Integrativo Cod2 esistente */\r\n return Esiste già una dichiarazione integrativa codice 2 per questo codice fiscale ed è possibile modificarla;\r\n }\r\n }\r\n};\r\n\r\nexport const renderPulsanti = (dichiarazioneEsistente, tipoDichiarazione, onCrea, onModifica, onVisualizza, onRipristina) => {\r\n if (tipoDichiarazione == TipoDichiarazione.Ordinaria) {\r\n if (!dichiarazioneEsistente) {\r\n return ;\r\n }\r\n if (dichiarazioneEsistente && dichiarazioneEsistente.Eliminata) {\r\n return ;\r\n }\r\n if (dichiarazioneEsistente && !dichiarazioneEsistente.Eliminata && (dichiarazioneEsistente.Stato == StatoDichiarazione.AnnoPrecedente\r\n || dichiarazioneEsistente.Stato == StatoDichiarazione.InLavorazione\r\n || dichiarazioneEsistente.Stato == StatoDichiarazione.Annullata\r\n || dichiarazioneEsistente.Stato == StatoDichiarazione.Completa)) {\r\n return ;\r\n }\r\n if (dichiarazioneEsistente && !dichiarazioneEsistente.Eliminata && (dichiarazioneEsistente.Stato != StatoDichiarazione.AnnoPrecedente\r\n || dichiarazioneEsistente.Stato != StatoDichiarazione.InLavorazione\r\n || dichiarazioneEsistente.Stato != StatoDichiarazione.Annullata\r\n || dichiarazioneEsistente.Stato != StatoDichiarazione.Completa)) {\r\n return ;\r\n }\r\n } else {\r\n if (!dichiarazioneEsistente) {\r\n return ;\r\n } if (dichiarazioneEsistente.Tipo == TipoDichiarazione.SetteTrentaIntegrativaCodice1\r\n && (dichiarazioneEsistente.Stato == StatoDichiarazione.InLavorazione || dichiarazioneEsistente.Stato == StatoDichiarazione.Annullata)) {\r\n /* Integrativo Cod1 esistente */\r\n return ;\r\n } if ((dichiarazioneEsistente.Tipo == TipoDichiarazione.SetteTrentaIntegrativaCodice1 || dichiarazioneEsistente.Tipo == TipoDichiarazione.SetteTrentaIntegrativaCodice3)\r\n && (dichiarazioneEsistente.Stato == StatoDichiarazione.Completa || dichiarazioneEsistente.Stato == StatoDichiarazione.DaInviare\r\n || dichiarazioneEsistente.Stato == StatoDichiarazione.DaControllare || dichiarazioneEsistente.Stato == StatoDichiarazione.DaTrasmettere\r\n || dichiarazioneEsistente.Stato == StatoDichiarazione.TrasmessaAutomaticamente || dichiarazioneEsistente.Stato == StatoDichiarazione.DaAnnullare || dichiarazioneEsistente.Stato == StatoDichiarazione.AnnullataAE\r\n || dichiarazioneEsistente.Stato == StatoDichiarazione.ScartataAudit || dichiarazioneEsistente.Stato == StatoDichiarazione.ScartataCF || dichiarazioneEsistente.Stato == StatoDichiarazione.ScartataRicalcolo)) {\r\n /* Integrativo Cod1-Cod3 esistente */\r\n return ;\r\n } if ((dichiarazioneEsistente.Tipo == TipoDichiarazione.SetteTrentaIntegrativaCodice2)\r\n && (dichiarazioneEsistente.Stato == StatoDichiarazione.Completa || dichiarazioneEsistente.Stato == StatoDichiarazione.DaInviare\r\n || dichiarazioneEsistente.Stato == StatoDichiarazione.DaControllare || dichiarazioneEsistente.Stato == StatoDichiarazione.DaTrasmettere\r\n || dichiarazioneEsistente.Stato == StatoDichiarazione.DaAnnullare || dichiarazioneEsistente.Stato == StatoDichiarazione.AnnullataAE\r\n || dichiarazioneEsistente.Stato == StatoDichiarazione.ScartataAudit || dichiarazioneEsistente.Stato == StatoDichiarazione.ScartataCF\r\n || dichiarazioneEsistente.Stato == StatoDichiarazione.ScartataRicalcolo)) {\r\n /* Integrativo Cod2 esistente */\r\n return ;\r\n } if ((tipoDichiarazione == TipoDichiarazione.SetteTrentaIntegrativaCodice2 || tipoDichiarazione == TipoDichiarazione.SetteTrentaIntegrativaCodice3)\r\n && dichiarazioneEsistente.SenzaSostitutoImposta) {\r\n /* Integrativo Cod2-Cod3 senza sostituto di imposta */\r\n return ;\r\n } if ((dichiarazioneEsistente.Tipo == TipoDichiarazione.SetteTrentaIntegrativaCodice3 || dichiarazioneEsistente.Tipo == TipoDichiarazione.SetteTrentaIntegrativaCodice2)\r\n && (dichiarazioneEsistente.Stato == StatoDichiarazione.InLavorazione || dichiarazioneEsistente.Stato == StatoDichiarazione.Annullata)) {\r\n /* Integrativo Cod3 esistente */\r\n return ;\r\n }\r\n\r\n return ;\r\n }\r\n};\r\n","import React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Button, Checkbox, Confirm, Form, Grid, Input, Modal, Panel } from 'framework-ui-components';\r\n\r\nimport { preferenzeStampa } from 'apis/setteTrentaApi';\r\n\r\nconst FORM_INITIAL_STATE = {\r\n SalvaPreferenze: true,\r\n IsStampaUfficiale: false,\r\n\r\n StampaDichiarazione: true,\r\n AutocertificazioneGenerica: false,\r\n FascicoloContribuente: false,\r\n\r\n AutocertificazioneFamiglieNumerose: false,\r\n DelegaUnica: false, // DelegaPrecompilatoCU AnnoImpostaPiuUno\r\n InformativaPrivacy: false,\r\n\r\n AutocertificazioneFamiliari: false,\r\n StampaF24: false,\r\n Scelta582x1000: false,\r\n\r\n AutocertificazioneC4: false,\r\n RichiestaAccredito: false,\r\n DocumentiDaConsegnare: false,\r\n\r\n AutocertificazioneOneri: false,\r\n PromemoriaConguagli: false,\r\n DelegaPrecompilatoCU: false, // DelegaPrecompilatoCU AnnoImposta\r\n\r\n AutocertificazioneF6: false,\r\n CalcoloBonusIRPEF: false,\r\n Fatture: false,\r\n LetteraNovita: false,\r\n\r\n RistampaLeStampate: false,\r\n NrCopie: 1,\r\n FronteRetro: true,\r\n ModelliCompilati: false,\r\n GuidaLettura: false,\r\n ArchiviaInZip: false,\r\n ImpostazioneStampa: 2,\r\n //MaxPaginePdf: 200,\r\n};\r\n\r\nclass ModaleStampa extends Component {\r\n state = {\r\n ...FORM_INITIAL_STATE,\r\n stampaAbilitata: true,\r\n isLoadingInternal: false,\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n const { showModal } = this.props;\r\n if (nextProps.showModal && showModal != nextProps.showModal) {\r\n this.caricaPreferenzeStampa(nextProps.userId);\r\n }\r\n }\r\n\r\n copieKeyDown = (evt) => {\r\n let copie = this.state.NrCopie;\r\n if (evt.keyCode == '38') {\r\n copie++;\r\n } else if (evt.keyCode == '40') {\r\n if (copie > 0) {\r\n copie--;\r\n }\r\n }\r\n this.setState({ NrCopie: copie });\r\n }\r\n\r\n annulla = () => {\r\n const { onAnnulla } = this.props;\r\n this.setState(FORM_INITIAL_STATE, () => onAnnulla && onAnnulla());\r\n }\r\n\r\n updateForm = (data) => {\r\n this.setState(data, () => {\r\n this.aggiornaStampaAbilitata();\r\n });\r\n }\r\n\r\n stampa = () => {\r\n const { NrCopie, RistampaLeStampate, StampaDichiarazione } = this.state;\r\n const { nrDichiarazioniSelezionate, nrDichiarazioniSelezionateNonStampate, nrDichiarazioniSelezionateStampate, onStampa } = this.props;\r\n let nPagine = NrCopie * nrDichiarazioniSelezionate * 20;\r\n if (RistampaLeStampate == false) {\r\n nPagine = NrCopie * nrDichiarazioniSelezionateNonStampate * 20;\r\n }\r\n if (NrCopie.FronteRetro == true) {\r\n nPagine *= 2;\r\n }\r\n if (RistampaLeStampate == false && StampaDichiarazione == true && nrDichiarazioniSelezionateStampate === nrDichiarazioniSelezionate) {\r\n Confirm('Dichiarazioni non stampabili', `Sono state scelte tutte dichiarazioni stampate senza l\\'opzione Ristampa le già stampate.`, 'error').then(x => { });\r\n } else if (NrCopie > 5) {\r\n Confirm('Dichiarazioni non stampabili', `Non è possibile stampare più di 5 copie. Impostare il campo \"Numero Copie\" ad un valore pari a 5 o inferiore`, 'error').then(x => { });\r\n } /*else if (nPagine > FORM_INITIAL_STATE.MaxPaginePdf || nrDichiarazioniSelezionate > 20) {\r\n Confirm('Dichiarazioni non stampabili', `Le dichiarazioni scelte con le opzioni selezionate superano il limite massimo di pagine stampabili. Selezionare meno dichiarazioni o impostare un minor numero di copie.`, 'error').then(x => { });\r\n }*/ else {\r\n onStampa && onStampa(this.state);\r\n }\r\n }\r\n\r\n setCheckBoxState = (propName) => {\r\n this.setState({\r\n [propName]: !this.state[propName],\r\n }, () => this.aggiornaStampaAbilitata());\r\n }\r\n\r\n clickFascicoloContribuente = () => {\r\n const { FascicoloContribuente } = this.state;\r\n if (FascicoloContribuente == false) {\r\n this.setState({\r\n FascicoloContribuente: true,\r\n InformativaPrivacy: true,\r\n Scelta582x1000: true,\r\n DocumentiDaConsegnare: true,\r\n // DelegaPrecompilatoCU: true,\r\n }, () => this.aggiornaStampaAbilitata());\r\n } else {\r\n this.setState({\r\n FascicoloContribuente: false,\r\n InformativaPrivacy: false,\r\n Scelta582x1000: false,\r\n DocumentiDaConsegnare: false,\r\n // DelegaPrecompilatoCU: false,\r\n }, () => this.aggiornaStampaAbilitata());\r\n }\r\n }\r\n\r\n setCheckBoxState2 = (propName) => {\r\n const {\r\n InformativaPrivacy, Scelta582x1000, DocumentiDaConsegnare\r\n } = this.state;\r\n if ((!InformativaPrivacy || propName == 'InformativaPrivacy')\r\n && (!Scelta582x1000 || propName == 'Scelta582x1000')\r\n && (!DocumentiDaConsegnare || propName == 'DocumentiDaConsegnare')) {\r\n this.setState({\r\n FascicoloContribuente: false,\r\n InformativaPrivacy: false,\r\n Scelta582x1000: false,\r\n DocumentiDaConsegnare: false,\r\n // DelegaPrecompilatoCU: false,\r\n }, () => this.aggiornaStampaAbilitata());\r\n } else {\r\n this.setState({\r\n [propName]: !this.state[propName],\r\n }, () => this.aggiornaStampaAbilitata());\r\n }\r\n }\r\n\r\n aggiornaStampaAbilitata = () => {\r\n const {\r\n StampaDichiarazione,\r\n AutocertificazioneGenerica,\r\n FascicoloContribuente,\r\n AutocertificazioneFamiglieNumerose,\r\n DelegaUnica, // DelegaPrecompilatoCU AnnoImpostaPiuUno\r\n InformativaPrivacy,\r\n AutocertificazioneFamiliari,\r\n StampaF24,\r\n Scelta582x1000,\r\n AutocertificazioneC4,\r\n RichiestaAccredito,\r\n DocumentiDaConsegnare,\r\n AutocertificazioneOneri,\r\n PromemoriaConguagli,\r\n DelegaPrecompilatoCU, // DelegaPrecompilatoCU AnnoImposta\r\n AutocertificazioneF6,\r\n CalcoloBonusIRPEF,\r\n Fatture,\r\n LetteraNovita,\r\n NrCopie,\r\n } = this.state;\r\n\r\n const stAbilitata = (\r\n StampaDichiarazione\r\n || AutocertificazioneGenerica\r\n || FascicoloContribuente\r\n || AutocertificazioneFamiglieNumerose\r\n || DelegaUnica\r\n || InformativaPrivacy\r\n || AutocertificazioneFamiliari\r\n || StampaF24\r\n || Scelta582x1000\r\n || AutocertificazioneC4\r\n || RichiestaAccredito\r\n || DocumentiDaConsegnare\r\n || AutocertificazioneOneri\r\n || PromemoriaConguagli\r\n || DelegaPrecompilatoCU\r\n || AutocertificazioneF6\r\n || CalcoloBonusIRPEF\r\n || Fatture\r\n || LetteraNovita) && NrCopie && NrCopie > 0;\r\n\r\n this.setState({ stampaAbilitata: stAbilitata });\r\n }\r\n\r\n caricaPreferenzeStampa(userId) {\r\n const { annoSelezionato } = this.props;\r\n this.setState({ isLoadingInternal: true }, () => {\r\n preferenzeStampa(userId, annoSelezionato)\r\n .then((res) => {\r\n if (res) {\r\n this.setState({ ...res, isLoadingInternal: false });\r\n this.setState({ isLoadingInternal: false });\r\n /* if (res.StampaDichiarazione)\r\n this.state(FORM_INITIAL_STATE.StampaProvaUfficiale, res.StampaDichiarazione);*/\r\n } else {\r\n this.setState({ ...FORM_INITIAL_STATE, isLoadingInternal: false });\r\n }\r\n });\r\n });\r\n }\r\n\r\n render() {\r\n const {\r\n showModal, stampaProva, messaggioErrore, isLoadingModale, tabTutte, annoSelezionato,\r\n } = this.props;\r\n const {\r\n StampaDichiarazione,\r\n AutocertificazioneGenerica,\r\n FascicoloContribuente,\r\n AutocertificazioneFamiglieNumerose,\r\n DelegaUnica, // DelegaPrecompilatoCU AnnoImpostaPiuUno\r\n InformativaPrivacy,\r\n AutocertificazioneFamiliari,\r\n StampaF24,\r\n Scelta582x1000,\r\n AutocertificazioneC4,\r\n RichiestaAccredito,\r\n DocumentiDaConsegnare,\r\n AutocertificazioneOneri,\r\n PromemoriaConguagli,\r\n DelegaPrecompilatoCU, // DelegaPrecompilatoCU AnnoImpostaPiuDue\r\n AutocertificazioneF6,\r\n CalcoloBonusIRPEF,\r\n RistampaLeStampate,\r\n FronteRetro,\r\n GuidaLettura,\r\n ArchiviaInZip,\r\n SalvaPreferenze,\r\n Fatture,\r\n LetteraNovita,\r\n isLoadingInternal,\r\n stampaAbilitata,\r\n } = this.state;\r\n\r\n const annoImpostaPiuUno = parseInt(annoSelezionato, 10);\r\n const annoImpostaPiuDue = parseInt(annoSelezionato, 10) + 1;\r\n\r\n return (\r\n \r\n Opzioni di stampa\r\n \r\n
    this.form = r}>\r\n \r\n \r\n
    \r\n {tabTutte\r\n && (\r\n \r\n
    \r\n La selezione contiene sia stampe di prova che stampe ufficiali.\r\n
    \r\n
    \r\n )}\r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {messaggioErrore && {messaggioErrore}}\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nModaleStampa.propTypes = {\r\n isLoadingModale: PropTypes.bool,\r\n messaggioErrore: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]),\r\n nrDichiarazioniSelezionate: PropTypes.number.isRequired,\r\n nrDichiarazioniSelezionateNonStampate: PropTypes.number.isRequired,\r\n nrDichiarazioniSelezionateStampate: PropTypes.number.isRequired,\r\n onAnnulla: PropTypes.func.isRequired,\r\n onStampa: PropTypes.func.isRequired,\r\n showModal: PropTypes.bool.isRequired,\r\n stampaProva: PropTypes.bool.isRequired,\r\n tabTutte: PropTypes.bool.isRequired,\r\n userId: PropTypes.string.isRequired,\r\n annoSelezionato: PropTypes.number.isRequired,\r\n};\r\n\r\n\r\nModaleStampa.defaultProps = {\r\n isLoadingModale: false,\r\n messaggioErrore: '',\r\n};\r\n\r\nexport default ModaleStampa;\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 \r\n , '0 0 15.47 15.66', 'AssistenteInlineIcon',\r\n);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport AssistenteInlineIcon from '../Icons/AssistenteInlineIcon';\r\n\r\nconst apriPermalink = (permalink, codiceUfficio, area) => {\r\n window.open(`${window.config.urlAssistente}/permalink/contenuto?aliasArea=${area}&codiceUfficio=${codiceUfficio}&permalink=${permalink}`);\r\n};\r\n\r\nconst AssistenteButton = ({ permalink, codiceUfficio, area, inline, children }) => (\r\n inline\r\n ? (\r\n apriPermalink(permalink, codiceUfficio, area)}\r\n role=\"presentation\"\r\n >\r\n \r\n {children}\r\n \r\n )\r\n : (\r\n apriPermalink(permalink, codiceUfficio, area)}\r\n role=\"presentation\"\r\n >\r\n apriPermalink(permalink, codiceUfficio, area)} />\r\n \r\n )\r\n);\r\n\r\nAssistenteButton.propTypes = {\r\n permalink: PropTypes.string.isRequired,\r\n codiceUfficio: PropTypes.string.isRequired,\r\n area: PropTypes.string.isRequired,\r\n inline: PropTypes.bool,\r\n children: PropTypes.node,\r\n};\r\n\r\nAssistenteButton.defaultProps = {\r\n children: undefined,\r\n inline: false,\r\n};\r\n\r\nexport default AssistenteButton;\r\n","import React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Button, Checkbox, Confirm, Form, Grid, Input, Modal, Panel, Tabs, InfoTooltip,\r\n} from 'framework-ui-components';\r\n\r\nimport { preferenzeStampa, soscaf } from 'apis/setteTrentaApi';\r\nimport AssistenteButton from '../../../components/Assistente';\r\n\r\n\r\nconst FORM_INITIAL_STATE = {\r\n\r\n Gruppo730: false,\r\n StampaDichiarazione: true,\r\n PromemoriaConguagli: false,\r\n DelegaPrecompilatoCU: true, // DelegaPrecompilatoCU AnnoImpostaPiuUno\r\n StampaF24: false,\r\n RichiestaAccredito: false,\r\n CalcoloBonusIRPEF: false,\r\n Fatture: false,\r\n\r\n GruppoAutocertificazioni: false,\r\n AutocertificazioneFamiliari: false,\r\n AutocertificazioneC4: false,\r\n AutocertificazioneCasiParticolariQuadroC: false,\r\n AutocertificazioneOneri: false,\r\n AutocertificazioneF6: false,\r\n AutocertificazioneGenerica: false,\r\n\r\n GruppoFascicoloContribuente: false,\r\n InformativaPrivacy: false,\r\n Scelta582x1000: false,\r\n DelegaUnica: false, // DelegaPrecompilatoCU AnnoImpostaPiuDue\r\n DocumentiDaConsegnare: false,\r\n\r\n GruppoStampeVarie: false,\r\n LetteraNovita: false,\r\n Barra2Provvisorio: false,\r\n\r\n FronteRetro: true,\r\n RistampaLeStampate: false,\r\n GuidaLettura: false,\r\n NrCopie: 1,\r\n ArchiviaInZip: false,\r\n SalvaPreferenze: true,\r\n\r\n // ModelliCompilati: false,\r\n // IsStampaUfficiale: false,\r\n // ImpostazioneStampa: 2,\r\n};\r\n\r\nclass ModaleStampa2 extends Component {\r\n state = {\r\n ...FORM_INITIAL_STATE,\r\n stampaAbilitata: true,\r\n isLoadingInternal: false,\r\n delegatoCentrale: false,\r\n currentTab: 0,\r\n }\r\n\r\n componentDidMount() {\r\n const { ufficioSelezionato, annoSelezionato } = this.props;\r\n soscaf(ufficioSelezionato.CodiceUfficio, annoSelezionato)\r\n .then(({ Titolo, CodiceFiscaleIncaricato }) => this.setState({\r\n delegatoCentrale: Titolo === '003' && CodiceFiscaleIncaricato === 'DGNGLG63M09G888C',\r\n }));\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n const { ufficioSelezionato, annoSelezionato, stampaProva } = this.props;\r\n\r\n if (annoSelezionato !== nextProps.annoSelezionato || ufficioSelezionato.CodiceUfficio !== nextProps.ufficioSelezionato.CodiceUfficio) {\r\n soscaf(nextProps.ufficioSelezionato.CodiceUfficio, nextProps.annoSelezionato)\r\n .then(({ Titolo, CodiceFiscaleIncaricato }) => this.setState(({ StampaDichiarazione }) => ({\r\n delegatoCentrale: Titolo === '003' && CodiceFiscaleIncaricato === 'DGNGLG63M09G888C',\r\n StampaDichiarazione: StampaDichiarazione && (stampaProva || !(Titolo === '003' && CodiceFiscaleIncaricato === 'DGNGLG63M09G888C')),\r\n })));\r\n }\r\n }\r\n\r\n componentDidUpdate(propsPrecedenti, statePrecedente) {\r\n const {\r\n showModal, userId, annoSelezionato,\r\n } = this.props;\r\n const {\r\n StampaDichiarazione, DelegaPrecompilatoCU,\r\n } = this.state;\r\n // const { delegatoCentrale } = this.state;\r\n\r\n if (showModal == true && propsPrecedenti.showModal == false) {\r\n this.setState({\r\n isLoadingInternal: true,\r\n });\r\n preferenzeStampa(userId, annoSelezionato)\r\n .then((res) => {\r\n if (res) {\r\n this.setState({\r\n ...res,\r\n isLoadingInternal: false,\r\n StampaDichiarazione: res.StampaDichiarazione,\r\n PromemoriaConguagli: res.PromemoriaConguagli,\r\n DelegaPrecompilatoCU: res.DelegaPrecompilatoCU,\r\n StampaF24: res.StampaF24,\r\n RichiestaAccredito: res.RichiestaAccredito,\r\n CalcoloBonusIRPEF: res.CalcoloBonusIRPEF,\r\n Fatture: res.Fatture,\r\n AutocertificazioneFamiliari: res.AutocertificazioneFamiliari,\r\n InformativaPrivacy: res.InformativaPrivacy,\r\n Scelta582x1000: res.Scelta582x1000,\r\n Barra2Provvisorio: res.Barra2Provvisorio,\r\n });\r\n } else {\r\n this.setState({ ...FORM_INITIAL_STATE, isLoadingInternal: false });\r\n }\r\n });\r\n } else if (StampaDichiarazione && !statePrecedente.StampaDichiarazione && !DelegaPrecompilatoCU) {\r\n this.setState({\r\n StampaDichiarazione: true,\r\n DelegaPrecompilatoCU: true,\r\n });\r\n }\r\n }\r\n\r\n copieKeyDown = (evt) => {\r\n const { NrCopie } = this.state;\r\n let copie = NrCopie;\r\n if (evt.keyCode == '38') {\r\n copie += 1;\r\n } else if (evt.keyCode == '40') {\r\n if (copie > 0) {\r\n copie -= 1;\r\n }\r\n }\r\n this.setState({ NrCopie: copie });\r\n }\r\n\r\n annulla = () => {\r\n const { onAnnulla } = this.props;\r\n this.setState(FORM_INITIAL_STATE, () => onAnnulla && onAnnulla());\r\n }\r\n\r\n updateForm = (data) => {\r\n this.setState(data, () => {\r\n this.aggiornaStampaAbilitata();\r\n });\r\n }\r\n\r\n calcoloPagineDaStampare = (totaleSelezionati, stato) => {\r\n const {\r\n StampaDichiarazione,\r\n DelegaPrecompilatoCU,\r\n PromemoriaConguagli,\r\n StampaF24,\r\n RichiestaAccredito,\r\n CalcoloBonusIRPEF,\r\n Fatture,\r\n AutocertificazioneFamiliari,\r\n AutocertificazioneC4,\r\n AutocertificazioneCasiParticolariQuadroC,\r\n AutocertificazioneOneri,\r\n AutocertificazioneF6,\r\n AutocertificazioneGenerica,\r\n InformativaPrivacy,\r\n Scelta582x1000,\r\n DelegaUnica,\r\n DocumentiDaConsegnare,\r\n LetteraNovita,\r\n Barra2Provvisorio,\r\n NrCopie,\r\n } = stato;\r\n\r\n // vedere quali multicopia\r\n let count1 = (StampaDichiarazione ? 35 * NrCopie : 0)\r\n + (DelegaPrecompilatoCU ? 1 : 0)\r\n + (PromemoriaConguagli ? 1 : 0)\r\n + (StampaF24 ? 1 : 0)\r\n + (RichiestaAccredito ? 1 : 0)\r\n + (CalcoloBonusIRPEF ? 1 : 0)\r\n + (Fatture ? 1 : 0)\r\n + (AutocertificazioneFamiliari ? 1 * NrCopie : 0)\r\n + (AutocertificazioneC4 ? 1 * NrCopie : 0)\r\n + (AutocertificazioneCasiParticolariQuadroC ? 1 * NrCopie : 0)\r\n + (AutocertificazioneOneri ? 1 * NrCopie : 0)\r\n + (AutocertificazioneF6 ? 1 * NrCopie : 0)\r\n + (AutocertificazioneGenerica ? 1 * NrCopie : 0)\r\n + (InformativaPrivacy ? 4 : 0)\r\n + (Scelta582x1000 ? 2 : 0)\r\n + (DelegaUnica ? 1 : 0)\r\n + (DocumentiDaConsegnare ? 3 : 0)\r\n + (LetteraNovita ? 1 : 0)\r\n + (Barra2Provvisorio ? 1 : 0);\r\n count1 *= totaleSelezionati;\r\n return count1;\r\n }\r\n\r\n stampa = () => {\r\n const { NrCopie, RistampaLeStampate, StampaDichiarazione } = this.state;\r\n const {\r\n nrDichiarazioniSelezionate, nrDichiarazioniSelezionateStampate, onStampa, totaleSelezionati,\r\n } = this.props;\r\n\r\n const maxPagineStampabili = window.config.stampa730SogliaPagineBlocco;\r\n\r\n const nPagineDaStampare = this.calcoloPagineDaStampare(totaleSelezionati, this.state);\r\n\r\n const avvisaOperazioneLunga = nPagineDaStampare > window.config.stampa730SogliaPagineAvviso;\r\n\r\n if (RistampaLeStampate == false && StampaDichiarazione == true && nrDichiarazioniSelezionateStampate === nrDichiarazioniSelezionate) {\r\n Confirm('Dichiarazioni non stampabili', 'Sono state scelte tutte dichiarazioni stampate senza l\\'opzione Ristampa le già stampate.', 'error').then((x) => { });\r\n } else if (nPagineDaStampare > maxPagineStampabili) {\r\n Confirm('Dichiarazioni non stampabili', 'Le dichiarazioni scelte con le opzioni selezionate superano il limite massimo di pagine stampabili. Selezionare meno dichiarazioni o impostare un minor numero di copie.', 'error').then((x) => { });\r\n } else if (NrCopie > 5) {\r\n Confirm('Dichiarazioni non stampabili', 'Non è possibile stampare più di 5 copie. Impostare il campo \"Numero Copie\" ad un valore pari a 5 o inferiore', 'error').then((x) => { });\r\n } else {\r\n onStampa && onStampa(this.state, avvisaOperazioneLunga);\r\n }\r\n }\r\n\r\n setCheckBoxState = (propName) => {\r\n this.setState({\r\n [propName]: !this.state[propName],\r\n }, () => this.aggiornaStampaAbilitata());\r\n }\r\n\r\n aggiornaStampaAbilitata = () => {\r\n const {\r\n ufficioSelezionato,\r\n } = this.props;\r\n const {\r\n StampaDichiarazione,\r\n PromemoriaConguagli,\r\n DelegaPrecompilatoCU,\r\n StampaF24,\r\n RichiestaAccredito,\r\n CalcoloBonusIRPEF,\r\n Fatture,\r\n AutocertificazioneFamiliari,\r\n AutocertificazioneC4,\r\n AutocertificazioneCasiParticolariQuadroC,\r\n AutocertificazioneOneri,\r\n AutocertificazioneF6,\r\n AutocertificazioneGenerica,\r\n InformativaPrivacy,\r\n Scelta582x1000,\r\n DelegaUnica,\r\n DocumentiDaConsegnare,\r\n LetteraNovita,\r\n Barra2Provvisorio,\r\n NrCopie,\r\n // delegatoCentrale,\r\n } = this.state;\r\n\r\n const stAbilitata = (\r\n StampaDichiarazione\r\n || PromemoriaConguagli\r\n || DelegaPrecompilatoCU\r\n || StampaF24\r\n || RichiestaAccredito\r\n || CalcoloBonusIRPEF\r\n || Fatture\r\n || AutocertificazioneFamiliari\r\n || AutocertificazioneC4\r\n || AutocertificazioneCasiParticolariQuadroC\r\n || AutocertificazioneOneri\r\n || AutocertificazioneF6\r\n || AutocertificazioneGenerica\r\n || InformativaPrivacy\r\n || Scelta582x1000\r\n || DelegaUnica\r\n || DocumentiDaConsegnare\r\n || LetteraNovita\r\n || Barra2Provvisorio\r\n ) && NrCopie && NrCopie > 0;\r\n this.setState({ stampaAbilitata: stAbilitata });\r\n\r\n if (!StampaDichiarazione\r\n || !PromemoriaConguagli\r\n || !DelegaPrecompilatoCU\r\n || !StampaF24\r\n || !RichiestaAccredito\r\n || !CalcoloBonusIRPEF\r\n || !Fatture) {\r\n this.setState({ Gruppo730: false });\r\n }\r\n\r\n if (!AutocertificazioneFamiliari\r\n || !AutocertificazioneC4\r\n || !AutocertificazioneCasiParticolariQuadroC\r\n || !AutocertificazioneOneri\r\n || !AutocertificazioneF6\r\n || !AutocertificazioneGenerica\r\n ) {\r\n this.setState({ GruppoAutocertificazioni: false });\r\n }\r\n\r\n if (!InformativaPrivacy\r\n || !Scelta582x1000\r\n || !DelegaUnica\r\n || !DocumentiDaConsegnare\r\n ) {\r\n this.setState({ GruppoFascicoloContribuente: false });\r\n }\r\n\r\n if (!LetteraNovita\r\n || !Barra2Provvisorio\r\n ) {\r\n this.setState({ GruppoStampeVarie: false });\r\n }\r\n }\r\n\r\n clickGruppo730 = () => {\r\n const {\r\n Gruppo730,\r\n StampaDichiarazione,\r\n PromemoriaConguagli,\r\n DelegaPrecompilatoCU,\r\n StampaF24,\r\n RichiestaAccredito,\r\n CalcoloBonusIRPEF,\r\n Fatture,\r\n // delegatoCentrale,\r\n } = this.state;\r\n const { ufficioSelezionato } = this.props;\r\n if (Gruppo730 == false) {\r\n this.setState({\r\n Gruppo730: true,\r\n StampaDichiarazione: true,\r\n PromemoriaConguagli: true,\r\n DelegaPrecompilatoCU: true,\r\n StampaF24: true,\r\n RichiestaAccredito: true,\r\n CalcoloBonusIRPEF: true,\r\n Fatture: true,\r\n }, () => this.aggiornaStampaAbilitata());\r\n } else if ([Gruppo730,\r\n StampaDichiarazione,\r\n PromemoriaConguagli,\r\n DelegaPrecompilatoCU,\r\n StampaF24,\r\n RichiestaAccredito,\r\n CalcoloBonusIRPEF,\r\n Fatture].every(z => z)) {\r\n this.setState({\r\n Gruppo730: false,\r\n StampaDichiarazione: false,\r\n PromemoriaConguagli: false,\r\n DelegaPrecompilatoCU: false,\r\n StampaF24: false,\r\n RichiestaAccredito: false,\r\n CalcoloBonusIRPEF: false,\r\n Fatture: false,\r\n }, () => this.aggiornaStampaAbilitata());\r\n } else {\r\n this.aggiornaStampaAbilitata();\r\n }\r\n }\r\n\r\n clickGruppoAutocertificazioni = () => {\r\n const {\r\n GruppoAutocertificazioni,\r\n AutocertificazioneFamiliari,\r\n AutocertificazioneC4,\r\n AutocertificazioneCasiParticolariQuadroC,\r\n AutocertificazioneOneri,\r\n AutocertificazioneF6,\r\n AutocertificazioneGenerica,\r\n // delegatoCentrale,\r\n } = this.state;\r\n if (GruppoAutocertificazioni == false) {\r\n this.setState({\r\n GruppoAutocertificazioni: true,\r\n AutocertificazioneFamiliari: true,\r\n AutocertificazioneC4: true,\r\n AutocertificazioneCasiParticolariQuadroC: true,\r\n AutocertificazioneOneri: true,\r\n AutocertificazioneF6: true,\r\n AutocertificazioneGenerica: true,\r\n }, () => this.aggiornaStampaAbilitata());\r\n } else if ([GruppoAutocertificazioni,\r\n AutocertificazioneFamiliari,\r\n AutocertificazioneC4,\r\n AutocertificazioneCasiParticolariQuadroC,\r\n AutocertificazioneOneri,\r\n AutocertificazioneF6,\r\n AutocertificazioneGenerica].every(z => z)) {\r\n this.setState({\r\n GruppoAutocertificazioni: false,\r\n AutocertificazioneFamiliari: false,\r\n AutocertificazioneC4: false,\r\n AutocertificazioneCasiParticolariQuadroC: false,\r\n AutocertificazioneOneri: false,\r\n AutocertificazioneF6: false,\r\n AutocertificazioneGenerica: false,\r\n }, () => this.aggiornaStampaAbilitata());\r\n } else {\r\n this.aggiornaStampaAbilitata();\r\n }\r\n }\r\n\r\n clickGruppoFascicoloContribuente = () => {\r\n const {\r\n GruppoFascicoloContribuente, InformativaPrivacy, Scelta582x1000, DocumentiDaConsegnare, DelegaUnica, // delegatoCentrale,\r\n } = this.state;\r\n\r\n if (GruppoFascicoloContribuente == false) {\r\n this.setState({\r\n GruppoFascicoloContribuente: true,\r\n InformativaPrivacy: true,\r\n Scelta582x1000: true,\r\n DocumentiDaConsegnare: true,\r\n DelegaUnica: true,\r\n }, () => this.aggiornaStampaAbilitata());\r\n } else if ([GruppoFascicoloContribuente, InformativaPrivacy, Scelta582x1000, DocumentiDaConsegnare, DelegaUnica].every(z => z)) {\r\n this.setState({\r\n GruppoFascicoloContribuente: false,\r\n InformativaPrivacy: false,\r\n Scelta582x1000: false,\r\n DocumentiDaConsegnare: false,\r\n DelegaUnica: false,\r\n }, () => this.aggiornaStampaAbilitata());\r\n } else {\r\n this.aggiornaStampaAbilitata();\r\n }\r\n }\r\n\r\n clickGruppoStampeVarie = () => {\r\n const {\r\n GruppoStampeVarie, LetteraNovita, Barra2Provvisorio, // delegatoCentrale,\r\n } = this.state;\r\n if (GruppoStampeVarie == false) {\r\n this.setState({\r\n GruppoStampeVarie: true,\r\n LetteraNovita: true,\r\n Barra2Provvisorio: true,\r\n }, () => this.aggiornaStampaAbilitata());\r\n } else if ([GruppoStampeVarie, LetteraNovita, Barra2Provvisorio].every(z => z)) {\r\n this.setState({\r\n GruppoStampeVarie: false,\r\n LetteraNovita: false,\r\n Barra2Provvisorio: false,\r\n }, () => this.aggiornaStampaAbilitata());\r\n } else {\r\n this.aggiornaStampaAbilitata();\r\n }\r\n }\r\n\r\n render() {\r\n const {\r\n showModal, stampaProva, messaggioErrore, isLoadingModale, annoSelezionato, selezionatiDaAnnoPrecedente, totaleSelezionati, ufficioSelezionato,\r\n } = this.props;\r\n const {\r\n Gruppo730,\r\n StampaDichiarazione,\r\n DelegaPrecompilatoCU,\r\n PromemoriaConguagli,\r\n StampaF24,\r\n RichiestaAccredito,\r\n CalcoloBonusIRPEF,\r\n Fatture,\r\n\r\n GruppoAutocertificazioni,\r\n AutocertificazioneFamiliari,\r\n AutocertificazioneC4,\r\n AutocertificazioneCasiParticolariQuadroC,\r\n AutocertificazioneOneri,\r\n AutocertificazioneF6,\r\n AutocertificazioneGenerica,\r\n\r\n GruppoFascicoloContribuente,\r\n InformativaPrivacy,\r\n Scelta582x1000,\r\n DelegaUnica,\r\n DocumentiDaConsegnare,\r\n\r\n GruppoStampeVarie,\r\n LetteraNovita,\r\n Barra2Provvisorio,\r\n\r\n FronteRetro,\r\n RistampaLeStampate,\r\n GuidaLettura,\r\n ArchiviaInZip,\r\n SalvaPreferenze,\r\n isLoadingInternal,\r\n stampaAbilitata,\r\n // delegatoCentrale,\r\n currentTab,\r\n } = this.state;\r\n\r\n const annoImpostaPiuUno = parseInt(annoSelezionato, 10);\r\n const annoImpostaPiuDue = parseInt(annoSelezionato, 10) + 1;\r\n\r\n const mostraAlertAnnoPrecedente = selezionatiDaAnnoPrecedente\r\n && (StampaDichiarazione\r\n || PromemoriaConguagli\r\n || DelegaPrecompilatoCU\r\n || StampaF24\r\n || RichiestaAccredito\r\n || CalcoloBonusIRPEF\r\n || Fatture\r\n || AutocertificazioneFamiliari\r\n || AutocertificazioneC4\r\n || AutocertificazioneCasiParticolariQuadroC\r\n || AutocertificazioneOneri\r\n || AutocertificazioneF6\r\n || AutocertificazioneGenerica\r\n || Barra2Provvisorio\r\n || LetteraNovita\r\n );\r\n\r\n // const stimaPagineDaStampare = this.calcoloPagineDaStampare(totaleSelezionati, this.state);\r\n\r\n const linkAssistenteStampa = `${window.config.urlAssistente}/permalink/contenuto?aliasArea=730&codiceUfficio=${ufficioSelezionato.CodiceUfficio}&permalink=stampa`;\r\n const linkAssistenteFea = `${window.config.urlAssistente}/permalink/dossier?aliasArea=INF&codiceUfficio=${ufficioSelezionato.CodiceUfficio}&permalink=scoprifea`;\r\n\r\n return (\r\n \r\n

    Stampa

    \r\n\r\n
    \r\n \r\n
    this.form = r}>\r\n\r\n this.setState({ currentTab: i })}\r\n action={(\r\n \r\n )}\r\n >\r\n \r\n Documenti da stampare\r\n \r\n )}\r\n >\r\n Utilizza la nuova funzionalità di Firma Elettronica Avanzata per firmare i documenti velocemente riducendo al minimo ciò che dovrai stampare\r\n {mostraAlertAnnoPrecedente && Non tutte le stampe sono supportate per le dichiarazioni con stato "Anno precedente"
    }\r\n \r\n \r\n \r\n\r\n {/* */}\r\n\r\n
    \r\n\r\n
    \r\n \r\n
    \r\n\r\n
    \r\n\r\n
    \r\n\r\n
    \r\n
    \r\n\r\n
    \r\n\r\n
    \r\n\r\n \r\n
    \r\n\r\n\r\n
    \r\n
    \r\n \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n
    \r\n\r\n \r\n\r\n {/* */}\r\n\r\n
    \r\n\r\n
    \r\n \r\n
    \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n
    \r\n
    \r\n\r\n {/* Fascicolo 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\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n \r\n\r\n {messaggioErrore && {messaggioErrore}}\r\n \r\n\r\n
    \r\n \r\n {currentTab == 0 && }\r\n {currentTab == 0 && }\r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nModaleStampa2.propTypes = {\r\n isLoadingModale: PropTypes.bool,\r\n messaggioErrore: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]),\r\n nrDichiarazioniSelezionate: PropTypes.number.isRequired, // se seleziona tutti il numero di quelle visibili in dashboard\r\n nrDichiarazioniSelezionateStampate: PropTypes.number.isRequired,\r\n onAnnulla: PropTypes.func.isRequired,\r\n onStampa: PropTypes.func.isRequired,\r\n showModal: PropTypes.bool.isRequired,\r\n stampaProva: PropTypes.bool.isRequired,\r\n userId: PropTypes.string.isRequired,\r\n annoSelezionato: PropTypes.number.isRequired,\r\n selezionatiDaAnnoPrecedente: PropTypes.bool.isRequired,\r\n totaleSelezionati: PropTypes.number.isRequired, // se seleziona tutti il numero complessivo\r\n ufficioSelezionato: PropTypes.object.isRequired,\r\n};\r\n\r\nModaleStampa2.defaultProps = {\r\n isLoadingModale: false,\r\n messaggioErrore: '',\r\n};\r\n\r\nexport default ModaleStampa2;\r\n","import React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport webRequest from '../WebRequest';\r\nimport Snackbar from '../Snackbar';\r\nimport { getRandomId } from '../Utils/baseComponentHelper';\r\n\r\n/**\r\nIl componente `FileUpload` permette l'upload di files,\r\nwrappando un qualunque componente al suo interno che fungerà da trigger per l'upload.\r\n */\r\nclass FileUpload extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.uniqueid = getRandomId();\r\n }\r\n\r\n updateFiles = (e) => {\r\n const {\r\n allowUpload, max, multiple, onChange, onProgress, url, onFileUploaded, onCatch,\r\n } = this.props;\r\n\r\n const { files } = e.target;\r\n for (let i = 0; i < files.length; i += 1) {\r\n const file = files[i];\r\n\r\n if (max && Math.ceil(file.size / 1000000) > max) {\r\n Snackbar.show({ type: Snackbar.Types.ERROR, message: `Il file supera la dimensione massima accettata: ${max} MB` });\r\n return;\r\n }\r\n\r\n let type = `.${file.name.split('.').pop()}`;\r\n if (type.indexOf('/') > -1) {\r\n type = type.substr(type.indexOf('/') + 1);\r\n }\r\n\r\n if (this.extensionAccepted(type)) {\r\n const formData = new FormData();\r\n formData.append('file', file);\r\n\r\n if ((allowUpload == null) || (allowUpload != null && allowUpload(file))) {\r\n if (!multiple) {\r\n onChange && onChange(e, file);\r\n }\r\n\r\n if (url) {\r\n webRequest.postFile(\r\n url,\r\n formData,\r\n null,\r\n (evt) => {\r\n const progressPercent = (evt.loaded / evt.total);\r\n onProgress && onProgress(evt, progressPercent, file);\r\n },\r\n )\r\n .then((res) => {\r\n this.refInput.value = '';\r\n onFileUploaded && onFileUploaded(res.data, file);\r\n })\r\n .catch((err) => {\r\n this.refInput.value = '';\r\n onCatch && onCatch(err, file);\r\n });\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (multiple) {\r\n onChange && onChange(e);\r\n }\r\n };\r\n\r\n extensionAccepted = (extension) => {\r\n const { accept } = this.props;\r\n if ((accept && accept.map((x) => x.toLowerCase())\r\n .indexOf(extension.toLowerCase()) === -1)) {\r\n Snackbar.show({ type: Snackbar.Types.ERROR, message: `Tipo di file non supportato: ${extension}` });\r\n return false;\r\n }\r\n\r\n return true;\r\n };\r\n\r\n render() {\r\n const {\r\n children,\r\n accept,\r\n multiple,\r\n disabled,\r\n label,\r\n } = this.props;\r\n\r\n return (\r\n
    \r\n !disabled && this.refInput.click()}\r\n >\r\n {children}\r\n
    \r\n {label && }\r\n x).join(',')) || 'true'}\r\n className=\"upload__input\"\r\n data-origin=\"fileupload\"\r\n onChange={this.updateFiles}\r\n ref={(r) => { this.refInput = r; }}\r\n type=\"file\"\r\n />\r\n
    \r\n );\r\n }\r\n}\r\n\r\nFileUpload.defaultProps = {\r\n accept: '',\r\n allowUpload: null,\r\n children: null,\r\n max: 10240,\r\n multiple: false,\r\n onChange: null,\r\n onFileUploaded: null,\r\n onCatch: null,\r\n onProgress: null,\r\n disabled: false,\r\n url: null,\r\n label: null,\r\n};\r\n\r\nFileUpload.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 * Posso specificare se permettere o no il caricamento di un file:\r\n * ```\r\n * allowUpload(file)\r\n * ```\r\n * dove:\r\n * * *file*: file da caricare\r\n */\r\n allowUpload: PropTypes.func,\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 /** Dimensione massima caricabile (in MB) */\r\n max: PropTypes.number,\r\n /** Permette di specificare se il componente consentirà l'upload di files multipli */\r\n multiple: PropTypes.bool,\r\n /**\r\n * Callback invocata alla modifica del file:\r\n * ```\r\n * onChange(event, file)\r\n * ```\r\n * dove:\r\n * * *event*: evento scatenato al caricamento del file\r\n * * *file*: file caricato (solo nel caso di file singolo)\r\n */\r\n onChange: PropTypes.func,\r\n /**\r\n * Callback di avvenuto upload:\r\n * ```\r\n * onFileUploaded(data, file)\r\n * ```\r\n * dove:\r\n * * *data*: risposta del server\r\n * * *file*: file caricato\r\n */\r\n onFileUploaded: PropTypes.func,\r\n /**\r\n * Callback di avvenuto errore (catch) durante la chiamata post al server:\r\n * ```\r\n * onCatch(error, file)\r\n * ```\r\n * dove:\r\n * * *error*: errore restituito dalla catch\r\n * * *file*: file caricato\r\n */\r\n onCatch: PropTypes.func,\r\n /**\r\n * Callback di progresso dell'upload del file:\r\n * ```\r\n * onProgress(event, progressPercent, file)\r\n * ```\r\n * dove:\r\n * * *event*: evento di progresso\r\n * * *progressPercent*: progressivo di caricamento in percentuale\r\n * * *file*: file caricato\r\n */\r\n onProgress: PropTypes.func,\r\n /** Indirizzo dell'endpoint al quale verrà inviato il file.\r\n * Se non viene passato questo parametro allora non viene effettuato\r\n * la post del file, ma solo gestita la selezione.\r\n * In quest'ultimo caso ovviamente non verranno utilizzati i\r\n * parametri *onFileUploaded* e *onCatch*.\r\n */\r\n url: PropTypes.string,\r\n /**\r\n * Etichetta dell'input (non visibile)\r\n */\r\n label: PropTypes.string,\r\n};\r\n\r\nexport default FileUpload;\r\n","import FileUpload from './FileUpload';\r\n\r\nexport default FileUpload;\r\n","const StatoDichiarazioneDaImportare = {\r\n NonPresente: 0,\r\n GiaPresente: 1,\r\n NonImportabile: 2,\r\n};\r\n\r\nconst toString = (tipo) => {\r\n switch (tipo) {\r\n case StatoDichiarazioneDaImportare.GiaPresente:\r\n return 'Già presente';\r\n case StatoDichiarazioneDaImportare.NonImportabile:\r\n return 'Non importabile';\r\n default:\r\n return '';\r\n }\r\n};\r\n\r\nStatoDichiarazioneDaImportare.stringify = toString;\r\n\r\nexport default StatoDichiarazioneDaImportare;\r\n","const TipoImportazione = {\r\n NonSelezionato: 0,\r\n Corrente: 1,\r\n Precedente: 2,\r\n};\r\n\r\nconst toString = (tipo) => {\r\n switch (tipo) {\r\n case TipoImportazione.Corrente:\r\n return '730/2020';\r\n case TipoImportazione.Precedente:\r\n return 'anno precedente';\r\n default:\r\n return '';\r\n }\r\n};\r\n\r\nTipoImportazione.stringify = toString;\r\n\r\nexport default TipoImportazione;\r\n","import React, { Component } from 'react';\r\nimport { Checkbox, InfoTooltip } from 'framework-ui-components';\r\n\r\nfunction StatoDaImportare(stato) {\r\n switch (stato) {\r\n case 0:\r\n return 'Importabile';\r\n case 1:\r\n return 'Sovrascrivi esistente';\r\n case 2:\r\n return 'Non importabile';\r\n default:\r\n return '';\r\n }\r\n}\r\n\r\nclass RigaImportazione extends Component {\r\n render() {\r\n const {\r\n item,\r\n } = this.props;\r\n\r\n return (\r\n \r\n this.props.additionalRowData.impostaDaImportare(item.CodiceFiscaleDichiarante)}\r\n disabled={item.StatoDichiarazioneDaImportare == 2}\r\n />\r\n \r\n {item.CodiceUfficio}\r\n {item.DescrizioneDichiarante}\r\n {item.CodiceFiscaleDichiarante}\r\n {item.Tipo}\r\n \r\n {StatoDaImportare(item.StatoDichiarazioneDaImportare)}\r\n {item.StatoDichiarazioneDaImportare == 2 && (\r\n \r\n {item.CodiceFiscaleDoppio\r\n ? 'La dichiarazione non è importabile in quanto il codice fiscale del contribuente è presente più volte tra le dichiarazioni da importare'\r\n : 'La dichiarazione non è importabile perché esiste già una dichiarazione con status diverso da “Anno precedente”, “Errata”, ”In lavorazione” o “Annullata”.'}\r\n \r\n )}\r\n \r\n {item.DescrizioneConiuge}\r\n {item.CodiceFiscaleConiuge}\r\n {item.DescrizioneSostituto}\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default RigaImportazione;\r\n","import React, { Component, Fragment } from 'react';\r\nimport { findDOMNode } from 'react-dom';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Button,\r\n Grid,\r\n Input,\r\n Modal,\r\n FileUpload,\r\n ODataTable,\r\n Progress,\r\n} from 'framework-ui-components';\r\nimport { creaDaXmlAnnoCorrente } from 'apis/setteTrentaApi';\r\nimport { TipoImportazione, StatoDichiarazioneDaImportare } from 'enums';\r\nimport { SnackbarWrapper as SnackbarManager } from 'framework-ui-components/Components/Snackbar';\r\nimport RigaImportazione from './RigaImportazione';\r\nimport InputRicerca from '../../../components/InputRicerca';\r\n\r\nconst _tipoImportazione = {\r\n NonSelezionato: 0,\r\n Corrente: 1,\r\n Precedente: 2,\r\n};\r\n\r\nfunction MessaggioSelezionaDeseleziona(stato) {\r\n switch (stato) {\r\n case false:\r\n return 'Deseleziona tutte';\r\n break;\r\n case true:\r\n return 'Seleziona tutte';\r\n break;\r\n }\r\n}\r\n\r\nfunction calcolaUploadSpeed(uploadedBytes, timeStarted) {\r\n const timeElapsed = new Date() - timeStarted; // Assuming that timeStarted is a Date Object\r\n const uploadSpeed = uploadedBytes / (timeElapsed / 1000); // Upload speed in second\r\n // console.log(uploadSpeed, timeStarted, timeElapsed / 1000);\r\n return uploadSpeed;\r\n}\r\n\r\nfunction sommaUploadSpeed(sumAverageUpload, byteLoaded, inizioUpload) {\r\n return sumAverageUpload + calcolaUploadSpeed(byteLoaded, inizioUpload);\r\n}\r\n\r\nfunction calcolaAverageUploadSpeed(\r\n sumAverageUpload,\r\n byteLoaded,\r\n inizioUpload,\r\n contaFeedbackUpload,\r\n) {\r\n return (\r\n sommaUploadSpeed(sumAverageUpload, byteLoaded, inizioUpload)\r\n / contaFeedbackUpload\r\n + 1\r\n );\r\n}\r\n\r\nfunction calcolaTempoTotaleGeneraLista(averageUpload, bytesTotaliFornitura) {\r\n // calcolo a spanne il numero di dichiarazioni in base ai bytes della fornitura\r\n const numeroDichiarazioni = parseInt(bytesTotaliFornitura / 14000).toFixed(0);\r\n // console.log(averageUpload, numeroDichiarazioni);\r\n const scartoSePocheDichiarazioni = numeroDichiarazioni < 30 ? 0.15 : 0;\r\n // in base alla velocità media dell'upload mi calcolo a spanne quanto tempo può impiegare l'elaborazione della lista\r\n if (averageUpload < 40000) {\r\n return parseInt(numeroDichiarazioni * (0.36 + scartoSePocheDichiarazioni)).toFixed(1);\r\n }\r\n if (averageUpload < 66000) {\r\n return parseInt(numeroDichiarazioni * (0.30 + scartoSePocheDichiarazioni)).toFixed(1);\r\n }\r\n if (averageUpload < 100000) {\r\n return parseInt(numeroDichiarazioni * (0.13 + scartoSePocheDichiarazioni)).toFixed(1);\r\n }\r\n if (averageUpload < 400000) {\r\n return parseInt(numeroDichiarazioni * (0.08 + scartoSePocheDichiarazioni)).toFixed(1);\r\n }\r\n return parseInt(numeroDichiarazioni * (0.025 + scartoSePocheDichiarazioni)).toFixed(1);\r\n}\r\n\r\nconst FORM_INITIAL_STATE = {\r\n TipoImportazione: _tipoImportazione.NonSelezionato,\r\n windowMessage: '',\r\n caricandoPercentualeGeneraLista: false,\r\n listaDichiarazioni: [],\r\n fileCaricati: [],\r\n selezionaFile: true,\r\n messaggioSeleziona: true,\r\n currentCountGeneraLista: 30,\r\n contaFeedbackUpload: 0,\r\n sumAverageUpload: 0,\r\n averageUpload: 0,\r\n};\r\n\r\nclass ModaleImportazione extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n ...FORM_INITIAL_STATE,\r\n bloccaInserimento: true,\r\n caricandoPercentualeGeneraLista: false,\r\n listaDichiarazioni: [],\r\n fileCaricati: [],\r\n selezionaFile: true,\r\n messaggioSeleziona: true,\r\n searchTerm: null,\r\n currentCountGeneraLista: 30,\r\n contaFeedbackUpload: 0,\r\n sumAverageUpload: 0,\r\n uploadProgress: {},\r\n averageUpload: 0,\r\n totaleBytes: 0,\r\n totaleFiles: 0,\r\n InizioUpload: null,\r\n };\r\n\r\n this.initializeComponent();\r\n }\r\n\r\n componentDidMount() {\r\n if (this.props.tipoImportazione == _tipoImportazione.Corrente) {\r\n this.setState({ TipoImportazione: TipoImportazione.Corrente });\r\n }\r\n if (this.props.showModal) {\r\n setTimeout(\r\n () => this.fileUpload && findDOMNode(this.fileUpload).click(),\r\n 100,\r\n );\r\n }\r\n const intervalId = setInterval(this.timerGeneraLista, 1000);\r\n // store intervalId in the state so it can be accessed later:\r\n this.setState({ intervalIdGeneraLista: intervalId });\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (\r\n this.props.tipoImportazione != nextProps.tipoImportazione\r\n && nextProps.tipoImportazione == _tipoImportazione.Corrente\r\n ) {\r\n this.setState({ TipoImportazione: TipoImportazione.Corrente });\r\n }\r\n if (nextProps.showModal != this.props.showModal && nextProps.showModal) {\r\n setTimeout(\r\n () => this.fileUpload && findDOMNode(this.fileUpload).click(),\r\n 100,\r\n );\r\n }\r\n }\r\n\r\n initializeComponent() {\r\n this.annulla = this.annulla.bind(this);\r\n this.crea = this.crea.bind(this);\r\n this.updateForm = this.updateForm.bind(this);\r\n }\r\n\r\n annulla() {\r\n this.setState(\r\n FORM_INITIAL_STATE,\r\n () => this.props.onAnnulla && this.props.onAnnulla(),\r\n );\r\n }\r\n\r\n crea() {\r\n const { listaDichiarazioni, fileCaricati } = this.state;\r\n const { ufficioSelezionato, annoSelezionato, onAnnulla } = this.props;\r\n\r\n if (!listaDichiarazioni.some((z) => z.DaImportare)) {\r\n SnackbarManager.notifyError('Nessun elemento selezionato');\r\n } else {\r\n const dichiarazioniPerFile = listaDichiarazioni.filter((x) => x.DaImportare).reduce((memo, x) => {\r\n const { res, file } = fileCaricati.find((y) => y.res.ListaDichiarazioni.some((z) => z.CodiceFiscaleDichiarante === x.CodiceFiscaleDichiarante));\r\n const context = memo.find((y) => y.file === file);\r\n\r\n if (context) {\r\n context.lista.push(x);\r\n } else {\r\n memo.push({ res, file, lista: [x] });\r\n }\r\n\r\n return memo;\r\n }, []);\r\n\r\n const promises = dichiarazioniPerFile.map(({ res, file, lista }) => creaDaXmlAnnoCorrente(res.PathFornituraXmlAnnoCorrenteDaImportare, lista, ufficioSelezionato, annoSelezionato, file.name));\r\n\r\n return Promise.all(promises).then((results) => {\r\n this.setState({\r\n listaDichiarazioni: [],\r\n fileCaricati: [],\r\n selezionaFile: true,\r\n totaleFiles: 0,\r\n totaleBytes: 0,\r\n averageUpload: 0,\r\n messaggioSeleziona: true,\r\n caricandoPercentualeGeneraLista: false,\r\n });\r\n\r\n results.forEach((x, i) => {\r\n if (!x.Success) {\r\n SnackbarManager.notifyError(`Si è verificato un errore durante l'importazione dell'XML \"${dichiarazioniPerFile[i].file.name}\" (${x.DetectedProblems[0]})`);\r\n }\r\n });\r\n\r\n if (!results.some((x) => !x.Success)) {\r\n SnackbarManager.notifySuccess('Importazione XML avviata con successo!');\r\n }\r\n\r\n onAnnulla && onAnnulla();\r\n });\r\n }\r\n }\r\n\r\n updateForm(data) {\r\n this.setState(data);\r\n }\r\n\r\n aggiungiLista = (res, file) => {\r\n if (!res) {\r\n SnackbarManager.notifyError(`Si è verificato un errore durante l'importazione dell'XML \"${file.name}\"`);\r\n } else if (!res.Success) {\r\n SnackbarManager.notifyError(`Si è verificato un errore durante l'importazione dell'XML \"${file.name}\" (${res.DetectedProblems[0]})`);\r\n }\r\n\r\n this.setState(({\r\n totaleFiles, fileCaricati, listaDichiarazioni, intervalIdGeneraLista,\r\n }) => {\r\n const fileRimasti = totaleFiles - 1;\r\n const dichiarazioni = [...listaDichiarazioni, ...res.ListaDichiarazioni];\r\n const codiciFiscali = dichiarazioni.map((x) => [x.CodiceFiscaleDichiarante, x.CodiceFiscaleConiuge]).flat();\r\n const codiciFiscaliDoppi = codiciFiscali.filter((x) => x && codiciFiscali.filter((y) => y === x).length > 1);\r\n const codiceFiscaleDoppio = (item) => codiciFiscaliDoppi.includes(item.CodiceFiscaleDichiarante) || codiciFiscaliDoppi.includes(item.CodiceFiscaleConiuge);\r\n const lista = dichiarazioni.map((x) => ({\r\n ...x,\r\n CodiceFiscaleDoppio: codiceFiscaleDoppio(x),\r\n DaImportare: !codiceFiscaleDoppio(x) && x.DaImportare,\r\n StatoDichiarazioneDaImportare: codiceFiscaleDoppio(x) ? StatoDichiarazioneDaImportare.NonImportabile : x.StatoDichiarazioneDaImportare,\r\n }));\r\n\r\n if (fileRimasti === 0) {\r\n clearInterval(intervalIdGeneraLista);\r\n }\r\n\r\n return {\r\n totaleFiles: fileRimasti,\r\n caricandoPercentualeGeneraLista: fileRimasti > 0,\r\n fileCaricati: [...fileCaricati, { res, file }],\r\n selezionaFile: fileRimasti > 0,\r\n messaggioSeleziona: lista.some((x) => !x.DaImportare && x.StatoDichiarazioneDaImportare !== StatoDichiarazioneDaImportare.NonImportabile),\r\n listaDichiarazioni: lista,\r\n };\r\n });\r\n };\r\n\r\n impostaDaImportare = (cf) => {\r\n const dichiarazioni = this.state.listaDichiarazioni;\r\n dichiarazioni.forEach((x) => {\r\n if (x.CodiceFiscaleDichiarante == cf) {\r\n x.DaImportare = !x.DaImportare;\r\n }\r\n });\r\n\r\n this.setState({ listaDichiarazioni: dichiarazioni });\r\n };\r\n\r\n selezionaTutte(lista) {\r\n const daImportare = this.state.messaggioSeleziona;\r\n lista\r\n .filter((z) => z.StatoDichiarazioneDaImportare != 2)\r\n .map((x) => {\r\n x.DaImportare = daImportare;\r\n return x;\r\n });\r\n this.setState({\r\n listaDichiarazioni: lista,\r\n messaggioSeleziona: !daImportare,\r\n });\r\n }\r\n\r\n paginaRisultati = (top, skip, sortProperty, sortOrder, filters) => {\r\n let dichDaPaginare = this.state.listaDichiarazioni;\r\n if (this.state.searchTerm) {\r\n dichDaPaginare = dichDaPaginare.filter(\r\n (x) => (x.DescrizioneDichiarante\r\n && x.DescrizioneDichiarante.toLowerCase().indexOf(\r\n this.state.searchTerm.toLowerCase(),\r\n ) != -1)\r\n || (x.CodiceFiscaleDichiarante\r\n && x.CodiceFiscaleDichiarante.toLowerCase().indexOf(\r\n this.state.searchTerm.toLowerCase(),\r\n ) != -1)\r\n || (x.DescrizioneConiuge\r\n && x.DescrizioneConiuge.toLowerCase().indexOf(\r\n this.state.searchTerm.toLowerCase(),\r\n ) != -1)\r\n || (x.CodiceFiscaleConiuge\r\n && x.CodiceFiscaleConiuge.toLowerCase().indexOf(\r\n this.state.searchTerm.toLowerCase(),\r\n ) != -1)\r\n || (x.DescrizioneSostituto\r\n && x.DescrizioneSostituto.toLowerCase().indexOf(\r\n this.state.searchTerm.toLowerCase(),\r\n ) != -1),\r\n );\r\n }\r\n\r\n if (sortProperty) {\r\n dichDaPaginare = dichDaPaginare.sort((a, b) => {\r\n const x = a[sortProperty] || '';\r\n const y = b[sortProperty] || '';\r\n if (x < y) {\r\n return sortOrder ? -1 : 1;\r\n }\r\n if (x > y) {\r\n return sortOrder ? 1 : -1;\r\n }\r\n return 0;\r\n });\r\n }\r\n const paginazione = dichDaPaginare.slice(skip, skip + top);\r\n return {\r\n Items: paginazione,\r\n Count: dichDaPaginare.length,\r\n };\r\n };\r\n\r\n filtraListaRisultati = (searchTerm) => {\r\n this.setState(\r\n { searchTerm: searchTerm.trim() },\r\n () => this.tabellaImport && this.tabellaImport.loadPage(),\r\n );\r\n };\r\n\r\n // in base ai byte caricati e ai byte totali del file calcolo quanto manca\r\n tempoRimanente = (uploadedBytes, totalBytes, timeStarted) => {\r\n const uploadSpeed = calcolaUploadSpeed(uploadedBytes, timeStarted);\r\n\r\n const tempTempoRimanente = ((totalBytes - uploadedBytes) / uploadSpeed) * 1000;\r\n const tempo = new Date(tempTempoRimanente).toISOString().substr(11, 8);\r\n\r\n // const tempTempoRimanenteAverage = ((totalBytes - uploadedBytes) / this.state.averageUpload) * 1000;\r\n // const tempoAverage = new Date(tempTempoRimanenteAverage).toISOString().substr(11, 8);\r\n\r\n // debugger;\r\n // console.log(\"temporimanente: \", tempTempoRimanente, tempo, tempoAverage);\r\n return tempo;\r\n };\r\n\r\n PercentualeElaborazioneLista = (tempoTotaleGenerazioneLista, tempoRimanente) => {\r\n const tempoTrascorso = tempoTotaleGenerazioneLista - tempoRimanente;\r\n if (tempoTrascorso < 0) {\r\n return 100;\r\n }\r\n return parseInt(((tempoTrascorso * 100) / tempoTotaleGenerazioneLista).toFixed(1));\r\n }\r\n\r\n timerGeneraLista = () => {\r\n const {\r\n caricandoPercentualeGeneraLista,\r\n currentCountGeneraLista,\r\n intervalIdGeneraLista,\r\n averageUpload,\r\n totaleBytes,\r\n } = this.state;\r\n\r\n const percentualeCaricamento = this.calcolaPercentualeCaricamento();\r\n let tempcaricandoPercentualeGeneraLista = caricandoPercentualeGeneraLista;\r\n let tempcurrentCountGeneraLista = currentCountGeneraLista;\r\n\r\n if (caricandoPercentualeGeneraLista === false && percentualeCaricamento === 100) {\r\n tempcaricandoPercentualeGeneraLista = true;\r\n tempcurrentCountGeneraLista = calcolaTempoTotaleGeneraLista(\r\n averageUpload,\r\n totaleBytes,\r\n );\r\n }\r\n\r\n const newCount = percentualeCaricamento >= 100 ? tempcurrentCountGeneraLista - 1 : tempcurrentCountGeneraLista;\r\n\r\n if (newCount >= 0) {\r\n this.setState({\r\n currentCountGeneraLista: newCount,\r\n caricandoPercentualeGeneraLista: tempcaricandoPercentualeGeneraLista,\r\n });\r\n } else {\r\n clearInterval(intervalIdGeneraLista);\r\n }\r\n };\r\n\r\n calcolaBytesCaricati() {\r\n const { uploadProgress } = this.state;\r\n return Object.values(uploadProgress).reduce((memo, x) => memo + x.loaded, 0);\r\n }\r\n\r\n calcolaPercentualeCaricamento() {\r\n const { totaleBytes } = this.state;\r\n return parseInt((this.calcolaBytesCaricati() / totaleBytes * 100).toFixed(1));\r\n }\r\n\r\n render() {\r\n const {\r\n showModal,\r\n isLoading,\r\n tipoImportazione,\r\n } = this.props;\r\n const {\r\n totaleBytes,\r\n selezionaFile,\r\n messaggioSeleziona,\r\n InizioUpload,\r\n currentCountGeneraLista,\r\n averageUpload,\r\n } = this.state;\r\n\r\n const percentualeCaricamento = this.calcolaPercentualeCaricamento();\r\n const bytesCaricati = this.calcolaBytesCaricati();\r\n const mostraGeneraLista = percentualeCaricamento >= 100;\r\n\r\n return (\r\n \r\n \r\n Importazione da XML {TipoImportazione.stringify(tipoImportazione)}\r\n \r\n \r\n
    \r\n {selezionaFile ? (\r\n \r\n {\r\n this.setState(({\r\n sumAverageUpload, contaFeedbackUpload, uploadProgress,\r\n }) => ({\r\n uploadProgress: { ...uploadProgress, [file.name]: { loaded: evt.loaded, total: evt.total } },\r\n sumAverageUpload: sommaUploadSpeed(\r\n sumAverageUpload,\r\n bytesCaricati,\r\n InizioUpload,\r\n ),\r\n contaFeedbackUpload: contaFeedbackUpload + 1,\r\n averageUpload: calcolaAverageUploadSpeed(\r\n sumAverageUpload,\r\n bytesCaricati,\r\n InizioUpload,\r\n contaFeedbackUpload,\r\n ),\r\n currentCountGeneraLista: null,\r\n }));\r\n }}\r\n onChange={(evt) => {\r\n this.setState({\r\n InizioUpload: Date.now(),\r\n caricandoPercentualeGeneraLista: false,\r\n totaleFiles: evt.target.files.length,\r\n totaleBytes: Array.from(evt.target.files).reduce((memo, x) => x.size + memo, 0),\r\n });\r\n }}\r\n >\r\n Scegli la fornitura da importare  \r\n \r\n \r\n
    \r\n  \r\n {percentualeCaricamento && percentualeCaricamento !== 0 ? (\r\n \r\n
    \r\n  \r\n
    \r\n Caricamento del file\r\n \r\n
    \r\n ) : (\r\n
    \r\n )}\r\n {mostraGeneraLista == true ? (\r\n \r\n
    \r\n  \r\n
    \r\n Elaborazione fornitura telematica\r\n \r\n
    \r\n  \r\n
    \r\n Al termine dell'elaborazione sarà possibile scegliere le\r\n dichiarazioni da importare\r\n
    \r\n
    \r\n ) : (\r\n
    \r\n
    \r\n  \r\n
     \r\n
     \r\n
    \r\n )}\r\n \r\n ) : (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {!selezionaFile && (\r\n \r\n )}\r\n \r\n \r\n {!selezionaFile && (\r\n this.selezionaTutte(this.state.listaDichiarazioni)}\r\n >\r\n {MessaggioSelezionaDeseleziona(messaggioSeleziona)}\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n (this.tabellaImport = r)}\r\n dataSource={this.paginaRisultati}\r\n pageSize={10}\r\n sortProperty=\"CodiceFiscaleDichiarante\"\r\n availablePageSizes={[5, 10, 20]}\r\n additionalRowData={{\r\n impostaDaImportare: this.impostaDaImportare,\r\n }}\r\n row={RigaImportazione}\r\n >\r\n \r\n \r\n Ufficio\r\n \r\n \r\n Dichiarante\r\n \r\n \r\n CF Dichiarante\r\n \r\n \r\n Tipo\r\n \r\n \r\n Stato\r\n \r\n \r\n Coniuge\r\n \r\n \r\n CF Coniuge\r\n \r\n \r\n Sostituto\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nModaleImportazione.TipoImportazione = _tipoImportazione;\r\n\r\nModaleImportazione.propTypes = {\r\n datiIniziali: PropTypes.object,\r\n isLoading: PropTypes.bool,\r\n messaggioErrore: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.arrayOf(PropTypes.string),\r\n ]),\r\n onAnnulla: PropTypes.func.isRequired,\r\n onCreaNuova: PropTypes.func,\r\n onRipristinaEliminata: PropTypes.func,\r\n showModal: PropTypes.bool.isRequired,\r\n tipoImportazione: PropTypes.oneOfType([PropTypes.number, PropTypes.string])\r\n .isRequired,\r\n ufficioSelezionato: PropTypes.string,\r\n annoSelezionato: PropTypes.number,\r\n};\r\n\r\nModaleImportazione.defaultProps = {\r\n tipoImportazione: _tipoImportazione.NonSelezionato,\r\n};\r\n\r\nexport default ModaleImportazione;\r\n","import React, { Component } from 'react';\r\nimport { Checkbox, InfoTooltip } from 'framework-ui-components';\r\n\r\nfunction StatoDaImportare(stato) {\r\n switch (stato) {\r\n case 0:\r\n return 'Importabile';\r\n case 1:\r\n return 'Sovrascrivi esistente';\r\n case 2:\r\n return 'Non importabile';\r\n default:\r\n return '';\r\n }\r\n}\r\n\r\nclass RigaImportazione extends Component {\r\n render() {\r\n const {\r\n item,\r\n } = this.props;\r\n\r\n return (\r\n \r\n this.props.additionalRowData.impostaDaImportare(item.CodiceFiscaleDichiarante)}\r\n disabled={item.StatoDichiarazioneDaImportare == 2}\r\n />\r\n \r\n {item.DescrizioneDichiarante}\r\n {item.CodiceFiscaleDichiarante}\r\n {item.Tipo}\r\n {StatoDaImportare(item.StatoDichiarazioneDaImportare)}{item.StatoDichiarazioneDaImportare == 2\r\n && La dichiarazione non é importabile perché esiste già una dichiarazione con status diverso da “Anno precedente”, “Errata”, ”In lavorazione” o “Annullata”.}\r\n \r\n {item.DescrizioneConiuge}\r\n {item.CodiceFiscaleConiuge}\r\n {item.DescrizioneSostituto}\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default RigaImportazione;\r\n","'use strict';\r\n\r\nimport React, { Component, Fragment } from 'react';\r\nimport { findDOMNode } from 'react-dom';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Button,\r\n Grid,\r\n Input,\r\n Modal,\r\n FileUpload,\r\n ODataTable,\r\n Progress,\r\n ConsoleLogger,\r\n} from 'framework-ui-components';\r\nimport { creaDaRedditiPFAnnoCorrente } from 'apis/setteTrentaApi';\r\nimport { TipoImportazione } from 'enums';\r\nimport { SnackbarWrapper as SnackbarManager } from 'framework-ui-components/Components/Snackbar';\r\nimport RigaImportazione from './RigaImportazione';\r\nimport InputRicerca from '../../../components/InputRicerca';\r\n\r\nconst _tipoImportazione = {\r\n NonSelezionato: 0,\r\n Corrente: 1,\r\n Precedente: 2,\r\n};\r\n\r\nfunction MessaggioSelezionaDeseleziona(stato) {\r\n switch (stato) {\r\n case false:\r\n return 'Deseleziona tutte';\r\n break;\r\n case true:\r\n return 'Seleziona tutte';\r\n break;\r\n }\r\n}\r\n\r\nfunction calcolaUploadSpeed(uploadedBytes, timeStarted) {\r\n const timeElapsed = new Date() - timeStarted; // Assuming that timeStarted is a Date Object\r\n const uploadSpeed = uploadedBytes / (timeElapsed / 1000); // Upload speed in second\r\n //console.log(uploadSpeed, timeStarted, timeElapsed / 1000);\r\n return uploadSpeed;\r\n}\r\n\r\nfunction sommaUploadSpeed(sumAverageUpload, byteLoaded, inizioUpload) {\r\n return sumAverageUpload + calcolaUploadSpeed(byteLoaded, inizioUpload);\r\n}\r\n\r\nfunction calcolaAverageUploadSpeed(\r\n sumAverageUpload,\r\n byteLoaded,\r\n inizioUpload,\r\n contaFeedbackUpload\r\n) {\r\n return (\r\n sommaUploadSpeed(sumAverageUpload, byteLoaded, inizioUpload) /\r\n contaFeedbackUpload +\r\n 1\r\n );\r\n}\r\n\r\nfunction calcolaTempoTotaleGeneraLista(averageUpload, bytesTotaliFornitura) {\r\n //calcolo a spanne il numero di dichiarazioni in base ai bytes della fornitura\r\n const numeroDichiarazioni = parseInt(bytesTotaliFornitura / 14000).toFixed(0);\r\n //console.log(averageUpload, numeroDichiarazioni);\r\n var scartoSePocheDichiarazioni = numeroDichiarazioni < 30 ? 0.15 : 0;\r\n //in base alla velocità media dell'upload mi calcolo a spanne quanto tempo può impiegare l'elaborazione della lista\r\n if (averageUpload < 40000) {\r\n return parseInt(numeroDichiarazioni * (0.36 + scartoSePocheDichiarazioni)).toFixed(1);\r\n }\r\n if (averageUpload < 66000) {\r\n return parseInt(numeroDichiarazioni * (0.30 + scartoSePocheDichiarazioni)).toFixed(1);\r\n }\r\n if (averageUpload < 100000) {\r\n return parseInt(numeroDichiarazioni * (0.13 + scartoSePocheDichiarazioni)).toFixed(1);\r\n }\r\n if (averageUpload < 400000) {\r\n return parseInt(numeroDichiarazioni * (0.08 + scartoSePocheDichiarazioni)).toFixed(1);\r\n }\r\n return parseInt(numeroDichiarazioni * (0.025 + scartoSePocheDichiarazioni)).toFixed(1);\r\n}\r\n\r\nconst FORM_INITIAL_STATE = {\r\n TipoImportazione: _tipoImportazione.NonSelezionato,\r\n windowMessage: '',\r\n caricandoPercentualeGeneraLista: false,\r\n listaDichiarazioni: [],\r\n fileCaricato: null,\r\n nomeFile: null,\r\n pathFornituraRedditiPFDaImportare: null,\r\n selezionaFile: true,\r\n messaggioSeleziona: true,\r\n PercentualeCaricamento: null,\r\n currentCountGeneraLista: 30,\r\n contaFeedbackUpload: 0,\r\n sumAverageUpload: 0,\r\n averageUpload: 0,\r\n};\r\n\r\nclass ModaleImportazioneRedditiPF extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n ...FORM_INITIAL_STATE,\r\n bloccaInserimento: true,\r\n caricandoPercentualeGeneraLista: false,\r\n listaDichiarazioni: [],\r\n fileCaricato: null,\r\n nomeFile: null,\r\n pathFornituraRedditiPFDaImportare: null,\r\n selezionaFile: true,\r\n messaggioSeleziona: true,\r\n searchTerm: null,\r\n currentCountGeneraLista: 30,\r\n contaFeedbackUpload: 0,\r\n sumAverageUpload: 0,\r\n averageUpload: 0,\r\n InizioUpload: null,\r\n };\r\n\r\n this.initializeComponent();\r\n }\r\n\r\n componentDidMount() {\r\n if (this.props.tipoImportazione == _tipoImportazione.Corrente) {\r\n this.setState({ TipoImportazione: TipoImportazione.Corrente });\r\n }\r\n if (this.props.showModal) {\r\n setTimeout(\r\n () => this.fileUpload && findDOMNode(this.fileUpload).click(),\r\n 100\r\n );\r\n }\r\n var intervalId = setInterval(this.timerGeneraLista, 1000);\r\n // store intervalId in the state so it can be accessed later:\r\n this.setState({ intervalIdGeneraLista: intervalId });\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (\r\n this.props.tipoImportazione != nextProps.tipoImportazione &&\r\n nextProps.tipoImportazione == _tipoImportazione.Corrente\r\n ) {\r\n this.setState({ TipoImportazione: TipoImportazione.Corrente });\r\n }\r\n if (nextProps.showModal != this.props.showModal && nextProps.showModal) {\r\n setTimeout(\r\n () => this.fileUpload && findDOMNode(this.fileUpload).click(),\r\n 100\r\n );\r\n }\r\n }\r\n\r\n initializeComponent() {\r\n this.annulla = this.annulla.bind(this);\r\n this.crea = this.crea.bind(this);\r\n this.updateForm = this.updateForm.bind(this);\r\n }\r\n\r\n annulla() {\r\n this.setState(\r\n FORM_INITIAL_STATE,\r\n () => this.props.onAnnulla && this.props.onAnnulla()\r\n );\r\n }\r\n\r\n crea() {\r\n var lista = this.state.listaDichiarazioni;\r\n if (lista.filter((z) => z.DaImportare == true).length == 0) {\r\n SnackbarManager.notifyError('Nessun elemento selezionato');\r\n } else {\r\n var file = this.state.fileCaricato;\r\n var studio = this.props.ufficioSelezionato;\r\n return creaDaRedditiPFAnnoCorrente(\r\n lista,\r\n studio,\r\n this.props.annoSelezionato,\r\n this.state.nomeFile,\r\n this.state.pathFornituraRedditiPFDaImportare,\r\n ).then((res) => {\r\n if (res.Success) {\r\n this.props.onAnnulla && this.props.onAnnulla();\r\n } else {\r\n res.DetectedProblems.unshift(\"Errore durante l'importazione\");\r\n SnackbarManager.notifyError(res.DetectedProblems);\r\n }\r\n this.setState({\r\n listaDichiarazioni: [],\r\n selezionaFile: true,\r\n messaggioSeleziona: true,\r\n caricandoPercentualeGeneraLista: false,\r\n PercentualeCaricamento: null,\r\n nomeFile: null,\r\n pathFornituraRedditiPFDaImportare: null,\r\n });\r\n });\r\n }\r\n }\r\n\r\n updateForm(data) {\r\n this.setState(data);\r\n }\r\n\r\n aggiungiLista = (res, file) => {\r\n this.setState({\r\n caricandoPercentualeGeneraLista: false,\r\n PercentualeCaricamento: null,\r\n });\r\n clearInterval(this.state.intervalIdGeneraLista);\r\n if (res) {\r\n if (!res.Success) {\r\n SnackbarManager.notifyError(\r\n 'Errore in importazione file: ' + res.DetectedProblems\r\n );\r\n } else {\r\n this.setState({\r\n fileCaricato: res.File,\r\n selezionaFile: false,\r\n messaggioSeleziona: true,\r\n listaDichiarazioni: res.ListaDichiarazioni,\r\n nomeFile: file.name,\r\n pathFornituraRedditiPFDaImportare: res.PathFornituraRedditiPFDaImportare,\r\n });\r\n }\r\n } else {\r\n SnackbarManager.notifyError('Errore in importazione file!');\r\n }\r\n };\r\n\r\n impostaDaImportare = (cf) => {\r\n let dichiarazioni = this.state.listaDichiarazioni;\r\n dichiarazioni.forEach((x) => {\r\n if (x.CodiceFiscaleDichiarante == cf) {\r\n x.DaImportare = !x.DaImportare;\r\n }\r\n });\r\n\r\n this.setState({ listaDichiarazioni: dichiarazioni });\r\n };\r\n\r\n selezionaTutte(lista) {\r\n let daImportare = this.state.messaggioSeleziona;\r\n lista\r\n .filter((z) => z.StatoDichiarazioneDaImportare != 2)\r\n .map(function(x) {\r\n x.DaImportare = daImportare;\r\n return x;\r\n });\r\n this.setState({\r\n listaDichiarazioni: lista,\r\n messaggioSeleziona: !daImportare,\r\n });\r\n }\r\n\r\n paginaRisultati = (top, skip, sortProperty, sortOrder, filters) => {\r\n let dichDaPaginare = this.state.listaDichiarazioni;\r\n if (this.state.searchTerm) {\r\n dichDaPaginare = dichDaPaginare.filter(\r\n (x) =>\r\n (x.DescrizioneDichiarante &&\r\n x.DescrizioneDichiarante.toLowerCase().indexOf(\r\n this.state.searchTerm.toLowerCase()\r\n ) != -1) ||\r\n (x.CodiceFiscaleDichiarante &&\r\n x.CodiceFiscaleDichiarante.toLowerCase().indexOf(\r\n this.state.searchTerm.toLowerCase()\r\n ) != -1) ||\r\n (x.DescrizioneConiuge &&\r\n x.DescrizioneConiuge.toLowerCase().indexOf(\r\n this.state.searchTerm.toLowerCase()\r\n ) != -1) ||\r\n (x.CodiceFiscaleConiuge &&\r\n x.CodiceFiscaleConiuge.toLowerCase().indexOf(\r\n this.state.searchTerm.toLowerCase()\r\n ) != -1) ||\r\n (x.DescrizioneSostituto &&\r\n x.DescrizioneSostituto.toLowerCase().indexOf(\r\n this.state.searchTerm.toLowerCase()\r\n ) != -1)\r\n );\r\n }\r\n\r\n if (sortProperty) {\r\n dichDaPaginare = dichDaPaginare.sort(function(a, b) {\r\n let x = a[sortProperty] || '';\r\n let y = b[sortProperty] || '';\r\n if (x < y) {\r\n return sortOrder ? -1 : 1;\r\n }\r\n if (x > y) {\r\n return sortOrder ? 1 : -1;\r\n }\r\n return 0;\r\n });\r\n }\r\n let paginazione = dichDaPaginare.slice(skip, skip + top);\r\n return {\r\n Items: paginazione,\r\n Count: dichDaPaginare.length,\r\n };\r\n };\r\n\r\n filtraListaRisultati = (searchTerm) => {\r\n this.setState(\r\n { searchTerm: searchTerm.trim() },\r\n () => this.tabellaImport && this.tabellaImport.loadPage()\r\n );\r\n };\r\n\r\n //in base ai byte caricati e ai byte totali del file calcolo quanto manca\r\n tempoRimanente = (uploadedBytes, totalBytes, timeStarted) => {\r\n const uploadSpeed = calcolaUploadSpeed(uploadedBytes, timeStarted);\r\n\r\n const tempTempoRimanente = ((totalBytes - uploadedBytes) / uploadSpeed) * 1000;\r\n const tempo = new Date(tempTempoRimanente).toISOString().substr(11, 8);\r\n\r\n //const tempTempoRimanenteAverage = ((totalBytes - uploadedBytes) / this.state.averageUpload) * 1000;\r\n //const tempoAverage = new Date(tempTempoRimanenteAverage).toISOString().substr(11, 8);\r\n\r\n //debugger;\r\n //console.log(\"temporimanente: \", tempTempoRimanente, tempo, tempoAverage);\r\n return tempo;\r\n };\r\n\r\n PercentualeElaborazioneLista = (tempoTotaleGenerazioneLista, tempoRimanente) => {\r\n var tempoTrascorso = tempoTotaleGenerazioneLista - tempoRimanente;\r\n if (tempoTrascorso < 0) {\r\n return 100;\r\n }\r\n return parseInt(((tempoTrascorso * 100) / tempoTotaleGenerazioneLista).toFixed(1));\r\n }\r\n\r\n timerGeneraLista = () => {\r\n const {\r\n caricandoPercentualeGeneraLista,\r\n currentCountGeneraLista,\r\n PercentualeCaricamento,\r\n intervalIdGeneraLista,\r\n averageUpload,\r\n BytesTotali,\r\n } = this.state;\r\n\r\n var tempcaricandoPercentualeGeneraLista = caricandoPercentualeGeneraLista;\r\n var tempcurrentCountGeneraLista = currentCountGeneraLista;\r\n if (\r\n caricandoPercentualeGeneraLista === false &&\r\n PercentualeCaricamento === 100\r\n ) {\r\n tempcaricandoPercentualeGeneraLista = true;\r\n tempcurrentCountGeneraLista = calcolaTempoTotaleGeneraLista(\r\n averageUpload,\r\n BytesTotali,\r\n );\r\n }\r\n\r\n var newCount =\r\n PercentualeCaricamento == 100\r\n ? tempcurrentCountGeneraLista - 1\r\n : tempcurrentCountGeneraLista;\r\n if (newCount >= 0) {\r\n this.setState({\r\n currentCountGeneraLista: newCount,\r\n caricandoPercentualeGeneraLista: tempcaricandoPercentualeGeneraLista,\r\n });\r\n } else {\r\n clearInterval(intervalIdGeneraLista);\r\n }\r\n };\r\n\r\n //{tipoImportazione ? `Importazione dichiarazione da RedditiPF anno ${tipoImportazione}` : `Importazione`}\r\n render() {\r\n const {\r\n showModal,\r\n isLoading,\r\n messaggioErrore,\r\n datiIniziali,\r\n tipoImportazione,\r\n } = this.props;\r\n const {\r\n bloccaInserimento,\r\n windowMessage,\r\n caricandoPercentualeGeneraLista,\r\n dichiarazioneEsistente,\r\n selezionaFile,\r\n messaggioSeleziona,\r\n PercentualeCaricamento,\r\n InizioUpload,\r\n BytesCaricati,\r\n BytesTotali,\r\n currentCountGeneraLista,\r\n contaFeedbackUpload,\r\n sumAverageUpload,\r\n averageUpload,\r\n } = this.state;\r\n var selezionabili = this.state.listaDichiarazioni.filter(\r\n (z) => z.StatoDichiarazioneDaImportare != 2\r\n ).length;\r\n\r\n const mostraGeneraLista = PercentualeCaricamento === 100;\r\n //console.log(sumAverageUpload, contaFeedbackUpload, averageUpload);\r\n return (\r\n \r\n \r\n Importazione da Redditi PF {TipoImportazione.stringify(tipoImportazione)}\r\n \r\n \r\n
    \r\n {selezionaFile ? (\r\n \r\n {\r\n this.setState({\r\n PercentualeCaricamento: parseInt(\r\n (progress * 100).toFixed(1)\r\n ),\r\n BytesCaricati: evt.loaded,\r\n BytesTotali: evt.total,\r\n sumAverageUpload: sommaUploadSpeed(\r\n this.state.sumAverageUpload,\r\n evt.loaded,\r\n this.state.InizioUpload\r\n ),\r\n contaFeedbackUpload: this.state.contaFeedbackUpload + 1,\r\n averageUpload: calcolaAverageUploadSpeed(\r\n this.state.sumAverageUpload,\r\n evt.loaded,\r\n this.state.InizioUpload,\r\n this.state.contaFeedbackUpload\r\n ),\r\n currentCountGeneraLista: null,\r\n });\r\n }}\r\n onChange={() => {\r\n this.setState({\r\n InizioUpload: Date.now(),\r\n caricandoPercentualeGeneraLista: false,\r\n });\r\n }}\r\n >\r\n Scegli la fornitura da importare  \r\n \r\n \r\n
    \r\n  \r\n {PercentualeCaricamento && PercentualeCaricamento !== 0 ? (\r\n \r\n
    \r\n  \r\n
    \r\n Caricamento del file\r\n \r\n
    \r\n ) : (\r\n
    \r\n )}\r\n {mostraGeneraLista == true ? (\r\n \r\n
    \r\n  \r\n
    \r\n Elaborazione fornitura telematica\r\n \r\n
    \r\n  \r\n
    \r\n Al termine dell'elaborazione sarà possibile scegliere le\r\n dichiarazioni da importare\r\n
    \r\n
    \r\n ) : (\r\n
    \r\n
    \r\n  \r\n
     \r\n
     \r\n
    \r\n )}\r\n
    \r\n ) : (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {!selezionaFile && (\r\n \r\n )}\r\n \r\n \r\n {!selezionaFile && (\r\n \r\n this.selezionaTutte(this.state.listaDichiarazioni)\r\n }\r\n >\r\n {MessaggioSelezionaDeseleziona(messaggioSeleziona)}\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n (this.tabellaImport = r)}\r\n dataSource={this.paginaRisultati}\r\n pageSize={10}\r\n sortProperty=\"CodiceFiscaleDichiarante\"\r\n availablePageSizes={[5, 10, 20]}\r\n additionalRowData={{\r\n impostaDaImportare: this.impostaDaImportare,\r\n }}\r\n row={RigaImportazione}\r\n >\r\n \r\n \r\n Dichiarante\r\n \r\n \r\n CF Dichiarante\r\n \r\n \r\n Tipo\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 \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nModaleImportazioneRedditiPF.TipoImportazione = _tipoImportazione;\r\n\r\nModaleImportazioneRedditiPF.propTypes = {\r\n datiIniziali: PropTypes.object,\r\n isLoading: PropTypes.bool,\r\n messaggioErrore: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.arrayOf(PropTypes.string),\r\n ]),\r\n onAnnulla: PropTypes.func.isRequired,\r\n onCreaNuova: PropTypes.func,\r\n onRipristinaEliminata: PropTypes.func,\r\n showModal: PropTypes.bool.isRequired,\r\n tipoImportazione: PropTypes.oneOfType([PropTypes.number, PropTypes.string])\r\n .isRequired,\r\n ufficioSelezionato: PropTypes.string,\r\n annoSelezionato: PropTypes.number,\r\n};\r\n\r\nModaleImportazioneRedditiPF.defaultProps = {\r\n tipoImportazione: _tipoImportazione.NonSelezionato,\r\n};\r\n\r\nexport default ModaleImportazioneRedditiPF;\r\n","import React, { Component } from 'react';\r\nimport { findDOMNode } from 'react-dom';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Button, Modal, FileUpload, Panel,\r\n} from 'framework-ui-components';\r\nimport { SnackbarWrapper as SnackbarManager } from 'framework-ui-components/Components/Snackbar';\r\n\r\nconst FORM_INITIAL_STATE = {\r\n windowMessage: '',\r\n caricandoModale: false,\r\n fileCaricato: null,\r\n mostraPannelloErrore: false,\r\n errorMessage: '',\r\n};\r\n\r\n\r\nclass ModaleUploadFile extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n ...FORM_INITIAL_STATE,\r\n caricandoModale: false,\r\n fileCaricato: null,\r\n mostraPannelloErrore: false,\r\n errorMessage: '',\r\n };\r\n\r\n this.initializeComponent();\r\n }\r\n\r\n componentDidMount() {\r\n if (this.props.showModal) {\r\n setTimeout(() => this.fileUpload && findDOMNode(this.fileUpload).click(), 100);\r\n }\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (nextProps.showModal != this.props.showModal && nextProps.showModal) {\r\n setTimeout(() => this.fileUpload && findDOMNode(this.fileUpload).click(), 100);\r\n }\r\n }\r\n\r\n initializeComponent() {\r\n this.annulla = this.annulla.bind(this);\r\n this.updateForm = this.updateForm.bind(this);\r\n this.controllaUpload = this.controllaUpload.bind(this);\r\n }\r\n\r\n annulla() {\r\n this.setState(FORM_INITIAL_STATE, () => this.props.onAnnulla && this.props.onAnnulla());\r\n }\r\n\r\n updateForm(data) {\r\n this.setState(data);\r\n }\r\n\r\n notificaErrore = () => {\r\n this.setState({ caricandoModale: false });\r\n SnackbarManager.notifyError('Errore nel caricamento del file!');\r\n }\r\n\r\n controllaUpload = (res) => {\r\n this.setState({ caricandoModale: false });\r\n if (res) {\r\n if (!res.Success) {\r\n this.setState({ mostraPannelloErrore: true, errorMessage: res.DetectedProblems });\r\n } else {\r\n SnackbarManager.startIndeterminateAsyncTask(res.CorrelationId, 'Importazione in corso');\r\n this.annulla();\r\n }\r\n } else {\r\n SnackbarManager.notifyError('Errore in importazione file!');\r\n }\r\n }\r\n\r\n render() {\r\n const {\r\n showModal,\r\n isLoading,\r\n urlUpload,\r\n fileType,\r\n } = this.props;\r\n const {\r\n caricandoModale,\r\n mostraPannelloErrore,\r\n errorMessage,\r\n } = this.state;\r\n\r\n return (\r\n \r\n Scegli file da caricare\r\n \r\n \r\n this.notificaErrore()}\r\n onChange={() => this.setState({ caricandoModale: true })}\r\n onFileUploaded={this.controllaUpload}\r\n >\r\n \r\n \r\n {\r\n mostraPannelloErrore\r\n && (\r\n {errorMessage}\r\n \r\n )\r\n }\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nModaleUploadFile.propTypes = {\r\n urlUpload: PropTypes.string,\r\n fileType: PropTypes.arrayOf(PropTypes.string),\r\n isLoading: PropTypes.bool,\r\n onAnnulla: PropTypes.func.isRequired,\r\n showModal: PropTypes.bool.isRequired,\r\n};\r\n\r\nexport default ModaleUploadFile;\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 \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \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 136.303 127.5',\r\n 'LogoScadenze',\r\n);\r\n","import React, { Component } from 'react';\r\nimport {\r\n Modal, Button, InfoTooltip,\r\n} from 'framework-ui-components';\r\nimport LogoScadenze from './LogoScadenze';\r\n\r\nclass ModaleScadenze extends Component {\r\n render() {\r\n const { delegatoCentrale, prossimaScadenza, onClose } = this.props;\r\n console.log(delegatoCentrale);\r\n return (\r\n \r\n Elenco scadenze 730 2020\r\n \r\n
      \r\n {prossimaScadenza <= 0\r\n && (\r\n
    • Scadenza 23 agosto ore 24.00
      \r\n Le dichiarazioni (con richiesta del precompilato in stato \"evasa\" \r\n Puoi verificare lo stato delle richieste del precompilato dal servizio \"Richiesta Enti\".\r\n \r\n ) trasmesse a CGN entro questa scadenza saranno inviate all'Agenzia delle Entrate per consentire i conguagli entro la prima mensilità utile.\r\n
    • \r\n )}\r\n {prossimaScadenza <= 1\r\n && (\r\n
    • Scadenza 31 agosto ore 24.00
      \r\n Le dichiarazioni trasmesse a CGN entro questa scadenza saranno inviate all'Agenzia delle Entrate \r\n

      La gestione operativa dell'invio all'Agenzia delle Entrate richiederà qualche giorno.

      \r\n
      come previsto dalla normativa.\r\n
    • \r\n )}\r\n {prossimaScadenza <= 2\r\n && (\r\n
    • Scadenza 22 settembre ore 24.00
      \r\n Le dichiarazioni (con richiesta del precompilato in stato \"evasa\" \r\n Puoi verificare lo stato delle richieste del precompilato dal servizio \"Richiesta Enti\".\r\n \r\n ) trasmesse a CGN entro questa scadenza saranno inviate all'Agenzia delle Entrate \r\n

      La gestione operativa dell'invio all'Agenzia delle Entrate richiederà qualche giorno.

      \r\n
      per consentire i conguagli entro la prima mensilità utile.\r\n
    • \r\n )}\r\n {!delegatoCentrale && (\r\n
    • Scadenza 28 settembre ore 23.00 \r\n Ti chiediamo di trasmettere tutte le dichiarazioni a CGN con 2 giorni di anticipo rispetto alla chiusura normativa della Campagna Fiscale (30/09) per permetterci la gestione operativa dell'invio all'Agenzia della Entrate.\r\n
      \r\n Le dichiarazioni trasmesse a CGN entro questa scadenza saranno inviate all'Agenzia delle Entrate per la chiusura della campagna fiscale.\r\n
    • \r\n )}\r\n {delegatoCentrale && (\r\n
    • Scadenza 27 settembre ore 23.00 \r\n Ti chiediamo di trasmettere tutte le dichiarazioni a CGN con 5 giorni di anticipo rispetto alla chiusura normativa della Campagna Fiscale (30/09) per permetterci la gestione operativa dell'invio all'Agenzia della Entrate.\r\n
      \r\n Le dichiarazioni trasmesse a CGN entro questa scadenza saranno inviate all'Agenzia delle Entrate per la chiusura della campagna fiscale.\r\n
    • \r\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 ModaleScadenze;\r\n","import React, { Component } from 'react';\r\nimport {\r\n Modal, Checkbox, Button, InfoTooltip,\r\n} from 'framework-ui-components';\r\nimport LogoScadenze from './LogoScadenze';\r\n\r\nclass ModaleUltimaScadenza extends Component {\r\n render() {\r\n const {\r\n onClose,\r\n nonVisualizzarePiu,\r\n onNonVisualizzarePiu,\r\n delegatoCentrale,\r\n } = this.props;\r\n\r\n return (\r\n \r\n Scadenza 730 2020\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\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 ModaleUltimaScadenza;\r\n","import React, { Component } from 'react';\r\nimport {\r\n Modal, Checkbox, Button, InfoTooltip,\r\n} from 'framework-ui-components';\r\nimport LogoScadenze from './LogoScadenze';\r\n\r\nclass ModaleUltimaScadenza extends Component {\r\n render() {\r\n const {\r\n onClose,\r\n nonVisualizzarePiu,\r\n onNonVisualizzarePiu,\r\n } = this.props;\r\n\r\n return (\r\n \r\n Scadenza 730 2020\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\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 ModaleUltimaScadenza;\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, small,\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(\r\n 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
    \r\n {React.Children.map(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\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\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};\r\n\r\nexport default Stepper;\r\n","import Stepper from './Stepper';\r\n\r\nexport default Stepper;\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 \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ,\r\n '0 0 14 16',\r\n 'TrashIcon',\r\n);\r\n","import React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\nSnackbar,\r\n} from 'framework-ui-components';\r\n\r\n\r\nclass FileSelector extends Component {\r\n static propTypes = {\r\n accept: PropTypes.arrayOf(PropTypes.string),\r\n allowUpload: PropTypes.func,\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node,\r\n ]),\r\n max: PropTypes.number,\r\n multiple: PropTypes.bool,\r\n onChange: PropTypes.func,\r\n };\r\n\r\n static defaultProps = {\r\n accept: '',\r\n allowUpload: null,\r\n children: null,\r\n max: 10240,\r\n multiple: false,\r\n onChange: null,\r\n };\r\n\r\n state = {\r\n acceptedFileTypes: this.props.accept,\r\n };\r\n\r\n updateFiles = (e) => {\r\n e.preventDefault();\r\n const {\r\n allowUpload, max, multiple, onChange,\r\n } = this.props;\r\n\r\n const { files } = e.target;\r\n for (let i = 0; i < files.length; i += 1) {\r\n const file = files[i];\r\n\r\n if (max && Math.ceil(file.size / 1000000) > max) {\r\n Snackbar.show({ type: Snackbar.Types.ERROR, message: `Il file supera la dimensione massima accettata: ${max} MB` });\r\n return;\r\n }\r\n\r\n let type = `.${file.name.split('.').pop()}`;\r\n if (type.indexOf('/') > -1) {\r\n type = type.substr(type.indexOf('/') + 1);\r\n }\r\n\r\n if (this.extensionAccepted(type)) {\r\n const formData = new FormData();\r\n formData.append('file', file);\r\n\r\n if ((allowUpload == null) || (allowUpload != null && allowUpload(file))) {\r\n if (!multiple) {\r\n onChange && onChange(e, file);\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (multiple) {\r\n onChange && onChange(e);\r\n }\r\n };\r\n\r\n extensionAccepted = (extension) => {\r\n const { acceptedFileTypes } = this.state;\r\n if ((acceptedFileTypes\r\n && acceptedFileTypes.map(x => x.toLowerCase())\r\n .indexOf(extension.toLowerCase()) === -1)) {\r\n Snackbar.show({ type: Snackbar.Types.ERROR, message: `Tipo di file non supportato: ${extension}` });\r\n return false;\r\n }\r\n return true;\r\n };\r\n\r\n render() {\r\n const {\r\n children,\r\n accept,\r\n multiple,\r\n } = this.props;\r\n const opts = {};\r\n if (multiple) {\r\n opts.multiple = 'multiple';\r\n }\r\n\r\n return (\r\n
    \r\n this.refInput.click()}\r\n >\r\n {children}\r\n
    \r\n x).join(',')) || true}\r\n className=\"upload__input\"\r\n name=\"fileupload\"\r\n onChange={this.updateFiles}\r\n ref={(r) => { this.refInput = r; }}\r\n type=\"file\"\r\n />\r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default FileSelector;\r\n","import React, { Component, Fragment } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Button,\r\n Grid,\r\n Modal,\r\n FileUpload,\r\n Table,\r\n Form,\r\n Select,\r\n Stepper,\r\n ODataTable,\r\n Panel,\r\n WebRequest,\r\n Checkbox,\r\n} from 'framework-ui-components';\r\nimport TrashIcon from 'framework-ui-components/Components/Icons/TrashIcon';\r\nimport { SnackbarWrapper as SnackbarManager } from 'framework-ui-components/Components/Snackbar';\r\nimport uuid from 'uuid';\r\nimport AssistenteInlineIcon from '../../../components/Icons/AssistenteInlineIcon';\r\nimport FileSelector from '../../../components/FileSelector';\r\nimport { listaPdfImportabili730 } from '../../../apis/setteTrentaApi';\r\nimport apriPermalinkAssistente from '../../../helpers/apriPermalinkAssistente';\r\n\r\nconst MAX_FILE_SIZE = 100;\r\n\r\nconst FileSelezionato = ({ item, additionalRowData }) => (\r\n \r\n {item.name}\r\n {(item.size / (1024 * 1024)).toFixed(2)} MB\r\n \r\n \r\n \r\n \r\n);\r\n\r\nFileSelezionato.propTypes = {\r\n item: PropTypes.object.isRequired,\r\n additionalRowData: PropTypes.object.isRequired,\r\n};\r\n\r\nconst FileCaricato = ({ item, additionalRowData }) => (\r\n \r\n {item.name}\r\n {(item.size / (1024 * 1024)).toFixed(2)} MB\r\n {item.Progresso == undefined ? '' : `${item.Progresso}` + ' %'}\r\n \r\n);\r\n\r\nclass ModaleImportazionePdf extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n step: 0,\r\n uploading: false,\r\n fileImportazioneAbilitati: [],\r\n fileSelezionati: [],\r\n origine: null,\r\n importatoreSconosciuto: false,\r\n guidSessione: uuid.v4(),\r\n };\r\n\r\n this.annulla = this.annulla.bind(this);\r\n this.aggiungiLista = this.aggiungiLista.bind(this);\r\n this.impostaEsito = this.impostaEsito.bind(this);\r\n this.precedente = this.precedente.bind(this);\r\n this.prossimo = this.prossimo.bind(this);\r\n this.selezionaFile = this.selezionaFile.bind(this);\r\n this.leggiFileSelezionati = this.leggiFileSelezionati.bind(this);\r\n this.caricaListaPdfImportabili730 = this.caricaListaPdfImportabili730.bind(\r\n this,\r\n );\r\n this.onElimina = this.onElimina.bind(this);\r\n this.carica = this.carica.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n this.caricaListaPdfImportabili730();\r\n }\r\n\r\n caricaListaPdfImportabili730 = () => {\r\n listaPdfImportabili730().then((res) => {\r\n if (res) {\r\n this.setState({ fileImportazioneAbilitati: res });\r\n }\r\n });\r\n };\r\n\r\n aggiungiLista(evt, progress, file) {\r\n let files = this.state.fileSelezionati;\r\n\r\n if (files.find(x => x.name == file.name)) {\r\n files.find(x => x.name == file.name).Progresso = (progress * 100).toFixed(\r\n 1,\r\n );\r\n } else {\r\n files = files.concat({\r\n name: file.name,\r\n Progresso: (progress * 100).toFixed(1),\r\n });\r\n }\r\n\r\n this.setState({ fileCaricati: files });\r\n }\r\n\r\n impostaEsito(file) {\r\n let files = this.state.fileSelezionati;\r\n\r\n if (files.find(x => x.name == file.name)) {\r\n files.find(x => x.name == file.name).Progresso = 100;\r\n } else {\r\n files = files.concat({ name: file.name, Progresso: 100 });\r\n }\r\n\r\n this.setState({ fileCaricati: files });\r\n }\r\n\r\n selezionaFile(e) {\r\n const { files } = e.target;\r\n let file = this.state.fileSelezionati;\r\n\r\n let i = 0;\r\n for (i = 0; i < files.length; i++) {\r\n if (file.filter(x => x.name == files[i].name).length == 0) {\r\n // se presente uno con lo stesso nome lo elimino\r\n file = file.concat(files[i]);\r\n }\r\n }\r\n\r\n this.setState({ fileSelezionati: file }, () => this.tabella.loadPage());\r\n }\r\n\r\n leggiFileSelezionati = (top, skip, sortProperty, sortOrder, filters) => {\r\n const pagina = this.state.fileSelezionati.slice(skip, skip + top);\r\n return {\r\n Items: pagina,\r\n Count: this.state.fileSelezionati.length,\r\n };\r\n };\r\n\r\n annulla() {\r\n const { onAnnulla } = this.props;\r\n onAnnulla && onAnnulla();\r\n }\r\n\r\n carica() {\r\n if (\r\n this.state.fileSelezionati.filter(x => x.Progresso == undefined).length\r\n == 0\r\n ) {\r\n this.setState({ uploading: false, step: 3 });\r\n } else {\r\n this.caricaSingoloFile(\r\n this.state.fileSelezionati.filter(x => x.Progresso == undefined)[0],\r\n );\r\n }\r\n }\r\n\r\n caricaSingoloFile(file) {\r\n const formData = new FormData();\r\n formData.append('file', file);\r\n\r\n return WebRequest.postFile(\r\n `/SetteTrenta/ImportaPdf?sessione=${this.state.guidSessione}&studio=${\r\n this.props.ufficioSelezionato\r\n }&origine=${!this.state.importatoreSconosciuto ? this.state.origine : 0}`,\r\n formData,\r\n null,\r\n (evt) => {\r\n const progressPercent = evt.loaded / evt.total;\r\n this.aggiungiLista(evt, progressPercent, file);\r\n },\r\n ).then((res) => {\r\n this.state.fileSelezionati.filter(\r\n x => x.name == res.data.Name,\r\n )[0].Success = res.data.Success;\r\n if (!res.data.Success) {\r\n this.state.fileSelezionati.filter(\r\n x => x.name == res.data.Name,\r\n )[0].Error = res.data.DetectedProblems[0];\r\n this.setState({ erroriUpload: true });\r\n }\r\n this.carica();\r\n });\r\n }\r\n\r\n precedente() {\r\n if (this.state.step == 3) {\r\n } else {\r\n this.setState({ step: this.state.step - 1 });\r\n }\r\n }\r\n\r\n prossimo() {\r\n if (this.state.step == 2) {\r\n this.setState({ uploading: true });\r\n this.carica();\r\n } else if (\r\n this.state.step !== 1\r\n || this.state.importatoreSconosciuto\r\n || this.form.valida()\r\n ) {\r\n this.setState({ step: this.state.step + 1 });\r\n }\r\n }\r\n\r\n onElimina(item) {\r\n const { fileSelezionati } = this.state;\r\n\r\n this.setState(\r\n { fileSelezionati: fileSelezionati.filter(x => x.name != item.name) },\r\n () => this.tabella.loadPage(),\r\n );\r\n }\r\n\r\n render() {\r\n const { showModal, isLoading, ufficioSelezionato } = this.props;\r\n const {\r\n step,\r\n fileSelezionati,\r\n uploading,\r\n fileImportazioneAbilitati,\r\n origine,\r\n importatoreSconosciuto,\r\n } = this.state;\r\n\r\n let disabilitato = false;\r\n\r\n if (step == 0 && fileSelezionati.length == 0) {\r\n disabilitato = true;\r\n }\r\n if (step == 2 && uploading) {\r\n disabilitato = true;\r\n }\r\n\r\n return (\r\n \r\n \r\n apriPermalinkAssistente('importazione', ufficioSelezionato)}\r\n role=\"presentation\"\r\n >\r\n \r\n \r\n Importa 730 da PDF\r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n 0 ? Stepper.State.DONE : Stepper.State.ACTIVE\r\n }\r\n >\r\n \r\n \r\n \r\n \r\n Seleziona i file da allegare, ogni file non può\r\n superare la dimensione massima di {MAX_FILE_SIZE}{' '}\r\n MB.\r\n \r\n
    \r\n \r\n Seleziona i files
    \r\n \r\n
    \r\n (this.tabella = r)}\r\n dataSource={this.leggiFileSelezionati}\r\n additionalRowData={{\r\n onElimina: this.onElimina,\r\n }}\r\n pageSize={5}\r\n row={FileSelezionato}\r\n >\r\n \r\n Nome Documento\r\n \r\n Dimensione\r\n Elimina\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n 1\r\n ? Stepper.State.DONE\r\n : step < 1\r\n ? Stepper.State.INACTIVE\r\n : Stepper.State.ACTIVE\r\n }\r\n >\r\n this.setState(data)}\r\n ref={r => (this.form = r)}\r\n >\r\n \r\n {fileImportazioneAbilitati\r\n .sort((a, b) => (a.Descrizione > b.Descrizione\r\n ? 1\r\n : a.Descrizione < b.Descrizione\r\n ? -1\r\n : 0))\r\n .map(x => (\r\n \r\n {x.Descrizione}\r\n \r\n ))}\r\n \r\n
    \r\n
    \r\n \r\n \r\n\r\n
    \r\n \r\n 2\r\n ? Stepper.State.DONE\r\n : step < 2\r\n ? Stepper.State.INACTIVE\r\n : Stepper.State.ACTIVE\r\n }\r\n >\r\n {this.state.uploading && (\r\n \r\n Attendi che il caricamento di tutti i file sia\r\n completato\r\n \r\n )}\r\n\r\n (this.tabella = r)}\r\n dataSource={this.leggiFileSelezionati}\r\n additionalRowData={{\r\n onElimina: this.onElimina,\r\n }}\r\n pageSize={5}\r\n row={FileCaricato}\r\n >\r\n Nome Documento\r\n Dimensione\r\n Caricamento\r\n \r\n \r\n 3\r\n ? Stepper.State.DONE\r\n : step < 3\r\n ? Stepper.State.INACTIVE\r\n : Stepper.State.ACTIVE\r\n }\r\n >\r\n {this.state.erroriUpload ? (\r\n \r\n Alcuni file non sono stati caricati.\r\n
      \r\n {this.state.fileSelezionati\r\n .filter(x => x.Success == false)\r\n .map(x => (\r\n
    • \r\n {x.name}: {x.Error}\r\n
    • \r\n ))}\r\n
    \r\n
    \r\n ) : (\r\n \r\n Tutti i file sono stati caricati con successo.\r\n \r\n )}\r\n \r\n {importatoreSconosciuto\r\n ? 'Le dichiarazioni saranno disponibili non appena sarà riconosciuto dal sistema il fornitore da cui provengono i file PDF. Riceverai una notifica dal sistema non appena l’importazione sarà stata completata.'\r\n : 'Le dichiarazioni saranno disponibili entro 2 giorni lavorativi, previa notifica.'}\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n {step != 3 && step != 0 && (\r\n \r\n )}\r\n {step != 3 && (\r\n \r\n {step !== 2 ? 'Avanti' : 'Avvia'}\r\n \r\n )}\r\n {step == 3 && (\r\n \r\n )}\r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nModaleImportazionePdf.propTypes = {\r\n onAnnulla: PropTypes.func.isRequired,\r\n showModal: PropTypes.bool.isRequired,\r\n ufficioSelezionato: PropTypes.string,\r\n annoSelezionato: PropTypes.number,\r\n};\r\n\r\nexport default ModaleImportazionePdf;\r\n","const apriPermalinkAssistente = (permalink, ufficio) => window.open(\r\n `${window.config.urlAssistente}/permalink/Contenuto?aliasArea=730&permalink=${permalink}&codiceUfficio=${ufficio}`,\r\n '_blank',\r\n);\r\n\r\nexport default apriPermalinkAssistente;\r\n","import React, { Component } from 'react';\r\nimport { Modal, Button, Table } from 'framework-ui-components';\r\nimport StatoDichiarazione from 'enums/StatoDichiarazione';\r\nimport TipoDichiarazione from 'enums/TipoDichiarazione';\r\n\r\nclass ModaleNotificaScarto extends Component {\r\n creaLinkDichiarazione({\r\n IdDichiarazione, Anno, Tipo, Stato, CodiceUfficio,\r\n }) {\r\n const { url730 } = this.props;\r\n\r\n if (IdDichiarazione) {\r\n if (Stato === 104) {\r\n const idFornitura = `${Anno}${CodiceUfficio}9${IdDichiarazione.split('/')[1].padStart(11, '0')}`;\r\n return `${window.config.AuditUrl}/#guest/permalink/${idFornitura}`;\r\n }\r\n if (Tipo === TipoDichiarazione.SetteTrentaIntegrativaCodice2) {\r\n return `${url730}#/SostitutoImposta/Visualizza/${IdDichiarazione.split('/')[1]}`;\r\n }\r\n return `${url730}#/Frontespizio/Visualizza/${IdDichiarazione.split('/')[1]}`;\r\n }\r\n }\r\n\r\n render() {\r\n const { onClose, dichiarazioniScartate } = this.props;\r\n const { Count, Items } = dichiarazioniScartate;\r\n\r\n return (\r\n \r\n \r\n Dichiarazioni scartate\r\n \r\n \r\n
    \r\n \r\n \r\n \r\n !\r\n \r\n \r\n
    \r\n
    \r\n {\r\n Count !== 1 ? `Sono presenti ${Count} dichiarazioni scartate` : 'E\\' presente 1 dichiarazione scartata'\r\n }\r\n
    \r\n
    \r\n Ricordati di apportare le modifiche necessarie e/o ristampare la dichiarazione.\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n Items.map(x => (\r\n \r\n \r\n \r\n \r\n \r\n ))\r\n }\r\n \r\n
    DichiaranteMotivazioneVai alla dichiarazione
    {x.Dichiarante}{StatoDichiarazione.stringify(x.Stato, x.HaErrori)}\r\n \r\n {x.Stato === 104 ? 'Vai alla pratica Audit' : 'Vai alla dichiarazione'}\r\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 ModaleNotificaScarto;\r\n","export default {\r\n TUTTE: '0',\r\n IN_LAVORAZIONE: '1',\r\n SCARTATE: '2',\r\n DA_INVIARE: '3',\r\n TRASMESSE: '4',\r\n COMPLETE: '5',\r\n STAMPATE: '6',\r\n TRASMESSE_EPASA: '120',\r\n ACCETTATA_EPASA: '125',\r\n SCARTATA_EPASA: '130',\r\n};\r\n","\r\n\r\nimport React, { Component, Fragment } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { ODataTable, FilterTypes, QueryOptions } from 'framework-ui-components';\r\n\r\nimport TipoDichiarazione from 'enums/TipoDichiarazione';\r\nimport { annullaElimina, creaSetteTrentaIntegrativa } from 'apis/setteTrentaApi';\r\nimport ModaleCreazione from './ModaleCreazione';\r\nimport StatiRicerca from '../../enums/StatiRicerca';\r\n\r\nclass ElasticTable extends Component {\r\n state = {\r\n mostraModaleCreazione: false,\r\n isLoadingModaleCreazione: false,\r\n messaggioErroreCreazione: null,\r\n }\r\n\r\n loadPage = () => {\r\n this.dataTable && this.dataTable.loadPage();\r\n }\r\n\r\n urlCorrente = () => this.dataTable && this.dataTable.urlCorrente();\r\n\r\n getItems = () => this.dataTable && this.dataTable.state.items\r\n\r\n getSelezionati = () => {\r\n const { annoSelezionato } = this.props;\r\n return this.dataTable && this.dataTable.selezionati().filter(z => annoSelezionato > 2019 || z.Stato != 6);\r\n }\r\n\r\n apriModaleCreazioneIntegrativa = (dichiarazione) => {\r\n dichiarazione.TipoDichiarazione = ModaleCreazione.TipoDichiarazione.INTEGRATIVA;\r\n this.setState({ mostraModaleCreazione: true, datiInizialiModale: dichiarazione });\r\n }\r\n\r\n chiudiModaleCreazione = () => {\r\n this.setState({\r\n mostraModaleCreazione: false, isLoadingModaleCreazione: false, datiInizialiModale: null, messaggioErroreCreazione: null,\r\n });\r\n }\r\n\r\n pulisciSelezione = () => {\r\n this.dataTable.pulisciSelezione();\r\n }\r\n\r\n creaNuovaDichiarazione = (data) => {\r\n if (data.TipoDichiarazione != TipoDichiarazione.Ordinaria) {\r\n this.setState({ isLoadingModaleCreazione: true }, () => {\r\n const { ufficio, annoSelezionato } = this.props;\r\n\r\n const cmd = {\r\n Studio: ufficio,\r\n CodiceFiscale: data.CodiceFiscale.trim().toUpperCase(),\r\n Nome: data.Nome.trim().toUpperCase(),\r\n Cognome: data.Cognome.trim().toUpperCase(),\r\n TipoDichiarazione: data.TipoDichiarazione,\r\n Protocollo: data.Protocollo,\r\n Anno: annoSelezionato,\r\n };\r\n if (data.TipoDichiarazione == TipoDichiarazione.SetteTrentaIntegrativaCodice2) {\r\n cmd.SenzaSostituto = data.SceltaSostituto == 0;\r\n cmd.IBAN = data.SceltaSostituto == 0 ? data.CodiceIban : null;\r\n cmd.IdSostitutoImposta = data.Sostituto ? data.Sostituto.IdSostituto : null;\r\n cmd.DataPrimaRata = data.DataPrimaRata;\r\n }\r\n\r\n creaSetteTrentaIntegrativa(cmd)\r\n .then((resp) => {\r\n if (!resp.Success) {\r\n this.setState({ messaggioErroreCreazione: resp.DetectedProblems });\r\n } else {\r\n this.chiudiModaleCreazione();\r\n }\r\n\r\n this.setState({ isLoadingModaleCreazione: false });\r\n });\r\n });\r\n }\r\n }\r\n\r\n ripristinaEliminata = (data) => {\r\n const { annoSelezionato, anniRegistrati } = this.props;\r\n this.setState({ isLoadingModaleCreazione: true }, () => {\r\n annullaElimina(data.dichiarazioneEsistente.IdDichiarazione, annoSelezionato)\r\n .then((res) => {\r\n if (res.Success) {\r\n const url = anniRegistrati.filter(x => x.Anno == annoSelezionato)[0].Url730;\r\n window.location.href = `${url}#/Frontespizio/${data.dichiarazioneEsistente.IdDichiarazione.split('/')[1]}`;\r\n this.chiudiModaleCreazione();\r\n } else {\r\n this.setState({ messaggioErroreCreazione: res.DetectedProblems });\r\n }\r\n\r\n this.setState({ isLoadingModaleCreazione: false });\r\n });\r\n });\r\n }\r\n\r\n filtriStati(tabNr) {\r\n let filters = [];\r\n\r\n if (tabNr == 0 || tabNr == 1) {\r\n filters = filters.concat([\r\n { description: 'Anno Precedente', value: '5' },\r\n { description: 'In Lavorazione / Errate', value: '20' },\r\n { description: 'Bloccata CAF', value: '110' },\r\n ]);\r\n }\r\n\r\n if (tabNr == 0 || tabNr == 2) {\r\n filters = filters.concat([\r\n { description: 'Completa', value: '30' },\r\n { description: 'Annullata', value: '0' },\r\n { description: 'Annullata A.E.', value: '90' },\r\n { description: 'Bloccata Integrativo', value: '111' },\r\n ]);\r\n }\r\n\r\n if (tabNr == 0 || tabNr == 3) {\r\n filters = filters.concat([\r\n { description: 'Controllo Audit', value: '31' },\r\n { description: 'Trasmessa CGN', value: '40' },\r\n { description: 'Inviata A.E.', value: '41' },\r\n { description: 'Ricevuta A.E', value: '60' },\r\n { description: 'Da Annullare A.E', value: '80' },\r\n ]);\r\n }\r\n\r\n if (tabNr == 0 || tabNr == 4) {\r\n filters = filters.concat([\r\n { description: 'Scartata Audit', value: '104' },\r\n { description: 'Scartata C.F.', value: '100' },\r\n { description: 'Scartata A.E.', value: '103' },\r\n { description: 'Scartata Precompilato', value: '101' },\r\n { description: 'Scartata Ricalcolo', value: '102' },\r\n ]);\r\n }\r\n\r\n\r\n return filters;\r\n }\r\n\r\n render() {\r\n // TODO togliere il condizionale sulla tabella appena risolto il bug della odatatable\r\n const {\r\n row, searchTerm, statoRicerca, onSelezionati, onPageLoad, ufficio, tabNr, annoSelezionato, anniRegistrati, store, impostazioni, scaricaRicevutaAdE,\r\n } = this.props;\r\n\r\n const {\r\n datiInizialiModale, mostraModaleCreazione, isLoadingModaleCreazione, messaggioErroreCreazione,\r\n } = this.state;\r\n\r\n const filters = this.filtriStati(tabNr);\r\n\r\n const additionalFilters = [\r\n {\r\n propertyName: 'Tipo', descriptions: 'Tipo', component: FilterTypes.SELECT, query: QueryOptions.EQUAL, options: [{ description: 'Ordinaria', value: '0' }, { description: 'Integrativa 1', value: '16' }, { description: 'Integrativa 2', value: '17' }, { description: 'Integrativa 3', value: '18' }],\r\n },\r\n {\r\n propertyName: 'Stato', descriptions: 'Stato', component: FilterTypes.SELECT, query: QueryOptions.EQUAL, options: filters,\r\n },\r\n {\r\n propertyName: 'Segnalibro', descriptions: 'Segnalibro', component: FilterTypes.INPUT, query: QueryOptions.STRING_EQUAL,\r\n },\r\n ];\r\n\r\n if (tabNr === 3 || tabNr === 0) {\r\n additionalFilters.push({\r\n propertyName: 'Stampata',\r\n description: 'Stampa 730',\r\n component: FilterTypes.SELECT,\r\n query: QueryOptions.STRING_EQUAL,\r\n options: [\r\n { description: 'Stampate', value: 'True' }, { description: 'Non stampate', value: 'False' },\r\n ],\r\n });\r\n }\r\n\r\n return (\r\n \r\n {\r\n (tabNr == 3 || tabNr == 0)\r\n ? (\r\n this.dataTable = r}\r\n onSelezionati={onSelezionati}\r\n onPageLoad={onPageLoad}\r\n pageSize={10}\r\n additionalFilters={additionalFilters}\r\n availablePageSizes={[10, 50, 100]}\r\n additionalRowData={{\r\n onApriModaleIntegrativa: this.apriModaleCreazioneIntegrativa, searchTerm, tabNr, impostazioni, scaricaRicevutaAdE,\r\n }}\r\n store={store}\r\n >\r\n Dichiarante\r\n Coniuge\r\n Tipologia\r\n Sostituto\r\n Stato\r\n Tipo\r\n Segnalibro\r\n Stampata\r\n Ultima modifica\r\n Note\r\n \r\n \r\n \r\n )\r\n : (\r\n this.dataTable = r}\r\n onSelezionati={onSelezionati}\r\n onPageLoad={onPageLoad}\r\n pageSize={10}\r\n additionalFilters={[\r\n {\r\n propertyName: 'Tipo', descriptions: 'Tipo', component: FilterTypes.SELECT, query: QueryOptions.EQUAL, options: [{ description: 'Ordinaria', value: '0' }, { description: 'Integrativa 1', value: '16' }, { description: 'Integrativa 2', value: '17' }, { description: 'Integrativa 3', value: '18' }],\r\n },\r\n {\r\n propertyName: 'Stato', descriptions: 'Stato', component: FilterTypes.SELECT, query: QueryOptions.EQUAL, options: filters,\r\n },\r\n {\r\n propertyName: 'Segnalibro', descriptions: 'Segnalibro', component: FilterTypes.INPUT, query: QueryOptions.STRING_EQUAL,\r\n },\r\n ]}\r\n availablePageSizes={[10, 50, 100]}\r\n additionalRowData={{\r\n onApriModaleIntegrativa: this.apriModaleCreazioneIntegrativa, searchTerm, tabNr, impostazioni,\r\n }}\r\n store={store}\r\n >\r\n Dichiarante\r\n Coniuge\r\n Tipologia\r\n Sostituto\r\n Stato\r\n Tipo\r\n Segnalibro\r\n Ultima modifica\r\n Note\r\n \r\n \r\n \r\n )\r\n }\r\n\r\n {mostraModaleCreazione && (\r\n \r\n )\r\n }\r\n \r\n );\r\n }\r\n}\r\n\r\nElasticTable.propTypes = {\r\n anniRegistrati: PropTypes.array,\r\n onSelezionati: PropTypes.func,\r\n row: PropTypes.func,\r\n searchTerm: PropTypes.string,\r\n statoRicerca: PropTypes.string,\r\n ufficio: PropTypes.string,\r\n tabNr: PropTypes.number,\r\n annoSelezionato: PropTypes.number,\r\n store: PropTypes.string,\r\n};\r\n\r\nElasticTable.StatiRicercaSetteTrenta = StatiRicerca;\r\n\r\nexport default ElasticTable;\r\n","\r\n\r\nimport { Confirm } from 'framework-ui-components';\r\nimport StatoDichiarazione from 'enums/StatoDichiarazione';\r\nimport { SnackbarWrapper as SnackbarManager } from 'framework-ui-components/Components/Snackbar';\r\n\r\nimport {\r\n cambioStatoMassivoAnnulla, cambioStatoMassivoDaInviare, cambioStatoMassivoCompleta,\r\n cambioStatoMassivoInLavorazione, stampaMassivaDiProva,\r\n stampaMassivaUfficiale, stampaMassivaVarie,\r\n creaTabulatoDebitiCrediti, creaTabulatoOneriAnnoPrecedente,\r\n creaTabulatoDettaglioProspettoLiquidazioneQuadroA, creaTabulatoDettaglioProspettoLiquidazioneQuadroB,\r\n} from 'apis/setteTrentaApi';\r\n\r\nconst azioneMassivaStampaDiProva = (selezionati) => {\r\n const dichiarazioniIds = [];\r\n selezionati.forEach((element) => {\r\n if (element.IdDichiarazione != null) {\r\n dichiarazioniIds.push(element.IdDichiarazione);\r\n }\r\n });\r\n stampaMassivaDiProva(dichiarazioniIds).then((x) => {\r\n if (!x.Success) {\r\n x.DetectedProblems.unshift('Errore durante elaborazione stampe massiva di prova');\r\n SnackbarManager.notifyError(x.DetectedProblems);\r\n }\r\n });\r\n};\r\n\r\nconst azioneMassivaStampaUfficiale = (selezionati) => {\r\n const dichiarazioniIds = [];\r\n selezionati.forEach((element) => {\r\n if (element.IdDichiarazione != null) {\r\n dichiarazioniIds.push(element.IdDichiarazione);\r\n }\r\n });\r\n stampaMassivaUfficiale(dichiarazioniIds).then((x) => {\r\n if (!x.Success) {\r\n x.DetectedProblems.unshift('Errore durante elaborazione stampa massiva ufficiale');\r\n SnackbarManager.notifyError(x.DetectedProblems);\r\n }\r\n });\r\n};\r\n\r\nconst azioneMassivaStampeVarie = (selezionati) => {\r\n const dichiarazioniIds = [];\r\n selezionati.forEach((element) => {\r\n if (element.IdDichiarazione != null) {\r\n dichiarazioniIds.push(element.IdDichiarazione);\r\n }\r\n });\r\n stampaMassivaVarie(dichiarazioniIds).then((x) => {\r\n if (!x.Success) {\r\n x.DetectedProblems.unshift('Errore durante elaborazione stampe varie');\r\n SnackbarManager.notifyError(x.DetectedProblems);\r\n }\r\n });\r\n};\r\n\r\nconst azioneMassivaDaInviare = (selezionati, anno) => {\r\n Confirm('Cambio stato', 'Trasmettere le dichiarazioni selezionate?', 'warning').then((y) => {\r\n const dichiarazioniIds = [];\r\n selezionati.forEach((element) => {\r\n if (element.IdDichiarazione != null) {\r\n dichiarazioniIds.push(element.IdDichiarazione);\r\n }\r\n });\r\n cambioStatoMassivoDaInviare(dichiarazioniIds, anno).then((x) => {\r\n if (!x.Success) {\r\n x.DetectedProblems.unshift('Errore durante cambio stato massivo Trasmetti');\r\n SnackbarManager.notifyError(x.DetectedProblems);\r\n } else {\r\n SnackbarManager.startDeterminateAsyncTask(x.CorrelationId, 'Modifica Stato', dichiarazioniIds.length);\r\n }\r\n });\r\n });\r\n};\r\n\r\nconst azioneMassivaCompleta = (selezionati, anno) => {\r\n Confirm('Cambio stato', \"Cambiare lo stato a 'Completa' per le dichiarazioni selezionate?\", 'warning').then((y) => {\r\n const dichiarazioniIds = [];\r\n selezionati.forEach((element) => {\r\n if (element.IdDichiarazione != null) {\r\n dichiarazioniIds.push(element.IdDichiarazione);\r\n }\r\n });\r\n cambioStatoMassivoCompleta(dichiarazioniIds, anno).then((x) => {\r\n if (!x.Success) {\r\n x.DetectedProblems.unshift('Errore durante cambio stato massivo Completa');\r\n SnackbarManager.notifyError(x.DetectedProblems);\r\n } else {\r\n SnackbarManager.startDeterminateAsyncTask(x.CorrelationId, 'Modifica Stato', dichiarazioniIds.length);\r\n }\r\n });\r\n });\r\n};\r\n\r\nconst azioneMassivaAnnulla = (selezionati, anno) => {\r\n Confirm('Cambio stato', 'Annullare le dichiarazioni selezionate?', 'warning').then((y) => {\r\n const dichiarazioniIds = [];\r\n selezionati.forEach((element) => {\r\n if (element.IdDichiarazione != null) {\r\n dichiarazioniIds.push(element.IdDichiarazione);\r\n }\r\n });\r\n cambioStatoMassivoAnnulla(dichiarazioniIds, anno).then((x) => {\r\n if (!x.Success) {\r\n x.DetectedProblems.unshift('Errore durante cambio stato massivo Annulla');\r\n SnackbarManager.notifyError(x.DetectedProblems);\r\n } else {\r\n SnackbarManager.startDeterminateAsyncTask(x.CorrelationId, 'Modifica Stato', dichiarazioniIds.length);\r\n }\r\n });\r\n });\r\n};\r\n\r\nconst azioneMassivaInLavorazione = (selezionati, anno) => {\r\n Confirm('Cambio stato', \"Cambiare lo stato a 'In lavorazione' per le dichiarazioni selezionate?\", 'warning').then((y) => {\r\n const dichiarazioniIds = [];\r\n selezionati.forEach((element) => {\r\n if (element.IdDichiarazione != null) {\r\n dichiarazioniIds.push(element.IdDichiarazione);\r\n }\r\n });\r\n cambioStatoMassivoInLavorazione(dichiarazioniIds, anno).then((x) => {\r\n if (!x.Success) {\r\n x.DetectedProblems.unshift('Errore durante cambio stato massivo In Lavorazione');\r\n SnackbarManager.notifyError(x.DetectedProblems);\r\n } else {\r\n SnackbarManager.startDeterminateAsyncTask(x.CorrelationId, 'Modifica Stato', dichiarazioniIds.length);\r\n }\r\n });\r\n });\r\n};\r\n\r\nconst valutaAzioneMassivaAnnulla = (items, selezionaTutte) => {\r\n let abilitato = items.length > 0;\r\n items.forEach((x) => {\r\n if (!(x.Stato === StatoDichiarazione.DaControllare\r\n || x.Stato === StatoDichiarazione.DaInviare\r\n || x.Stato === StatoDichiarazione.TrasmessaManualmente)) {\r\n abilitato = false;\r\n }\r\n });\r\n const infoC = (selezionaTutte\r\n ? 'Non puoi eseguire il passaggio di stato se hai selezionato tutte le dichiarazioni'\r\n : 'Non puoi eseguire il passaggio di stato per dichiarazioni in stato diverso da Trasmessa CGN o Controllo Audit.');\r\n\r\n return {\r\n disabled: selezionaTutte || !abilitato,\r\n showInfo: selezionaTutte || !abilitato,\r\n infoContent: infoC,\r\n };\r\n};\r\n\r\nconst valutaAzioneMassivaInLavorazione = (items, selezionaTutte) => {\r\n let abilitato = items.length > 0;\r\n items.forEach((x) => {\r\n if (!(x.Stato === StatoDichiarazione.Completa || x.Stato === StatoDichiarazione.Annullata\r\n || x.Stato === StatoDichiarazione.AnnullataAE\r\n || x.Stato === StatoDichiarazione.ScartataAudit\r\n || x.Stato === StatoDichiarazione.ScartataRicalcolo)) {\r\n abilitato = false;\r\n }\r\n });\r\n const infoC = (selezionaTutte\r\n ? 'Non puoi eseguire il passaggio di stato se hai selezionato tutte le dichiarazioni'\r\n : \"Non puoi eseguire il passaggio di stato per dichiarazioni con stato diverso da 'Completa', 'Annullata', 'Annullata AE', 'Scartata Audit' o 'Scartata ricalcolo'\");\r\n\r\n return {\r\n disabled: selezionaTutte || !abilitato,\r\n showInfo: selezionaTutte || !abilitato,\r\n infoContent: infoC,\r\n };\r\n};\r\n\r\nconst valutaAzioneMassivaDaInviare = (items, selezionaTutte) => {\r\n let abilitato = items.length > 0;\r\n items.forEach((x) => {\r\n if (!(x.Stato === StatoDichiarazione.Completa\r\n || x.Stato === StatoDichiarazione.Annullata)) {\r\n abilitato = false;\r\n }\r\n });\r\n const infoC = (selezionaTutte\r\n ? 'Non puoi eseguire il passaggio di stato se hai selezionato tutte le dichiarazioni'\r\n : \"Non puoi eseguire il passaggio di stato per dichiarazioni con stato diverso da 'Completa' o 'Annullata'.\");\r\n return {\r\n disabled: selezionaTutte || !abilitato,\r\n showInfo: selezionaTutte || !abilitato,\r\n infoContent: infoC,\r\n };\r\n};\r\n\r\nconst valutaAzioneMassivaCompleta = (items, selezionaTutte) => {\r\n let abilitato = items.length > 0;\r\n items.forEach((x) => {\r\n if (!(x.Stato === StatoDichiarazione.InLavorazione && !x.HaErrori)) {\r\n abilitato = false;\r\n }\r\n });\r\n const infoC = (selezionaTutte\r\n ? 'Non puoi eseguire il passaggio di stato se hai selezionato tutte le dichiarazioni'\r\n : \"Non puoi eseguire il passaggio di stato per dichiarazioni in stato diverso da 'In Lavorazione'.\");\r\n return {\r\n disabled: selezionaTutte || !abilitato,\r\n showInfo: selezionaTutte || !abilitato,\r\n infoContent: infoC,\r\n };\r\n};\r\n\r\nconst valutaAzioneMassivaTabulati = (stampaDisabled) => {\r\n const abilitato = !stampaDisabled;\r\n return {\r\n disabled: !abilitato,\r\n showInfo: !abilitato,\r\n infoContent: 'Selezionare almeno una dichiarazione',\r\n };\r\n};\r\n\r\nconst valutaAzioneMassivaStampa = (stampaDisabled) => {\r\n const abilitato = !stampaDisabled;\r\n return {\r\n disabled: !abilitato,\r\n showInfo: !abilitato,\r\n infoContent: 'Selezionare almeno una dichiarazione',\r\n };\r\n};\r\n\r\nconst tabulatoDebitiCrediti = (selezionati, selezionaTutte, currentUserId, codiceUfficio, anno, filtri) => {\r\n const dichiarazioniIds = [];\r\n selezionati.forEach((element) => {\r\n if (element.IdDichiarazione != null) { // escludo anno precedente\r\n dichiarazioniIds.push({ id: element.IdDichiarazione, cf: element.CodiceFiscale, origine: element.DatiAddizionali.Origine });\r\n }\r\n });\r\n\r\n creaTabulatoDebitiCrediti(\r\n (!selezionaTutte ? dichiarazioniIds : null),\r\n currentUserId,\r\n codiceUfficio,\r\n anno,\r\n filtri,\r\n ).then((x) => {\r\n if (!x.Success) {\r\n x.DetectedProblems.unshift('Errore durante la creazione del file');\r\n SnackbarManager.notifyError(x.DetectedProblems);\r\n } else {\r\n const sampleArr = base64ToArrayBuffer(x.Response.FileGenerato);\r\n saveByteArray('Tabulato_debiti_crediti.xls', sampleArr);\r\n }\r\n });\r\n};\r\n\r\nconst tabulatoOneriAnnoPrecedente = (selezionati, selezionaTutte, currentUserId, codiceUfficio, anno, filtri) => {\r\n const dichiarazioniIds = [];\r\n selezionati.forEach((element) => {\r\n dichiarazioniIds.push({ id: element.IdDichiarazione, cf: element.CodiceFiscale, origine: element.DatiAddizionali.Origine });\r\n });\r\n creaTabulatoOneriAnnoPrecedente(\r\n (!selezionaTutte ? dichiarazioniIds : null),\r\n currentUserId,\r\n codiceUfficio,\r\n anno,\r\n filtri,\r\n ).then((x) => {\r\n if (!x.Success) {\r\n x.DetectedProblems.unshift('Errore durante la creazione del file');\r\n SnackbarManager.notifyError(x.DetectedProblems);\r\n } else {\r\n const sampleArr = base64ToArrayBuffer(x.Response.FileGenerato);\r\n saveByteArray('Tabulato_oneri_anno_precedente.xls', sampleArr);\r\n }\r\n });\r\n};\r\n\r\nconst tabulatoDettaglioProspettoLiquidazioneQuadroA = (selezionati, selezionaTutte, currentUserId, codiceUfficio, anno, filtri) => {\r\n const dichiarazioniIds = [];\r\n selezionati.forEach((element) => {\r\n if (element.IdDichiarazione != null) { // escludo anno precedente\r\n dichiarazioniIds.push({ id: element.IdDichiarazione, cf: element.CodiceFiscale, origine: element.DatiAddizionali.Origine });\r\n }\r\n });\r\n\r\n creaTabulatoDettaglioProspettoLiquidazioneQuadroA(\r\n (!selezionaTutte ? dichiarazioniIds : null),\r\n currentUserId,\r\n codiceUfficio,\r\n anno,\r\n filtri,\r\n ).then((x) => {\r\n if (!x.Success) {\r\n x.DetectedProblems.unshift('Errore durante la creazione del file');\r\n SnackbarManager.notifyError(x.DetectedProblems);\r\n } else {\r\n const sampleArr = base64ToArrayBuffer(x.Response.FileGenerato);\r\n saveByteArray('Tabulato calcoli quadro A.xls', sampleArr);\r\n }\r\n });\r\n};\r\n\r\nconst tabulatoDettaglioProspettoLiquidazioneQuadroB = (selezionati, selezionaTutte, currentUserId, codiceUfficio, anno, filtri) => {\r\n const dichiarazioniIds = [];\r\n selezionati.forEach((element) => {\r\n if (element.IdDichiarazione != null) { // escludo anno precedente\r\n dichiarazioniIds.push({ id: element.IdDichiarazione, cf: element.CodiceFiscale, origine: element.DatiAddizionali.Origine });\r\n }\r\n });\r\n\r\n creaTabulatoDettaglioProspettoLiquidazioneQuadroB(\r\n (!selezionaTutte ? dichiarazioniIds : null),\r\n currentUserId,\r\n codiceUfficio,\r\n anno,\r\n filtri,\r\n ).then((x) => {\r\n if (!x.Success) {\r\n x.DetectedProblems.unshift('Errore durante la creazione del file');\r\n SnackbarManager.notifyError(x.DetectedProblems);\r\n } else {\r\n const sampleArr = base64ToArrayBuffer(x.Response.FileGenerato);\r\n saveByteArray('Tabulato calcoli quadro B.xls', sampleArr);\r\n }\r\n });\r\n};\r\n\r\n\r\nfunction base64ToArrayBuffer(base64) {\r\n const binaryString = window.atob(base64);\r\n const bytes = new Uint8Array(binaryString.length);\r\n for (let i = 0; i < binaryString.length; i += 1) {\r\n bytes[i] = binaryString.charCodeAt(i);\r\n }\r\n return bytes;\r\n}\r\n\r\nfunction saveByteArray(reportName, byte) {\r\n const blob = new Blob([byte], { type: 'application/pdf' });\r\n const link = document.createElement('a');\r\n link.href = window.URL.createObjectURL(blob);\r\n link.download = reportName;\r\n link.click();\r\n}\r\n\r\nexport default {\r\n stampaDiProva: azioneMassivaStampaDiProva,\r\n stampaUfficiale: azioneMassivaStampaUfficiale,\r\n stampeVarie: azioneMassivaStampeVarie,\r\n statoDaInviare: azioneMassivaDaInviare,\r\n statoAnnullata: azioneMassivaAnnulla,\r\n statoInLavorazione: azioneMassivaInLavorazione,\r\n statoCompleta: azioneMassivaCompleta,\r\n valutaAzioneMassivaAnnulla,\r\n valutaAzioneMassivaInLavorazione,\r\n valutaAzioneMassivaDaInviare,\r\n valutaAzioneMassivaCompleta,\r\n valutaAzioneMassivaTabulati,\r\n valutaAzioneMassivaStampa,\r\n tabulatoDebitiCrediti,\r\n tabulatoOneriAnnoPrecedente,\r\n tabulatoDettaglioProspettoLiquidazioneQuadroA,\r\n tabulatoDettaglioProspettoLiquidazioneQuadroB,\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 19 19\" \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 '0 0 29 29'\r\n);\r\n","import React, { Component } from 'react';\r\n\r\nconst PLACE_HOLDER = 'notifica-potenziale-isee';\r\n\r\nclass NotificaPotenzialiIsee extends Component {\r\n componentDidMount() {\r\n setTimeout(() => window.PotenzialiPratiche && window.PotenzialiPratiche.avviaNotificaPotenzialiIsee(this.props, document.getElementById(PLACE_HOLDER)), 1000);\r\n }\r\n\r\n componentWillReceiveProps(props) {\r\n if (props.anno && props.ufficio && (this.props.anno !== props.anno || this.props.ufficio !== props.ufficio)) {\r\n window.PotenzialiPratiche && window.PotenzialiPratiche.avviaNotificaPotenzialiIsee(props, document.getElementById(PLACE_HOLDER));\r\n }\r\n }\r\n\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default NotificaPotenzialiIsee;\r\n","import React, { Component, Fragment } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport {\r\n Badge, Button, Card, Dropdown, Grid, Tabs, ButtonGroup, Panel, Confirm, WebRequest, InfoTooltip,\r\n} from 'framework-ui-components';\r\nimport { IFrame } from 'framework-plugins';\r\nimport PlusIcon from 'framework-ui-components/Components/Icons/PlusIcon';\r\nimport MoreIcon from 'framework-ui-components/Components/Icons/MoreIcon';\r\nimport PrinterIcon from 'framework-ui-components/Components/Icons/PrinterIcon';\r\nimport SimpleQuestionMarkIcon from 'framework-ui-components/Components/Icons/SimpleQuestionMarkIcon';\r\nimport { SnackbarWrapper as SnackbarManager } from 'framework-ui-components/Components/Snackbar';\r\n\r\nimport { InputRicerca, PageWrapper } from 'dashboard';\r\nimport {\r\n annullaElimina, creaSetteTrentaOrdinaria, creaSetteTrentaIntegrativa, creaStampa, creaStampaOld,\r\n statiSetteTrenta,\r\n isAbilitatoImportXmlAnnoCorrente, impostazioniServizioSetteTrenta,\r\n cercaDichiarazioni, soscaf,\r\n} from 'apis/setteTrentaApi';\r\nimport TipoDichiarazione from 'enums/TipoDichiarazione';\r\nimport Servizi from 'enums/Servizi';\r\nimport { Scadenze730, StatoDichiarazione } from 'enums';\r\nimport { startLoadingApplication, stopLoadingApplication } from 'actions/applicationActions';\r\n\r\nimport ImportIcon from '../../components/Icons/ImportIcon';\r\nimport { setAnnoSelezionato } from '../../actions/dichiarativiActions';\r\nimport EventoServer from '../../libs/EventoServer';\r\nimport RigaDichiarazione from './RigaDichiarazione';\r\nimport ModaleCreazione from './ModaleCreazione';\r\nimport ModaleStampa from './ModaleStampa';\r\nimport ModaleStampa2 from './ModaleStampa2';\r\nimport ModaleImportazione from './ModaleImportazione';\r\nimport ModaleImportazioneRedditiPF from './ModaleImportazioneRedditiPF';\r\nimport ModaleUploadFile from './ModaleUploadFile';\r\nimport ModaleScadenze from './ModaleScadenze';\r\nimport ModaleUltimaScadenza from './ModaleScadenze/ModaleUltimaScadenza';\r\nimport ModaleTermineUltimo from './ModaleScadenze/ModaleTermineUltimo';\r\nimport ModaleImportazionePdf from './ModaleImportazionePdf';\r\nimport ModaleNotificaScarto from './ModaleNotificaScarto';\r\nimport ElasticTable from './ElasticTable';\r\nimport azioniMassive from './gestoreAzioniMassive';\r\nimport { bindActionCreators } from '../../../node_modules/redux';\r\nimport checkServizio from '../../helpers/checkServizio';\r\nimport AuditIcon from '../../components/Icons/AuditIcon';\r\nimport ExcelIcon from '../../components/Icons/ExcelIcon';\r\nimport NotificaPotenzialiIsee from '../../components/PotenzialiIsee/NotificaPotenzialiIsee';\r\n\r\nconst INITIAL_TAB_INDEX = 0;\r\n\r\nconst DOPO_5_MAGGIO = Date.now() > new Date('2020-05-05').getTime();\r\n\r\nconst MOSTRA_NOTIFICA_ULTIMA_SCADENZA_KEY = 'MOSTRA_NOTIFICA_ULTIMA_SCADENZA_KEY';\r\nconst MOSTRA_NOTIFICA_TERMINE_ULTIMO_KEY = 'MOSTRA_NOTIFICA_TERMINE_ULTIMO_KEY';\r\n\r\nfunction debounce(func, wait, immediate) {\r\n let timeout;\r\n return function () {\r\n const context = this; const\r\n args = arguments;\r\n const later = function () {\r\n timeout = null;\r\n if (!immediate) func.apply(context, args);\r\n };\r\n const callNow = immediate && !timeout;\r\n clearTimeout(timeout);\r\n timeout = setTimeout(later, wait);\r\n if (callNow) func.apply(context, args);\r\n };\r\n}\r\n\r\nclass Dichiarazioni extends Component {\r\n state = {\r\n datiInizialiModale: null,\r\n dichiarazioni: [],\r\n isLoadingModaleCreazione: false,\r\n isLoadingModaleStampa: false,\r\n isLoadingModaleImportazione: false,\r\n isLoadingModaleUpload: false,\r\n searchTerm: '',\r\n selezionati: [],\r\n tabSelezionato: INITIAL_TAB_INDEX,\r\n messaggioErroreCreazione: null,\r\n messaggioErroreStampa: null,\r\n messaggioErroreImportazione: null,\r\n mostraModaleCreazione: false,\r\n mostraModaleStampa: false,\r\n mostraModaleStampa2: false,\r\n mostraModaleImportazione: false,\r\n mostraModaleImportazioneRedditiPF: false,\r\n annoImportazione: 0,\r\n mostraModaleUpload: false,\r\n mostraModaleImportazionePdf: false,\r\n mostraModaleNotificaScarto: false,\r\n mostraModaleScadenze: false,\r\n mostraUltimaScadenza: !window.localStorage || !window.localStorage.getItem(MOSTRA_NOTIFICA_ULTIMA_SCADENZA_KEY),\r\n mostraTermineUltimo: !window.localStorage || !window.localStorage.getItem(MOSTRA_NOTIFICA_TERMINE_ULTIMO_KEY),\r\n nonVisualizzarePiuNotificaUltimaScadenza: false,\r\n nonVisualizzarePiuNotificaTermineUltimo: false,\r\n tipoDichiarazioneCreazione: ModaleCreazione.TipoDichiarazione.NON_SELEZIONATO,\r\n tipoDichiarazioneImportazione: ModaleImportazione.TipoImportazione.NON_SELEZIONATO,\r\n stampaInCorso: false,\r\n nTotali: 0,\r\n nLavorazione: 0,\r\n nScartate: 0,\r\n nDaInviare: 0,\r\n nTrasmesse: 0,\r\n nRicevuteAdE: 0,\r\n urlFileUpload: '',\r\n typeFileUpload: [],\r\n puoImportareXMLAnnoCorrente: false,\r\n selezionaTutte: false,\r\n elementi: [],\r\n totaleElementi: 0,\r\n impostazioni: {},\r\n delegatoCentrale: null,\r\n }\r\n\r\n componentDidMount() {\r\n if (this.props.annoSelezionato === 2021) {\r\n window.location.hash = '/NewSetteTrenta/lista-dichiarazioni';\r\n return;\r\n }\r\n\r\n const { ufficioSelezionato, annoSelezionato } = this.props;\r\n EventoServer.subscribe('CreazioneIntegrativaFallita', this.notificaCreaIntegrativaFallita);\r\n EventoServer.subscribe('ImportazioneDichiarazioneDaXmlTerminata', this.notificaImportazioneDichiarazioneDaXmlTerminata);\r\n EventoServer.subscribe('ImportazioneDichiarazioneDaRedditiPFTerminata', this.notificaImportazioneDichiarazioneDaRedditiPFTerminata);\r\n EventoServer.subscribe('CreaSetteTrentaDaPassaggioNuovoAnnoTerminata', this.notificaCreaSetteTrentaDaPassaggioNuovoAnnoTerminata);\r\n EventoServer.subscribe('DichiarazioneDatiAggiuntiviModificati', this.aggiornaDatiAggiuntivi);\r\n EventoServer.subscribe('DichiarazioneEliminata', this.gestisciEliminata);\r\n EventoServer.subscribe('DichiarazioneIntegrativaCreato', this.notificaCreazioneIntegrativa);\r\n EventoServer.subscribe('DichiarazioneStatoModificato', this.ricaricaTabella);\r\n EventoServer.subscribe('AnagraficaDichiarazioneModificata', this.ricaricaTabella);\r\n EventoServer.subscribe('SegnalibroModificato', this.ricaricaTabella);\r\n EventoServer.subscribe('StampaDichiarazioneCompletata', this.stampaTerminata);\r\n EventoServer.subscribe('CreaSetteTrentaDaPassaggioNuovoAnnoFallito', this.notificaCreaSetteTrentaDaPassaggioNuovoAnnoFallito);\r\n if (annoSelezionato !== 0) {\r\n this.caricaStati(ufficioSelezionato.CodiceUfficio, this.state.searchTerm, annoSelezionato, false);\r\n this.isAbilitatoImportXmlAnnoCorrente(ufficioSelezionato.CodiceUfficio, annoSelezionato);\r\n this.impostazioniServizioSetteTrenta(annoSelezionato);\r\n soscaf(ufficioSelezionato.CodiceUfficio, annoSelezionato)\r\n .then(({ Titolo, CodiceFiscaleIncaricato }) => this.setState({\r\n delegatoCentrale: Titolo === '003' && CodiceFiscaleIncaricato === 'DGNGLG63M09G888C',\r\n }));\r\n cercaDichiarazioni({\r\n searchType: ElasticTable.StatiRicercaSetteTrenta.TRASMESSE,\r\n ufficio: ufficioSelezionato.CodiceUfficio,\r\n anno: annoSelezionato,\r\n searchTerm: '',\r\n $filter: `Stato eq ${StatoDichiarazione.TrasmessaAutomaticamente}`,\r\n $skip: 0,\r\n $top: 100,\r\n }).then((dichiarazioniRicevuteAdE) => this.setState({ nRicevuteAdE: dichiarazioniRicevuteAdE.Count }));\r\n }\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (nextProps.annoSelezionato === 2021) {\r\n window.location.hash = '/NewSetteTrenta/lista-dichiarazioni';\r\n return;\r\n }\r\n\r\n const { ufficioSelezionato, annoSelezionato } = this.props;\r\n if (annoSelezionato != 0 && ufficioSelezionato.CodiceUfficio != nextProps.ufficioSelezionato.CodiceUfficio) {\r\n this.inputRicerca && this.inputRicerca.svuotaRicerca(false);\r\n this.setState({ searchTerm: '' });\r\n this.caricaStati(nextProps.ufficioSelezionato.CodiceUfficio, '', nextProps.annoSelezionato, false);\r\n this.isAbilitatoImportXmlAnnoCorrente(nextProps.ufficioSelezionato.CodiceUfficio, nextProps.annoSelezionato);\r\n }\r\n if (annoSelezionato != nextProps.annoSelezionato) {\r\n this.inputRicerca && this.inputRicerca.svuotaRicerca(false);\r\n this.setState({ searchTerm: '' });\r\n this.caricaStati(nextProps.ufficioSelezionato.CodiceUfficio, '', nextProps.annoSelezionato, false);\r\n this.isAbilitatoImportXmlAnnoCorrente(nextProps.ufficioSelezionato.CodiceUfficio, nextProps.annoSelezionato);\r\n this.impostazioniServizioSetteTrenta(nextProps.annoSelezionato);\r\n }\r\n\r\n if (annoSelezionato !== nextProps.annoSelezionato || ufficioSelezionato.CodiceUfficio !== nextProps.ufficioSelezionato.CodiceUfficio) {\r\n soscaf(nextProps.ufficioSelezionato.CodiceUfficio, nextProps.annoSelezionato)\r\n .then(({ Titolo, CodiceFiscaleIncaricato }) => this.setState({\r\n delegatoCentrale: Titolo === '003' && CodiceFiscaleIncaricato === 'DGNGLG63M09G888C',\r\n }));\r\n cercaDichiarazioni({\r\n searchType: ElasticTable.StatiRicercaSetteTrenta.TRASMESSE,\r\n ufficio: ufficioSelezionato.CodiceUfficio,\r\n anno: annoSelezionato,\r\n searchTerm: '',\r\n $filter: `Stato eq ${StatoDichiarazione.TrasmessaAutomaticamente}`,\r\n $skip: 0,\r\n $top: 100,\r\n }).then((dichiarazioniRicevuteAdE) => this.setState({ nRicevuteAdE: dichiarazioniRicevuteAdE.Count }));\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n EventoServer.unsubscribe('DichiarazioneIntegrativaCreato', this.notificaCreazioneIntegrativa);\r\n EventoServer.unsubscribe('CreazioneIntegrativaFallita', this.notificaCreaIntegrativaFallita);\r\n EventoServer.unsubscribe('ImportazioneDichiarazioneDaXmlTerminata', this.notificaImportazioneDichiarazioneDaXmlTerminata);\r\n EventoServer.unsubscribe('ImportazioneDichiarazioneDaRedditiPFTerminata', this.notificaImportazioneDichiarazioneDaRedditiPFTerminata);\r\n EventoServer.unsubscribe('CreaSetteTrentaDaPassaggioNuovoAnnoTerminata', this.notificaCreaSetteTrentaDaPassaggioNuovoAnnoTerminata);\r\n EventoServer.unsubscribe('DichiarazioneDatiAggiuntiviModificati', this.aggiornaDatiAggiuntivi);\r\n EventoServer.unsubscribe('DichiarazioneEliminata', this.gestisciEliminata);\r\n EventoServer.unsubscribe('DichiarazioneStatoModificato', this.ricaricaTabella);\r\n EventoServer.unsubscribe('SegnalibroModificato', this.ricaricaTabella);\r\n EventoServer.unsubscribe('AnagraficaDichiarazioneModificata', this.ricaricaTabella);\r\n EventoServer.unsubscribe('StampaDichiarazioneCompletata', this.stampaTerminata);\r\n EventoServer.unsubscribe('CreaSetteTrentaDaPassaggioNuovoAnnoFallito', this.notificaCreaSetteTrentaDaPassaggioNuovoAnnoFallito);\r\n }\r\n\r\n onNonVisualizzarePiuNotificaUltimaScadenza = ({ currentTarget }) => {\r\n this.setState({ nonVisualizzarePiuNotificaUltimaScadenza: currentTarget.checked });\r\n\r\n if (currentTarget.checked) {\r\n window.localStorage && window.localStorage.setItem(MOSTRA_NOTIFICA_ULTIMA_SCADENZA_KEY, MOSTRA_NOTIFICA_ULTIMA_SCADENZA_KEY);\r\n } else {\r\n window.localStorage && window.localStorage.removeItem(MOSTRA_NOTIFICA_ULTIMA_SCADENZA_KEY);\r\n }\r\n }\r\n\r\n onNonVisualizzarePiuNotificaTermineUltimo = ({ currentTarget }) => {\r\n this.setState({ nonVisualizzarePiuNotificaTermineUltimo: currentTarget.checked });\r\n\r\n if (currentTarget.checked) {\r\n window.localStorage && window.localStorage.setItem(MOSTRA_NOTIFICA_TERMINE_ULTIMO_KEY, MOSTRA_NOTIFICA_TERMINE_ULTIMO_KEY);\r\n } else {\r\n window.localStorage && window.localStorage.removeItem(MOSTRA_NOTIFICA_TERMINE_ULTIMO_KEY);\r\n }\r\n }\r\n\r\n notificaDichiarazioniScartate() {\r\n const { ufficioSelezionato, annoSelezionato } = this.props;\r\n const localStorageKey = `DATA-NOTIFICA-730-SCARTATI-PM-${ufficioSelezionato.CodiceUfficio}`;\r\n const dataUltimaNotifica = parseInt(localStorage[localStorageKey] || '0');\r\n const dataAttuale = Date.now();\r\n\r\n if (dataAttuale - dataUltimaNotifica > 86400000) {\r\n cercaDichiarazioni({\r\n searchType: ElasticTable.StatiRicercaSetteTrenta.SCARTATE,\r\n ufficio: ufficioSelezionato.CodiceUfficio,\r\n anno: annoSelezionato,\r\n searchTerm: '',\r\n $skip: 0,\r\n $top: 100,\r\n }).then((dichiarazioniScartate) => {\r\n if (dichiarazioniScartate.Count > 0) {\r\n localStorage[localStorageKey] = dataAttuale.toString();\r\n this.setState({ mostraModaleNotificaScarto: true, dichiarazioniScartate });\r\n }\r\n });\r\n }\r\n }\r\n\r\n isAbilitatoImportXmlAnnoCorrente = (studio, anno) => {\r\n isAbilitatoImportXmlAnnoCorrente(studio, anno)\r\n .then((res) => {\r\n this.setState({\r\n puoImportareXMLAnnoCorrente: res,\r\n });\r\n });\r\n }\r\n\r\n impostazioniServizioSetteTrenta = (anno) => {\r\n const { impostazioni } = this.state;\r\n\r\n if (anno == 2020 && !impostazioni[anno]) {\r\n impostazioniServizioSetteTrenta(anno)\r\n .then((res) => {\r\n this.setState({\r\n impostazioni: { ...impostazioni, [anno]: res },\r\n });\r\n });\r\n }\r\n }\r\n\r\n caricaStati = (studio, searchTerm, anno, ricerca) => {\r\n statiSetteTrenta(studio, searchTerm, anno)\r\n .then((x) => {\r\n const dati = {};\r\n for (const a in x) {\r\n dati[x[a].Stato] = x[a].Totale;\r\n }\r\n const totali = dati[ElasticTable.StatiRicercaSetteTrenta.TUTTE] || 0;\r\n const inLavorazione = dati[ElasticTable.StatiRicercaSetteTrenta.IN_LAVORAZIONE] || 0;\r\n const scartate = dati[ElasticTable.StatiRicercaSetteTrenta.SCARTATE] || 0;\r\n const daInviare = dati[ElasticTable.StatiRicercaSetteTrenta.DA_INVIARE] || 0;\r\n const trasmesse = dati[ElasticTable.StatiRicercaSetteTrenta.TRASMESSE] || 0;\r\n\r\n // Auto seleziono il tab visualizzato in base al ritorno della ricerca\r\n const tabSelezionato = () => {\r\n if (searchTerm && ricerca) {\r\n if (scartate != 0) return 4;\r\n if (inLavorazione != 0) return 1;\r\n if (daInviare != 0) return 2;\r\n if (trasmesse != 0) return 3;\r\n }\r\n\r\n if (ricerca) {\r\n return 0;\r\n }\r\n\r\n return null;\r\n };\r\n\r\n const stat = {\r\n nTotali: totali,\r\n nLavorazione: inLavorazione,\r\n nScartate: scartate,\r\n nDaInviare: daInviare,\r\n nTrasmesse: trasmesse,\r\n };\r\n\r\n if (tabSelezionato() != null) {\r\n stat.tabSelezionato = tabSelezionato();\r\n }\r\n\r\n this.setState(stat);\r\n\r\n if (scartate > 0 && anno === new Date().getFullYear()) {\r\n this.notificaDichiarazioniScartate();\r\n }\r\n });\r\n }\r\n\r\n gestisciEliminata = (data) => {\r\n const { anniRegistrati, annoSelezionato } = this.props;\r\n\r\n this.ricaricaTabella();\r\n if (data.AzioneAnnullata === true) {\r\n this.chiudiModaleCreazione();\r\n const url = anniRegistrati.filter((x) => x.Anno == annoSelezionato)[0].Url730;\r\n window.location.href = `${url}#/Frontespizio/${data.IdDichiarazione.split('/')[1]}`;\r\n }\r\n }\r\n\r\n ricaricaTabella = debounce(() => {\r\n this.caricaStati(this.props.ufficioSelezionato.CodiceUfficio, this.state.searchTerm, this.props.annoSelezionato, false);\r\n this.tabellaDichiarazioni && this.tabellaDichiarazioni.loadPage();\r\n }, 1000, false);\r\n\r\n aggiornaDatiAggiuntivi = (evt) => {\r\n const items = this.tabellaDichiarazioni.getItems();\r\n const eq = items.filter((x) => x.IdDichiarazione == evt.IdDichiarazione);\r\n if (eq.length > 0) {\r\n eq[0].DatiAddizionali = evt.DatiAddizionali;\r\n }\r\n }\r\n\r\n // stampa per anni antecedenti al 2020\r\n stampaDichiarazioniOld = (data) => {\r\n const {\r\n SalvaPreferenze,\r\n IsStampaUfficiale,\r\n\r\n StampaDichiarazione,\r\n AutocertificazioneGenerica,\r\n FascicoloContribuente,\r\n\r\n AutocertificazioneFamiglieNumerose,\r\n DelegaUnica, // DelegaPrecompilatoCU AnnoImpostaPiuUno\r\n InformativaPrivacy,\r\n\r\n AutocertificazioneFamiliari,\r\n StampaF24,\r\n Scelta582x1000,\r\n\r\n AutocertificazioneC4,\r\n RichiestaAccredito,\r\n DocumentiDaConsegnare,\r\n\r\n AutocertificazioneOneri,\r\n PromemoriaConguagli,\r\n DelegaPrecompilatoCU, // DelegaPrecompilatoCU AnnoImposta\r\n\r\n AutocertificazioneF6,\r\n CalcoloBonusIRPEF,\r\n\r\n Fatture,\r\n LetteraNovita,\r\n Barra2Provvisorio,\r\n\r\n RistampaLeStampate,\r\n NrCopie,\r\n FronteRetro,\r\n ModelliCompilati,\r\n GuidaLettura,\r\n ImpostazioneStampa,\r\n MaxPaginePdf,\r\n ArchiviaInZip,\r\n } = data;\r\n\r\n const { selezionati, selezionaTutte, totaleElementi } = this.state;\r\n const { ufficioSelezionato, annoSelezionato } = this.props;\r\n const dichiarazioniIds = [];\r\n\r\n selezionati.forEach((element) => {\r\n if (element.IdDichiarazione != null) {\r\n dichiarazioniIds.push(element.IdDichiarazione);\r\n }\r\n });\r\n\r\n if (dichiarazioniIds.length == 0) {\r\n SnackbarManager.notifyError('Nessuna dichiarazione stampabile selezionata');\r\n } else {\r\n this.setState({ isLoadingModaleStampa: true }, () => {\r\n creaStampaOld(\r\n this.tabellaDichiarazioni.urlCorrente().replace('/SetteTrenta/CercaSetteTrenta?', ''),\r\n !selezionaTutte ? dichiarazioniIds : null,\r\n IsStampaUfficiale,\r\n StampaDichiarazione,\r\n AutocertificazioneGenerica,\r\n FascicoloContribuente,\r\n AutocertificazioneFamiglieNumerose,\r\n DelegaUnica, // DelegaPrecompilatoCU AnnoImpostaPiuUno\r\n InformativaPrivacy,\r\n AutocertificazioneFamiliari,\r\n StampaF24,\r\n Scelta582x1000,\r\n AutocertificazioneC4,\r\n RichiestaAccredito,\r\n DocumentiDaConsegnare,\r\n AutocertificazioneOneri,\r\n PromemoriaConguagli,\r\n DelegaPrecompilatoCU, // DelegaPrecompilatoCU AnnoImposta\r\n AutocertificazioneF6,\r\n CalcoloBonusIRPEF,\r\n Fatture,\r\n LetteraNovita,\r\n Barra2Provvisorio,\r\n RistampaLeStampate,\r\n FronteRetro,\r\n ModelliCompilati,\r\n GuidaLettura,\r\n NrCopie,\r\n SalvaPreferenze,\r\n ufficioSelezionato.CodiceUfficio,\r\n annoSelezionato,\r\n ArchiviaInZip,\r\n ).then((resp) => {\r\n if (!resp.Success) {\r\n this.setState({ messaggioErroreStampa: resp.DetectedProblems, isLoadingModaleStampa: false });\r\n } else {\r\n SnackbarManager.startDeterminateAsyncTask(\r\n resp.CorrelationId,\r\n 'Stampa PDF in corso',\r\n selezionaTutte ? Math.min(totaleElementi, window.config.maxDichiarazioniStampabili) : dichiarazioniIds.length,\r\n );\r\n if (annoSelezionato > 2019\r\n && (NrCopie > 10\r\n || dichiarazioniIds.length > 10\r\n || (selezionaTutte && Math.min(totaleElementi, window.config.maxDichiarazioniStampabili) > 10))) {\r\n Confirm('Informazione',
    Il processo di stampa potrebbe durare più tempo del previsto. Potrai consultare lo stato di avanzamento accedendo all'apposita pagina Monitora stampe.
    , 'info', 'HO CAPITO', 'modal-alert').then(() => { });\r\n }\r\n this.setState({ stampaInCorso: true });\r\n this.chiudiModaleStampa();\r\n this.annullaSelezione();\r\n }\r\n });\r\n });\r\n }\r\n }\r\n\r\n // stampa per anni successivi al 2019\r\n stampaDichiarazioni = (data, avvisaOperazioneLunga) => {\r\n const {\r\n SalvaPreferenze,\r\n IsStampaUfficiale,\r\n\r\n StampaDichiarazione,\r\n AutocertificazioneGenerica,\r\n FascicoloContribuente,\r\n\r\n DelegaUnica, // DelegaPrecompilatoCU AnnoImpostaPiuUno\r\n InformativaPrivacy,\r\n\r\n AutocertificazioneFamiliari,\r\n StampaF24,\r\n Scelta582x1000,\r\n\r\n AutocertificazioneC4,\r\n AutocertificazioneCasiParticolariQuadroC,\r\n RichiestaAccredito,\r\n DocumentiDaConsegnare,\r\n\r\n AutocertificazioneOneri,\r\n PromemoriaConguagli,\r\n DelegaPrecompilatoCU, // DelegaPrecompilatoCU AnnoImposta\r\n\r\n AutocertificazioneF6,\r\n CalcoloBonusIRPEF,\r\n\r\n Fatture,\r\n LetteraNovita,\r\n Barra2Provvisorio,\r\n\r\n RistampaLeStampate,\r\n NrCopie,\r\n FronteRetro,\r\n ModelliCompilati,\r\n GuidaLettura,\r\n Ricevuta730AdE,\r\n ArchiviaInZip,\r\n } = data;\r\n\r\n const { selezionati, selezionaTutte, totaleElementi } = this.state;\r\n const { ufficioSelezionato, annoSelezionato } = this.props;\r\n const dichiarazioniIds = [];\r\n\r\n selezionati.forEach((element) => {\r\n dichiarazioniIds.push({\r\n id: element.IdDichiarazione,\r\n cf: element.CodiceFiscale,\r\n cognome: element.Cognome,\r\n nome: element.Nome,\r\n origine: element.DatiAddizionali.Origine,\r\n });\r\n });\r\n\r\n if (dichiarazioniIds.length == 0) {\r\n SnackbarManager.notifyError('Nessuna dichiarazione stampabile selezionata');\r\n } else {\r\n this.setState({ isLoadingModaleStampa: true }, () => {\r\n creaStampa(\r\n this.tabellaDichiarazioni.urlCorrente().replace('/SetteTrenta/CercaSetteTrenta?', ''),\r\n !selezionaTutte ? dichiarazioniIds : null,\r\n IsStampaUfficiale,\r\n StampaDichiarazione,\r\n AutocertificazioneGenerica,\r\n FascicoloContribuente,\r\n DelegaUnica, // DelegaPrecompilatoCU AnnoImpostaPiuUno\r\n InformativaPrivacy,\r\n AutocertificazioneFamiliari,\r\n StampaF24,\r\n Scelta582x1000,\r\n AutocertificazioneC4,\r\n AutocertificazioneCasiParticolariQuadroC,\r\n RichiestaAccredito,\r\n DocumentiDaConsegnare,\r\n AutocertificazioneOneri,\r\n PromemoriaConguagli,\r\n DelegaPrecompilatoCU, // DelegaPrecompilatoCU AnnoImposta\r\n AutocertificazioneF6,\r\n CalcoloBonusIRPEF,\r\n Fatture,\r\n LetteraNovita,\r\n Barra2Provvisorio,\r\n RistampaLeStampate,\r\n FronteRetro,\r\n ModelliCompilati,\r\n GuidaLettura,\r\n Ricevuta730AdE,\r\n NrCopie,\r\n SalvaPreferenze,\r\n ufficioSelezionato.CodiceUfficio,\r\n annoSelezionato,\r\n ArchiviaInZip,\r\n ).then((resp) => {\r\n if (!resp.Success) {\r\n this.setState({ messaggioErroreStampa: resp.DetectedProblems[0], isLoadingModaleStampa: false });\r\n } else {\r\n SnackbarManager.startDeterminateAsyncTask(\r\n resp.CorrelationId,\r\n 'Stampa PDF in corso',\r\n selezionaTutte ? totaleElementi : dichiarazioniIds.length,\r\n );\r\n // if (avvisaOperazioneLunga) {\r\n // Confirm('Informazione',
    Il processo di stampa potrebbe durare più tempo del previsto. Potrai consultare lo stato di avanzamento accedendo all'apposita pagina Monitora stampe.
    , 'info', 'HO CAPITO', 'modal-alert').then(() => { });\r\n // }\r\n this.setState({ stampaInCorso: true });\r\n this.chiudiModaleStampa();\r\n this.annullaSelezione();\r\n\r\n // se dopo tot è ancora stampa in corso avvisa...\r\n setTimeout((correlationId) => {\r\n if (this.state.stampaInCorso) {\r\n this.setState({ stampaInCorso: false, selezionati: [], selezionaTutte: false });\r\n\r\n Confirm('Informazione',\r\n
    Il processo di stampa in corso potrebbe richiedere alcuni minuti. Puoi consultare lo stato di avanzamento dalla sezione Monitora Stampe.

    \r\n I file di stampa rimarranno a disposizione per 7 giorni.\r\n
    , 'info', 'HO CAPITO', 'modal-alert').then(\r\n () => { },\r\n );\r\n SnackbarManager.notifyAsyncTaskError(\r\n correlationId,\r\n 'Stampa in corso..',\r\n 'Per consultare lo stato di avanzamento della stampa accedere alla sezione \\'Monitora Stampe\\'',\r\n );\r\n SnackbarManager.completeAsyncTask(\r\n correlationId,\r\n '',\r\n 'Monitora Stampe',\r\n () => {\r\n this.apriMonitorStampe();\r\n },\r\n );\r\n }\r\n }, 40000, resp.CorrelationId);\r\n }\r\n });\r\n });\r\n }\r\n }\r\n\r\n creaNuovaDichiarazione = (data) => {\r\n const { anniRegistrati, annoSelezionato, ufficioSelezionato } = this.props;\r\n\r\n this.setState({ isLoadingModaleCreazione: true }, () => {\r\n if (data.TipoDichiarazione == TipoDichiarazione.Ordinaria) {\r\n creaSetteTrentaOrdinaria(ufficioSelezionato.CodiceUfficio, data.CodiceFiscale.trim().toUpperCase(), data.Nome.trim().toUpperCase(), data.Cognome.trim().toUpperCase(), data.TipoDichiarazione, annoSelezionato)\r\n .then((res) => {\r\n if (res.Success) {\r\n const url = anniRegistrati.filter((x) => x.Anno == annoSelezionato)[0].Url730;\r\n window.location.href = `${url}#/Frontespizio/${res.IdDichiarazione.split('/')[1]}`;\r\n this.chiudiModaleCreazione();\r\n } else {\r\n this.setState({ messaggioErroreCreazione: res.DetectedProblems });\r\n }\r\n\r\n this.setState({ isLoadingModaleCreazione: false });\r\n });\r\n } else {\r\n const cmd = {\r\n Studio: ufficioSelezionato.CodiceUfficio,\r\n CodiceFiscale: data.CodiceFiscale.toUpperCase(),\r\n Nome: data.Nome.toUpperCase(),\r\n Cognome: data.Cognome.toUpperCase(),\r\n TipoDichiarazione: data.TipoDichiarazione,\r\n Protocollo: data.Protocollo,\r\n Anno: annoSelezionato,\r\n };\r\n if (data.TipoDichiarazione == TipoDichiarazione.SetteTrentaIntegrativaCodice2) {\r\n cmd.SenzaSostituto = data.SceltaSostituto == 0;\r\n cmd.IBAN = data.SceltaSostituto == 0 ? data.CodiceIban : null;\r\n cmd.IdSostitutoImposta = data.Sostituto ? data.Sostituto.IdSostituto : null;\r\n cmd.DataPrimaRata = data.DataPrimaRata;\r\n }\r\n creaSetteTrentaIntegrativa(cmd)\r\n .then((resp) => {\r\n if (!resp.Success) {\r\n this.setState({ messaggioErroreCreazione: resp.DetectedProblems });\r\n } else {\r\n this.chiudiModaleCreazione();\r\n }\r\n this.setState({ isLoadingModaleCreazione: false });\r\n });\r\n }\r\n });\r\n }\r\n\r\n ripristinaEliminata = (data) => {\r\n this.setState({ isLoadingModaleCreazione: true }, () => {\r\n annullaElimina(data.dichiarazioneEsistente.IdDichiarazione, this.props.annoSelezionato)\r\n .then((res) => {\r\n if (!res.Success) {\r\n this.setState({ messaggioErroreCreazione: res.DetectedProblems });\r\n }\r\n\r\n this.setState({ isLoadingModaleCreazione: false });\r\n });\r\n });\r\n }\r\n\r\n notificaCreaIntegrativaFallita = (evt) => {\r\n this.setState({ messaggioErroreCreazione: \"Errore durante la creazione dell'integrativa.\" });\r\n }\r\n\r\n notificaImportazioneDichiarazioneDaXmlTerminata = (evt) => {\r\n this.setState({ isLoadingModaleImportazione: false });\r\n this.chiudiModaleImportazione();\r\n this.ricaricaTabella();\r\n }\r\n\r\n notificaImportazioneDichiarazioneDaRedditiPFTerminata = (evt) => {\r\n this.setState({ isLoadingModaleImportazione: false });\r\n this.chiudiModaleImportazioneRedditiPF();\r\n this.ricaricaTabella();\r\n }\r\n\r\n notificaCreaSetteTrentaDaPassaggioNuovoAnnoTerminata = (evt) => {\r\n const { anniRegistrati, annoSelezionato, stopLoadingApplication } = this.props;\r\n\r\n stopLoadingApplication();\r\n const url = anniRegistrati.filter((x) => x.Anno == annoSelezionato)[0].Url730;\r\n window.location.href = `${url}#/Frontespizio/${evt.IdDichiarazione.split('/')[1]}`;\r\n }\r\n\r\n notificaCreaSetteTrentaDaPassaggioNuovoAnnoFallito = (evt) => {\r\n SnackbarManager.notifyError('Errore nel passaggio al nuovo anno della dichiarazione');\r\n }\r\n\r\n notificaCreazioneIntegrativa = (evt) => {\r\n const { anniRegistrati, annoSelezionato } = this.props;\r\n\r\n if (evt.IdDichiarazioneInteressata) {\r\n this.chiudiModaleCreazione();\r\n const url = anniRegistrati.filter((x) => x.Anno == annoSelezionato)[0].Url730;\r\n window.location.href = `${url}#/Frontespizio/${evt.IdDichiarazioneInteressata.split('/')[1]}`;\r\n }\r\n }\r\n\r\n onClickCerca = (searchTerm) => {\r\n this.setState({ searchTerm: searchTerm.trim() }, () => {\r\n // this.tabellaDichiarazioni && this.tabellaDichiarazioni.loadPage();\r\n this.caricaStati(this.props.ufficioSelezionato.CodiceUfficio, searchTerm.trim(), this.props.annoSelezionato, true);\r\n });\r\n }\r\n\r\n setTabSelezionato = (index) => {\r\n const { tabSelezionato } = this.state;\r\n const { ufficioSelezionato } = this.props;\r\n\r\n const fromStorageKey = this.getStorageKey(ufficioSelezionato.CodiceUfficio, tabSelezionato);\r\n const toStorageKey = this.getStorageKey(ufficioSelezionato.CodiceUfficio, index);\r\n\r\n const { sortProperty, sortOrder } = JSON.parse(window.sessionStorage.getItem(fromStorageKey) || '{}');\r\n const toItem = {\r\n filtri: {},\r\n pageSize: 10,\r\n currentPage: 0,\r\n ...JSON.parse(window.sessionStorage.getItem(toStorageKey) || '{}'),\r\n sortProperty,\r\n sortOrder,\r\n };\r\n\r\n window.sessionStorage.setItem(toStorageKey, JSON.stringify(toItem));\r\n\r\n this.setState({ tabSelezionato: index });\r\n }\r\n\r\n // #region Azioni massive\r\n\r\n azioneMassivaStampaDiProva = () => {\r\n azioniMassive.stampaDiProva(this.state.selezionati);\r\n }\r\n\r\n azioneMassivaStampaUfficiale = () => {\r\n azioniMassive.stampaUfficiale(this.state.selezionati);\r\n }\r\n\r\n azioneMassivaStampeVarie = () => {\r\n azioniMassive.stampeVarie(this.state.selezionati);\r\n }\r\n\r\n azioneMassivaDaInviare = () => {\r\n azioniMassive.statoDaInviare(this.state.selezionati, this.props.annoSelezionato);\r\n }\r\n\r\n azioneMassivaCompleta = () => {\r\n azioniMassive.statoCompleta(this.state.selezionati, this.props.annoSelezionato);\r\n }\r\n\r\n azioneMassivaAnnulla = () => {\r\n azioniMassive.statoAnnullata(this.state.selezionati, this.props.annoSelezionato);\r\n }\r\n\r\n azioneMassivaInLavorazione = () => {\r\n azioniMassive.statoInLavorazione(this.state.selezionati, this.props.annoSelezionato);\r\n }\r\n\r\n tabulatoDebitiCrediti = () => {\r\n const { selezionati, selezionaTutte } = this.state;\r\n const { utente, ufficioSelezionato, annoSelezionato } = this.props;\r\n\r\n azioniMassive.tabulatoDebitiCrediti(\r\n selezionati,\r\n selezionaTutte,\r\n utente.IdentificativoUtente,\r\n ufficioSelezionato.CodiceUfficio,\r\n annoSelezionato,\r\n this.tabellaDichiarazioni.urlCorrente().replace('/SetteTrenta/CercaSetteTrenta?', ''),\r\n );\r\n }\r\n\r\n tabulatoOneriAnnoPrecedente = () => {\r\n const { selezionati, selezionaTutte } = this.state;\r\n const { utente, ufficioSelezionato, annoSelezionato } = this.props;\r\n\r\n // Non ci sono limiti nel numero di elementi per il\r\n // tabulato oneri anno precedente\r\n azioniMassive.tabulatoOneriAnnoPrecedente(\r\n selezionati,\r\n selezionaTutte,\r\n utente.IdentificativoUtente,\r\n ufficioSelezionato.CodiceUfficio,\r\n annoSelezionato,\r\n this.tabellaDichiarazioni.urlCorrente().replace('/SetteTrenta/CercaSetteTrenta?', ''),\r\n );\r\n }\r\n\r\n // tabulato dettaglio prospetto di liquidazione quadro A\r\n tabulatoDettaglioProspettoLiquidazioneQuadroA = () => {\r\n const { selezionati, selezionaTutte } = this.state;\r\n const { utente, ufficioSelezionato, annoSelezionato } = this.props;\r\n\r\n azioniMassive.tabulatoDettaglioProspettoLiquidazioneQuadroA(\r\n selezionati,\r\n selezionaTutte,\r\n utente.IdentificativoUtente,\r\n ufficioSelezionato.CodiceUfficio,\r\n annoSelezionato,\r\n this.tabellaDichiarazioni.urlCorrente().replace('/SetteTrenta/CercaSetteTrenta?', ''),\r\n );\r\n }\r\n\r\n // tabulato dettaglio prospetto di liquidazione quadro B\r\n tabulatoDettaglioProspettoLiquidazioneQuadroB = () => {\r\n const { selezionati, selezionaTutte } = this.state;\r\n const { utente, ufficioSelezionato, annoSelezionato } = this.props;\r\n\r\n azioniMassive.tabulatoDettaglioProspettoLiquidazioneQuadroB(\r\n selezionati,\r\n selezionaTutte,\r\n utente.IdentificativoUtente,\r\n ufficioSelezionato.CodiceUfficio,\r\n annoSelezionato,\r\n this.tabellaDichiarazioni.urlCorrente().replace('/SetteTrenta/CercaSetteTrenta?', ''),\r\n );\r\n }\r\n\r\n // #endregion\r\n\r\n apriCreazioneOrdinaria = () => {\r\n this.setState({\r\n mostraModaleCreazione: true,\r\n tipoDichiarazioneCreazione: ModaleCreazione.TipoDichiarazione.ORDINARIA,\r\n });\r\n }\r\n\r\n apriModaleStampa = (anno) => {\r\n if (anno >= 2020) {\r\n this.setState({ mostraModaleStampa2: true });\r\n } else {\r\n this.setState({ mostraModaleStampa: true, messaggioErroreStampa: null });\r\n }\r\n }\r\n\r\n esportaExcel = () => {\r\n window.open(this.tabellaDichiarazioni.dataTable.urlCorrente().replace('/SetteTrenta/CercaSetteTrenta', '/SetteTrenta/EsportaExcel'), 'target=_blank');\r\n }\r\n\r\n chiudiModaleStampa = () => {\r\n this.setState({ mostraModaleStampa: false, mostraModaleStampa2: false, isLoadingModaleStampa: false });\r\n }\r\n\r\n apriCreazioneIntegrativa = () => {\r\n this.setState({ mostraModaleCreazione: true, tipoDichiarazioneCreazione: ModaleCreazione.TipoDichiarazione.INTEGRATIVA });\r\n }\r\n\r\n chiudiModaleCreazione = () => {\r\n this.setState({ mostraModaleCreazione: false, tipoDichiarazioneCreazione: ModaleCreazione.TipoDichiarazione.NON_SELEZIONATO, messaggioErroreCreazione: null });\r\n }\r\n\r\n stampaTerminata = (evt) => {\r\n const { stampaInCorso } = this.state;\r\n if (stampaInCorso && evt.DichiarazioniProcessate === evt.DichiarazioniTotali) {\r\n this.setState({ stampaInCorso: false, selezionati: [], selezionaTutte: false });\r\n this.tabellaDichiarazioni && this.tabellaDichiarazioni.loadPage();\r\n }\r\n // this.ricaricaTabella(); provo a togliere per evitare un gran numero di refresh inutili e non necessari\r\n }\r\n\r\n annullaSelezione = () => {\r\n this.setState({ selezionati: [], selezionaTutte: false });\r\n this.tabellaDichiarazioni.pulisciSelezione();\r\n }\r\n\r\n apriImportazioneXmlAnnoCorrente = () => {\r\n this.setState({ mostraModaleImportazione: true, tipoImportazione: ModaleImportazione.TipoImportazione.Corrente, annoImportazione: 2021 });\r\n }\r\n\r\n apriImportazioneXmlAnnoCorrenteRettificativi2019 = () => {\r\n this.setState({ mostraModaleImportazione: true, tipoImportazione: ModaleImportazione.TipoImportazione.Corrente, annoImportazione: 2019 });\r\n }\r\n\r\n apriImportazioneXmlAnnoCorrenteRettificativi = () => {\r\n this.setState({ mostraModaleImportazione: true, tipoImportazione: ModaleImportazione.TipoImportazione.Corrente, annoImportazione: 2020 });\r\n }\r\n\r\n apriImportazioneXmlAnnoPrecedente = () => {\r\n this.setState({ mostraModaleImportazione: true, tipoImportazione: ModaleImportazione.TipoImportazione.Precedente, annoImportazione: 2020 });\r\n }\r\n\r\n apriImportazioneRedditiPFAnnoPrecedente = () => {\r\n this.setState({ mostraModaleImportazioneRedditiPF: true, tipoImportazione: ModaleImportazione.TipoImportazione.Precedente, annoImportazione: 2020 });\r\n }\r\n\r\n apriImportazioneCU = () => {\r\n this.setState({ urlFileUpload: `/SetteTrenta/ImportazioneCU?studio=${this.props.ufficioSelezionato.CodiceUfficio}&anno=${this.props.annoSelezionato}`, typeFileUpload: ['.xml'], mostraModaleUpload: true });\r\n }\r\n\r\n apriImportazionePdf = () => {\r\n this.setState({ mostraModaleImportazionePdf: true });\r\n }\r\n\r\n chiudiModaleImportazionePdf = () => {\r\n this.setState({ mostraModaleImportazionePdf: false });\r\n }\r\n\r\n chiudiModaleImportazione = () => {\r\n this.setState({ mostraModaleImportazione: false, tipoImportazione: ModaleImportazione.TipoImportazione.NonSelezionato, messaggioErroreImportazione: null });\r\n }\r\n\r\n chiudiModaleImportazioneRedditiPF = () => {\r\n this.setState({ mostraModaleImportazioneRedditiPF: false, tipoImportazione: ModaleImportazione.TipoImportazione.NonSelezionato, messaggioErroreImportazione: null });\r\n }\r\n\r\n chiudiModaleUpload = () => {\r\n this.setState({ urlFileUpload: '', typeFileUpload: [], mostraModaleUpload: false });\r\n }\r\n\r\n impostaAnnoSelezionato = (data) => {\r\n if (data.Anno >= 2021) {\r\n window.location.hash = '/NewSetteTrenta/lista-dichiarazioni';\r\n }\r\n\r\n this.props.setAnnoSelezionato(data.Anno);\r\n }\r\n\r\n accediAudit = () => {\r\n window.open(\r\n `${window.config.AuditUrl}`, '_blank',\r\n );\r\n }\r\n\r\n apriMonitorStampe = () => {\r\n window.location.hash = '/elaborazionimassive';\r\n }\r\n\r\n getStorageKey(codiceUfficio, tabSelezionato) {\r\n switch (tabSelezionato) {\r\n case 0: return `${codiceUfficio}tableTutte_730`;\r\n case 1: return `${codiceUfficio}tableLavorazione_730`;\r\n case 2: return `${codiceUfficio}tableDaInviare_730`;\r\n case 3: return `${codiceUfficio}tableTrasmesse_730`;\r\n case 4: return `${codiceUfficio}tableScartate_730`;\r\n default: return '';\r\n }\r\n }\r\n\r\n scaricaRicevuteAdE = (item = {}) => {\r\n const { ufficioSelezionato, annoSelezionato } = this.props;\r\n const {\r\n IdDichiarazione, CodiceFiscale, Cognome, Nome,\r\n } = item;\r\n creaStampa(\r\n `$filter=Stato eq ${StatoDichiarazione.TrasmessaAutomaticamente}`,\r\n IdDichiarazione ? [{\r\n id: IdDichiarazione, cf: CodiceFiscale, cognome: Cognome, nome: Nome,\r\n }] : null,\r\n false,\r\n false,\r\n false,\r\n false,\r\n false,\r\n false,\r\n false,\r\n false,\r\n false,\r\n false,\r\n false,\r\n false,\r\n false,\r\n false,\r\n false,\r\n false,\r\n false,\r\n false,\r\n false,\r\n false,\r\n false,\r\n false,\r\n false,\r\n false,\r\n false,\r\n true,\r\n 1,\r\n false,\r\n ufficioSelezionato.CodiceUfficio,\r\n annoSelezionato,\r\n false,\r\n ).then((resp) => {\r\n if (!resp.Success) {\r\n SnackbarManager.notifyError(`Si è verificato un errore durante lo scaricamento ${IdDichiarazione ? 'della ricevuta' : 'delle ricevute'} AdE`);\r\n } else {\r\n SnackbarManager.notifySuccess(`Scaricamento ${IdDichiarazione ? 'della ricevuta' : 'delle ricevute'} AdE avviato`);\r\n }\r\n })\r\n .catch(() => SnackbarManager.notifyError(`Si è verificato un errore durante lo scaricamento ${IdDichiarazione ? 'della ricevuta' : 'delle ricevute'} AdE`));\r\n }\r\n\r\n render() {\r\n const {\r\n ufficioSelezionato,\r\n utente,\r\n anniRegistrati,\r\n annoSelezionato,\r\n servizioAttivo,\r\n accessoNonConsentito,\r\n } = this.props;\r\n const {\r\n messaggioErroreCreazione,\r\n messaggioErroreStampa,\r\n messaggioErroreImportazione,\r\n mostraModaleCreazione,\r\n mostraModaleImportazione,\r\n mostraModaleImportazioneRedditiPF,\r\n annoImportazione,\r\n mostraModaleUpload,\r\n mostraModaleStampa,\r\n mostraModaleStampa2,\r\n mostraModaleNotificaScarto,\r\n mostraModaleScadenze,\r\n mostraUltimaScadenza,\r\n mostraTermineUltimo,\r\n dichiarazioniScartate,\r\n tabSelezionato,\r\n selezionati,\r\n searchTerm,\r\n tipoDichiarazioneCreazione,\r\n isLoadingModaleCreazione,\r\n isLoadingModaleStampa,\r\n tipoImportazione,\r\n isLoadingModaleImportazione,\r\n isLoadingModaleUpload,\r\n stampaInCorso,\r\n nTotali,\r\n nDaInviare,\r\n nLavorazione,\r\n nScartate,\r\n nTrasmesse,\r\n nRicevuteAdE,\r\n urlFileUpload,\r\n typeFileUpload,\r\n mostraModaleImportazionePdf,\r\n puoImportareXMLAnnoCorrente,\r\n selezionaTutte,\r\n elementi,\r\n totaleElementi,\r\n impostazioni,\r\n nonVisualizzarePiuNotificaUltimaScadenza,\r\n nonVisualizzarePiuNotificaTermineUltimo,\r\n delegatoCentrale,\r\n } = this.state;\r\n\r\n const badgeConteggio = (count) => (count != 0 ? {count} : null);\r\n const badgeConteggioScartate = (count) => (count != 0 ? {count} : null);\r\n\r\n const dichiarazioniNonStampate = (items) => {\r\n let nr = 0;\r\n items.forEach((x) => {\r\n if (x.DatiAddizionali && x.DatiAddizionali.StampaUfficialeEffettuata == 'False') {\r\n nr++;\r\n }\r\n });\r\n return nr;\r\n };\r\n\r\n const dichiarazioniStampate = (items) => {\r\n let nr = 0;\r\n items.forEach((x) => {\r\n if (x.DatiAddizionali && x.DatiAddizionali.StampaUfficialeEffettuata == 'True') {\r\n nr++;\r\n }\r\n });\r\n return nr;\r\n };\r\n\r\n const stampaDisabled = (this.tabellaDichiarazioni && this.tabellaDichiarazioni.getSelezionati().length == 0) || stampaInCorso === true;\r\n\r\n const commonElasticTableProps = {\r\n anniRegistrati,\r\n onSelezionati: (i) => this.setState({ selezionati: i.filter((z) => annoSelezionato > 2019 || z.Stato != 6), selezionaTutte: false }),\r\n onPageLoad: (elementi, totaleElementi) => this.setState({ elementi, totaleElementi }),\r\n row: RigaDichiarazione,\r\n searchTerm,\r\n scaricaRicevutaAdE: this.scaricaRicevuteAdE,\r\n ufficio: ufficioSelezionato.CodiceUfficio,\r\n impostazioni: impostazioni[annoSelezionato],\r\n };\r\n\r\n const dataAttuale = Date.now();\r\n let prossimaScadenza = Scadenze730.NonSelezionato;\r\n\r\n // al primo render 'delegatoCentrale' è nullo e quindi evito di renderizzare il messaggio, poi diventa true/false\r\n if (delegatoCentrale != null) {\r\n const elencoScadenze = (delegatoCentrale ? window.config.scadenze730Centralizzati : window.config.scadenze730).split(',').slice();\r\n let indexScadenze = 0;\r\n for (indexScadenze = 0; indexScadenze < elencoScadenze.length; indexScadenze++) {\r\n const scadenza = elencoScadenze[indexScadenze];\r\n // console.log(dataAttuale, Date.parse(new Date(scadenza).toUTCString()), dataAttuale < Date.parse(new Date(scadenza).toUTCString()));\r\n if (dataAttuale < Date.parse(new Date(scadenza).toUTCString())) {\r\n prossimaScadenza = indexScadenze;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n const pannelloScadenziario = (\r\n
    \r\n { prossimaScadenza == Scadenze730.Agosto23\r\n && (\r\n \r\n Le dichiarazioni con precompilato evaso\r\n \r\n

    Saranno inviate all'Agenzia delle Entrate solo le dichiarazioni con richiesta del precompilato in stato \"evasa\".

    Puoi verificare lo stato delle richieste del precompilato dal servizio \"Richieste Enti\".

    \r\n
    trasmesse a CGN entro il 23/08 alle ore 24:00 saranno inviate all'Agenzia delle Entrate\r\n \r\n

    La gestione operativa dell'invio all'Agenzia delle Entrate richiederà qualche giorno.

    \r\n
    per consentire i conguagli entro la prima mensilità utile. this.setState({ mostraModaleScadenze: true })}>Visualizza le scadenze del 730\r\n
    \r\n
    \r\n )}\r\n { prossimaScadenza == Scadenze730.Agosto31\r\n && (\r\n \r\n Le dichiarazioni trasmesse a CGN entro il 31/08 alle ore 24:00 saranno inviate all'Agenzia delle Entrate\r\n \r\n

    La gestione operativa dell'invio all'Agenzia delle Entrate richiederà qualche giorno.

    \r\n
    come previsto dalla normativa. this.setState({ mostraModaleScadenze: true })}>Visualizza le scadenze del 730\r\n
    \r\n
    \r\n )}\r\n { prossimaScadenza == Scadenze730.Settembre22\r\n && (\r\n \r\n Le dichiarazioni con precompilato evaso\r\n \r\n

    Saranno inviate all'Agenzia delle Entrate solo le dichiarazioni con richiesta del precompilato in stato \"evasa\".

    Puoi verificare lo stato delle richieste del precompilato dal servizio \"Richieste Enti\".

    \r\n
    trasmesse a CGN entro il 22/09 alle ore 24:00 saranno inviate all'Agenzia delle Entrate\r\n \r\n

    La gestione operativa dell'invio all'Agenzia delle Entrate richiederà qualche giorno.

    \r\n
    per consentire i conguagli entro la prima mensilità utile. this.setState({ mostraModaleScadenze: true })}>Visualizza le scadenze del 730\r\n
    \r\n
    \r\n )}\r\n {!delegatoCentrale && prossimaScadenza == Scadenze730.UltimaScadenza\r\n && (\r\n \r\n Hai tempo fino al 28/09 alle ore 23:00\r\n \r\n

    Ti chiediamo di trasmettere tutte le dichiarazioni a CGN con 2 giorni di anticipo rispetto alla chiusura normativa della Campagna Fiscale (30/09) per permetterci la gestione operativa dell'invio all'Agenzia della Entrate.

    \r\n
    per trasmettere le dichiarazioni a CGN al fine di poterle inviare all'Agenzia delle Entrate entro il termine della campagna fiscale.\r\n
    \r\n
    \r\n )}\r\n { delegatoCentrale && prossimaScadenza == Scadenze730.UltimaScadenza\r\n && (\r\n \r\n Hai tempo fino al 27/09 alle ore 23:00\r\n \r\n

    Ti chiediamo di trasmettere tutte le dichiarazioni a CGN con 5 giorni di anticipo rispetto alla chiusura normativa della Campagna Fiscale (30/09) per permetterci la verifica e la gestione delle dichiarazioni.

    \r\n
    per trasmettere le dichiarazioni a CGN al fine di poterle inviare all'Agenzia delle Entrate entro il termine della campagna fiscale.\r\n
    \r\n
    \r\n )}\r\n { delegatoCentrale && prossimaScadenza == Scadenze730.TermineUltimo\r\n && (\r\n \r\n \r\n Hai tempo fino alle 16.00 di oggi, 28/09 per correggere ed integrare le eventuali dichiarazioni con status \"Scartata Audit\" nella sezione \"Scartate\".\r\n \r\n \r\n )}\r\n
    \r\n );\r\n\r\n const totaleSelezionabili = elementi.filter((z) => annoSelezionato > 2019 || z.Stato != 6).length;\r\n const totaleElementiSelezionabili = totaleElementi; // Math.min(totaleElementi, window.config.maxDichiarazioniStampabili);\r\n const totaleSelezionati = selezionaTutte ? totaleElementiSelezionabili : selezionati.length;\r\n\r\n const pannelloSelezionati = totaleSelezionati > 0 && (\r\n \r\n Hai selezionato {totaleSelezionati} {totaleSelezionati !== 1 ? 'dichiarazioni' : 'dichiarazione'}.\r\n {totaleSelezionati === totaleElementiSelezionabili && elementi.length < totaleElementiSelezionabili && }\r\n {annoSelezionato > 2019 && totaleSelezionati === totaleSelezionabili && totaleSelezionati < totaleElementiSelezionabili\r\n && (\r\n \r\n )}\r\n \r\n );\r\n\r\n let anniRegistratiFiltrato = anniRegistrati;\r\n if (window.config.ufficiAbilitatiPreRilascio != '*') {\r\n // se la chiave contiene dei valori significa che voglio abilitare l'anno solo per alcuni uffici\r\n let vediSeAbilitare = false;\r\n window.config.ufficiAbilitatiPreRilascio.split(',').forEach((element) => {\r\n if (ufficioSelezionato.CodiceUfficio == element) {\r\n vediSeAbilitare = true;\r\n }\r\n });\r\n if (vediSeAbilitare == false) {\r\n anniRegistratiFiltrato = anniRegistrati.filter((x) => x.Anno != 2020);\r\n if (annoSelezionato == 2020) {\r\n this.props.setAnnoSelezionato(2019);\r\n }\r\n }\r\n }\r\n\r\n return (\r\n \r\n
    \r\n 730 \r\n
    \r\n
    \r\n {annoSelezionato}
    }>\r\n {\r\n anniRegistratiFiltrato.map((x) => (\r\n this.impostaAnnoSelezionato(x)}>{x.Anno}))\r\n }\r\n \r\n
    \r\n
    \r\n )}\r\n pageActions={(\r\n \r\n \r\n this.accediAudit()}\r\n >\r\n \r\n \r\n\r\n {servizioAttivo && annoSelezionato == 2019 && (\r\n \r\n )}\r\n\r\n {servizioAttivo && annoSelezionato == 2020 && (\r\n \r\n \r\n \r\n )}\r\n >\r\n this.esportaExcel()}> {/* ...azioniMassive.valutaAzioneMassivaCompleta(this.tabellaDichiarazioni.getSelezionati()) }> */}\r\n Esporta tutte le
    dichiarazioni\r\n
    \r\n this.tabulatoDebitiCrediti()}\r\n {...azioniMassive.valutaAzioneMassivaTabulati(stampaDisabled)}\r\n >\r\n Tabulato debiti/crediti\r\n \r\n this.tabulatoOneriAnnoPrecedente()}\r\n {...azioniMassive.valutaAzioneMassivaTabulati(stampaDisabled)}\r\n >\r\n Tabulato oneri anno
    precedente\r\n \r\n this.tabulatoDettaglioProspettoLiquidazioneQuadroA()}\r\n {...azioniMassive.valutaAzioneMassivaTabulati(stampaDisabled)}\r\n >\r\n Tabulato calcoli quadro A\r\n \r\n this.tabulatoDettaglioProspettoLiquidazioneQuadroB()}\r\n {...azioniMassive.valutaAzioneMassivaTabulati(stampaDisabled)}\r\n >\r\n Tabulato calcoli quadro B\r\n \r\n\r\n \r\n )}\r\n
    \r\n )}\r\n >\r\n \r\n \r\n \r\n Lista dichiarazioni\r\n }\r\n\r\n multipleActions={(\r\n \r\n {\r\n servizioAttivo == true\r\n && (\r\n 0)\r\n ? \r\n : \r\n }\r\n >\r\n Nuova ordinaria\r\n {impostazioni[annoSelezionato]\r\n && impostazioni[annoSelezionato].CampagnaIntegrativiAperta\r\n && Nuova integrativa}\r\n \r\n )\r\n }\r\n 0)\r\n ? \r\n : \r\n }\r\n >\r\n this.apriModaleStampa(annoSelezionato)}\r\n {...azioniMassive.valutaAzioneMassivaStampa(stampaDisabled)}\r\n >Stampa dichiarazioni
    selezionate\r\n \r\n {annoSelezionato > 2019\r\n && (\r\n this.apriMonitorStampe()}\r\n showInfo\r\n infoPosition=\"right\"\r\n infoContent=\"I file relativi alle stampe generate verranno mantenuti a disposizione per sette giorni\"\r\n >Monitora Stampe\r\n \r\n )}\r\n \r\n {\r\n servizioAttivo == true\r\n && annoSelezionato == 2019\r\n && ufficioSelezionato.CodiceUfficio == '00002'\r\n && (\r\n }>\r\n Uso interno: importa XML 730/2019 per rettificativi\r\n \r\n )\r\n }\r\n {\r\n servizioAttivo == true\r\n && annoSelezionato == 2020\r\n && ufficioSelezionato.CodiceUfficio == '00002'\r\n && (\r\n }>\r\n {puoImportareXMLAnnoCorrente && Uso interno: importa XML 730/2020 per rettificativi}\r\n \r\n )\r\n }\r\n {/*\r\n servizioAttivo == true\r\n && annoSelezionato == 2020\r\n && (\r\n }>\r\n Importa CU {annoSelezionato}\r\n Importa XML 730/2020\r\n {puoImportareXMLAnnoCorrente && Importa XML 730/2021}\r\n {window.datiUtente.ImportazionePdfAttivata && Importa PDF 730/2020}\r\n Importa RedditiPF/2020\r\n \r\n )\r\n */\r\n }\r\n {\r\n servizioAttivo == true && this.tabellaDichiarazioni && this.tabellaDichiarazioni.getSelezionati().length > 0\r\n && (\r\n }>\r\n {(tabSelezionato == 0 || tabSelezionato == 1)\r\n && (\r\n \r\n Imposta come \"Completa\"\r\n \r\n )}\r\n {(tabSelezionato == 0 || tabSelezionato == 2)\r\n && (\r\n \r\n Imposta come \"Trasmessa CGN\"\r\n \r\n )}\r\n {(tabSelezionato == 0 || tabSelezionato == 2 || tabSelezionato == 4)\r\n && (\r\n \r\n Imposta come \"In Lavorazione\"\r\n \r\n )}\r\n {(tabSelezionato == 0 || tabSelezionato == 3)\r\n && (\r\n \r\n Imposta come \"Annullata\"\r\n \r\n )}\r\n {false\r\n && (\r\n 0 ? 'Scarica le ricevute dell\\'Agenzia delle Entrate di tutte le dichiarazioni in status \"Ricevuta AdE\"' : 'Non è presente nessuna dichiarazione \"Ricevuta da AdE\"'}\r\n showInfo\r\n >\r\n Scarica tutte le ricevute AdE\r\n \r\n )}\r\n \r\n )\r\n }\r\n
    \r\n )}\r\n >\r\n {annoSelezionato == 2020 && pannelloScadenziario}\r\n \r\n \r\n {!servizioAttivo && !accessoNonConsentito && Il servizio non è attivo. L'accesso è permesso solo in consultazione}\r\n { this.inputRicerca = r; }} />\r\n \r\n \r\n \r\n \r\n \r\n Tutte {badgeConteggio(nTotali)}}>\r\n {pannelloSelezionati}\r\n { this.tabellaDichiarazioni = r; }}\r\n tabNr={0}\r\n statoRicerca={ElasticTable.StatiRicercaSetteTrenta.TUTTE}\r\n annoSelezionato={annoSelezionato}\r\n store={this.getStorageKey(ufficioSelezionato.CodiceUfficio, 0)}\r\n />\r\n \r\n\r\n In lavorazione {badgeConteggio(nLavorazione)}}>\r\n {pannelloSelezionati}\r\n { this.tabellaDichiarazioni = r; }}\r\n tabNr={1}\r\n statoRicerca={ElasticTable.StatiRicercaSetteTrenta.IN_LAVORAZIONE}\r\n annoSelezionato={annoSelezionato}\r\n store={this.getStorageKey(ufficioSelezionato.CodiceUfficio, 1)}\r\n />\r\n \r\n\r\n Da inviare {badgeConteggio(nDaInviare)}}>\r\n {pannelloSelezionati}\r\n { this.tabellaDichiarazioni = r; }}\r\n tabNr={2}\r\n statoRicerca={ElasticTable.StatiRicercaSetteTrenta.DA_INVIARE}\r\n annoSelezionato={annoSelezionato}\r\n store={this.getStorageKey(ufficioSelezionato.CodiceUfficio, 2)}\r\n />\r\n \r\n\r\n Trasmesse {badgeConteggio(nTrasmesse)}}>\r\n {pannelloSelezionati}\r\n { this.tabellaDichiarazioni = r; }}\r\n tabNr={3}\r\n statoRicerca={ElasticTable.StatiRicercaSetteTrenta.TRASMESSE}\r\n annoSelezionato={annoSelezionato}\r\n store={this.getStorageKey(ufficioSelezionato.CodiceUfficio, 3)}\r\n />\r\n \r\n\r\n Scartate {badgeConteggioScartate(nScartate)}}>\r\n {pannelloSelezionati}\r\n { this.tabellaDichiarazioni = r; }}\r\n tabNr={4}\r\n statoRicerca={ElasticTable.StatiRicercaSetteTrenta.SCARTATE}\r\n annoSelezionato={annoSelezionato}\r\n store={this.getStorageKey(ufficioSelezionato.CodiceUfficio, 4)}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n\r\n {mostraModaleCreazione\r\n && (\r\n \r\n )}\r\n\r\n \r\n\r\n z.Stato == 6)}\r\n totaleSelezionati={totaleSelezionati}\r\n />\r\n\r\n {mostraModaleImportazione\r\n && (\r\n \r\n )}\r\n\r\n {mostraModaleImportazioneRedditiPF\r\n && (\r\n \r\n )}\r\n\r\n {mostraModaleUpload\r\n && (\r\n \r\n )}\r\n\r\n {mostraModaleImportazionePdf && (\r\n \r\n )}\r\n\r\n {\r\n mostraModaleNotificaScarto\r\n && (\r\n x.Anno == annoSelezionato)[0].Url730}\r\n dichiarazioniScartate={dichiarazioniScartate}\r\n onClose={() => this.setState({ mostraModaleNotificaScarto: false, tabSelezionato: 4 })}\r\n />\r\n )\r\n }\r\n\r\n {\r\n mostraModaleScadenze && (\r\n this.setState({ mostraModaleScadenze: false })}\r\n />\r\n )\r\n }\r\n\r\n {\r\n annoSelezionato == 2020 && prossimaScadenza == Scadenze730.UltimaScadenza && mostraUltimaScadenza == true && (\r\n this.setState({ mostraUltimaScadenza: false })}\r\n delegatoCentrale={delegatoCentrale}\r\n />\r\n )\r\n }\r\n\r\n {\r\n annoSelezionato == 2020 && delegatoCentrale && prossimaScadenza == Scadenze730.TermineUltimo && mostraTermineUltimo == true && (\r\n this.setState({ mostraTermineUltimo: false })}\r\n />\r\n )\r\n }\r\n
    \r\n \r\n );\r\n }\r\n}\r\n\r\nconst mapStoreToProps = (store) => ({\r\n ufficioSelezionato: store.utente.ufficioSelezionato,\r\n utente: store.utente.profilo,\r\n anniRegistrati: store.dichiarativi.anniRegistrati.data,\r\n annoSelezionato: store.dichiarativi.annoSelezionato,\r\n});\r\n\r\nconst mapDispatchToProps = (dispatch) => ({\r\n setAnnoSelezionato: bindActionCreators(setAnnoSelezionato, dispatch),\r\n startLoadingApplication: bindActionCreators(startLoadingApplication, dispatch),\r\n stopLoadingApplication: bindActionCreators(stopLoadingApplication, dispatch),\r\n});\r\n\r\nDichiarazioni.propTypes = {\r\n ufficioSelezionato: PropTypes.object,\r\n annoSelezionato: PropTypes.number.isRequired,\r\n utente: PropTypes.object,\r\n startLoadingApplication: PropTypes.func,\r\n stopLoadingApplication: PropTypes.func,\r\n servizioAttivo: PropTypes.bool,\r\n accessoNonConsentito: PropTypes.bool,\r\n};\r\n\r\nexport default checkServizio(Servizi['7OL'])(connect(mapStoreToProps, mapDispatchToProps)(Dichiarazioni));\r\n","import React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Button, Grid, Modal, Textblock, Formatter,\r\n} from 'framework-ui-components';\r\n\r\nimport { dettaglioBarra4 } from 'apis/setteTrentaApi';\r\n\r\nconst FORM_INITIAL_STATE = {\r\n IdDichiarazione: '',\r\n Dichiarante: '',\r\n CodiceFiscaleSostitutoImposta: '',\r\n Trattenuta: 0,\r\n Rimborso: 0,\r\n Stato7304: '',\r\n ModalitaInvio: '',\r\n Note: '',\r\n DataTrasmissioneCgn: null,\r\n DataTrasmissioneAE: null,\r\n ProtocolloInvioAE: '',\r\n EsitoInvioAE: '',\r\n DataEsitoInvioAE: null,\r\n NomeFileEsito: '',\r\n DataInvioPostel: null,\r\n Scarto7304: '',\r\n DataRicezioneScarto: null,\r\n NomeFileScarto: '',\r\n NoteScarto: '',\r\n Scarto: false,\r\n};\r\n\r\nclass DettaglioBarra4 extends Component {\r\n state = {\r\n ...FORM_INITIAL_STATE,\r\n isLoadingInternal: false,\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (nextProps.showModal && this.props.showModal != nextProps.showModal) {\r\n this.caricaDettaglioBarra4(nextProps.idDichiarazione);\r\n }\r\n }\r\n\r\n caricaDettaglioBarra4(idDichiarazione) {\r\n this.setState({\r\n isLoadingInternal: true,\r\n }, () => {\r\n dettaglioBarra4(idDichiarazione, this.props.annoSelezionato)\r\n .then((res) => {\r\n if (res) {\r\n this.setState({\r\n ...res,\r\n isLoadingInternal: false,\r\n });\r\n } else {\r\n this.setState({\r\n ...FORM_INITIAL_STATE,\r\n isLoadingInternal: false,\r\n });\r\n }\r\n });\r\n });\r\n }\r\n\r\n chiudi = () => {\r\n this.setState(FORM_INITIAL_STATE, () => this.props.onChiudi && this.props.onChiudi());\r\n }\r\n\r\n render() {\r\n const {\r\n showModal,\r\n } = this.props;\r\n const {\r\n Dichiarante, Trattenuta, Rimborso, Stato7304, ModalitaInvio,\r\n Note, DataTrasmissioneCgn, DataTrasmissioneAE, ProtocolloInvioAE, EsitoInvioAE,\r\n DataEsitoInvioAE, DataRicezioneScarto, NoteScarto,\r\n Scarto, isLoadingInternal, CodiceFiscaleSostitutoImposta, DataInvioPostel\r\n } = this.state;\r\n\r\n const senzaSostituto = CodiceFiscaleSostitutoImposta == '';\r\n const label = Scarto ? 'Scarto 730/4' : 'Esito 730/4';\r\n\r\n\r\n return (\r\n \r\n Dettaglio 730/4\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n €} label=\"Trattenuto\" />\r\n \r\n \r\n €} label=\"Rimborsato\" />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n } label=\"Data trasmissione CGN\" />\r\n \r\n \r\n } label=\"Data trasmissione A.E.\" />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n } label=\"Data esito invio A.E.\" />\r\n \r\n \r\n {!senzaSostituto\r\n && (\r\n \r\n \r\n \r\n \r\n \r\n } label=\"Data esito 730/4\" />\r\n \r\n \r\n )\r\n }\r\n {!senzaSostituto\r\n && (\r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n { DataInvioPostel!=null && \r\n \r\n \r\n } label=\"Data invio Postel\" />\r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nDettaglioBarra4.propTypes = {\r\n idDichiarazione: PropTypes.string.isRequired,\r\n onChiudi: PropTypes.func.isRequired,\r\n showModal: PropTypes.bool.isRequired,\r\n annoSelezionato: PropTypes.number,\r\n};\r\n\r\nexport default DettaglioBarra4;\r\n","import React, { Component, Fragment } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport {\r\n Badge, Card, OptionDropdown, Grid, Tabs, ODataTable, Formatter, Dropdown, Panel, Highlighter, Button, PopOver,\r\n} from 'framework-ui-components';\r\nimport SuccessoIcon from 'framework-ui-components/Components/Icons/SuccessoIcon';\r\nimport { SnackbarWrapper as SnackbarManager } from 'framework-ui-components/Components/Snackbar';\r\nimport { InputRicerca, PageWrapper } from 'dashboard';\r\nimport {\r\n totali7304, stampaBarra4, stampaLetteraPrecontrolli, stampaLetteraDiniego, stampaContribuenti7304,\r\n} from 'apis/setteTrentaApi';\r\nimport TipoDichiarazione from 'enums/TipoDichiarazione';\r\nimport Servizi from 'enums/Servizi';\r\nimport { setAnnoSelezionato } from '../../actions/dichiarativiActions';\r\nimport EventoServer from '../../libs/EventoServer';\r\n\r\nimport DettaglioBarra4 from './DettaglioBarra4';\r\nimport { bindActionCreators } from '../../../node_modules/redux';\r\nimport checkServizio from '../../helpers/checkServizio';\r\nimport ExcelIcon from '../../components/Icons/ExcelIcon';\r\n\r\nconst INITIAL_TAB_INDEX = 0;\r\n\r\nconst RigaSostituto = ({ additionalRowData, item }) => (\r\n window.location.href = `/#/SetteTrenta/Sostituto/${item.CodiceFiscale}/${item.Nome.replace('/', '')}`}>\r\n \r\n \r\n \r\n {item.CodiceFiscale}\r\n {item.Trasmessi}\r\n {item.EsitoPositivo}\r\n {item.PreControlli}\r\n {item.Scarti}\r\n \r\n);\r\n\r\nfunction stampaTipo(tipo) {\r\n switch (tipo) {\r\n case TipoDichiarazione.SetteTrentaIntegrativaCodice1:\r\n return '1';\r\n case TipoDichiarazione.SetteTrentaIntegrativaCodice2:\r\n return '2';\r\n case TipoDichiarazione.SetteTrentaIntegrativaCodice3:\r\n return '3';\r\n default:\r\n return '';\r\n }\r\n}\r\n\r\nconst CODICEFISCALEINPS = '80078750587';\r\n\r\nfunction stampaStato(item) {\r\n if (item.DatiAddizionali.CodiceFiscaleSostitutoImposta != ''\r\n && (item.Anno > 2019 || item.DatiAddizionali.CodiceFiscaleSostitutoImposta != CODICEFISCALEINPS)\r\n && (item.DatiAddizionali.DaTrattenere7304 == '0' && item.DatiAddizionali.DaRimborsare7304 == '0')) {\r\n return 'Importi a zero';\r\n } if (item.DatiAddizionali.CodiceFiscaleSostitutoImposta == '') {\r\n return 'Senza sostituto';\r\n } if ((item.DatiAddizionali.DaTrattenere7304 != '0' || item.DatiAddizionali.DaRimborsare7304 != '0') && item.DatiAddizionali.Stato7304 == 'NonImpostato') {\r\n return 'Inviato A.E.';\r\n } if (item.DatiAddizionali.SenzaSostituto == 'False'\r\n && (item.Anno > 2019 || item.DatiAddizionali.CodiceFiscaleSostitutoImposta != CODICEFISCALEINPS) && item.DatiAddizionali.Stato7304 == 'Ok') {\r\n return \"Reso disponibile al sostituto d'imposta\";\r\n } if (item.DatiAddizionali.Stato7304 == 'Precontrolli') {\r\n return 'Controllo preventivo';\r\n } if (item.DatiAddizionali.CodiceFiscaleSostitutoImposta !== CODICEFISCALEINPS && item.DatiAddizionali.Stato7304 == 'ScartoAE' && item.DatiAddizionali.Stato7304Info == 'NO' && item.DatiAddizionali.DataInvioPostel == '') {\r\n return 'Non disponibile';\r\n } if (item.DatiAddizionali.CodiceFiscaleSostitutoImposta !== CODICEFISCALEINPS && item.DatiAddizionali.Stato7304 == 'ScartoAE' && item.DatiAddizionali.Stato7304Info == 'NO' && item.DatiAddizionali.DataInvioPostel != '') {\r\n return 'Postel';\r\n } if ((item.DatiAddizionali.Stato7304 == 'ScartoAE' && (item.DatiAddizionali.Stato7304Info == 'CF' || item.DatiAddizionali.Stato7304Info == 'CV'))) {\r\n return 'Scartato Sostituto';\r\n } if (item.DatiAddizionali.Stato7304 == 'ScartoInps') {\r\n return 'Scartato I.N.P.S.';\r\n } if (item.DatiAddizionali.Stato7304 == 'Ok' && item.DatiAddizionali.CodiceFiscaleSostitutoImposta == CODICEFISCALEINPS) {\r\n return \"Abbinata dall'I.N.P.S.\";\r\n }\r\n return '';\r\n}\r\n\r\nclass RigaContribuente extends Component {\r\n state = {\r\n mostraModaleDettaglio: false,\r\n }\r\n\r\n stampa = () => {\r\n const { item } = this.props;\r\n stampaBarra4([item]).then((resp) => {\r\n if (!resp.Success) {\r\n SnackbarManager.notifyError(resp.DetectedProblems);\r\n } else {\r\n SnackbarManager.startDeterminateAsyncTask(resp.CorrelationId, 'Creazione pdf in corso', 1);\r\n this.setState({\r\n stampaInCorso: true,\r\n });\r\n }\r\n });\r\n }\r\n\r\n apriDettaglio = () => {\r\n this.setState({\r\n mostraModaleDettaglio: true,\r\n });\r\n }\r\n\r\n chiudiModaleDettaglio = () => {\r\n this.setState({\r\n mostraModaleDettaglio: false,\r\n });\r\n }\r\n\r\n stampaLetteraControlli = () => {\r\n const { item } = this.props;\r\n\r\n const stato = {\r\n IdDichiarazione: item.IdDichiarazione,\r\n CodiceUfficio: item.CodiceUfficio,\r\n Anno: item.Anno,\r\n };\r\n\r\n stampaLetteraPrecontrolli(stato)\r\n .then((resp) => {\r\n if (!resp.Success) {\r\n this.setState({\r\n messaggioErroreStampa: resp.DetectedProblems,\r\n isLoadingModaleStampa: false,\r\n });\r\n } else {\r\n SnackbarManager.startDeterminateAsyncTask(resp.CorrelationId, 'Creazione pdf in corso', 1);\r\n this.setState({\r\n stampaInCorso: true,\r\n });\r\n }\r\n });\r\n }\r\n\r\n stampaLetteraDiniego = () => {\r\n const { item } = this.props;\r\n\r\n const stato = {\r\n IdDichiarazione: item.IdDichiarazione,\r\n CodiceUfficio: item.CodiceUfficio,\r\n Anno: item.Anno,\r\n };\r\n\r\n stampaLetteraDiniego(stato)\r\n .then((resp) => {\r\n if (!resp.Success) {\r\n this.setState({\r\n messaggioErroreStampa: resp.DetectedProblems,\r\n isLoadingModaleStampa: false,\r\n });\r\n } else {\r\n SnackbarManager.startDeterminateAsyncTask(resp.CorrelationId, 'Creazione pdf in corso', 1);\r\n this.setState({\r\n stampaInCorso: true,\r\n });\r\n }\r\n });\r\n }\r\n\r\n render() {\r\n const {\r\n additionalRowData,\r\n item,\r\n } = this.props;\r\n const {\r\n mostraModaleDettaglio,\r\n } = this.state;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {item.DatiAddizionali.Congiunta == 'True' && }\r\n {additionalRowData.tabNr == 2 && {item.DatiAddizionali.LetteraPrecontrolliStampata == 'True' && }}\r\n {stampaTipo(item.Tipo)}\r\n {additionalRowData.tabNr != 2 && {stampaStato(item)}}\r\n {item.DatiAddizionali.Rate7304}\r\n € {item.DatiAddizionali.DaTrattenere7304}\r\n € {item.DatiAddizionali.DaRimborsare7304}\r\n \r\n \r\n \r\n {item.DatiAddizionali.CodiceFiscaleSostitutoImposta !== CODICEFISCALEINPS && item.DatiAddizionali.DenominazioneSostitutoImposta != '' && item.DatiAddizionali.Stampa7304Abilitata === 'True' && Stampa 730/4}\r\n Dettaglio\r\n {additionalRowData.tabNr == 2 && Stampa lettera controlli preventivi}\r\n {item.DatiAddizionali.Stato7304 && item.DatiAddizionali.Stato7304 == 'Precontrollo' && Stampa lettera controlli preventivi}\r\n {item.DatiAddizionali.CodiceFiscaleSostitutoImposta !== CODICEFISCALEINPS\r\n && item.DatiAddizionali.Stato7304 === 'ScartoAE' && (item.DatiAddizionali.Stato7304Info == 'CF' || item.DatiAddizionali.Stato7304Info == 'CV')\r\n && (item.Tipo == TipoDichiarazione.Ordinaria || item.Tipo == TipoDichiarazione.SetteTrentaIntegrativaCodice2)\r\n && Stampa lettera diniego}\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nclass SetteTrenta4 extends Component {\r\n state = {\r\n dichiarazioni: [],\r\n searchTerm: '',\r\n selezionati: [],\r\n tabSelezionato: INITIAL_TAB_INDEX,\r\n nSostituti: 0,\r\n nContribuenti: 0,\r\n nPreControlli: 0,\r\n nScartati: 0,\r\n }\r\n\r\n componentDidMount() {\r\n EventoServer.subscribe('StampaDichiarazioneCompletata', this.ricaricaTabella);\r\n }\r\n\r\n componentWillUnmount() {\r\n EventoServer.unsubscribe('StampaDichiarazioneCompletata', this.ricaricaTabella);\r\n }\r\n\r\n componentWillMount() {\r\n this.caricaStati(this.props.ufficioSelezionato.CodiceUfficio, this.state.searchTerm, this.props.annoSelezionato);\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (this.props.ufficioSelezionato.CodiceUfficio != nextProps.ufficioSelezionato.CodiceUfficio) {\r\n this.inputRicerca && this.inputRicerca.svuotaRicerca(false);\r\n this.setState({\r\n searchTerm: '',\r\n });\r\n this.caricaStati(nextProps.ufficioSelezionato.CodiceUfficio, '', this.props.annoSelezionato);\r\n }\r\n }\r\n\r\n onClickCerca = (searchTerm) => {\r\n this.setState({ searchTerm: searchTerm.trim() }, () => {\r\n this.tabellaDichiarazioni && this.tabellaDichiarazioni.loadPage();\r\n this.caricaStati(this.props.ufficioSelezionato.CodiceUfficio, searchTerm.trim(), this.props.annoSelezionato);\r\n });\r\n }\r\n\r\n caricaStati = (studio, searchTerm, anno) => {\r\n totali7304(studio, anno, searchTerm)\r\n .then((x) => {\r\n this.setState({\r\n nSostituti: x.Sostituti,\r\n nContribuenti: x.Contribuenti,\r\n nPreControlli: x.PreControlli,\r\n nScartati: x.Scartati,\r\n });\r\n });\r\n }\r\n\r\n impostaAnnoSelezionato = (data) => {\r\n if (data.Anno >= 2021) {\r\n window.location.hash = '/NewSetteTrenta/barra-quattro';\r\n } else {\r\n this.ricaricaTabella();\r\n }\r\n\r\n this.props.setAnnoSelezionato(data.Anno);\r\n }\r\n\r\n ricaricaTabella = () => {\r\n setTimeout(() => {\r\n this.dataTable && this.dataTable.loadPage();\r\n this.caricaStati(this.props.ufficioSelezionato.CodiceUfficio, this.state.searchTerm.trim(), this.props.annoSelezionato);\r\n }, 100);\r\n }\r\n\r\n setTabSelezionato = (index) => {\r\n this.setState({\r\n tabSelezionato: index,\r\n });\r\n }\r\n\r\n esportaTutti = () => {\r\n const {\r\n ufficioSelezionato,\r\n annoSelezionato,\r\n } = this.props;\r\n\r\n const baseUrl = 'SetteTrenta/StampaContribuenti7304';\r\n\r\n stampaContribuenti7304(baseUrl, annoSelezionato, ufficioSelezionato.CodiceUfficio);\r\n }\r\n\r\n render() {\r\n const {\r\n ufficioSelezionato,\r\n utente,\r\n anniRegistrati,\r\n annoSelezionato,\r\n servizioAttivo,\r\n accessoNonConsentito,\r\n } = this.props;\r\n const {\r\n tabSelezionato,\r\n selezionati,\r\n searchTerm,\r\n nSostituti,\r\n nContribuenti,\r\n nPreControlli,\r\n nScartati,\r\n } = this.state;\r\n\r\n const badgeConteggio = (count) => (count != 0 ? {count} : null);\r\n const badgeConteggioScartate = (count) => (count != 0 ? {count} : null);\r\n\r\n let anniRegistratiFiltrato = anniRegistrati;\r\n if (window.config.ufficiAbilitatiPreRilascio != '*') {\r\n // se la chiave contiene dei valori significa che voglio abilitare l'anno solo per alcuni uffici\r\n let vediSeAbilitare = false;\r\n window.config.ufficiAbilitatiPreRilascio.split(',').forEach((element) => {\r\n if (ufficioSelezionato.CodiceUfficio == element) {\r\n vediSeAbilitare = true;\r\n }\r\n });\r\n if (vediSeAbilitare == false) {\r\n anniRegistratiFiltrato = anniRegistrati.filter((x) => x.Anno != 2020);\r\n if (annoSelezionato == 2020) {\r\n this.props.setAnnoSelezionato(2019);\r\n }\r\n }\r\n }\r\n\r\n return (\r\n \r\n
    \r\n 730-4 \r\n
    \r\n
    \r\n {annoSelezionato}
    }>\r\n {\r\n anniRegistratiFiltrato.map((x) => (\r\n this.impostaAnnoSelezionato(x)}>{x.Anno}))\r\n }\r\n \r\n
    \r\n
    \r\n )}\r\n >\r\n \r\n \r\n \r\n Lista 730/4}\r\n multipleActions={(\r\n \r\n \r\n \r\n )}\r\n >\r\n \r\n \r\n this.inputRicerca = r} />\r\n {!servizioAttivo && !accessoNonConsentito && Il servizio non è attivo. L'accesso è permesso solo in consultazione}\r\n \r\n \r\n\r\n \r\n \r\n \r\n Sostituti {badgeConteggio(nSostituti)}}>\r\n this.dataTable = r}\r\n pageSize={10}\r\n availablePageSizes={[10, 20, 50]}\r\n additionalRowData={{ searchTerm, tabNr: tabSelezionato }}\r\n >\r\n Nome\r\n Codice Fiscale\r\n Trasmessi\r\n Esito Positivo\r\n Controlli preventivi\r\n Scartati\r\n \r\n \r\n\r\n Contribuenti {badgeConteggio(nContribuenti)}}>\r\n this.dataTable = r}\r\n pageSize={10}\r\n availablePageSizes={[10, 20, 50]}\r\n additionalRowData={{ searchTerm, tabNr: tabSelezionato, aggiorna: this.ricaricaTabella }}\r\n annoSelezionato={this.props.annoSelezionato}\r\n >\r\n Dichiarante\r\n CF Dichiarante\r\n Sostituto\r\n Congiunta\r\n Int.\r\n Stato\r\n Rateazione\r\n Trattenuto\r\n Rimborsato\r\n Data Trasmissione A.E.\r\n \r\n \r\n \r\n\r\n Controlli preventivi {badgeConteggio(nPreControlli)}}>\r\n this.dataTable = r}\r\n pageSize={10}\r\n availablePageSizes={[10, 20, 50]}\r\n additionalRowData={{ searchTerm, tabNr: tabSelezionato }}\r\n >\r\n Dichiarante\r\n CF Dichiarante\r\n Sostituto\r\n Congiunta\r\n Stampata\r\n Int.\r\n Rateazione\r\n Trattenuto\r\n Rimborsato\r\n Data Trasmissione A.E.\r\n\r\n \r\n \r\n \r\n\r\n Scartati/Postel {badgeConteggioScartate(nScartati)}}>\r\n this.dataTable = r}\r\n pageSize={10}\r\n availablePageSizes={[10, 20, 50]}\r\n additionalRowData={{ searchTerm, tabNr: tabSelezionato }}\r\n >\r\n Dichiarante\r\n CF Dichiarante\r\n Sostituto\r\n Congiunta\r\n Int.\r\n Stato\r\n Rateazione\r\n Trattenuto\r\n Rimborsato\r\n Data Trasmissione A.E.\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nconst mapStoreToProps = (store) => ({\r\n ufficioSelezionato: store.utente.ufficioSelezionato,\r\n utente: store.utente.profilo,\r\n anniRegistrati: store.dichiarativi.anniRegistrati.data,\r\n annoSelezionato: store.dichiarativi.annoSelezionato,\r\n});\r\n\r\nconst mapDispatchToProps = (dispatch) => ({\r\n setAnnoSelezionato: bindActionCreators(setAnnoSelezionato, dispatch),\r\n});\r\n\r\nSetteTrenta4.propTypes = {\r\n ufficioSelezionato: PropTypes.object,\r\n utente: PropTypes.object,\r\n};\r\n\r\nexport default checkServizio(Servizi['7OL'])(connect(mapStoreToProps, mapDispatchToProps)(SetteTrenta4));\r\n","import React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport {\r\n Card, Grid, ODataTable, Formatter, OptionDropdown, Highlighter,\r\n} from 'framework-ui-components';\r\nimport SuccessoIcon from 'framework-ui-components/Components/Icons/SuccessoIcon';\r\nimport { SnackbarWrapper as SnackbarManager } from 'framework-ui-components/Components/Snackbar';\r\n\r\nimport { InputRicerca, PageWrapper } from 'dashboard';\r\nimport { stampaBarra4 } from 'apis/setteTrentaApi';\r\nimport TipoDichiarazione from 'enums/TipoDichiarazione';\r\nimport DettaglioBarra4 from './DettaglioBarra4';\r\n\r\nfunction stampaTipo(tipo) {\r\n switch (tipo) {\r\n case TipoDichiarazione.SetteTrentaIntegrativaCodice1:\r\n return '1';\r\n case TipoDichiarazione.SetteTrentaIntegrativaCodice2:\r\n return '2';\r\n case TipoDichiarazione.SetteTrentaIntegrativaCodice3:\r\n return '3';\r\n default:\r\n return '';\r\n }\r\n}\r\n\r\nconst CODICEFISCALEINPS = '80078750587';\r\n\r\nfunction stampaStato(item) {\r\n if (item.DatiAddizionali.CodiceFiscaleSostitutoImposta != ''\r\n && (item.Anno > 2019 || item.DatiAddizionali.CodiceFiscaleSostitutoImposta != CODICEFISCALEINPS)\r\n && (item.DatiAddizionali.DaTrattenere7304 == '0' && item.DatiAddizionali.DaRimborsare7304 == '0')) {\r\n return 'Importi a zero';\r\n } if (item.DatiAddizionali.CodiceFiscaleSostitutoImposta == '') {\r\n return 'Senza sostituto';\r\n } if ((item.DatiAddizionali.DaTrattenere7304 != '0' || item.DatiAddizionali.DaRimborsare7304 != '0') && item.DatiAddizionali.Stato7304 == 'NonImpostato') {\r\n return 'Inviato A.E.';\r\n } if (item.DatiAddizionali.SenzaSostituto == 'False'\r\n && (item.Anno > 2019 || item.DatiAddizionali.CodiceFiscaleSostitutoImposta != CODICEFISCALEINPS) && item.DatiAddizionali.Stato7304 == 'Ok') {\r\n return \"Reso disponibile al sostituto d'imposta\";\r\n } if (item.DatiAddizionali.Stato7304 == 'Precontrolli') {\r\n return 'Controllo preventivo';\r\n } if (item.DatiAddizionali.CodiceFiscaleSostitutoImposta !== CODICEFISCALEINPS && item.DatiAddizionali.Stato7304 == 'ScartoAE' && item.DatiAddizionali.Stato7304Info == 'NO' && item.DatiAddizionali.DataInvioPostel == '') {\r\n return 'Non disponibile';\r\n } if (item.DatiAddizionali.CodiceFiscaleSostitutoImposta !== CODICEFISCALEINPS && item.DatiAddizionali.Stato7304 == 'ScartoAE' && item.DatiAddizionali.Stato7304Info == 'NO' && item.DatiAddizionali.DataInvioPostel != '') {\r\n return 'Postel';\r\n } if ((item.DatiAddizionali.Stato7304 == 'ScartoAE' && (item.DatiAddizionali.Stato7304Info == 'CF' || item.DatiAddizionali.Stato7304Info == 'CV'))) {\r\n return 'Scartato Sostituto';\r\n } if (item.DatiAddizionali.Stato7304 == 'ScartoInps') {\r\n return 'Scartato I.N.P.S.';\r\n } if (item.DatiAddizionali.Stato7304 == 'Ok' && item.DatiAddizionali.CodiceFiscaleSostitutoImposta == CODICEFISCALEINPS) {\r\n return \"Abbinata dall'I.N.P.S.\";\r\n }\r\n return '';\r\n}\r\n\r\nclass RigaContribuente extends Component {\r\n state = {\r\n mostraModaleDettaglio: false,\r\n }\r\n\r\n stampa = () => {\r\n const { item } = this.props;\r\n\r\n stampaBarra4([item]).then((resp) => {\r\n if (!resp.Success) {\r\n SnackbarManager.notifyError(resp.DetectedProblems);\r\n } else {\r\n SnackbarManager.startDeterminateAsyncTask(resp.CorrelationId, 'Creazione pdf in corso', 1);\r\n }\r\n });\r\n }\r\n\r\n apriDettaglio = () => {\r\n this.setState({ mostraModaleDettaglio: true });\r\n }\r\n\r\n chiudiModaleDettaglio = () => {\r\n this.setState({ mostraModaleDettaglio: false });\r\n }\r\n\r\n render() {\r\n const {\r\n additionalRowData,\r\n item,\r\n annoSelezionato,\r\n } = this.props;\r\n const {\r\n mostraModaleDettaglio,\r\n } = this.state;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {item.DatiAddizionali.Congiunta == 'True' && }\r\n {stampaTipo(item.Tipo)}\r\n {stampaStato(item)}\r\n {item.DatiAddizionali.Rate7304}\r\n € {item.DatiAddizionali.DaTrattenere7304}\r\n € {item.DatiAddizionali.DaRimborsare7304}\r\n \r\n \r\n \r\n {item.DatiAddizionali.CodiceFiscaleSostitutoImposta !== CODICEFISCALEINPS\r\n && item.DatiAddizionali.DenominazioneSostitutoImposta != '' && item.DatiAddizionali.Stampa7304Abilitata === 'True' && Stampa /4}\r\n Dettaglio\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nclass Sostituto extends Component {\r\n state = {\r\n dichiarazioni: [],\r\n searchTerm: '',\r\n selezionati: [],\r\n }\r\n\r\n ricaricaTabella = () => {\r\n setTimeout(() => {\r\n this.dataTable && this.dataTable.loadPage();\r\n }, 1500);\r\n }\r\n\r\n onClickCerca = (searchTerm) => {\r\n this.setState({ searchTerm: searchTerm.trim() }, () => {\r\n this.dataTable && this.dataTable.loadPage();\r\n });\r\n }\r\n\r\n render() {\r\n const {\r\n ufficioSelezionato,\r\n utente,\r\n annoSelezionato,\r\n } = this.props;\r\n\r\n const {\r\n selezionati,\r\n searchTerm,\r\n } = this.state;\r\n\r\n return (\r\n { this.props.history.goBack(); }}\r\n >\r\n \r\n \r\n \r\n Sostituto {this.props.match.params.nomeSostituto}}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n this.dataTable = r}\r\n pageSize={10}\r\n availablePageSizes={[10, 20, 50]}\r\n additionalRowData={{ searchTerm }}\r\n annoSelezionato={annoSelezionato}\r\n >\r\n Dichiarante\r\n CF Dichiarante\r\n Congiunta\r\n Int.\r\n Stato\r\n Rateazione\r\n Trattenuto\r\n Rimborsato\r\n Data Trasmissione\r\n\r\n \r\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 mapStoreToProps = store => ({\r\n ufficioSelezionato: store.utente.ufficioSelezionato,\r\n utente: store.utente.profilo,\r\n annoSelezionato: store.dichiarativi.annoSelezionato,\r\n});\r\n\r\nSostituto.propTypes = {\r\n ufficioSelezionato: PropTypes.object,\r\n utente: PropTypes.object,\r\n};\r\n\r\nexport default connect(mapStoreToProps)(Sostituto);\r\n","\r\n\r\nimport React, { Component, Fragment } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Autocomplete, Button, Confirm, Form, Grid, Input, Modal, Panel, Validation,\r\n} from 'framework-ui-components';\r\nimport KeyCodes from 'enums/KeyCodes';\r\nimport {\r\n abilitaSostitutoImposta, sostitutoImposta, creaSostitutoImposta, modificaSostitutoImposta, casisticaModificaSostitutiImpostaDaDichiarazioni, ottieniSostitutoImposta,\r\n} from 'apis/sostitutiApi';\r\n\r\nValidation.register('TelefonoONumeroVerdeValido', (x, y) => !telefonoONumeroVerdeValido(x), { message: 'Telefono non valido' });\r\n\r\nexport const telefonoONumeroVerdeValido = (telefono) => {\r\n // se vuota i dati sono validi\r\n if (telefono === null || telefono === undefined) {\r\n return true;\r\n }\r\n // se non è una stringa non è un numero di cellualre valido\r\n if (typeof (telefono) !== 'string') {\r\n return false;\r\n }\r\n if (telefono.length === 0) {\r\n return true;\r\n }\r\n telefono.replace(/ /g, '');\r\n if (telefono.match(/^[+]?[0|3]{1}[1-9]+[-\\s/]?[0-9]{5,}|[8]{1}[0-9]{2}[-\\s/]?[0-9]{6}$/i)) {\r\n return true;\r\n }\r\n\r\n return false;\r\n};\r\n\r\nconst FORM_INITIAL_STATE = {\r\n IdSostitutoImpostaEsistente: -1,\r\n CodiceFiscale: '',\r\n Denominazione: '',\r\n CodiceSede: '0',\r\n CodiceComune: '',\r\n DescrizioneComune: '',\r\n CodiceProvincia: '',\r\n TipologiaIndirizzo: '',\r\n Indirizzo: '',\r\n NumeroCivico: '',\r\n Cap: '',\r\n Frazione: '',\r\n Telefono: '',\r\n Fax: '',\r\n EMail: '',\r\n Centralizzato: false,\r\n Dismesso: false,\r\n ForzaModifica: false,\r\n\r\n};\r\n\r\n\r\nclass ModaleSostituto extends Component {\r\n state = {\r\n ...FORM_INITIAL_STATE,\r\n caricandoModale: false,\r\n confermaDisabled: true,\r\n visualizzaErrori: false,\r\n msgErrori: '',\r\n codiceSedeDisabled: false,\r\n JSONOriginale: '',\r\n }\r\n\r\n componentDidMount() {\r\n this.cfInput && this.cfInput.focus();\r\n if (this.props.idSostituto != -1) {\r\n this.caricaSostituto(this.props.idSostituto);\r\n }\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (nextProps.idSostituto != -1) {\r\n this.caricaSostituto(nextProps.idSostituto);\r\n }\r\n }\r\n\r\n caricaSostituto = (idSostituoDaCaricare) => {\r\n sostitutoImposta(idSostituoDaCaricare)\r\n .then((res) => {\r\n if (res) {\r\n this.setState({\r\n IdSostitutoImpostaEsistente: res.IdSostituto,\r\n CodiceFiscale: res.CodiceFiscale,\r\n Denominazione: res.Denominazione,\r\n CodiceSede: res.CodiceSede,\r\n CodiceComune: res.CodiceComune,\r\n DescrizioneComune: res.DescrizioneComune,\r\n CodiceProvincia: res.CodiceProvincia,\r\n TipologiaIndirizzo: res.TipologiaIndirizzo,\r\n Indirizzo: res.Indirizzo,\r\n NumeroCivico: res.NumeroCivico,\r\n Cap: res.Cap,\r\n Frazione: res.Frazione,\r\n Telefono: res.Telefono,\r\n Fax: res.Fax,\r\n EMail: res.EMail,\r\n Centralizzato: res.Centralizzato,\r\n Dismesso: res.Dismesso,\r\n codiceSedeDisabled: res.CodiceSede != 0,\r\n visualizzaErrori: false,\r\n msgErrori: '',\r\n });\r\n const obj = {\r\n IdSostitutoImpostaEsistente: res.IdSostituto,\r\n CodiceFiscale: res.CodiceFiscale,\r\n Denominazione: res.Denominazione,\r\n CodiceSede: res.CodiceSede,\r\n CodiceComune: res.CodiceComune,\r\n DescrizioneComune: res.DescrizioneComune,\r\n CodiceProvincia: res.CodiceProvincia,\r\n TipologiaIndirizzo: res.TipologiaIndirizzo,\r\n Indirizzo: res.Indirizzo,\r\n NumeroCivico: res.NumeroCivico,\r\n Cap: res.Cap,\r\n Frazione: res.Frazione,\r\n Telefono: res.Telefono,\r\n Fax: res.Fax,\r\n EMail: res.EMail,\r\n Centralizzato: res.Centralizzato,\r\n Dismesso: res.Dismesso,\r\n };\r\n\r\n this.setState({ JSONOriginale: JSON.stringify(obj) });\r\n\r\n this.valutaAbilitaConferma();\r\n }\r\n });\r\n }\r\n\r\n abilitaCaricaSostituto = (idSostituto) => {\r\n abilitaSostitutoImposta(idSostituto)\r\n .then((res) => {\r\n if (res.Success) {\r\n // this.props.idSostituto = idSostituto;\r\n this.caricaSostituto(idSostituto);\r\n }\r\n });\r\n }\r\n\r\n incolla = (e) => {\r\n const str = e.clipboardData.getData('Text');\r\n e.preventDefault();\r\n this.setState({ CodiceFiscale: str.trim() });\r\n }\r\n\r\n valutaEsistenzaSostituto = (evt) => {\r\n const { value } = evt.target;\r\n ottieniSostitutoImposta(value, this.props.ufficioSelezionato, this.state.CodiceSede)\r\n .then((res) => {\r\n if (res) {\r\n if (res.Centralizzato) {\r\n const msg = 'I dati del sostituto d’imposta INPS sono già memorizzati negli archivi: è sufficiente richiamarlo dal quadro sostituto d’imposta del 730: vuoi visualizzarli?';\r\n Confirm('Sostituto esistente', msg, 'warning').then(() => this.caricaSostituto(res.IdSostituto), () => { this.annulla(); });\r\n }\r\n }\r\n this.valutaAbilitaConferma();\r\n });\r\n }\r\n\r\n valutaEsistenzaSostitutoDaSede = (evt) => {\r\n const { value } = evt.target;\r\n ottieniSostitutoImposta(this.state.CodiceFiscale, this.props.ufficioSelezionato, value)\r\n .then((res) => {\r\n if (res) {\r\n if (res.Dismesso) {\r\n const msg = `Il sostituto con codice fiscale ${res.CodiceFiscale} e codice sede ${res.CodiceSede} è presente ma è disabilitato. Vuoi abilitare il sostituto e modificarlo?`;\r\n Confirm('Sostituto esistente', msg, 'warning').then(() => this.abilitaCaricaSostituto(res.IdSostituto), () => { this.annulla(); });\r\n } else {\r\n const msg = `Il sostituto con codice fiscale ${res.CodiceFiscale} e codice sede ${res.CodiceSede} è già presente in archivio. Vuoi modificarlo?`;\r\n Confirm('Sostituto esistente', msg, 'warning').then(() => this.caricaSostituto(res.IdSostituto), () => { this.annulla(); });\r\n }\r\n } else {\r\n this.valutaAbilitaConferma();\r\n }\r\n });\r\n }\r\n\r\n\r\n valutaAbilitaConferma = () => {\r\n const obj = {\r\n IdSostitutoImpostaEsistente: this.state.IdSostitutoImpostaEsistente,\r\n CodiceFiscale: this.state.CodiceFiscale,\r\n Denominazione: this.state.Denominazione,\r\n CodiceSede: this.state.CodiceSede,\r\n CodiceComune: this.state.CodiceComune,\r\n DescrizioneComune: this.state.DescrizioneComune,\r\n CodiceProvincia: this.state.CodiceProvincia,\r\n TipologiaIndirizzo: this.state.TipologiaIndirizzo,\r\n Indirizzo: this.state.Indirizzo,\r\n NumeroCivico: this.state.NumeroCivico,\r\n Cap: this.state.Cap,\r\n Frazione: this.state.Frazione,\r\n Telefono: this.state.Telefono,\r\n Fax: this.state.Fax,\r\n EMail: this.state.EMail,\r\n Centralizzato: this.state.Centralizzato,\r\n Dismesso: this.state.Dismesso,\r\n };\r\n if (!this.state.Centralizzato && !this.state.Dismesso\r\n && this.state.JSONOriginale != JSON.stringify(obj)) {\r\n this.setState({ confermaDisabled: false });\r\n } else {\r\n this.setState({ confermaDisabled: true });\r\n }\r\n }\r\n\r\n annulla = () => {\r\n this.setState(FORM_INITIAL_STATE, () => this.props.onAnnulla && this.props.onAnnulla());\r\n }\r\n\r\n conferma = () => {\r\n const { TipologiaIndirizzo, CodiceComune } = this.state;\r\n if (this.form.valida() && TipologiaIndirizzo && CodiceComune) {\r\n ottieniSostitutoImposta(this.state.CodiceFiscale, this.props.ufficioSelezionato, this.state.CodiceSede)\r\n .then((res) => {\r\n if (res) {\r\n if (this.state.IdSostitutoImpostaEsistente != -1 && res.IdSostituto == this.state.IdSostitutoImpostaEsistente) {\r\n casisticaModificaSostitutiImpostaDaDichiarazioni(this.props.ufficioSelezionato, this.state.CodiceFiscale, this.state.CodiceSede, this.props.annoSelezionato)\r\n .then((res) => {\r\n if (res == 0 || res == 1) {\r\n this.creaAggiornaSostituto();\r\n } else {\r\n let testo = '';\r\n if (res == 2 || res == 4) {\r\n testo = \"La modifica verrà riportata in tutte le dichiarazioni nelle quali è stato indicato questo sostituto d'imposta. \"\r\n + 'Vuoi riportare la modifica anche nelle dichiarazioni con stato Controllo Audit e Trasmessa CGN (che verranno impostate come da stampare)? ';\r\n Confirm('Aggiornamento dichiarazioni', testo, 'warning').then(() => this.creaAggiornaSostituto(true), () => this.creaAggiornaSostituto(false));\r\n } else if (res == 5 || res == 7) {\r\n testo = \"La modifica verrà riportata in tutte le dichiarazioni nelle quali è stato indicato questo sostituto d'imposta. \"\r\n + 'Non verrà riportata nelle dichiarazioni in stato Inviata A.E., Ricevuta A.E., Da annullare A.E, Annullata A.E. e/o Bloccata CAF. '\r\n + 'Vuoi riportare la modifica anche nelle dichiarazioni con stato Controllo Audit e Trasmessa CGN (che verranno impostate come da stampare) ?';\r\n Confirm('Aggiornamento dichiarazioni', testo, 'warning').then(() => this.creaAggiornaSostituto(true));\r\n } else if (res == 3 || res == 6) {\r\n testo = \"La modifica non verrà riportata nelle dichiarazioni nelle quali è stato indicato questo sostituto d'imposta \"\r\n + 'aventi stato Inviata A.E., Ricevuta A.E., Da annullare A.E, Annullata A.E., e/o Bloccata CAF.';\r\n Confirm('Aggiornamento dichiarazioni', testo, 'warning').then(() => this.creaAggiornaSostituto(false));\r\n }\r\n }\r\n });\r\n } else if (res.Centralizzato) {\r\n const msg = 'I dati del sostituto d’imposta INPS sono già memorizzati negli archivi: è sufficiente richiamarlo dal quadro sostituto d’imposta del 730: vuoi visualizzarli?';\r\n Confirm('Sostituto esistente', msg, 'warning').then(() => this.caricaSostituto(res.IdSostituto), () => { this.annulla(); });\r\n } else if (res.Dismesso) {\r\n const msg = `Il sostituto con codice fiscale ${res.CodiceFiscale} e codice sede ${res.CodiceSede} è presente ma è disabilitato. Vuoi abilitare il sostituto e modificarlo?`;\r\n Confirm('Sostituto esistente', msg, 'warning').then(() => this.abilitaCaricaSostituto(res.IdSostituto), () => { this.annulla(); });\r\n } else {\r\n const msg = `Il sostituto con codice fiscale ${res.CodiceFiscale} e codice sede ${res.CodiceSede} è già presente. Vuoi modificare il sostituto esistente?`;\r\n Confirm('Sostituto esistente', msg, 'warning').then(() => this.caricaSostituto(res.IdSostituto), () => { this.annulla(); });\r\n }\r\n } else {\r\n this.creaAggiornaSostituto(false);\r\n }\r\n });\r\n }\r\n }\r\n\r\n creaAggiornaSostituto = (forzaModifica) => {\r\n const cmd = {\r\n IdSostituto: this.state.IdSostitutoImpostaEsistente,\r\n Cap: this.state.Cap,\r\n CodiceComune: this.state.CodiceComune,\r\n CodiceFiscale: this.state.CodiceFiscale,\r\n CodiceSede: this.state.CodiceSede,\r\n CodiceUfficio: this.props.ufficioSelezionato,\r\n Denominazione: this.state.Denominazione,\r\n EMail: this.state.EMail,\r\n Fax: this.state.Fax,\r\n Frazione: this.state.Frazione,\r\n Indirizzo: this.state.Indirizzo,\r\n NumeroCivico: this.state.NumeroCivico,\r\n Telefono: this.state.Telefono,\r\n TipologiaIndirizzo: this.state.TipologiaIndirizzo,\r\n ForzaModifica: forzaModifica,\r\n };\r\n if (this.state.IdSostitutoImpostaEsistente == -1) {\r\n creaSostitutoImposta(cmd)\r\n .then((res) => {\r\n if (res.Success) {\r\n this.annulla();\r\n } else {\r\n this.setState({ visualizzaErrori: true, msgErrori: res.DetectedProblems });\r\n }\r\n });\r\n } else {\r\n // Aggiornamento sostituto imposta\r\n modificaSostitutoImposta(cmd)\r\n .then((res) => {\r\n if (res.Success) {\r\n this.annulla();\r\n } else {\r\n this.setState({ visualizzaErrori: true, msgErrori: res.DetectedProblems });\r\n }\r\n });\r\n }\r\n }\r\n\r\n updateForm = (data) => {\r\n this.setState(data, () => {\r\n this.valutaAbilitaConferma();\r\n });\r\n }\r\n\r\n onChangeComune = (data) => {\r\n this.setState({\r\n CodiceComune: data.CodiceComune, CodiceProvincia: data.CodiceProvincia, DescrizioneComune: data.Descrizione, Cap: data.Cap,\r\n }, () => { this.valutaAbilitaConferma(); });\r\n }\r\n\r\n onChangeTipoIndirizzo = (data) => {\r\n this.setState({ TipologiaIndirizzo: data.Descrizione }, () => { this.valutaAbilitaConferma(); });\r\n }\r\n\r\n isNumeriLettereBarraMeno = (evt) => {\r\n if (!((evt.keyCode >= 47 && evt.keyCode <= KeyCodes.NineDigit)\r\n || evt.keyCode === 45\r\n || (evt.keyCode >= 65 && evt.keyCode <= 90)\r\n || (evt.keyCode >= 97 && evt.keyCode <= 122))\r\n && !(evt.keyCode >= 96 && evt.keyCode <= 105)) {\r\n // permetto Ctrl+A, Ctl+C, Ctrl+V, Ctrl+X ma nessun altro tasto\r\n if (evt.keyCode === KeyCodes.A || evt.keyCode === KeyCodes.V\r\n || evt.keyCode === KeyCodes.C || evt.keyCode === KeyCodes.X) {\r\n if (!evt.ctrlKey) {\r\n evt.preventDefault();\r\n }\r\n } else if (evt.keyCode !== KeyCodes.Delete && evt.keyCode !== KeyCodes.Backspace && evt.keyCode !== KeyCodes.Tab && evt.keyCode !== KeyCodes.Dash) {\r\n evt.preventDefault();\r\n }\r\n }\r\n if (evt.shiftKey && (evt.keyCode >= KeyCodes.ZeroDigit && evt.keyCode <= KeyCodes.NineDigit)) {\r\n if (evt.keyCode != 55) { // lo slash come shift+7 è ammesso\r\n evt.preventDefault();\r\n }\r\n }\r\n };\r\n\r\n render() {\r\n const { showModal, idSostituto, visualizza = false } = this.props;\r\n const {\r\n caricandoModale, confermaDisabled, visualizzaErrori, msgErrori, codiceSedeDisabled, TipologiaIndirizzo, DescrizioneComune, Centralizzato, IdSostitutoImpostaEsistente, Dismesso,\r\n } = this.state;\r\n\r\n return (\r\n \r\n \r\n {idSostituto == -1 ? 'Nuovo sostituto di imposta' : 'Modifica sostituto di imposta'}\r\n \r\n \r\n
    this.form = r}>\r\n \r\n \r\n \r\n this.cfInput = r}\r\n maxLength=\"16\"\r\n upperCase\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n visualizzaErrori\r\n && (\r\n {msgErrori}\r\n \r\n )\r\n }\r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n {!visualizza && }\r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nModaleSostituto.propTypes = {\r\n idSostituto: PropTypes.number.isRequired,\r\n ufficioSelezionato: PropTypes.string.isRequired,\r\n onAnnulla: PropTypes.func.isRequired,\r\n showModal: PropTypes.bool.isRequire,\r\n annoSelezionato: PropTypes.number,\r\n};\r\n\r\n\r\nexport default ModaleSostituto;\r\n","export default {\r\n Backspace: 8,\r\n Tab: 9,\r\n Delete: 46,\r\n ZeroDigit: 48,\r\n NineDigit: 57,\r\n A: 65,\r\n C: 67,\r\n V: 86,\r\n X: 88,\r\n Numpad0: 96,\r\n Numpad9: 105,\r\n F1: 112,\r\n F12: 123,\r\n Period: 190,\r\n Subtract: 109,\r\n DecimalPoint: 110,\r\n Comma: 188,\r\n Dash: 189,\r\n };\r\n ","import React, { Component } from 'react';\r\nimport { OptionDropdown, Highlighter } from 'framework-ui-components';\r\nimport { abilitaSostitutoImposta, disabilitaSostitutoImposta } from 'apis/sostitutiApi';\r\n\r\n\r\nimport { SnackbarWrapper as SnackbarManager } from 'framework-ui-components/Components/Snackbar';\r\nimport Servizi from 'enums/Servizi';\r\nimport ModaleSostituto from './ModaleSostituto';\r\nimport checkServizio from '../../helpers/checkServizio';\r\n\r\nclass RigaSostituto extends Component {\r\n state = {\r\n mostraModaleSostituti: false,\r\n }\r\n\r\n chiudiModaleSostituto = () => {\r\n this.setState({\r\n mostraModaleSostituti: false,\r\n });\r\n this.props.additionalRowData.ricarica && this.props.additionalRowData.ricarica();\r\n }\r\n\r\n modifica = () => {\r\n this.setState({\r\n mostraModaleSostituti: true,\r\n });\r\n }\r\n\r\n dismetti = () => {\r\n disabilitaSostitutoImposta(this.props.item.IdSostituto)\r\n .then((res) => {\r\n if (res.Success) {\r\n SnackbarManager.notifySuccess(`Sostituto di imposta ${this.props.item.Denominazione} disabilitato`);\r\n this.props.additionalRowData.ricarica && this.props.additionalRowData.ricarica();\r\n } else {\r\n SnackbarManager.notifyError(res.DetectedProblems);\r\n }\r\n });\r\n }\r\n\r\n abilita = () => {\r\n abilitaSostitutoImposta(this.props.item.IdSostituto)\r\n .then((res) => {\r\n if (res.Success) {\r\n SnackbarManager.notifySuccess(`Sostituto di imposta ${this.props.item.Denominazione} abilitato`);\r\n this.props.additionalRowData.ricarica && this.props.additionalRowData.ricarica();\r\n } else {\r\n SnackbarManager.notifyError(res.DetectedProblems);\r\n }\r\n });\r\n }\r\n\r\n visualizzaModificaSostituto = () => {\r\n this.setState({\r\n mostraModaleSostituti: true,\r\n });\r\n }\r\n\r\n render() {\r\n const {\r\n additionalRowData,\r\n item,\r\n servizioAttivo,\r\n } = this.props;\r\n const {\r\n mostraModaleSostituti,\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 {item.CodiceSede}\r\n {item.Telefono}\r\n {item.Fax}\r\n {item.EMail}\r\n\r\n \r\n {\r\n !item.Centralizzato\r\n && servizioAttivo\r\n && (\r\n \r\n {\r\n !item.Centralizzato\r\n && Modifica\r\n }\r\n {\r\n item.Dismesso\r\n && (\r\n Abilita\r\n \r\n )\r\n }\r\n {\r\n !item.Dismesso\r\n && (\r\n Disabilita\r\n \r\n )\r\n }\r\n \r\n )\r\n }\r\n \r\n {\r\n mostraModaleSostituti\r\n && (\r\n \r\n )\r\n }\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default checkServizio(Servizi['7OL'])(RigaSostituto);\r\n","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport {\r\n Button, Card, Checkbox, Grid, ButtonGroup, ODataTable, Panel,\r\n} from 'framework-ui-components';\r\n\r\nimport { InputRicerca, PageWrapper } from 'dashboard';\r\nimport PlusIcon from 'framework-ui-components/Components/Icons/PlusIcon';\r\nimport Servizi from 'enums/Servizi';\r\nimport ModaleSostituto from './ModaleSostituto';\r\nimport RigaServizioAttivo from './RigaSostituto';\r\nimport checkServizio from '../../helpers/checkServizio';\r\n\r\nclass ElencoSostituti extends Component {\r\n state = {\r\n searchTerm: '',\r\n mostraModaleSostituti: false,\r\n includiDisabilitati: false,\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (this.props.ufficioSelezionato.CodiceUfficio\r\n != nextProps.ufficioSelezionato.CodiceUfficio) {\r\n this.inputRicerca && this.inputRicerca.svuotaRicerca(false);\r\n this.setState({\r\n searchTerm: '',\r\n });\r\n }\r\n }\r\n\r\n onClickCerca = (searchTerm) => {\r\n this.setState({\r\n searchTerm: searchTerm.trim(),\r\n });\r\n }\r\n\r\n nuovoSostituto = () => {\r\n this.setState({\r\n mostraModaleSostituti: true,\r\n });\r\n }\r\n\r\n chiudiModaleSostituto = () => {\r\n this.setState({\r\n mostraModaleSostituti: false,\r\n });\r\n this.ricarica();\r\n }\r\n\r\n ricarica = () => {\r\n setTimeout(() => this.dataTable.loadPage(), 20);\r\n }\r\n\r\n render() {\r\n const {\r\n searchTerm,\r\n mostraModaleSostituti,\r\n includiDisabilitati,\r\n } = this.state;\r\n const {\r\n annoSelezionato,\r\n ufficioSelezionato,\r\n servizioAttivo,\r\n accessoNonConsentito\r\n } = this.props;\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 {!servizioAttivo && !accessoNonConsentito && Il servizio non è attivo. L'accesso è permesso solo in consultazione}\r\n { this.inputRicerca = r; }}\r\n />\r\n \r\n \r\n this.setState({\r\n includiDisabilitati: e.target.checked,\r\n })}\r\n />\r\n Mostra disabilitati\r\n \r\n \r\n\r\n \r\n \r\n { this.dataTable = r; }}\r\n pageSize={10}\r\n availablePageSizes={[10, 20, 50]}\r\n additionalRowData={{\r\n searchTerm,\r\n ricarica: this.ricarica,\r\n ufficio: ufficioSelezionato.CodiceUfficio,\r\n anno: annoSelezionato,\r\n }}\r\n >\r\n Codice Fiscale\r\n Cognome e Nome o Denominazione\r\n Codice Sede\r\n Telefono\r\n Fax\r\n E-mail\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {mostraModaleSostituti\r\n && (\r\n \r\n )\r\n }\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nconst mapStoreToProps = store => ({\r\n ufficioSelezionato: store.utente.ufficioSelezionato,\r\n utente: store.utente.profilo,\r\n annoSelezionato: store.dichiarativi.annoSelezionato,\r\n});\r\n\r\nexport default checkServizio(Servizi['7OL'])(connect(mapStoreToProps, null)(ElencoSostituti));\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport { IFrame } from 'framework-plugins';\r\nimport Helmet from 'react-helmet';\r\n\r\nconst RichiesteEnti = ({ ufficioSelezionato }) => (\r\n \r\n \r\n {\r\n window.location = `${url}/${encodeURIComponent(window.location)}`;\r\n }}\r\n />\r\n \r\n);\r\n\r\nconst mapStoreToProps = store => ({\r\n ufficioSelezionato: store.utente.ufficioSelezionato.CodiceUfficio,\r\n});\r\n\r\nRichiesteEnti.propTypes = {\r\n ufficioSelezionato: PropTypes.string.isRequired,\r\n};\r\n\r\nexport default connect(mapStoreToProps)(RichiesteEnti);\r\n","import React, { Component, Fragment } from 'react';\r\nimport {\r\n Sidebar,\r\n Badge, Grid,\r\n} from 'framework-ui-components';\r\nimport DocumentIcon from 'framework-ui-components/Components/Icons/DocumentIcon';\r\nimport BusinessContactIcon from 'framework-ui-components/Components/Icons/BusinessContactIcon';\r\nimport BusinessContactsIcon from 'framework-ui-components/Components/Icons/BusinessContactsIcon';\r\nimport CloneIcon from 'framework-ui-components/Components/Icons/CloneIcon';\r\nimport { Route, Redirect, Switch } from 'react-router-dom';\r\n\r\nimport FwPlugins from 'framework-plugins';\r\nimport { connect } from 'react-redux';\r\nimport Servizi from 'enums/Servizi';\r\nimport { PageWrapper } from 'dashboard';\r\nimport ErroreIcon from 'framework-ui-components/Components/Icons/ErroreIcon';\r\nimport Icon730 from '../../Components/Icons/7304Icon';\r\nimport SetteTrenta from './SetteTrenta';\r\nimport BarraQuattro from './Barra4';\r\nimport Sostituto from './Sostituto';\r\nimport ElencoSostituti from './ElencoSostituti';\r\nimport RichiesteEnti from '../RichiesteEnti';\r\nimport checkServizio from '../../helpers/checkServizio';\r\n\r\nclass SidebarSetteTrenta extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.menuSidebarRef = React.createRef();\r\n }\r\n\r\n\r\n componentDidMount() {\r\n this.menuSidebarRef.current.addEventListener('click', this.onClickCheck, true);\r\n }\r\n\r\n componentWillUnmount() {\r\n this.menuSidebarRef.current.removeEventListener('click', this.onClickCheck, true);\r\n }\r\n\r\n onClickCheck = (event) => {\r\n FwPlugins.clickOutEventFilter(event);\r\n }\r\n\r\n render() {\r\n const {\r\n children,\r\n annoSelezionato,\r\n accessoNonConsentito,\r\n } = this.props;\r\n\r\n return (\r\n \r\n \r\n \r\n } link=\"/SetteTrenta/Elenco\">Dichiarazioni 730\r\n } link=\"/SetteTrenta/Barra4\">730/4\r\n } link=\"/SetteTrenta/ElencoSostituti\">Sostituti\r\n } link=\"/SetteTrenta/RichiesteEnti\">Richieste Enti\r\n \r\n \r\n \r\n\r\n {accessoNonConsentito\r\n\r\n ? (\r\n \r\n
    \r\n 730 \r\n
    \r\n
    \r\n )}\r\n >\r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n

    Il servizio 730 non è attivo

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n )\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\n );\r\n }\r\n}\r\n\r\nconst mapStoreToProps = store => ({\r\n annoSelezionato: store.dichiarativi.annoSelezionato,\r\n});\r\n\r\nexport default checkServizio(Servizi['7OL'])(connect(mapStoreToProps, null)(SidebarSetteTrenta));\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 React, { useCallback, useEffect } from 'react';\r\nimport { useLocation } from 'react-router-dom';\r\nimport PropTypes from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport FwPlugins, { IFrame, usePluginReducer } from 'framework-plugins';\r\nimport Helmet from 'react-helmet';\r\nimport Servizi from 'enums/Servizi';\r\nimport Assistente from 'Assistente';\r\nimport { bindActionCreators } from 'redux/es';\r\nimport { setAnnoSelezionato } from '../../actions/dichiarativiActions';\r\nimport useSignalR from '../../helpers/useSignalR';\r\nimport checkServizio from '../../helpers/checkServizio';\r\n\r\nconst SetteTrenta = ({\r\n ufficio, anniRegistrati, annoSelezionato, impostaAnnoSelezionato,\r\n}) => {\r\n const url730 = anniRegistrati.filter((x) => x.Anno == annoSelezionato)[0].Url730;\r\n\r\n useEffect(() => {\r\n const annoSelezionatoQS = new URLSearchParams(window.location.search || window.location.hash.split('?')[1]).get('annoSelezionato');\r\n if (annoSelezionatoQS && annoSelezionatoQS != annoSelezionato) {\r\n debugger;\r\n impostaAnnoSelezionato(annoSelezionatoQS);\r\n }\r\n });\r\n\r\n usePluginReducer(() => (\r\n {\r\n CAMBIO_ANNO_730: (payload) => {\r\n if (payload.Anno !== annoSelezionato) {\r\n impostaAnnoSelezionato(payload.Anno);\r\n if (payload.Anno < 2021 && window.location.href.includes('NewSetteTrenta')) {\r\n window.location.href = `/#/SetteTrenta/${window.location.href.includes('barra-quattro') ? 'Barra4' : 'Elenco'}`;\r\n }\r\n }\r\n },\r\n ASSISTENTE_APRIPERMALINK: (payload) => {\r\n Assistente.apriPermalink(payload);\r\n },\r\n }));\r\n\r\n // recupera dall'url eventuali parametri specifici\r\n const location = useLocation();\r\n const parametriUrl = location.search.split('?');\r\n const objSrcParam = { codiceUfficio: ufficio };\r\n // gestisce la callback dal plugin imu/immobili\r\n // trasmette il parametro \"identificatore\" alla pagina/quadro di destinazione\r\n if (parametriUrl && parametriUrl.some((x) => /from=Immobili/i.test(x))) {\r\n objSrcParam.from = 'Immobili';\r\n }\r\n\r\n const sendMEssage = useCallback((title, message) => {\r\n FwPlugins.postMessageToChilds(title, message);\r\n }, []);\r\n\r\n useSignalR('CreaSetteTrentaDaPassaggioNuovoAnnoTerminata', (data) => sendMEssage('CreaSetteTrentaDaPassaggioNuovoAnnoTerminata', data));\r\n useSignalR('DichiarazioneStatoModificato', (data) => sendMEssage('DichiarazioneStatoModificato', data));\r\n useSignalR('DichiarazioneModificaStatoFallita', (data) => sendMEssage('DichiarazioneModificaStatoFallita', data));\r\n useSignalR('DichiarazioneEliminata', (data) => sendMEssage('DichiarazioneEliminata', data));\r\n useSignalR('StampaDichiarazioneCompletata', (data) => sendMEssage('StampaDichiarazioneCompletata', data));\r\n useSignalR('DichiarazioneConErrori', (data) => sendMEssage('DichiarazioneConErrori', data));\r\n useSignalR('ImportazioneSetteTrentaDaXmlAnnoCorrenteAvviata', (data) => sendMEssage('ImportazioneSetteTrentaDaXmlAnnoCorrenteAvviata', data));\r\n useSignalR('ImportazioneDichiarazioneDaXmlImportata', (data) => sendMEssage('ImportazioneDichiarazioneDaXmlImportata', data));\r\n useSignalR('CreaSetteTrentaDaXmlAnnoCorrenteFallito', (data) => sendMEssage('CreaSetteTrentaDaXmlAnnoCorrenteFallito', data));\r\n useSignalR('ImportazioneDichiarazioneDaXmlTerminata', (data) => sendMEssage('ImportazioneDichiarazioneDaXmlTerminata', data));\r\n useSignalR('DichiarazioneCreataInAnnoPrecedente', (data) => sendMEssage('DichiarazioneCreataInAnnoPrecedente', data));\r\n useSignalR('DichiarazioneIntegrativaCreata', (data) => sendMEssage('DichiarazioneIntegrativaCreata', data));\r\n useSignalR('CreazioneIntegrativaFallita', (data) => sendMEssage('CreazioneIntegrativaFallita', data));\r\n useSignalR('GenerazioneTributiF24Completata', (data) => sendMEssage('GenerazioneTributiF24Completata', data));\r\n useSignalR('GeneraTributiF24Fallita', (data) => sendMEssage('GeneraTributiF24Fallita', data));\r\n useSignalR('GenerazioneTributiF24MassivoTerminato', (data) => sendMEssage('GenerazioneTributiF24MassivoTerminato', data));\r\n useSignalR('CreaCUDaDatiEstrattiConAITerminataOK', (data) => sendMEssage('CreaCUDaDatiEstrattiConAITerminataOK', data));\r\n useSignalR('CreaCUDaDatiEstrattiConAITerminataKO', (data) => sendMEssage('CreaCUDaDatiEstrattiConAITerminataKO', data));\r\n\r\n var anniDisponibili = anniRegistrati;\r\n if(ufficio>=100){\r\n anniDisponibili = anniRegistrati.filter(x => x.SoloInterni == false);\r\n }\r\n\r\n return (\r\n \r\n \r\n {\r\n window.location = url\r\n .replace(`${url730}#/`, `${window.location.origin}/#/NewSetteTrenta/`)\r\n .replace(encodeURIComponent(`${url730}#/`), encodeURIComponent(`${window.location.origin}/#/NewSetteTrenta/`));\r\n }}\r\n />\r\n \r\n );\r\n};\r\n\r\nconst mapStoreToProps = (store) => ({\r\n anniRegistrati: store.dichiarativi.anniRegistrati.data,\r\n ufficio: store.utente.ufficioSelezionato.CodiceUfficio,\r\n annoSelezionato: store.dichiarativi.annoSelezionato,\r\n});\r\n\r\nconst mapDispatchToProps = (dispatch) => ({\r\n impostaAnnoSelezionato: bindActionCreators(setAnnoSelezionato, dispatch),\r\n});\r\n\r\nSetteTrenta.propTypes = {\r\n ufficio: PropTypes.string.isRequired,\r\n anniRegistrati: PropTypes.array.isRequired,\r\n impostaAnnoSelezionato: PropTypes.func,\r\n};\r\n\r\nexport default checkServizio(Servizi['7OL'])(connect(mapStoreToProps, mapDispatchToProps)(SetteTrenta));\r\n","import { WebRequest } from 'framework-ui-components';\r\n\r\nexport const dichiarazioni = (studio) => WebRequest.get('Successioni/Tutte', { studio });\r\n\r\nexport const elimina = (idDichiarazione) => WebRequest.post('Successioni/Elimina', {}, { idDichiarazione });\r\n\r\nexport const completa = (idDichiarazione) => WebRequest.post('Successioni/Completa', {}, { idDichiarazione });\r\n\r\nexport const riapri = (idDichiarazione) => WebRequest.post('Successioni/Riapri', {}, { idDichiarazione });\r\n\r\nexport const daInviare = (idDichiarazione) => WebRequest.post('Successioni/DaInviare', {}, { idDichiarazione });\r\n\r\nexport const statiSuccessioni = (studio, termineRicerca) => WebRequest.get('Successioni/StatiSuccessioni', { studio, termineRicerca });\r\n\r\nexport const creaSuccessione = (studio, codiceFiscale, nome, cognome, tipo,\r\n dataDecesso, tipoDevoluzione, comuneUltimaResidenza,\r\n codiceComuneUltimaResidenza, provinciaUltimaResidenza, flagMortePresunta,\r\n quadroEb, quadroEc, quadroEd, quadroEg, quadroEh, quadroEi, quadroEl,\r\n quadroEm, quadroEn, quadroEo, quadroEp, quadroEq, quadroEr, quadroEs) => WebRequest.post('Successioni/Crea', {\r\n Studio: studio,\r\n CodiceFiscale: codiceFiscale,\r\n Nome: nome,\r\n Cognome: cognome,\r\n TipoDichiarazione: tipo,\r\n DataDecesso: dataDecesso,\r\n TipoDevoluzione: tipoDevoluzione,\r\n ComuneUltimaResidenza: comuneUltimaResidenza,\r\n CodiceComuneUltimaResidenza: codiceComuneUltimaResidenza,\r\n ProvinciaUltimaResidenza: provinciaUltimaResidenza,\r\n FlagMortePresunta: flagMortePresunta,\r\n QuadroEb: quadroEb,\r\n QuadroEc: quadroEc,\r\n QuadroEd: quadroEd,\r\n QuadroEg: quadroEg,\r\n QuadroEh: quadroEh,\r\n QuadroEi: quadroEi,\r\n QuadroEl: quadroEl,\r\n QuadroEm: quadroEm,\r\n QuadroEn: quadroEn,\r\n QuadroEo: quadroEo,\r\n QuadroEp: quadroEp,\r\n QuadroEq: quadroEq,\r\n QuadroEr: quadroEr,\r\n QuadroEs: quadroEs,\r\n});\r\n\r\nexport const creaSostitutivaDaEsistente = (id, tipo, studio) => WebRequest.post('Successioni/CreaSostitutivaDaEsistente', {}, { idDichiarazione: id, tipo, studio });\r\n\r\nexport const trasmettiManualmente = (id, data, protocollo, volume, numero, anno, datareg) => WebRequest.post('Successioni/TrasmettiManualmente', {}, {\r\n idDichiarazione: id,\r\n dataRicevutaDiTrasmissione: data,\r\n protocollo,\r\n volumePrimaDichiarazione: volume,\r\n numeroPrimaDichiarazione: numero,\r\n annoPrimaDichiarazione: anno,\r\n dataPrimaDichiarazione: datareg,\r\n});\r\n\r\nexport const arretraTrasmessaManualmente = (id) => WebRequest.post('Successioni/ArretraDichiarazioneTrasmessaManualmente', {}, { idDichiarazione: id });\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 , '0 0 16 20',\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 , '0 0 16 20',\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 \r\n \r\n \r\n \r\n , '0 0 16 20',\r\n);\r\n","\"use strict\";\r\n\r\nimport React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Button, FileUpload, Modal } from 'framework-ui-components';\r\nimport { SnackbarWrapper as SnackbarManager } from 'framework-ui-components/Components/Snackbar';\r\n\r\nconst ModaleAllegaRicevuta = ({ codiceUfficio, idDichiarazione, onClose }) => {\r\n const fileCaricato = x => {\r\n if (x.Success) {\r\n SnackbarManager.notifySuccess(\"Ricevuta Allegata\");\r\n onClose();\r\n } else {\r\n SnackbarManager.notifyError(x.DetectedProblems);\r\n }\r\n }\r\n\r\n return (\r\n \r\n Allega ricevuta\r\n \r\n

    Carica la ricevuta della tua dichiarazione di successione

    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n );\r\n};\r\n\r\nModaleAllegaRicevuta.propTypes = {\r\n codiceUfficio: PropTypes.string,\r\n idDichiarazione: PropTypes.string,\r\n onClose: PropTypes.func\r\n};\r\n\r\nexport default ModaleAllegaRicevuta;","\"use strict\";\r\n\r\nimport React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Button, FileUpload, Modal } from 'framework-ui-components';\r\nimport { SnackbarWrapper as SnackbarManager } from 'framework-ui-components/Components/Snackbar';\r\n\r\nconst ModaleAllegaRicevutaSecondaria = ({ codiceUfficio, idDichiarazione, onClose }) => {\r\n const fileCaricato = x => {\r\n if (x.Success) {\r\n SnackbarManager.notifySuccess(\"Ricevuta Allegata\");\r\n } else {\r\n SnackbarManager.notifyError(x.DetectedProblems);\r\n }\r\n };\r\n\r\n return (\r\n \r\n Allega ricevute esiti\r\n \r\n

    Carica le ricevute della tua dichiarazione di successione

    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n );\r\n};\r\n\r\nModaleAllegaRicevutaSecondaria.propTypes = {\r\n codiceUfficio: PropTypes.string,\r\n idDichiarazione: PropTypes.string,\r\n onClose: PropTypes.func\r\n};\r\n\r\nexport default ModaleAllegaRicevutaSecondaria;","/* eslint react/jsx-filename-extension: 0 */\r\n\r\nimport React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Autocomplete, Button, Form, Modal, Panel, WebRequest,\r\n} from 'framework-ui-components';\r\nimport { SnackbarWrapper as SnackbarManager } from 'framework-ui-components/Components/Snackbar';\r\n\r\nclass ModaleCreaVoltura extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n avvisiVolture2: [],\r\n ComuneAgenziaVoltura: '',\r\n codiceUfficio: '',\r\n descrizioneUfficioRegistro: '',\r\n };\r\n this.scaricaVoltura = this.scaricaVoltura.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n const { idDichiarazione } = this.props;\r\n\r\n // stabilisce se la dichiarazione è compatibile con il formato 2.0\r\n // anche se le province sono tutte migrate al SIT, la chiamata\r\n // ci consente di visualizzare eventuali avvisi di incompatibilità\r\n // con il contenuto della dichiarazione\r\n WebRequest.get('Successioni/DichiarazioneCompatibileVolture20', { idDichiarazione })\r\n .then((DichiarazioneCompatibileVolture20Dto) => this.setState({\r\n avvisiVolture2: DichiarazioneCompatibileVolture20Dto.Avvisi,\r\n }))\r\n .catch();\r\n }\r\n\r\n scaricaVoltura(versione) {\r\n const { isFormValid, ComuneAgenziaVoltura, codiceUfficio } = this.state;\r\n const { idDichiarazione } = this.props;\r\n\r\n const url = `${window.config.urlSuccessioni}/DichiarazioneSuccessione/CreaVoltura/`\r\n + `?idDichiarazione=DichiarazioneSuccessione/${idDichiarazione.split('/')[1]\r\n }&comune=${encodeURIComponent(ComuneAgenziaVoltura)\r\n }&codiceUfficioRegistro=${encodeURIComponent(codiceUfficio)\r\n }&versione=${encodeURIComponent(versione)}`;\r\n\r\n if (isFormValid) {\r\n window.open(url);\r\n } else {\r\n SnackbarManager.notifyError('Compilare i campi richiesti');\r\n }\r\n }\r\n\r\n aggiornaUfficioRegistro(ufficio) {\r\n this.setState({\r\n codiceUfficio: ufficio.codiceUfficio,\r\n descrizioneUfficioRegistro: ufficio.descrizione,\r\n });\r\n }\r\n\r\n render() {\r\n const { onClose } = this.props;\r\n const { avvisiVolture2 } = this.state;\r\n\r\n return (\r\n \r\n Creazione file Voltura\r\n \r\n this.setState(x)}\r\n stato={this.state}\r\n onValidationChange={(validity) => this.setState({ isFormValid: validity })}\r\n >\r\n this.aggiornaUfficioRegistro(ufficio)} />\r\n \r\n {!!avvisiVolture2 && ()}\r\n \r\n \r\n \r\n this.scaricaVoltura(v)} />\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nconst ElencoAvvisi = ({ avvisi }) => (\r\n
    \r\n {avvisi.map((item, i) =>
    {item}
    )}\r\n
    \r\n);\r\n\r\nconst ButtonScaricaVoltura = ({ callback }) => ();\r\n\r\nconst SelezioneUfficioRegistro = ({ onChange }) => (\r\n
    \r\n \r\n onChange(ufficio)}\r\n />\r\n
    \r\n);\r\n\r\nModaleCreaVoltura.propTypes = {\r\n idDichiarazione: PropTypes.string.isRequired,\r\n onClose: PropTypes.func.isRequired,\r\n};\r\n\r\nButtonScaricaVoltura.propTypes = {\r\n callback: PropTypes.func.isRequired,\r\n};\r\n\r\nSelezioneUfficioRegistro.propTypes = {\r\n onChange: PropTypes.func.isRequired,\r\n};\r\n\r\nElencoAvvisi.propTypes = {\r\n avvisi: PropTypes.arrayOf(PropTypes.string).isRequired,\r\n};\r\n\r\nexport default ModaleCreaVoltura;\r\n","import React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Button, DatePicker, Form, Input, Modal,\r\n} from 'framework-ui-components';\r\nimport { SnackbarWrapper as SnackbarManager } from 'framework-ui-components/Components/Snackbar';\r\n\r\nimport { trasmettiManualmente } from 'apis/successioniApi';\r\n\r\nclass ModaleTrasmissioneManuale extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n DataRicevuta: null,\r\n NumeroProtocollo: '',\r\n DataPrimaDichiarazione: null,\r\n NumeroPrimaDichiarazione: '',\r\n VolumePrimaDichiarazione: '',\r\n AnnoPrimaDichiarazione: '',\r\n };\r\n this.invia = this.invia.bind(this);\r\n }\r\n\r\n controllaNumeriESettaStato(d) {\r\n if (d.NumeroPrimaDichiarazione) {\r\n d.NumeroPrimaDichiarazione = d.NumeroPrimaDichiarazione.replace(/\\D/g, '');\r\n }\r\n if (d.VolumePrimaDichiarazione) {\r\n d.VolumePrimaDichiarazione = d.VolumePrimaDichiarazione.replace(/\\D/g, '');\r\n }\r\n if (d.AnnoPrimaDichiarazione) {\r\n d.AnnoPrimaDichiarazione = d.AnnoPrimaDichiarazione.replace(/\\D/g, '');\r\n }\r\n this.setState(d);\r\n }\r\n\r\n invia() {\r\n if (this.form.valida()) {\r\n trasmettiManualmente(this.props.idDichiarazione, this.state.DataRicevuta, this.state.NumeroProtocollo, this.state.VolumePrimaDichiarazione,\r\n this.state.NumeroPrimaDichiarazione, this.state.AnnoPrimaDichiarazione, this.state.DataPrimaDichiarazione)\r\n .then((resp) => {\r\n if (resp.Success) {\r\n this.props.onClose();\r\n SnackbarManager.notifySuccess('Dichiarazione trasmessa manualmente');\r\n } else {\r\n SnackbarManager.notifyError(resp.DetectedProblems);\r\n }\r\n });\r\n }\r\n }\r\n\r\n render() {\r\n const { modello4, onClose } = this.props;\r\n const tipologia = modello4 ? '' : ' telematica';\r\n return (\r\n // eslint-disable-next-line react/jsx-filename-extension\r\n \r\n Trasmetti manualmente\r\n \r\n
    this.form = r} stato={this.state} onChange={(d) => this.controllaNumeriESettaStato(d)}>\r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nModaleTrasmissioneManuale.propTypes = {\r\n idDichiarazione: PropTypes.string.isRequired,\r\n modello4: PropTypes.bool.isRequired,\r\n onClose: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default ModaleTrasmissioneManuale;\r\n","import React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport {\r\n Confirm, Formatter, OptionDropdown, Spinner, PopOver, InfoTooltip,\r\n} from 'framework-ui-components';\r\nimport SuccessoIcon from 'framework-ui-components/Components/Icons/SuccessoIcon';\r\nimport { SnackbarWrapper as SnackbarManager } from 'framework-ui-components/Components/Snackbar';\r\n\r\nimport {\r\n arretraTrasmessaManualmente, completa, creaSostitutivaDaEsistente, daInviare, elimina, riapri,\r\n} from 'apis/successioniApi';\r\nimport { AccettatoIcon, AssenteIcon, RifiutatoIcon } from 'dashboard/Icons';\r\nimport TipoDichiarazione from 'enums/TipoDichiarazione';\r\nimport StatoDichiarazione from 'enums/StatoDichiarazione';\r\nimport Servizi from 'enums/Servizi';\r\nimport ModaleAllegaRicevuta from './ModaleAllegaRicevuta';\r\nimport ModaleAllegaRicevutaSecondaria from './ModaleAllegaRicevutaSecondaria';\r\nimport ModaleCreaVoltura from './ModaleCreaVoltura';\r\nimport ModaleTrasmissioneManuale from './ModaleTrasmissioneManuale';\r\nimport ModaleStorico from '../Shared/ModaleStorico';\r\nimport { capitalizeFirstLetter } from '../../helpers/stringHelper';\r\nimport checkServizio from '../../helpers/checkServizio';\r\n\r\nclass RigaDichiarazione extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n storico: false,\r\n visualizzaTrasmissioneManuale: false,\r\n allegaRicevuta: false,\r\n allegaRicevutaSecondaria: false,\r\n attesa: false,\r\n };\r\n\r\n this.initializeComponent();\r\n }\r\n\r\n initializeComponent() {\r\n this.allegaRicevuta = this.allegaRicevuta.bind(this);\r\n this.allegaRicevutaSecondaria = this.allegaRicevutaSecondaria.bind(this);\r\n this.creaVoltura = this.creaVoltura.bind(this);\r\n this.vaiADichiarazione = this.vaiADichiarazione.bind(this);\r\n this.visualizzaDichiarazione = this.visualizzaDichiarazione.bind(this);\r\n this.stampa = this.stampa.bind(this);\r\n this.stampaprospettoautoliquidazione = this.stampaprospettoautoliquidazione.bind(this);\r\n this.stampaprospettoautoliquidazionevuoto = this.stampaprospettoautoliquidazionevuoto.bind(this);\r\n this.stampaF24 = this.stampaF24.bind(this);\r\n this.stampaF24vuoto = this.stampaF24vuoto.bind(this);\r\n this.scaricaEsitoPagamentoF24 = this.scaricaEsitoPagamentoF24.bind(this);\r\n this.scaricaPostControlli = this.scaricaPostControlli.bind(this);\r\n this.scaricaEsitoVoltura = this.scaricaEsitoVoltura.bind(this);\r\n this.telematico = this.telematico.bind(this);\r\n this.esito = this.esito.bind(this);\r\n this.elimina = this.elimina.bind(this);\r\n this.completacmd = this.completacmd.bind(this);\r\n this.riapri = this.riapri.bind(this);\r\n this.daInviare = this.daInviare.bind(this);\r\n this.invia = this.invia.bind(this);\r\n this.sostituivaNuova = this.sostituivaNuova.bind(this);\r\n this.sostituivaSenza = this.sostituivaSenza.bind(this);\r\n this.sostituivaAllegati = this.sostituivaAllegati.bind(this);\r\n this.trasmettiManualmente = this.trasmettiManualmente.bind(this);\r\n this.modificativaModello4 = this.modificativaModello4.bind(this);\r\n this.integrativaModello4 = this.integrativaModello4.bind(this);\r\n this.sostitutivaModello4 = this.sostitutivaModello4.bind(this);\r\n this.aggiuntivaModello4 = this.aggiuntivaModello4.bind(this);\r\n }\r\n\r\n vaiADichiarazione() {\r\n if (this.props.servizioAttivo == true && this.props.item.Stato == StatoDichiarazione.InLavorazione) {\r\n window.location.href = `${window.config.urlSuccessioni}/#/Dichiarazione/Frontespizio/${this.props.item.IdDichiarazione.split('/')[1]}`;\r\n } else {\r\n window.location.href = `${window.config.urlSuccessioni}/#/Dichiarazione/Frontespizio/Visualizza/${this.props.item.IdDichiarazione.split('/')[1]}`;\r\n }\r\n }\r\n\r\n visualizzaDichiarazione() {\r\n window.location.href = `${window.config.urlSuccessioni}/#/Dichiarazione/Frontespizio/Visualizza/${this.props.item.IdDichiarazione.split('/')[1]}`;\r\n }\r\n\r\n stampa() {\r\n window.open(`${window.config.urlSuccessioni}/DichiarazioneSuccessione/DownloadStampa/?idDichiarazione=DichiarazioneSuccessione/${this.props.item.IdDichiarazione.split('/')[1]}&studio=${this.props.item.CodiceUfficio}&codiceFiscale=${this.props.item.CodiceFiscale}`, '_blank');\r\n }\r\n\r\n stampaprospettoautoliquidazione() {\r\n window.open(`${window.config.urlSuccessioni}/DichiarazioneSuccessione/DownloadStampeVarie/?idDichiarazione=DichiarazioneSuccessione/${this.props.item.IdDichiarazione.split('/')[1]}&studio=${this.props.item.CodiceUfficio}&codiceFiscale=${this.props.item.CodiceFiscale}&stampa=ProspettoAutoliquidazione`, '_blank');\r\n }\r\n\r\n stampaprospettoautoliquidazionevuoto() {\r\n window.open(`${window.config.urlSuccessioni}/DichiarazioneSuccessione/DownloadStampeVarie/?idDichiarazione=DichiarazioneSuccessione/${this.props.item.IdDichiarazione.split('/')[1]}&studio=${this.props.item.CodiceUfficio}&codiceFiscale=${this.props.item.CodiceFiscale}&stampa=ProspettoAutoliquidazioneVuoto`, '_blank');\r\n }\r\n\r\n stampaF24() {\r\n window.open(`${window.config.urlSuccessioni}/DichiarazioneSuccessione/DownloadStampeVarie/?idDichiarazione=DichiarazioneSuccessione/${this.props.item.IdDichiarazione.split('/')[1]}&studio=${this.props.item.CodiceUfficio}&codiceFiscale=${this.props.item.CodiceFiscale}&stampa=F24`, '_blank');\r\n }\r\n\r\n stampaF24vuoto() {\r\n window.open(`${window.config.urlSuccessioni}/DichiarazioneSuccessione/DownloadStampeVarie/?idDichiarazione=DichiarazioneSuccessione/${this.props.item.IdDichiarazione.split('/')[1]}&studio=${this.props.item.CodiceUfficio}&codiceFiscale=${this.props.item.CodiceFiscale}&stampa=F24Vuoto`, '_blank');\r\n }\r\n\r\n scaricaEsitoPagamentoF24() {\r\n window.open(`${window.config.urlSuccessioni}/DichiarazioneSuccessione/DownloadEsitoPagamentoF24/?idDichiarazione=DichiarazioneSuccessione/${this.props.item.IdDichiarazione.split('/')[1]}&studio=${this.props.item.CodiceUfficio}&codiceFiscale=${this.props.item.CodiceFiscale}`, '_blank');\r\n }\r\n\r\n scaricaEsitoVoltura() {\r\n window.open(`${window.config.urlSuccessioni}/DichiarazioneSuccessione/DownloadEsitoVoltura/?idDichiarazione=DichiarazioneSuccessione/${this.props.item.IdDichiarazione.split('/')[1]}&studio=${this.props.item.CodiceUfficio}&codiceFiscale=${this.props.item.CodiceFiscale}`, '_blank');\r\n }\r\n\r\n scaricaPostControlli() {\r\n window.open(`${window.config.urlSuccessioni}/DichiarazioneSuccessione/DownloadEsitoPostControlli/?idDichiarazione=DichiarazioneSuccessione/${this.props.item.IdDichiarazione.split('/')[1]}&studio=${this.props.item.CodiceUfficio}&codiceFiscale=${this.props.item.CodiceFiscale}`, '_blank');\r\n }\r\n\r\n telematico() {\r\n window.open(`${window.config.urlSuccessioni}/DichiarazioneSuccessione/DownloadTelematico/?idDichiarazione=DichiarazioneSuccessione/${this.props.item.IdDichiarazione.split('/')[1]}&studio=${this.props.item.CodiceUfficio}&codiceFiscale=${this.props.item.CodiceFiscale}`, '_blank');\r\n }\r\n\r\n esito() {\r\n window.open(`${window.config.urlSuccessioni}/DichiarazioneSuccessione/DownloadEsito/?idDichiarazione=DichiarazioneSuccessione/${this.props.item.IdDichiarazione.split('/')[1]}&studio=${this.props.item.CodiceUfficio}&codiceFiscale=${this.props.item.CodiceFiscale}`, '_blank');\r\n }\r\n\r\n elimina() {\r\n Confirm('Elimina dichiarazione', 'Sei sicuro di voler eliminare questa dichiarazione?', 'error').then((x) => {\r\n elimina(this.props.item.IdDichiarazione).then((x) => {\r\n if (x.Success) {\r\n SnackbarManager.notifySuccess('Dichiarazione eliminata con successo');\r\n } else {\r\n SnackbarManager.notifyError(x.DetectedProblems);\r\n }\r\n });\r\n });\r\n }\r\n\r\n completacmd(dataContabilizzazione) {\r\n const handleCompletion = () => {\r\n completa(this.props.item.IdDichiarazione).then((x) => {\r\n if (x.Success) {\r\n SnackbarManager.notifySuccess('Dichiarazione completata');\r\n } else {\r\n SnackbarManager.notifyError(x.DetectedProblems);\r\n }\r\n });\r\n };\r\n\r\n if (dataContabilizzazione === undefined) {\r\n Confirm('Conferma completamento', ATTENZIONE: impostando la dichiarazione con lo status Completa verrà contabilizzata ai fini della fatturazione. Eventuali rinvii della stessa dichiarazione non verranno conteggiati. Continuare ?, 'success').then(handleCompletion);\r\n }\r\n else {\r\n //dichiarazione già contabilizzata, la porto avanti direttamente\r\n handleCompletion();\r\n }\r\n }\r\n\r\n riapri() {\r\n riapri(this.props.item.IdDichiarazione).then((x) => {\r\n if (x.Success) {\r\n SnackbarManager.notifySuccess('Dichiarazione riaperta');\r\n } else {\r\n SnackbarManager.notifyError(x.DetectedProblems);\r\n }\r\n });\r\n }\r\n\r\n daInviare(invioTelematicoAbilitato) {\r\n if (invioTelematicoAbilitato) {\r\n Confirm(\r\n 'Conferma invio telematico',\r\n \r\n È attivo il servizio Invio Telematico. Vuoi continuare con l’invio in Agenzia delle Entrate?\r\n ,\r\n 'success',\r\n )\r\n .then(() => this.invia());\r\n } else {\r\n this.invia();\r\n }\r\n }\r\n\r\n invia() {\r\n this.setState({ attesa: true });\r\n daInviare(this.props.item.IdDichiarazione)\r\n .then((x) => {\r\n this.setState({ attesa: false });\r\n if (x.Success) {\r\n SnackbarManager.notifySuccess('Dichiarazione avanzata a da inviare');\r\n } else {\r\n SnackbarManager.notifyError(x.DetectedProblems);\r\n }\r\n });\r\n }\r\n\r\n sostituivaNuova() {\r\n creaSostitutivaDaEsistente(this.props.item.IdDichiarazione, TipoDichiarazione.SostitutivaConNuovaTrascrizioneEVoltura, this.props.item.CodiceUfficio)\r\n .then((resp) => {\r\n if (resp.Success) {\r\n window.location.href = `${window.config.urlSuccessioni}/#/Dichiarazione/Frontespizio/${resp.IdDichiarazione.split('/')[1]}`;\r\n } else {\r\n SnackbarManager.notifyError(resp.DetectedProblems);\r\n }\r\n });\r\n }\r\n\r\n sostituivaSenza() {\r\n creaSostitutivaDaEsistente(this.props.item.IdDichiarazione, TipoDichiarazione.SostitutivaSenzaNuovaTrascrizioneEVoltura, this.props.item.CodiceUfficio)\r\n .then((resp) => {\r\n if (resp.Success) {\r\n window.location.href = `${window.config.urlSuccessioni}/#/Dichiarazione/Frontespizio/${resp.IdDichiarazione.split('/')[1]}`;\r\n } else {\r\n SnackbarManager.notifyError(resp.DetectedProblems);\r\n }\r\n });\r\n }\r\n\r\n sostituivaAllegati() {\r\n creaSostitutivaDaEsistente(this.props.item.IdDichiarazione, TipoDichiarazione.SostitutivaSoliAllegati, this.props.item.CodiceUfficio)\r\n .then((resp) => {\r\n if (resp.Success) {\r\n window.location.href = `${window.config.urlSuccessioni}/#/Dichiarazione/Frontespizio/${resp.IdDichiarazione.split('/')[1]}`;\r\n } else {\r\n SnackbarManager.notifyError(resp.DetectedProblems);\r\n }\r\n });\r\n }\r\n\r\n modificativaModello4() {\r\n creaSostitutivaDaEsistente(this.props.item.IdDichiarazione, TipoDichiarazione.SuccessioniCartaceaModificativa, this.props.item.CodiceUfficio)\r\n .then((resp) => {\r\n if (resp.Success) {\r\n window.location.href = `${window.config.urlSuccessioni}/#/Dichiarazione/Frontespizio/${resp.IdDichiarazione.split('/')[1]}`;\r\n } else {\r\n SnackbarManager.notifyError(resp.DetectedProblems);\r\n }\r\n });\r\n }\r\n\r\n integrativaModello4() {\r\n creaSostitutivaDaEsistente(this.props.item.IdDichiarazione, TipoDichiarazione.SuccessioniCartaceaIntegrativa, this.props.item.CodiceUfficio)\r\n .then((resp) => {\r\n if (resp.Success) {\r\n window.location.href = `${window.config.urlSuccessioni}/#/Dichiarazione/Frontespizio/${resp.IdDichiarazione.split('/')[1]}`;\r\n } else {\r\n SnackbarManager.notifyError(resp.DetectedProblems);\r\n }\r\n });\r\n }\r\n\r\n sostitutivaModello4() {\r\n creaSostitutivaDaEsistente(this.props.item.IdDichiarazione, TipoDichiarazione.SuccessioniCartaceaSostitutiva, this.props.item.CodiceUfficio)\r\n .then((resp) => {\r\n if (resp.Success) {\r\n window.location.href = `${window.config.urlSuccessioni}/#/Dichiarazione/Frontespizio/${resp.IdDichiarazione.split('/')[1]}`;\r\n } else {\r\n SnackbarManager.notifyError(resp.DetectedProblems);\r\n }\r\n });\r\n }\r\n\r\n aggiuntivaModello4() {\r\n creaSostitutivaDaEsistente(this.props.item.IdDichiarazione, TipoDichiarazione.SuccessioniCartaceaAggiuntiva, this.props.item.CodiceUfficio)\r\n .then((resp) => {\r\n if (resp.Success) {\r\n window.location.href = `${window.config.urlSuccessioni}/#/Dichiarazione/Frontespizio/${resp.IdDichiarazione.split('/')[1]}`;\r\n } else {\r\n SnackbarManager.notifyError(resp.DetectedProblems);\r\n }\r\n });\r\n }\r\n\r\n riapriTrasmessaManualmente() {\r\n arretraTrasmessaManualmente(this.props.item.IdDichiarazione).then((resp) => {\r\n if (resp.Success) {\r\n SnackbarManager.notifySuccess('Dichiarazione arretrata');\r\n } else {\r\n SnackbarManager.notifyError(resp.DetectedProblems);\r\n }\r\n });\r\n }\r\n\r\n creaVoltura() {\r\n this.setState({ creaVoltura: true });\r\n }\r\n\r\n trasmettiManualmente() {\r\n this.setState({ visualizzaTrasmissioneManuale: true });\r\n }\r\n\r\n allegaRicevuta() {\r\n this.setState({ allegaRicevuta: true });\r\n }\r\n\r\n allegaRicevutaSecondaria() {\r\n this.setState({ allegaRicevutaSecondaria: true });\r\n }\r\n\r\n descrizioneStatoDichiarazione(stato, haErrori) {\r\n switch (stato) {\r\n case StatoDichiarazione.DaTrasmettere:\r\n return 'Invio telematico in corso';\r\n case StatoDichiarazione.TrasmissioneNonRiuscita:\r\n return 'Invio telematico fallito';\r\n default:\r\n return StatoDichiarazione.stringify(stato, haErrori);\r\n }\r\n }\r\n\r\n render() {\r\n const { item, servizioAdeleAttivo } = this.props;\r\n\r\n const datiAggiuntivi = item.DatiAddizionali != null ? typeof item.DatiAddizionali === 'object' && item.DatiAddizionali !== null ? item.DatiAddizionali : JSON.parse(item.DatiAddizionali) : {};\r\n const modello4 = item.Tipo === TipoDichiarazione.SuccessioniCartaceaPrimaDichiarazione\r\n || item.Tipo === TipoDichiarazione.SuccessioniCartaceaModificativa\r\n || item.Tipo === TipoDichiarazione.SuccessioniCartaceaIntegrativa\r\n || item.Tipo === TipoDichiarazione.SuccessioniCartaceaSostitutiva\r\n || item.Tipo === TipoDichiarazione.SuccessioniCartaceaAggiuntiva;\r\n\r\n const tipoDichiarazioneOrigineCompatibileConIntegrativa1e2 = item.Tipo !== TipoDichiarazione.SostitutivaSoliAllegati;\r\n const avvisoTipoDichiarazioneOrigineCompatibileConIntegrativa1e2 = (Questo tipo di sostitutiva non può essere creato dalla sostitutiva soli allegati);\r\n\r\n // flag che l'uente può mettere nella dichiarazione per forzare l'invio manuale anche se attivo il serivizio di invio telematico\r\n const flagInvioManuale = !!datiAggiuntivi.InvioTelematicoManuale && datiAggiuntivi.InvioTelematicoManuale === 'True';\r\n // in funzione dell'ambiente\r\n const toggleInvioTelematico = window.config.toggleSuccessioniInvioTelematicoUfficiAbilitati === '*'\r\n || (!!window.config.toggleSuccessioniInvioTelematicoUfficiAbilitati && window.config.toggleSuccessioniInvioTelematicoUfficiAbilitati\r\n .split(',')\r\n .map((u) => u.trim())\r\n .includes(item.CodiceUfficio));\r\n const invioTramiteInvioTelematico = !modello4 && !flagInvioManuale && servizioAdeleAttivo && toggleInvioTelematico;\r\n\r\n return (\r\n \r\n {item.CodiceFiscale.toUpperCase()}\r\n {item.Cognome.toUpperCase()}\r\n {item.Nome.toUpperCase()}\r\n {this.descrizioneStatoDichiarazione(item.Stato, item.HaErrori)}\r\n {TipoDichiarazione.stringify(item.Tipo)}\r\n {datiAggiuntivi.TipoDevoluzione}\r\n {datiAggiuntivi.FiscoOnline == 'True' && }\r\n \r\n {datiAggiuntivi.IdRicevutaEsitoPagamentoF24 == 'True' && (item.Stato == StatoDichiarazione.TrasmessaAutomaticamente || item.Stato == StatoDichiarazione.TrasmessaManualmente) && }{(datiAggiuntivi.IdRicevutaEsitoPagamentoF24 == undefined || datiAggiuntivi.IdRicevutaEsitoPagamentoF24 == '') && (item.Stato == StatoDichiarazione.TrasmessaAutomaticamente || item.Stato == StatoDichiarazione.TrasmessaManualmente) && }{datiAggiuntivi.IdRicevutaEsitoPagamentoF24 == 'False' && (item.Stato == StatoDichiarazione.TrasmessaAutomaticamente || item.Stato == StatoDichiarazione.TrasmessaManualmente) && }\r\n {datiAggiuntivi.IdRicevutaRicevutaPostControlli == 'True' && (item.Stato == StatoDichiarazione.TrasmessaAutomaticamente || item.Stato == StatoDichiarazione.TrasmessaManualmente) && }{(datiAggiuntivi.IdRicevutaRicevutaPostControlli == undefined || datiAggiuntivi.IdRicevutaRicevutaPostControlli == '') && (item.Stato == StatoDichiarazione.TrasmessaAutomaticamente || item.Stato == StatoDichiarazione.TrasmessaManualmente) && }{datiAggiuntivi.IdRicevutaRicevutaPostControlli == 'False' && (item.Stato == StatoDichiarazione.TrasmessaAutomaticamente || item.Stato == StatoDichiarazione.TrasmessaManualmente) && }\r\n {datiAggiuntivi.IdRicevutaEsitoVoltura == 'True' && (item.Stato == StatoDichiarazione.TrasmessaAutomaticamente || item.Stato == StatoDichiarazione.TrasmessaManualmente) && }{(datiAggiuntivi.IdRicevutaEsitoVoltura == undefined || datiAggiuntivi.IdRicevutaEsitoVoltura == '') && (item.Stato == StatoDichiarazione.TrasmessaAutomaticamente || item.Stato == StatoDichiarazione.TrasmessaManualmente) && }{datiAggiuntivi.IdRicevutaEsitoVoltura == 'False' && (item.Stato == StatoDichiarazione.TrasmessaAutomaticamente || item.Stato == StatoDichiarazione.TrasmessaManualmente) && }\r\n \r\n {this.state.attesa\r\n ? \r\n : (\r\n \r\n {(item.Stato == StatoDichiarazione.InLavorazione && this.props.servizioAttivo == true)\r\n ? Modifica\r\n : Visualizza}\r\n\r\n Stampa\r\n\r\n {\r\n this.props.servizioAttivo == true\r\n && (item.Stato == StatoDichiarazione.TrasmessaAutomaticamente || item.Stato == StatoDichiarazione.TrasmessaManualmente)\r\n && modello4 === true\r\n && Crea Modificativa\r\n }\r\n {\r\n this.props.servizioAttivo == true\r\n && (item.Stato == StatoDichiarazione.TrasmessaAutomaticamente || item.Stato == StatoDichiarazione.TrasmessaManualmente)\r\n && modello4 === true\r\n && Crea Integrativa\r\n }\r\n {\r\n this.props.servizioAttivo == true\r\n && (item.Stato == StatoDichiarazione.TrasmessaAutomaticamente || item.Stato == StatoDichiarazione.TrasmessaManualmente)\r\n && modello4 === true\r\n && Crea Sostitutiva\r\n }\r\n {\r\n this.props.servizioAttivo == true\r\n && (item.Stato == StatoDichiarazione.TrasmessaAutomaticamente || item.Stato == StatoDichiarazione.TrasmessaManualmente)\r\n && modello4 === true\r\n && Crea Aggiuntiva\r\n }\r\n\r\n {modello4 === true\r\n && Stampa prospetto autoliquidazione}\r\n {modello4 === true\r\n && Stampa modello F24}\r\n {modello4 === true\r\n && Stampa prospetto autoliquidazione (vuoto)}\r\n {modello4 === true\r\n && Stampa modello F24 (vuoto)}\r\n\r\n {this.props.servizioAttivo == true && item.Stato == StatoDichiarazione.InLavorazione && !item.HaErrori\r\n && this.completacmd(datiAggiuntivi.DataContabilizzazione)}>Completa}\r\n\r\n {this.props.servizioAttivo == true\r\n && item.Stato == StatoDichiarazione.Completa\r\n && this.daInviare(invioTramiteInvioTelematico)}>Porta a da inviare}\r\n\r\n {this.props.servizioAttivo == true\r\n && item.Stato == StatoDichiarazione.DaInviare\r\n && modello4 === false\r\n && Scarica telematico}\r\n {\r\n item.Stato == StatoDichiarazione.DaInviare\r\n && modello4 === false\r\n && Visualizza esito Entratel\r\n }\r\n\r\n {\r\n this.props.servizioAttivo == true\r\n && item.Stato == StatoDichiarazione.DaInviare && datiAggiuntivi.FiscoOnline == 'True'\r\n && Avanza a trasmessa manualmente\r\n }\r\n {\r\n this.props.servizioAttivo == true\r\n && item.Stato == StatoDichiarazione.DaInviare && datiAggiuntivi.FiscoOnline != 'True'\r\n && Allega ricevuta\r\n }\r\n {\r\n this.props.servizioAttivo == true\r\n && (item.Stato == StatoDichiarazione.TrasmessaAutomaticamente || item.Stato == StatoDichiarazione.TrasmessaManualmente)\r\n && Allega ricevute esiti\r\n }\r\n\r\n {\r\n this.props.servizioAttivo == true\r\n && item.Stato == StatoDichiarazione.TrasmessaManualmente\r\n && this.riapriTrasmessaManualmente()}>Arretra\r\n }\r\n\r\n {\r\n this.props.servizioAttivo == true\r\n && (item.Stato == StatoDichiarazione.Completa\r\n || item.Stato == StatoDichiarazione.DaInviare\r\n || item.Stato === StatoDichiarazione.TrasmissioneNonRiuscita\r\n || item.Stato === StatoDichiarazione.ScartataEnte)\r\n && Riporta in Lavorazione\r\n }\r\n\r\n {\r\n this.props.servizioAttivo == true\r\n && item.Stato == StatoDichiarazione.InLavorazione\r\n && (\r\n Elimina\r\n \r\n )\r\n }\r\n\r\n {\r\n this.props.servizioAttivo == true\r\n && (item.Stato == StatoDichiarazione.TrasmessaAutomaticamente || item.Stato == StatoDichiarazione.TrasmessaManualmente)\r\n && modello4 === false\r\n && (\r\n \r\n Crea sostitutiva con nuova trascrizione {\r\n !tipoDichiarazioneOrigineCompatibileConIntegrativa1e2 && avvisoTipoDichiarazioneOrigineCompatibileConIntegrativa1e2\r\n }\r\n \r\n )\r\n }\r\n {\r\n this.props.servizioAttivo == true\r\n && (item.Stato == StatoDichiarazione.TrasmessaAutomaticamente || item.Stato == StatoDichiarazione.TrasmessaManualmente)\r\n && modello4 === false\r\n && (\r\n \r\n Crea sostitutiva senza nuova trascrizione {\r\n !tipoDichiarazioneOrigineCompatibileConIntegrativa1e2 && avvisoTipoDichiarazioneOrigineCompatibileConIntegrativa1e2\r\n }\r\n \r\n )\r\n }\r\n {\r\n this.props.servizioAttivo == true\r\n && (item.Stato == StatoDichiarazione.TrasmessaAutomaticamente || item.Stato == StatoDichiarazione.TrasmessaManualmente)\r\n && modello4 === false\r\n && Crea sostitutiva soli allegati\r\n }\r\n\r\n {\r\n this.props.servizioAttivo == true\r\n && ((item.Stato == StatoDichiarazione.TrasmessaAutomaticamente || item.Stato == StatoDichiarazione.TrasmessaManualmente) && datiAggiuntivi.SenzaVoltureCatastali == 'True')\r\n && Crea Voltura\r\n }\r\n\r\n this.setState({ storico: true })}>Storico\r\n \r\n )}\r\n\r\n {this.state.storico\r\n && this.setState({ storico: false })} />}\r\n {this.state.visualizzaTrasmissioneManuale\r\n && this.setState({ visualizzaTrasmissioneManuale: false })} />}\r\n {this.state.allegaRicevuta\r\n && this.setState({ allegaRicevuta: false })} />}\r\n {this.state.allegaRicevutaSecondaria\r\n && this.setState({ allegaRicevutaSecondaria: false })} />}\r\n {this.state.creaVoltura\r\n && this.setState({ creaVoltura: false })} />}\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nconst mapStoreToProps = (store) => {\r\n const serviziUfficio = store.utente.ufficioSelezionato.Servizi;\r\n const servizioInvioTelematico = 'ADE'; // alias: Adele\r\n const servizioAdeleAttivo = !!serviziUfficio.find((x) => x.CodiceServizio === servizioInvioTelematico && x.StatoAttivazione === 3);\r\n return {\r\n servizioAdeleAttivo,\r\n };\r\n};\r\n\r\nRigaDichiarazione.propTypes = {\r\n item: PropTypes.object,\r\n servizioAdeleAttivo: PropTypes.bool,\r\n};\r\n\r\nexport default checkServizio(Servizi.SUC)(connect(mapStoreToProps)(RigaDichiarazione));\r\n","/* eslint-disable jsx-a11y/label-has-associated-control */\r\nimport React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Autocomplete, Button, Checkbox, DatePicker, Form, Grid, InfoTooltip, Input, Modal, Select, Stepper,\r\n} from 'framework-ui-components';\r\n\r\nclass ModaleCreaSuccessione extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n currentStep: 1,\r\n modello4attivo: window.config.toggleSuccessioniModello4 === 'true',\r\n };\r\n\r\n this.initializeComponent();\r\n }\r\n\r\n initializeComponent() {\r\n this.avanti = this.avanti.bind(this);\r\n this.indietro = this.indietro.bind(this);\r\n this.crea = this.crea.bind(this);\r\n }\r\n\r\n avanti() {\r\n const { currentStep } = this.state;\r\n if (currentStep === 1) {\r\n if (this.form.valida()) {\r\n this.setState({ currentStep: 2 });\r\n }\r\n } else if (currentStep === 2 || currentStep === 3) {\r\n this.setState({ currentStep: currentStep + 1 });\r\n }\r\n }\r\n\r\n indietro() {\r\n const { currentStep } = this.state;\r\n if (currentStep !== 1) {\r\n this.setState({ currentStep: currentStep - 1 });\r\n }\r\n }\r\n\r\n crea() {\r\n const { onCrea } = this.props;\r\n onCrea && onCrea(this.state);\r\n }\r\n\r\n stepState(stepNumber) {\r\n const { currentStep } = this.state;\r\n if (stepNumber === currentStep) {\r\n return Stepper.State.ACTIVE;\r\n }\r\n if (stepNumber < currentStep) {\r\n return Stepper.State.DONE;\r\n }\r\n return Stepper.State.TODO;\r\n }\r\n\r\n render() {\r\n const { showModal, onClose } = this.props;\r\n const {\r\n currentStep, Modalita, DataDecesso, Tipo, modello4attivo,\r\n } = this.state;\r\n\r\n const modalitaTelematica = 'telematica';\r\n const modalitaCartacea = 'cartacea';\r\n\r\n // elenco tipologie per modalità\r\n // il codice assegnato è quello definito negli eventi dichiarativi\r\n const tipologieDichiarazione = [\r\n { modalita: modalitaTelematica, codice: '0', descrizione: 'Prima dichiarazione' },\r\n { modalita: modalitaTelematica, codice: '13', descrizione: 'Sostitutiva con nuova trascrizione e voltura' },\r\n { modalita: modalitaTelematica, codice: '14', descrizione: 'Sostitutiva senza nuova trascrizione e voltura' },\r\n { modalita: modalitaTelematica, codice: '15', descrizione: 'Sostitutiva soli allegati' },\r\n { modalita: modalitaCartacea, codice: '32', descrizione: 'Prima dichiarazione' },\r\n { modalita: modalitaCartacea, codice: '33', descrizione: 'Modificativa' },\r\n { modalita: modalitaCartacea, codice: '34', descrizione: 'Integrativa' },\r\n { modalita: modalitaCartacea, codice: '35', descrizione: 'Sostitutiva' },\r\n { modalita: modalitaCartacea, codice: '36', descrizione: 'Aggiuntiva' },\r\n ];\r\n\r\n // avviso se usare il modello cartaceo o telematico\r\n // in base alla data di decesso\r\n const dataLimiteCartaceo = '2006-10-03T00:00:00.000Z';\r\n let suggerimentoModalita = false;\r\n let testoSuggerimentoModalita = '';\r\n if (Modalita === modalitaCartacea\r\n && Tipo === '32'\r\n && DataDecesso && DataDecesso >= dataLimiteCartaceo) {\r\n suggerimentoModalita = true;\r\n testoSuggerimentoModalita = 'Se la successione si è aperta successivamente al 02/10/2006 presentare dichiarazione telematica';\r\n } else if (Modalita === modalitaTelematica\r\n && DataDecesso && DataDecesso < dataLimiteCartaceo\r\n ) {\r\n suggerimentoModalita = true;\r\n testoSuggerimentoModalita = 'Se la successione si è aperta prima del 03/10/2006 presentare dichiarazione cartacea con modello 4';\r\n }\r\n\r\n return (\r\n \r\n Crea nuova successione\r\n \r\n \r\n \r\n {\r\n const newState = x;\r\n if (x.Modalita && x.Modalita !== Modalita) { newState.Tipo = null; }\r\n this.setState(newState);\r\n }}\r\n stato={this.state}\r\n ref={(r) => this.form = r}\r\n >\r\n {modello4attivo && (\r\n
    \r\n \r\n
    \r\n

    Il modello 4 va utilizzato solo nei seguenti casi:\r\n

      \r\n
    • la successione si è aperta prima del 3 ottobre 2006
    • \r\n
    • va presentata un’integrativa quando la prima dichiarazione è stata presentata con questo modello
    • \r\n
    \r\n

    \r\n
    \r\n \r\n
    \r\n )}\r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n {suggerimentoModalita\r\n && (\r\n \r\n

    \r\n {testoSuggerimentoModalita}\r\n
    \r\n )}\r\n (!(`${x || ''}`).trim() && 'Campo obbligatorio') || null]}\r\n />\r\n (!(`${x || ''}`).trim() && 'Campo obbligatorio') || null]}\r\n onChange={(t) => this.setState({ CodiceComune: t.Codice, ComuneUltimaResidenza: t.Description, ProvinciaUltimaResidenza: t.Provincia })}\r\n />\r\n
    \r\n \r\n \r\n
    \r\n \r\n
    this.setState(x)} stato={this.state}>\r\n \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    this.setState(x)} stato={this.state}>\r\n \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    this.setState(x)} stato={this.state}>\r\n \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n \r\n {currentStep !== 1 && }\r\n {currentStep !== 4 && }\r\n {currentStep === 4 && }\r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nModaleCreaSuccessione.propTypes = {\r\n onClose: PropTypes.func.isRequired,\r\n onCrea: PropTypes.func.isRequired,\r\n showModal: PropTypes.bool.isRequired,\r\n};\r\n\r\nexport default ModaleCreaSuccessione;\r\n","import React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport {\r\n Badge, Button, Card, Grid, ODataTable, QueryOptions, Tabs, Toolbar, ButtonGroup, Panel,\r\n} from 'framework-ui-components';\r\nimport PlusIcon from 'framework-ui-components/Components/Icons/PlusIcon';\r\nimport { SnackbarWrapper as SnackbarManager } from 'framework-ui-components/Components/Snackbar';\r\nimport { PageWrapper } from 'dashboard';\r\nimport { creaSuccessione, statiSuccessioni } from 'apis/successioniApi';\r\nimport Servizi from 'enums/Servizi';\r\nimport ErroreIcon from 'framework-ui-components/Components/Icons/ErroreIcon';\r\nimport StatiRicerca from 'enums/StatiRicerca';\r\nimport StatoDichiarazione from 'enums/StatoDichiarazione';\r\nimport EventoServer from '../../libs/EventoServer';\r\nimport RigaDichiarazione from './RigaDichiarazione';\r\nimport ModaleCreaSuccessione from './ModaleCreaSuccessione';\r\nimport checkServizio from '../../helpers/checkServizio';\r\nimport InputRicerca from '../../components/InputRicerca';\r\nimport banner from './banner.svg';\r\n\r\nconst INDICE_ELENCO_DA_MOSTRARE_AVVIO = 0;\r\n\r\nfunction debounce(func, wait, immediate) {\r\n let timeout;\r\n return function () {\r\n const context = this; const\r\n args = arguments;\r\n const later = function () {\r\n timeout = null;\r\n if (!immediate) func.apply(context, args);\r\n };\r\n const callNow = immediate && !timeout;\r\n clearTimeout(timeout);\r\n timeout = setTimeout(later, wait);\r\n if (callNow) func.apply(context, args);\r\n };\r\n}\r\n\r\nclass Dichiarazioni extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n showModal: false,\r\n dichiarazioni: [],\r\n stati: {},\r\n termineRicerca: '',\r\n nTotali: 0,\r\n nInLavorazione: 0,\r\n nComplete: 0,\r\n nDaInviare: 0,\r\n nTrasmesse: 0,\r\n nScartate: 0,\r\n nInvioNonRiuscito: 0,\r\n elencoSelezionato: INDICE_ELENCO_DA_MOSTRARE_AVVIO,\r\n mostraModaleInformativaBloccoTrasmissioni: true,\r\n };\r\n\r\n this.initializeComponent();\r\n }\r\n\r\n componentWillMount() {\r\n this.caricaStati(this.props.ufficioSelezionato.CodiceUfficio, '', false);\r\n }\r\n\r\n componentDidMount() {\r\n EventoServer.subscribe('DichiarazioneEliminata', this.ricarica);\r\n EventoServer.subscribe('DichiarazioneStatoModificato', this.dichiarazioneStatoModificato);\r\n EventoServer.subscribe('DichiarazioneDatiAggiuntiviModificati', this.ricarica);\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (this.props.ufficioSelezionato.CodiceUfficio != nextProps.ufficioSelezionato.CodiceUfficio) {\r\n this.caricaStati(nextProps.ufficioSelezionato.CodiceUfficio, '', false);\r\n // this.tabellaDichiarazioni.loadPage();\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n EventoServer.unsubscribe('DichiarazioneEliminata');\r\n EventoServer.unsubscribe('DichiarazioneStatoModificato');\r\n EventoServer.unsubscribe('DichiarazioneDatiAggiuntiviModificati');\r\n }\r\n\r\n initializeComponent() {\r\n this.apriModale = this.apriModale.bind(this);\r\n this.chiudiModale = this.chiudiModale.bind(this);\r\n this.crea = this.crea.bind(this);\r\n this.ricarica = this.ricarica.bind(this);\r\n this.dichiarazioneStatoModificato = this.dichiarazioneStatoModificato.bind(this);\r\n }\r\n\r\n caricaStati(studio, termineRicerca, ricerca) {\r\n statiSuccessioni(studio, termineRicerca)\r\n .then((resp) => {\r\n const dati = {};\r\n for (const i in resp) {\r\n dati[resp[i].Stato] = resp[i].Totale;\r\n }\r\n\r\n // Questo stato è \"fuori standard\" quindi non lo aggiungo nell'enum\r\n // eventualmente creare un enum custom\r\n const indiceStatoInvioNonRiuscito = 6;\r\n\r\n const totali = dati[StatiRicerca.TUTTE] || 0;\r\n const inLavorazione = dati[StatiRicerca.IN_LAVORAZIONE] || 0;\r\n const complete = dati[StatiRicerca.COMPLETE] || 0;\r\n const daInviare = dati[StatiRicerca.DA_INVIARE] || 0;\r\n const trasmesse = dati[StatiRicerca.TRASMESSE] || 0;\r\n const scartate = dati[StatiRicerca.SCARTATE] || 0;\r\n const invioNonRiuscito = dati[indiceStatoInvioNonRiuscito] || 0;\r\n\r\n const elencoSelezionato = () => {\r\n if (scartate != 0) return 4; // per ora insieme alle trasmesse.\r\n if (invioNonRiuscito != 0) return 3; // per ora insieme alle \"da inviare\"\r\n\r\n if (termineRicerca && ricerca) {\r\n if (inLavorazione != 0) return 1;\r\n if (daInviare != 0) return 3;\r\n if (complete != 0) return 5;\r\n if (trasmesse != 0) return 4;\r\n }\r\n\r\n if (ricerca) {\r\n return 0;\r\n }\r\n return null;\r\n };\r\n\r\n const aggiornamentiStato = {\r\n nTotali: totali,\r\n nInLavorazione: inLavorazione,\r\n nComplete: complete,\r\n nDaInviare: daInviare,\r\n nTrasmesse: trasmesse,\r\n nScartate: scartate,\r\n nInvioNonRiuscito: invioNonRiuscito,\r\n };\r\n\r\n if (elencoSelezionato() != null) {\r\n aggiornamentiStato.elencoSelezionato = elencoSelezionato();\r\n }\r\n\r\n this.setState(aggiornamentiStato);\r\n });\r\n }\r\n\r\n dichiarazioneStatoModificato = (evt) => {\r\n // se l'evento riguarda il passaggio allo stato 41, aggiunge una notifica ad-hoc\r\n if (!!evt && evt.NuovoStato !== evt.VecchioStato) {\r\n // eventualmente farsi valorizzare le proprietà dell'evento\r\n // CodiceFiscale e/o Descrizione\r\n // per migliorare il contenuto dei messaggi\r\n if (evt.NuovoStato === StatoDichiarazione.DaTrasmettere) {\r\n const msg = 'Invio telematico in corso';\r\n SnackbarManager.notifySuccess(msg);\r\n }\r\n if (evt.NuovoStato === StatoDichiarazione.TrasmissioneNonRiuscita) {\r\n const msg = 'Invio telematico non riuscito';\r\n SnackbarManager.notifyError(msg);\r\n }\r\n }\r\n // per tutti\r\n this.ricarica();\r\n };\r\n\r\n ricarica = debounce(() => {\r\n this.caricaStati(this.props.ufficioSelezionato.CodiceUfficio, this.state.termineRicerca.trim(), false);\r\n this.tabellaDichiarazioni && this.tabellaDichiarazioni.loadPage();\r\n }, 1000, false);\r\n\r\n apriModale() {\r\n this.setState({ showModal: true });\r\n }\r\n\r\n chiudiModale() {\r\n this.setState({ showModal: false });\r\n }\r\n\r\n chiudiModaleInfoTrasmissioni = () => {\r\n this.setState({ mostraModaleInformativaBloccoTrasmissioni: false });\r\n };\r\n\r\n crea(data) {\r\n creaSuccessione(\r\n this.props.ufficioSelezionato.CodiceUfficio,\r\n data.CodiceFiscale.toUpperCase(),\r\n data.Nome.toUpperCase(),\r\n data.Cognome.toUpperCase(),\r\n data.Tipo,\r\n data.DataDecesso,\r\n data.TipoDevoluzione,\r\n data.ComuneUltimaResidenza,\r\n data.CodiceComune,\r\n data.ProvinciaUltimaResidenza,\r\n data.FlagMortePresunta,\r\n data.QuadroEb,\r\n data.QuadroEc,\r\n data.QuadroEd,\r\n data.QuadroEg,\r\n data.QuadroEh,\r\n data.QuadroEi,\r\n data.QuadroEl,\r\n data.QuadroEm,\r\n data.QuadroEn,\r\n data.QuadroEo,\r\n data.QuadroEp,\r\n data.QuadroEq,\r\n data.QuadroEr,\r\n data.QuadroEs,\r\n )\r\n .then((resp) => {\r\n if (resp.Success) {\r\n window.location.href = `${window.config.urlSuccessioni}/#/Dichiarazione/Frontespizio/${resp.IdDichiarazione.split('/')[1]}`;\r\n } else {\r\n SnackbarManager.notifyError(resp.DetectedProblems);\r\n }\r\n })\r\n .fail((err, msg) => this.setState({ contribuente: '', fullContribuente: null, tipoDichiarazione: 0 }));\r\n }\r\n\r\n onClickCerca = (termineRicerca) => {\r\n this.setState({ termineRicerca: termineRicerca.trim() }, () => {\r\n const ricerca = true;\r\n this.caricaStati(this.props.ufficioSelezionato.CodiceUfficio, termineRicerca.trim(), ricerca);\r\n });\r\n };\r\n\r\n setTabSelezionato = (index) => {\r\n const { elencoSelezionato } = this.state;\r\n const { ufficioSelezionato } = this.props;\r\n\r\n const fromStorageKey = this.getStorageKey(ufficioSelezionato.CodiceUfficio, elencoSelezionato);\r\n const toStorageKey = this.getStorageKey(ufficioSelezionato.CodiceUfficio, index);\r\n\r\n const { sortProperty, sortOrder } = JSON.parse(window.sessionStorage.getItem(fromStorageKey) || '{}');\r\n const toItem = {\r\n filtri: {},\r\n pageSize: 10,\r\n currentPage: 0,\r\n ...JSON.parse(window.sessionStorage.getItem(toStorageKey) || '{}'),\r\n sortProperty,\r\n sortOrder,\r\n };\r\n\r\n window.sessionStorage.setItem(toStorageKey, JSON.stringify(toItem));\r\n\r\n this.setState({ elencoSelezionato: index });\r\n };\r\n\r\n getStorageKey(codiceUfficio, tabSelezionato) {\r\n switch (tabSelezionato) {\r\n case 0: return `${codiceUfficio}tableTutte_Successioni`;\r\n case 1: return `${codiceUfficio}tableLavorazione_Successioni`;\r\n case 2: return `${codiceUfficio}tableComplete_Successioni`;\r\n case 3: return `${codiceUfficio}tableDaInviare_Successioni`;\r\n case 4: return `${codiceUfficio}tableTrasmesse_Successioni`;\r\n default: return '';\r\n }\r\n }\r\n\r\n render() {\r\n const { ufficioSelezionato, accessoNonConsentito, servizioAttivo } = this.props;\r\n const {\r\n termineRicerca,\r\n elencoSelezionato,\r\n nComplete,\r\n nTotali,\r\n nDaInviare,\r\n nInLavorazione,\r\n nTrasmesse,\r\n nScartate,\r\n nInvioNonRiuscito,\r\n } = this.state;\r\n\r\n const badgeConteggio = (count) => (count != 0 ? {count} : null);\r\n const badgeConteggioAllarmi = (count) => (count != 0 ? {count} : null);\r\n\r\n return (\r\n \r\n \r\n \r\n {accessoNonConsentito\r\n ? (\r\n \r\n
    \r\n
    \r\n \r\n

    Il servizio Successioni non è attivo

    \r\n
    \r\n
    \r\n
    \r\n )\r\n : (\r\n \r\n \r\n }\r\n >\r\n \r\n \r\n \r\n \r\n \r\n {!servizioAttivo && !accessoNonConsentito && Il servizio non è attivo. L'accesso è permesso solo in consultazione}\r\n \r\n Tutte {badgeConteggio(nTotali)}}>\r\n this.tabellaDichiarazioni = r}\r\n hover\r\n clickable\r\n url={`/Successioni/CercaSuccessioni?tipoRicerca=${StatiRicerca.TUTTE}&studio=${ufficioSelezionato.CodiceUfficio}&termineRicerca=${termineRicerca}`}\r\n row={RigaDichiarazione}\r\n pageSize={10}\r\n availablePageSizes={[10, 20, 50]}\r\n >\r\n Codice fiscale\r\n Cognome\r\n Nome\r\n Stato\r\n Tipo\r\n Tipo devoluzione\r\n FiscOnline\r\n Data scadenza\r\n Pagamento\r\n Ricevuta Definitiva\r\n Voltura\r\n \r\n \r\n \r\n\r\n In lavorazione {badgeConteggio(nInLavorazione)}}>\r\n this.tabellaDichiarazioni = r}\r\n hover\r\n clickable\r\n url={`/Successioni/CercaSuccessioni?tipoRicerca=${StatiRicerca.IN_LAVORAZIONE}&studio=${ufficioSelezionato.CodiceUfficio}&termineRicerca=${termineRicerca}`}\r\n row={RigaDichiarazione}\r\n pageSize={10}\r\n availablePageSizes={[10, 20, 50]}\r\n >\r\n Codice fiscale\r\n Cognome\r\n Nome\r\n Stato\r\n Tipo\r\n Tipo devoluzione\r\n FiscOnline\r\n Data scadenza\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n Complete {badgeConteggio(nComplete)}}>\r\n this.tabellaDichiarazioni = r}\r\n hover\r\n clickable\r\n url={`/Successioni/CercaSuccessioni?tipoRicerca=${StatiRicerca.COMPLETE}&studio=${ufficioSelezionato.CodiceUfficio}&termineRicerca=${termineRicerca}`}\r\n row={RigaDichiarazione}\r\n pageSize={10}\r\n availablePageSizes={[10, 20, 50]}\r\n >\r\n Codice fiscale\r\n Cognome\r\n Nome\r\n Stato\r\n Tipo\r\n Tipo devoluzione\r\n FiscOnline\r\n Data scadenza\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n Da inviare {badgeConteggio(nDaInviare)} {badgeConteggioAllarmi(nInvioNonRiuscito)}}>\r\n this.tabellaDichiarazioni = r}\r\n hover\r\n clickable\r\n url={`/Successioni/CercaSuccessioni?tipoRicerca=${StatiRicerca.DA_INVIARE}&studio=${ufficioSelezionato.CodiceUfficio}&termineRicerca=${termineRicerca}`}\r\n row={RigaDichiarazione}\r\n pageSize={10}\r\n availablePageSizes={[10, 20, 50]}\r\n >\r\n Codice fiscale\r\n Cognome\r\n Nome\r\n Stato\r\n Tipo\r\n Tipo devoluzione\r\n FiscOnline\r\n Data scadenza\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n Trasmesse {badgeConteggio(nTrasmesse)} {badgeConteggioAllarmi(nScartate)}}>\r\n this.tabellaDichiarazioni = r}\r\n hover\r\n clickable\r\n url={`/Successioni/CercaSuccessioni?tipoRicerca=${StatiRicerca.TRASMESSE}&studio=${ufficioSelezionato.CodiceUfficio}&termineRicerca=${termineRicerca}`}\r\n row={RigaDichiarazione}\r\n pageSize={10}\r\n availablePageSizes={[10, 20, 50]}\r\n >\r\n Codice fiscale\r\n Cognome\r\n Nome\r\n Stato\r\n Tipo\r\n Tipo devoluzione\r\n FiscOnline\r\n Data scadenza\r\n Pagamento\r\n Ricevuta Definitiva\r\n Voltura\r\n \r\n \r\n \r\n \r\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 mapStoreToProps = (store) => ({\r\n ufficioSelezionato: store.utente.ufficioSelezionato,\r\n});\r\n\r\nDichiarazioni.propTypes = {\r\n ufficioSelezionato: PropTypes.object,\r\n accessoNonConsentito: PropTypes.bool,\r\n servizioAttivo: PropTypes.bool,\r\n};\r\n\r\nexport default checkServizio(Servizi.SUC)(connect(mapStoreToProps)(Dichiarazioni));\r\n","import { WebRequest } from 'framework-ui-components';\r\n\r\nexport const statiANF = ({ termine, codiceUfficio }) => WebRequest.get(\r\n `AssegnoNucleoFamiliare/Stati?termine=${termine}&codiceUfficio=${codiceUfficio}`,\r\n);\r\n\r\nexport const eliminaDichiarazione = ({ anno, idDichiarazione }) => WebRequest.post(`AssegnoNucleoFamiliare/Elimina?iddichiarazione=${idDichiarazione}`);\r\n\r\nexport const duplicaDomandaANF = ({\r\n idDichiarazione, CodiceFiscale, CodiceUfficio, Tipo,\r\n}) => WebRequest.post(`AssegnoNucleoFamiliare/CreaAnfDaReiezione?iddichiarazione=${idDichiarazione}&codiceFiscale=${CodiceFiscale}&codiceUfficio=${CodiceUfficio}&tipo=${Tipo}`);\r\n\r\nexport const creaOrdinario = ({\r\n anno,\r\n codiceUfficio,\r\n codiceFiscale,\r\n cognome,\r\n nome,\r\n dataInizio,\r\n dataFine,\r\n}) => WebRequest.post(\r\n `AssegnoNucleoFamiliare/CreaOrdinario?anno=${anno}&codiceUfficio=${codiceUfficio}&codiceFiscale=${codiceFiscale}&cognome=${cognome}&nome=${nome}&dataInizio=${dataInizio}&dataFine=${dataFine}`,\r\n);\r\n\r\nexport const verificaOrdinarioCreabile = ({\r\n anno, codiceFiscale, codiceUfficio, dataInizio, dataFine,\r\n}) => WebRequest.post(\r\n `AssegnoNucleoFamiliare/VerificaOrdinarioCreabile?codicefiscale=${codiceFiscale}&codiceufficio=${codiceUfficio}&anno=${anno}&dataInizio=${dataInizio}&dataFine=${dataFine}`,\r\n);\r\n\r\nexport const creaVariazione = ({\r\n anno,\r\n codiceUfficio,\r\n codiceFiscale,\r\n cognome,\r\n nome,\r\n dataInizio,\r\n}) => WebRequest.post(\r\n `AssegnoNucleoFamiliare/CreaVariazione?anno=${anno}&codiceUfficio=${codiceUfficio}&codiceFiscale=${codiceFiscale}&cognome=${cognome}&nome=${nome}&dataInizio=${dataInizio}`,\r\n);\r\n\r\nexport const modificaVariazione = ({ idDichiarazione, dataInizio }) => WebRequest.post(\r\n `AssegnoNucleoFamiliare/ModificaVariazione?iddichiarazione=${idDichiarazione}&dataInizio=${dataInizio}`,\r\n);\r\n\r\nexport const verificaVariazioneCreabile = ({ anno, codiceFiscale, codiceUfficio }) => WebRequest.post(\r\n `AssegnoNucleoFamiliare/VerificaVariazioneCreabile?codicefiscale=${codiceFiscale}&codiceufficio=${codiceUfficio}&anno=${anno}`,\r\n);\r\n\r\nexport const avviaStampa = ({ idDichiarazioni }) => WebRequest.post('AssegnoNucleoFamiliare/AvviaStampa', idDichiarazioni);\r\n\r\nexport const avviaImpostaStatoInLavorazione = ({ anno, idDichiarazioni }) => WebRequest.post(`AssegnoNucleoFamiliare/ImpostaStatoInLavorazione?anno=${anno}`, idDichiarazioni);\r\n\r\nexport const avviaImpostaStatoCompleta = ({ anno, idDichiarazioni }) => WebRequest.post(`AssegnoNucleoFamiliare/ImpostaStatoCompleta?anno=${anno}`, idDichiarazioni);\r\n\r\nexport const avviaTrasmissioneEPASA = ({ anno, idDichiarazioni }) => WebRequest.post(\r\n `AssegnoNucleoFamiliare/ImpostaStatoTrasmissioneEPASA?anno=${anno}`,\r\n idDichiarazioni,\r\n);\r\n\r\nexport const ottieniDelegaPatronatoEPASA = ({ anno, idDichiarazioni }) => WebRequest.post(\r\n `AssegnoNucleoFamiliare/OttieniDelegaPatronatoEPASA?anno=${anno}`,\r\n idDichiarazioni,\r\n);\r\n\r\nexport const visualizzaEsitoInvioINPS = (idDichiarazione, anno) => WebRequest.get('AssegnoNucleoFamiliare/DescrizioneEsitoInvioINPS', { idDichiarazione, anno });\r\n\r\nexport const visualizzaEsitiINPS = (idDichiarazione) => WebRequest.get('AssegnoNucleoFamiliare/DescrizioneEsitiINPS', { idDichiarazione });\r\n\r\nexport const cercaDichiarazioni = (codiceUfficio, stato, termine, anno) => WebRequest.get('AssegnoNucleoFamiliare/Cerca?$skip=0&$top=128', {\r\n codiceUfficio, stato, termine, anno,\r\n});\r\n\r\nexport const getConfigurazione = () => WebRequest.get('AssegnoNucleoFamiliare/GetConfigurazione');\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 }\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, { 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","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, { 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\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\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\n\r\nexport default DropdownButton;\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 } 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\n }\r\n}\r\n\r\nModaleEsitiInps.propTypes = {\r\n //esiti: PropTypes.object.isRequired,\r\n dichiarante: PropTypes.string.isRequired,\r\n statoDichiarazione: PropTypes.string.isRequired,\r\n idDichiarazione: PropTypes.string.isRequired,\r\n onClose: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default ModaleEsitiInps;\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","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}) => {\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
    \r\n
    \r\n \r\n \r\n
    \r\n {dontShowAgainId && }\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\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 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\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\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\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,\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 /**\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 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\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, 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, 260);\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 /** 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};\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\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\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 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 /** 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 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","export default __webpack_public_path__ + \"../../Content/fonts/danger.svg\";","export default __webpack_public_path__ + \"../../Content/fonts/info.svg\";","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Image,\r\n} from 'framework-ui-components';\r\nimport { ConfirmModal } from 'framework-ui-components/Components/V2';\r\nimport dangerSvg from '../../../Content/images/danger.svg';\r\nimport infoSvg from '../../../Content/images/info.svg';\r\n\r\nconst Confirm = ({\r\n dangerous, ...props\r\n}) => (\r\n \r\n )}\r\n initialPos={{ x: 'auto', y: 200 }}\r\n {...props}\r\n />\r\n);\r\n\r\nConfirm.propTypes = {\r\n dangerous: PropTypes.bool,\r\n};\r\n\r\nConfirm.defaultProps = {\r\n dangerous: false,\r\n};\r\n\r\nexport default Confirm;\r\n","import React, { Component, Fragment } from 'react';\r\nimport { StatoDichiarazione, TipoDichiarazione } from 'enums';\r\nimport {\r\n Spinner,\r\n Formatter,\r\n OptionDropdown,\r\n ODataTable,\r\n PopOver,\r\n Highlighter,\r\n} from 'framework-ui-components';\r\nimport SuccessoIcon from 'framework-ui-components/Components/Icons/SuccessoIcon';\r\nimport { MiniPanel } from 'framework-ui-components/Components/V2';\r\nimport { cercaDichiarazioni } from 'apis/assegnoNucleoFamiliareApi';\r\nimport ModaleEsitiInps from './ModaleEsitiInps';\r\nimport Confirm from '../../components/Confirm';\r\n\r\nString.prototype.capitalize = function () {\r\n return this.toLowerCase().replace(/\\b\\w/g, l => l.toUpperCase());\r\n}\r\n\r\nclass RigaDichiarazione extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n working: false,\r\n duplicatoGiaPresente: false,\r\n esitoInvioINPS: null,\r\n modaleTrasmissioneAdEpasa: false,\r\n modaleEliminaANF: false,\r\n };\r\n }\r\n\r\n componentWillReceiveProps({ item }) {\r\n this.aggiornaStato({ working: this.state.working && this.state.item == item });\r\n }\r\n\r\n dichiarazioneModificabile(dichiarazione) {\r\n const { additionalRowData: { servizioAttivo } } = this.props;\r\n return servizioAttivo && dichiarazione.Stato === StatoDichiarazione.InLavorazione;\r\n }\r\n\r\n chiudiModaleEsitiInps() {\r\n this.setState({ mostraEsitiInps: false });\r\n }\r\n\r\n dichiarazioneStampabile() {\r\n return (\r\n this.props.item.Stato == StatoDichiarazione.InLavorazione\r\n || this.props.item.Stato == StatoDichiarazione.Completa\r\n || this.props.item.Stato == StatoDichiarazione.TrasmessaEPASA\r\n || this.props.item.Stato == StatoDichiarazione.InviataINPS\r\n || this.props.item.Stato == StatoDichiarazione.AccoltaINPS\r\n );\r\n }\r\n\r\n dichiarazioneImpostabileInLavorazione() {\r\n return (\r\n this.props.item.Stato !== StatoDichiarazione.InLavorazione\r\n && this.props.item.Stato !== StatoDichiarazione.TrasmessaEPASA\r\n && this.props.item.Stato !== StatoDichiarazione.InviataINPS\r\n && this.props.item.Stato !== StatoDichiarazione.RifiutataINPS\r\n && this.props.item.Stato !== StatoDichiarazione.ReiezioneINPS\r\n && this.props.item.Stato !== StatoDichiarazione.ReiezioneINPS\r\n && this.props.item.Stato !== StatoDichiarazione.AccoltaINPS\r\n );\r\n }\r\n\r\n dichiarazioneImpostabileCompleta() {\r\n return (\r\n this.props.item.Stato !== StatoDichiarazione.Completa\r\n && !this.props.item.HaErrori\r\n && this.props.item.Stato !== StatoDichiarazione.TrasmessaEPASA\r\n && this.props.item.Stato !== StatoDichiarazione.ScartataEPASA\r\n && this.props.item.Stato !== StatoDichiarazione.InviataINPS\r\n && this.props.item.Stato !== StatoDichiarazione.RifiutataINPS\r\n && this.props.item.Stato !== StatoDichiarazione.ReiezioneINPS\r\n && this.props.item.Stato !== StatoDichiarazione.AccoltaINPS\r\n );\r\n }\r\n\r\n dichiarazioneInviabileAdEPASA() {\r\n return (\r\n this.props.item.Stato === StatoDichiarazione.Completa\r\n || this.props.item.Stato === StatoDichiarazione.Stampata\r\n );\r\n }\r\n\r\n dichiarazioneScaricabileAdEPASA() {\r\n return (\r\n this.props.item.Stato === StatoDichiarazione.Completa\r\n || this.props.item.Stato === StatoDichiarazione.InLavorazione\r\n );\r\n }\r\n\r\n dichiarazioneClonabile() {\r\n return this.props.item.Stato === StatoDichiarazione.ReiezioneINPS;\r\n }\r\n\r\n esitoInvioINPSVisualizzabile = () => (\r\n this.props.item.Stato == StatoDichiarazione.InviataINPS\r\n || this.props.item.Stato == StatoDichiarazione.RifiutataINPS\r\n || this.props.item.Stato == StatoDichiarazione.ReiezioneINPS\r\n || this.props.item.Stato == StatoDichiarazione.AccoltaINPS\r\n );\r\n\r\n variazioneCreabile() {\r\n return this.props.item.Tipo == TipoDichiarazione.Ordinaria;\r\n }\r\n\r\n impostaStatoInLavorazione() {\r\n this.props.additionalRowData.avviaImpostaStatoInLavorazione([this.props.item.IdDichiarazione]);\r\n }\r\n\r\n impostaStatoCompleta() {\r\n this.props.additionalRowData.avviaImpostaStatoCompleta([this.props.item.IdDichiarazione]);\r\n }\r\n\r\n apriModaleTrasmissioneAdEpasa() {\r\n this.setState({ modaleTrasmissioneAdEpasa: true });\r\n }\r\n\r\n confermaModaleTrasmissioneAdEpasa() {\r\n const { additionalRowData, item } = this.props;\r\n additionalRowData.avviaTrasmissioneEPASA([item.IdDichiarazione]);\r\n this.chiudiModaleTrasmissioneAdEpasa();\r\n }\r\n\r\n chiudiModaleTrasmissioneAdEpasa() {\r\n this.setState({ modaleTrasmissioneAdEpasa: false });\r\n }\r\n\r\n // Scaricamento delega da Epasa\r\n scaricaDelegaPatronato(dichiarante) {\r\n this.props.additionalRowData.ottieniDelegaPatronatoEPASA(\r\n [this.props.item.IdDichiarazione],\r\n dichiarante,\r\n );\r\n }\r\n\r\n // Eliminazione domanda ANF\r\n apriModaleEliminaANF() {\r\n this.setState({ modaleEliminaANF: true });\r\n }\r\n\r\n chiudiModaleEliminaANF() {\r\n this.setState({ modaleEliminaANF: false });\r\n }\r\n\r\n confermaModaleEliminaANF() {\r\n this.eliminaANF();\r\n this.chiudiModaleEliminaANF();\r\n }\r\n\r\n eliminaANF() {\r\n const { IdDichiarazione: idDichiarazione } = this.props.item;\r\n this.aggiornaStato({ working: true })\r\n .then(() => this.props.additionalRowData.eliminaDichiarazione(idDichiarazione))\r\n .catch(() => this.aggiornaStato({ working: false }));\r\n }\r\n\r\n // Duplicazione domanda AUU precedntemente reietta da INPS\r\n duplicaDomandaANF() {\r\n const {\r\n IdDichiarazione: idDichiarazione, CodiceFiscale, CodiceUfficio, Tipo,\r\n } = this.props.item;\r\n this.aggiornaStato({ working: true })\r\n .then(() => this.props.additionalRowData.duplicaDomandaANF(idDichiarazione, CodiceFiscale, CodiceUfficio, Tipo))\r\n .catch(() => this.aggiornaStato({ working: false }));\r\n }\r\n\r\n\r\n creaVariazione() {\r\n const {\r\n CodiceFiscale: codiceFiscale,\r\n Cognome: cognome,\r\n Nome: nome, \r\n } = this.props.item;\r\n\r\n this.props.additionalRowData.avviaCreazioneDichiarazioneVariazione({\r\n codiceFiscale,\r\n cognome,\r\n nome,\r\n });\r\n }\r\n\r\n aggiornaStato(data = {}) {\r\n return new Promise(resolve => this.setState(data, () => resolve(data)));\r\n }\r\n\r\n apriDichiarazione() {\r\n this.props.additionalRowData.apriDichiarazione(\r\n this.props.item.IdDichiarazione,\r\n this.dichiarazioneModificabile(this.props.item),\r\n );\r\n }\r\n\r\n stampaDichiarazione() {\r\n this.props.additionalRowData.avviaStampa([this.props.item.IdDichiarazione]);\r\n }\r\n\r\n verificaStatoDichiarazioni() {\r\n if (this.dichiarazioneClonabile()) {\r\n const {\r\n CodiceUfficio, Anno, CodiceFiscale, Tipo,\r\n } = this.props.item;\r\n cercaDichiarazioni(CodiceUfficio, 0, CodiceFiscale, Anno)\r\n .then(({ Items }) => this.setState({ duplicatoGiaPresente: Items.some(x => x.Stato !== StatoDichiarazione.ReiezioneINPS && x.Anno == Anno && x.Tipo === Tipo) }))\r\n .catch(() => this.setState({ duplicatoGiaPresente: true }));\r\n }\r\n }\r\n\r\n render() {\r\n const {\r\n item,\r\n additionalRowData: { termine, servizioAttivo },\r\n } = this.props;\r\n const {\r\n duplicatoGiaPresente,\r\n mostraEsitiInps,\r\n modaleTrasmissioneAdEpasa,\r\n modaleEliminaANF,\r\n } = this.state;\r\n\r\n\r\n const annoCampagna = 2020;\r\n \r\n let iconaTrattore = null;\r\n if (\r\n item.DatiAddizionali\r\n && item.DatiAddizionali.DipendenteAgricolo\r\n && item.DatiAddizionali.DipendenteAgricolo == 'true'\r\n ) {\r\n iconaTrattore = (\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n this.apriDichiarazione()}>\r\n evt.stopPropagation()}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {item.DatiAddizionali && item.DatiAddizionali.Azienda}\r\n {StatoDichiarazione.stringify(item.Stato, item.HaErrori)}\r\n {TipoDichiarazione.stringify(item.Tipo)}\r\n {iconaTrattore}\r\n {item.DatiAddizionali && item.Anno}\r\n {item.DatiAddizionali && item.DatiAddizionali.DataInizio}\r\n {item.DatiAddizionali && item.DatiAddizionali.DataFine ? item.DatiAddizionali.DataFine : \"30/06/\"+(item.Anno + 1)}\r\n \r\n {item.DatiAddizionali && item.DatiAddizionali.Stampata === 'True' && (\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n evt.stopPropagation()}>\r\n {this.state.working ? (\r\n )\r\n : (\r\n this.verificaStatoDichiarazioni()}>\r\n this.apriDichiarazione()}>\r\n {servizioAttivo && this.dichiarazioneModificabile(item) ? 'Modifica' : 'Visualizza'}\r\n \r\n {servizioAttivo && this.dichiarazioneStampabile(item) && (\r\n this.stampaDichiarazione()}>\r\n Stampa\r\n \r\n )}\r\n {servizioAttivo && this.dichiarazioneImpostabileInLavorazione(item) && (\r\n this.impostaStatoInLavorazione()}>\r\n Imposta come \"In Lavorazione\"\r\n \r\n )}\r\n {servizioAttivo && this.dichiarazioneImpostabileCompleta(item) && (\r\n this.impostaStatoCompleta()}>\r\n Imposta come \"Completa\"\r\n \r\n )}\r\n {servizioAttivo && this.variazioneCreabile(item) && item.Anno == annoCampagna && (\r\n this.creaVariazione()}>\r\n Crea variazione\r\n \r\n )}\r\n {servizioAttivo && this.dichiarazioneInviabileAdEPASA(item) && (\r\n this.apriModaleTrasmissioneAdEpasa()}>\r\n Invia a Patronato EPASA\r\n \r\n )}\r\n {servizioAttivo && this.dichiarazioneScaricabileAdEPASA(item) && (\r\n this.scaricaDelegaPatronato(item.Dichiarante)}\r\n >\r\n Scarica delega e liberatoria del Patronato EPASA\r\n \r\n )}\r\n {servizioAttivo && this.esitoInvioINPSVisualizzabile() && (\r\n this.setState({ mostraEsitiInps: true })}\r\n >\r\n Visualizza esiti INPS\r\n \r\n )}\r\n\r\n {servizioAttivo && this.dichiarazioneClonabile() && (\r\n this.duplicaDomandaANF()}\r\n disabled={duplicatoGiaPresente}\r\n showInfo={duplicatoGiaPresente}\r\n infoContent=\"Questa opzione è possibile solo se, per la stessa annualità, non ci sono altre dichiarazioni in stato diverso da 'Reiezione Inps'\"\r\n >\r\n Duplica in un nuovo Anf\r\n \r\n )}\r\n {servizioAttivo && this.dichiarazioneModificabile(item) && (\r\n this.apriModaleEliminaANF()}>\r\n Elimina\r\n \r\n )}\r\n \r\n )}\r\n \r\n \r\n {\r\n mostraEsitiInps && (\r\n this.chiudiModaleEsitiInps()}\r\n idDichiarazione={item.IdDichiarazione}\r\n />\r\n )\r\n }\r\n\r\n \r\n
    \r\n Una volta confermato l’invio della domanda di assegno nucleo familiare al patronato EPASA, non potrai annullarlo. Vuoi procedere?\r\n
    \r\n

    \r\n
    \r\n \r\n
    \r\n \r\n )}\r\n primaryLabel=\"Non inviare\"\r\n onPrimaryClick={() => this.chiudiModaleTrasmissioneAdEpasa()}\r\n secondaryLabel=\"Invia\"\r\n onSecondaryClick={() => this.confermaModaleTrasmissioneAdEpasa()}\r\n />\r\n\r\n \r\n Vuoi eliminare la domanda di {item.Dichiarante.capitalize()}?\r\n \r\n )}\r\n primaryLabel=\"Non eliminare\"\r\n onPrimaryClick={() => this.chiudiModaleEliminaANF()}\r\n secondaryLabel=\"Elimina\"\r\n onSecondaryClick={() => this.confermaModaleEliminaANF()}\r\n dangerous\r\n />\r\n\r\n\r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default RigaDichiarazione;\r\n","import React, { Component } from 'react';\r\nimport { ODataTable, FilterTypes, QueryOptions } from 'framework-ui-components';\r\nimport { StatiRicerca } from 'enums';\r\n\r\nimport RigaDichiarazione from './RigaDichiarazione';\r\n\r\nclass ElencoDichiarazioni extends Component {\r\n filtriStati = () => {\r\n const { stato } = this.props;\r\n\r\n let filters = [];\r\n\r\n if (stato == StatiRicerca.TUTTE || stato == 20) {\r\n filters = filters.concat([\r\n { description: 'In Lavorazione / Errate', value: 20 },\r\n ]);\r\n }\r\n if (stato == StatiRicerca.TUTTE || stato == 30) {\r\n filters = filters.concat([\r\n { description: 'Completa', value: 30 },\r\n { description: 'Stampata', value: 115 },\r\n ]);\r\n }\r\n if (stato == StatiRicerca.TUTTE || stato == StatiRicerca.TRASMESSE_EPASA) {\r\n filters = filters.concat([\r\n { description: 'In lavorazione EPASA', value: 120 },\r\n { description: 'Inviata INPS', value: 145 },\r\n { description: 'Accolta INPS', value: 135 },\r\n ]);\r\n }\r\n if (stato == StatiRicerca.TUTTE || stato == StatiRicerca.SCARTATA_EPASA) {\r\n filters = filters.concat([\r\n { description: 'Scartata EPASA', value: 130 },\r\n { description: 'Rifiutata INPS', value: 140 },\r\n { description: 'Reiezione INPS', value: 150 },\r\n ]);\r\n }\r\n return filters;\r\n };\r\n\r\n render() {\r\n const {\r\n urlRicerca, aggiornaDichiarazioniSelezionate, annoCampagna, ...rowProps\r\n } = this.props;\r\n\r\n const listastati = this.filtriStati();\r\n\r\n // anni filtro: dalla data inizio ad oggi\r\n const anni = [];\r\n for (let i = annoCampagna; i >= 2015; i--) {\r\n anni.push({ description: `${i}`, value: `${i}` });\r\n }\r\n\r\n const filtri = [\r\n {\r\n propertyName: 'Stato', descriptions: 'Stato', component: FilterTypes.SELECT, query: QueryOptions.EQUAL, options: listastati,\r\n },\r\n {\r\n propertyName: 'Tipo', descriptions: 'Tipo', component: FilterTypes.SELECT, query: QueryOptions.EQUAL, options: [{ description: 'Ordinario', value: '0' }, { description: 'Variazione', value: '19' }],\r\n },\r\n {\r\n propertyName: 'Anno', descriptions: 'Anno', component: FilterTypes.SELECT, query: QueryOptions.EQUAL, options: anni,\r\n },\r\n ];\r\n\r\n return (\r\n \r\n Richiedente\r\n CF richiedente\r\n Azienda\r\n Stato\r\n Tipo\r\n D.Agr.\r\n Anno\r\n Periodo Dal\r\n Periodo Al\r\n Stampato\r\n Ultima modifica\r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default ElencoDichiarazioni;\r\n","import React, { Component, Fragment } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Grid, Input } from 'framework-ui-components';\r\nimport { Button } from 'framework-ui-components/Components/V2';\r\n\r\nimport DeleteIcon from 'framework-ui-components/Components/Icons/DeleteIcon';\r\nimport SearchIcon from 'framework-ui-components/Components/Icons/SearchIcon';\r\n\r\nclass InputRicerca extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n searchTerm: '',\r\n };\r\n }\r\n\r\n onChangeSearch = (event) => {\r\n const testoRicerca = event.target.value.trim();\r\n\r\n if (testoRicerca === '') {\r\n this.setState({ searchTerm: testoRicerca }, () => this.clickCerca());\r\n } else {\r\n this.setState({ searchTerm: testoRicerca });\r\n }\r\n }\r\n\r\n clickCerca = () => {\r\n const { searchTerm } = this.state;\r\n const { onClickCerca } = this.props;\r\n\r\n onClickCerca && onClickCerca(searchTerm);\r\n }\r\n\r\n onSearchKeyDown = (event) => {\r\n if (event.keyCode === 13) {\r\n this.clickCerca();\r\n }\r\n }\r\n\r\n svuotaRicerca = (reload) => {\r\n this.setState({ searchTerm: '' }, () => reload && this.clickCerca());\r\n if (this.refInput.formattedField.current) this.refInput.formattedField.current.value = '';\r\n if (this.refInput.unformattedField.current) this.refInput.unformattedField.current.value = '';\r\n }\r\n\r\n render() {\r\n const { buttonText, title } = this.props;\r\n const { searchTerm } = this.state;\r\n\r\n return (\r\n \r\n \r\n \r\n this.refInput = r}\r\n onChange={this.onChangeSearch}\r\n onKeyDown={this.onSearchKeyDown}\r\n />\r\n {searchTerm\r\n && (\r\n this.svuotaRicerca(true)}\r\n className=\"deleteRicerca__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\r\nInputRicerca.propTypes = {\r\n buttonText: PropTypes.string,\r\n onClickCerca: PropTypes.func.isRequired,\r\n title: PropTypes.string,\r\n};\r\n\r\nInputRicerca.defaultProps = {\r\n title: 'Cerca domande per nome, cognome o codice fiscale',\r\n buttonText: 'Cerca',\r\n};\r\n\r\nexport default InputRicerca;\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 Button from '../Button/Button';\r\nimport DownIcon from '../../Icons/DownIcon';\r\nimport UpIcon from '../../Icons/UpIcon';\r\nimport DropdownList from '../DropdownList/DropdownList';\r\nimport useMenuOpenState from '../Hooks/useMenuOpenState';\r\nimport useChildrenWithText from '../Hooks/useChildrenWithText';\r\n\r\nconst cssBlock = 'v2-split-button';\r\n\r\n/**\r\nBottone che offre le stesse possibilità di un `Button`,\r\nma permette anche di scegliere un'azione che appartiene alla stessa area semantica di quella principale partendo da un set di alternative.\r\n\r\nL'elemento `SplitButton.DropdownList`, presente nei children, riporta la lista dei bottoni che verranno aggiunti al DropDown.\r\n */\r\nconst SplitButton = (props) => {\r\n const {\r\n emphasis, primary,\r\n running, disabled, onClick,\r\n children, className,\r\n } = props;\r\n const [dropDownItems, buttonChildren] = DropdownList.extractDropDownList(children);\r\n const childrenWithText = useChildrenWithText(buttonChildren);\r\n const { open, onOpen, onClose } = useMenuOpenState();\r\n\r\n const classes = cns(\r\n cssBlock,\r\n `${cssBlock}--${emphasis.toLowerCase()}`,\r\n {\r\n [`${cssBlock}--primary`]: primary,\r\n [`${cssBlock}--disabled`]: disabled,\r\n },\r\n className,\r\n );\r\n\r\n return (\r\n
    \r\n \r\n {childrenWithText}\r\n \r\n (open ? onClose() : onOpen())}\r\n >\r\n {open ? : }\r\n \r\n {open && dropDownItems}\r\n
    \r\n );\r\n};\r\n\r\nSplitButton.Emphasis = Button.Emphasis;\r\n\r\nSplitButton.propTypes = {\r\n /** Enfasi del bottone */\r\n emphasis: PropTypes.oneOf([SplitButton.Emphasis.LOW, SplitButton.Emphasis.MEDIUM, SplitButton.Emphasis.HIGH]),\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 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 /** Children del componente. I children di tipo `SplitButton.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\r\nSplitButton.defaultProps = {\r\n emphasis: SplitButton.Emphasis.LOW,\r\n primary: false,\r\n disabled: false,\r\n running: undefined,\r\n onClick: NOOP,\r\n children: undefined,\r\n className: undefined,\r\n};\r\n\r\nSplitButton.DropdownList = DropdownList;\r\n\r\nexport default SplitButton;\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","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Button, SplitButton } from 'framework-ui-components/Components/V2';\r\nimport AddIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/AddIcon';\r\n\r\nconst AzioniCreaDomanda = (props) => {\r\n const {\r\n servizioAttivo,\r\n avviaCreazioneDichiarazioneOrdinaria,\r\n avviaCreazioneDichiarazioneVariazione,\r\n avviaCreazioneDichiarazioneArretrata,\r\n annoCampagna,\r\n dichiarazioniSelezionate = [],\r\n } = props;\r\n return servizioAttivo\r\n && !dichiarazioniSelezionate.length\r\n && (\r\n avviaCreazioneDichiarazioneOrdinaria()}>\r\n Crea domanda {annoCampagna}\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nAzioniCreaDomanda.propTypes = {\r\n servizioAttivo: PropTypes.bool.isRequired,\r\n avviaCreazioneDichiarazioneOrdinaria: PropTypes.func.isRequired,\r\n avviaCreazioneDichiarazioneVariazione: PropTypes.func.isRequired,\r\n avviaCreazioneDichiarazioneArretrata: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default AzioniCreaDomanda;\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","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { InfoTooltip } from 'framework-ui-components';\r\nimport { Button } from 'framework-ui-components/Components/V2';\r\nimport StatoDichiarazione from 'enums/StatoDichiarazione';\r\n\r\nconst AzioneCambioStato = (props) => {\r\n const {\r\n dichiarazioniSelezionate,\r\n statoDestinazione,\r\n apriModaleCambioStato,\r\n } = props;\r\n\r\n const nomeStatoDestinazione = StatoDichiarazione.stringify(statoDestinazione);\r\n\r\n const filtraDichiarazioniSelezionate = (dichiarazioniSelezionate, statoDestinazione) => {\r\n switch (statoDestinazione) {\r\n case StatoDichiarazione.InLavorazione:\r\n return dichiarazioniSelezionate.filter((d) => d.Stato != StatoDichiarazione.InLavorazione\r\n && d.Stato != StatoDichiarazione.RifiutataINPS);\r\n case StatoDichiarazione.Completa:\r\n return dichiarazioniSelezionate.filter((d) => d.Stato != StatoDichiarazione.Completa\r\n && !d.HaErrori);\r\n default:\r\n return [];\r\n }\r\n };\r\n\r\n const abilitaSpostamentoStato = (dichiarazioniSelezionate, statoDestinazione) => {\r\n const dichiarazioniSpostabili = filtraDichiarazioniSelezionate(dichiarazioniSelezionate, statoDestinazione);\r\n let messaggio = '';\r\n\r\n if (dichiarazioniSpostabili.length == 0) {\r\n messaggio = dichiarazioniSelezionate.length == 1\r\n ? `La dichiarazione selezionata non e' spostabile nello stato \\\"${nomeStatoDestinazione}\\\"`\r\n : `Nessuna delle dichiarazioni selezionate e' spostabile nello stato \\\"${nomeStatoDestinazione}\\\"`;\r\n } else if (dichiarazioniSpostabili.length < dichiarazioniSelezionate.length) {\r\n messaggio = `Alcune dichiarazioni non possono essere spostate nello stato \\\"${nomeStatoDestinazione}\\\"`;\r\n }\r\n\r\n return {\r\n disabled: dichiarazioniSpostabili.length == 0,\r\n showInfo: messaggio.length > 0,\r\n infoContent: messaggio,\r\n };\r\n };\r\n\r\n const {\r\n disabled,\r\n showInfo,\r\n infoContent,\r\n } = abilitaSpostamentoStato(dichiarazioniSelezionate, statoDestinazione);\r\n\r\n return (\r\n apriModaleCambioStato()}\r\n >\r\n {`Imposta come \"${nomeStatoDestinazione}\"`}\r\n {showInfo && (\r\n \r\n {infoContent}\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nAzioneCambioStato.propTypes = {\r\n dichiarazioniSelezionate: PropTypes.array.isRequired,\r\n statoDestinazione: PropTypes.number.isRequired,\r\n apriModaleCambioStato: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default AzioneCambioStato;\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 '0 0 24 24',\r\n 'PrintIcon',\r\n);\r\n","import React from 'react';\r\nimport { InfoTooltip } from 'framework-ui-components';\r\n\r\nconst InfoAzioneDisabilitata = () => (\r\n \r\n Seleziona le dichiarazioni per utilizzare questa funzione\r\n \r\n);\r\n\r\nexport default InfoAzioneDisabilitata;\r\n","import React from 'react';\r\nimport { Button } from 'framework-ui-components/Components/V2';\r\nimport PrintIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/PrintIcon';\r\nimport InfoAzioneDisabilitata from './infoAzioneDisabilitata';\r\n\r\nconst StampaDichiarazioni = ({ primary = false, dichiarazioniSelezionate = [], avviaStampa }) => {\r\n const nessunaSelezione = dichiarazioniSelezionate.length === 0;\r\n\r\n return (primary ? !nessunaSelezione : nessunaSelezione) && (\r\n \r\n );\r\n};\r\n\r\nexport default StampaDichiarazioni;\r\n","import React, { Fragment, useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { DropdownButton, Button } from 'framework-ui-components/Components/V2';\r\nimport MoreVertIcon from 'framework-ui-components/Components/GoogleIcons/Outlined/MoreVertIcon';\r\nimport StatoDichiarazione from 'enums/StatoDichiarazione';\r\nimport AzioneCambioStato from './AzioneCambioStato';\r\nimport Confirm from '../../../components/Confirm';\r\nimport StampaDichiarazioni from './StampaDichiarazioni';\r\n\r\nconst AltreAzioni = (props) => {\r\n const {\r\n servizioAttivo,\r\n dichiarazioniSelezionate,\r\n annoCampagna,\r\n avviaCreazioneDichiarazioneOrdinaria,\r\n } = props;\r\n\r\n const [modaleCambioStatoCompletaAperta, impostaModaleCambioStatoCompletaAperta] = useState(false);\r\n const [modaleCambioStatoInLavorazioneAperta, impostaModaleCambioStatoInLavorazioneAperta] = useState(false);\r\n\r\n return servizioAttivo\r\n && (\r\n \r\n \r\n \r\n Altre azioni\r\n \r\n impostaModaleCambioStatoInLavorazioneAperta(true)}\r\n {...props}\r\n />\r\n impostaModaleCambioStatoCompletaAperta(true)}\r\n {...props}\r\n />\r\n \r\n\r\n {dichiarazioniSelezionate.length > 0 && (\r\n \r\n )}\r\n\r\n \r\n \r\n \r\n Questa operazione sposterà le domande selezionate nello stato \"In lavorazione\".
    \r\n Vuoi cambiare gli stati?\r\n \r\n ) : (\r\n
    \r\n Questa operazione sposterà la domanda di {dichiarazioniSelezionate[0].Cognome} {dichiarazioniSelezionate[0].Nome} dallo stato \"{StatoDichiarazione.stringify(dichiarazioniSelezionate[0].Stato)}\" allo stato \"In lavorazione\".
    \r\n Vuoi cambiare lo stato?\r\n
    \r\n )}\r\n primaryLabel=\"CAMBIA STATO\"\r\n onSecondaryClick={() => impostaModaleCambioStatoInLavorazioneAperta(false)}\r\n secondaryLabel=\"NON CAMBIARE\"\r\n onPrimaryClick={() => avviaImpostaStatoInLavorazione(\r\n filtraDichiarazioniSelezionate(\r\n dichiarazioniSelezionate,\r\n statoDestinazione,\r\n )\r\n .map((x) => x.IdDichiarazione),\r\n )}\r\n />\r\n \r\n Questa operazione sposterà le domande selezionate nello stato \"Completa\".
    \r\n Vuoi cambiare gli stati?\r\n \r\n ) : (\r\n
    \r\n Questa operazione sposterà la domanda di {dichiarazioniSelezionate[0].Cognome} {dichiarazioniSelezionate[0].Nome} dallo stato \"{StatoDichiarazione.stringify(dichiarazioniSelezionate[0].Stato)}\" allo stato \"Completa\".
    \r\n Vuoi cambiare lo stato?\r\n
    \r\n )}\r\n primaryLabel=\"CAMBIA STATO\"\r\n onSecondaryClick={() => impostaModaleCambioStatoCompletaAperta(false)}\r\n secondaryLabel=\"NON CAMBIARE\"\r\n onPrimaryClick={() => avviaImpostaStatoCompleta(\r\n filtraDichiarazioniSelezionate(\r\n dichiarazioniSelezionate,\r\n statoDestinazione,\r\n )\r\n .map((x) => x.IdDichiarazione),\r\n )}\r\n />\r\n
    \r\n );\r\n};\r\n\r\nAltreAzioni.propTypes = {\r\n servizioAttivo: PropTypes.bool.isRequired,\r\n dichiarazioniSelezionate: PropTypes.any.isRequired,\r\n};\r\n\r\nexport default AltreAzioni;\r\n","import React from 'react';\r\nimport { ButtonGroup } from 'framework-ui-components/Components/V2';\r\nimport AzioniCreaDomanda from './AzioniCreaDomanda';\r\nimport AltreAzioni from './AltreAzioni';\r\nimport StampaDichiarazioni from './StampaDichiarazioni';\r\n\r\nconst AzioniAssegnoNucleoFamiliare = (props) => (\r\n \r\n \r\n \r\n \r\n \r\n);\r\n\r\nexport default AzioniAssegnoNucleoFamiliare;\r\n","import React from 'react';\r\nimport { Grid } from 'framework-ui-components';\r\nimport InputRicerca from './InputRicerca';\r\nimport AzioniAssegnoNucleoFamiliare from './AzioniAssegnoNucleoFamiliare';\r\n\r\nconst BarraAzioni = ({ ricercaSemplice, avviaRicerca, ...azioni }) => (\r\n \r\n \r\n avviaRicerca({ termine })} />\r\n \r\n \r\n \r\n \r\n \r\n);\r\n\r\nexport default BarraAzioni;\r\n","import React from 'react';\r\nimport { Card, Panel } from 'framework-ui-components';\r\nimport PageWrapperV2 from './PageWrapperV2';\r\nimport FiltriRicerca from './FiltriRicerca';\r\nimport ElencoDichiarazioni from './ElencoDichiarazioni';\r\nimport BarraAzioni from './BarraAzioni';\r\n\r\nexport default (params) => (\r\n \r\n {\r\n params.accessoNonConsentito ? (\r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n

    Il servizio Assegni Nucleo Familiare non è attivo

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n ) : (\r\n \r\n {\r\n !params.servizioAttivo\r\n && !params.accessoNonConsentito\r\n && Il servizio non è attivo. L"accesso è permesso solo in consultazione\r\n }\r\n \r\n \r\n \r\n \r\n )\r\n }\r\n \r\n);\r\n","/*\r\n * Funzione di appoggio per la gestione delle date\r\n */\r\n\r\n// converte una data nel formato gg/mm/aaaa per\r\n// la rappresentazione a video\r\nfunction convertDateToText(inputFormat) {\r\n function pad(s) { return (s < 10) ? `0${s}` : s; }\r\n const d = new Date(inputFormat);\r\n return [pad(d.getDate()), pad(d.getMonth() + 1), d.getFullYear()].join('/');\r\n}\r\n\r\n// prende una data, rimuove tutta la parte ora/timezone\r\n// e la converte in utc per facilitare il confronto\r\n// tra date senza considerare ora e timezone\r\nfunction convertDateToUtc(data) {\r\n // leggendo le date tramite get... senza utc, otteniamo esattamente\r\n // la parte numerica senza aggiustamente dovuto al timezone\r\n return Date.UTC(data.getFullYear(), data.getMonth(), data.getDate());\r\n}\r\n\r\n// controlla se la data di inizio validità rispetta le regole di convalida\r\nexport const isDataInizioValiditaValida = (minDataCanonica, maxDataCanonica, dataInizio) => {\r\n const validations = validaDataInizioValidita(minDataCanonica, maxDataCanonica, dataInizio);\r\n return validations && validations.length == 0;\r\n};\r\n\r\n// controlla se la data di fine validità rispetta le regole di convalida\r\nexport const isDataFineValiditaValida = (minDataCanonica, maxDataCanonica, dataInizio, dataFine) => {\r\n const validations = validaDataFineValidita(minDataCanonica, maxDataCanonica, dataInizio, dataFine);\r\n return validations && validations.length == 0;\r\n};\r\n\r\n// imposta le regole di validazione di un datepicker in cui inserire la data di inizio validità\r\n// in base allo stato, attiva le regole di convalida opportune\r\n// in modo cha appaia sempre e solo max 1 messaggio (quello più opportuno)\r\n// in caso non ci siano errori, non deve\r\nexport const validaDataInizioValidita = (minDataCanonica, maxDataCanonica, dataInizio) => {\r\n let validations = [];\r\n\r\n if (!minDataCanonica || !maxDataCanonica || !dataInizio) {\r\n validations.push('required');\r\n } else {\r\n const currentDataInizio = new Date(dataInizio);\r\n const currentMinDataCanonica = new Date(minDataCanonica);\r\n const currentMaxDataCanonica = new Date(maxDataCanonica);\r\n\r\n // non può superare la data max canonica per l'anno anf\r\n if (convertDateToUtc(currentDataInizio) > convertDateToUtc(currentMaxDataCanonica)) {\r\n validations = ['required', {\r\n rule: 'Range', minValue: currentMinDataCanonica, maxValue: currentMaxDataCanonica, message: `Data successiva a ${convertDateToText(currentMaxDataCanonica)}`,\r\n }];\r\n } else if (convertDateToUtc(currentDataInizio) < convertDateToUtc(currentMinDataCanonica)) {\r\n // non può essere inferiore alla data min canonica per l'anno anf\r\n validations = ['required', {\r\n rule: 'Range', minValue: currentMinDataCanonica, maxValue: currentMaxDataCanonica, message: `Data antecedente a ${convertDateToText(currentMinDataCanonica)}`,\r\n }];\r\n // } else {\r\n // // sempre obbligatorio\r\n // validations.push('required');\r\n }\r\n // il controllo dataInizio < dataFine lo facciamo solo su 1 campo: quello di fine\r\n }\r\n\r\n return validations;\r\n};\r\n\r\n// imposta le regole di validazione di un datepicker in cui inserire la data di fine validità\r\n// in base allo stato, attiva le regole di convalida opportune\r\n// in modo cha appaia sempre e solo max 1 messaggio (quello più opportuno)\r\nexport const validaDataFineValidita = (minDataCanonica, maxDataCanonica, dataInizio, dataFine) => {\r\n let validations = [];\r\n\r\n if (!maxDataCanonica || !dataFine) {\r\n validations.push('required');\r\n } else {\r\n const currentDataFine = new Date(dataFine);\r\n const currentMaxDataCanonica = new Date(maxDataCanonica);\r\n const currentMinDataCanonica = new Date(minDataCanonica);\r\n\r\n // non può superare la data max canonica per l'anno anf (a prescidere che ci sia o meno la data minima!)\r\n if (convertDateToUtc(currentDataFine) > convertDateToUtc(currentMaxDataCanonica)) {\r\n validations = ['required', {\r\n rule: 'Range', minValue: currentMinDataCanonica, maxValue: currentMaxDataCanonica, message: `Data successiva a ${convertDateToText(currentMaxDataCanonica)}`,\r\n }];\r\n } else {\r\n // controllo data minima\r\n if (!minDataCanonica || !dataInizio) {\r\n validations.push('required');\r\n } else {\r\n const currentDataInizio = new Date(dataInizio);\r\n if (dataInizio && convertDateToUtc(currentDataFine) < convertDateToUtc(currentDataInizio)) {\r\n // non può essere inferiore alla data minima di validità\r\n // di conseguenza non serve il controllo sulla data minima canonica\r\n validations = ['required', {\r\n rule: 'Range', minValue: currentDataInizio, maxValue: currentMaxDataCanonica, message: 'Data antecedente all\\'inizio validità',\r\n }];\r\n }\r\n }\r\n }\r\n };\r\n return validations;\r\n}","import React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Form, Grid, Input, Modal, Panel, DatePicker, \r\n} from 'framework-ui-components';\r\nimport { Button } from 'framework-ui-components/Components/V2';\r\nimport { SnackbarWrapper } from 'framework-ui-components/Components/Snackbar';\r\nimport { codiceFiscaleValido } from 'framework-ui-components/Components/Validation';\r\nimport { StatoDichiarazione } from '../../enums';\r\nimport * as webapi from '../../apis/assegnoNucleoFamiliareApi';\r\nimport { cercaAnagraficaInUfficio } from '../../apis/anagraficaApi';\r\nimport { \r\n validaDataInizioValidita, validaDataFineValidita, isDataInizioValiditaValida, isDataFineValiditaValida,\r\n} from './helpersDate';\r\n\r\nconst lableCrea = 'Crea';\r\n\r\nclass ModaleCreazioneOrdinario extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n commit: {\r\n label: lableCrea,\r\n },\r\n codiceFiscale: '',\r\n cognome: '',\r\n nome: '',\r\n dataInizio: `${props.annoCampagna}-07-01T00:00:00.000Z`,\r\n dataFine: `${props.annoCampagna + 1}-06-30T00:00:00.000Z`,\r\n idAnagrafica: null,\r\n minDataCanonica: `${props.annoCampagna}-07-01T00:00:00.000Z`,\r\n maxDataCanonica: `${props.annoCampagna + 1}-06-30T00:00:00.000Z`,\r\n esitoCreabilitaImpostato: false, // flag che indica se l'esito di creazione è stato impostato dalla funzione apposita\r\n conteggioSovrapposte: 0,\r\n };\r\n }\r\n\r\n componentDidUpdate(propsPrecedenti, statePrecedente, snapshot) {\r\n const { codiceUfficio, annoCampagna } = this.props;\r\n const {\r\n codiceFiscale, dataInizio, dataFine, cognome, idAnagrafica, esitoCreabilitaImpostato,\r\n } = this.state;\r\n\r\n const isCodiceFiscaleValido = codiceFiscale && codiceFiscaleValido(codiceFiscale);\r\n\r\n // se è stato modificato il codice fiscale e il codice è formalmente corretto\r\n // allora prova a decodificare l'anagrafica\r\n if (isCodiceFiscaleValido && codiceFiscale != statePrecedente.codiceFiscale) {\r\n this.aggiornaAnagrafica(codiceFiscale, codiceUfficio);\r\n } else if (cognome && (!codiceFiscale || !isCodiceFiscaleValido)) {\r\n // se non ci sono le condizioni per valutare l'anagrafica\r\n // ma il cognome è già valorizzato, allora lo pulisce\r\n this.pulisciAnagrafica();\r\n return;\r\n }\r\n\r\n // se i dati necessari per controllare la possibilità di creazione\r\n // sono stati inseriti e variati rispetto a prima...\r\n if (codiceFiscale && dataInizio && dataFine\r\n && (codiceFiscale != statePrecedente.codiceFiscale\r\n || dataInizio != statePrecedente.dataInizio\r\n || dataFine != statePrecedente.dataFine\r\n || idAnagrafica != statePrecedente.idAnagrafica)) {\r\n if (this.isDatiPerCreazioneValidi()) {\r\n // i dati sono corretti, verifica se la dichiarazione è creabile/modificabile\r\n this.verificaDichiarazioneCreabile(codiceFiscale, codiceUfficio, annoCampagna, dataInizio, dataFine);\r\n } else if (esitoCreabilitaImpostato) {\r\n // i dati base sono cambiati ma sono errati: pulisce l'eventuale\r\n // popolamento precedente\r\n this.pulisciEsitoVerificaDichiarazioneCreabile();\r\n }\r\n }\r\n }\r\n\r\n // controlla che i dati necessari per la chiamata alla verifica creazione\r\n // siano disponibili e formalmente corretti\r\n // (non tutti i dati testati da formValido sono necessari per il\r\n // controllo dichiarazione creabile)\r\n isDatiPerCreazioneValidi() {\r\n const {\r\n codiceFiscale, dataInizio, dataFine, minDataCanonica, maxDataCanonica,\r\n } = this.state;\r\n\r\n if (!(codiceFiscale && codiceFiscaleValido(codiceFiscale))) {\r\n return false;\r\n }\r\n\r\n if (!isDataInizioValiditaValida(minDataCanonica, maxDataCanonica, dataInizio)) {\r\n return false;\r\n }\r\n\r\n if (!isDataFineValiditaValida(minDataCanonica, maxDataCanonica, dataInizio, dataFine)) {\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n // resetta gli effetti di una chiamata a \"verificaDichiarazioneCreabile\"\r\n pulisciEsitoVerificaDichiarazioneCreabile() {\r\n this.setState({\r\n messaggi: [],\r\n creabile: false,\r\n modificabile: false,\r\n esisteReiezione: false,\r\n commit: {\r\n disabled: true,\r\n label: lableCrea,\r\n },\r\n esitoCreabilitaImpostato: false,\r\n conteggioSovrapposte: 0,\r\n });\r\n }\r\n\r\n // se il cf esiste già in anagrafica, recupera i dati anagrafici\r\n aggiornaAnagrafica(codiceFiscale = '', codiceUfficio) {\r\n cercaAnagraficaInUfficio(codiceFiscale, codiceUfficio)\r\n .then((res) => {\r\n if (res) {\r\n this.setState({\r\n idAnagrafica: res.IdAnagrafica,\r\n cognome: res.Cognome,\r\n nome: res.Nome,\r\n });\r\n } else {\r\n this.pulisciAnagrafica();\r\n }\r\n })\r\n .catch((ex) => {\r\n this.pulisciAnagrafica();\r\n });\r\n }\r\n\r\n // resetta gli efftti del recupero dati anagrafici\r\n pulisciAnagrafica() {\r\n this.setState({\r\n idAnagrafica: null,\r\n cognome: null,\r\n nome: null,\r\n });\r\n }\r\n\r\n // chiede al server se con i parametri attuali\r\n // è possibile creare una dichiarazione\r\n verificaDichiarazioneCreabile(codiceFiscale = '', codiceUfficio, anno, dataInizio, dataFine) {\r\n this.setState({ working: true });\r\n webapi.verificaOrdinarioCreabile({ codiceFiscale, codiceUfficio, anno, dataInizio, dataFine })\r\n .then(result => this.elaboraRispostaVerificaCreabilita(result || {}))\r\n .catch((ex) => {\r\n SnackbarWrapper.notifyError(ex.message);\r\n this.setState({ working: false });\r\n });\r\n }\r\n\r\n // esegue il comando attivo nella modale: crea, visualizza, modifica\r\n avviaComando() {\r\n const {\r\n idAssegnoNucleoFamiliare, creabile, modificabile, stato, esisteReiezione, conteggioSovrapposte,\r\n } = this.state;\r\n const {\r\n apriDichiarazione, chiudi, creaDichiarazioneOrdinaria,\r\n } = this.props;\r\n\r\n if (esisteReiezione) {\r\n return chiudi();\r\n }\r\n\r\n if (conteggioSovrapposte > 1) {\r\n return chiudi();\r\n }\r\n\r\n if (creabile) {\r\n creaDichiarazioneOrdinaria(this.state)\r\n .then((res) => {\r\n if (res.Success) {\r\n apriDichiarazione(res.Response.IdAssegnoNucleoFamiliare, true);\r\n } else {\r\n this.setState({ messaggi: res.DetectedProblems, working: false });\r\n }\r\n })\r\n .catch(ex => this.setState({ messaggi: [ex.message], working: false }));\r\n } else {\r\n apriDichiarazione(idAssegnoNucleoFamiliare, modificabile && stato == StatoDichiarazione.InLavorazione);\r\n }\r\n }\r\n\r\n // gestisce il risultato della chiamata per sapere\r\n // se è possibile creare la dichiarazione\r\n elaboraRispostaVerificaCreabilita({ DetectedProblems, Response }) {\r\n const { cognome, nome } = this.state;\r\n\r\n if (!Response) {\r\n // errore di comunicazione\r\n this.setState({\r\n messaggi: DetectedProblems,\r\n creabile: false,\r\n codiceFiscale: null,\r\n working: false,\r\n });\r\n } else {\r\n if (DetectedProblems.length == 0) {\r\n // se non ci sono errori ed esiste già una dichiarazione, gestisce la richiesta di modifica/visualizzazione\r\n if (Response.Modificabile || Response.IdAssegnoNucleoFamiliare) {\r\n // const descrizioneStato = Response.Stato == StatoDichiarazione.InLavorazione && Response.TotaleErrori > 0 ? 'Errata' : StatoDichiarazione.stringify(Response.Stato);\r\n // DetectedProblems.push(`Esiste una dichiarazione per ${cognome} ${nome} in stato \"${descrizioneStato}\". Vuoi ${(Response.Modificabile && Response.Stato == StatoDichiarazione.InLavorazione) ? 'modificarla' : 'visualizzarla'} ?`);\r\n DetectedProblems.push(`Esiste una richiesta ANF con periodo di validità sovrapposto, vuoi ${(Response.Modificabile && Response.Stato == StatoDichiarazione.InLavorazione) ? 'modificarla' : 'visualizzarla'} ?`);\r\n } else if (Response.ConteggioSovrapposte > 1) {\r\n DetectedProblems.push(`Esiste più di una richiesta ANF con periodo di validità sovrapposto: modifica il periodo di validità inserito oppure quello delle richieste già esistenti, se modificabili.`);\r\n } else if (!Response.Creabile && !Response.EsisteReiezione) {\r\n DetectedProblems.push(`Non è possibile creare una dichiarazione per ${cognome} ${nome}`);\r\n }\r\n }\r\n // riporta nello stato l'esito fornito dal server\r\n this.setState({\r\n idAnagrafica: Response.IdAnagrafica,\r\n // cognome: Response.Cognome,\r\n // nome: Response.Nome,\r\n esisteReiezione: Response.EsisteReiezione,\r\n messaggi: DetectedProblems,\r\n creabile: Response.Creabile,\r\n modificabile: Response.Modificabile,\r\n stato: Response.Stato,\r\n totaleErrori: Response.TotaleErrori,\r\n idAssegnoNucleoFamiliare: Response.IdAssegnoNucleoFamiliare,\r\n commit: {\r\n disabled: !Response.Creabile && !Response.Modificabile && !Response.IdAssegnoNucleoFamiliare,\r\n label: (Response.Modificabile && Response.Stato == StatoDichiarazione.InLavorazione) ? 'Modifica'\r\n : (Response.IdAssegnoNucleoFamiliare ? 'Visualizza'\r\n : (Response.EsisteReiezione || Response.ConteggioSovrapposte > 0 ? 'Ho Capito' : lableCrea)),\r\n },\r\n working: false,\r\n esitoCreabilitaImpostato: true,\r\n conteggioSovrapposte: Response.ConteggioSovrapposte,\r\n });\r\n }\r\n }\r\n\r\n handleFormChange(x) {\r\n this.setState(x);\r\n }\r\n\r\n handleClickCrea() {\r\n // forza una chiamata alla validazione form\r\n // per assicurarsi che le date (e gli altri campi) siano validi\r\n // prima di procedere con il crea\r\n if (this.form.valida()) {\r\n if (this.formValido()) {\r\n this.setState({ working: true });\r\n this.avviaComando();\r\n }\r\n }\r\n }\r\n\r\n formValido() {\r\n const { FormErrors } = this.state;\r\n return !(Object.values(FormErrors).some(ff => ff && ff.length > 0));\r\n }\r\n\r\n render() {\r\n const { annoCampagna, chiudi } = this.props;\r\n const {\r\n messaggi, working, idAnagrafica, commit, esisteReiezione, \r\n dataInizio,\r\n dataFine,\r\n codiceFiscale,\r\n cognome,\r\n nome,\r\n minDataCanonica,\r\n maxDataCanonica,\r\n conteggioSovrapposte,\r\n } = this.state;\r\n\r\n const disabilitatoCrea = (!codiceFiscaleValido(codiceFiscale) || !cognome || !nome || !this.formValido());\r\n return (\r\n chiudi()} loading={working}>\r\n \r\n Crea Assegno nucleo familiare ordinario {annoCampagna}\r\n \r\n \r\n
    this.handleFormChange(x)} stato={this.state} ref={r => this.form = r}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n esisteReiezione && conteggioSovrapposte == 1 && (\r\n Esiste già una richiesta ANF in stato "Reiezione INPS" con periodo di validità sovrapposto.
    \r\n Per generare una nuova richiesta utilizza la funzione "Duplica in un nuovo Anf", presente nel menu del rigo della richiesta esistente.\r\n
    \r\n )\r\n }\r\n {\r\n messaggi && messaggi.length == 1 && (\r\n \r\n {messaggi[0]}\r\n \r\n )\r\n }\r\n {\r\n messaggi && messaggi.length == 2 && (\r\n \r\n {messaggi[0]}
    {messaggi[1]}\r\n
    \r\n )\r\n }\r\n\r\n {\r\n messaggi && messaggi.length == 3 && (\r\n \r\n {messaggi[0]}
    {messaggi[1]}
    {messaggi[2]}\r\n
    \r\n )\r\n }\r\n\r\n {\r\n messaggi && messaggi.length > 3 && (\r\n \r\n {messaggi[0]}
    {messaggi[1]}
    {messaggi[2]}
    {messaggi[4]}\r\n
    \r\n )\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nModaleCreazioneOrdinario.propTypes = {\r\n annoCampagna: PropTypes.number.isRequired,\r\n codiceUfficio: PropTypes.string.isRequired,\r\n chiudi: PropTypes.func.isRequired,\r\n apriDichiarazione: PropTypes.func.isRequired,\r\n creaDichiarazioneOrdinaria: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default ModaleCreazioneOrdinario;\r\n","import React, { Component } from 'react';\r\nimport { Form, Grid, Input, Modal, Panel, DatePicker, Confirm } from 'framework-ui-components';\r\nimport { Button } from 'framework-ui-components/Components/V2';\r\nimport * as webapi from 'apis/assegnoNucleoFamiliareApi';\r\nimport { SnackbarWrapper } from 'framework-ui-components/Components/Snackbar';\r\nimport { codiceFiscaleValido } from 'framework-ui-components/Components/Validation';\r\nimport { StatoDichiarazione } from 'enums';\r\n\r\nclass ModaleCreazioneVariazione extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n commit: {\r\n label: 'Crea',\r\n },\r\n codiceFiscale: (props.modaleCreazioneContext && props.modaleCreazioneContext.codiceFiscale) || '',\r\n cognome: (props.modaleCreazioneContext && props.modaleCreazioneContext.cognome) || '',\r\n nome: (props.modaleCreazioneContext && props.modaleCreazioneContext.nome) || '',\r\n dataInizio: null,\r\n dataFine: new Date('06/30/' + (props.annoCampagna + 1)),\r\n idAnagrafica: null,\r\n };\r\n }\r\n\r\n componentDidUpdate(propsPrecedenti, statePrecedente, snapshot) {\r\n const { codiceUfficio, annoCampagna } = this.props;\r\n const { codiceFiscale, dataInizio } = this.state;\r\n if ((codiceFiscale && codiceFiscale != statePrecedente.codiceFiscale ||\r\n dataInizio && dataInizio != statePrecedente.dataInizio) &&\r\n codiceFiscaleValido(codiceFiscale)) {\r\n this.verificaDichiarazioneCreabile(codiceFiscale, codiceUfficio, annoCampagna);\r\n }\r\n }\r\n\r\n verificaDichiarazioneCreabile(codiceFiscale = '', codiceUfficio, anno) {\r\n this.setState({ working: true });\r\n webapi.verificaVariazioneCreabile({ codiceFiscale, codiceUfficio, anno })\r\n .then(result => this.elaboraRispostaVerificaCreabilita(result || {}))\r\n .catch((ex) => {\r\n SnackbarWrapper.notifyError(ex.message);\r\n this.setState({ working: false });\r\n });\r\n }\r\n\r\n avviaComando() {\r\n const { idAssegnoNucleoFamiliare, creabile, modificabile, stato, cognome, nome, dataInizio, esisteReiezione } = this.state;\r\n const { apriDichiarazione, avviaImpostaStatoInLavorazione, chiudi, creaDichiarazioneVariazione, modificaDichiarazioneVariazione } = this.props;\r\n\r\n if (esisteReiezione && creabile) {\r\n return chiudi();\r\n }\r\n\r\n if (creabile) {\r\n creaDichiarazioneVariazione(this.state)\r\n .then((res) => {\r\n if (res.Success) {\r\n apriDichiarazione(res.Response.IdAssegnoNucleoFamiliare, true);\r\n } else {\r\n this.setState({ messaggi: res.DetectedProblems, working: false });\r\n }\r\n })\r\n .catch(ex => this.setState({ messaggi: [ex.message], working: false }));\r\n } else if (stato != StatoDichiarazione.InLavorazione) {\r\n Confirm('Cambio stato \"In lavorazione\"', `Vuoi spostare la dichiarazione di ${cognome} ${nome} nello stato \"In lavorazione\" ?`, 'warning')\r\n .then(() => avviaImpostaStatoInLavorazione([idAssegnoNucleoFamiliare]))\r\n .then(() => modificaDichiarazioneVariazione(idAssegnoNucleoFamiliare, dataInizio))\r\n .then(() => apriDichiarazione(idAssegnoNucleoFamiliare, true))\r\n .catch(() => this.aggiornaStato({ working: false }));\r\n } else if (modificabile) {\r\n modificaDichiarazioneVariazione(idAssegnoNucleoFamiliare, dataInizio)\r\n .then(() => apriDichiarazione(idAssegnoNucleoFamiliare, modificabile));\r\n this.setState({ working: false });\r\n } else {\r\n apriDichiarazione(idAssegnoNucleoFamiliare, false);\r\n }\r\n }\r\n\r\n elaboraRispostaVerificaCreabilita({ DetectedProblems, Response }) {\r\n const { cognome, nome } = this.state;\r\n\r\n if (!Response) {\r\n this.setState({\r\n messaggi: DetectedProblems,\r\n creabile: false,\r\n codiceFiscale: null,\r\n working: false,\r\n });\r\n } else {\r\n if (DetectedProblems.length == 0) {\r\n if (Response.Modificabile || Response.IdAssegnoNucleoFamiliare) {\r\n const descrizioneStato = Response.Stato == StatoDichiarazione.InLavorazione && Response.TotaleErrori > 0 ? 'Errata' : StatoDichiarazione.stringify(Response.Stato);\r\n DetectedProblems.push(`Esiste una variazione per ${cognome} ${nome} in stato \"${descrizioneStato}\". Vuoi ${Response.Modificabile ? 'modificarla' : 'visualizzarla'} ?`);\r\n } else if (!Response.Creabile) {\r\n DetectedProblems.push(`Non è possibile creare una dichiarazione per ${cognome} ${nome}`);\r\n }\r\n }\r\n this.setState({\r\n idAnagrafica: Response.IdAnagrafica,\r\n cognome: Response.Cognome,\r\n nome: Response.Nome,\r\n messaggi: DetectedProblems,\r\n creabile: Response.Creabile,\r\n modificabile: Response.Modificabile,\r\n stato: Response.Stato,\r\n totaleErrori: Response.TotaleErrori,\r\n idAssegnoNucleoFamiliare: Response.IdAssegnoNucleoFamiliare,\r\n commit: {\r\n disabled: !Response.Creabile && !Response.Modificabile && !Response.IdAssegnoNucleoFamiliare,\r\n label: (Response.Modificabile && Response.Stato == StatoDichiarazione.InLavorazione) ? 'Modifica' :\r\n (Response.IdAssegnoNucleoFamiliare ? 'Visualizza' :\r\n (Response.EsisteReiezione ? 'Ho Capito' : 'Crea')),\r\n },\r\n working: false,\r\n });\r\n }\r\n }\r\n\r\n handleFormChange(x) {\r\n this.setState(x);\r\n }\r\n\r\n handleClickCrea() {\r\n if (this.formValido()) {\r\n this.setState({ working: true });\r\n this.avviaComando();\r\n }\r\n }\r\n\r\n formValido(formErrors) {\r\n const { FormErrors } = this.state;\r\n return !(Object.values(FormErrors).some(ff => ff && ff.length > 0));\r\n }\r\n\r\n render() {\r\n const { annoCampagna, chiudi } = this.props;\r\n const { messaggi, working, idAnagrafica, commit, esisteReiezione, creabile,\r\n dataInizio,\r\n dataFine,\r\n codiceFiscale,\r\n cognome,\r\n nome,\r\n } = this.state;\r\n\r\n const formCompleto = nome && cognome && dataInizio;\r\n\r\n const disabilitatoCrea = (!codiceFiscaleValido(codiceFiscale) || !dataInizio || !cognome || !nome);\r\n\r\n return (\r\n chiudi()} loading={working}>\r\n \r\n Crea Assegno nucleo familiare variazione {annoCampagna}\r\n \r\n \r\n
    this.handleFormChange(x)} stato={this.state}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n esisteReiezione && creabile && Esiste una dichiarazione in stato \"Reiezione INPS\".
    \r\n N.B. per generare un nuovo modello Ordinario per questo nominativo utilizza la funzione \"Duplica in un nuovo Anf\", presente nel menu di rigo.\r\n
    \r\n }\r\n {\r\n messaggi && messaggi.length == 1 && \r\n {messaggi[0]}\r\n \r\n }\r\n {\r\n messaggi && messaggi.length == 2 && \r\n {messaggi[0]}
    {messaggi[1]}\r\n
    \r\n }\r\n\r\n {\r\n messaggi && messaggi.length == 3 && \r\n {messaggi[0]}
    {messaggi[1]}
    {messaggi[2]}\r\n
    \r\n }\r\n\r\n {\r\n messaggi && messaggi.length > 3 && \r\n {messaggi[0]}
    {messaggi[1]}
    {messaggi[2]}
    {messaggi[4]}\r\n
    \r\n }\r\n
    \r\n
    \r\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 ModaleCreazioneVariazione;\r\n","import React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Form, Grid, Input, Modal, Panel, DatePicker, Select,\r\n} from 'framework-ui-components';\r\nimport { Button } from 'framework-ui-components/Components/V2';\r\nimport { SnackbarWrapper } from 'framework-ui-components/Components/Snackbar';\r\nimport { codiceFiscaleValido } from 'framework-ui-components/Components/Validation';\r\nimport * as webapi from '../../apis/assegnoNucleoFamiliareApi';\r\nimport { cercaAnagraficaInUfficio } from '../../apis/anagraficaApi';\r\nimport { StatoDichiarazione } from '../../enums';\r\nimport {\r\n validaDataInizioValidita, validaDataFineValidita, isDataInizioValiditaValida, isDataFineValiditaValida,\r\n} from './helpersDate';\r\n\r\nconst lableCrea = 'Crea';\r\n\r\nclass ModaleCreazioneArretrato extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n commit: {\r\n label: lableCrea,\r\n },\r\n codiceFiscale: '',\r\n cognome: '',\r\n nome: '',\r\n anno: 0,\r\n dataInizio: null, // new Date('07/01/' + props.annoCampagna),\r\n dataFine: null, // new Date('06/30/' + (props.annoCampagna + 1)),\r\n idAnagrafica: null,\r\n config: {\r\n dataMinimaGiorno: null,\r\n dataMinimaMese: null,\r\n dataMinimaAnno: null,\r\n },\r\n minDataCanonica: null,\r\n maxDataCanonica: null,\r\n esitoCreabilitaImpostato: false, // flag che indica se l'esito di creazione è stato impostato dalla funzione apposita \r\n conteggioSovrapposte: 0,\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.getConfigurazione();\r\n }\r\n\r\n // determina la data minima in base all'anno selezionato\r\n // (se selezionato) tenendo conto della configurazione\r\n // ricevuta dal server come data minima \r\n // dell'anno \"n-5\"\r\n calcoloDataMinima() {\r\n const { anno, config } = this.state;\r\n\r\n // non è stato ancora selezionato l'anno\r\n if (!anno) {\r\n return null;\r\n }\r\n\r\n const zeroPad = (num, places) => String(num).padStart(places, '0')\r\n\r\n // data minima considerando solo l'anno\r\n const dataMinimaCanonica = `${anno}-07-01T00:00:00.000Z`;\r\n\r\n // se abbiamo ricevuto dal server la data minima assoluta\r\n // ed è successiva a quella canonica, allora la utilizziamo\r\n // come data minima\r\n if (config && config.dataMinimaAnno) {\r\n const dataMinimaDaConfig = `${config.dataMinimaAnno}-${zeroPad(config.dataMinimaMese, 2)}-${zeroPad(config.dataMinimaGiorno)}T00:00:00.000Z`;\r\n if (dataMinimaDaConfig > dataMinimaCanonica) {\r\n return dataMinimaDaConfig;\r\n }\r\n }\r\n\r\n // in tutti gli altri casi, vale la data minima canonica\r\n return dataMinimaCanonica;\r\n }\r\n\r\n componentDidUpdate(propsPrecedenti, statePrecedente, snapshot) {\r\n const { codiceUfficio } = this.props;\r\n const {\r\n codiceFiscale, anno, dataInizio, dataFine, cognome, idAnagrafica, esitoCreabilitaImpostato, config,\r\n } = this.state;\r\n\r\n\r\n // se è camiata la configurazione\r\n // stabilisce la data inferiore\r\n if ((config.dataMinimaAnno && config.dataMinimaAnno != statePrecedente.config.dataMinimaAnno)) {\r\n this.setState({\r\n minDataCanonica: this.calcoloDataMinima()\r\n });\r\n }\r\n\r\n // se è cambiato l'anno\r\n // stabilisce la data minima e massima e aggiorna i campi a video\r\n // se ho cambiato l'anno, imposto anche le date\r\n if (anno && anno != statePrecedente.anno) {\r\n const dataMinima = this.calcoloDataMinima();\r\n const dataMassima = `${anno + 1}-06-30T00:00:00.000Z`;\r\n this.setState({\r\n dataInizio: dataMinima,\r\n dataFine: dataMassima,\r\n minDataCanonica: dataMinima,\r\n maxDataCanonica: dataMassima,\r\n });\r\n return;\r\n }\r\n\r\n const isCodiceFiscaleValido = codiceFiscale && codiceFiscaleValido(codiceFiscale);\r\n\r\n // se è stato modificato il codice fiscale e il codice è formalmente corretto\r\n // allora prova a decodificare l'anagrafica\r\n if (isCodiceFiscaleValido && codiceFiscale != statePrecedente.codiceFiscale) {\r\n this.aggiornaAnagrafica(codiceFiscale, codiceUfficio);\r\n } else if (cognome && (!codiceFiscale || !isCodiceFiscaleValido)) {\r\n // se non ci sono le condizioni per valutare l'anagrafica\r\n // ma il cognome è già valorizzato, allora lo pulisce\r\n this.pulisciAnagrafica();\r\n return;\r\n }\r\n\r\n // se i dati necessari per controllare la possibilità di creazione\r\n // sono stati inseriti e variati rispetto a prima...\r\n if (codiceFiscale && dataInizio && dataFine && anno\r\n && (codiceFiscale != statePrecedente.codiceFiscale\r\n || dataInizio != statePrecedente.dataInizio\r\n || dataFine != statePrecedente.dataFine\r\n || idAnagrafica != statePrecedente.idAnagrafica\r\n || anno != statePrecedente.anno\r\n || (config.dataMinimaAnno && config.dataMinimaAnno != statePrecedente.config.dataMinimaAnno))) {\r\n if (this.isDatiPerCreazioneValidi()) {\r\n // i dati sono corretti, verifica se la dichiarazione è creabile/modificabile\r\n this.verificaDichiarazioneCreabile(codiceFiscale, codiceUfficio, anno, dataInizio, dataFine);\r\n } else if (esitoCreabilitaImpostato) {\r\n // i dati base sono cambiati ma sono errati: pulisce l'eventuale\r\n // popolamento precedente\r\n this.pulisciEsitoVerificaDichiarazioneCreabile();\r\n }\r\n }\r\n }\r\n\r\n getConfigurazione() {\r\n this.setState({ working: true });\r\n webapi.getConfigurazione()\r\n .then(result => this.elaboraRispostaGetConfigurazione(result || {}))\r\n .catch((ex) => {\r\n SnackbarWrapper.notifyError(ex.message);\r\n this.setState({ working: false });\r\n });\r\n }\r\n\r\n // controlla che i dati necessari per la chiamata alla verifica creazione\r\n // siano disponibili e formalmente corretti\r\n // (non tutti i dati testati da formValido sono necessari per il\r\n // controllo dichiarazione creabile)\r\n isDatiPerCreazioneValidi() {\r\n const {\r\n codiceFiscale, dataInizio, dataFine, minDataCanonica, maxDataCanonica, anno,\r\n } = this.state;\r\n\r\n if (!anno) {\r\n return false;\r\n }\r\n\r\n if (!(codiceFiscale && codiceFiscaleValido(codiceFiscale))) {\r\n return false;\r\n }\r\n\r\n if (!isDataInizioValiditaValida(minDataCanonica, maxDataCanonica, dataInizio)) {\r\n return false;\r\n }\r\n\r\n if (!isDataFineValiditaValida(minDataCanonica, maxDataCanonica, dataInizio, dataFine)) {\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n // resetta gli effetti di una chiamata a \"verificaDichiarazioneCreabile\"\r\n pulisciEsitoVerificaDichiarazioneCreabile() {\r\n this.setState({\r\n messaggi: [],\r\n creabile: false,\r\n modificabile: false,\r\n esisteReiezione: false,\r\n commit: {\r\n disabled: true,\r\n label: lableCrea,\r\n },\r\n esitoCreabilitaImpostato: false,\r\n conteggioSovrapposte: 0,\r\n });\r\n }\r\n\r\n // se il cf esiste già in anagrafica, recupera i dati anagrafici\r\n aggiornaAnagrafica(codiceFiscale = '', codiceUfficio) {\r\n cercaAnagraficaInUfficio(codiceFiscale, codiceUfficio)\r\n .then((res) => {\r\n if (res) {\r\n this.setState({\r\n idAnagrafica: res.IdAnagrafica,\r\n cognome: res.Cognome,\r\n nome: res.Nome,\r\n });\r\n } else {\r\n this.pulisciAnagrafica();\r\n }\r\n })\r\n .catch((ex) => {\r\n this.pulisciAnagrafica();\r\n });\r\n }\r\n\r\n // resetta gli efftti del recupero dati anagrafici\r\n pulisciAnagrafica() {\r\n this.setState({\r\n idAnagrafica: null,\r\n cognome: null,\r\n nome: null,\r\n });\r\n }\r\n\r\n verificaDichiarazioneCreabile(codiceFiscale = '', codiceUfficio, anno, dataInizio, dataFine) {\r\n this.setState({ working: true });\r\n webapi.verificaOrdinarioCreabile({ codiceFiscale, codiceUfficio, anno, dataInizio, dataFine })\r\n .then(result => this.elaboraRispostaVerificaCreabilita(result || {}))\r\n .catch((ex) => {\r\n SnackbarWrapper.notifyError(ex.message);\r\n this.setState({ working: false });\r\n });\r\n }\r\n\r\n avviaComando() {\r\n const {\r\n idAssegnoNucleoFamiliare, creabile, modificabile, stato, esisteReiezione, conteggioSovrapposte\r\n } = this.state;\r\n const {\r\n apriDichiarazione, chiudi, creaDichiarazioneOrdinaria,\r\n } = this.props;\r\n\r\n if (esisteReiezione) {\r\n return chiudi();\r\n }\r\n\r\n if (conteggioSovrapposte > 1) {\r\n return chiudi();\r\n }\r\n\r\n if (creabile) {\r\n creaDichiarazioneOrdinaria(this.state)\r\n .then((res) => {\r\n if (res.Success) {\r\n apriDichiarazione(res.Response.IdAssegnoNucleoFamiliare, true);\r\n } else {\r\n this.setState({ messaggi: res.DetectedProblems, working: false });\r\n }\r\n })\r\n .catch(ex => this.setState({ messaggi: [ex.message], working: false }));\r\n } else {\r\n apriDichiarazione(idAssegnoNucleoFamiliare, modificabile && stato == StatoDichiarazione.InLavorazione);\r\n }\r\n }\r\n\r\n elaboraRispostaVerificaCreabilita({ DetectedProblems, Response }) {\r\n const { cognome, nome } = this.state;\r\n\r\n if (!Response) {\r\n this.setState({\r\n messaggi: DetectedProblems,\r\n creabile: false,\r\n codiceFiscale: null,\r\n working: false,\r\n });\r\n } else {\r\n if (DetectedProblems.length == 0) {\r\n // se non ci sono errori ed esiste già una dichiarazione, gestisce la richiesta di modifica/visualizzazione\r\n if (Response.Modificabile || Response.IdAssegnoNucleoFamiliare) {\r\n // const descrizioneStato = Response.Stato == StatoDichiarazione.InLavorazione && Response.TotaleErrori > 0 ? 'Errata' : StatoDichiarazione.stringify(Response.Stato);\r\n // DetectedProblems.push(`Esiste una dichiarazione per ${cognome} ${nome} in stato \"${descrizioneStato}\". Vuoi ${(Response.Modificabile && Response.Stato == StatoDichiarazione.InLavorazione) ? 'modificarla' : 'visualizzarla'} ?`);\r\n DetectedProblems.push(`Esiste una richiesta ANF con periodo di validità sovrapposto, vuoi ${(Response.Modificabile && Response.Stato == StatoDichiarazione.InLavorazione) ? 'modificarla' : 'visualizzarla'} ?`);\r\n } else if (Response.ConteggioSovrapposte > 1) {\r\n DetectedProblems.push(`Esiste più di una richiesta ANF con periodo di validità sovrapposto: modifica il periodo di validità inserito oppure quello delle richieste già esistenti, se modificabili.`);\r\n } else if (!Response.Creabile && !Response.EsisteReiezione) {\r\n DetectedProblems.push(`Non è possibile creare una dichiarazione per ${cognome} ${nome}`);\r\n }\r\n }\r\n // riporta nello stato l'esito fornito dal server\r\n this.setState({\r\n idAnagrafica: Response.IdAnagrafica,\r\n cognome: Response.Cognome,\r\n nome: Response.Nome,\r\n esisteReiezione: Response.EsisteReiezione,\r\n messaggi: DetectedProblems,\r\n creabile: Response.Creabile,\r\n modificabile: Response.Modificabile,\r\n stato: Response.Stato,\r\n totaleErrori: Response.TotaleErrori,\r\n idAssegnoNucleoFamiliare: Response.IdAssegnoNucleoFamiliare,\r\n commit: {\r\n disabled: !Response.Creabile && !Response.Modificabile && !Response.IdAssegnoNucleoFamiliare,\r\n label: (Response.Modificabile && Response.Stato == StatoDichiarazione.InLavorazione) ? 'Modifica'\r\n : (Response.IdAssegnoNucleoFamiliare ? 'Visualizza'\r\n : (Response.EsisteReiezione || Response.ConteggioSovrapposte > 0 ? 'Ho Capito' : lableCrea)),\r\n },\r\n working: false,\r\n esitoCreabilitaImpostato: true,\r\n conteggioSovrapposte: Response.ConteggioSovrapposte,\r\n });\r\n }\r\n }\r\n\r\n elaboraRispostaGetConfigurazione(configurazione) {\r\n if (!configurazione) {\r\n this.setState({\r\n working: false,\r\n config: {\r\n dataMinimaGiorno: null,\r\n dataMinimaMese: null,\r\n dataMinimaAnno: null,\r\n },\r\n });\r\n } else {\r\n this.setState({\r\n working: false,\r\n config: {\r\n dataMinimaGiorno: configurazione.DataMinimaGiorno,\r\n dataMinimaMese: configurazione.DataMinimaMese,\r\n dataMinimaAnno: configurazione.DataMinimaAnno,\r\n },\r\n });\r\n }\r\n }\r\n\r\n handleFormChange(x) {\r\n this.setState(x);\r\n }\r\n\r\n handleClickCrea() {\r\n // forza una chiamata alla validazione form\r\n // per assicurarsi che le date (e gli altri campi) siano validi\r\n // prima di procedere con il crea\r\n if (this.form.valida()) {\r\n if (this.formValido()) {\r\n this.setState({ working: true });\r\n this.avviaComando();\r\n }\r\n }\r\n }\r\n\r\n formValido(formErrors) {\r\n const { FormErrors } = this.state;\r\n return !(Object.values(FormErrors).some(ff => ff && ff.length > 0));\r\n }\r\n\r\n render() {\r\n const { annoCampagna, chiudi } = this.props;\r\n const {\r\n messaggi, working, idAnagrafica, commit, esisteReiezione,\r\n dataInizio,\r\n dataFine,\r\n anno,\r\n codiceFiscale,\r\n cognome,\r\n nome,\r\n minDataCanonica,\r\n maxDataCanonica,\r\n conteggioSovrapposte,\r\n } = this.state;\r\n\r\n const disabilitatoCrea = (!codiceFiscaleValido(codiceFiscale) || !cognome || !nome || !this.formValido());\r\n\r\n return (\r\n chiudi()} loading={working}>\r\n \r\n Crea ANF anni precedenti\r\n \r\n \r\n
    this.handleFormChange(x)} stato={this.state} ref={r => this.form = r}>\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n esisteReiezione && conteggioSovrapposte == 1 && (\r\n Esiste una dichiarazione in stato "Reiezione INPS".
    \r\n N.B. per generare un nuovo modello Ordinario per questo nominativo utilizza la funzione "Duplica in un nuovo Anf", presente nel menu di rigo.\r\n
    \r\n )\r\n }\r\n {\r\n messaggi && messaggi.length == 1 && (\r\n \r\n {messaggi[0]}\r\n \r\n )\r\n }\r\n {\r\n messaggi && messaggi.length == 2 && (\r\n \r\n {messaggi[0]}
    {messaggi[1]}\r\n
    \r\n )\r\n }\r\n\r\n {\r\n messaggi && messaggi.length == 3 && (\r\n \r\n {messaggi[0]}
    {messaggi[1]}
    {messaggi[2]}\r\n
    \r\n )\r\n }\r\n\r\n {\r\n messaggi && messaggi.length > 3 && (\r\n \r\n {messaggi[0]}
    {messaggi[1]}
    {messaggi[2]}
    {messaggi[4]}\r\n
    \r\n )\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nModaleCreazioneArretrato.propTypes = {\r\n annoCampagna: PropTypes.number.isRequired,\r\n codiceUfficio: PropTypes.string.isRequired,\r\n chiudi: PropTypes.func.isRequired,\r\n apriDichiarazione: PropTypes.func.isRequired,\r\n creaDichiarazioneOrdinaria: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default ModaleCreazioneArretrato;\r\n","import React, { Component, Fragment } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { saveAs } from 'file-saver';\r\nimport * as webapi from 'apis/assegnoNucleoFamiliareApi';\r\nimport { Servizi, StatiRicerca } from 'enums';\r\nimport Snackbar, { SnackbarWrapper } from 'framework-ui-components/Components/Snackbar';\r\nimport debounce from 'framework-ui-components/Components/Utils/debouncer';\r\nimport AssegniNucleoFamiliare from './AssegniNucleoFamiliare';\r\nimport checkServizio from '../../helpers/checkServizio';\r\nimport ModaleCreazioneOrdinario from './ModaleCreazioneOrdinario';\r\nimport ModaleCreazioneVariazione from './ModaleCreazioneVariazione';\r\nimport ModaleCreazioneArretrato from './ModaleCreazioneArretrato';\r\nimport EventoServer from '../../libs/EventoServer';\r\n\r\nclass AssegnoNucleoFamiliareWrapper extends Component {\r\n state = {\r\n cont: 0,\r\n termine: '',\r\n stato: StatiRicerca.TUTTE,\r\n dichiarazioniSelezionate: [],\r\n contatoriStati: [],\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n this.avviaStampa = this.avviaStampa.bind(this);\r\n this.apriDichiarazione = this.apriDichiarazione.bind(this);\r\n this.eliminaDichiarazione = this.eliminaDichiarazione.bind(this);\r\n this.duplicaDomandaANF = this.duplicaDomandaANF.bind(this);\r\n this.avviaCreazioneDichiarazioneOrdinaria = this.avviaCreazioneDichiarazioneOrdinaria.bind(this);\r\n this.avviaCreazioneDichiarazioneVariazione = this.avviaCreazioneDichiarazioneVariazione.bind(this);\r\n this.avviaCreazioneDichiarazioneArretrata = this.avviaCreazioneDichiarazioneArretrata.bind(this);\r\n this.aggiornaDichiarazioniSelezionate = this.aggiornaDichiarazioniSelezionate.bind(this);\r\n this.avviaImpostaStatoInLavorazione = this.avviaImpostaStatoInLavorazione.bind(this);\r\n this.avviaImpostaStatoCompleta = this.avviaImpostaStatoCompleta.bind(this);\r\n this.chiudiModaleCreazione = this.chiudiModaleCreazione.bind(this);\r\n this.creaDichiarazioneOrdinaria = this.creaDichiarazioneOrdinaria.bind(this);\r\n this.creaDichiarazioneVariazione = this.creaDichiarazioneVariazione.bind(this);\r\n this.modificaDichiarazioneVariazione = this.modificaDichiarazioneVariazione.bind(this);\r\n this.avviaTrasmissioneEPASA = this.avviaTrasmissioneEPASA.bind(this);\r\n this.ottieniDelegaPatronatoEPASA = this.ottieniDelegaPatronatoEPASA.bind(this);\r\n this.avviaRicerca = debounce(this.avviaRicerca.bind(this), 100);\r\n this.aggiornaRicerca = debounce(this.aggiornaRicerca.bind(this), 1000);\r\n\r\n const aaaa = new Date().getFullYear();\r\n const inizioCampagna = new Date(\r\n aaaa, // anno da data corrente\r\n window.config.dataInizioCampagnaANF.split('/')[1] - 1, // mese (da config)\r\n window.config.dataInizioCampagnaANF.split('/')[0], // giorno (da config)\r\n );\r\n if (new Date() < inizioCampagna) {\r\n this.state.annoCampagna = aaaa - 1;\r\n } else {\r\n this.state.annoCampagna = aaaa;\r\n }\r\n }\r\n\r\n componentWillMount() {\r\n EventoServer.subscribe('DichiarazioneCreata', this.aggiornaRicerca);\r\n EventoServer.subscribe('DichiarazioneEliminata', this.aggiornaRicerca);\r\n EventoServer.subscribe('DichiarazioneStatoModificato', this.aggiornaRicerca);\r\n EventoServer.subscribe('StampaDichiarazioneCompletata', this.aggiornaRicerca);\r\n EventoServer.subscribe('DichiarazioneModificaStatoFallita', this.notificaDichiarazioneCambioStatoFallito);\r\n EventoServer.subscribe('DichiarazioneStatoModificato', this.notificaDichiarazioneStatoModificato);\r\n EventoServer.subscribe('AssegnoNucleoFamiliareDuplicato', this.notificaDomandaDuplicata);\r\n }\r\n\r\n componentWillReceiveProps({ codiceUfficio }) {\r\n this.avviaRicerca({ codiceUfficio });\r\n }\r\n\r\n componentWillUnmount() {\r\n EventoServer.unsubscribe('DichiarazioneCreata', this.aggiornaRicerca);\r\n EventoServer.unsubscribe('DichiarazioneEliminata', this.aggiornaRicerca);\r\n EventoServer.unsubscribe('DichiarazioneStatoModificato', this.aggiornaRicerca);\r\n EventoServer.unsubscribe('StampaDichiarazioneCompletata', this.aggiornaRicerca);\r\n EventoServer.unsubscribe('DichiarazioneModificaStatoFallita', this.notificaDichiarazioneCambioStatoFallito);\r\n EventoServer.unsubscribe('DichiarazioneStatoModificato', this.notificaDichiarazioneStatoModificato);\r\n EventoServer.unsubscribe('AssegnoNucleoFamiliareDuplicato', this.notificaDomandaDuplicata);\r\n }\r\n\r\n componentDidMount() {\r\n const { codiceUfficio } = this.props;\r\n this.avviaRicerca({ codiceUfficio });\r\n }\r\n\r\n aggiornaStato(data = {}) {\r\n return new Promise((resolve) => this.setState(data, () => resolve(data)));\r\n }\r\n\r\n avviaCreazioneDichiarazioneOrdinaria(modaleCreazioneContext) {\r\n this.setState({ apriModaleCreazioneOrdinario: true, modaleCreazioneContext });\r\n }\r\n\r\n avviaCreazioneDichiarazioneVariazione(modaleCreazioneContext) {\r\n this.setState({ apriModaleCreazioneVariazione: true, modaleCreazioneContext });\r\n }\r\n\r\n avviaCreazioneDichiarazioneArretrata(modaleCreazioneContext) {\r\n this.setState({ apriModaleCreazioneArretrato: true, modaleCreazioneContext });\r\n }\r\n\r\n chiudiModaleCreazione() {\r\n this.setState({\r\n apriModaleCreazioneOrdinario: false,\r\n apriModaleCreazioneVariazione: false,\r\n apriModaleCreazioneArretrato: false,\r\n });\r\n }\r\n\r\n apriDichiarazione(id, modifica, duplicata) {\r\n window.location = this.urlAssegnoNucleoFamiliare(id, modifica, duplicata);\r\n // this.chiudiModaleCreazione();\r\n }\r\n\r\n creaDichiarazioneOrdinaria(richiedente) {\r\n const { codiceUfficio, annoCampagna } = this.state;\r\n return webapi.creaOrdinario({ anno: annoCampagna, codiceUfficio, ...richiedente });\r\n }\r\n\r\n creaDichiarazioneVariazione(richiedente) {\r\n const { codiceUfficio, annoCampagna } = this.state;\r\n return webapi\r\n .creaVariazione({ anno: annoCampagna, codiceUfficio, ...richiedente })\r\n .then(this.ensureSuccessResponse);\r\n }\r\n\r\n modificaDichiarazioneVariazione(idDichiarazione, dataInizio) {\r\n return webapi\r\n .modificaVariazione({ idDichiarazione, dataInizio })\r\n .then(this.ensureSuccessResponse);\r\n }\r\n\r\n eliminaDichiarazione(idDichiarazione) {\r\n return webapi\r\n .eliminaDichiarazione({ idDichiarazione })\r\n .then(this.ensureSuccessResponse)\r\n .catch((ex) => this.notificaErrore(ex));\r\n }\r\n\r\n duplicaDomandaANF(idDichiarazione, CodiceFiscale, CodiceUfficio, Tipo) {\r\n return webapi\r\n .duplicaDomandaANF({\r\n idDichiarazione, CodiceFiscale, CodiceUfficio, Tipo,\r\n })\r\n .then(this.ensureSuccessResponse)\r\n .catch((ex) => this.notificaErrore(ex));\r\n }\r\n\r\n aggiornaRicerca(evento) {\r\n if (evento.CurrentUserId == window.datiUtente.IdentificativoUtente) {\r\n this.avviaRicerca({ cont: this.state.cont + 1 });\r\n }\r\n }\r\n\r\n avviaRicerca(filtri) {\r\n this.aggiornaStato(filtri)\r\n .then(() => (filtri.codiceUfficio != null || filtri.termine != null || filtri.cont != null) && this.aggiornaStati(this.state))\r\n .then(() => this.aggiornaGriglia(this.state));\r\n }\r\n\r\n avviaStampa(idDichiarazioni) {\r\n return webapi\r\n .avviaStampa({ idDichiarazioni })\r\n .then(this.ensureSuccessResponse)\r\n .then((response) => SnackbarWrapper.startDeterminateAsyncTask(response.CorrelationId, 'Stampa PDF', idDichiarazioni.length))\r\n .catch((ex) => this.notificaErrore(ex));\r\n }\r\n\r\n avviaImpostaStatoInLavorazione(idDichiarazioni) {\r\n return webapi.avviaImpostaStatoInLavorazione({ idDichiarazioni })\r\n .then(this.ensureSuccessResponse)\r\n .then((response) => SnackbarWrapper.startDeterminateAsyncTask(response.CorrelationId, 'Cambio stato \"In lavorazione\"', idDichiarazioni.length))\r\n .catch((ex) => this.notificaErrore(ex));\r\n }\r\n\r\n avviaImpostaStatoCompleta(idDichiarazioni) {\r\n return webapi.avviaImpostaStatoCompleta({ idDichiarazioni })\r\n .then(this.ensureSuccessResponse)\r\n .then((response) => SnackbarWrapper.startDeterminateAsyncTask(response.CorrelationId, 'Cambio stato \"Completa\"', idDichiarazioni.length))\r\n .catch((ex) => this.notificaErrore(ex));\r\n }\r\n\r\n avviaTrasmissioneEPASA(idDichiarazioni) {\r\n return webapi.avviaTrasmissioneEPASA({ idDichiarazioni })\r\n .then(this.ensureSuccessResponse)\r\n .then((response) => SnackbarWrapper.startDeterminateAsyncTask(response.CorrelationId, 'Cambio stato \"Trasmessa EPASA\"', idDichiarazioni.length))\r\n .catch((ex) => this.notificaErrore(ex));\r\n }\r\n\r\n ottieniDelegaPatronatoEPASA(idDichiarazioni, dichiarante) {\r\n return webapi.ottieniDelegaPatronatoEPASA({ idDichiarazioni })\r\n .then(this.ensureSuccessResponse)\r\n .then((res) => {\r\n if (res.Success) {\r\n saveAs(\r\n `data:application/pdf;base64,${res.Response.Delega}`,\r\n `DELEGA ${dichiarante}.pdf`,\r\n {\r\n type: 'application/pdf',\r\n },\r\n );\r\n\r\n saveAs(\r\n `data:application/pdf;base64,${res.Response.Liberatoria}`,\r\n `LIBERATORIA ${dichiarante}.pdf`,\r\n {\r\n type: 'application/pdf',\r\n },\r\n );\r\n SnackbarWrapper.notifySuccess('Delega scaricata con successo.');\r\n }\r\n })\r\n .catch((ex) => this.notificaErrore(ex));\r\n }\r\n\r\n aggiornaGriglia({\r\n stato, termine, codiceUfficio, cont,\r\n }) {\r\n return this.setState({\r\n urlRicerca: `assegnonucleofamiliare/cerca?stato=${stato}&termine=${termine}&codiceufficio=${codiceUfficio}&cont=${cont}`,\r\n });\r\n }\r\n\r\n aggiornaDichiarazioniSelezionate(dichiarazioniSelezionate = []) {\r\n return this.setState({\r\n dichiarazioniSelezionate,\r\n azioniGruppoAttive: dichiarazioniSelezionate.length > 0,\r\n });\r\n }\r\n\r\n aggiornaStati(filtri) {\r\n return webapi\r\n .statiANF(filtri)\r\n .then((contatoriStati) => this.setState({ contatoriStati }));\r\n }\r\n\r\n urlAssegnoNucleoFamiliare(idDichiarazione, modifica = false, duplicata = false) {\r\n const url = window.config.urlAnf;\r\n const [id] = idDichiarazione.match(/\\d+(\\-[A-Z])?/);\r\n return `${url}/#/Frontespizio/${!modifica ? 'Visualizza/' : ''}${id}${duplicata ? '?duplicata=true' : ''}`;\r\n }\r\n\r\n ensureSuccessResponse(result = { DetectedProblems: [] }) {\r\n return new Promise((resolve, reject) => (result.Success ? resolve(result) : reject(new Error(result.DetectedProblems.shift()))));\r\n }\r\n\r\n notificaErrore(ex) {\r\n SnackbarWrapper.notifyError(ex.message);\r\n throw ex;\r\n }\r\n\r\n notificaDichiarazioneCambioStatoFallito = (evt) => {\r\n if (\r\n Snackbar.recuperaOperazioniMassive().find(\r\n (x) => x.id == evt.CorrelationId,\r\n )\r\n ) {\r\n SnackbarWrapper.notifyAsyncTaskError(\r\n evt.CorrelationId,\r\n 'Cambio stato fallito',\r\n `${evt.Descrizione} ${evt.DetectedProblems.$values[0]}`,\r\n );\r\n } else {\r\n // this.props.stopLoadingApplication();\r\n // if (evt.IdDichiarazione.indexOf('AssegnoNucleoFamiliare') != -1) {\r\n // evt.DetectedProblems.unshift('Cambio stato fallito. ');\r\n // SnackbarWrapper.notifyError(evt.DetectedProblems);\r\n // } else\r\n if (evt.DetectedProblems) {\r\n SnackbarWrapper.notifyError(evt.DetectedProblems.$values);\r\n } else {\r\n const msg = `Cambio stato fallito per dichiarazione ${evt.Descrizione}`;\r\n SnackbarWrapper.notifyError(msg);\r\n }\r\n }\r\n };\r\n\r\n notificaDichiarazioneStatoModificato = (evt) => {\r\n if (\r\n Snackbar.recuperaOperazioniMassive().find(\r\n (x) => x.id == evt.CorrelationId,\r\n )\r\n ) {\r\n SnackbarWrapper.updateDeterminateAsyncTaskProgress(evt.CorrelationId, 1);\r\n } else {\r\n // this.props.stopLoadingApplication();\r\n if (evt.Descrizione != null) {\r\n const msg = `Dichiarazione per ${evt.Descrizione} impostata in stato ${StatoDichiarazione.stringify(\r\n evt.NuovoStato,\r\n evt.HaErrori,\r\n )}`;\r\n SnackbarWrapper.notifySuccess(msg);\r\n }\r\n }\r\n };\r\n\r\n notificaDomandaDuplicata = (evt) => {\r\n this.aggiornaStato({ working: false });\r\n this.apriDichiarazione(evt.IdDichiarazione, true, true);\r\n };\r\n\r\n render() {\r\n const {\r\n annoCampagna, apriModaleCreazioneOrdinario, apriModaleCreazioneVariazione, apriModaleCreazioneArretrato,\r\n } = this.state;\r\n return (\r\n
    \r\n \r\n {\r\n apriModaleCreazioneOrdinario\r\n && (\r\n \r\n )\r\n }\r\n {\r\n apriModaleCreazioneVariazione\r\n && (\r\n \r\n )\r\n }\r\n {\r\n apriModaleCreazioneArretrato\r\n && (\r\n \r\n )\r\n }\r\n
    \r\n );\r\n }\r\n}\r\n\r\nconst mapStoreToProps = (store) => ({\r\n codiceUfficio: store.utente.ufficioSelezionato.CodiceUfficio,\r\n});\r\n\r\nexport default checkServizio(Servizi.ANF)(connect(mapStoreToProps, null)(AssegnoNucleoFamiliareWrapper));\r\n","import React, { useCallback, useEffect } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport FwPlugins, { IFrame, usePluginReducer } from 'framework-plugins';\r\nimport Helmet from 'react-helmet';\r\nimport Servizi from 'enums/Servizi';\r\nimport Assistente from 'Assistente';\r\nimport { withRouter } from 'react-router';\r\nimport { setAnnoSelezionato } from '../../actions/dichiarativiActions';\r\nimport useSignalR from '../../helpers/useSignalR';\r\nimport { bindActionCreators } from '../../../node_modules/redux';\r\nimport checkServizio from '../../helpers/checkServizio';\r\nimport { trovaParametriPlugin } from './helpers';\r\n\r\nconst AssegnoUnicoUniversaleMonoanno = ({\r\n ufficio, annoSelezionato, impostaAnnoSelezionato, history,\r\n}) => {\r\n const ANNO_RILASCIO_INIZIALE_AUU = 2022;\r\n\r\n usePluginReducer(() => (\r\n {\r\n CAMBIO_ANNO_AUU: (payload) => {\r\n if (payload.Anno !== annoSelezionato) {\r\n impostaAnnoSelezionato(payload.Anno);\r\n // Al cambio anno è necessario modificare l'URL nella barra degli indirizzi,\r\n // perché l'applicazione è ospitata da Dashboard e l'URL che appare deve essere quello di Dashboard\r\n // Utilizziamo l'URL con cancelletto \"nuovo\", poiché è quello noto a ISEE OL\r\n window.location.href = '/#/AssegnoUnicoUniversaleMonoanno/lista-dichiarazioni';\r\n }\r\n },\r\n ASSISTENTE_APRIPERMALINK: (payload) => {\r\n Assistente.apriPermalink(payload);\r\n },\r\n PULISCI_PARAMETRI_QUERY_STRING: () => {\r\n if (window.location.href.indexOf('?') >= 0) {\r\n window.location.href = '/#/AssegnoUnicoUniversaleMonoanno/lista-dichiarazioni';\r\n }\r\n },\r\n }));\r\n\r\n const { idAnagrafica, annoCampagna } = trovaParametriPlugin();\r\n const objSrcParam = { codiceUfficio: ufficio, idanagrafica: idAnagrafica };\r\n const sendMessage = useCallback((title, message) => {\r\n FwPlugins.postMessageToChilds(title, message);\r\n }, []);\r\n\r\n useSignalR('DichiarazioneCreata', (data) => sendMessage('DichiarazioneCreata', data));\r\n useSignalR('DichiarazioneStatoModificato', (data) => sendMessage('DichiarazioneStatoModificato', data));\r\n useSignalR('DichiarazioneModificaStatoFallita', (data) => sendMessage('DichiarazioneModificaStatoFallita', data));\r\n useSignalR('DichiarazioneEliminata', (data) => sendMessage('DichiarazioneEliminata', data));\r\n useSignalR('StampaDichiarazioneCompletata', (data) => sendMessage('StampaDichiarazioneCompletata', data));\r\n\r\n useEffect(() => {\r\n if (annoCampagna && annoCampagna !== annoSelezionato) {\r\n impostaAnnoSelezionato(annoCampagna);\r\n }\r\n }, [annoCampagna, annoSelezionato, impostaAnnoSelezionato]);\r\n\r\n // Dobbiamo impostare l'URL per l'attributo src del componente IFrame del framework plugin\r\n // [é l'URL del servizio annuale da caricare]\r\n const urlAuuAnnoMonoanno = annoSelezionato == ANNO_RILASCIO_INIZIALE_AUU\r\n ? window.config.urlAssegnoUnicoUniversale\r\n : window.config.urlAssegnoUnicoUniversaleMonoanno\r\n .replace(\r\n '[annoADueCifre]',\r\n annoSelezionato.toString().slice(-2),\r\n );\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst mapStoreToProps = (store) => ({\r\n ufficio: store.utente.ufficioSelezionato.CodiceUfficio,\r\n annoSelezionato: store.dichiarativi.annoSelezionato,\r\n});\r\n\r\nconst mapDispatchToProps = (dispatch) => ({\r\n impostaAnnoSelezionato: bindActionCreators(setAnnoSelezionato, dispatch),\r\n});\r\n\r\nAssegnoUnicoUniversaleMonoanno.propTypes = {\r\n ufficio: PropTypes.string.isRequired,\r\n impostaAnnoSelezionato: PropTypes.func,\r\n};\r\n\r\nexport default checkServizio(Servizi.AUU)(connect(mapStoreToProps, mapDispatchToProps)(withRouter(AssegnoUnicoUniversaleMonoanno)));\r\n","export const trovaParametriPlugin = () => {\r\n const [, search] = window.location.href.split('?');\r\n const queryString = new URLSearchParams(search);\r\n const now = new Date().toISOString();\r\n const anno = new Date().getFullYear();\r\n\r\n const from = queryString.get('from');\r\n const idAnagrafica = queryString.get('idanagrafica') ?? '';\r\n const annoCampagna = now.substring(4) < window.config.dataCambioAnnoAUU.substring(4) ? anno - 1 : anno;\r\n\r\n return {\r\n idAnagrafica,\r\n annoCampagna: from === 'isee' ? annoCampagna : false,\r\n };\r\n};\r\n","const throttle = (func, limit) => {\r\n let lastFunc;\r\n let lastRan;\r\n return function () {\r\n const context = this;\r\n const args = arguments;\r\n if (!lastRan) {\r\n func.apply(context, args);\r\n lastRan = Date.now();\r\n } else {\r\n clearTimeout(lastFunc);\r\n lastFunc = setTimeout(() => {\r\n if ((Date.now() - lastRan) >= limit) {\r\n func.apply(context, args);\r\n lastRan = Date.now();\r\n }\r\n }, limit - (Date.now() - lastRan));\r\n }\r\n };\r\n };\r\n\r\n export default throttle;\r\n","import React from 'react';\r\nimport { Formatter, Grid, Badge } from 'framework-ui-components';\r\nimport PropTypes from 'prop-types';\r\n\r\n\r\nclass RigaOperazione extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.vaiAOperazione = this.vaiAOperazione.bind(this);\r\n }\r\n\r\n vaiAOperazione() {\r\n const {\r\n item: {\r\n Id,\r\n },\r\n } = this.props;\r\n\r\n window.location.hash = `#/elaborazionemassiva/${Id}`;\r\n }\r\n\r\n render() {\r\n const {\r\n item: {\r\n Id,\r\n Servizio,\r\n Operazione,\r\n Indeterminata,\r\n Totale,\r\n Elaborati,\r\n InEsecuzione,\r\n DataInizio,\r\n DataFine,\r\n },\r\n } = this.props;\r\n return (\r\n \r\n {Id} \r\n {Servizio}\r\n {Operazione}\r\n {InEsecuzione ? 'In corso' : 'Terminata' }\r\n\r\n \r\n {Indeterminata && '-'}\r\n {!Indeterminata && InEsecuzione && `${Math.floor((Elaborati / Totale) * 100)}%`}\r\n \r\n\r\n \r\n {DataInizio ? (\r\n \r\n \r\n {' - '}\r\n \r\n \r\n ) : '-'}\r\n \r\n \r\n {DataFine ? (\r\n \r\n \r\n {' - '}\r\n \r\n \r\n ) : '-'}\r\n \r\n\r\n \r\n );\r\n }\r\n}\r\n\r\nRigaOperazione.propTypes = {\r\n item: PropTypes.object.isRequired,\r\n};\r\n\r\nexport default RigaOperazione;\r\n","\r\n\r\nimport React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport {\r\n Badge, Button, Card, Grid, ODataTable, QueryOptions, Tabs, Toolbar, ButtonGroup,\r\n} from 'framework-ui-components';\r\nimport { SnackbarWrapper as SnackbarManager } from 'framework-ui-components/Components/Snackbar';\r\n\r\nimport { PageWrapper } from 'dashboard';\r\nimport throttle from '../../helpers/throttle';\r\nimport EventoServer from '../../libs/EventoServer';\r\nimport RigaOperazione from './RigaOperazione';\r\nimport { contatori } from '../../apis/elaborazioniMassiveApi';\r\n\r\nclass OperazioniMassive extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n showModal: false,\r\n dichiarazioni: [],\r\n stati: {},\r\n };\r\n\r\n this.initializeComponent();\r\n }\r\n\r\n componentWillMount() {\r\n this.caricaContatori(this.props.ufficioSelezionato.CodiceUfficio);\r\n }\r\n\r\n componentDidMount() {\r\n EventoServer.subscribe('ElaborazioneMassivaAvviata', this.ricarica);\r\n EventoServer.subscribe('ElaborazioneMassivaAvanzata', this.ricarica);\r\n EventoServer.subscribe('ElaborazioneMassivaCompletata', this.ricarica);\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (this.props.ufficioSelezionato.CodiceUfficio != nextProps.ufficioSelezionato.CodiceUfficio) {\r\n this.caricaContatori(nextProps.ufficioSelezionato.CodiceUfficio);\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n EventoServer.unsubscribe('ElaborazioneMassivaAvviata', this.ricarica);\r\n EventoServer.unsubscribe('ElaborazioneMassivaAvanzata', this.ricarica);\r\n EventoServer.unsubscribe('ElaborazioneMassivaCompletata', this.ricarica);\r\n }\r\n\r\n initializeComponent() {\r\n this.caricaContatori = this.caricaContatori.bind(this);\r\n this.ricarica = throttle(this.ricarica.bind(this), 5000);\r\n }\r\n\r\n caricaContatori(studio) {\r\n contatori(studio)\r\n .then((x) => {\r\n this.setState({ stati: x });\r\n });\r\n }\r\n\r\n ricarica() {\r\n this.caricaContatori(this.props.ufficioSelezionato.CodiceUfficio);\r\n this.tabellaDichiarazioni.loadPage();\r\n }\r\n\r\n render() {\r\n const { ufficioSelezionato } = this.props;\r\n const { stati } = this.state;\r\n\r\n const badgeConteggio = count => (count != 0 ? {count} : null);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n Tutte {badgeConteggio(stati.Totale)}}>\r\n this.tabellaDichiarazioni = r}\r\n hover\r\n clickable\r\n url={`/ElaborazioniMassive/Tutte?codiceUfficio=${ufficioSelezionato.CodiceUfficio}`}\r\n row={RigaOperazione}\r\n pageSize={10}\r\n availablePageSizes={[10, 20, 50]}\r\n >\r\n Seriale\r\n Servizio\r\n Operazione\r\n Stato\r\n Elementi elaborati\r\n Inizio elaborazione\r\n Fine elaborazione\r\n \r\n \r\n\r\n In corso {badgeConteggio(stati.InCorso)}}>\r\n this.tabellaDichiarazioni = r}\r\n hover\r\n clickable\r\n url={`/ElaborazioniMassive/InCorso?codiceUfficio=${ufficioSelezionato.CodiceUfficio}`}\r\n row={RigaOperazione}\r\n pageSize={10}\r\n availablePageSizes={[10, 20, 50]}\r\n >\r\n Seriale\r\n Servizio\r\n Operazione\r\n Stato\r\n Elementi elaborati\r\n Inizio elaborazione\r\n Fine elaborazione\r\n \r\n \r\n\r\n Terminate {badgeConteggio(stati.Terminate)}}>\r\n this.tabellaDichiarazioni = r}\r\n hover\r\n clickable\r\n url={`/ElaborazioniMassive/Terminate?codiceUfficio=${ufficioSelezionato.CodiceUfficio}`}\r\n row={RigaOperazione}\r\n pageSize={10}\r\n availablePageSizes={[10, 20, 50]}\r\n >\r\n Seriale\r\n Servizio\r\n Operazione\r\n Stato\r\n Elementi elaborati\r\n Inizio elaborazione\r\n Fine elaborazione\r\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 mapStoreToProps = store => ({\r\n ufficioSelezionato: store.utente.ufficioSelezionato,\r\n});\r\n\r\nOperazioniMassive.propTypes = {\r\n ufficioSelezionato: PropTypes.object,\r\n};\r\n\r\nexport default connect(mapStoreToProps)(OperazioniMassive);\r\n","import { WebRequest } from 'framework-ui-components';\r\n\r\nexport const contatori = codiceUfficio => WebRequest.get('ElaborazioniMassive/Contatori', { codiceUfficio });\r\n\r\nexport const contatoriDettagli = (codiceUfficio, id) => WebRequest.get('ElaborazioniMassive/ContatoriDettagli', { codiceUfficio, id });\r\n\r\nexport const elaborazioneMassiva = id => WebRequest.get('ElaborazioniMassive/Elaborazione', { id });\r\n\r\nexport const risultatoDisponibile = (id, codiceUfficio) => WebRequest.get('ElaborazioniMassive/RisultatoDisponibile', { id, codiceUfficio });\r\n","import React, { useState, useContext, useMemo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport FwPlugins, { IFrame, usePluginReducer } from 'framework-plugins';\r\nimport Helmet from 'react-helmet';\r\nimport { PageWrapper } from 'dashboard';\r\n\r\nconst OperazioniMassive = ({ ufficioSelezionato }) => {\r\n const [dettaglio, setDettaglio] = useState();\r\n\r\n\r\n usePluginReducer(() => ({\r\n APERTA_LISTA_OPERAZIONI: () => setDettaglio(null),\r\n 'APERTA OPERAZIONE': ({ Servizio, Operazione }) => setDettaglio(`${Servizio}-${Operazione}`),\r\n }));\r\n\r\n return (\r\n \r\n \r\n \r\n\r\n );\r\n};\r\n\r\nconst mapStoreToProps = store => ({\r\n ufficioSelezionato: store.utente.ufficioSelezionato,\r\n});\r\n\r\nOperazioniMassive.propTypes = {\r\n ufficioSelezionato: PropTypes.shape({\r\n CodiceUfficio: PropTypes.string,\r\n }).isRequired,\r\n};\r\n\r\nexport default connect(mapStoreToProps)(OperazioniMassive);\r\n","import React from 'react';\r\nimport Icon from './Icon';\r\n\r\nexport default Icon(, null, 'SuccessIcon');\r\n","import React from 'react';\r\nimport Icon from './Icon';\r\n\r\nexport default Icon(\r\n \r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n, '0 0 18 18', 'DownloadIcon',\r\n);\r\n","import React from 'react';\r\nimport Icon from './Icon';\r\n\r\nexport default Icon(\r\n // eslint-disable-next-line max-len\r\n ,\r\n null,\r\n 'AlertIcon',\r\n);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nconst RoundProgress = ({ percentuale }) => {\r\n const radius = 20;\r\n const stroke = 2;\r\n const progress = percentuale;\r\n const normalizedRadius = radius - stroke * 2;\r\n const circumference = normalizedRadius * 2 * Math.PI;\r\n const strokeDashoffset = circumference - progress / 100 * circumference;\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nRoundProgress.propTypes = {\r\n percentuale: PropTypes.number.isRequired,\r\n};\r\n\r\nexport default RoundProgress;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nfunction getCoordinatesForPercent(percent) {\r\n const x = Math.cos(2 * Math.PI * percent);\r\n const y = Math.sin(2 * Math.PI * percent);\r\n return [x, y];\r\n }\r\n\r\nconst PieChart = ({ errori, totale }) => {\r\n const slices = [\r\n { percent: errori / totale, color: '#e53935' },\r\n { percent: (totale - errori) / totale, color: '#2a9cf4' },\r\n ];\r\n let cumulativePercent = 0;\r\n\r\n\r\n const paths = slices.map((slice) => {\r\n const [startX, startY] = getCoordinatesForPercent(cumulativePercent);\r\n cumulativePercent += slice.percent;\r\n const [endX, endY] = getCoordinatesForPercent(cumulativePercent);\r\n const largeArcFlag = slice.percent > 0.5 ? 1 : 0;\r\n return { path: `M ${startX} ${startY} A 1 1 0 ${largeArcFlag} 1 ${endX} ${endY} L 0 0`, color: slice.color };\r\n });\r\n\r\n return (\r\n\r\n \r\n {paths.map(x => )}\r\n \r\n
    \r\n
    \r\n\r\n Positivo: {totale - errori} di {totale}
    \r\n Negativo: {errori} di {totale}
    \r\n\r\n
    \r\n);\r\n };\r\n\r\nPieChart.propTypes = {\r\n totale: PropTypes.number.isRequired,\r\n errori: PropTypes.number.isRequired,\r\n};\r\n\r\nexport default PieChart;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\n\r\nconst RigaDettaglioOperazione = ({\r\n item: {\r\n Id,\r\n Successo,\r\n Descrizione,\r\n Riferimento,\r\n Nota,\r\n },\r\n additionalRowData,\r\n}) => (\r\n \r\n {Descrizione} \r\n {Successo ? 'Positivo' : 'Negativo'}\r\n {Nota}\r\n {additionalRowData.IndicaRiferimenti && {Riferimento}}\r\n \r\n);\r\n\r\nRigaDettaglioOperazione.propTypes = {\r\n item: PropTypes.object.isRequired,\r\n additionalRowData: PropTypes.object.isRequired,\r\n};\r\n\r\nexport default RigaDettaglioOperazione;\r\n","import React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport {\r\n Badge,\r\n Button,\r\n Card,\r\n Grid,\r\n ODataTable,\r\n Tabs,\r\n Heading,\r\n Panel,\r\n Formatter,\r\n InfoTooltip,\r\n Snackbar,\r\n} from 'framework-ui-components';\r\nimport SuccessIcon from 'framework-ui-components/Components/Icons/SuccessIcon';\r\nimport DownloadIcon from 'framework-ui-components/Components/Icons/DownloadIcon';\r\nimport AlertIcon from 'framework-ui-components/Components/Icons/AlertIcon';\r\nimport PageWrapper from '../../components/PageWrapper';\r\nimport RoundProgress from '../../components/RoundProgress';\r\nimport PieChart from '../../components/PieChart';\r\nimport EventoServer from '../../libs/EventoServer';\r\nimport RigaDettaglioOperazione from './RigaDettaglioOperazione';\r\nimport {\r\n contatoriDettagli,\r\n elaborazioneMassiva,\r\n risultatoDisponibile,\r\n} from '../../apis/elaborazioniMassiveApi';\r\nimport throttle from '../../helpers/throttle';\r\n\r\nclass DettaglioOperazione extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n idElaborazione: props.match.params.id,\r\n stati: {},\r\n Servizio: '',\r\n Operazione: '',\r\n Esito: null,\r\n IndicaRiferimenti: false,\r\n Indeterminata: false,\r\n Totale: 0,\r\n InEsecuzione: false,\r\n Elaborati: 0,\r\n DataInizio: null,\r\n DataFine: null,\r\n OperazioniAggiuntive: null,\r\n DettagliAggiuntivi: null,\r\n UrlRisultato: null,\r\n DescrizioneUrlRisultato: null,\r\n RisultatoDisponibile: null,\r\n downloading: false,\r\n };\r\n\r\n this.initializeComponent();\r\n }\r\n\r\n componentWillMount() {\r\n const { ufficioSelezionato } = this.props;\r\n this.caricaContatori(ufficioSelezionato.CodiceUfficio);\r\n }\r\n\r\n componentDidMount() {\r\n EventoServer.subscribe('ElaborazioneMassivaAvanzata', this.ricarica);\r\n EventoServer.subscribe('ElaborazioneMassivaCompletata', this.ricarica);\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n const { ufficioSelezionato } = this.props;\r\n\r\n if (ufficioSelezionato.CodiceUfficio !== nextProps.ufficioSelezionato.CodiceUfficio) {\r\n this.caricaContatori(nextProps.ufficioSelezionato.CodiceUfficio);\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n EventoServer.unsubscribe('ElaborazioneMassivaAvanzata', this.ricarica);\r\n EventoServer.unsubscribe('ElaborazioneMassivaCompletata', this.ricarica);\r\n }\r\n\r\n initializeComponent = () => {\r\n this.caricaContatori = this.caricaContatori.bind(this);\r\n this.ricarica = throttle(this.ricarica.bind(this), 5000);\r\n }\r\n\r\n caricaContatori = (studio) => {\r\n const { idElaborazione } = this.state;\r\n contatoriDettagli(studio, idElaborazione).then((x) => {\r\n this.setState({ stati: x });\r\n });\r\n elaborazioneMassiva(idElaborazione).then((x) => {\r\n if (x && x.UrlRisultato) {\r\n risultatoDisponibile(idElaborazione, studio).then(r => this.setState(r));\r\n } else {\r\n x.RisultatoDisponibile = false;\r\n }\r\n this.setState(x);\r\n });\r\n }\r\n\r\n ricarica = () => {\r\n const { ufficioSelezionato: { CodiceUfficio } } = this.props;\r\n this.caricaContatori(CodiceUfficio);\r\n this.tabellaDichiarazioni.loadPage();\r\n }\r\n\r\n downloadRisultato = () => {\r\n const { UrlRisultato, idElaborazione } = this.state;\r\n const { ufficioSelezionato } = this.props;\r\n if (UrlRisultato) {\r\n window.location = `/ElaborazioniMassive/DownloadRisultato?codiceUfficio=${\r\n ufficioSelezionato.CodiceUfficio\r\n }&id=${idElaborazione}`;\r\n /*\r\n const { ufficioSelezionato: { CodiceUfficio } } = this.props;\r\n const { idElaborazione } = this.state;\r\n this.setState({ downloading: true }, () => {\r\n getDownloadRisultato(idElaborazione, CodiceUfficio)\r\n .then((response) => {\r\n const fileName = WebRequest.getFileNameFromGetFileResponse(response) || 'Report.xls';\r\n saveAs(response.data, fileName);\r\n this.setState({ downloading: false });\r\n });\r\n });\r\n */\r\n }\r\n };\r\n\r\n showError = (errore) => {\r\n Snackbar.show({\r\n type: Snackbar.Types.ERROR,\r\n message: errore || 'Si è verificato un errore durante il download',\r\n });\r\n };\r\n\r\n render() {\r\n const { ufficioSelezionato } = this.props;\r\n const {\r\n stati,\r\n InEsecuzione,\r\n Totale,\r\n Elaborati,\r\n Servizio,\r\n Operazione,\r\n DataInizio,\r\n DataFine,\r\n Indeterminata,\r\n OperazioniAggiuntive,\r\n DettagliAggiuntivi,\r\n Esito,\r\n DescrizioneUrlRisultato,\r\n UrlRisultato,\r\n RisultatoDisponibile,\r\n downloading,\r\n idElaborazione,\r\n IndicaRiferimenti,\r\n } = this.state;\r\n\r\n const operazioni = JSON.parse(OperazioniAggiuntive) || [];\r\n const dettagli = JSON.parse(DettagliAggiuntivi) || [];\r\n const badgeConteggio = count => (count !== 0 ? {count} : null);\r\n const badgeAlarmConteggio = count => (count !== 0 ? {count} : null);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Stato Elaborazione:\r\n \r\n \r\n {InEsecuzione && !Indeterminata && (\r\n \r\n )}\r\n {!InEsecuzione && (\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n {!Indeterminata && InEsecuzione && (\r\n {Math.floor((Elaborati / Totale) * 100)} % - \r\n )}\r\n {InEsecuzione ? 'In corso' : 'Terminata'}\r\n \r\n \r\n {!Indeterminata && (\r\n \r\n Elementi Elaborati:{' '}\r\n {InEsecuzione ? (\r\n \r\n {Elaborati} di {Totale}\r\n \r\n ) : (\r\n {Totale}\r\n )}\r\n
    \r\n
    \r\n
    \r\n )}\r\n Inizio Elaborazione:{' '}\r\n {DataInizio && (\r\n \r\n -{' '}\r\n
    \r\n
    \r\n )}\r\n {DataFine && (\r\n \r\n {' '}\r\n Fine Elaborazione: -{' '}\r\n \r\n
    \r\n
    \r\n )}\r\n {RisultatoDisponibile !== null && (\r\n \r\n {UrlRisultato && RisultatoDisponibile && DescrizioneUrlRisultato && (\r\n \r\n \r\n {DescrizioneUrlRisultato}\r\n \r\n \r\n )}\r\n {!UrlRisultato && DescrizioneUrlRisultato && (\r\n \r\n \r\n \r\n \r\n {DescrizioneUrlRisultato}\r\n \r\n )}\r\n {UrlRisultato && !RisultatoDisponibile && (\r\n \r\n \r\n \r\n \r\n {\"L'esito non è più disponibile \"}\r\n \r\n I documenti generati restano disponibili al download per un periodo di\r\n tempo limitato. Effettua una nuova elaborazione per ottenere un nuovo\r\n risultato.\r\n \r\n \r\n )}\r\n \r\n )}\r\n
    \r\n \r\n {!InEsecuzione && (\r\n
    \r\n \r\n Esito elaborazione {Esito && {Esito}}\r\n \r\n \r\n
    \r\n )}\r\n
    \r\n \r\n {(operazioni.length > 0 || dettagli.length > 0) && (\r\n \r\n Dettagli elaborazione\r\n {operazioni.length > 0 && (\r\n
    \r\n {operazioni.length > 0 && (\r\n Operazioni aggiuntive eseguite\r\n )}\r\n {operazioni.map((x, j) => (\r\n \r\n {x.Descrizione} {x.Numero}{' '}\r\n {x.Dettagli && (\r\n \r\n (di cui{' '}\r\n {x.Dettagli.map((z, i) => (\r\n \r\n {z.Descrizione} {z.Numero}\r\n {i + 1 < x.Dettagli.length && , }\r\n \r\n ))}\r\n )\r\n \r\n )}\r\n {j + 1 < operazioni.length && - }\r\n \r\n ))}\r\n {operazioni.length > 0 && .}\r\n
    \r\n )}\r\n\r\n {dettagli.length > 0 && (\r\n \r\n {dettagli.map((x, j) => (\r\n
    \r\n {x.Descrizione}\r\n \r\n {x.Dettagli\r\n && x.Dettagli.map((z, i) => (\r\n \r\n {z}\r\n {i + 1 < x.Dettagli.length && - }\r\n \r\n ))}\r\n {x.Dettagli.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 Tutti {badgeConteggio(stati.Totale)}
    }>\r\n { this.tabellaDichiarazioni = r; }}\r\n hover\r\n clickable\r\n url={`/ElaborazioniMassive/TuttiDettagli?codiceUfficio=${\r\n ufficioSelezionato.CodiceUfficio\r\n }&id=${idElaborazione}`}\r\n row={RigaDettaglioOperazione}\r\n pageSize={10}\r\n availablePageSizes={[10, 20, 50]}\r\n additionalRowData={{ IndicaRiferimenti }}\r\n >\r\n Descrizione\r\n Esito\r\n Nota Esito\r\n {IndicaRiferimenti && (\r\n \r\n Riferimento Esito\r\n \r\n )}\r\n \r\n \r\n\r\n Esito positivo {badgeConteggio(stati.Positivo)}
    }>\r\n { this.tabellaDichiarazioni = r; }}\r\n hover\r\n clickable\r\n url={`/ElaborazioniMassive/DettagliPositivi?codiceUfficio=${\r\n ufficioSelezionato.CodiceUfficio\r\n }&id=${idElaborazione}`}\r\n row={RigaDettaglioOperazione}\r\n pageSize={10}\r\n availablePageSizes={[10, 20, 50]}\r\n additionalRowData={{ IndicaRiferimenti }}\r\n >\r\n Descrizione\r\n Esito\r\n Nota Esito\r\n {IndicaRiferimenti && (\r\n \r\n Riferimento Esito\r\n \r\n )}\r\n \r\n \r\n\r\n Esito negativo {badgeAlarmConteggio(stati.Negativo)}}\r\n >\r\n { this.tabellaDichiarazioni = r; }}\r\n hover\r\n clickable\r\n url={`/ElaborazioniMassive/DettagliNegativi?codiceUfficio=${\r\n ufficioSelezionato.CodiceUfficio\r\n }&id=${idElaborazione}`}\r\n row={RigaDettaglioOperazione}\r\n pageSize={10}\r\n availablePageSizes={[10, 20, 50]}\r\n additionalRowData={{ IndicaRiferimenti }}\r\n >\r\n Descrizione\r\n Esito\r\n Nota Esito\r\n {IndicaRiferimenti && (\r\n \r\n Riferimento Esito\r\n \r\n )}\r\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 mapStoreToProps = store => ({\r\n ufficioSelezionato: store.utente.ufficioSelezionato,\r\n});\r\n\r\nDettaglioOperazione.propTypes = {\r\n ufficioSelezionato: PropTypes.shape({\r\n CodiceUfficio: PropTypes.string,\r\n }).isRequired,\r\n match: PropTypes.shape({\r\n params: PropTypes.shape({\r\n id: PropTypes.string.isRequired,\r\n }),\r\n }).isRequired,\r\n};\r\n\r\nexport default connect(mapStoreToProps)(DettaglioOperazione);\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 getStoredSessionItem,\r\n setStoredSessionItem,\r\n};\r\n","const SESSION_IMU_NUOVO = 'imuSelezionato';\r\n\r\nexport {\r\n // eslint-disable-next-line import/prefer-default-export\r\n SESSION_IMU_NUOVO,\r\n};\r\n","import React, { useCallback, useState, useEffect } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport FwPlugins, { IFrame, usePluginReducer } from 'framework-plugins';\r\nimport Helmet from 'react-helmet';\r\nimport Assistente from 'Assistente';\r\nimport useSignalR from '../../helpers/useSignalR';\r\nimport { getStoredSessionItem, setStoredSessionItem } from './storeSession';\r\nimport { SESSION_IMU_NUOVO } from './session';\r\n\r\nconst Imu = ({ ufficio }) => {\r\n const [imuNuovo, setImuNuovo] = useState(true);\r\n const [annoSelezionato, setAnnoSelezionato] = useState(null);\r\n\r\n const refreshCalcoliImu = useCallback(() => {\r\n FwPlugins.postMessageToChilds('REFRESH_CALCOLI_IMU', null);\r\n }, []);\r\n\r\n usePluginReducer(() => ({\r\n CAMBIO_ANNO_IMU: (anno) => {\r\n setAnnoSelezionato(anno);\r\n setStoredSessionItem(SESSION_IMU_NUOVO, anno > 2020);\r\n setImuNuovo(anno > 2020);\r\n },\r\n ASSISTENTE_APRIPERMALINK: (payload) => {\r\n Assistente.apriPermalink(payload);\r\n },\r\n }), []);\r\n\r\n useEffect(() => {\r\n if (getStoredSessionItem(SESSION_IMU_NUOVO) !== null) {\r\n setImuNuovo(getStoredSessionItem(SESSION_IMU_NUOVO) === 'true');\r\n }\r\n }, []);\r\n\r\n useSignalR('SegnalibroModificato', refreshCalcoliImu);\r\n useSignalR('DichiarazioneEliminata', refreshCalcoliImu);\r\n useSignalR('AnagraficaDichiarazioneModificata', refreshCalcoliImu);\r\n\r\n return (\r\n \r\n \r\n {imuNuovo && (\r\n \r\n )}\r\n {!imuNuovo && (\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nconst mapStoreToProps = (store) => ({\r\n ufficio: store.utente.ufficioSelezionato.CodiceUfficio,\r\n});\r\n\r\nImu.propTypes = {\r\n ufficio: PropTypes.string.isRequired,\r\n};\r\n\r\nexport default connect(mapStoreToProps)(Imu);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport { IFrame } from 'framework-plugins';\r\nimport Helmet from 'react-helmet';\r\n\r\nconst Firme = ({ ufficio }) => {\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nFirme.propTypes = {\r\n ufficio: PropTypes.string.isRequired,\r\n};\r\n\r\nconst mapStoreToProps = store => ({\r\n ufficio: store.utente.ufficioSelezionato.CodiceUfficio,\r\n});\r\n\r\nFirme.propTypes = {\r\n ufficio: PropTypes.string.isRequired,\r\n};\r\n\r\nexport default connect(mapStoreToProps)(Firme);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport { Helmet } from 'react-helmet';\r\nimport { IFrame } from 'framework-plugins';\r\n\r\nconst ServiziCittadino = ({ ufficio }) => (\r\n \r\n \r\n \r\n \r\n);\r\n\r\nconst mapStoreToProps = (store) => ({\r\n ufficio: store.utente.ufficioSelezionato.CodiceUfficio,\r\n});\r\n\r\nServiziCittadino.propTypes = {\r\n ufficio: PropTypes.string.isRequired,\r\n};\r\n\r\nexport default connect(mapStoreToProps)(ServiziCittadino);","import React, { useCallback } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport FwPlugins, { IFrame } from 'framework-plugins';\r\nimport Helmet from 'react-helmet';\r\nimport useSignalR from '../../helpers/useSignalR';\r\n\r\nconst MODELLO_DISOCCUPAZIONI = 30;\r\n\r\nconst Disoccupazioni = ({ ufficioSelezionato }) => {\r\n const refreshDichiarazioniDisoccupazioni = useCallback((evt) => {\r\n if (evt.Modello === MODELLO_DISOCCUPAZIONI) {\r\n FwPlugins.postMessageToChilds('REFRESH_DICHIARAZIONI_DISOCCUPAZIONI', null);\r\n }\r\n }, []);\r\n\r\n useSignalR('DichiarazioneStatoModificato', refreshDichiarazioniDisoccupazioni);\r\n useSignalR('DichiarazioneEliminata', refreshDichiarazioniDisoccupazioni);\r\n useSignalR('DichiarazioneEliminataFisicamente', refreshDichiarazioniDisoccupazioni);\r\n useSignalR('AnagraficaDichiarazioneModificata', refreshDichiarazioniDisoccupazioni);\r\n useSignalR('DichiarazioneDatiAggiuntiviModificati', refreshDichiarazioniDisoccupazioni);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst mapStoreToProps = (store) => ({\r\n ufficioSelezionato: store.utente.ufficioSelezionato.CodiceUfficio,\r\n});\r\n\r\nDisoccupazioni.propTypes = {\r\n ufficioSelezionato: PropTypes.string.isRequired,\r\n};\r\n\r\nexport default connect(mapStoreToProps)(Disoccupazioni);\r\n","import React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport { Switch, Route } from 'react-router-dom';\r\nimport {\r\n Application, Tour,\r\n} from 'framework-ui-components';\r\nimport { SnackbarWrapper as SnackbarManager } from 'framework-ui-components/Components/Snackbar';\r\nimport FwPlugins from 'framework-plugins';\r\nimport {\r\n cambiaUfficio,\r\n attivaTour730,\r\n disattivaTour730,\r\n attivaTourRichiesteEnti,\r\n disattivaTourRichiesteEnti,\r\n attivaTourImu,\r\n disattivaTourImu,\r\n} from 'actions/utenteActions';\r\nimport MenuHome from 'Home';\r\nimport MenuGeco from 'GeCo';\r\nimport Assistente from 'Assistente';\r\nimport { MenuUtente } from 'framework-ui-components/Components/V2';\r\nimport PrestazioniAgevolate from '../../areas/PrestazioniAgevolate';\r\nimport Visureipocatastali from '../../areas/Visureipocatastali';\r\nimport Isee from '../../areas/Isee';\r\nimport Home from '../../areas/Home';\r\nimport HomeSetteTrenta from '../../areas/SetteTrenta';\r\nimport SetteTrentaNew from '../../areas/SetteTrentaNew';\r\nimport RichiesteEnti from '../../areas/RichiesteEnti';\r\nimport Successioni from '../../areas/Successioni';\r\nimport ANF from '../../areas/ANF';\r\nimport AssegnoUnicoUniversaleMonoanno from '../../areas/AssegnoUnicoUniversaleMonoanno';\r\nimport ElaborazioniMassive from '../../areas/ElaborazioniMassive';\r\nimport ElaborazioniMassiveNew from '../../areas/ElaborazioniMassiveNew';\r\nimport DettaglioOperazione from '../../areas/ElaborazioniMassive/DettaglioOperazione';\r\nimport Imu from '../../areas/Imu';\r\nimport Firme from '../../areas/Firme';\r\nimport ServiziCittadino from '../../areas/ServiziCittadino';\r\nimport Disoccupazioni from '../../areas/Disoccupazioni';\r\n\r\nclass AppContainer extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.menuHomePlaceHolderRef = React.createRef();\r\n this.menuAssistentePlaceHolderRef = React.createRef();\r\n }\r\n\r\n componentDidMount() {\r\n this.menuHomePlaceHolderRef.current.addEventListener('click', this.onClickCheck, true);\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (this.props.ufficio.CodiceUfficio != nextProps.ufficio.CodiceUfficio) {\r\n SnackbarManager.notifySuccess(`Hai selezionato l'ufficio ${nextProps.ufficio.CodiceUfficio}.`);\r\n this.props.history.push(this.props.history.location.pathname);\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n this.menuHomePlaceHolderRef.current.removeEventListener('click', this.onClickCheck, true);\r\n }\r\n\r\n onClickCheck = (event) => {\r\n FwPlugins.clickOutEventFilter(event);\r\n };\r\n\r\n checkFunction = (funct) => {\r\n FwPlugins.clickOutFunctionFilter(funct);\r\n };\r\n\r\n cambiaUfficio(x) {\r\n MenuGeco.cambiaUfficio(x.CodiceUfficio);\r\n MenuHome.cambiaUfficio(x.CodiceUfficio);\r\n Assistente.impostaUfficio(x.CodiceUfficio);\r\n window.localStorage && window.localStorage.setItem('CodiceUfficio', x.CodiceUfficio);\r\n this.props.cambiaUfficio(x);\r\n // invio messaggio ad eventuali iframes\r\n FwPlugins.postMessageToChilds(FwPlugins.PluginMessageTypes.CHANGE_OFFICE, x.CodiceUfficio);\r\n }\r\n\r\n vaiAdAssistente() {\r\n switch (window.datiUtente.ServizioSelezionato) {\r\n case '7OLRIC':\r\n window.open(`https://assistente.cgn.it/Permalink/Area/730?codiceUfficio=${this.props.ufficio.CodiceUfficio}`);\r\n break;\r\n case '7OL':\r\n window.open(`https://assistente.cgn.it/Permalink/Area/730?codiceUfficio=${this.props.ufficio.CodiceUfficio}`);\r\n break;\r\n case 'SUC':\r\n window.open(`https://assistente.cgn.it/Permalink/Area/SUC?codiceUfficio=${this.props.ufficio.CodiceUfficio}`);\r\n break;\r\n case 'RIC':\r\n window.open(`https://assistente.cgn.it/Permalink/Area/RIC?codiceUfficio=${this.props.ufficio.CodiceUfficio}`);\r\n break;\r\n case 'IMU':\r\n window.open(`https://assistente.cgn.it/Permalink/Area/ICI?codiceUfficio=${this.props.ufficio.CodiceUfficio}`);\r\n break;\r\n case 'ANF':\r\n window.open('https://assistente.cgn.it/#/Area/73/Dossier/224');\r\n break;\r\n case 'AUU':\r\n window.open('https://assistente.cgn.it/#/Area/73/Ricerca/AUU/');\r\n break;\r\n case 'VIP':\r\n window.open(`https://assistente.cgn.it/Permalink/Area/VIP?codiceUfficio=${this.props.ufficio.CodiceUfficio}`);\r\n break;\r\n case 'DIS':\r\n window.open(`https://assistente.cgn.it/Permalink/Area/DIS?codiceUfficio=${this.props.ufficio.CodiceUfficio}`);\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n areaAssistente() {\r\n if (window.location.hash.startsWith('#/SetteTrenta')\r\n || window.location.hash.startsWith('#/NewSetteTrenta')) {\r\n return '730';\r\n }\r\n\r\n if (window.location.hash.startsWith('#/successioni')) {\r\n return 'SUC';\r\n }\r\n\r\n if (window.location.hash.startsWith('#/richiesteenti')) {\r\n return 'RIC';\r\n }\r\n\r\n if (window.location.hash.startsWith('#/imu')) {\r\n return 'ICI';\r\n }\r\n\r\n if (window.location.hash.startsWith('#/ANF')) {\r\n return 'ANF';\r\n }\r\n\r\n if (window.location.hash.startsWith('#/AssegnoUnicoUniversaleMonoanno')) {\r\n return 'AUU';\r\n }\r\n\r\n if (window.location.hash.startsWith('#/firme')) {\r\n return 'FEA';\r\n }\r\n\r\n if (window.location.hash.startsWith('#/isee')) {\r\n return 'ISE';\r\n }\r\n\r\n if (window.location.hash.startsWith('#/prestazioniagevolate')) {\r\n return 'ISE';\r\n }\r\n\r\n if (window.location.hash.startsWith('#/ServiziCittadino')) {\r\n return 'SCI';\r\n }\r\n\r\n if (window.location.hash.startsWith('#/visureipocatastali')) {\r\n return 'VIP';\r\n }\r\n\r\n if (window.location.hash.startsWith('#/disoccupazioni')) {\r\n return 'DIS';\r\n }\r\n }\r\n\r\n areaQuesiti() {\r\n if (window.location.hash.startsWith('#/NewSetteTrenta/richieste-enti')) {\r\n return 'RIC';\r\n }\r\n\r\n if (window.location.hash.startsWith('#/SetteTrenta')\r\n || window.location.hash.startsWith('#/NewSetteTrenta')) {\r\n return '730';\r\n }\r\n\r\n if (window.location.hash.startsWith('#/successioni')) {\r\n return 'SUC';\r\n }\r\n\r\n if (window.location.hash.startsWith('#/richiesteenti')) {\r\n return 'RIC';\r\n }\r\n\r\n if (window.location.hash.startsWith('#/imu')) {\r\n return 'ICI';\r\n }\r\n\r\n if (window.location.hash.startsWith('#/ANF')) {\r\n return 'ANF';\r\n }\r\n\r\n if (window.location.hash.startsWith('#/AssegnoUnicoUniversaleMonoanno')) {\r\n return 'AUU';\r\n }\r\n\r\n if (window.location.hash.startsWith('#/firme')) {\r\n return 'FEA';\r\n }\r\n\r\n if (window.location.hash.startsWith('#/isee')) {\r\n return 'ISE';\r\n }\r\n\r\n if (window.location.hash.startsWith('#/prestazioniagevolate')) {\r\n return 'ISE';\r\n }\r\n\r\n if (window.location.hash.startsWith('#/ServiziCittadino')) {\r\n return 'SCI';\r\n }\r\n\r\n if (window.location.hash.startsWith('#/visureipocatastali')) {\r\n return 'VIP';\r\n }\r\n\r\n if (window.location.hash.startsWith('#/disoccupazioni')) {\r\n return 'DIS';\r\n }\r\n }\r\n\r\n disattivaTour730() {\r\n localStorage.setItem('tour-730-attivo', 'no');\r\n localStorage.setItem('tour-730-attivo-data', new Date().toISOString());\r\n this.props.disattivaTour730();\r\n }\r\n\r\n disattivaTourRichiesteEnti() {\r\n localStorage.setItem('tour-richiesteenti-attivo2', 'no');\r\n this.props.disattivaTourRichiesteEnti();\r\n }\r\n\r\n disattivaTourImu() {\r\n localStorage.setItem('tour-imu-attivo', 'no');\r\n this.props.disattivaTourImu();\r\n }\r\n\r\n aggiungiGiorniAData(date, days) {\r\n date.setDate(date.getDate() + days);\r\n return date;\r\n }\r\n\r\n render() {\r\n const {\r\n attivaTour730,\r\n attivaTourRichiesteEnti,\r\n attivaTourImu,\r\n children,\r\n profilo,\r\n ufficio,\r\n location,\r\n tourRichiesteEntiAttivo,\r\n } = this.props;\r\n\r\n const areaSettetrentaAttiva = location.pathname.startsWith('/SetteTrenta');\r\n const tour730Attivo = this.props.tour730Attivo || localStorage.getItem('tour-730-attivo') != 'no';\r\n const tour730AttivoData = localStorage.getItem('tour-730-attivo-data');\r\n\r\n const areaRichiesteEntiAttiva = location.pathname.startsWith('/richiesteenti') || location.pathname.startsWith('/SetteTrenta/RichiesteEnti');\r\n\r\n const areaImuAttiva = location.pathname.startsWith('/imu');\r\n const tourImuAttivo = this.props.tourImuAttivo || localStorage.getItem('tour-imu-attivo') != 'no';\r\n\r\n setTimeout(() => MenuGeco.inizializzaMenuPlugin(window.config.urlSupport, this.props.profilo.IdentificativoUtente, this.props.ufficio.CodiceUfficio, document.getElementById('menuGeCoPlaceHolder'), null, 'drawer', this.areaQuesiti()));\r\n setTimeout(() => MenuHome.inizializza(window.config.urlHome, this.props.profilo.IdentificativoUtente, this.props.ufficio.CodiceUfficio, document.getElementById('menuHomePlaceHolder')));\r\n setTimeout(() => Assistente.inizializza(window.config.urlAssistente, this.props.profilo.IdentificativoUtente, this.props.ufficio.CodiceUfficio, this.areaAssistente(), document.getElementById('menuAssistentePlaceHolder')));\r\n\r\n return (\r\n \r\n }>\r\n \r\n \r\n \r\n uff.CodiceUfficio)}\r\n ufficioSelezionato={ufficio.CodiceUfficio}\r\n onUfficioChange={(CodiceUfficio) => {\r\n const ufficioSelected = profilo.Uffici.find((uff) => uff.CodiceUfficio === CodiceUfficio);\r\n this.checkFunction(() => this.cambiaUfficio(ufficioSelected));\r\n }}\r\n myCgnUrl={window.config.portaleUnicoUrl}\r\n accountsUrl={window.config.accountsUrl}\r\n onLogout={(url) => window.location.replace(`${url}?redirectUri=${window.datiUtente.RedirectUri}`)}\r\n />\r\n \r\n \r\n {children}\r\n\r\n {/* Routing */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {window.config.operazioniPluginEnabled === 'true' && }\r\n {window.config.operazioniPluginEnabled !== 'true' && }\r\n {window.config.operazioniPluginEnabled !== 'true' && }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {tour730Attivo && areaSettetrentaAttiva\r\n && (\r\n \r\n )}\r\n\r\n {tourRichiesteEntiAttivo && areaRichiesteEntiAttiva\r\n && (\r\n \r\n )}\r\n\r\n {false // DISATTIVATO //tourImuAttivo && areaImuAttiva\r\n && (\r\n \r\n )}\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nconst mapStoreToProps = (store) => ({\r\n profilo: store.utente.profilo,\r\n ufficio: store.utente.ufficioSelezionato,\r\n tour730Attivo: store.utente.tour730Attivo,\r\n tourRichiesteEntiAttivo: store.utente.tourRichiesteEntiAttivo,\r\n tourImuAttivo: store.utente.tourImuAttivo,\r\n});\r\n\r\nconst mapDispatchToProps = (dispatch) => ({\r\n cambiaUfficio: bindActionCreators(cambiaUfficio, dispatch),\r\n attivaTour730: bindActionCreators(attivaTour730, dispatch),\r\n disattivaTour730: bindActionCreators(disattivaTour730, dispatch),\r\n attivaTourRichiesteEnti: bindActionCreators(attivaTourRichiesteEnti, dispatch),\r\n disattivaTourRichiesteEnti: bindActionCreators(disattivaTourRichiesteEnti, dispatch),\r\n attivaTourImu: bindActionCreators(attivaTourImu, dispatch),\r\n disattivaTourImu: bindActionCreators(disattivaTourImu, dispatch),\r\n});\r\n\r\nAppContainer.propTypes = {\r\n cambiaUfficio: PropTypes.func,\r\n attivaTour730: PropTypes.func,\r\n disattivaTour730: PropTypes.func,\r\n disattivaTourRichiesteEnti: PropTypes.func,\r\n disattivaTourImu: PropTypes.func,\r\n children: PropTypes.any,\r\n profilo: PropTypes.object,\r\n ufficio: PropTypes.object,\r\n};\r\n\r\nAppContainer.contextTypes = {\r\n router: PropTypes.object,\r\n};\r\n\r\nexport default connect(mapStoreToProps, mapDispatchToProps)(AppContainer);\r\n","import React, { Component, Fragment } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { bindActionCreators } from 'redux';\r\nimport { connect } from 'react-redux';\r\nimport { Route } from 'react-router-dom';\r\nimport Helmet from 'react-helmet';\r\nimport Snackbar, {\r\n SnackbarWrapper as SnackbarManager,\r\n} from 'framework-ui-components/Components/Snackbar';\r\nimport MenuGeco from 'GeCo';\r\nimport { stopLoadingApplication } from 'actions/applicationActions';\r\nimport { AppContainer, LoadingPanel } from 'dashboard';\r\nimport StatoDichiarazione from 'enums/StatoDichiarazione';\r\nimport FwPlugins from 'framework-plugins';\r\nimport Assistente from 'Assistente';\r\nimport EventoServer from '../../libs/EventoServer';\r\n\r\nclass LayoutContext extends Component {\r\n componentDidMount() {\r\n EventoServer.subscribe(\r\n 'DichiarazioneEliminata',\r\n this.notificaDichiarazioneEliminata,\r\n );\r\n EventoServer.subscribe(\r\n 'DichiarazioneStatoModificato',\r\n this.notificaDichiarazioneStatoModificato,\r\n );\r\n EventoServer.subscribe(\r\n 'DichiarazioneModificaStatoFallita',\r\n this.notificaDichiarazioneCambioStatoFallito,\r\n );\r\n EventoServer.subscribe(\r\n 'OperazioneMassivaCompletata',\r\n this.notificaOperazioneMassivaCompletata,\r\n );\r\n EventoServer.subscribe(\r\n 'DichiarazioneIntegrativaCreata',\r\n this.notificaDichiarazioneIntegrativaCreata,\r\n );\r\n EventoServer.subscribe(\r\n 'DichiarazioneCreata',\r\n this.notificaDichiarazioneCreata,\r\n );\r\n EventoServer.subscribe(\r\n 'StampaDichiarazioneCompletata',\r\n this.notificaStampaCompletata,\r\n );\r\n EventoServer.subscribe(\r\n 'ImportazioneSetteTrentaDaXmlAnnoCorrenteAvviata',\r\n this.notificaImportazioneDichiarazioneDaXmlAvviata,\r\n );\r\n EventoServer.subscribe(\r\n 'ImportazioneDichiarazioneDaXmlTerminata',\r\n this.notificaImportazioneDichiarazioneDaXmlTerminata,\r\n );\r\n EventoServer.subscribe(\r\n 'CreaSetteTrentaDaXmlAnnoCorrenteFallito',\r\n this.notificaCreaSetteTrentaDaXmlAnnoCorrenteFallito,\r\n );\r\n EventoServer.subscribe(\r\n 'ImportazioneDichiarazioneDaXmlImportata',\r\n this.notificaImportazioneDichiarazioneDaXmlImportata,\r\n );\r\n EventoServer.subscribe(\r\n 'ImportazioneDichiarazioneDaXmlCompletata',\r\n this.notificaImportazioneDichiarazioneDaXmlCompletata,\r\n );\r\n EventoServer.subscribe(\r\n 'ImportazioneDichiarazioneDaXmlNonCompletata',\r\n this.notificaImportazioneDichiarazioneDaXmlCompletata,\r\n );\r\n EventoServer.subscribe(\r\n 'ImportazioneCertificazioniTerminata',\r\n this.notificaImportazioneCertificazioniTerminata,\r\n );\r\n EventoServer.subscribe(\r\n 'ImportazioneSetteTrentaDaRedditiPFAnnoCorrenteAvviata',\r\n this.notificaImportazioneDichiarazioneDaRedditiPFAvviata,\r\n );\r\n EventoServer.subscribe(\r\n 'ImportazioneDichiarazioneDaRedditiPFTerminata',\r\n this.notificaImportazioneDichiarazioneDaRedditiPFTerminata,\r\n );\r\n EventoServer.subscribe(\r\n 'CreaSetteTrentaDaRedditiPFAnnoCorrenteFallito',\r\n this.notificaCreaSetteTrentaDaRedditiPFAnnoCorrenteFallito,\r\n );\r\n EventoServer.subscribe(\r\n 'ImportazioneDichiarazioneDaRedditiPFImportata',\r\n this.notificaImportazioneDichiarazioneDaRedditiPFImportata,\r\n );\r\n // Eventi di importazione richieste enti\r\n EventoServer.subscribe(\r\n 'CreazioneMassivaDelegheAvviata',\r\n this.notificaCreazioneMassivaDelegheAvviata,\r\n );\r\n EventoServer.subscribe(\r\n 'CreazioneMassivaDelegheAvanzata',\r\n this.notificaCreazioneMassivaDelegheAvanzata,\r\n );\r\n EventoServer.subscribe(\r\n 'CreazioneMassivaDelegheCompletata',\r\n this.notificaCreazioneMassivaDelegheCompletata,\r\n );\r\n FwPlugins.subscribe(this.pluginsHandler);\r\n }\r\n\r\n componentWillUnmount() {\r\n EventoServer.unsubscribe(\r\n 'DichiarazioneEliminata',\r\n this.notificaDichiarazioneEliminata,\r\n );\r\n EventoServer.unsubscribe(\r\n 'DichiarazioneStatoModificato',\r\n this.notificaDichiarazioneStatoModificato,\r\n );\r\n EventoServer.unsubscribe(\r\n 'DichiarazioneModificaStatoFallita',\r\n this.notificaDichiarazioneCambioStatoFallito,\r\n );\r\n EventoServer.unsubscribe(\r\n 'OperazioneMassivaCompletata',\r\n this.notificaOperazioneMassivaCompletata,\r\n );\r\n EventoServer.unsubscribe(\r\n 'DichiarazioneIntegrativaCreata',\r\n this.notificaDichiarazioneIntegrativaCreata,\r\n );\r\n EventoServer.unsubscribe(\r\n 'DichiarazioneCreata',\r\n this.notificaDichiarazioneCreata,\r\n );\r\n EventoServer.unsubscribe(\r\n 'StampaDichiarazioneCompletata',\r\n this.notificaStampaCompletata,\r\n );\r\n EventoServer.unsubscribe(\r\n 'ImportazioneSetteTrentaDaXmlAnnoCorrenteAvviata',\r\n this.notificaImportazioneDichiarazioneDaXmlAvviata,\r\n );\r\n EventoServer.unsubscribe(\r\n 'ImportazioneDichiarazioneDaXmlTerminata',\r\n this.notificaImportazioneDichiarazioneDaXmlTerminata,\r\n );\r\n EventoServer.unsubscribe(\r\n 'CreaSetteTrentaDaXmlAnnoCorrenteFallito',\r\n this.notificaCreaSetteTrentaDaXmlAnnoCorrenteFallito,\r\n );\r\n EventoServer.unsubscribe(\r\n 'ImportazioneDichiarazioneDaXmlImportata',\r\n this.notificaImportazioneDichiarazioneDaXmlImportata,\r\n );\r\n EventoServer.unsubscribe(\r\n 'ImportazioneDichiarazioneDaXmlCompletata',\r\n this.notificaImportazioneDichiarazioneDaXmlCompletata,\r\n );\r\n EventoServer.unsubscribe(\r\n 'ImportazioneDichiarazioneDaXmlNonCompletata',\r\n this.notificaImportazioneDichiarazioneDaXmlCompletata,\r\n );\r\n EventoServer.unsubscribe(\r\n 'ImportazioneCertificazioniTerminata',\r\n this.notificaImportazioneCertificazioniTerminata,\r\n );\r\n EventoServer.unsubscribe(\r\n 'ImportazioneSetteTrentaDaRedditiPFAnnoCorrenteAvviata',\r\n this.notificaImportazioneDichiarazioneDaRedditiPFAvviata,\r\n );\r\n EventoServer.unsubscribe(\r\n 'ImportazioneDichiarazioneDaRedditiPFTerminata',\r\n this.notificaImportazioneDichiarazioneDaRedditiPFTerminata,\r\n );\r\n EventoServer.unsubscribe(\r\n 'CreaSetteTrentaDaRedditiPFAnnoCorrenteFallito',\r\n this.notificaCreaSetteTrentaDaRedditiPFAnnoCorrenteFallito,\r\n );\r\n EventoServer.unsubscribe(\r\n 'ImportazioneDichiarazioneDaRedditiPFImportata',\r\n this.notificaImportazioneDichiarazioneDaRedditiPFImportata,\r\n );\r\n // Eventi di importazione richieste enti\r\n EventoServer.unsubscribe(\r\n 'CreazioneMassivaDelegheAvviata',\r\n this.notificaCreazioneMassivaDelegheAvviata,\r\n );\r\n EventoServer.unsubscribe(\r\n 'CreazioneMassivaDelegheAvanzata',\r\n this.notificaCreazioneMassivaDelegheAvanzata,\r\n );\r\n EventoServer.unsubscribe(\r\n 'CreazioneMassivaDelegheCompletata',\r\n this.notificaCreazioneMassivaDelegheCompletata,\r\n );\r\n FwPlugins.unsubscribe(this.pluginsHandler);\r\n }\r\n\r\n pluginsHandler = ({ type, payload, initial }) => {\r\n switch (type) {\r\n case 'assistente_imposta_ufficio':\r\n Assistente.impostaUfficio(...payload);\r\n break;\r\n case 'assistente_imposta_servizio':\r\n Assistente.impostaServizio(...payload);\r\n break;\r\n case 'assistente_apri_permalink':\r\n Assistente.apriPermalink(...payload);\r\n break;\r\n case 'FEEDBACK_OPEN_ASSISTENTE':\r\n MenuGeco.creaNuovoQuesito();\r\n break;\r\n case \"call_forward\":\r\n if(payload.type===\"get_root_location\"){\r\n FwPlugins.postMessageToChilds(\r\n 'call_forward_resp',\r\n { callId: payload.callId, response: { href: window.location.href } },\r\n initial\r\n );\r\n }\r\n break;\r\n default: break;\r\n }\r\n };\r\n\r\n notificaCreazioneMassivaDelegheAvviata = (evt) => {\r\n SnackbarManager.startDeterminateAsyncTask(\r\n evt.CorrelationId,\r\n 'Importazione Deleghe',\r\n evt.Totale,\r\n );\r\n };\r\n\r\n notificaCreazioneMassivaDelegheAvanzata = (evt) => {\r\n const operazioneMassiva = Snackbar.recuperaOperazioniMassive().find(\r\n (x) => x.id == evt.CorrelationId,\r\n );\r\n if (operazioneMassiva == null) {\r\n SnackbarManager.startDeterminateAsyncTask(\r\n evt.CorrelationId,\r\n 'Importazione Deleghe',\r\n evt.Totale,\r\n );\r\n }\r\n SnackbarManager.updateDeterminateAsyncTaskProgress(\r\n evt.CorrelationId,\r\n evt.Elaborate,\r\n );\r\n };\r\n\r\n notificaCreazioneMassivaDelegheCompletata = (evt) => {\r\n SnackbarManager.completeAsyncTask(evt.CorrelationId);\r\n };\r\n\r\n notificaImportazioneCertificazioniTerminata = (evt) => {\r\n SnackbarManager.completeAsyncTask(evt.CorrelationId);\r\n if (evt.NrCertificazioniInErrore > 0) {\r\n SnackbarManager.notifyError('Errore in alcune Certificazioni importate.');\r\n } else {\r\n SnackbarManager.notifySuccess(\r\n 'Importazione certificazioni avvenuta con successo!',\r\n );\r\n }\r\n };\r\n\r\n notificaDichiarazioneStatoModificato = (evt) => {\r\n if (evt.Modello === 16 && evt.Anno < 2021) {\r\n if (\r\n Snackbar.recuperaOperazioniMassive().find(\r\n (x) => x.id == evt.CorrelationId,\r\n )\r\n ) {\r\n SnackbarManager.updateDeterminateAsyncTaskProgress(evt.CorrelationId, 1);\r\n } else {\r\n this.props.stopLoadingApplication();\r\n if (evt.Descrizione != null) {\r\n const msg = `Dichiarazione per ${evt.Descrizione\r\n } impostata in stato ${StatoDichiarazione.stringify(\r\n evt.NuovoStato,\r\n evt.HaErrori,\r\n )}`;\r\n SnackbarManager.notifySuccess(msg);\r\n }\r\n }\r\n }\r\n };\r\n\r\n recuperaUrl(idDichiarazione, anno) {\r\n const { anniRegistrati } = this.props;\r\n if (idDichiarazione.startsWith('AssegnoNucleoFamiliare/')) {\r\n return window.config.urlANF;\r\n }\r\n return anniRegistrati.filter((x) => x.Anno == anno)[0].Url730;\r\n }\r\n\r\n notificaDichiarazioneCreata = (evt) => {\r\n if (evt.Modello === 16 && evt.Anno < 2021) {\r\n const { anniRegistrati, annoSelezionato } = this.props;\r\n const trasmissioniConcluse = anniRegistrati.filter((x) => x.Anno == annoSelezionato)[0].TrasmissioniConcluse;\r\n if (evt.ApriDichiarazione === true) {\r\n const url = this.recuperaUrl(evt.AggregateId, evt.Anno);\r\n window.location.href = `${url}#/Frontespizio/${evt.AggregateId.split('/')[1]\r\n }`;\r\n const msg = `Dichiarazione creata per ${evt.Cognome} ${evt.Nome}`;\r\n SnackbarManager.notifySuccess(msg);\r\n } else {\r\n // provengo da una operazione massiva\r\n const operazioneMassiva = Snackbar.recuperaOperazioniMassive().find(\r\n (x) => x.id == `${evt.CorrelationId}ImportXML`,\r\n );\r\n if (operazioneMassiva) {\r\n // l'operazione massiva è utilizzata dall'import xml\r\n // calcolo inverso del progresso in modo da ricavarmi il record in elaborazione\r\n const progresso = Math.ceil(\r\n (operazioneMassiva.progresso / 100) * operazioneMassiva.selezionati,\r\n ) + 1;\r\n SnackbarManager.updateDeterminateAsyncTaskProgress(\r\n `${evt.CorrelationId}ImportXML`,\r\n progresso,\r\n );\r\n if (progresso >= operazioneMassiva.selezionati && !trasmissioniConcluse) {\r\n SnackbarManager.startDeterminateAsyncTask(\r\n evt.CorrelationId,\r\n 'Avanza a \"Completa\"',\r\n operazioneMassiva.selezionati,\r\n );\r\n }\r\n }\r\n }\r\n }\r\n };\r\n\r\n notificaDichiarazioneIntegrativaCreata = (evt) => {\r\n if (evt.Modello === 16 && evt.Anno < 2021) {\r\n const { anniRegistrati } = this.props;\r\n if (evt.IsDichiarante === true) {\r\n if (evt.Tipo != 17) {\r\n const url = anniRegistrati.filter((x) => x.Anno == evt.Anno)[0].Url730;\r\n window.location.href = `${url}#/Frontespizio/${evt.IdDichiarazione.split('/')[1]\r\n }`;\r\n }\r\n\r\n const msg = `Dichiarazione integrativa creata per ${evt.Cognome} ${evt.Nome}`;\r\n SnackbarManager.notifySuccess(msg);\r\n }\r\n }\r\n };\r\n\r\n notificaDichiarazioneEliminata = (evt) => {\r\n this.props.stopLoadingApplication();\r\n if (evt.AzioneAnnullata === false) {\r\n if (evt.Success === true) {\r\n if (evt.Descrizione != null\r\n && (!evt.IdDichiarazione.startsWith('DichiarazioneSetteTrenta') || evt.Anno < 2021)) {\r\n SnackbarManager.notifySuccess(\r\n `Dichiarazione ${evt.Descrizione} eliminata.`,\r\n );\r\n }\r\n } else {\r\n SnackbarManager.notifyError(\r\n `Errore durante l'eliminazione della dichiarazione ${evt.Descrizione}.`,\r\n );\r\n }\r\n }\r\n };\r\n\r\n notificaDichiarazioneCambioStatoFallito = (evt) => {\r\n if (evt.Modello === 16 && evt.Anno < 2021) {\r\n if (\r\n Snackbar.recuperaOperazioniMassive().find(\r\n (x) => x.id == evt.CorrelationId,\r\n )\r\n ) {\r\n SnackbarManager.notifyAsyncTaskError(\r\n evt.CorrelationId,\r\n 'Cambio stato fallito',\r\n `${evt.Descrizione} ${evt.DetectedProblems.$values[0]}`,\r\n );\r\n } else {\r\n this.props.stopLoadingApplication();\r\n if (evt.IdDichiarazione.indexOf('Successione') != -1) {\r\n evt.DetectedProblems.unshift('Cambio stato fallito. ');\r\n SnackbarManager.notifyError(evt.DetectedProblems);\r\n } else if (evt.DetectedProblems) {\r\n SnackbarManager.notifyError(evt.DetectedProblems.$values);\r\n } else {\r\n const msg = `Cambio stato fallito per dichiarazione ${evt.Descrizione}`;\r\n SnackbarManager.notifyError(msg);\r\n }\r\n }\r\n }\r\n };\r\n\r\n notificaImportazioneDichiarazioneDaXmlTerminata = (evt) => {\r\n const { annoSelezionato } = this.props;\r\n\r\n if (annoSelezionato <= 2020) {\r\n SnackbarManager.completeAsyncTask(\r\n `${evt.CorrelationId}`,\r\n evt.TotaleDichiarazioniProcessate,\r\n );\r\n SnackbarManager.completeAsyncTask(\r\n `${evt.CorrelationId}ImportXML`,\r\n evt.TotaleDichiarazioniProcessate,\r\n /* 'Download',\r\n () => {\r\n if (evt.UrlScaricamento != null) {\r\n window.open(evt.UrlScaricamento, '_blank');\r\n }\r\n }, */\r\n );\r\n }\r\n };\r\n\r\n notificaImportazioneDichiarazioneDaXmlAvviata = (evt) => {\r\n const { annoSelezionato } = this.props;\r\n\r\n if (annoSelezionato <= 2020) {\r\n // taccone della modonna. nella stessa dashboard devo notificare l'avanzamento di più wf. separo i due id aggiungendo Import nel primo.\r\n SnackbarManager.startDeterminateAsyncTask(\r\n `${evt.CorrelationId}ImportXML`,\r\n 'Importazione XML',\r\n evt.CodiciFiscaliDaImportare.length\r\n || evt.CodiciFiscaliDaImportare.$values.length,\r\n );\r\n }\r\n };\r\n\r\n notificaImportazioneDichiarazioneDaRedditiPFTerminata = (evt) => {\r\n SnackbarManager.completeAsyncTask(\r\n `${evt.CorrelationId}`,\r\n evt.TotaleDichiarazioniProcessate,\r\n );\r\n };\r\n\r\n notificaImportazioneDichiarazioneDaRedditiPFAvviata = (evt) => {\r\n SnackbarManager.startDeterminateAsyncTask(\r\n `${evt.CorrelationId}`,\r\n 'Importazione Redditi PF',\r\n evt.CodiciFiscaliDaImportare.length\r\n || evt.CodiciFiscaliDaImportare.$values.length,\r\n );\r\n };\r\n\r\n notificaOperazioneMassivaCompletata = (evt) => {\r\n SnackbarManager.completeAsyncTask(evt.CorrelationId);\r\n };\r\n\r\n notificaCreaSetteTrentaDaXmlAnnoCorrenteFallito = (evt) => {\r\n const { annoSelezionato } = this.props;\r\n\r\n if (annoSelezionato <= 2020) {\r\n SnackbarManager.notifyAsyncTaskError(\r\n `${evt.CorrelationId}ImportXML`,\r\n `${evt.CodiceFiscale}: ${evt.Errori}`,\r\n );\r\n }\r\n };\r\n\r\n notificaImportazioneDichiarazioneDaXmlImportata = (evt) => {\r\n const { anniRegistrati, annoSelezionato } = this.props;\r\n const trasmissioniConcluse = anniRegistrati.filter((x) => x.Anno == annoSelezionato)[0].TrasmissioniConcluse;\r\n const operazioneMassiva = Snackbar.recuperaOperazioniMassive().find(\r\n (x) => x.id == `${evt.CorrelationId}ImportXML`,\r\n );\r\n if (operazioneMassiva && annoSelezionato <= 2020) {\r\n // calcolo inverso del progresso in modo da ricavarmi il record in elaborazione\r\n const progresso = Math.ceil(\r\n (operazioneMassiva.progresso / 100) * operazioneMassiva.selezionati,\r\n ) + 1;\r\n SnackbarManager.updateDeterminateAsyncTaskProgress(\r\n `${evt.CorrelationId}ImportXML`,\r\n progresso,\r\n );\r\n if (progresso >= operazioneMassiva.selezionati && !trasmissioniConcluse) {\r\n SnackbarManager.startDeterminateAsyncTask(\r\n evt.CorrelationId,\r\n 'Avanza a \"Completa\"',\r\n operazioneMassiva.selezionati,\r\n );\r\n }\r\n }\r\n };\r\n\r\n notificaImportazioneDichiarazioneDaXmlCompletata = (evt) => {\r\n const operazioneMassiva = Snackbar.recuperaOperazioniMassive().find(\r\n (x) => x.id == evt.CorrelationId,\r\n );\r\n if (operazioneMassiva) {\r\n // calcolo inverso del progresso in modo da ricavarmi il record in elaborazione\r\n const progresso = Math.ceil(\r\n (operazioneMassiva.progresso / 100) * operazioneMassiva.selezionati,\r\n ) + 1;\r\n SnackbarManager.updateDeterminateAsyncTaskProgress(\r\n evt.CorrelationId,\r\n progresso,\r\n );\r\n }\r\n };\r\n\r\n notificaCreaSetteTrentaDaRedditiPFAnnoCorrenteFallito = (evt) => {\r\n SnackbarManager.notifyAsyncTaskError(\r\n `${evt.CorrelationId}`,\r\n `${evt.CodiceFiscale}: ${evt.Errori}`,\r\n );\r\n };\r\n\r\n notificaImportazioneDichiarazioneDaRedditiPFImportata = (evt) => {\r\n const operazioneMassiva = Snackbar.recuperaOperazioniMassive().find(\r\n (x) => x.id == `${evt.CorrelationId}`,\r\n );\r\n if (operazioneMassiva) {\r\n // calcolo inverso del progresso in modo da ricavarmi il record in elaborazione\r\n const progresso = Math.ceil(\r\n (operazioneMassiva.progresso / 100) * operazioneMassiva.selezionati,\r\n ) + 1;\r\n SnackbarManager.updateDeterminateAsyncTaskProgress(\r\n `${evt.CorrelationId}`,\r\n progresso,\r\n );\r\n }\r\n };\r\n\r\n notificaStampaCompletata = (evt) => {\r\n const { anniRegistrati } = this.props;\r\n\r\n if (evt.Anno < 2020) {\r\n if (evt.Success) {\r\n if (evt.Avvisi) {\r\n SnackbarManager.notifyAsyncTaskError(evt.CorrelationId, evt.Avvisi);\r\n }\r\n if (evt.DichiarazioniProcessate == evt.DichiarazioniTotali) {\r\n SnackbarManager.completeAsyncTask(\r\n evt.CorrelationId,\r\n evt.DichiarazioniTotali,\r\n 'Download',\r\n () => {\r\n if (evt.UrlScaricamento != null) {\r\n window.open(evt.UrlScaricamento, '_blank');\r\n } else {\r\n const url = anniRegistrati.filter((x) => x.Anno == evt.Anno)[0]\r\n .Url730;\r\n window.open(\r\n `${url}api/V1/SetteTrenta${evt.Anno}/ApriFileStampa?fileName=${evt.NomeFile}&codiceUfficio=${evt.CodiceUfficio}`,\r\n '_blank',\r\n );\r\n Snackbar.clear();\r\n }\r\n },\r\n );\r\n } else {\r\n SnackbarManager.updateDeterminateAsyncTaskProgress(\r\n evt.CorrelationId,\r\n evt.DichiarazioniProcessate,\r\n );\r\n }\r\n } else {\r\n SnackbarManager.notifyAsyncTaskError(evt.CorrelationId, evt.Errore);\r\n SnackbarManager.completeAsyncTask(evt.CorrelationId);\r\n }\r\n } else if (evt.Anno < 2021 || Snackbar.recuperaOperazioniMassive().some((x) => x.id === evt.CorrelationId)) {\r\n SnackbarManager.updateDeterminateAsyncTaskProgress(\r\n evt.CorrelationId,\r\n evt.DichiarazioniProcessate,\r\n );\r\n\r\n if (evt.Errore || evt.Avvisi) {\r\n SnackbarManager.notifyAsyncTaskError(\r\n evt.CorrelationId,\r\n evt.Errore || evt.Avvisi,\r\n );\r\n }\r\n\r\n if (evt.DichiarazioniProcessate === evt.DichiarazioniTotali) {\r\n if (evt.DichiarazioniTotali === 0) {\r\n SnackbarManager.completeAsyncTask(\r\n evt.CorrelationId,\r\n evt.DichiarazioniTotali,\r\n );\r\n } else {\r\n SnackbarManager.completeAsyncTask(\r\n evt.CorrelationId,\r\n evt.DichiarazioniTotali,\r\n 'Download',\r\n () => window.open(evt.UrlScaricamento, '_blank'),\r\n );\r\n }\r\n }\r\n }\r\n };\r\n\r\n render() {\r\n const { children, isLoadingApplication } = this.props;\r\n\r\n return (\r\n \r\n \r\n {children}\r\n
    \r\n\r\n {/* Routing */}\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nLayoutContext.propTypes = {\r\n children: PropTypes.element,\r\n isLoadingApplication: PropTypes.bool,\r\n stopLoadingApplication: PropTypes.func,\r\n};\r\n\r\nconst mapStoreToProps = (store) => ({\r\n isLoadingApplication: store.application.isLoadingApplication,\r\n anniRegistrati: store.dichiarativi.anniRegistrati.data,\r\n annoSelezionato: store.dichiarativi.annoSelezionato,\r\n});\r\n\r\nconst mapDispatchToProps = (dispatch) => ({\r\n stopLoadingApplication: bindActionCreators(stopLoadingApplication, dispatch),\r\n});\r\n\r\nexport default connect(\r\n mapStoreToProps,\r\n mapDispatchToProps,\r\n)(LayoutContext);\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","const BASE_INITIAL_STATE = {\r\n fetching: false,\r\n fetched: false,\r\n error: null,\r\n data: [],\r\n};\r\n\r\nexport const utenteInitialState = {\r\n profilo: window.datiUtente,\r\n ufficioSelezionato: window.ufficioSelezionato,\r\n};\r\n\r\nexport const applicationInitialState = {\r\n isLoadingApplication: false,\r\n};\r\n\r\nexport const dichiarativiInitialState = {\r\n annoSelezionato: 0,\r\n anniRegistrati: { ...BASE_INITIAL_STATE },\r\n};\r\n","import update from 'immutability-helper';\r\nimport typeToReducer from 'type-to-reducer';\r\nimport { applicationInitialState } from './initialState';\r\n\r\nexport default typeToReducer({\r\n START_LOADING_APPLICATION: (state, action) => update(state, {\r\n isLoadingApplication: { $set: true },\r\n }),\r\n STOP_LOADING_APPLICATION: (state, action) => update(state, {\r\n isLoadingApplication: { $set: false },\r\n }),\r\n}, applicationInitialState);\r\n","import update from 'immutability-helper';\r\nimport typeToReducer from 'type-to-reducer';\r\nimport { utenteInitialState } from './initialState';\r\n\r\nexport default typeToReducer({\r\n CAMBIA_UFFICIO: (state, action) => update(state, {\r\n ufficioSelezionato: { $set: action.ufficio },\r\n }),\r\n ATTIVA_TOUR_730: (state, action) => update(state, {\r\n tour730Attivo: { $set: true },\r\n }),\r\n DISATTIVA_TOUR_730: (state, action) => update(state, {\r\n tour730Attivo: { $set: false },\r\n }),\r\n ATTIVA_TOUR_RICHIESTEENTI: (state, action) => update(state, {\r\n tourRichiesteEntiAttivo: { $set: true },\r\n }),\r\n DISATTIVA_TOUR_RICHIESTEENTI: (state, action) => update(state, {\r\n tourRichiesteEntiAttivo: { $set: false },\r\n }),\r\n ATTIVA_TOUR_IMU: (state, action) => update(state, {\r\n tourImuAttivo: { $set: true },\r\n }),\r\n DISATTIVA_TOUR_IMU: (state, action) => update(state, {\r\n tourImuAttivo: { $set: false },\r\n }),\r\n}, utenteInitialState);\r\n","import { combineReducers } from 'redux';\r\nimport applicationReducer from './applicationReducer';\r\nimport utenteReducer from './utenteReducer';\r\nimport dichiarativiReducer from './dichiarativiReducer';\r\n\r\nexport default combineReducers({\r\n application: applicationReducer,\r\n utente: utenteReducer,\r\n dichiarativi: dichiarativiReducer,\r\n});\r\n","import update from 'immutability-helper';\r\n\r\nimport { pendingAction, rejectedAction } from 'framework-ui-components/Components/Redux/reducerHelper';\r\nimport typeToReducer from 'type-to-reducer';\r\nimport { dichiarativiInitialState } from './initialState';\r\n\r\nexport default typeToReducer({\r\n ANNI_REGISTRATI_GET_PENDING: (state, action) => pendingAction(state, action, 'anniRegistrati'),\r\n ANNI_REGISTRATI_GET_REJECTED: (state, action) => rejectedAction(state, action, 'anniRegistrati'),\r\n ANNI_REGISTRATI_GET_FULFILLED: (state, action) => {\r\n const { payload } = action;\r\n\r\n const annoDefault = payload.find(x => x.Default);\r\n\r\n return update(state, {\r\n anniRegistrati: { $merge: { data: payload } },\r\n annoSelezionato: { $set: annoDefault && annoDefault.Anno },\r\n });\r\n },\r\n ANNI_REGISTRATI_SET: (state, action) => {\r\n const { payload } = action;\r\n\r\n const annoDefault = payload.find(x => x.Default);\r\n\r\n return update(state, {\r\n anniRegistrati: { $set: { data: payload } },\r\n annoSelezionato: { $set: annoDefault && annoDefault.Anno },\r\n });\r\n },\r\n ANNO_SELEZIONATO_SET: (state, action) => {\r\n const { payload } = action;\r\n\r\n window.localStorage && window.localStorage.setItem('AnnoSelezionato', payload);\r\n\r\n return update(state, {\r\n annoSelezionato: { $set: payload },\r\n });\r\n },\r\n}, dichiarativiInitialState);\r\n","import update from 'immutability-helper';\r\n\r\nexport const pendingAction = (state, action, property) => update(state, {\r\n [property]: {\r\n fetching: { $set: true },\r\n },\r\n});\r\n\r\nexport const rejectedAction = (state, action, property) => {\r\n const { payload } = action;\r\n\r\n return update(state, {\r\n [property]: {\r\n error: { $set: payload },\r\n fetching: { $set: false },\r\n },\r\n });\r\n};\r\n\r\nexport const fulfilledAction = (state, action, property) => {\r\n const { payload } = action;\r\n\r\n return update(state, {\r\n [property]: {\r\n data: { $set: payload },\r\n fetched: { $set: true },\r\n fetching: { $set: false },\r\n },\r\n });\r\n};\r\n\r\nexport default (property) => ({\r\n PENDING: (state, action) => pendingAction(state, action, property),\r\n REJECTED: (state, action) => rejectedAction(state, action, property),\r\n FULFILLED: (state, action) => fulfilledAction(state, action, property),\r\n});\r\n","import React from 'react';\r\nimport { render } from 'react-dom';\r\nimport { Provider } from 'react-redux';\r\nimport { HashRouter, Route } from 'react-router-dom';\r\nimport LayoutContext from 'dashboard/LayoutContext';\r\nimport FwPlugins from 'framework-plugins';\r\nimport { inizializza as inizializzaPotenzialiIsee } from 'potenziali-pratiche';\r\nimport { ViewportProvider } from 'framework-ui-components/Components/V2';\r\nimport configureStore from './store/configureStore';\r\nimport { cambiaUfficio } from './actions/utenteActions';\r\nimport { setAnniRegistrati, setAnnoSelezionato } from './actions/dichiarativiActions';\r\n\r\nif (window.datiUtente.CodiceUfficioSelezionato != null && window.datiUtente.Uffici.filter((x) => x.CodiceUfficio === window.datiUtente.CodiceUfficioSelezionato).length > 0) {\r\n window.ufficioSelezionato = window.datiUtente.Uffici.filter((x) => x.CodiceUfficio == window.datiUtente.CodiceUfficioSelezionato)[0];\r\n}\r\n\r\nif (window.ufficioSelezionato == null) {\r\n if (window.localStorage && window.localStorage.getItem('CodiceUfficio')) {\r\n const ufficio = window.localStorage.getItem('CodiceUfficio');\r\n if (ufficio && window.datiUtente.Uffici.filter((x) => x.CodiceUfficio === ufficio).length > 0) {\r\n window.ufficioSelezionato = window.datiUtente.Uffici.filter((x) => x.CodiceUfficio == ufficio)[0];\r\n } else {\r\n window.ufficioSelezionato = window.datiUtente.Uffici[0];\r\n }\r\n } else {\r\n window.ufficioSelezionato = window.datiUtente.Uffici[0];\r\n }\r\n}\r\n\r\nif (window.datiUtente.ServizioSelezionato) {\r\n switch (window.datiUtente.ServizioSelezionato) {\r\n case '7OL':\r\n window.location.href = '#/SetteTrenta';\r\n break;\r\n case '7NW':\r\n window.location.href = '#/NewSetteTrenta';\r\n break;\r\n case '7OLRIC':\r\n window.location.href = '#/SetteTrenta/RichiesteEnti';\r\n break;\r\n case 'SUC':\r\n window.location.href = '#/successioni';\r\n break;\r\n case 'RIC':\r\n window.location.href = '#/richiesteenti';\r\n break;\r\n case 'IMU':\r\n window.location.href = '#/imu';\r\n break;\r\n case 'ISEE':\r\n window.location.href = '#/isee';\r\n break;\r\n case 'SCI':\r\n window.location.href = '#/ServiziCittadino';\r\n break;\r\n case 'ANF':\r\n window.location.href = '#/ANF';\r\n break;\r\n case 'AUU':\r\n window.location.href = '#/AssegnoUnicoUniversaleMonoanno';\r\n break;\r\n case 'FEA':\r\n window.location.href = '#/firme';\r\n break;\r\n case 'VIP':\r\n window.location.href = '#/visureipocatastali';\r\n break;\r\n case 'PRE':\r\n window.location.href = '#/prestazioniagevolate';\r\n break;\r\n case 'DIS':\r\n window.location.href = '#/disoccupazioni';\r\n break;\r\n default:\r\n break;\r\n }\r\n}\r\n\r\nFwPlugins.init('dashboard');\r\n\r\nconst store = configureStore();\r\nwindow.localStorage.setItem('CodiceUfficio', window.ufficioSelezionato.CodiceUfficio);\r\nstore.dispatch(cambiaUfficio(window.ufficioSelezionato));\r\nstore.dispatch(setAnniRegistrati(window.datiUtente.Anni));\r\n\r\nconst annoSelezionato = new URLSearchParams(window.location.search).get('annoSelezionato')\r\n || new URLSearchParams(window.location.hash.split('?')[1]).get('annoSelezionato')\r\n || (window.localStorage && window.localStorage.getItem('AnnoSelezionato'));\r\n\r\nif (window.datiUtente.AnnoSelezionato != null) {\r\n store.dispatch(setAnnoSelezionato(window.datiUtente.AnnoSelezionato));\r\n} else if (annoSelezionato && window.datiUtente.Anni.filter((x) => x.Anno == annoSelezionato).length > 0) {\r\n store.dispatch(setAnnoSelezionato(annoSelezionato));\r\n}\r\n\r\ninizializzaPotenzialiIsee({\r\n url: window.config.urlPotenzialiPratiche,\r\n idUtente: window.datiUtente.IdentificativoUtente,\r\n});\r\n\r\nrender(\r\n (\r\n \r\n \r\n \r\n {/* Routing */}\r\n \r\n \r\n \r\n ),\r\n document.getElementById('appContainer'),\r\n);\r\n","import { createStore, applyMiddleware, compose } from 'redux';\r\nimport thunk from 'redux-thunk';\r\nimport promise from 'redux-promise-middleware';\r\nimport createReducer from '../reducers/combineReducers';\r\n\r\nexport default () => {\r\n const middlewares = [promise(), thunk];\r\n\r\n const createMiddleware = [applyMiddleware(...middlewares)];\r\n\r\n // If Redux DevTools Extension is installed use it, otherwise use Redux compose\r\n const composeMiddlewares = process.env.NODE_ENV !== 'production' && typeof window === 'object'\r\n && window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ ? window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ : compose;\r\n\r\n return createStore(createReducer, composeMiddlewares(...createMiddleware));\r\n};\r\n"],"names":["numberIsNaN","value","module","exports","a","b","utils","transformData","isCancel","defaults","throwIfCancellationRequested","config","cancelToken","throwIfRequested","headers","data","transformRequest","merge","common","method","forEach","adapter","then","response","transformResponse","reason","Promise","reject","Math","max","ignoreDuplicateOf","key","val","i","parsed","split","line","indexOf","trim","substr","toLowerCase","concat","_extends","Object","assign","target","arguments","length","source","prototype","hasOwnProperty","call","reducerMap","initialState","makeType","prefix","type","join","flattened","iterator","reducers","initial","keys","reduce","acc","obj","reducer","defineProperty","enumerable","configurable","writable","state","action","aa","n","q","u","c","encodeURIComponent","Error","ba","ca","da","ea","extractEvents","d","eventTypes","e","f","g","h","fa","k","phasedRegistrationNames","ha","registrationName","ia","ja","dependencies","ka","l","Array","slice","apply","m","this","onError","la","ma","na","oa","pa","qa","sa","ua","va","wa","currentTarget","ra","xa","isArray","push","ya","za","Aa","_dispatchListeners","_dispatchInstances","isPropagationStopped","isPersistent","constructor","release","Ba","Ca","injectEventPluginOrder","injectEventPluginsByName","Da","stateNode","disabled","Ea","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","ReactCurrentDispatcher","current","ReactCurrentBatchConfig","suspense","Fa","w","Symbol","for","Ga","Ha","Ia","Ja","Ka","La","Ma","Na","Oa","Pa","Qa","Ra","Sa","Ta","Ua","Wa","displayName","name","$$typeof","render","_status","_result","Xa","tag","_debugOwner","_debugSource","fileName","replace","lineNumber","return","Ya","window","document","createElement","Za","$a","ab","bb","cb","db","eb","fb","gb","hb","ib","jb","kb","lb","mb","nb","ob","B","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","propertyName","sanitizeURL","D","sb","tb","toUpperCase","ub","vb","qb","isNaN","rb","test","pb","removeAttribute","setAttribute","setAttributeNS","wb","nodeName","yb","_valueTracker","getOwnPropertyDescriptor","get","set","getValue","setValue","stopTracking","xb","zb","checked","Ab","defaultChecked","defaultValue","_wrapperState","initialChecked","Bb","initialValue","controlled","Cb","Eb","Fb","Gb","ownerDocument","activeElement","Ib","children","Children","Hb","Jb","options","selected","defaultSelected","Kb","dangerouslySetInnerHTML","Lb","Mb","Nb","textContent","xlinkHref","Ob","Pb","Qb","Rb","Sb","namespaceURI","innerHTML","valueOf","toString","firstChild","removeChild","appendChild","MSApp","execUnsafeLocalFunction","Tb","lastChild","nodeType","nodeValue","Ub","Vb","animationend","animationiteration","animationstart","transitionend","Wb","Xb","Yb","style","animation","transition","Zb","$b","ac","bc","dc","ec","alternate","effectTag","fc","memoizedState","dehydrated","gc","ic","child","sibling","hc","jc","kc","lc","mc","nc","oc","pc","qc","rc","Map","sc","tc","uc","vc","zc","blockedOn","topLevelType","eventSystemFlags","nativeEvent","Ac","delete","pointerId","Bc","Cc","Ec","Fc","unstable_runWithPriority","priority","hydrate","containerInfo","Gc","Hc","Ic","Jc","shift","Kc","unstable_scheduleCallback","unstable_NormalPriority","Lc","Mc","srcElement","correspondingUseElement","parentNode","Nc","Oc","dispatchConfig","Pc","_targetInst","Qc","Rc","Sc","Tc","Uc","E","Interface","isDefaultPrevented","defaultPrevented","returnValue","Wc","eventPool","pop","Xc","destructor","Vc","getPooled","preventDefault","stopPropagation","cancelBubble","persist","eventPhase","bubbles","cancelable","timeStamp","Date","now","isTrusted","extend","Yc","animationName","elapsedTime","pseudoElement","Zc","clipboardData","$c","view","detail","ad","relatedTarget","bd","keyCode","charCode","cd","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","ed","fd","Alt","Control","Meta","Shift","gd","getModifierState","hd","id","String","fromCharCode","location","ctrlKey","shiftKey","altKey","metaKey","repeat","locale","which","jd","kd","ld","md","nd","screenX","screenY","clientX","clientY","pageX","pageY","button","buttons","fromElement","toElement","movementX","movementY","od","width","height","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","pd","dataTransfer","qd","touches","targetTouches","changedTouches","rd","sd","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","td","ud","vd","xd","yd","zd","Ad","Bd","Cd","Dd","bubbled","captured","eventPriority","Ed","getEventPriority","Fd","unstable_UserBlockingPriority","Gd","Hd","Id","Jd","Kd","targetInst","ancestors","Ld","F","Md","Nd","bind","Od","Pd","addEventListener","Qd","Dc","Rd","Sd","WeakMap","xc","Set","yc","has","add","Td","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","fontWeight","lineClamp","lineHeight","opacity","order","orphans","tabSize","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","Ud","Vd","Wd","setProperty","charAt","substring","Xd","menuitem","area","base","br","col","embed","hr","img","input","keygen","link","meta","param","track","wbr","Yd","Zd","is","$d","ae","be","body","ce","de","node","offset","nextSibling","ee","contains","compareDocumentPosition","fe","HTMLIFrameElement","contentWindow","href","ge","contentEditable","he","ie","je","ke","le","me","ne","autoFocus","oe","__html","pe","setTimeout","qe","clearTimeout","re","se","previousSibling","te","random","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","char","Re","Te","color","date","datetime","email","month","number","password","range","search","tel","text","time","url","week","Ue","Ve","change","We","Xe","Ye","Ze","$e","af","bf","cf","detachEvent","df","ef","attachEvent","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","start","selectionStart","end","selectionEnd","anchorNode","getSelection","anchorOffset","focusNode","focusOffset","yf","onSelect","SimpleEventPlugin","EnterLeaveEventPlugin","ChangeEventPlugin","SelectEventPlugin","BeforeInputEventPlugin","Af","Bf","G","I","Cf","J","K","Df","Ef","contextTypes","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","L","childContextTypes","Ff","Gf","Hf","If","getChildContext","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","lg","mg","defaultProps","ng","og","pg","qg","rg","sg","_context","_currentValue","tg","ug","childExpirationTime","vg","firstContext","expirationTime","wg","xg","context","observedBits","next","responders","yg","zg","baseState","firstUpdate","lastUpdate","firstCapturedUpdate","lastCapturedUpdate","firstEffect","lastEffect","firstCapturedEffect","lastCapturedEffect","Ag","Bg","suspenseConfig","payload","callback","nextEffect","Cg","Dg","updateQueue","Eg","Fg","Gg","Hg","Ig","C","Jg","Kg","Lg","Mg","Ng","Component","refs","Og","Sg","isMounted","_reactInternalFiber","enqueueSetState","Pg","Qg","Rg","enqueueReplaceState","enqueueForceUpdate","Tg","shouldComponentUpdate","isPureReactComponent","Ug","contextType","updater","Vg","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","Wg","props","getDerivedStateFromProps","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","componentDidMount","Xg","Yg","ref","_owner","_stringRef","Zg","$g","index","ah","bh","mode","elementType","ch","implementation","dh","eh","y","H","r","x","A","p","z","done","ta","fh","gh","hh","ih","jh","kh","lh","mh","documentElement","tagName","nh","oh","ph","M","qh","memoizedProps","revealOrder","rh","responder","sh","N","th","uh","O","vh","wh","P","xh","yh","zh","Ah","Bh","Ch","Gh","Q","Hh","Ih","Jh","Kh","Lh","Mh","Nh","queue","baseUpdate","Oh","Ph","Qh","lastRenderedReducer","dispatch","last","lastRenderedState","eagerReducer","eagerState","Rh","Sh","Th","Uh","create","destroy","deps","Vh","Wh","Xh","Yh","Zh","$h","ai","bi","readContext","useCallback","useContext","useEffect","useImperativeHandle","useLayoutEffect","useMemo","useReducer","useRef","useState","useDebugValue","useResponder","useDeferredValue","useTransition","unstable_next","ci","di","ei","fi","gi","hi","pendingProps","ii","ji","ki","li","mi","ReactCurrentOwner","R","ni","oi","pi","qi","compare","ri","si","ti","ui","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","vi","getDerivedStateFromError","wi","pendingContext","Hi","Ii","Ji","Ki","xi","retryTime","yi","fallback","unstable_avoidThisFallback","zi","Ai","isBackwards","rendering","tail","tailExpiration","tailMode","Bi","Ci","Li","Mi","Ni","stack","onClick","onclick","Oi","WeakSet","Pi","console","error","Si","Ri","Ti","Ui","__reactInternalSnapshotBeforeUpdate","Vi","Wi","componentWillUnmount","Qi","Xi","Yi","Zi","$i","instance","insertBefore","_reactRootContainer","aj","wasMultiple","multiple","bj","display","cj","dj","ej","fj","element","gj","hj","ij","componentDidCatch","jj","componentStack","gk","kj","ceil","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","timeout","Rj","Sj","Tj","Uj","Vj","Wj","finishedWork","finishedExpirationTime","lastSuspendedTime","Xj","timeoutHandle","Yj","busyMinDurationMs","busyDelayMs","Zj","bk","ck","pingCache","dk","ek","v","fk","size","createElementNS","createTextNode","ik","firstSuspendedTime","rangeCount","Db","focusedElem","selectionRange","jk","t","min","createRange","setStart","removeAllRanges","addRange","setEnd","left","scrollLeft","top","scrollTop","focus","Dh","cc","dd","hk","Eh","Fh","xk","Di","Ei","Fi","wd","Gi","kk","lk","mk","hidden","_ctor","default","Va","nk","_calculateChangedBits","unstable_observedBits","pk","isReactComponent","pendingChildren","qk","rk","sk","tk","uk","wk","wc","_internalRoot","yk","Ak","hasAttribute","zk","Bk","vk","querySelectorAll","JSON","stringify","form","unmount","ak","Ck","createPortal","findDOMNode","unstable_renderSubtreeIntoContainer","unmountComponentAtNode","unstable_createPortal","unstable_batchedUpdates","flushSync","Events","findFiberByHostInstance","__REACT_DEVTOOLS_GLOBAL_HOOK__","isDisabled","supportsFiber","inject","onCommitFiberRoot","onCommitFiberUnmount","ok","overrideHookState","overrideProps","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","bundleType","version","rendererPackageName","Dk","Ek","byteToHex","buf","bth","isArgs","origKeys","keysShim","o","originalKeys","shim","keysWorksWithArguments","args","object","define","hasDescriptors","functionsHaveConfigurableNames","$TypeError","fn","Function","callBound","getDay","toStr","hasToStringTag","tryDateObject","hasOwn","gOPD","$exec","isRegexMarker","throwRegexMarker","badStringifier","toPrimitive","descriptor","$toString","supportsDescriptors","$gOPD","flags","RegExp","calls","buildURL","InterceptorManager","dispatchRequest","mergeConfig","Axios","instanceConfig","interceptors","request","chain","promise","resolve","interceptor","unshift","fulfilled","rejected","getUri","params","paramsSerializer","Cancel","message","__CANCEL__","RangeError","root","result","observable","self","objectKeys","isArguments","isRegex","isDate","getTime","isUndefinedOrNull","isBuffer","copy","deepEqual","actual","expected","opts","strict","aIsRegex","bIsRegex","aIsBuffer","bIsBuffer","sort","objEquiv","round","setFunctionName","$Object","hasIndices","global","ignoreCase","multiline","dotAll","unicode","unicodeSets","sticky","config1","config2","valueFromConfig2Keys","mergeDeepPropertiesKeys","defaultToConfig2Keys","directMergeKeys","getMergedValue","isPlainObject","mergeDeepProperties","prop","isUndefined","axiosKeys","otherKeys","filter","classNames","classes","arg","argType","inner","Number","_nodeId","_clockseq","rng","bytesToUuid","_lastMSecs","_lastNSecs","clockseq","seedBytes","msecs","nsecs","dt","tl","tmh","Reflect","getPrototypeOf","arr","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Element","ForwardRef","Fragment","Lazy","Memo","Portal","Profiler","StrictMode","Suspense","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isMemo","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","URIError","isStandardBrowserEnv","write","expires","path","domain","secure","cookie","isNumber","toGMTString","isString","read","match","decodeURIComponent","remove","createError","validateStatus","status","__esModule","warn","requestIdleCallback","reducePropsToState","mapStateOnServer","handleClientStateChange","convertReactPropstoHtmlAttributes","_typeof","_react2","_interopRequireDefault","_objectAssign2","_HelmetConstants","encodeSpecialCharacters","str","getTitleFromPropsList","propsList","innermostTitle","getInnermostProperty","TAG_NAMES","TITLE","innermostTemplate","HELMET_PROPS","TITLE_TEMPLATE","innermostDefaultTitle","DEFAULT_TITLE","getOnChangeClientState","ON_CHANGE_CLIENT_STATE","getAttributesFromPropsList","tagType","map","tagAttrs","getBaseTagFromPropsList","primaryAttributes","BASE","reverse","innermostBaseTag","lowerCaseAttributeKey","getTagsFromPropsList","approvedSeenTags","approvedTags","instanceTags","instanceSeenTags","primaryAttributeKey","attributeKey","TAG_PROPERTIES","REL","INNER_HTML","CSS_TEXT","ITEM_PROP","tagUnion","property","didTimeout","timeRemaining","cancelIdleCallback","msg","_helmetIdleCallback","updateAttributes","attributes","elementTag","getElementsByTagName","helmetAttributeString","getAttribute","HELMET_ATTRIBUTE","helmetAttributes","attributesToRemove","attributeKeys","attribute","indexToSave","splice","_i","updateTags","tags","headElement","head","querySelector","HEAD","tagNodes","oldTags","newTags","indexToDelete","newElement","styleSheet","cssText","some","existingTag","isEqualNode","generateElementAttributesAsString","attr","convertElementAttributestoReactProps","initProps","REACT_TAG_MAP","getMethodsForTag","encode","toComponent","title","titleAttributes","_initProps","attributeString","generateTitleAsString","ATTRIBUTE_NAMES","BODY","HTML","_mappedTag","mappedTag","mappedAttribute","content","generateTagsAsReactComponent","attributeHtml","string","tagContent","isSelfClosing","SELF_CLOSING_TAGS","generateTagsAsString","initAttributes","HTML_TAG_MAP","newState","baseTag","bodyAttributes","htmlAttributes","linkTags","metaTags","noscriptTags","onChangeClientState","scriptTags","styleTags","updateTitle","tagUpdates","LINK","META","NOSCRIPT","SCRIPT","STYLE","addedTags","removedTags","_tagUpdates$tagType","_ref","_ref$title","noscript","script","HREF","ENCODE_SPECIAL_CHARACTERS","NAME","CHARSET","HTTPEQUIV","PROPERTY","SRC","undefined","$Error","$EvalError","$RangeError","$ReferenceError","$SyntaxError","$URIError","abs","floor","pow","sign","$Function","getEvalledConstructor","expressionSyntax","$defineProperty","throwTypeError","ThrowTypeError","calleeThrows","gOPDthrows","hasSymbols","getProto","$ObjectGPO","$ReflectGPO","$apply","$call","needsEval","TypedArray","Uint8Array","INTRINSICS","__proto__","AggregateError","ArrayBuffer","Atomics","BigInt","BigInt64Array","BigUint64Array","Boolean","DataView","decodeURI","encodeURI","eval","Float16Array","Float32Array","Float64Array","FinalizationRegistry","Int8Array","Int16Array","Int32Array","isFinite","parseFloat","parseInt","Proxy","SharedArrayBuffer","Uint8ClampedArray","Uint16Array","Uint32Array","WeakRef","errorProto","doEval","gen","LEGACY_ALIASES","$concat","$spliceApply","$replace","$strSlice","exec","rePropName","reEscapeChar","getBaseIntrinsic","allowMissing","alias","intrinsicName","parts","first","quote","subString","stringToPath","intrinsicBaseName","intrinsic","intrinsicRealName","skipFurtherCaching","isOwn","part","desc","GetIntrinsic","callBindBasic","$indexOf","createInstance","defaultConfig","axios","CancelToken","all","promises","spread","isAxiosError","getOwnPropertySymbols","propIsEnumerable","propertyIsEnumerable","test1","getOwnPropertyNames","test2","test3","letter","err","shouldUseNative","from","symbols","to","TypeError","toObject","s","isAbsoluteURL","combineURLs","baseURL","requestedURL","hasProtoAccessor","callBind","code","$getPrototypeOf","EvalError","thisArg","isObject","isFunction","isArrayBuffer","isFormData","FormData","isArrayBufferView","isView","buffer","isFile","isBlob","isStream","pipe","isURLSearchParams","URLSearchParams","navigator","product","assignValue","stripBOM","charCodeAt","promiseTypeSuffixes","defaultTypes","_isPromise2","_promiseTypeSuffixes","_arr","_n","_d","_e","_s","sliceIterator","_slicedToArray","PENDING","FULFILLED","REJECTED","getAction","newPayload","isRejected","resolvedAction","rejectedAction","env","selectColor","namespace","hash","createDebug","colors","prevTime","debug","enabled","curr","ms","diff","prev","coerce","format","formatter","formatters","formatArgs","log","useColors","init","instances","delimiter","newDebug","toNamespace","regexp","disable","namespaces","names","skips","enable","save","len","humanize","load","normalizedName","settle","cookies","buildFullPath","parseHeaders","isURLSameOrigin","requestData","requestHeaders","XMLHttpRequest","auth","username","unescape","Authorization","btoa","fullPath","open","onreadystatechange","readyState","responseURL","responseHeaders","getAllResponseHeaders","responseType","responseText","statusText","onabort","onerror","ontimeout","timeoutErrorMessage","xsrfValue","withCredentials","xsrfCookieName","xsrfHeaderName","setRequestHeader","onDownloadProgress","onUploadProgress","upload","cancel","abort","send","isStandardArguments","toStringTag","isLegacyArguments","callee","supportsStandardArguments","isarray","pathToRegexp","groups","optional","partial","asterisk","pattern","attachKeys","regexpToRegexp","arrayToRegexp","tokensToRegExp","parse","stringToRegexp","compile","tokensToFunction","PATH_REGEXP","res","tokens","defaultDelimiter","escaped","capture","group","modifier","prevText","escapeGroup","restrictBacktrack","escapeString","encodeURIComponentPretty","matches","pretty","token","segment","j","sensitive","route","endsWithDelimiter","actualApply","$reflectApply","objA","objB","compareContext","ret","keysA","keysB","bHasOwnProperty","idx","valueA","valueB","inizializza","src","async","defer","onload","inizializzaPotenzialiPratiche","caricaComponente","hasPropertyDescriptors","hasArrayLengthDefineBug","originURL","msie","userAgent","urlParsingNode","resolveURL","protocol","host","hostname","port","pathname","requestURL","_createClass","defineProperties","Constructor","protoProps","staticProps","_propTypes2","_reactSideEffect2","_deepEqual2","_HelmetUtils","_objectWithoutProperties","_class","_temp","HelmetSideEffects","HelmetExport","_React$Component","HelmetWrapper","_classCallCheck","ReferenceError","_possibleConstructorReturn","subClass","superClass","setPrototypeOf","_inherits","nextProps","mapNestedChildrenToProps","nestedChildren","flattenArrayTypeChildren","_extends2","arrayTypeChildren","newChildProps","mapObjectTypeChildren","_ref2","_extends3","_extends4","newProps","mapArrayTypeChildrenToProps","newFlattenedProps","arrayChildName","_extends5","warnOnInvalidChildren","mapChildrenToProps","_this2","_child$props","childProps","_props","canUseDOM","propTypes","oneOfType","arrayOf","defaultTitle","bool","func","titleTemplate","peek","rewind","mappedState","renderStatic","invariant","getAllKeys","Context","commands","defaultCommands","update","isEquals","newContext","directive","$spec","_this","spec","nextObject","objectWasNextObject","nextValueForKey","nextObjectValue","$push","invariantPushAndUnshift","$unshift","$splice","originalObject","invariantSplice","invariantSplices","$set","_nextObject","invariantSet","$toggle","targets","invariantSpecArray","nextObjectCopy","$unset","_spec","$add","values","invariantMapOrSet","_a","$remove","$merge","specValue","original","defaultContext","command","typeOfTarget","$floor","loose","functionLengthIsConfigurable","functionLengthIsWritable","sym","symObj","_","syms","defineDataProperty","predicate","predicates","$hasOwn","getPolyfill","polyfill","functionsHaveNames","$bind","boundFunctionsHaveNames","flagsBound","SyntaxError","enhanceError","executor","resolvePromise","fns","createThunkMiddleware","extraArgument","getState","thunk","withExtraArgument","REACT_STATICS","getDefaultProps","mixins","KNOWN_STATICS","caller","arity","isGetOwnPropertySymbolsAvailable","targetComponent","sourceComponent","customStatics","inizializzaMenuHome","caricaMenuHome","cambiaUfficio","modificaUfficioCorrenteMenuHome","setFunctionLength","applyBind","originalFunction","adjustedLength","VALID_TAG_NAMES","handlers","use","eject","$actualApply","rnds","isEnumerable","hasDontEnumBug","hasProtoEnumBug","dontEnums","equalsConstructorPrototype","ctor","excludedKeys","$applicationCache","$console","$external","$frame","$frameElement","$frames","$innerHeight","$innerWidth","$onmozfullscreenchange","$onmozfullscreenerror","$outerHeight","$outerWidth","$pageXOffset","$pageYOffset","$parent","$scrollLeft","$scrollTop","$scrollX","$scrollY","$self","$webkitIndexedDB","$webkitStorageInfo","$window","hasAutomationEqualityBug","theKeys","skipProto","skipConstructor","equalsConstructorPrototypeIfNotBuggy","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","propName","componentName","propFullName","secret","getShim","isRequired","ReactPropTypes","array","symbol","any","instanceOf","objectOf","oneOf","shape","exact","checkPropTypes","PropTypes","dispatchEvent","MouseEvent","createEvent","initMouseEvent","saveAs","HTMLAnchorElement","URL","webkitURL","download","rel","origin","createObjectURL","revokeObjectURL","msSaveOrOpenBlob","autoBom","Blob","innerText","HTMLElement","safari","FileReader","onloadend","readAsDataURL","MessageChannel","unstable_forceFrameRate","performance","requestAnimationFrame","cancelAnimationFrame","port2","port1","onmessage","postMessage","sortIndex","startTime","priorityLevel","delay","unstable_wrapCallback","unstable_continueExecution","unstable_pauseExecution","unstable_getFirstCallbackNode","unstable_Profiling","lastC","storage","setItem","removeItem","getItem","process","DEBUG","__nwjs","WebkitAppearance","firebug","exception","table","$1","localStorage","localstorage","toJSON","description","columnNumber","checkDCE","$isNaN","Assistente","inizializzaMenu","caricaMenuAssistente","impostaUfficio","impostaServizio","apriPermalink","reflectGetProto","originalGetProto","getDunderProto","_interopDefault","ex","React","React__default","shallowEqual","_defineProperty","handleStateChangeOnClient","WrappedComponent","mountedInstances","emitChange","SideEffect","_Component","recordedState","_proto","getDisplayName","plural","msAbs","isPlural","long","fmtShort","getRandomValues","crypto","msCrypto","rnds8","relativeURL","menuPluginCaricato","GeCo","caricaMenuGeCo","inizializzaMenuPlugin","utente","ufficio","container","urlHelpdesk","origineAperturaModaleQuesito","servizio","caricaMenuPluginGeCo","impostaAreaSelezionata","impostaServizioCorrente","creaNuovoQuesito","regex","proto","normalizeHeaderName","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","maxContentLength","maxBodyLength","condition","argIndex","framesToPop","v1","v4","uuid","concatty","that","bound","arrLike","slicy","boundLength","boundArgs","joiny","Empty","origSymbol","hasSymbolSham","gopd","nonEnumerable","nonWritable","nonConfigurable","setState","forceUpdate","__self","__source","keyPrefix","count","escape","toArray","only","createRef","PureComponent","createContext","_currentValue2","_threadCount","Provider","Consumer","forwardRef","lazy","memo","cloneElement","createFactory","isValidElement","IsSomeRendererActing","serializedParams","toISOString","hashmarkIndex","reactIs","MEMO_STATICS","TYPE_STATICS","getStatics","component","objectPrototype","hoistNonReactStatics","blacklist","inheritedComponent","targetStatics","sourceStatics","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","loaded","__webpack_modules__","getter","definition","globalThis","hmd","subscriptionShape","trySubscribe","tryUnsubscribe","notifyNestedSubs","isSubscribed","storeShape","subscribe","store","storeSubscription","CLEARED","nullListeners","notify","Subscription","parentSub","onStateChange","unsubscribe","listeners","addNestedSub","listener","clear","hotReloadingVersion","dummyState","noop","connectAdvanced","selectorFactory","_contextTypes","_childContextTypes","_ref$getDisplayName","_ref$methodName","methodName","_ref$renderCountProp","renderCountProp","_ref$shouldHandleStat","shouldHandleStateChanges","_ref$storeKey","storeKey","_ref$withRef","withRef","connectOptions","subscriptionKey","wrappedComponentName","selectorFactoryOptions","Connect","renderCount","propsMode","setWrappedInstance","initSelector","initSubscription","subscription","selector","run","getWrappedInstance","wrappedInstance","sourceSelector","makeSelectorStateful","notifyNestedSubsOnComponentDidUpdate","addExtraProps","withExtras","freeSelf","objectProto","nativeObjectToString","symToStringTag","unmasked","transform","funcProto","funcToString","objectCtorString","createStore","preloadedState","enhancer","currentReducer","currentState","currentListeners","nextListeners","isDispatching","ensureCanMutateNextListeners","Ctor","replaceReducer","nextReducer","outerSubscribe","observer","observeState","getUndefinedStateErrorMessage","actionType","bindActionCreator","actionCreator","bindActionCreators","actionCreators","boundActionCreators","compose","_len","funcs","_key","rest","reduceRight","composed","applyMiddleware","middlewares","_dispatch","middlewareAPI","middleware","wrapMapToPropsConstant","getConstant","constant","constantSelector","dependsOnOwnProps","getDependsOnOwnProps","mapToProps","wrapMapToPropsFunc","proxy","stateOrDispatch","ownProps","mapDispatchToProps","mapStateToProps","defaultMergeProps","stateProps","dispatchProps","mergeProps","pure","areMergedPropsEqual","hasRunOnce","mergedProps","nextMergedProps","wrapMergePropsFunc","impureFinalPropsSelectorFactory","pureFinalPropsSelectorFactory","areStatesEqual","areOwnPropsEqual","areStatePropsEqual","hasRunAtLeastOnce","nextState","nextOwnProps","nextStateProps","statePropsChanged","propsChanged","stateChanged","handleSubsequentCalls","finalPropsSelectorFactory","initMapStateToProps","initMapDispatchToProps","initMergeProps","factories","strictEqual","_ref$connectHOC","connectHOC","_ref$mapStateToPropsF","mapStateToPropsFactories","_ref$mapDispatchToPro","mapDispatchToPropsFactories","_ref$mergePropsFactor","mergePropsFactories","_ref$selectorFactory","_ref2$pure","_ref2$areStatesEqual","_ref2$areOwnPropsEqua","_ref2$areStatePropsEq","_ref2$areMergedPropsE","extraOptions","_setPrototypeOf","_inheritsLoose","isAbsolute","spliceOne","list","valueEqual","every","item","aValue","bValue","addLeadingSlash","stripLeadingSlash","stripBasename","hasBasename","stripTrailingSlash","createPath","createLocation","currentLocation","hashIndex","searchIndex","parsePath","hasTrailingSlash","toParts","fromParts","isToAbs","isFromAbs","mustEndAbs","up","createTransitionManager","prompt","setPrompt","nextPrompt","confirmTransitionTo","getUserConfirmation","appendListener","isActive","notifyListeners","getConfirmation","confirm","HashChangeEvent$1","HashPathCoders","hashbang","encodePath","decodePath","noslash","slash","stripHash","getHashPath","replaceHashPath","MAX_SIGNED_31_BIT_INT","commonjsGlobal","calculateChangedBits","_Provider$childContex","_Consumer$contextType","contextProp","emitter","on","handler","off","newValue","changedBits","oldValue","_Component2","onUpdate","_proto2","_objectWithoutPropertiesLoose","createNamedContext","Router","history","_isMounted","_pendingLocation","staticContext","unlisten","listen","computeRootMatch","isExact","Lifecycle","onMount","prevProps","onUnmount","cache","cacheCount","generatePath","generator","compilePath","Redirect","computedMatch","_ref$push","prevLocation","locationsAreEqual","cache$1","cacheCount$1","matchPath","_options","_options$exact","_options$strict","_options$sensitive","matched","_compilePath","cacheKey","pathCache","compilePath$1","Route","context$1","_this$props","Switch","withRouter","wrappedComponentRef","remainingProps","useLocation","HashRouter","globalHistory","_props$getUserConfirm","_props$hashType","hashType","basename","_HashPathCoders$hashT","getDOMLocation","transitionManager","forceNextPop","ignorePath","handleHashChange","encodedPath","locationsAreEqual$$1","fromLocation","toLocation","toIndex","allPaths","lastIndexOf","fromIndex","delta","go","revertPop","handlePop","initialLocation","listenerCount","checkDOMListeners","removeEventListener","isBlocked","createHref","pushHashPath","prevIndex","nextPaths","goBack","goForward","block","unblock","createHashHistory","resolveToLocation","normalizeToLocation","forwardRefShim","LinkAnchor","forwardedRef","innerRef","navigate","_onClick","event","isModifiedEvent","Link","_ref2$component","forwardRefShim$1","forwardRef$1","_ref$ariaCurrent","ariaCurrent","_ref$activeClassName","activeClassName","activeStyle","classNameProp","className","isActiveProp","locationProp","styleProp","escapedPath","classnames","joinClassnames","Types","SUCCESS","ERROR","WARNING","MASSIVA","Timeout","MAX_TEXT_LENGTH","_assertThisInitialized","getChildMapping","mapFn","mapper","getProp","getNextChildMapping","prevChildMapping","onExited","nextChildMapping","getValueForKey","nextKeysPending","pendingKeys","prevKey","childMapping","nextKey","pendingNextKey","mergeChildMappings","hasPrev","hasNext","prevChild","isLeaving","in","exit","enter","TransitionGroup","handleExited","contextValue","isMounting","firstRender","mounted","appear","currentChildMapping","childFactory","TransitionGroupContext","replaceClassName","origClass","classToRemove","UNMOUNTED","EXITED","ENTERING","ENTERED","EXITING","Transition","initialStatus","appearStatus","unmountOnExit","mountOnEnter","nextCallback","prevState","updateStatus","nextStatus","cancelNextCallback","getTimeouts","mounting","performEnter","performExit","appearing","timeouts","enterTimeout","onEnter","safeSetState","onEntering","onTransitionEnd","onEntered","_this3","onExit","onExiting","setNextCallback","_this4","active","doesNotHaveTimeoutOrListener","addEndListener","classList","baseVal","CSSTransition","appliedClasses","removeClasses","addClass","getClassNames","isStringClassNames","baseClassName","doneClassName","phase","hasClass","_addClass","_this$appliedClasses$","getTestIdByDisplayName","customViewBox","BaseIcon","inverted","small","viewBox","others","info","alarm","warning","positive","safe","Spinner","center","large","Tab","badge","Tabs","super","sessionStorage","dati","seleziona","indice","salvaStorage","currentIndex","storedIndex","datiStore","caricaStorage","initialIndex","indexFromStore","MutationObserver","aggiorna","spaced","disconnect","vertical","sIndex","refTabs","observe","childList","subtree","actionClasses","indexesClasses","tab","tabClasses","role","debounce","threshold","execAsap","onMouseOverCB","onMouseOutCB","mouseOver","setMouseOver","callbackRef","over","setOver","onOverCB","onOutCB","PopOver","right","mostraInfo","onMouseOver","onMouseOut","timeoutId","onBlur","onFocus","onMouseEnter","onMouseLeave","Button","flat","floating","icon","primary","big","loading","tooltip","refButtonIntenal","refButton","disabledInternal","setDisabled","running","setRunning","onClickInternal","blur","always","HeaderOperazione","expanded","operazione","onOperazioneBtnClick","SuccessoIcon","stato","errori","printIconFromType","printOperationHeaderMessage","multipleMessages","printActionText","anyAsycRunning","operazioniMassive","HeaderMassiva","ultimaOperazione","finishedTimestamp","getIcon","getMessage","HeaderColumn","HeaderRow","Header","Row","Column","BodyCell","BodyRow","Body","Cell","Footer","sameType","existFixedColumns","ColumnComponent","comp","Table","clickable","bordered","striped","hover","fixedLayout","fixed","Head","Foot","createDate","addZero","getDate","getMonth","getFullYear","createTime","showMills","hour","getHours","minutes","getMinutes","secs","getSeconds","mills","getMilliseconds","dateString","formattedDate","setMinutes","getTimezoneOffset","fixDate","getDefault","as","computedDefault","normalizza","absValue","toFixed","valore","precisione","precisioneNorm","power","formattaNumero","numeroP","precisioneP","separatoreMigliaia","seperatoreDecimali","numero","valoreP","unformatted","migliaia","decimali","usePrecision","negative","mod","Formatter","tipo","ElementType","renderMessageRow","onRimuovi","actions","TabellaOperazioneSincrona","rimuoviOperazione","op","rimuoviErrore","points","Colors","Progress","indeterminate","percentage","percentageValues","total","probObj","includes","startsWith","backgroundColor","DettaglioOperazioneMassiva","segnaErroriOperazioneChecked","showErrors","eliminaOperazioneAsync","onFeedback","selezionati","elaborati","UpIcon","onErroriCollapsed","DownIcon","onErroriExpanded","deleted","testoFeedback","handleFeedback","progresso","aggiornaStatoErrore","getErrori","stampaInfo","domContainerNode","createTransaction","disableAnimation","SnackbarElement","clearSync","refList","clearExpand","newOp","controllaHistoryOperazioni","mostraOperazione","operazioneCorrente","operazioniOneShot","removeCurrent","operazioni","expand","avoidStore","removeOnMouseOut","moveToHistory","tmpHistory","ops","sync","conteggioErrori","numeroErrori","find","calcolaProgresso","completaOperazione","aggiornaOperazione","newError","timeOut","realExpand","idOperazione","om","statoOperazione","snackbar__testoLungo","haErroriNonVisualizzati","opIndex","errId","operazioneMassiva","errore","uniqueOperations","tmpArray","mostraSpinner","stampaTabOperazioniMassive","closeifOpen","onhashchange","locationHashChanged","snackbar__expand","transactionComp","visualizzaOperazioni","visualizzaOperazione","showExpandBar","refSnackBar","Snackbar","show","creaOperazioneMassiva","aggiornaProgressoOperazione","terminaOperazioneMassiva","testoFeedabck","aggiungiErroreAOperazione","inizializzaOperazioni","recuperaOperazioniMassive","taskCorrelationId","progress","feedbackText","feedbackCallback","notifyMessage","task","LONG","SHORT","taskName","operations","connectionErrorCallback","errorMessage","notifyConnectionError","setConnectionErrorCallback","startLoadingApplication","stopLoadingApplication","LoadingPanel","isLoading","bodyClass","logo","appName","headerClass","Application","Image","alt","div","Tour","slide","onChange","saveState","onEnd","slideS","slides","chiudi","indietro","marginRight","avanti","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","LogLevel","none","workspace","level","newEnable","lev","ConsoleLog","initWindowConfig","fwplugins","receivers","configs","callerParams","getWindowCalledByParent","calledByParent","getWindowCallerParams","getWindowReceiverData","idReceiver","dataName","setWindowReceiverData","dataValue","getHashCleaned","setLocationHash","replaceHistory","queryPos","query","replaceState","callerExtraParams","getCallerParentIdFromParams","getCallerParentId","isCalledByParent","isPresentIFrame","getElementsByClassName","getUUID","pluginsVersion","ID_PLUGIN_MSGS","CALLBACK_REGS","LAST_MESSAGES","EventoServer","initialized","postMessageToParent","handleMessage","idDestination","configTest","iframes","formatMessage","formatForwardMessage","eventName","postMessageToChilds","parent","regs","IdReceiver","isOnLastMessages","lastMessages","isOnLast","destination","forwardMessageToParent","forwardMessageToChilds","reg","extraParams","initialVersion","originVersion","getIdReceiver","getTitle","validations","newTitle","getRandomId","Presentation","readOnly","failedCalls","api","concatenateParameters","parameters","parametersList","paramName","getFileNameFromGetFileResponse","filename","enableCredentialWithCors","allResponse","cors","contentType","post","getFile","postFile","formData","processData","progressEvent","setDefaultHeader","CallForwardTypes","callChild","uri","timeoutLimit","callId","timeoutID","checkResponse","EventOriginCheck","lastEventOutsideId","lastObjectOutside","eventFilter","originCheck","isClickableOutside","eventFilterOk","catch","originaEvent","explicitOriginalTarget","restoreLastOutside","lastEventId","callParent","PluginMessageTypes","getCallerParams","urlParams","setWindowCallerParams","getCallerExtraParams","clickOutEventFilter","clickOutFunctionFilter","funct","attivaTour730","disattivaTour730","attivaTourRichiesteEnti","disattivaTourRichiesteEnti","attivaTourImu","disattivaTourImu","EMP_LOW","emphasis","runningInit","onClickInit","blockClassName","tabIndex","runningUnc","setRunningUnc","funcUnc","evt","childrenWithText","Emphasis","LOW","MEDIUM","HIGH","Tooltip","enableFunction","InfoTooltip","Icon","InfoesIcon","DropdownItem","divider","showInfo","infoContent","infoPosition","cssFloat","SubMenuItem","inverse","DropdownList","classPrefix","onClose","classMenu","DropdownComponent","toggleComponent","Dropdown","openDefault","setOpen","refNode","closeIfClickOutside","toggleMenu","Item","SubMenu","NavDropdown","subtitle","fill","MenuUfficiItems","uffici","ufficioSelezionato","onUfficioChange","MeetingRoom","DoneIcon","MenuUffici","ufficiOrdered","NavigateNextIcon","MenuUtente","accountsUrl","myCgnUrl","onLogout","denominazioneUtente","nome","cognome","urlLogout","gotoProfiloUtente","logOut","PermIdentityIcon","ExportIcon","Card","defaultClosed","collapsible","breadCrumb","onAction","fullBody","multipleActions","openProp","onOpen","intOpen","setIntOpen","useOpenClose","CollapseIcon","ExpandIcon","Heading","handleMessages","eventContext","addWindowEventListener","removeWindowEventListener","IFrameModalizer","clickFromRef","childRef","modalizerEl","useBodyChild","modalizer","setModalizer","messageHandler","click","position","eventoFocus","fromPluginsEvent","getWindowSizeToParam","innerWidth","innerHeight","messageToNoRedirect","MAIN","freeze","LOW_MAIN_RESOLUTIONS","RESPONSIVE_MODE_WIDTH","resolutions","resolution","forwardFunc","callAndResponse","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","setInitialSrcAndHash","routerPathBaseParam","queryParms","getQueryParamsFromObject","newHash","getIframeHash","newInitialSrc","getHashTag","routerPath","newRouterPathBase","eventoChangeHash","subHash","v1parts","v2parts","versionCompare","eventoChangeHash2","onHashChange","newHashWithParams","handleHashchangeEvent","useRoutingHandler","iframeModalizerRef","clickEvent","useClickOutside","useIFrameInDialog","useViewportResolutionSender","eventoGotoExternalUrl","setLocation","useGotoExternal","handleLoadingSuccess","handleLoadingFailure","onLoad","loadingError","onSuccess","onFail","timeoutRef","childLoadedRef","setLoading","setLoadingError","sendExtraData","checkLoadOk","useIFrameLoader","marginLeft","marginTop","extendStatics","__extends","__","HttpError","_super","statusCode","trueProto","TimeoutError","AbortError","__assign","HttpResponse","HttpClient","getCookieString","nodeHttpClientModule","XhrHttpClient","logger","abortSignal","aborted","xhr","header","Warning","requireFunc","DefaultHttpClient","httpClient","NodeHttpClient","TextMessageFormat","output","RecordSeparator","messages","RecordSeparatorCode","NullLogger","_logLevel","_message","Arg","isIn","getDataDetail","includeContent","byteLength","num","formatArrayBuffer","sendMessage","transportName","accessTokenFactory","logMessageContent","label","sent","trys","verb","step","__generator","_b","Trace","MessageType","Subject","cancelCallback","observers","complete","SubjectSubscription","subject","dispose","ConsoleLogger","minimumLogLevel","logLevel","Critical","Information","HandshakeProtocol","writeHandshakeRequest","handshakeRequest","parseHandshakeResponse","messageData","remainingData","Buffer","binaryData","separatorIndex","responseLength","textData","HubConnectionState","_arguments","HttpTransportType","TransferFormat","HubConnection","connection","serverTimeoutInMilliseconds","keepAliveIntervalInMilliseconds","handshakeProtocol","onreceive","processIncomingData","onclose","connectionClosed","callbacks","methods","closedCallbacks","receivedHandshakeResponse","connectionState","Disconnected","cachedPingMessage","writeMessage","Ping","handshakePromise","Debug","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","serverTimeout","invocationMessage","nonblocking","StreamInvocation","CancelInvocation","AbortController","isAborted","LongPollingTransport","pollAbort","connect","pollOptions","pollUrl","Binary","signal","getAccessToken","updateHeaderToken","closeError","receiving","poll","e_1","pollAborted","raiseOnClose","deleteOptions","logMessage","ServerSentEventsTransport","eventSourceConstructor","opened","Text","eventSource","Cookie","close","onopen","WebSocketTransport","webSocketConstructor","webSocket","binaryType","_event","ErrorEvent","OPEN","wasClean","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","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","connettiSignalR","idUtente","gruppi","pathName","connUrl","endsWith","concatSlash","qs","UserId","pubblica","disconnettiSignalR","datiUtente","IdentificativoUtente","PrestazioniAgevolate","refreshPrestazioneAgevolata","onDichiarazioneStatoModificato","Helmet","urlPrestazioniAgevolate","CodiceUfficio","Visureipocatastali","urlVisureipocatastali","Isee","refreshDichiarazioniIsee","Modello","NuovoStato","urlIsee","ErrorPage","image","actionLabel","onActionClick","asPage","Logo","Surprise","xmlns","filterUnits","dx","dy","stdDeviation","floodColor","operator","in2","rx","UnexpectedErrorPage","ErrorBoundary","errorInfo","showDetails","toggleShow","onCatch","errorTitle","catchComponentError","itemActive","isLinkActive","handleClick","ItemWR","newRouter","openCallback","SidebarContext","Submenu","SidebarImpl","openInternal","Sidebar","lgOffset","lgPull","lgPush","mdOffset","mdPull","mdPush","xl","xlPull","xlPush","xlOffset","xs","xsOffset","xsPush","xsPull","fluid","Col","clipPath","Toolbar","back","onBack","ToolbarBackIcon","PageWrapper","onPageBack","helmetTitle","isLoadingPage","pageActions","pageBack","pageButtons","pageTitle","handlePageBack","setProp","properties","setPropRecursive","propIndex","temp","addToForm","isValid","onFormChange","removeFromForm","resetta","validare","FormWrapperPropTypes","FormWrapper","FormContext","WComponent","notifica","resetHandler","valido","Checkbox","disabledProp","readOnlyProp","switch","rSwitch","contesto","cbChecked","uniqueid","labelClassName","inputConteinerClassName","handleChange","checkboxId","htmlFor","MESSAGE_READ","isDontShowAgainOptionSelected","DontShowAgain","setChecked","clearMessageStatus","usePortalElement","doc","portalRef","getSize","clientWidth","clientHeight","useChangeModalPosition","initialPosition","modalContentRef","modalElementRef","setX","setY","dragging","setDragging","mouseCoord","setMouseCoord","updateState","useForceUpdate","mouseWidth","mouseHeight","posX","posY","isInteger","createResizeWindowCallback","callbackMouseUp","callbackMouseMove","changePosition","onMouseDown","offsetLeft","offsetTop","offsetWidth","offsetHeight","overflow","maxHeight","calcStyle","PH_CLASS_PREFIX","scrollable","globalModalContext","ModalContext","setContext","getContext","setOpenOrGlobal","subscribeOrGlobal","unsubscribeOrGlobal","refMounted","useDontShowAgainMessageRead","reloadCond","messageRead","setMessageRead","ModalCloseButton","DeleteIcon","ModalContent","Modal","contentClassName","doNotFocus","initialPos","dontShowAgainId","contentRef","portalElementRef","myClass","win","scrollHeight","phClass","addModalOpenClassToBody","removeModalOpenClassToBody","useBodyModalOpenClass","modalCloseButtonElement","childrenWithProps","newChildren","contentClasses","ConfirmButton","Confirm","confirmPrimary","testoConferma","confirmText","cancelText","onConfirm","onCancel","working","setWorking","refMainButton","renderIcon","annulla","conferma","FooterButton","createModalPromise","tempElement","confirmPromise","Panel","alert","success","ButtonGroup","separatore","newPrecisione","newNumero","grouping","ValidationLevel","rules","Validation","register","rule","validate","additionalParams","getValidationLevel","validateAll","rulesToVal","warnings","ruleToVal","messageResult","levelResult","valid","codiceFiscaleValido","set1","set2","partitaIVAValida","partitaIva","codiceProvinciale","verificaCodiceProvinciaPartitaIva","verificaCodiceControlloPartitaIva","telefonoValido","telefono","ValidationRules","required","minLength","maxLength","CodiceFiscaleAlfaNumerico","PartitaIva","CodiceFiscale","IBAN","Fax","Email","Range","Pattern","Telefono","iban","newIban","divident","modulo","IBANValido","mail","minValue","maxValue","DefaultRules","Levels","customRestrictions","getEventKeyChar","Restriction","restriction","handleKeys","keyName","cleanKeyName","customRestriction","matchKeyEvent","findMatchedKey","DefaultRestrictions","numeri","numerinegativi","numeridecimali","numeridecimalinegativi","lettere","lettereall","alfanumerici","cognomenome","ragionesociale","codicefiscale","numberKeys","letterKeys","letterSpecialKeys","allLetterKeys","alphanumericKeys","DefaultValues","EllipsisText","numberOfLines","textClassname","textStyle","WebkitLineClamp","scrollWidth","dirty","validazione","validareDirty","hasError","hasWarning","ValidationViewer","namecase","Input","valida","zeroValid","valueP","isZero","valueS","valueState","formatP","formatta","nameCase","upperCase","targetValue","restrictions","formattedField","hasSelection","unformattedField","setSelectionRange","keepZero","valueFormat","precision","formatValue","newEvent","valueChanged","onKeyPress","onKeyDown","reset","aggiornaValoreInput","readOnlyP","getAlignment","align","alignment","inputValue","renderInput","rValue","ellipsis","titleLines","placeholder","inputClass","formattedValue","focused","autoComplete","inputTitleClass","InputRicerca","searchTerm","clickCerca","onClickCerca","reload","refInput","buttonText","onChangeSearch","onSearchKeyDown","svuotaRicerca","cercaDichiarazioni","soscaf","studio","anno","preferenzeStampa","erratiCodiciFiscaliDichiarazione","idDichiarazioneDichiarante","idDichiarazioneConiuge","elimina","idDichiarazione","annullaElimina","impostaStatoInLavorazione","creaSetteTrentaIntegrativa","cmd","creaStampa","filtri","dichiarazioniIds","IsStampaUfficiale","StampaDichiarazione","AutocertificazioneGenerica","FascicoloContribuente","DelegaUnica","InformativaPrivacy","AutocertificazioneFamiliari","StampaF24","Scelta582x1000","AutocertificazioneC4","AutocertificazioneCasiParticolariQuadroC","RichiestaAccredito","DocumentiDaConsegnare","AutocertificazioneOneri","PromemoriaConguagli","DelegaPrecompilatoCU","AutocertificazioneF6","CalcoloBonusIRPEF","Fatture","LetteraNovita","Barra2Provvisorio","RistampaLeStampate","FronteRetro","ModelliCompilati","GuidaLettura","Ricevuta730AdE","NrCopie","SalvaPreferenze","codiceUfficio","ArchiviaInZip","DichiarazioniIds","SoloModelliCompilati","Anno","stampaBarra4","dichiarazioni","IdDichiarazione","Cognome","Nome","origine","DatiAddizionali","Origine","AutocertificazioneFamiglieNumerose","Ricevuta7304","TipoDichiarazione","Ordinaria","CorrettivaNeiTermini","IntegrativaFavore","Integrativa","Tardiva","Omessa","Annullata","Sostitutiva","IntegrativaArt2Co8Ter","OrdinariaLiquidazione","CorrettivaIntegrativaParziale","Simulata","IntegrativaArt1Co634","SostitutivaConNuovaTrascrizioneEVoltura","SostitutivaSenzaNuovaTrascrizioneEVoltura","SostitutivaSoliAllegati","SetteTrentaIntegrativaCodice1","SetteTrentaIntegrativaCodice2","SetteTrentaIntegrativaCodice3","Variazione","SuccessioniCartaceaPrimaDichiarazione","SuccessioniCartaceaModificativa","SuccessioniCartaceaIntegrativa","SuccessioniCartaceaSostitutiva","SuccessioniCartaceaAggiuntiva","AnnoPrecedente","Importabile","InLavorazione","Completa","DaControllare","DaInviare","DaTrasmettere","TrasmissioneNonRiuscita","TrasmessaManualmente","TrasmessaAutomaticamente","ConsegnaManuale","DaAnnullare","AnnullataAE","ScartataCF","ScartataPrecompilato","ScartataRicalcolo","ScartataEnte","ScartataAudit","BloccataCAF","BloccataIntegrativa","Stampata","TrasmessaEPASA","ScartataEPASA","AccoltaINPS","RifiutataINPS","InviataINPS","ReiezioneINPS","Scadenze730","Agosto23","Agosto31","Settembre22","UltimaScadenza","TermineUltimo","NonSelezionato","setAnnoSelezionato","SelectCheckBox","itemIndex","onSelected","Selected","sortProperty","sortDirection","sortCallback","columnClasses","caretClasses","ordina","ODataTableContext","renderProperty","focussable","nextElement","Option","additionalData","isSelected","Divider","Select","visible","closeSelect","valueProp","lastFocus","contestoTxt","el","refSelected","menuDOM","menuRect","getBoundingClientRect","selectedRect","bottom","customList","listTitleClasses","scrollOptionIntoView","closeIfOpen","changeVisibility","chiudiTab","onKeyUp","renderMenu","FormSelect","genera","skip","sortOrder","filters","urlFinale","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","FilterTypes","INPUT","SELECT","AUTOCOMPLETE","DATEPICKER","DATERANGE","InputFilter","refFilterInput","notifyAddFilter","queryOption","customFilter","addFilter","handleKeyUp","SelectFilter","displayValue","refSelect","highlight","parsedValue","Highlighter","textP","nextUUID","SearchListProvider","subscriber","searchProps","closeList","requestId","lastRequestId","searchImpl","searchDebounced","searchNow","webGet","dataSource","term","searchStarted","searchCompleted","errorCatched","SearchButton","SearchIcon","AutoComplete","suggest","forcesSearch","searchResult","selectItem","formDirty","searchListProvider","deactiveIgnoreBlur","eventValue","cValue","isSearchResultListVisible","onFinally","searchResultListSelectedItem","selectItemAfterLoading","ignoreBlur","elementIndex","activeIgnoreBlur","clearAfterSelect","searchTermValue","getSearchTermDescription","clearAutoComplete","onClear","selectedItem","refContainer","selectedDOM","renderRow","handleListItemClick","resolveListItemClass","onGetError","selectFirstItemIfNoEditing","validareP","renderPropertyP","selectText","inputClasses","handleOnBlur","handleOnChange","onClearAutoComplete","forceSearch","renderList","AutocompleteFilter","autocompleteRef","InputRangeFilter","clearFields","refRangeDa","refRangeA","handleFromChange","handleKeyDown","handleToChange","convertDateToISO","newDate","setHours","parseDate","future","decrease","annoDefault","year","day","formatDate","separator","YearsToShow","DecadesToShow","Viste","DAY","MONTH","YEAR","DECADES","days","months","isOutOfRange","Days","initDate","listaGiorniMeseCorrente","numeriGiorniMeseCorrente","primoGiornoDelMese","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","newDay","futureDate","dataCorrentementeSelezionata","cDisabled","cReadOnly","updateProps","getCurrentSelectedDate","wrapperClasses","CalendarIcon","selectFullDate","WrappedDatePicker","DatePickerFilter","refDatepicker","DateRangeFilter","inizio","check","fine","sbiancaCampi","inizioDateRange","fineDateRange","handleInizioChange","handleFineChange","Tag","SelectedFilters","onClean","onRemoveFilter","keyFilters","filterType","timestamp","Filter","initFilters","initialFilters","filtroRic","filtriRicerca","filtroRicDescription","autocompleteObj","filterObj","Value","filterRefs","rangeRef","checkValidity","newFilter","collectValues","onFilterAdded","resetPosition","filterCallback","tmpItem","renderComponent","Autocomplete","DateRange","showOtherFilters","initializeFilter","otherFiltersLabel","filtriRicercaMain","filtriRicercaOther","showInOthers","getFilterClasses","renderFilterItem","toggleOtherFilters","SortRightIcon","cleanAll","removeFilter","ODataServiceStrategy","opt","second","toStringValue","safeUrlString","formatDateTime","field","queryServiceStrategy","resolveFilter","TablePagination","abilitataPrecedente","onClickToStart","onClickToPrec","abilitataSuccessiva","onClickToEnd","onClickToSucc","currentPage","currentPageRef","onChangeCurrentPage","totalPages","totalItems","pageSize","onChangePageSize","availablePageSizes","SkipToStartIcon","SortLeftIcon","SkipToEndIcon","ToggleFiltriAvanzati","showFilters","GroupActions","groupActions","DataTable","selectable","onSelectedAll","columnHeaders","items","row","additionalRowData","caricaStato","mergeFilters","refFilter","reinitializeFilter","loadPage","proprieta","ordine","resolveFilters","odata","salvaStato","results","setResults","filteredResult","loadDataSource","Items","Count","notificaSelezionati","onPageLoad","nuovo","newItems","onSelezionati","additionalFilters","useAdvancedFilters","_componentType","onGroupAction","generatedUrl","sortOrderP","rv","newRv","urlP","storeP","reinizializza","definitionFilter","filterStored","filtriProp","populateFilters","defFilters","defFilter","emptyMessage","tableClasses","hasFilters","hasChildrenWithFilters","filtriApplicati","filtriIniziali","filtroIniziale","newFiltroIniziale","containerClasses","toggleFilters","iniziale","precedente","ultima","prossima","setCurrentPage","modificaPageSize","onFiltersReloaded","selezionatoSingolo","ODataTable","OptionDropdown","MoreIcon","ModaleStorico","storico","caricaStorico","disegnaDatiAggiuntivi","denominazione","Descrizione","Data","Form","validationState","subscriptions","struttura","All","rivalida","onValidationChange","FormErrors","updateValidationState","Textblock","Vocale","carattere","validi","setpari","setdisp","nomeCompatibileCodiceFiscale","nomeAux","nomeCondensato","car","cognomeCompatibileCodiceFiscale","Length","_initialData","IdAnagraficaDichiarante","IdAnagraficaConiuge","CodiceFiscaleDichiarante","CognomeDichiarante","NomeDichiarante","CodiceFiscaleConiuge","DenominazioneConiuge","dichiaranteErrato","coniugeErrato","altriErrati","codiciFiscaliDichiarazione","ModaleCodiceFiscale","annoSelezionato","Stato","NuovoCodiceFiscaleConiuge","NuovoCodiceFiscale","NuovoCodiceFiscaleDichiarante","onModifica","refForm","inLavorazione","caricaCodiciFiscali","changeForm","DescrizioneStato","modifica","ModaleInfoCodiceFiscale","onCorreggi","onRiapri","onVisualizza","correggi","riapri","visualizza","ModaleRiduzioneAcc","annullareIrpef","ridurreIrpef","importoIrpef","annullareCedolare","ridurreCedolare","importoCedolare","annullareIrpefConiuge","ridurreIrpefConiuge","importoIrpefConiuge","annullareCedolareConiuge","ridurreCedolareConiuge","importoCedolareConiuge","descrizioneSostituto","senzaSostituto","dichiarante","secondoAccontoIRPEF","secondoAccontoCedolareSecca","coniuge","secondoAccontoIRPEFConiuge","secondoAccontoCedolareSeccaConiuge","abilitaStampa","loadModal","cfDichiarante","showFile","reportName","byte","blob","saveByteArray","base64","binaryString","atob","binaryLen","bytes","ascii","base64ToArrayBuffer","DescrizioneSostituto","SenzaSostituto","DescrizioneDichiarante","SecondoAccontoIRPEF","SecondoAccontoCedolareSecca","DescrizioneConiuge","SecondoAccontoIRPEFConiuge","SecondoAccontoCedolareSeccaConiuge","validaImportoIrpef","validaImportoIrpefConiuge","validaImportoCedolare","validaImportoCedolareConiuge","showModal","mbody","mfooter","sm","validaForm","stampa","ModaleStampa","segnalibro","Segnalibro","Wrapper","servizioAttivo","serviziUfficio","Servizi","CodiceServizio","StatoAttivazione","accessoNonConsentito","FileIcon","CellaNumeroNoteDichiarazione","numeroNote","ModaleAvviso","InfoIcon","RigaDichiarazione","mostraStorico","visualizzaTrasmissioneManuale","caricando","mostraModaleModifica","mostraModaleInfo","modaleModificaData","messaggioErroreModifica","loadingModaleModifica","modificaSegnalibro","espanso","onApriModaleIntegrativa","codiceFiscale","Studio","Success","DetectedProblems","anniRegistrati","Url730","Tipo","Tipologia","Coniuge","Dichiarante","mostraModaleRiduzioneAcc","settaCompleta","settaDaControllare","creaDaAnnoPrecedente","HaErrori","apriModaleInfoCodiceFiscale","trasmettiManualmente","NuovoCognomeDichiarante","NuovoNomeDichiarante","CognomeConiuge","NuovoCognomeConiuge","NomeConiuge","NuovoNomeConiuge","modificaAnagraficheDichiarazione","reactElement","ReactDOM","scaricaRicevutaAdE","urlAssegnoNucleoFamiliare","UrlANF","apriDichiarazione","datiAggiuntivi","visualizzaDichiarazione","DenominazioneSostitutoImposta","tabNr","StampaUfficialeEffettuata","DataUltimaModifica","DataCreazione","NumeroNote","completa","apriModaleModificaCodiceFiscale","apriModaleRiduzioneAcc","impostazioni","CampagnaIntegrativiAperta","apriModaleIntegrativa","controllaESettaCompleta","controllaESettaDaControllare","settaInLavorazione","settaAnnullata","apriModaleStorico","chiudiModaleStorico","IdDichiarazioneConiuge","chiudiModaleModifica","modificaCodiceFiscale","chiudiModaleInfo","chiudiModaleRiduzioneAcc","ModaleModificaSegnalibro","dichiarativi","Radio","inputChecked","useRadioFormChecked","radioId","radio","classesLabel","cercaAnagraficaInUfficio","sostitutoImposta","ottieniSostitutoImposta","codiceSede","creaSostitutoImposta","abilitaSostitutoImposta","_tipoDichiarazione","NON_SELEZIONATO","ORDINARIA","INTEGRATIVA","FORM_INITIAL_STATE","IdAnagrafica","IdSostituoImpostaPrecedente","sostitutoPrecedente","dichiarazioneEsistente","Protocollo","windowMessage","caricandoModale","obbligatorioCodice1","obbligatorioCodice2","obbligatorioCodice3","DataPrimaRata","SceltaSostituto","Sostituto","ModaleCreazione","bloccaInserimento","cfValidoSiatel","DescrizioneComue","TipologiaIndirizzo","onAnnulla","IdSostituto","CodiceSede","CodiceFiscaleSostituto","sostituto","Response","IdSostitutoImposta","onCreaNuova","onRipristinaEliminata","getData","valutaEsistenzaAnagrafica","valutaObbligatorietaProtocollo","tipoDichiarazione","esisteDichiarazionePerAnagrafica","zz","CodiceIban","sost","DescrizioneComune","comune","CodiceComune","Cap","CodiceProvincia","datiIniziali","cfInput","ObbligatorioCodice1","ObbligatorioCodice2","ObbligatorioCodice3","validaProtocollo","abilitaProtocollo","titleProtocollo","messaggioErrore","urlAssistente","updateForm","onPaste","incolla","Eliminata","SenzaSostitutoImposta","renderMessaggi","CampagnaIntegrativiCodice1e3Aperta","CampagnaIntegrativiCodice2Aperta","Denominazione","changeSceltaSostituto","DaTrattenere7304","DaRimborsare7304","changeCodiceFiscaleSostituto","changeComuneSostituto","changeTipoIndirizzoSostituto","onCrea","onRipristina","renderPulsanti","crea","ripristina","ImpostazioneStampa","stampaAbilitata","isLoadingInternal","copie","aggiornaStampaAbilitata","nrDichiarazioniSelezionate","nrDichiarazioniSelezionateNonStampate","nrDichiarazioniSelezionateStampate","onStampa","nPagine","stAbilitata","caricaPreferenzeStampa","userId","stampaProva","isLoadingModale","tabTutte","annoImpostaPiuDue","setCheckBoxState","clickFascicoloContribuente","setCheckBoxState2","copieKeyDown","cx","cy","permalink","AssistenteButton","inline","AssistenteInlineIcon","float","Gruppo730","GruppoAutocertificazioni","GruppoFascicoloContribuente","GruppoStampeVarie","ModaleStampa2","delegatoCentrale","currentTab","totaleSelezionati","count1","maxPagineStampabili","stampa730SogliaPagineBlocco","nPagineDaStampare","calcoloPagineDaStampare","avvisaOperazioneLunga","stampa730SogliaPagineAvviso","Titolo","CodiceFiscaleIncaricato","propsPrecedenti","statePrecedente","selezionatiDaAnnoPrecedente","annoImpostaPiuUno","mostraAlertAnnoPrecedente","linkAssistenteStampa","linkAssistenteFea","textAlign","marginBottom","clickGruppo730","clickGruppoStampeVarie","clickGruppoAutocertificazioni","clickGruppoFascicoloContribuente","paddingTop","FileUpload","allowUpload","onProgress","onFileUploaded","files","file","extensionAccepted","append","progressPercent","extension","accept","updateFiles","StatoDichiarazioneDaImportare","NonPresente","GiaPresente","NonImportabile","TipoImportazione","Corrente","Precedente","RigaImportazione","DaImportare","impostaDaImportare","StatoDaImportare","placement","CodiceFiscaleDoppio","_tipoImportazione","calcolaUploadSpeed","uploadedBytes","timeStarted","sommaUploadSpeed","sumAverageUpload","byteLoaded","inizioUpload","calcolaAverageUploadSpeed","contaFeedbackUpload","calcolaTempoTotaleGeneraLista","averageUpload","bytesTotaliFornitura","numeroDichiarazioni","scartoSePocheDichiarazioni","caricandoPercentualeGeneraLista","listaDichiarazioni","fileCaricati","selezionaFile","messaggioSeleziona","currentCountGeneraLista","ModaleImportazione","totaleFiles","intervalIdGeneraLista","fileRimasti","ListaDichiarazioni","codiciFiscali","codiciFiscaliDoppi","codiceFiscaleDoppio","lista","clearInterval","dichDaPaginare","tabellaImport","totalBytes","uploadSpeed","tempoTotaleGenerazioneLista","tempoRimanente","tempoTrascorso","totaleBytes","percentualeCaricamento","calcolaPercentualeCaricamento","tempcaricandoPercentualeGeneraLista","tempcurrentCountGeneraLista","newCount","uploadProgress","InizioUpload","initializeComponent","tipoImportazione","fileUpload","intervalId","setInterval","timerGeneraLista","dichiarazioniPerFile","nomeFile","PathFornituraXmlAnnoCorrenteDaImportare","NomeFile","creaDaXmlAnnoCorrente","selezionaTutte","daImportare","calcolaBytesCaricati","bytesCaricati","mostraGeneraLista","aggiungiLista","PercentualeElaborazioneLista","filtraListaRisultati","MessaggioSelezionaDeseleziona","paginaRisultati","fileCaricato","pathFornituraRedditiPFDaImportare","PercentualeCaricamento","ModaleImportazioneRedditiPF","File","PathFornituraRedditiPFDaImportare","BytesTotali","creaDaRedditiPFAnnoCorrente","BytesCaricati","mostraPannelloErrore","ModaleUploadFile","CorrelationId","controllaUpload","urlUpload","fileType","notificaErrore","x2","ModaleScadenze","prossimaScadenza","LogoScadenze","ModaleUltimaScadenza","nonVisualizzarePiu","onNonVisualizzarePiu","ACTIVE","DONE","TODO","Step","State","subTitle","StepItem","stepClasses","intestazioneClasses","Stepper","etichetteAlternative","nonlinear","stepperClasses","FileSelector","acceptedFileTypes","FileSelezionato","onElimina","TrashIcon","FileCaricato","Progresso","ModaleImportazionePdf","fileImportazioneAbilitati","fileSelezionati","uploading","importatoreSconosciuto","guidSessione","impostaEsito","prossimo","leggiFileSelezionati","caricaListaPdfImportabili730","carica","tabella","caricaSingoloFile","Name","erroriUpload","disabilitato","INACTIVE","Valore","ModaleNotificaScarto","creaLinkDichiarazione","url730","idFornitura","padStart","AuditUrl","dichiarazioniScartate","TUTTE","IN_LAVORAZIONE","SCARTATE","DA_INVIARE","TRASMESSE","COMPLETE","STAMPATE","TRASMESSE_EPASA","ACCETTATA_EPASA","SCARTATA_EPASA","ElasticTable","mostraModaleCreazione","isLoadingModaleCreazione","messaggioErroreCreazione","dataTable","urlCorrente","dichiarazione","datiInizialiModale","pulisciSelezione","resp","chiudiModaleCreazione","filtriStati","statoRicerca","descriptions","apriModaleCreazioneIntegrativa","creaNuovaDichiarazione","ripristinaEliminata","StatiRicercaSetteTrenta","StatiRicerca","abilitato","stampaDisabled","PLACE_HOLDER","NotificaPotenzialiIsee","PotenzialiPratiche","avviaNotificaPotenzialiIsee","getElementById","MOSTRA_NOTIFICA_ULTIMA_SCADENZA_KEY","MOSTRA_NOTIFICA_TERMINE_ULTIMO_KEY","Dichiarazioni","isLoadingModaleStampa","isLoadingModaleImportazione","isLoadingModaleUpload","tabSelezionato","messaggioErroreStampa","messaggioErroreImportazione","mostraModaleStampa","mostraModaleStampa2","mostraModaleImportazione","mostraModaleImportazioneRedditiPF","annoImportazione","mostraModaleUpload","mostraModaleImportazionePdf","mostraModaleNotificaScarto","mostraModaleScadenze","mostraUltimaScadenza","mostraTermineUltimo","nonVisualizzarePiuNotificaUltimaScadenza","nonVisualizzarePiuNotificaTermineUltimo","tipoDichiarazioneCreazione","tipoDichiarazioneImportazione","stampaInCorso","nTotali","nLavorazione","nScartate","nDaInviare","nTrasmesse","nRicevuteAdE","urlFileUpload","typeFileUpload","puoImportareXMLAnnoCorrente","elementi","totaleElementi","isAbilitatoImportXmlAnnoCorrente","impostazioniServizioSetteTrenta","ricerca","statiSetteTrenta","Totale","totali","scartate","daInviare","trasmesse","stat","notificaDichiarazioniScartate","ricaricaTabella","AzioneAnnullata","caricaStati","tabellaDichiarazioni","eq","getItems","MaxPaginePdf","creaStampaOld","maxDichiarazioniStampabili","chiudiModaleStampa","annullaSelezione","correlationId","apriMonitorStampe","chiudiModaleImportazione","chiudiModaleImportazioneRedditiPF","IdDichiarazioneInteressata","fromStorageKey","getStorageKey","toStorageKey","toItem","stampaMassivaDiProva","stampaMassivaUfficiale","stampaMassivaVarie","cambioStatoMassivoDaInviare","cambioStatoMassivoCompleta","cambioStatoMassivoAnnulla","cambioStatoMassivoInLavorazione","currentUserId","CurrentUserId","creaTabulatoDebitiCrediti","FileGenerato","creaTabulatoOneriAnnoPrecedente","creaTabulatoDettaglioProspettoLiquidazioneQuadroA","creaTabulatoDettaglioProspettoLiquidazioneQuadroB","DichiarazioniProcessate","DichiarazioniTotali","notificaCreaIntegrativaFallita","notificaImportazioneDichiarazioneDaXmlTerminata","notificaImportazioneDichiarazioneDaRedditiPFTerminata","notificaCreaSetteTrentaDaPassaggioNuovoAnnoTerminata","aggiornaDatiAggiuntivi","gestisciEliminata","notificaCreazioneIntegrativa","stampaTerminata","notificaCreaSetteTrentaDaPassaggioNuovoAnnoFallito","searchType","$filter","$skip","$top","dichiarazioniRicevuteAdE","inputRicerca","localStorageKey","dataUltimaNotifica","dataAttuale","badgeConteggio","dichiarazioniStampate","nr","getSelezionati","commonElasticTableProps","scaricaRicevuteAdE","elencoScadenze","scadenze730Centralizzati","scadenze730","indexScadenze","scadenza","toUTCString","pannelloScadenziario","totaleSelezionabili","totaleElementiSelezionabili","pannelloSelezionati","anniRegistratiFiltrato","ufficiAbilitatiPreRilascio","vediSeAbilitare","impostaAnnoSelezionato","accediAudit","AuditIcon","esportaExcel","ExcelIcon","tabulatoDebitiCrediti","tabulatoOneriAnnoPrecedente","tabulatoDettaglioProspettoLiquidazioneQuadroA","tabulatoDettaglioProspettoLiquidazioneQuadroB","PlusIcon","apriCreazioneOrdinaria","apriCreazioneIntegrativa","PrinterIcon","apriModaleStampa","ImportIcon","apriImportazioneXmlAnnoCorrenteRettificativi2019","apriImportazioneXmlAnnoCorrenteRettificativi","azioneMassivaCompleta","azioneMassivaDaInviare","azioneMassivaInLavorazione","azioneMassivaAnnulla","setTabSelezionato","stampaDichiarazioniOld","dichiarazioniNonStampate","stampaDichiarazioni","creaDaImportazione","creaDaImportazioneRedditiPF","ripristinaEliminataRedditiPF","chiudiModaleUpload","chiudiModaleImportazionePdf","onNonVisualizzarePiuNotificaUltimaScadenza","ModaleTermineUltimo","onNonVisualizzarePiuNotificaTermineUltimo","profilo","CodiceFiscaleSostitutoImposta","Trattenuta","Rimborso","Stato7304","ModalitaInvio","Note","DataTrasmissioneCgn","DataTrasmissioneAE","ProtocolloInvioAE","EsitoInvioAE","DataEsitoInvioAE","NomeFileEsito","DataInvioPostel","Scarto7304","DataRicezioneScarto","NomeFileScarto","NoteScarto","Scarto","DettaglioBarra4","onChiudi","caricaDettaglioBarra4","dettaglioBarra4","RigaSostituto","Trasmessi","EsitoPositivo","PreControlli","Scarti","CODICEFISCALEINPS","RigaContribuente","mostraModaleDettaglio","Congiunta","LetteraPrecontrolliStampata","stampaTipo","Stato7304Info","stampaStato","Rate7304","DataTrasmissione","Stampa7304Abilitata","apriDettaglio","stampaLetteraControlli","stampaLetteraDiniego","chiudiModaleDettaglio","SetteTrenta4","nSostituti","nContribuenti","nPreControlli","nScartati","totali7304","Sostituti","Contribuenti","Scartati","esportaTutti","nomeSostituto","cfSostituto","telefonoONumeroVerdeValido","IdSostitutoImpostaEsistente","Indirizzo","NumeroCivico","Frazione","EMail","Centralizzato","Dismesso","ForzaModifica","ModaleSostituto","confermaDisabled","visualizzaErrori","msgErrori","codiceSedeDisabled","JSONOriginale","idSostituoDaCaricare","valutaAbilitaConferma","idSostituto","caricaSostituto","abilitaCaricaSostituto","creaAggiornaSostituto","testo","forzaModifica","modificaSostitutoImposta","valutaEsistenzaSostituto","valutaEsistenzaSostitutoDaSede","onChangeComune","onChangeTipoIndirizzo","isNumeriLettereBarraMeno","isRequire","mostraModaleSostituti","ricarica","visualizzaModificaSostituto","abilita","dismetti","chiudiModaleSostituto","ElencoSostituti","includiDisabilitati","nuovoSostituto","RichiesteEnti","urlRichiesteEnti","SidebarSetteTrenta","menuSidebarRef","onClickCheck","DocumentIcon","BusinessContactIcon","CloneIcon","SetteTrenta","reducerCreator","annoSelezionatoQS","CAMBIO_ANNO_730","ASSISTENTE_APRIPERMALINK","parametriUrl","objSrcParam","sendMEssage","anniDisponibili","SoloInterni","creaSostitutivaDaEsistente","ModaleAllegaRicevuta","ModaleAllegaRicevutaSecondaria","ModaleCreaVoltura","avvisiVolture2","ComuneAgenziaVoltura","descrizioneUfficioRegistro","scaricaVoltura","DichiarazioneCompatibileVolture20Dto","Avvisi","versione","isFormValid","urlSuccessioni","aggiornaUfficioRegistro","descrizione","validity","SelezioneUfficioRegistro","ElencoAvvisi","avvisi","ButtonScaricaVoltura","ModaleTrasmissioneManuale","DataRicevuta","NumeroProtocollo","DataPrimaDichiarazione","NumeroPrimaDichiarazione","VolumePrimaDichiarazione","AnnoPrimaDichiarazione","invia","controllaNumeriESettaStato","protocollo","volume","datareg","dataRicevutaDiTrasmissione","volumePrimaDichiarazione","numeroPrimaDichiarazione","annoPrimaDichiarazione","dataPrimaDichiarazione","modello4","tipologia","allegaRicevuta","allegaRicevutaSecondaria","attesa","creaVoltura","vaiADichiarazione","stampaprospettoautoliquidazione","stampaprospettoautoliquidazionevuoto","stampaF24","stampaF24vuoto","scaricaEsitoPagamentoF24","scaricaPostControlli","scaricaEsitoVoltura","telematico","esito","completacmd","sostituivaNuova","sostituivaSenza","sostituivaAllegati","modificativaModello4","integrativaModello4","sostitutivaModello4","aggiuntivaModello4","dataContabilizzazione","handleCompletion","invioTelematicoAbilitato","riapriTrasmessaManualmente","descrizioneStatoDichiarazione","haErrori","servizioAdeleAttivo","tipoDichiarazioneOrigineCompatibileConIntegrativa1e2","avvisoTipoDichiarazioneOrigineCompatibileConIntegrativa1e2","flagInvioManuale","InvioTelematicoManuale","toggleInvioTelematico","toggleSuccessioniInvioTelematicoUfficiAbilitati","invioTramiteInvioTelematico","TipoDevoluzione","FiscoOnline","DataScadenza","IdRicevutaEsitoPagamentoF24","AccettatoIcon","AssenteIcon","RifiutatoIcon","IdRicevutaRicevutaPostControlli","IdRicevutaEsitoVoltura","DataContabilizzazione","DataPrimoCompletamento","SenzaVoltureCatastali","ModaleCreaSuccessione","currentStep","modello4attivo","toggleSuccessioniModello4","stepState","stepNumber","Modalita","DataDecesso","modalitaTelematica","modalitaCartacea","tipologieDichiarazione","modalita","codice","dataLimiteCartaceo","suggerimentoModalita","testoSuggerimentoModalita","Codice","ComuneUltimaResidenza","Description","ProvinciaUltimaResidenza","Provincia","VecchioStato","termineRicerca","mostraModaleInformativaBloccoTrasmissioni","elencoSelezionato","stati","nInLavorazione","nComplete","nInvioNonRiuscito","dichiarazioneStatoModificato","apriModale","chiudiModale","statiSuccessioni","invioNonRiuscito","aggiornamentiStato","dataDecesso","tipoDevoluzione","comuneUltimaResidenza","codiceComuneUltimaResidenza","provinciaUltimaResidenza","flagMortePresunta","quadroEb","quadroEc","quadroEd","quadroEg","quadroEh","quadroEi","quadroEl","quadroEm","quadroEn","quadroEo","quadroEp","quadroEq","quadroEr","quadroEs","FlagMortePresunta","QuadroEb","QuadroEc","QuadroEd","QuadroEg","QuadroEh","QuadroEi","QuadroEl","QuadroEm","QuadroEn","QuadroEo","QuadroEp","QuadroEq","QuadroEr","QuadroEs","CodiceComuneUltimaResidenza","fail","contribuente","fullContribuente","badgeConteggioAllarmi","verificaOrdinarioCreabile","dataInizio","dataFine","getBreadcrumbObject","breadcrumb","ListItem","setWidth","handleSelect","getElementSize","breadcrumbObj","labelClasses","CollapsedListItem","Breadcrumbs","breadcrumbs","maxWidth","collapsed","itemWidthCallback","setCollapsed","useCollapsing","lastItem","cssBlock","BreadcrumbsBand","handleBack","maxBreadcrumbsCompWidth","labe","extractDropDownList","dropDownItems","onOpenCB","onCloseCB","DropdownButton","showOpenClose","onDropdownOpen","onDropdownClose","ddi","buttonChildren","lastChildrenComp","useToolbarButton","ToolbarDropdownButton","ToolbarButton","emphasisOfComps","comps","BreadcrumbToolbar","breadcrumbSelezionata","urlHome","PageWrapperV2","contatoreStato","decodificaStato","avviaRicerca","contatoriStati","MiniPanel","BadgeInfoIcon","BadgeSuccessIcon","BadgeWarningIcon","BadgeAlarmIcon","Arrow","ModaleEsitiInps","esiti","statoDichiarazione","visualizzaEsitiINPS","DataEsito","DescrizioneEsito","grabbing","CloseModalButton","CLOSED_BY_DONT_SHOW_IT_AGAIN","createClosedByDontShowAgainEvent","GenericItem","dontShowAgainMessage","createWrappedAsyncCallback","beforeCallback","afterCallback","ConfirmItem","primaryLabel","onPrimaryClick","secondaryLabel","onSecondaryClick","primaryCallback","secondaryCallback","startWorking","stopWorking","FeedbackPanel","ThumbUpIcon","FeedbackIcon","ReportIcon","QuestionAnswerIcon","FeedbackItem","modalTitle","buttonLabel","transitionDuration","changing","setChanging","setComponentTimeout","useComponentTimeout","modalContext","ModalPortal","Generic","Feedback","isClosedByDontShowAgainEvent","ConfirmModal","confirmProps","dangerous","danger","capitalize","duplicatoGiaPresente","esitoInvioINPS","modaleTrasmissioneAdEpasa","modaleEliminaANF","aggiornaStato","dichiarazioneModificabile","chiudiModaleEsitiInps","mostraEsitiInps","dichiarazioneStampabile","dichiarazioneImpostabileInLavorazione","dichiarazioneImpostabileCompleta","dichiarazioneInviabileAdEPASA","dichiarazioneScaricabileAdEPASA","dichiarazioneClonabile","variazioneCreabile","avviaImpostaStatoInLavorazione","impostaStatoCompleta","avviaImpostaStatoCompleta","apriModaleTrasmissioneAdEpasa","confermaModaleTrasmissioneAdEpasa","avviaTrasmissioneEPASA","chiudiModaleTrasmissioneAdEpasa","scaricaDelegaPatronato","ottieniDelegaPatronatoEPASA","apriModaleEliminaANF","chiudiModaleEliminaANF","confermaModaleEliminaANF","eliminaANF","eliminaDichiarazione","duplicaDomandaANF","creaVariazione","avviaCreazioneDichiarazioneVariazione","stampaDichiarazione","avviaStampa","verificaStatoDichiarazioni","termine","iconaTrattore","DipendenteAgricolo","focusable","Azienda","DataInizio","DataFine","esitoInvioINPSVisualizzabile","ElencoDichiarazioni","urlRicerca","aggiornaDichiarazioniSelezionate","annoCampagna","rowProps","listastati","anni","testoRicerca","SplitButton","AzioniCreaDomanda","avviaCreazioneDichiarazioneOrdinaria","avviaCreazioneDichiarazioneArretrata","dichiarazioniSelezionate","AddIcon","AzioneCambioStato","statoDestinazione","apriModaleCambioStato","nomeStatoDestinazione","dichiarazioniSpostabili","filtraDichiarazioniSelezionate","messaggio","abilitaSpostamentoStato","nessunaSelezione","PrintIcon","AltreAzioni","modaleCambioStatoCompletaAperta","impostaModaleCambioStatoCompletaAperta","modaleCambioStatoInLavorazioneAperta","impostaModaleCambioStatoInLavorazioneAperta","MoreVertIcon","ricercaSemplice","azioni","Grid","Badge","ErroreIcon","FiltriRicerca","convertDateToText","inputFormat","pad","convertDateToUtc","UTC","isDataInizioValiditaValida","minDataCanonica","maxDataCanonica","validaDataInizioValidita","isDataFineValiditaValida","validaDataFineValidita","currentDataInizio","currentMinDataCanonica","currentMaxDataCanonica","currentDataFine","lableCrea","ModaleCreazioneOrdinario","commit","idAnagrafica","esitoCreabilitaImpostato","conteggioSovrapposte","snapshot","isCodiceFiscaleValido","aggiornaAnagrafica","pulisciAnagrafica","isDatiPerCreazioneValidi","verificaDichiarazioneCreabile","pulisciEsitoVerificaDichiarazioneCreabile","messaggi","creabile","modificabile","esisteReiezione","elaboraRispostaVerificaCreabilita","avviaComando","idAssegnoNucleoFamiliare","creaDichiarazioneOrdinaria","IdAssegnoNucleoFamiliare","Modificabile","ConteggioSovrapposte","Creabile","EsisteReiezione","totaleErrori","TotaleErrori","handleFormChange","handleClickCrea","formValido","disabilitatoCrea","ModaleCreazioneVariazione","modaleCreazioneContext","creaDichiarazioneVariazione","modificaDichiarazioneVariazione","descrizioneStato","formErrors","formCompleto","ModaleCreazioneArretrato","dataMinimaGiorno","dataMinimaMese","dataMinimaAnno","getConfigurazione","calcoloDataMinima","zeroPad","places","dataMinimaCanonica","dataMinimaDaConfig","dataMinima","dataMassima","elaboraRispostaGetConfigurazione","configurazione","DataMinimaGiorno","DataMinimaMese","DataMinimaAnno","AssegnoNucleoFamiliareWrapper","cont","$values","StatoDichiarazione","aggiornaRicerca","aaaa","inizioCampagna","dataInizioCampagnaANF","notificaDichiarazioneCambioStatoFallito","notificaDichiarazioneStatoModificato","notificaDomandaDuplicata","apriModaleCreazioneOrdinario","apriModaleCreazioneVariazione","apriModaleCreazioneArretrato","duplicata","richiedente","ensureSuccessResponse","evento","aggiornaStati","aggiornaGriglia","idDichiarazioni","Delega","Liberatoria","azioniGruppoAttive","urlAnf","AssegniNucleoFamiliare","AssegnoUnicoUniversaleMonoanno","CAMBIO_ANNO_AUU","PULISCI_PARAMETRI_QUERY_STRING","queryString","dataCambioAnnoAUU","trovaParametriPlugin","idanagrafica","urlAuuAnnoMonoanno","urlAssegnoUnicoUniversale","urlAssegnoUnicoUniversaleMonoanno","limit","lastFunc","lastRan","RigaOperazione","vaiAOperazione","Servizio","Operazione","Indeterminata","Elaborati","InEsecuzione","OperazioniMassive","caricaContatori","InCorso","Terminate","dettaglio","setDettaglio","APERTA_LISTA_OPERAZIONI","urlOperazioni","embedded","RoundProgress","percentuale","circumference","normalizedRadius","PI","radius","stroke","getCoordinatesForPercent","percent","cos","sin","PieChart","totale","cumulativePercent","paths","startX","startY","endX","endY","RigaDettaglioOperazione","Successo","Riferimento","Nota","IndicaRiferimenti","DettaglioOperazione","idElaborazione","elaborazioneMassiva","UrlRisultato","risultatoDisponibile","RisultatoDisponibile","Esito","OperazioniAggiuntive","DettagliAggiuntivi","DescrizioneUrlRisultato","downloading","dettagli","SuccessIcon","downloadRisultato","DownloadIcon","AlertIcon","Negativo","Numero","Dettagli","Positivo","getStoredSessionItem","SESSION_IMU_NUOVO","Imu","imuNuovo","setImuNuovo","refreshCalcoliImu","CAMBIO_ANNO_IMU","urlImu","annoRiferimentoImpostato","urlImu2020","Firme","urlFirme","ServiziCittadino","urlServiziCittadino","Disoccupazioni","refreshDichiarazioniDisoccupazioni","urlDisoccupazioni","AppContainer","menuHomePlaceHolderRef","menuAssistentePlaceHolderRef","vaiAdAssistente","ServizioSelezionato","areaAssistente","areaQuesiti","aggiungiGiorniAData","tourRichiesteEntiAttivo","areaSettetrentaAttiva","tour730Attivo","areaRichiesteEntiAttiva","tourImuAttivo","urlSupport","cursor","Uffici","uff","ufficioSelected","checkFunction","portaleUnicoUrl","RedirectUri","SetteTrentaNew","Successioni","ANF","operazioniPluginEnabled","ElaborazioniMassiveNew","ElaborazioniMassive","router","LayoutContext","Elaborate","NrCertificazioniInErrore","trasmissioniConcluse","TrasmissioniConcluse","ApriDichiarazione","recuperaUrl","AggregateId","IsDichiarante","TotaleDichiarazioniProcessate","CodiciFiscaliDaImportare","Errori","UrlScaricamento","Errore","notificaDichiarazioneEliminata","notificaOperazioneMassivaCompletata","notificaDichiarazioneIntegrativaCreata","notificaDichiarazioneCreata","notificaStampaCompletata","notificaImportazioneDichiarazioneDaXmlAvviata","notificaCreaSetteTrentaDaXmlAnnoCorrenteFallito","notificaImportazioneDichiarazioneDaXmlImportata","notificaImportazioneDichiarazioneDaXmlCompletata","notificaImportazioneCertificazioniTerminata","notificaImportazioneDichiarazioneDaRedditiPFAvviata","notificaCreaSetteTrentaDaRedditiPFAnnoCorrenteFallito","notificaImportazioneDichiarazioneDaRedditiPFImportata","notificaCreazioneMassivaDelegheAvviata","notificaCreazioneMassivaDelegheAvanzata","notificaCreazioneMassivaDelegheCompletata","pluginsHandler","urlANF","isLoadingApplication","application","getViewport","ViewportProvider","setSize","handleViewportResize","newViewport","utenteInitialState","dichiarativiInitialState","fetching","fetched","START_LOADING_APPLICATION","STOP_LOADING_APPLICATION","CAMBIA_UFFICIO","ATTIVA_TOUR_730","DISATTIVA_TOUR_730","ATTIVA_TOUR_RICHIESTEENTI","DISATTIVA_TOUR_RICHIESTEENTI","ATTIVA_TOUR_IMU","DISATTIVA_TOUR_IMU","reducerKeys","finalReducers","sanityError","finalReducerKeys","assertReducerSanity","hasChanged","previousStateForKey","nextStateForKey","applicationReducer","utenteReducer","ANNI_REGISTRATI_GET_PENDING","pendingAction","ANNI_REGISTRATI_GET_REJECTED","ANNI_REGISTRATI_GET_FULFILLED","Default","ANNI_REGISTRATI_SET","ANNO_SELEZIONATO_SET","CodiceUfficioSelezionato","createMiddleware","configureStore","Anni","AnnoSelezionato","urlPotenzialiPratiche"],"sourceRoot":""}