{"version":3,"sources":["utils/route.ts","utils/reduxSelector/mobile.ts","assets/notification.png","constants/routesInMenu.ts","constants/localStorageKeys.ts","utils/accountManager/localStorage/credentials.ts","utils/accountManager/localStorage/index.ts","utils/accountManager/index.ts","components/layout/index.tsx","components/mobileScreenDetector/types.ts","actions/mobile/index.ts","components/mobileScreenDetector/index.tsx","config/appInsight.ts","components/errorBoundary/errorFallback.tsx","components/errorBoundary/index.tsx","components/privateRoute/types.ts","components/privateRoute/index.tsx","firebase-notification/notification/banner.tsx","config/firebase.ts","firebase-notification/notification/controller.tsx","firebase-notification/notification/use-dispatcher.tsx","firebase-notification/manager.tsx","firebase-notification/hook/use-firebase-mobile.tsx","firebase-notification/hook/use-firebase-desktop.tsx","router.tsx","serviceWorker.ts","app.tsx","index.tsx","config/deploy.ts","actions/authorization/types.ts","reducers/mobileReducer.ts","reducers/modalReducer.ts","reducers/authReducer.ts","reducers/rootReducer.ts","middlewares/authListener.ts","config/store.ts","config/api.ts","actions/authorization/index.ts","types/api.ts","api/account.ts","api/assignment.ts","api/authorization.ts","api/firebaseDevice.ts","api/integration.ts","api/index.ts","components/layout/layout.module.scss","utils/native.ts","config/history.ts","config/cookie.ts","utils/accountManager/cookies/refreshToken.ts","utils/accountManager/cookies/firebaseNotification.ts","utils/accountManager/cookies/firebaseToken.ts","utils/accountManager/cookies/index.ts","firebase-notification/notification/style.module.scss","utils/reduxSelector/auth.ts","utils/reduxSelector/modal.ts","utils/reduxSelector/index.ts","components/loadingSpinner/spinner.ts","components/loadingSpinner/index.tsx","constants/apiErrorCodes.ts","api/utils.ts","config/gretchen.ts","utils/toast.tsx","palette/colors/black.ts","palette/colors/blue.ts","palette/colors/index.ts","palette/colors/white.ts","palette/colors/grey.ts","palette/colors/indigo.ts","palette/colors/yellow.ts","palette/colors/orange.ts","palette/colors/red.ts","palette/colors/green.ts","palette/colors/fuchsia.ts","palette/colors/pink.ts","palette/colors/cyan.ts","palette/components/buttonPalette.ts","palette/components/iconButtonPalette.ts","palette/components/tagPalette.ts","palette/components/microTagPalette.ts","palette/components/iconPalette.ts","palette/components/checkboxPalette.ts","palette/components/dropdownPalette.ts","palette/components/iconBackgroundPalette.ts","palette/components/sidebarItemPalette.ts","palette/components/tooltipPalette.ts","palette/components/stepperPalette.ts","palette/components/inputTextPalette.ts","palette/components/textAreaPalette.ts","palette/components/inputHelperPalette.ts","palette/components/selectPalette.ts","palette/index.ts","reducers/assignmentReducer.ts","actions/assignment/types.ts","utils/authentication.ts","config/mobile.ts","actions/mobile/types.ts","actions/modal/types.ts","assets/notification-small.png","types/assignmentList.ts","components/suspenceWrapper/index.tsx","utils/reduxSelector/assignment.ts"],"names":["isLoginContextRoute","route","routesInMenu","login","reset","register","forgotPassword","isDevelopmentEnvironment","deployEnvironment","DeployEnvironmentEnum","Production","mobileSelector","isMobileScreen","createSelector","state","mobileReducer","res","module","exports","LocalStorageKeys","localStorage","credentials","get","data","getItem","DANEA_INTERVENTI_WEB_SESSION_KEY","JSON","parse","undefined","set","setItem","stringify","remove","removeItem","accountManager","cookie","loadAuthData","refreshToken","Boolean","removeAllLoginData","updateAccessTokenInWholeApplication","accessToken","updatedCredentials","store","dispatch","setAccessTokenAction","LazyTopbar","lazy","LazyFooter","Layout","children","location","useSelector","router","selectors","pathname","className","style","content","mapDispatchToProps","checkIsMobileScreenAction","isMobile","type","MobileActionNames","SCREEN_RESIZE","payload","connector","connect","ScreenDetector","handleScreenResize","window","innerWidth","TABLET_WIDTH_BREAKPOINT","useEffect","addEventListener","throttle","removeEventListener","instrumentationKey","reactPlugin","ReactPlugin","appInsights","ApplicationInsights","config","extensions","extensionConfig","identifier","history","disableAjaxTracking","ErrorFallback","action","title","text","icon","faExclamation","ErrorBoundary","props","hasError","error","errorInfo","trackException","exception","severityLevel","SeverityLevel","Error","properties","this","React","Component","setLoginDataAction","logoutAction","authReducer","isLogged","PrivateRoute","componentDidMount","checkAuth","isAuthenticated","setState","isLoading","render","routeProps","position","to","from","preProps","path","NotificationBanner","enableFirebase","useState","show","setShow","closeBanner","askPermission","a","Notification","requestPermission","NotificationPermission","canAskToEnableNotification","firebaseNotification","setTimeout","permission","container","open","src","source","alt","logo","divider","color","onClick","firebaseConfig","apiKey","authDomain","projectId","storageBucket","messagingSenderId","appId","FirebaseNotificationController","messaging","setEnableFirebase","enable","getToken","useCallback","currentToken","vapidKey","showErrorToast","console","log","updateTokenToApp","token","length","api","firebaseDevice","add","success","firebaseToken","setToken","result","registration","onMessage","notification","body","image","useFirebaseNotificationDispatcher","value","FirebaseManager","hookProps","authSelector","IS_NATIVE_APP","reactNativePostMessage","useFirebaseMobile","messagingInstance","setMessagingInstance","firebase","isSupported","apps","initializeApp","deleteToken","useFirebaseDesktop","LazyLoginRoute","LazyForgotPasswordRoute","LazyAssignmentRoute","LazyHome","LazyManagePassword","LazyPrivacyPolicy","LazyWrongTokenMessage","loadAppInsights","Router","Container","home","exact","privacyPolicy","component","email","decodeURIComponent","URLSearchParams","search","fromRegistration","assignmentByToken","match","isLocalhost","hostname","registerValidSW","swUrl","navigator","serviceWorker","then","onupdatefound","installingWorker","installing","onstatechange","controller","onUpdate","onSuccess","catch","URL","process","href","origin","fetch","headers","response","contentType","status","indexOf","ready","unregister","reload","checkValidServiceWorker","App","preventDefault","event","removeNoIndex","metaTag","document","querySelector","enableSmartBanner","smartbanner","publish","e","keepWatchingSW","setInterval","getRegistrations","registrationsArray","update","onServiceWorkerUpdate","waitingServiceWorker","waiting","showUpdateModal","target","updateServiceWorker","postMessage","message","theme","isOpen","isSmall","iconRight","faArrowUp","fullWidth","ReactDOM","getElementById","AuthActionNames","initialState","currentModal","modalReducer","ModalActionNames","OPEN_MODAL","overflow","CLOSE_MODAL","SET_AUTH_DATA","rest","SET_LOGIN_TOKEN","JUST_KEEP_EMAIL","LOGOUT","rootReducer","combineReducers","connectRouter","assignmentReducer","createRootReducer","authListener","next","getState","authorization","logout","clearFirebaseToken","push","MANAGE_API_LOGIN_API_DATA","keepMeLogged","localStorageAuthData","APIErrorNotify","preloadedState","createStore","composeWithDevTools","applyMiddleware","routerMiddleware","DOMUSTUDIOAPI_BASE_PATH","getAuthorizationHeader","avoidContentTypeApplicationJson","requestHeaders","reduxAccessToken","manageAPILoginDataAction","justKeepEmailAction","FetchMethodEnum","requestRegistration","encodeURIComponent","method","requestPasswordReset","json","validateToken","managePassword","password","ok","requestConfig","GET","headerConfig","additionalOpts","url","obj","APIManager","getList","pageNumber","justResponse","PAGE_SIZE","accept","dataPrevista","note","PUT","getAuthorizationInfo","pid","interventoID","refuse","motivazione","changeData","conclude","dataEsecuzione","esito","forward","refreshAccessToken","Headers","pwd","POST","device","getIntegretionsAPI","addIntegretionsAPI","messaggio","file","formData","FormData","append","name","receipt","dataLettura","moment","toDate","account","assignment","integretion","ReactNativeWebView","NATIVE_APP_VERSION","ReactNativeInfo","version","object","createBrowserHistory","basename","setCookie","getCookie","days","expirationDays","expires","date","expirationDate","Date","setTime","getTime","toUTCString","cookieName","cookiesList","split","find","row","startsWith","userEmail","getModalReducer","modalSelector","isModalOpen","modalId","assignmentSelector","rotationAnimation","keyframes","Spinner","styled","div","defaultPalette","red","size","css","Overlay","transparentBackground","LoadingSpinner","ErrorsCodeEnum","getAPIInstance","APIObj","opts","baseURL","timeout","hooks","gretch","instance","flush","alreadyTriedToRefresh","hasOwnProperty","code","NOT_AUTHENTICADED","newAccessToken","newAPIObj","showSuccessToast","Toast","blue","50","100","200","300","400","500","600","700","800","900","colors","black","8","16","48","80","white","grey","indigo","yellow","orange","green","fuchsia","pink","cyan","primary","buttonPalette","normal","hover","active","textHover","disabled","secondary","defaultType","defaultColor","defaultSize","iconButtonPalette","tagPalette","full","standard","backgroundColor","warning","info","soft","microTagPalette","getColoredIcon","iconPalette","normalChecked","tickColor","borderColor","errorChecked","checkboxPalette","input","checked","indeterminate","unchecked","label","dropdownPalette","items","background","hoverBackground","notActive","default","danger","link","iconBackgroundPalette","sidebarItemPalette","hoverColor","dropdownHover","dropdownActive","tooltipPalette","light","dark","stepperPalette","item","circleBackground","circleTextColor","completed","inputTextPalette","iconColor","normalFocused","textAreaPalette","inputHelperPalette","selectPalette","palette","components","tag","button","iconButton","microTag","checkbox","dropdown","iconBackground","sidebarItem","tooltip","stepper","inputText","textArea","inputHelper","select","initialPagination","totalCount","pageSize","currentPage","totalPages","initialPageStatus","currentStatus","AssignmentListStatusEnum","toAccept","pagination","assignmentsInfo","totalPending","totalWorking","totalCompleted","pageStatus","AssignmentActionNames","SET_CURRENT_ASSIGNMENT","UNSET_CURRENT_ASSIGNMENT","SET_ASSIGNMENT_PAGE_STATUS","SuspenseWrapper","fallback","getAssignment","getDetails","getProviderEmail","fornitoreEmail","canForwardAssignment","loggedEmail","providerEmail"],"mappings":"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","file":"static/js/main.526ebfef.chunk.js","sourcesContent":["import { deployEnvironment, DeployEnvironmentEnum } from 'config/deploy';\nimport { routesInMenu } from 'constants/routesInMenu';\n\nexport const isLoginContextRoute = (route: string): boolean =>\n route === routesInMenu.login ||\n route === routesInMenu.reset ||\n route === routesInMenu.register ||\n route === routesInMenu.forgotPassword;\n\nexport const isDevelopmentEnvironment = () => deployEnvironment !== DeployEnvironmentEnum.Production;\nexport const isProductionEnvironment = () => deployEnvironment !== DeployEnvironmentEnum.Production;\n","import { createSelector } from 'reselect';\nimport { RootState } from 'reducers/rootReducer';\n\nconst getIsMobileScreen = (state: RootState) => state.mobileReducer.isMobileScreen;\nconst isMobileScreen = createSelector(getIsMobileScreen, (res) => res);\n\nexport const mobileSelector = { isMobileScreen };\n","module.exports = __webpack_public_path__ + \"static/media/notification.03b08279.png\";","export enum routesInMenu {\n home = '/',\n assignmentByToken = '/:token',\n privacyPolicy = '/privacy_policy',\n // Login route context\n login = '/login',\n reset = '/reset',\n register = '/register',\n forgotPassword = '/forgotPassword'\n}\n","export enum LocalStorageKeys {\n DANEA_INTERVENTI_WEB_SESSION_KEY = 'danea-interventi-web-session'\n}\n","import { LocalStorageAuthData } from 'types/account';\nimport { LocalStorageKeys } from 'constants/localStorageKeys';\n\nconst get = (): LocalStorageAuthData | undefined => {\n const data = localStorage.getItem(LocalStorageKeys.DANEA_INTERVENTI_WEB_SESSION_KEY);\n return data ? (JSON.parse(data) as LocalStorageAuthData) : undefined;\n};\n\nconst set = (data: LocalStorageAuthData) =>\n localStorage.setItem(LocalStorageKeys.DANEA_INTERVENTI_WEB_SESSION_KEY, JSON.stringify(data));\n\nconst remove = () => localStorage.removeItem(LocalStorageKeys.DANEA_INTERVENTI_WEB_SESSION_KEY);\n\nexport const credentials = { get, set, remove };\n","import { credentials } from './credentials';\n\nexport const localStorage = { credentials };\n","import { localStorage } from './localStorage';\nimport { cookie } from './cookies';\nimport { store } from 'config/store';\nimport { setAccessTokenAction } from 'actions/authorization';\n\nconst loadAuthData = (): boolean => {\n const refreshToken = cookie.refreshToken.get();\n const credentials = localStorage.credentials.get();\n const outcome = Boolean(refreshToken && credentials);\n return outcome;\n};\n\nconst removeAllLoginData = () => {\n cookie.refreshToken.remove();\n localStorage.credentials.remove();\n};\n\nconst updateAccessTokenInWholeApplication = (accessToken: string) => {\n const credentials = localStorage.credentials.get();\n if (credentials) {\n const updatedCredentials = { ...credentials, accessToken };\n localStorage.credentials.remove();\n localStorage.credentials.set(updatedCredentials);\n store.dispatch(setAccessTokenAction(accessToken));\n }\n};\n\nexport const accountManager = {\n localStorage,\n cookie,\n loadAuthData,\n removeAllLoginData,\n updateAccessTokenInWholeApplication\n};\n","import React, { FC, lazy } from 'react';\nimport style from './layout.module.scss';\nimport { RootState } from 'reducers/rootReducer';\nimport { useSelector } from 'react-redux';\nimport { isLoginContextRoute } from 'utils/route';\nimport { selectors } from 'utils/reduxSelector';\n// import { PullToRefresh } from './components/pullToRefresh';\n\nconst LazyTopbar = lazy(() => import('components/topbar'));\nconst LazyFooter = lazy(() => import('components/footer'));\n\nexport const Layout: FC = ({ children }) => {\n const location = useSelector((state: RootState) => state.router.location);\n const isMobileScreen = useSelector(selectors.mobileSelector.isMobileScreen);\n const isLoginContext = isLoginContextRoute(location.pathname);\n return (\n // \n isLoginContext ? (\n
\n
{children}
\n
\n ) : (\n
\n \n {isMobileScreen ? (\n
\n
{children}
\n
\n ) : (\n
\n
{children}
\n
\n )}\n \n
\n )\n //
\n );\n};\n","import { checkIsMobileScreenAction } from 'actions/mobile';\nimport { connect, ConnectedProps } from 'react-redux';\n\nconst mapDispatchToProps = { checkIsMobileScreenAction };\n\nexport const connector = connect(null, mapDispatchToProps);\n\nexport type Props = ConnectedProps;\n","import { CheckMobileScreen, MobileActionNames } from './types';\n\nexport const checkIsMobileScreenAction = (isMobile: boolean): CheckMobileScreen => ({\n type: MobileActionNames.SCREEN_RESIZE,\n payload: isMobile\n});\n","import React, { FunctionComponent, useEffect } from 'react';\nimport { Props, connector } from './types';\nimport { TABLET_WIDTH_BREAKPOINT } from 'config/mobile';\nimport { throttle } from 'lodash';\n\nconst MS_TIMEOUT = 200;\n\nconst ScreenDetectorComponent: FunctionComponent = ({ checkIsMobileScreenAction, children }) => {\n const handleScreenResize = () => checkIsMobileScreenAction(window.innerWidth < TABLET_WIDTH_BREAKPOINT);\n useEffect(() => {\n window.addEventListener('resize', throttle(handleScreenResize, MS_TIMEOUT));\n return window.removeEventListener('resize', throttle(handleScreenResize, MS_TIMEOUT));\n });\n\n return <>{children};\n};\n\nexport const ScreenDetector = connector(ScreenDetectorComponent);\n","import { ApplicationInsights } from '@microsoft/applicationinsights-web';\nimport { ReactPlugin } from '@microsoft/applicationinsights-react-js';\nimport { history } from 'config/history';\nimport { deployEnvironment, DeployEnvironmentEnum } from 'config/deploy';\n\nconst PROD_KEY = 'ab9429f1-2e7c-4270-ac82-fd6db14a14ac';\nconst DEV_KEY = '42c50ec5-0455-408c-963e-a8356fb753f8';\nconst instrumentationKey = deployEnvironment === DeployEnvironmentEnum.Production ? PROD_KEY : DEV_KEY;\n\nconst reactPlugin = new ReactPlugin();\nconst appInsights = new ApplicationInsights({\n config: {\n instrumentationKey,\n extensions: [reactPlugin],\n extensionConfig: {\n [reactPlugin.identifier]: { history }\n },\n disableAjaxTracking: true\n }\n});\n\nconst initializeAppInsights = () => {\n if (process.env.NODE_ENV === 'production') {\n appInsights.loadAppInsights();\n }\n};\n\nexport { reactPlugin, appInsights, initializeAppInsights };\n","import { PageEmptySet } from '@fattureincloud/fic-design-system';\nimport React from 'react';\nimport { Props } from './index';\nimport { faExclamation } from '@fortawesome/pro-regular-svg-icons';\n\nexport const ErrorFallback: React.FC = ({ action }) => (\n
\n \n
\n);\n","import { IconProps } from '@fattureincloud/fic-design-system';\nimport { SeverityLevel } from '@microsoft/applicationinsights-web';\nimport { appInsights } from 'config/appInsight';\nimport React, { ErrorInfo } from 'react';\nimport { ErrorFallback } from './errorFallback';\n\nexport type Props = { action?: { text: string; icon?: IconProps; action: () => void } };\ntype State = { hasError: boolean };\n\nexport class ErrorBoundary extends React.Component {\n constructor(props: Props) {\n super(props);\n this.state = { hasError: false };\n }\n\n static getDerivedStateFromError(error: Error) {\n // Update state so the next render will show the fallback UI.\n return { hasError: true };\n }\n\n componentDidCatch(error: Error, errorInfo: ErrorInfo) {\n // You can also log the error to an error reporting service\n appInsights.trackException({\n error: error,\n exception: error,\n severityLevel: SeverityLevel.Error,\n properties: errorInfo\n });\n }\n\n render() {\n const { action } = this.props;\n if (this.state.hasError) {\n // You can render any custom fallback UI\n return ;\n }\n\n return this.props.children;\n }\n}\n","import { connect, ConnectedProps } from 'react-redux';\nimport { setLoginDataAction, logoutAction } from 'actions/authorization';\nimport { RouteProps } from 'react-router';\nimport { RootState } from 'reducers/rootReducer';\nimport { IsLoading } from 'types/api';\n\nconst mapStateToProps = ({ authReducer: { accessToken, isLogged } }: RootState) => ({ accessToken, isLogged });\nconst mapDispatchToProps = { setLoginDataAction, logoutAction };\n\nexport const connector = connect(mapStateToProps, mapDispatchToProps);\nexport type Props = RouteProps & ConnectedProps;\nexport type State = IsLoading;\n","import React from 'react';\nimport { Redirect, Route } from 'react-router';\nimport LoadingSpinner from 'components/loadingSpinner';\nimport { connector, Props, State } from './types';\nimport { routesInMenu } from 'constants/routesInMenu';\nimport { isAuthenticated } from 'utils/authentication';\n\nclass AuthenticationWrapper extends React.Component {\n public constructor(props: Props) {\n super(props);\n this.state = { isLoading: true };\n }\n\n componentDidMount = () => this.checkAuth();\n\n componentDidUpdate(preProps: Props) {\n const { path } = this.props;\n if (path !== preProps.path) {\n this.checkAuth();\n }\n }\n\n private checkAuth = () => {\n const { isLogged } = this.props;\n if (!isLogged) {\n const isAuth = isAuthenticated();\n if (!isAuth) {\n this.props.logoutAction();\n }\n }\n this.setState({ isLoading: false });\n };\n\n render = () => {\n const { accessToken, isLogged, ...routeProps } = this.props;\n const { isLoading } = this.state;\n if (isLoading) {\n return ;\n }\n if (!isLogged || !accessToken) {\n return ;\n }\n return ;\n };\n}\n\nexport const PrivateRoute = connector(AuthenticationWrapper);\n","import React, { FC, useEffect, useState } from 'react';\nimport style from './style.module.scss';\nimport source from 'assets/notification.png';\nimport { Button } from '@fattureincloud/fic-design-system';\nimport { accountManager } from 'utils/accountManager';\n\ntype Props = { enableFirebase: (value: boolean) => void };\n\nexport const NotificationBanner: FC = ({ enableFirebase }) => {\n const [show, setShow] = useState(false);\n\n const closeBanner = () => setShow(false);\n\n const remindMeInTheNextFewDay = () => {\n closeBanner();\n accountManager.cookie.firebaseNotification.set(2);\n };\n\n const askPermission = async () => {\n closeBanner();\n const NotificationPermission = await Notification.requestPermission();\n return enableFirebase(NotificationPermission === 'granted');\n };\n\n useEffect(() => {\n // Let's check if the browser supports notifications\n const checkBrowserSupport = Boolean('Notification' in window);\n if (checkBrowserSupport) {\n const canAskToEnableNotification = accountManager.cookie.firebaseNotification.get();\n window.setTimeout(\n () => setShow(Boolean(Notification.permission === 'default' && !canAskToEnableNotification)),\n 1000\n );\n }\n }, []);\n\n return (\n
\n
rimani sempre aggiornato
\n
\n \"Logo\n \n

\n Attiva le notifiche per ricevere i tuoi aggiornamenti in tempo reale!\n
\n Per attivare le notifiche devi dare il consenso.\n

\n
\n\n
\n
\n
\n );\n};\n","export const firebaseConfig = {\n apiKey: 'AIzaSyDcUw63kNVZDNCbICYVMRVvtbbiR-qVkmM',\n authDomain: 'domustudio-fornitori.firebaseapp.com',\n projectId: 'domustudio-fornitori',\n storageBucket: 'domustudio-fornitori.appspot.com',\n messagingSenderId: '482609826837',\n appId: '1:482609826837:web:2f9acaa155906be952d21c'\n};\n\nexport const VAPID = 'BBP4DG3xj0tiSN3MhpUV6wL33iS1hpNcSuFejMj4jk4bLRWNnjbLFthuueY4bvotQc54kftCgaDtg2Y7q47MH_I';\n","import React, { FC, useState } from 'react';\nimport firebase from 'firebase';\nimport { NotificationBanner } from './banner';\nimport { useFirebaseNotificationDispatcher } from './use-dispatcher';\n\n/**\n * PRE: this componend is rendered if met this conditions:\n * - isLogged\n * - accessToken\n * - firebase.messaging.isSupported()\n * - 'Notification' in window\n */\n\nexport type ControllerProps = { messaging: firebase.messaging.Messaging };\n\nexport const FirebaseNotificationController: FC = ({ messaging }) => {\n const [enableFirebase, setEnableFirebase] = useState(Notification.permission === 'granted');\n\n useFirebaseNotificationDispatcher({ messaging, enable: enableFirebase });\n\n return Notification.permission === 'default' ? (\n setEnableFirebase(value)} />\n ) : null;\n\n // switch (Notification.permission) {\n // case 'denied':\n // return null;\n // case 'granted':\n // return enableFirebase ? <> : null;\n // case 'default':\n // return ;\n // }\n};\n","import { useCallback, useEffect } from 'react';\nimport icon from 'assets/notification-small.png';\nimport { showErrorToast } from 'utils/toast';\nimport { api } from 'api';\nimport { accountManager } from 'utils/accountManager';\nimport 'firebase/messaging';\nimport { ControllerProps } from './controller';\nimport { VAPID } from 'config/firebase';\n\nconst ERROR_MESSAGE =\n 'Non è possibile abilitare le notifiche sul dispositivo. Ricarica la pagina o verifica lo stato dell tua rete.';\n\ntype Props = { enable: boolean } & ControllerProps;\n\nexport const useFirebaseNotificationDispatcher = ({ messaging, enable }: Props) => {\n const getToken = useCallback(async () => {\n let currentToken = '';\n try {\n currentToken = await messaging.getToken({ vapidKey: VAPID });\n !currentToken && showErrorToast(ERROR_MESSAGE);\n } catch (error) {\n console.log(error);\n }\n return currentToken;\n }, [messaging]);\n\n const updateTokenToApp = async (token: string) => {\n if (token?.length) {\n const success = await api.firebaseDevice.add(token);\n success && accountManager.cookie.firebaseToken.set(token);\n return success;\n }\n return false;\n };\n\n const setToken = useCallback(async () => {\n const token = await getToken();\n const result = await updateTokenToApp(token);\n return result;\n }, [getToken]);\n\n const registration = useCallback(async () => {\n const successRegistration = await setToken();\n if (successRegistration) {\n messaging.onMessage(({ notification }) => {\n if (notification) {\n const { title, body } = notification;\n new Notification(title, {\n body,\n icon: icon,\n // eslint-disable-next-line @typescript-eslint/ban-ts-ignore\n // @ts-ignore\n image: icon\n });\n }\n });\n }\n }, [setToken, messaging]);\n\n useEffect(() => {\n if (enable) {\n registration();\n }\n }, [enable, registration]);\n\n return null;\n};\n","import React, { FC } from 'react';\nimport { useSelector } from 'react-redux';\nimport { selectors } from 'utils/reduxSelector';\nimport { FirebaseNotificationController } from './notification';\nimport 'firebase/messaging';\nimport { useFirebaseMobile, useFirebaseDesktop } from './hook';\nimport { HookProps } from './types';\nimport { accountManager } from 'utils/accountManager';\n\nexport const FirebaseManager: FC = () => {\n const accessToken = useSelector(selectors.authSelector.accessToken);\n const refreshToken = accountManager.cookie.refreshToken.get() || '';\n const hookProps: HookProps = { accessToken, refreshToken };\n\n useFirebaseMobile(hookProps);\n const messagingInstance = useFirebaseDesktop(hookProps);\n\n return messagingInstance !== undefined ? : null;\n};\n","import { useEffect } from 'react';\nimport { IS_NATIVE_APP, reactNativePostMessage } from 'utils/native';\nimport { HookProps } from '../types';\n\nexport const useFirebaseMobile = ({ accessToken, refreshToken }: HookProps) => {\n useEffect(() => {\n if (IS_NATIVE_APP) {\n if (accessToken && refreshToken) {\n // emit to react-native to enable firebase on\n reactNativePostMessage({ accessToken, refreshToken });\n }\n }\n }, [accessToken, refreshToken]);\n\n return null;\n};\n","import { useEffect, useState } from 'react';\nimport { MessagingInstanceDefinition } from 'types/firebase';\nimport firebase from 'firebase/app';\nimport { firebaseConfig } from 'config/firebase';\nimport 'firebase/messaging';\nimport { IS_NATIVE_APP } from 'utils/native';\nimport { HookProps } from '../types';\n// const ENABLE_FIREBASE_ON_WEBAPP = isProductionEnvironment() && !IS_NATIVE_APP;\n\nexport const useFirebaseDesktop = ({ accessToken, refreshToken }: HookProps) => {\n const [messagingInstance, setMessagingInstance] = useState(undefined);\n\n useEffect(() => {\n if (!IS_NATIVE_APP) {\n const isLogged = Boolean(accessToken && refreshToken);\n if (isLogged && firebase.messaging.isSupported() && 'Notification' in window) {\n if (!firebase.apps.length) {\n const firebaseApp = firebase.initializeApp(firebaseConfig);\n const messaging = firebaseApp.messaging();\n setMessagingInstance(messaging);\n }\n } else {\n messagingInstance ? messagingInstance.deleteToken() : setMessagingInstance(undefined);\n }\n }\n\n return () => {\n setMessagingInstance(undefined);\n };\n }, [messagingInstance, accessToken, refreshToken]);\n\n return messagingInstance;\n};\n","import { Toast } from '@fattureincloud/fic-design-system';\nimport { ConnectedRouter } from 'connected-react-router';\nimport React, { lazy } from 'react';\nimport { Provider } from 'react-redux';\nimport { Route, Switch } from 'react-router-dom';\nimport { Layout } from './components/layout';\nimport { store } from './config/store';\nimport { history } from './config/history';\nimport { ScreenDetector } from 'components/mobileScreenDetector';\nimport { SuspenseWrapper } from 'components/suspenceWrapper';\nimport { ErrorBoundary } from 'components/errorBoundary';\nimport { initializeAppInsights } from 'config/appInsight';\nimport { routesInMenu } from 'constants/routesInMenu';\nimport { PrivateRoute } from 'components/privateRoute';\nimport { FirebaseManager } from 'firebase-notification';\n\nconst LazyLoginRoute = lazy(() => import('routes/login'));\nconst LazyForgotPasswordRoute = lazy(() => import('routes/forgotPassword'));\nconst LazyAssignmentRoute = lazy(() => import('routes/assignment/assignmentRoute'));\nconst LazyHome = lazy(() => import('routes/home'));\nconst LazyManagePassword = lazy(() => import('routes/login/components/managePassword'));\nconst LazyPrivacyPolicy = lazy(() => import('routes/privacyPolicy'));\nconst LazyWrongTokenMessage = lazy(() => import('components/wrongTokenMessage'));\n\n// Initialize application insights\ninitializeAppInsights();\n\nexport const Router = () => (\n \n \n \n \n \n \n \n \n \n {/* private route */}\n } exact />\n {/* pubblic route */}\n } />\n } />\n (\n \n )}\n />\n (\n \n )}\n />\n }\n />\n } />\n \n \n \n \n \n \n);\n","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.0/8 are considered localhost for IPv4.\n window.location.hostname.match(/^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/)\n);\n\ntype Config = {\n onSuccess?: (registration: ServiceWorkerRegistration) => void;\n onUpdate?: (registration: ServiceWorkerRegistration) => void;\n};\n\nfunction registerValidSW(swUrl: string, config?: Config) {\n navigator.serviceWorker\n .register(swUrl)\n .then((registration) => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch((error) => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl: string, config?: Config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl, {\n headers: { 'Service-Worker': 'script' }\n })\n .then((response) => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (response.status === 404 || (contentType != null && contentType.indexOf('javascript') === -1)) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then((registration) => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log('No internet connection found. App is running in offline mode.');\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready\n .then((registration) => {\n registration.unregister();\n })\n .catch((error) => {\n console.error(error.message);\n });\n }\n}\n\nexport function register(config?: Config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n","import { Button, Modal, ThemeProvider } from '@fattureincloud/fic-design-system';\nimport { deployEnvironment, DeployEnvironmentEnum } from 'config/deploy';\nimport React, { Component } from 'react';\nimport { Router } from './router';\nimport { register, unregister } from './serviceWorker';\nimport { theme } from 'palette';\nimport { faArrowUp } from '@fortawesome/pro-regular-svg-icons';\nimport { IS_NATIVE_APP } from 'utils/native';\n\ndeclare global {\n interface Window {\n smartbanner: { publish: () => void };\n }\n}\n\ntype State = { showUpdateModal: boolean; waitingServiceWorker: ServiceWorker | null };\n\ninterface ServiceWorkerEvent extends Event {\n target: (Partial & EventTarget) | null;\n}\n\n// this class manage the service worker\nexport class App extends Component<{}, State> {\n constructor(props: {}) {\n super(props);\n this.state = { showUpdateModal: false, waitingServiceWorker: null };\n }\n\n private preventDefault = (event: Event) => {\n event.preventDefault();\n return null;\n };\n\n private removeNoIndex = () => {\n const metaTag = document.querySelector(`meta[name=\"robots\"]`);\n metaTag && metaTag.remove();\n };\n\n private enableSmartBanner = () => {\n document.addEventListener('smartbanner.init', () => {\n if (!IS_NATIVE_APP) {\n try {\n setTimeout(() => {\n window.smartbanner.publish();\n }, 100);\n } catch (e) {}\n }\n });\n };\n\n componentDidMount() {\n this.enableSmartBanner();\n const isInProduction = deployEnvironment === DeployEnvironmentEnum.Production;\n if (isInProduction) {\n this.removeNoIndex();\n window.addEventListener('beforeinstallprompt', this.preventDefault);\n register({ onUpdate: this.onServiceWorkerUpdate });\n this.keepWatchingSW();\n } else {\n unregister();\n }\n }\n\n componentWillUnmount() {\n window.removeEventListener('beforeinstallprompt', this.preventDefault);\n }\n\n // every hour check for a new app version\n private keepWatchingSW = () => {\n setInterval(() => {\n navigator?.serviceWorker?.getRegistrations().then((registrationsArray) => registrationsArray[0].update());\n }, 1000 * 60 * 60);\n };\n\n private onServiceWorkerUpdate = (registration: ServiceWorkerRegistration) => {\n this.setState(\n {\n waitingServiceWorker: registration?.waiting,\n showUpdateModal: true\n },\n () => {\n const { waitingServiceWorker } = this.state;\n waitingServiceWorker?.addEventListener('statechange', (event: ServiceWorkerEvent) => {\n if (event?.target?.state === 'activated') {\n window.location.reload();\n }\n });\n }\n );\n };\n\n private updateServiceWorker = () => {\n const { waitingServiceWorker } = this.state;\n waitingServiceWorker?.postMessage({ type: 'SKIP_WAITING' });\n this.setState({ showUpdateModal: false });\n };\n\n render() {\n const { showUpdateModal } = this.state;\n return (\n \n \n
Nuova versione disponibile!
\n

Clicca per aggiornare Danea Interventi alla nuova versione.

\n this.updateServiceWorker()}\n type=\"secondary\"\n fullWidth\n />\n
\n \n
\n );\n }\n}\n","import React, { StrictMode } from 'react';\nimport ReactDOM from 'react-dom';\nimport './scss/global.scss';\nimport { App } from 'app';\n\nReactDOM.render(\n \n \n ,\n document.getElementById('root')\n);\n","/**\n * This variable can assume this values when it will be compiled:\n * - Development\n * - Production\n */\n\n// eslint-disable-next-line prefer-const\nexport let deployEnvironment = '#{DEPLOY_ENV}#';\n\nexport enum DeployEnvironmentEnum {\n Development = 'Development',\n Production = 'Production'\n}\n","import { AuthData, KeepMeLogged, LoginResult } from 'types/account';\n\nexport enum AuthActionNames {\n SET_LOGIN_TOKEN = 'SET_LOGIN_TOKEN',\n SET_AUTH_DATA = 'SET_AUTH_DATA',\n MANAGE_API_LOGIN_API_DATA = 'MANAGE_API_LOGIN_DATA',\n LOGOUT = 'LOGOUT',\n JUST_KEEP_EMAIL = 'JUST_KEEP_EMAIL'\n}\n\nexport type SetLoginToken = { type: typeof AuthActionNames.SET_LOGIN_TOKEN; payload: string };\n\nexport type SetAuthData = { type: typeof AuthActionNames.SET_AUTH_DATA; payload: AuthData };\n\nexport type ManageAPILoginData = {\n type: typeof AuthActionNames.MANAGE_API_LOGIN_API_DATA;\n payload: LoginResult & KeepMeLogged;\n};\n\nexport type Logout = { type: typeof AuthActionNames.LOGOUT };\n\nexport type JustKeepEmail = { type: typeof AuthActionNames.JUST_KEEP_EMAIL };\n\nexport type AuthActionTypes = SetLoginToken | SetAuthData | ManageAPILoginData | Logout | JustKeepEmail;\n","import { TABLET_WIDTH_BREAKPOINT } from 'config/mobile';\nimport { MobileTypes, MobileActionNames } from 'actions/mobile/types';\n\nexport type MobileReducer = { isMobileScreen: boolean };\n\nconst initialState: MobileReducer = { isMobileScreen: window.innerWidth < TABLET_WIDTH_BREAKPOINT };\n\nexport const mobileReducer = (state: MobileReducer = initialState, action: MobileTypes): MobileReducer => {\n switch (action.type) {\n case MobileActionNames.SCREEN_RESIZE:\n return { ...state, isMobileScreen: action.payload };\n default:\n return state;\n }\n};\n","import { ModalTypes, ModalActionNames } from 'actions/modal/types';\nimport { MODAL_IDS } from 'types/modal';\n\nexport type ModalReducer = { currentModal?: MODAL_IDS };\n\nconst initialState: ModalReducer = { currentModal: undefined };\n\nexport const modalReducer = (state: ModalReducer = initialState, action: ModalTypes): ModalReducer => {\n switch (action.type) {\n case ModalActionNames.OPEN_MODAL: {\n document.body.style.overflow = 'hidden';\n return { ...state, currentModal: action.payload };\n }\n case ModalActionNames.CLOSE_MODAL: {\n document.body.style.overflow = 'visible';\n return { ...state, currentModal: undefined };\n }\n default:\n return state;\n }\n};\n","import { AuthActionNames, AuthActionTypes } from 'actions/authorization/types';\nimport { IsLogged, LocalStorageAuthData } from 'types/account';\n\nexport type AuthReducer = LocalStorageAuthData & IsLogged;\nconst initialState: AuthReducer = { accessToken: '', email: '', isLogged: false };\n\nexport const authReducer = (state: AuthReducer = initialState, action: AuthActionTypes): AuthReducer => {\n switch (action.type) {\n case AuthActionNames.SET_AUTH_DATA: {\n const { refreshToken, ...rest } = action.payload;\n return { ...state, ...rest, isLogged: true };\n }\n\n case AuthActionNames.SET_LOGIN_TOKEN:\n return { ...state, accessToken: action.payload };\n\n case AuthActionNames.JUST_KEEP_EMAIL:\n return { ...initialState, email: state.email };\n\n case AuthActionNames.LOGOUT:\n return { ...initialState };\n\n default:\n return state;\n }\n};\n","import { connectRouter, RouterState } from 'connected-react-router';\nimport { combineReducers, Reducer, Action } from 'redux';\nimport { History } from 'history';\nimport { AssignmentReducer, assignmentReducer } from './assignmentReducer';\nimport { MobileReducer, mobileReducer } from './mobileReducer';\nimport { ModalReducer, modalReducer } from './modalReducer';\nimport { authReducer, AuthReducer } from './authReducer';\n\nexport type RootState = {\n router: RouterState;\n assignmentReducer: AssignmentReducer;\n mobileReducer: MobileReducer;\n modalReducer: ModalReducer;\n authReducer: AuthReducer;\n};\n\nexport const createRootReducer = (history: History): Reducer =>\n combineReducers({\n router: connectRouter(history),\n assignmentReducer,\n mobileReducer,\n modalReducer,\n authReducer\n });\n\n/**\n * Reset all reducer to initial state after logout action\n * @param history\n */\nexport const rootReducer = (history: History) => (state: unknown, action: Action) => {\n if (action.type === 'LOGOUT') {\n state = undefined;\n }\n return createRootReducer(history)(state, action);\n};\n","import { push } from 'connected-react-router';\nimport { Middleware } from 'redux';\nimport { AuthActionNames } from 'actions/authorization/types';\nimport { routesInMenu } from 'constants/routesInMenu';\nimport { accountManager } from 'utils/accountManager';\nimport { RootState } from 'reducers/rootReducer';\nimport { AuthData, LocalStorageAuthData } from 'types/account';\nimport { api } from 'api';\nimport { setLoginDataAction } from 'actions/authorization';\nimport { APIError } from 'types/api';\nimport { APIErrorNotify } from 'api/utils';\nimport { clearFirebaseToken } from 'utils/authentication';\n\nexport const authListener: Middleware = (store) => (next) => (action) => {\n // If logout remove the tokens from the browser\n if (action.type === AuthActionNames.LOGOUT) {\n const { accessToken } = (store.getState() as RootState).authReducer;\n const refreshToken = accountManager.cookie.refreshToken.get();\n refreshToken && api.authorization.logout(accessToken, refreshToken);\n clearFirebaseToken();\n accountManager.removeAllLoginData();\n store.dispatch(push(routesInMenu.login));\n }\n\n // Handle internal login success\n if (action.type === AuthActionNames.MANAGE_API_LOGIN_API_DATA) {\n const { success, data, keepMeLogged } = action.payload;\n if (success && data) {\n const { accessToken, refreshToken, email } = data as AuthData;\n const localStorageAuthData: LocalStorageAuthData = { accessToken, email };\n // Load data on browser\n if (refreshToken) {\n accountManager.cookie.refreshToken.set(refreshToken, keepMeLogged);\n }\n accountManager.localStorage.credentials.set(localStorageAuthData);\n // Load data on redux\n store.dispatch(setLoginDataAction({ ...localStorageAuthData, refreshToken }));\n store.dispatch(push(routesInMenu.home));\n } else if (!success && data) {\n APIErrorNotify((data as APIError).message);\n } else {\n APIErrorNotify();\n }\n }\n\n /**\n * ########\n * Dispatch current action\n * ########\n */\n const result = next(action);\n return result;\n};\n","import { routerMiddleware } from 'connected-react-router';\nimport { applyMiddleware, createStore, Store } from 'redux';\nimport { composeWithDevTools } from 'redux-devtools-extension';\nimport { RootState, rootReducer } from '../reducers/rootReducer';\nimport { history } from './history';\nimport { authListener } from 'middlewares/authListener';\n\nfunction configureStore(preloadedState: RootState | {}): Store {\n const store = createStore(\n rootReducer(history),\n preloadedState,\n composeWithDevTools(applyMiddleware(routerMiddleware(history), authListener))\n );\n\n return store;\n}\n\nexport const store = configureStore({});\n","import { RootState } from 'reducers/rootReducer';\nimport { HeaderConfig } from 'types/api';\nimport { store } from './store';\nimport { deployEnvironment, DeployEnvironmentEnum } from 'config/deploy';\n\nconst URL = 'https://domustudioprovidersapi.danea.it';\nconst DEV_URL = 'https://dev-domustudioprovidersapi.danea.it';\n\nexport const DOMUSTUDIOAPI_BASE_PATH = deployEnvironment === DeployEnvironmentEnum.Production ? URL : DEV_URL;\n\nexport const getAuthorizationHeader = (config?: HeaderConfig) => {\n const { accessToken, avoidContentTypeApplicationJson } = config ?? {};\n const requestHeaders: { [key: string]: string } = {};\n const {\n authReducer: { accessToken: reduxAccessToken }\n } = store.getState() as RootState;\n if (accessToken || reduxAccessToken) {\n requestHeaders['authorization'] = `Bearer ${accessToken ?? reduxAccessToken}`;\n }\n if (!avoidContentTypeApplicationJson) {\n requestHeaders['content-type'] = 'application/json';\n }\n return requestHeaders;\n};\n","import { AuthData, LoginResult } from 'types/account';\nimport { AuthActionNames, JustKeepEmail, Logout, ManageAPILoginData, SetAuthData, SetLoginToken } from './types';\n\nexport const setAccessTokenAction = (accessToken: string): SetLoginToken => ({\n type: AuthActionNames.SET_LOGIN_TOKEN,\n payload: accessToken\n});\n\nexport const setLoginDataAction = (data: AuthData): SetAuthData => ({\n type: AuthActionNames.SET_AUTH_DATA,\n payload: data\n});\n\nexport const manageAPILoginDataAction = (data: LoginResult, keepMeLogged: boolean): ManageAPILoginData => ({\n type: AuthActionNames.MANAGE_API_LOGIN_API_DATA,\n payload: { ...data, keepMeLogged }\n});\n\nexport const logoutAction = (): Logout => ({ type: AuthActionNames.LOGOUT });\n\nexport const justKeepEmailAction = (): JustKeepEmail => ({ type: AuthActionNames.JUST_KEEP_EMAIL });\n","import { GretchOptions } from 'gretchen';\n\nexport type IsLoading = { isLoading: boolean };\n\nexport type Authorization = [number | undefined, number | undefined];\n\nexport enum FetchMethodEnum {\n GET = 'GET',\n POST = 'POST',\n PUT = 'PUT',\n DELETE = 'DELETE'\n}\n\nexport type HeaderConfig = {\n accessToken?: string;\n avoidContentTypeApplicationJson?: boolean;\n};\n\nexport type APIRequestConfig = {\n method: FetchMethodEnum;\n headerConfig: HeaderConfig;\n justResponse?: boolean;\n alreadyTriedToRefresh?: boolean;\n};\n\nexport type APIRequestObj = {\n url: string;\n requestConfig: APIRequestConfig;\n additionalOpts: GretchOptions;\n};\n\nexport type APIError = {\n code: number;\n message: string;\n data?: unknown;\n};\n\nexport type APIResponse = { success: boolean; data: T; dispatchSuccessAction?: () => void };\n","import { DOMUSTUDIOAPI_BASE_PATH } from 'config/api';\nimport { APIError } from 'types/api';\nimport { APIErrorNotify } from './utils';\n\nexport const requestRegistration = async (email: string): Promise => {\n const response = await fetch(\n `${DOMUSTUDIOAPI_BASE_PATH}/api/portaleFornitori/requestRegistration?email=${encodeURIComponent(email)}`,\n {\n method: 'POST'\n }\n );\n return response;\n};\n\nexport const requestPasswordReset = async (email: string): Promise => {\n const response = await fetch(\n `${DOMUSTUDIOAPI_BASE_PATH}/api/portaleFornitori/requestPasswordReset?email=${encodeURIComponent(email)}`,\n {\n method: 'POST'\n }\n );\n const { status } = response;\n if (status === 200 || status === 204) {\n return true;\n }\n try {\n const error = (await response.json()) as APIError;\n APIErrorNotify(error?.message);\n } catch (error) {\n APIErrorNotify('');\n } finally {\n return false;\n }\n};\n\nexport const validateToken = async (token: string): Promise => {\n const response = await fetch(`${DOMUSTUDIOAPI_BASE_PATH}/api/portaleFornitori/validateToken?token=${token}`);\n const { status } = response;\n if (status === 200 || status === 204) {\n return response;\n }\n try {\n const error = (await response.json()) as APIError;\n APIErrorNotify(error?.message);\n } catch (error) {\n APIErrorNotify('');\n } finally {\n return undefined;\n }\n};\n\nexport const managePassword = async (token: string, password: string, register: boolean): Promise => {\n const response = await fetch(\n `${DOMUSTUDIOAPI_BASE_PATH}/api/portaleFornitori/${\n register ? 'register' : 'resetPassword'\n }?token=${encodeURIComponent(token)}`,\n {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ password })\n }\n );\n const { status, ok } = response;\n if (ok || status === 200 || status === 204) {\n return true;\n }\n try {\n const error = (await response.json()) as APIError;\n APIErrorNotify(error?.message);\n } catch (error) {\n APIErrorNotify('');\n } finally {\n return false;\n }\n};\n","import { GretchOptions } from 'gretchen';\nimport { PAGE_SIZE } from 'reducers/assignmentReducer';\nimport { APIRequestConfig, APIRequestObj, FetchMethodEnum } from 'types/api';\nimport { Assignment } from 'types/assignment';\nimport { AssignmentListStatusEnum } from 'types/assignmentList';\nimport { ForwardRequest } from 'types/forwardAction';\nimport { APIManager, getAuthorizationInfo } from './utils';\n\nexport const get = async (token: string) => {\n const requestConfig: APIRequestConfig = { method: FetchMethodEnum.GET, headerConfig: {} };\n const additionalOpts: GretchOptions = {};\n const url = `/api/portaleFornitori/intervento/${encodeURIComponent(token)}`;\n const obj: APIRequestObj = { url, requestConfig, additionalOpts };\n return await APIManager(obj);\n};\n\nexport const getList = async (state: AssignmentListStatusEnum, pageNumber: number) => {\n const requestConfig: APIRequestConfig = { method: FetchMethodEnum.GET, headerConfig: {}, justResponse: true };\n const additionalOpts: GretchOptions = {};\n const url = `/api/portaleFornitori/intervento?Stato=${state}&PageSize=${PAGE_SIZE}&PageNumber=${pageNumber}`;\n const obj: APIRequestObj = { url, requestConfig, additionalOpts };\n return await APIManager(obj);\n};\n\ntype AcceptAssignmentAPI = (dataPrevista: string, note: string) => Promise;\n\nexport const accept: AcceptAssignmentAPI = async (dataPrevista, note) => {\n const requestConfig: APIRequestConfig = { method: FetchMethodEnum.PUT, headerConfig: {} };\n const additionalOpts: GretchOptions = { body: JSON.stringify({ dataPrevista, note }) };\n const [pid, interventoID] = getAuthorizationInfo();\n const url = `/api/portaleFornitori/intervento/${pid}/${interventoID}/accetta`;\n const obj: APIRequestObj = { url, requestConfig, additionalOpts };\n return await APIManager(obj);\n};\n\nexport const refuse = async (motivazione: string) => {\n const requestConfig: APIRequestConfig = { method: FetchMethodEnum.PUT, headerConfig: {} };\n const additionalOpts: GretchOptions = { body: JSON.stringify({ motivazione }) };\n const [pid, interventoID] = getAuthorizationInfo();\n const url = `/api/portaleFornitori/intervento/${pid}/${interventoID}/rifiuta`;\n const obj: APIRequestObj = { url, requestConfig, additionalOpts };\n return await APIManager(obj);\n};\n\nexport const changeData = async (dataPrevista: string, motivazione: string) => {\n const requestConfig: APIRequestConfig = { method: FetchMethodEnum.PUT, headerConfig: {} };\n const additionalOpts: GretchOptions = { body: JSON.stringify({ motivazione, dataPrevista }) };\n const [pid, interventoID] = getAuthorizationInfo();\n const url = `/api/portaleFornitori/intervento/${pid}/${interventoID}/dataPrevista`;\n const obj: APIRequestObj = { url, requestConfig, additionalOpts };\n return await APIManager(obj);\n};\n\ntype ConcludeAssignmentAPI = (dataEsecuzione: string, note: string, esito: boolean) => Promise;\nexport const conclude: ConcludeAssignmentAPI = async (dataEsecuzione, note, esito) => {\n const requestConfig: APIRequestConfig = { method: FetchMethodEnum.PUT, headerConfig: {} };\n const additionalOpts: GretchOptions = { body: JSON.stringify({ dataEsecuzione, note, esito }) };\n const [pid, interventoID] = getAuthorizationInfo();\n const url = `/api/portaleFornitori/intervento/${pid}/${interventoID}/concludi`;\n const obj: APIRequestObj = { url, requestConfig, additionalOpts };\n return await APIManager(obj);\n};\n\ntype ForwardAssignmentAPI = (data: ForwardRequest) => Promise;\nexport const forward: ForwardAssignmentAPI = async (data) => {\n const requestConfig: APIRequestConfig = { method: FetchMethodEnum.PUT, headerConfig: {} };\n const additionalOpts: GretchOptions = { body: JSON.stringify(data) };\n const [pid, interventoID] = getAuthorizationInfo();\n const url = `/api/portaleFornitori/intervento/${pid}/${interventoID}/inoltra`;\n const obj: APIRequestObj = { url, requestConfig, additionalOpts };\n return await APIManager(obj);\n};\n","import { DOMUSTUDIOAPI_BASE_PATH } from 'config/api';\nimport { LoginResult } from 'types/account';\nimport { APIErrorNotify } from './utils';\n\ntype Success = { accessToken: string };\ntype Response = string | undefined;\n\nexport const refreshAccessToken = async (refreshToken: string): Promise => {\n const headers = new Headers();\n headers.set('content-type', 'application/json');\n const response = await fetch(`${DOMUSTUDIOAPI_BASE_PATH}/api/portaleFornitori/refresh`, {\n method: 'POST',\n headers,\n body: JSON.stringify(refreshToken)\n });\n\n if (response.ok) {\n let result = undefined;\n try {\n result = ((await response.json()) as Success)?.accessToken;\n } catch (e) {\n APIErrorNotify();\n return;\n } finally {\n return result;\n }\n }\n return undefined;\n};\n\nexport const login = async (email: string, pwd: string): Promise => {\n const response = await fetch(`${DOMUSTUDIOAPI_BASE_PATH}/api/portaleFornitori/login`, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ email, pwd })\n });\n const { ok } = response;\n try {\n const result = await response.json();\n return { success: ok, data: result };\n } catch (error) {\n APIErrorNotify();\n return { success: false, data: undefined };\n }\n};\n\nexport const logout = async (accessToken: string, refreshToken: string) => {\n const response = await fetch(`${DOMUSTUDIOAPI_BASE_PATH}/api/portaleFornitori/logout`, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json', authorization: `Bearer ${accessToken}` },\n body: JSON.stringify({ refreshToken })\n });\n return response;\n};\n","import { GretchOptions } from 'gretchen';\nimport { APIRequestConfig, APIRequestObj, FetchMethodEnum } from 'types/api';\nimport { APIManager } from './utils';\n\ntype FirebaseDeviceAPI = (token: string) => Promise;\n\nexport const add: FirebaseDeviceAPI = async (token) => {\n const requestConfig: APIRequestConfig = { method: FetchMethodEnum.POST, headerConfig: {}, justResponse: true };\n const additionalOpts: GretchOptions = { body: JSON.stringify({ token, device: 'web' }) };\n const url = `/api/portaleFornitori/notifiche/addDevice`;\n const obj: APIRequestObj = { url, requestConfig, additionalOpts };\n const response = await APIManager(obj);\n return Boolean(response?.ok);\n};\n\nexport const remove: FirebaseDeviceAPI = async (token) => {\n const requestConfig: APIRequestConfig = { method: FetchMethodEnum.POST, headerConfig: {}, justResponse: true };\n const additionalOpts: GretchOptions = { body: JSON.stringify({ token }) };\n const url = `/api/portaleFornitori/notifiche/removeDevice`;\n const obj: APIRequestObj = { url, requestConfig, additionalOpts };\n const response = await APIManager(obj);\n return Boolean(response?.ok);\n};\n","import { GretchOptions } from 'gretchen';\nimport { APIRequestConfig, FetchMethodEnum, APIRequestObj } from 'types/api';\nimport { Assignment } from 'types/assignment';\nimport { Integration } from 'types/integration';\nimport { APIManager, getAuthorizationInfo } from './utils';\nimport moment from 'moment';\nimport 'moment/locale/it';\n\nexport const getIntegretionsAPI = async () => {\n const requestConfig: APIRequestConfig = { method: FetchMethodEnum.GET, headerConfig: {} };\n const additionalOpts: GretchOptions = {};\n const [pid, interventoID] = getAuthorizationInfo();\n const url = `/api/portaleFornitori/intervento/${pid}/${interventoID}/integrazione`;\n const obj: APIRequestObj = { url, requestConfig, additionalOpts };\n return await APIManager(obj);\n};\n\nexport const addIntegretionsAPI = async (messaggio: string, file?: File) => {\n const [pid, interventoID] = getAuthorizationInfo();\n const formData = new FormData();\n formData.append('messaggio', messaggio);\n // convert file to binary\n if (file) {\n formData.append('allegato', file, file.name);\n }\n\n const requestConfig: APIRequestConfig = {\n method: FetchMethodEnum.POST,\n headerConfig: { avoidContentTypeApplicationJson: true }\n };\n const additionalOpts: GretchOptions = { body: formData };\n const url = `/api/portaleFornitori/intervento/${pid}/${interventoID}/integrazione`;\n const obj: APIRequestObj = { url, requestConfig, additionalOpts };\n\n return await APIManager(obj);\n};\n\n// notification of reading\nexport const receipt = async () => {\n const requestConfig: APIRequestConfig = { method: FetchMethodEnum.PUT, headerConfig: {} };\n const additionalOpts: GretchOptions = { body: JSON.stringify({ dataLettura: moment().toDate() }) };\n const [pid, interventoID] = getAuthorizationInfo();\n const url = `/api/portaleFornitori/intervento/${pid}/${interventoID}/confermaLettura`;\n const obj: APIRequestObj = { url, requestConfig, additionalOpts };\n return await APIManager(obj);\n};\n","import * as account from './account';\nimport * as assignment from './assignment';\nimport * as authorization from './authorization';\nimport * as firebaseDevice from './firebaseDevice';\nimport * as integretion from './integration';\n\nexport const api = { account, assignment, authorization, firebaseDevice, integretion };\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"max-width\":\"layout_max-width__3g8T9\",\"layout-container\":\"layout_layout-container__36gHf\",\"content\":\"layout_content__vXWc5\",\"content-mobile\":\"layout_content-mobile__300fP\",\"container-mobile\":\"layout_container-mobile__2uY7D\",\"login-border\":\"layout_login-border__2Hlca\",\"login-layout\":\"layout_login-layout__L8vkA\"};","import { WebViewMessageObject } from 'types/react-native';\n\nexport const IS_NATIVE_APP = Boolean(window?.ReactNativeWebView);\nexport const NATIVE_APP_VERSION = window?.ReactNativeInfo?.version ?? '';\n\nexport const reactNativePostMessage = (object: Partial) =>\n window?.ReactNativeWebView?.postMessage(JSON.stringify(object));\n","import { createBrowserHistory } from 'history';\n\nexport const history = createBrowserHistory({ basename: '/' });\n","export const REFRESH_TOKEN_COOKIE = '__danIN_rt';\nexport const FIREBASE_TOKEN_COOKIE = '__danIN_fmc';\nexport const FIREBASE_NOTIFICATION_COOKIE = '__danIN_fnotc';\n","import { REFRESH_TOKEN_COOKIE } from 'config/cookie';\nimport { getCookie, setCookie } from './index';\n\nconst set = (value: string, keepMeLogged: boolean) => {\n const expirationsDays = 14;\n setCookie(REFRESH_TOKEN_COOKIE, value, keepMeLogged ? undefined : expirationsDays);\n};\n\nconst get = () => {\n const refreshToken = getCookie(REFRESH_TOKEN_COOKIE);\n return refreshToken;\n};\n\nconst remove = () => setCookie(REFRESH_TOKEN_COOKIE, '', -1);\n\nexport const refreshToken = { set, get, remove };\n","import { FIREBASE_NOTIFICATION_COOKIE } from 'config/cookie';\nimport { getCookie, setCookie } from './index';\n\nconst set = (days: number) => {\n setCookie(FIREBASE_NOTIFICATION_COOKIE, 'enabled', days);\n};\n\nconst get = () => {\n const firebaseToken = getCookie(FIREBASE_NOTIFICATION_COOKIE);\n return firebaseToken;\n};\n\nconst remove = () => setCookie(FIREBASE_NOTIFICATION_COOKIE, '', -1);\n\nexport const firebaseNotification = { set, get, remove };\n","import { FIREBASE_TOKEN_COOKIE } from 'config/cookie';\nimport { getCookie, setCookie } from './index';\n\nconst set = (value: string) => {\n setCookie(FIREBASE_TOKEN_COOKIE, value, undefined);\n};\n\nconst get = () => {\n const firebaseToken = getCookie(FIREBASE_TOKEN_COOKIE);\n return firebaseToken;\n};\n\nconst remove = () => setCookie(FIREBASE_TOKEN_COOKIE, '', -1);\n\nexport const firebaseToken = { set, get, remove };\n","import { refreshToken } from './refreshToken';\nimport { firebaseNotification } from './firebaseNotification';\nimport { firebaseToken } from './firebaseToken';\n\n// Cookie basic methods\nexport const setCookie = (name: string, value: string, expirationDays?: number) => {\n let expires = '';\n if (expirationDays !== undefined) {\n let date = 'Thu, 01 Jan 1970 00:00:00 GMT';\n const expirationDate = new Date();\n expirationDate.setTime(expirationDate.getTime() + expirationDays * 24 * 60 * 60 * 1000);\n date = expirationDate.toUTCString();\n expires = `expires=${date};`;\n }\n const cookie = `${name}=${value};${expires ?? ''}path=/;`;\n document.cookie = cookie;\n};\n\nexport const getCookie = (cookieName: string) => {\n const cookiesList = decodeURIComponent(document.cookie);\n const value = cookiesList\n ?.split('; ')\n ?.find((row) => row.startsWith(cookieName))\n ?.split('=')[1];\n return value;\n};\n\nexport const cookie = { refreshToken, firebaseNotification, firebaseToken };\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"text\":\"style_text__2oNg3\",\"title\":\"style_title__EFP_r\",\"text__normal\":\"style_text__normal__5fYMF\",\"font__black\":\"style_font__black__G2SdK\",\"font__blue\":\"style_font__blue__2w5YD\",\"font__cyan\":\"style_font__cyan__2EQwz\",\"font__fucsia\":\"style_font__fucsia__1aSQy\",\"font__green\":\"style_font__green__2-6YX\",\"font__grey\":\"style_font__grey__1MvWa\",\"font__indigo\":\"style_font__indigo__33vOI\",\"font__orange\":\"style_font__orange__2v9M0\",\"font__pink\":\"style_font__pink__3rDZQ\",\"font__red\":\"style_font__red__3xg2o\",\"font__yellow\":\"style_font__yellow__8HbrZ\",\"font__white\":\"style_font__white__bA09Y\",\"font__logo\":\"style_font__logo__28879\",\"text__left\":\"style_text__left__3TYhM\",\"text__right\":\"style_text__right__1upIH\",\"text__center\":\"style_text__center__5I-sQ\",\"text__underline\":\"style_text__underline__QWYPi\",\"tran-uppercase\":\"style_tran-uppercase__2fu74\",\"text__light\":\"style_text__light__g7F2H\",\"text__bold\":\"style_text__bold__1fiKm\",\"text__italic\":\"style_text__italic__1D-Mn\",\"container\":\"style_container__FqkYL\",\"open\":\"style_open__3ec92\",\"content\":\"style_content__1Vs-b\",\"divider\":\"style_divider__2vlRL\",\"logo\":\"style_logo__MizQW\"};","import { createSelector } from 'reselect';\nimport { RootState } from 'reducers/rootReducer';\n\nconst getIsLogged = (state: RootState) => state.authReducer.isLogged;\nconst isLogged = createSelector(getIsLogged, (res) => res);\n\nconst getUserEmail = (state: RootState) => state.authReducer.email;\nconst userEmail = createSelector(getUserEmail, (res) => res);\n\nconst getAccessToken = (state: RootState) => state.authReducer.accessToken;\nconst accessToken = createSelector(getAccessToken, (res) => res);\n\nexport const authSelector = { isLogged, userEmail, accessToken };\n","import { createSelector } from 'reselect';\nimport { RootState } from 'reducers/rootReducer';\nimport { MODAL_IDS } from 'types/modal';\n\nconst getModalReducer = (state: RootState) => state.modalReducer;\nconst isModalOpen = (modalId: MODAL_IDS) => createSelector(getModalReducer, (res) => res.currentModal === modalId);\n\nexport const modalSelector = { isModalOpen };\n","import { assignmentSelector } from './assignment';\nimport { authSelector } from './auth';\nimport { mobileSelector } from './mobile';\nimport { modalSelector } from './modal';\n\nexport const selectors = { assignmentSelector, authSelector, mobileSelector, modalSelector };\n","import { defaultPalette } from 'palette';\nimport styled, { css, keyframes } from 'styled-components';\n\nexport type Props = { size: 'small' | 'medium' };\n\nconst rotationAnimation = keyframes`\n from{ transform: rotate(0deg); }\n to { transform: rotate(360deg); }\n`;\n\nexport const Spinner = styled.div`\n border-top: 3px solid ${defaultPalette.red[500]};\n border-right: 3px solid transparent;\n border-radius: 50%;\n box-sizing: border-box;\n animation-name: ${rotationAnimation};\n animation-duration: 1s;\n animation-timing-function: linear;\n animation-iteration-count: infinite;\n ${({ size }) => css`\n width: ${size === 'small' ? '32px' : '64px'};\n height: ${size === 'small' ? '32px' : '64px'};\n `};\n`;\n","import React from 'react';\nimport styled from 'styled-components';\nimport { Props as SpinnerProps, Spinner } from './spinner';\n\ntype OverlayProps = { position: 'fixed' | 'absolute'; transparentBackground?: boolean };\ntype Props = Partial & OverlayProps;\n\nconst Overlay = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: 2;\n position: ${({ position }) => position};\n background: ${({ transparentBackground }) => (transparentBackground ? 'transparent' : 'rgba(0, 0, 0, 0.14)')};\n`;\n\nexport const LoadingSpinner: React.FC = ({ position, size = 'medium' }) => (\n \n \n \n);\n\nexport default LoadingSpinner;\n","export enum ErrorsCodeEnum {\n NOT_AUTHENTICADED = 111,\n USER_TYPE_NOT_ALLOWED = 114\n}\n","import { logoutAction } from 'actions/authorization';\nimport { api } from 'api';\nimport { getGretchOptions } from 'config/gretchen';\nimport { store } from 'config/store';\nimport { ErrorsCodeEnum } from 'constants/apiErrorCodes';\nimport { gretch, GretchOptions } from 'gretchen';\nimport { RootState } from 'reducers/rootReducer';\nimport { APIError, APIRequestObj, Authorization } from 'types/api';\nimport { accountManager } from 'utils/accountManager';\nimport { showErrorToast } from 'utils/toast';\n\nexport const APIErrorNotify = (message?: string) =>\n showErrorToast('Errore', message ?? 'Abbiamo riscontrato un errore inaspettato, riprova tra qualche istante');\n\nexport const getAuthorizationInfo = (): Authorization => {\n const state: RootState = store.getState();\n const assignment = state.assignmentReducer?.assignment;\n return [assignment?.pid, assignment?.interventoID];\n};\n\nconst getAPIInstance = (APIObj: APIRequestObj) => {\n const { url, requestConfig, additionalOpts } = APIObj;\n const opts: GretchOptions = { ...getGretchOptions(requestConfig), ...additionalOpts };\n return () => gretch(url, opts);\n};\n\nexport const APIManager = async (APIObj: APIRequestObj): Promise => {\n const instance = getAPIInstance(APIObj);\n const { response, status } = await instance().flush();\n try {\n const { alreadyTriedToRefresh, justResponse } = APIObj.requestConfig;\n if (response.ok) {\n if (justResponse) {\n // type T must be Response type for working\n return (response as unknown) as T;\n }\n const data = await response.json();\n return data as T;\n }\n const error = (await response.json()) as APIError;\n if (error && error.hasOwnProperty('message')) {\n // handle unauthorized case\n if (\n !alreadyTriedToRefresh &&\n status === 401 &&\n 'code' in error &&\n error.code === ErrorsCodeEnum.NOT_AUTHENTICADED\n ) {\n const refreshToken = accountManager.cookie.refreshToken.get();\n const newAccessToken = refreshToken ? await api.authorization.refreshAccessToken(refreshToken) : undefined;\n if (newAccessToken) {\n accountManager.updateAccessTokenInWholeApplication(newAccessToken);\n // update APIObj with new accessToken\n const newAPIObj = { ...APIObj };\n newAPIObj.requestConfig.headerConfig.accessToken = newAccessToken;\n newAPIObj.requestConfig.alreadyTriedToRefresh = true;\n return APIManager(newAPIObj);\n }\n // handle failed refresh token call\n APIErrorNotify(error.message);\n store.dispatch(logoutAction());\n return undefined;\n }\n APIErrorNotify(error.message);\n }\n APIErrorNotify();\n return undefined;\n } catch (e) {\n APIErrorNotify();\n return APIObj.requestConfig.justResponse ? ((response as unknown) as T) : undefined;\n }\n};\n","import { GretchOptions } from 'gretchen';\nimport { APIRequestConfig } from 'types/api';\nimport { DOMUSTUDIOAPI_BASE_PATH, getAuthorizationHeader } from './api';\n\n// If headerConfig is undefined it picks all data from redux\nexport const getGretchOptions = (config: APIRequestConfig): GretchOptions => ({\n baseURL: DOMUSTUDIOAPI_BASE_PATH,\n method: config.method,\n credentials: 'include',\n headers: getAuthorizationHeader(config.headerConfig),\n timeout: 45000, //45 sec\n hooks: undefined\n});\n","import React from 'react';\nimport { Toast } from '@fattureincloud/fic-design-system';\n\nexport const showSuccessToast = (title: string, text?: string) =>\n Toast.success({title}, { content: text ? {text} : undefined });\n\nexport const showErrorToast = (title: string, text?: string) =>\n Toast.error({title}, { content: text ? {text} : undefined });\n","import { bwColor } from '@fattureincloud/fic-design-system/dist/styles/types';\n\nexport const black: bwColor = {\n 8: '#33333314',\n 16: '#33333328',\n 48: '#3333337A',\n 80: '#333333CC',\n 100: '#333333'\n};\n","import { color } from '@fattureincloud/fic-design-system/dist/styles/types';\n\nexport const blue: color = {\n 50: '#e0eaf9',\n 100: '#b3cbf0',\n 200: '#80a9e6',\n 300: '#4d86db',\n 400: '#266cd4',\n 500: '#0052cc',\n 600: '#004bc7',\n 700: '#0041c0',\n 800: '#0038b9',\n 900: '#0028ad'\n};\n","import { Palette } from '@fattureincloud/fic-design-system';\nimport { black } from './black';\nimport { blue } from './blue';\nimport { cyan } from './cyan';\nimport { fuchsia } from './fuchsia';\nimport { green } from './green';\nimport { grey } from './grey';\nimport { indigo } from './indigo';\nimport { orange } from './orange';\nimport { pink } from './pink';\nimport { red } from './red';\nimport { white } from './white';\nimport { yellow } from './yellow';\n\nexport const colors: Palette = {\n black,\n white,\n grey,\n blue,\n indigo,\n yellow,\n orange,\n red,\n green,\n fuchsia,\n pink,\n cyan,\n primary: blue\n};\n","import { bwColor } from '@fattureincloud/fic-design-system/dist/styles/types';\n\nexport const white: bwColor = {\n 8: '#FFFFFF14',\n 16: '#FFFFFF28',\n 48: '#FFFFFF7A',\n 80: '#FFFFFFCC',\n 100: '#FFFFFF'\n};\n","import { color } from '@fattureincloud/fic-design-system/dist/styles/types';\n\nexport const grey: color = {\n 50: '#fafbfc',\n 100: '#ebecf0',\n 200: '#c1c7d0',\n 300: '#a5adba',\n 400: '#7a869a',\n 500: '#6b778c',\n 600: '#5e6c84',\n 700: '#505f79',\n 800: '#253858',\n 900: '#091e42'\n};\n","import { color } from '@fattureincloud/fic-design-system/dist/styles/types';\n\nexport const indigo: color = {\n 50: '#e8ecfb',\n 100: '#d0d7f6',\n 200: '#b3bff1',\n 300: '#90a3eb',\n 400: '#637ce3',\n 500: '#0d35d5',\n 600: '#0b2fbf',\n 700: '#0a29a6',\n 800: '#082188',\n 900: '#05175e'\n};\n","import { color } from '@fattureincloud/fic-design-system/dist/styles/types';\n\nexport const yellow: color = {\n 50: '#fff3e4',\n 100: '#ffe0bc',\n 200: '#ffcc8f',\n 300: '#ffb862',\n 400: '#ffa841',\n 500: '#ff991f',\n 600: '#ff911b',\n 700: '#ff8617',\n 800: '#ff7c12',\n 900: '#ff6b0a'\n};\n","import { color } from '@fattureincloud/fic-design-system/dist/styles/types';\n\nexport const orange: color = {\n 50: '#fff3e4',\n 100: '#ffe0bc',\n 200: '#ffcc8f',\n 300: '#ffb862',\n 400: '#ffa841',\n 500: '#ff991f',\n 600: '#ff911b',\n 700: '#ff8617',\n 800: '#ff7c12',\n 900: '#ff6b0a'\n};\n","import { color } from '@fattureincloud/fic-design-system/dist/styles/types';\n\nexport const red: color = {\n 50: '#fcefee',\n 100: '#f5c5c1',\n 200: '#ef9f98',\n 300: '#e97d74',\n 400: '#e45f54',\n 500: '#df4437',\n 600: '#d32f22',\n 700: '#ba291e',\n 800: '#a4241a',\n 900: '#902017'\n};\n","import { color } from '@fattureincloud/fic-design-system/dist/styles/types';\n\nexport const green: color = {\n 50: '#e0f1eb',\n 100: '#b3dbce',\n 200: '#80c3ad',\n 300: '#4dab8c',\n 400: '#269973',\n 500: '#00875a',\n 600: '#007f52',\n 700: '#007448',\n 800: '#006a3f',\n 900: '#00572e'\n};\n","import { color } from '@fattureincloud/fic-design-system/dist/styles/types';\n\nexport const fuchsia: color = {\n 50: '#f7e9fb',\n 100: '#efd2f7',\n 200: '#e6b6f2',\n 300: '#db94ec',\n 400: '#cb67e4',\n 500: '#ad0dd5',\n 600: '#9c0bc0',\n 700: '#880aa8',\n 800: '#71088b',\n 900: '#500663'\n};\n","import { color } from '@fattureincloud/fic-design-system/dist/styles/types';\n\nexport const pink: color = {\n 50: '#fbeaf6',\n 100: '#f7d2ec',\n 200: '#f2b7e0',\n 300: '#ec96d2',\n 400: '#e569bf',\n 500: '#d50d99',\n 600: '#c00b8a',\n 700: '#a80a79',\n 800: '#8c0864',\n 900: '#640648'\n};\n","import { color } from '@fattureincloud/fic-design-system/dist/styles/types';\n\nexport const cyan: color = {\n 50: '#e4faf5',\n 100: '#c6f5eb',\n 200: '#a4efe0',\n 300: '#7de8d3',\n 400: '#4de0c2',\n 500: '#0dd5ad',\n 600: '#0bc09c',\n 700: '#0aa989',\n 800: '#088c72',\n 900: '#066552'\n};\n","import { ButtonPalette } from '@fattureincloud/fic-design-system/dist/components/buttons/button/buttonPalette';\nimport { colors as defaultPalette } from 'palette/colors';\n\nconst buttonPalette: ButtonPalette = {\n primary: {\n blue: {\n normal: defaultPalette.blue[500],\n hover: defaultPalette.blue[700],\n active: defaultPalette.blue[900],\n text: defaultPalette.white[100],\n textHover: defaultPalette.grey[100]\n },\n red: {\n normal: defaultPalette.red[500],\n hover: defaultPalette.red[700],\n active: defaultPalette.red[900],\n text: defaultPalette.white[100],\n textHover: defaultPalette.grey[100]\n },\n green: {\n normal: defaultPalette.green[500],\n hover: defaultPalette.green[700],\n active: defaultPalette.green[900],\n text: defaultPalette.white[100],\n textHover: defaultPalette.grey[100]\n },\n grey: {\n normal: defaultPalette.white[100],\n hover: defaultPalette.grey[100],\n active: defaultPalette.grey[200],\n text: defaultPalette.black[100],\n textHover: defaultPalette.black[100]\n },\n yellow: {\n normal: defaultPalette.yellow[500],\n hover: defaultPalette.yellow[700],\n active: defaultPalette.yellow[900],\n text: defaultPalette.white[100],\n textHover: defaultPalette.grey[100]\n },\n disabled: {\n normal: defaultPalette.grey[50],\n hover: defaultPalette.grey[50],\n active: defaultPalette.grey[50],\n text: defaultPalette.grey[200],\n textHover: defaultPalette.grey[200]\n }\n },\n secondary: {\n blue: {\n normal: defaultPalette.blue[50],\n hover: defaultPalette.blue[100],\n active: defaultPalette.blue[200],\n text: defaultPalette.blue[500],\n textHover: defaultPalette.blue[500]\n },\n red: {\n normal: defaultPalette.red[50],\n hover: defaultPalette.red[100],\n active: defaultPalette.red[200],\n text: defaultPalette.red[500],\n textHover: defaultPalette.red[500]\n },\n green: {\n normal: defaultPalette.green[50],\n hover: defaultPalette.green[100],\n active: defaultPalette.green[200],\n text: defaultPalette.green[500],\n textHover: defaultPalette.green[500]\n },\n yellow: {\n normal: defaultPalette.yellow[50],\n hover: defaultPalette.yellow[100],\n active: defaultPalette.yellow[200],\n text: defaultPalette.yellow[500],\n textHover: defaultPalette.yellow[500]\n },\n grey: {\n normal: defaultPalette.grey[50],\n hover: defaultPalette.grey[100],\n active: defaultPalette.grey[200],\n text: defaultPalette.black[100],\n textHover: defaultPalette.black[100]\n },\n disabled: {\n normal: defaultPalette.grey[50],\n hover: defaultPalette.grey[50],\n active: defaultPalette.grey[50],\n text: defaultPalette.grey[200],\n textHover: defaultPalette.grey[200]\n }\n },\n text: {\n blue: {\n normal: 'transparent',\n hover: 'transparent',\n active: 'transparent',\n text: defaultPalette.blue[500],\n textHover: defaultPalette.blue[500]\n },\n red: {\n normal: 'transparent',\n hover: 'transparent',\n active: 'transparent',\n text: defaultPalette.red[500],\n textHover: defaultPalette.red[500]\n },\n green: {\n normal: 'transparent',\n hover: 'transparent',\n active: 'transparent',\n text: defaultPalette.green[500],\n textHover: defaultPalette.green[500]\n },\n grey: {\n normal: 'transparent',\n hover: 'transparent',\n active: 'transparent',\n text: defaultPalette.grey[500],\n textHover: defaultPalette.grey[500]\n },\n yellow: {\n normal: 'transparent',\n hover: 'transparent',\n active: 'transparent',\n text: defaultPalette.yellow[500],\n textHover: defaultPalette.yellow[500]\n },\n disabled: {\n normal: 'transparent',\n hover: 'transparent',\n active: 'transparent',\n text: defaultPalette.grey[200],\n textHover: defaultPalette.grey[200]\n }\n },\n defaultType: 'primary',\n defaultColor: 'blue',\n defaultSize: 'medium'\n};\n\nexport default buttonPalette;\n","import { IconButtonPalette } from '@fattureincloud/fic-design-system/dist/components/buttons/iconButton/iconButtonPalette';\nimport { colors as defaultPalette } from 'palette/colors';\n\nconst iconButtonPalette: IconButtonPalette = {\n primary: {\n blue: {\n normal: defaultPalette.blue[300],\n hover: defaultPalette.blue[500]\n },\n red: {\n normal: defaultPalette.red[300],\n hover: defaultPalette.red[500]\n },\n green: {\n normal: defaultPalette.green[300],\n hover: defaultPalette.green[500]\n },\n yellow: {\n normal: defaultPalette.yellow[300],\n hover: defaultPalette.yellow[500]\n },\n disabled: {\n normal: defaultPalette.grey[300],\n hover: defaultPalette.grey[300]\n }\n },\n secondary: {\n blue: {\n normal: defaultPalette.blue[300],\n hover: defaultPalette.white[100]\n },\n red: {\n normal: defaultPalette.red[300],\n hover: defaultPalette.white[100]\n },\n green: {\n normal: defaultPalette.green[300],\n hover: defaultPalette.white[100]\n },\n yellow: {\n normal: defaultPalette.yellow[300],\n hover: defaultPalette.white[100]\n },\n disabled: {\n normal: defaultPalette.grey[300],\n hover: defaultPalette.grey[300]\n }\n },\n defaultType: 'primary',\n defaultColor: 'blue'\n};\n\nexport default iconButtonPalette;\n","import { TagPalette } from '@fattureincloud/fic-design-system/dist/components/tag/tagPalette';\nimport { colors as defaultPalette } from 'palette/colors';\n\nconst tagPalette: TagPalette = {\n full: {\n standard: {\n color: defaultPalette.white[100],\n backgroundColor: defaultPalette.grey[600]\n },\n warning: {\n color: defaultPalette.white[100],\n backgroundColor: defaultPalette.yellow[500]\n },\n success: {\n color: defaultPalette.white[100],\n backgroundColor: defaultPalette.green[500]\n },\n info: {\n color: defaultPalette.white[100],\n backgroundColor: defaultPalette.blue[500]\n },\n error: {\n color: defaultPalette.white[100],\n backgroundColor: defaultPalette.red[500]\n }\n },\n soft: {\n standard: {\n color: defaultPalette.grey[900],\n backgroundColor: defaultPalette.grey[100]\n },\n warning: {\n color: defaultPalette.yellow[900],\n backgroundColor: defaultPalette.yellow[50]\n },\n success: {\n color: defaultPalette.green[900],\n backgroundColor: defaultPalette.green[50]\n },\n info: {\n color: defaultPalette.blue[900],\n backgroundColor: defaultPalette.blue[50]\n },\n error: {\n color: defaultPalette.red[900],\n backgroundColor: defaultPalette.red[50]\n }\n },\n text: {\n standard: {\n backgroundColor: 'transparent',\n color: defaultPalette.grey[800]\n },\n warning: {\n backgroundColor: 'transparent',\n color: defaultPalette.yellow[500]\n },\n success: {\n backgroundColor: 'transparent',\n color: defaultPalette.green[500]\n },\n info: {\n backgroundColor: 'transparent',\n color: defaultPalette.indigo[500]\n },\n error: {\n backgroundColor: 'transparent',\n color: defaultPalette.red[500]\n }\n }\n};\n\nexport default tagPalette;\n","import { MicroTagPalette } from '@fattureincloud/fic-design-system/dist/components/microTag/microTagPalette';\nimport { colors as defaultPalette } from 'palette/colors';\n\nconst microTagPalette: MicroTagPalette = {\n error: {\n backgroundColor: defaultPalette.red[50],\n color: defaultPalette.red[500]\n },\n info: {\n backgroundColor: defaultPalette.blue[50],\n color: defaultPalette.blue[500]\n },\n standard: {\n backgroundColor: defaultPalette.grey[50],\n color: defaultPalette.grey[500]\n },\n success: {\n backgroundColor: defaultPalette.green[50],\n color: defaultPalette.green[500]\n },\n warning: {\n backgroundColor: defaultPalette.yellow[50],\n color: defaultPalette.yellow[500]\n }\n};\n\nexport default microTagPalette;\n","import { IconPalette } from '@fattureincloud/fic-design-system/dist/components/icon/iconPalette';\nimport { colors } from '@fattureincloud/fic-design-system/dist/styles/types';\nimport { colors as defaultPalette } from 'palette/colors';\n\nconst getColoredIcon = (color: colors) => ({\n primary: defaultPalette[color][500],\n secondary: defaultPalette[color][200]\n});\n\nconst iconPalette: IconPalette = {\n blue: getColoredIcon('blue'),\n red: getColoredIcon('red'),\n green: getColoredIcon('green'),\n yellow: getColoredIcon('yellow'),\n grey: getColoredIcon('grey'),\n orange: getColoredIcon('orange'),\n primary: getColoredIcon('primary'),\n cyan: getColoredIcon('cyan'),\n fuchsia: getColoredIcon('fuchsia'),\n indigo: getColoredIcon('indigo'),\n pink: getColoredIcon('pink'),\n white: {\n primary: defaultPalette.white[100],\n secondary: defaultPalette.white[48]\n },\n black: {\n primary: defaultPalette.black[100],\n secondary: defaultPalette.black[48]\n }\n};\n\nexport default iconPalette;\n","import { paletteColor } from '@fattureincloud/fic-design-system';\nimport {\n checkboxParts,\n checkboxState,\n checkboxStatus\n} from '@fattureincloud/fic-design-system/dist/components/checkbox/types';\nimport { colors as defaultPalette } from 'palette/colors';\n\nexport type CheckboxPalette = {\n input: {\n [k in checkboxState]: {\n [k in checkboxStatus]: {\n [k in checkboxParts]: paletteColor;\n };\n };\n };\n label: {\n [k in checkboxState]: paletteColor;\n };\n};\n\nconst normalChecked = {\n tickColor: defaultPalette.white[100],\n backgroundColor: defaultPalette.blue[500],\n borderColor: defaultPalette.blue[500]\n};\n\nconst errorChecked = {\n tickColor: defaultPalette.white[100],\n backgroundColor: defaultPalette.red[500],\n borderColor: defaultPalette.red[500]\n};\n\nconst checkboxPalette: CheckboxPalette = {\n input: {\n normal: {\n checked: normalChecked,\n indeterminate: normalChecked,\n unchecked: {\n tickColor: defaultPalette.white[100],\n backgroundColor: 'transparent',\n borderColor: defaultPalette.grey[500]\n }\n },\n error: {\n checked: errorChecked,\n indeterminate: errorChecked,\n unchecked: {\n tickColor: defaultPalette.white[100],\n backgroundColor: 'transparent',\n borderColor: defaultPalette.red[500]\n }\n }\n },\n label: {\n normal: defaultPalette.black[100],\n error: defaultPalette.red[500]\n }\n};\n\nexport default checkboxPalette;\n","import { colors as defaultPalette } from 'palette/colors';\nimport { paletteColor } from '@fattureincloud/fic-design-system';\nimport { DropdownItemType } from '@fattureincloud/fic-design-system/dist/components/dropdown/types';\nimport { colorsPalette } from '@fattureincloud/fic-design-system/dist/common/types/colorsPalette';\n\ninterface ItemColors extends colorsPalette {\n hoverBackground: paletteColor;\n}\n\ntype NotActiveItemPalette = {\n [k in DropdownItemType]: ItemColors;\n};\n\ninterface ItemPalette {\n active: ItemColors;\n notActive: NotActiveItemPalette;\n}\n\nexport interface DropdownPalette {\n items: ItemPalette;\n}\n\nexport const dropdownPalette: DropdownPalette = {\n items: {\n active: {\n color: defaultPalette.black[100],\n background: defaultPalette.blue[50],\n hoverBackground: defaultPalette.grey[100]\n },\n notActive: {\n default: {\n color: defaultPalette.black[100],\n background: 'transparent',\n hoverBackground: defaultPalette.grey[100]\n },\n danger: {\n color: defaultPalette.red[500],\n background: 'transparent',\n hoverBackground: defaultPalette.red[50]\n },\n success: {\n color: defaultPalette.green[500],\n background: 'transparent',\n hoverBackground: defaultPalette.green[50]\n },\n warning: {\n color: defaultPalette.yellow[500],\n background: 'transparent',\n hoverBackground: defaultPalette.yellow[50]\n },\n link: {\n color: defaultPalette.blue[500],\n background: 'transparent',\n hoverBackground: defaultPalette.blue[50]\n }\n }\n }\n};\n\nexport default dropdownPalette;\n","import { IconBackgroundPalette } from '@fattureincloud/fic-design-system';\nimport { colors as defaultPalette } from 'palette/colors';\n\nconst iconBackgroundPalette: IconBackgroundPalette = {\n blue: defaultPalette.blue[50],\n indigo: defaultPalette.indigo[50],\n yellow: defaultPalette.yellow[50],\n orange: defaultPalette.orange[50],\n red: defaultPalette.red[50],\n green: defaultPalette.green[50],\n fuchsia: defaultPalette.fuchsia[50],\n pink: defaultPalette.pink[50],\n cyan: defaultPalette.cyan[50],\n primary: defaultPalette.primary[50],\n grey: defaultPalette.grey[100],\n white: defaultPalette.white[16],\n black: defaultPalette.black[16]\n};\n\nexport default iconBackgroundPalette;\n","import { SidebarItemPalette } from '@fattureincloud/fic-design-system';\nimport { colors as defaultPalette } from 'palette/colors';\n\nconst sidebarItemPalette: SidebarItemPalette = {\n normal: {\n color: defaultPalette.black[100],\n background: 'transparent',\n hoverColor: defaultPalette.black[100],\n hoverBackground: defaultPalette.grey[100],\n dropdownHover: defaultPalette.grey[400],\n dropdownActive: defaultPalette.grey[600]\n },\n active: {\n color: defaultPalette.white[100],\n background: defaultPalette.blue[500],\n hoverColor: defaultPalette.white[100],\n hoverBackground: defaultPalette.blue[500],\n dropdownHover: 'rgba(255,255,255,0.16)',\n dropdownActive: defaultPalette.blue[700]\n },\n disabled: {\n color: defaultPalette.grey[300],\n background: defaultPalette.grey[100],\n hoverColor: defaultPalette.grey[300],\n hoverBackground: defaultPalette.grey[100],\n dropdownHover: 'transparent',\n dropdownActive: 'transparent'\n }\n};\n\nexport default sidebarItemPalette;\n","import { TooltipPalette } from '@fattureincloud/fic-design-system';\nimport { colors as defaultPalette } from 'palette/colors';\n\nconst tooltipPalette: TooltipPalette = {\n light: {\n color: defaultPalette.black[100],\n background: defaultPalette.white[100]\n },\n dark: {\n color: defaultPalette.white[100],\n background: defaultPalette.grey[900]\n }\n};\n\nexport default tooltipPalette;\n","import { paletteColor } from '@fattureincloud/fic-design-system';\nimport { stepStatusType } from '@fattureincloud/fic-design-system/dist/components/stepper/types';\nimport { colors as defaultPalette } from 'palette/colors';\n\nexport interface ItemStatusStyles {\n color: paletteColor;\n circleBackground: paletteColor;\n circleTextColor: paletteColor;\n}\n\ntype ItemPalette = {\n [k in stepStatusType]: ItemStatusStyles;\n};\n\nexport interface StepperPalette {\n item: ItemPalette;\n}\n\nconst stepperPalette: StepperPalette = {\n item: {\n normal: {\n color: defaultPalette.grey[500],\n circleBackground: defaultPalette.grey[500],\n circleTextColor: defaultPalette.white[100]\n },\n active: {\n color: defaultPalette.blue[500],\n circleBackground: defaultPalette.blue[500],\n circleTextColor: defaultPalette.white[100]\n },\n completed: {\n color: defaultPalette.grey[500],\n circleBackground: defaultPalette.green[500],\n circleTextColor: defaultPalette.white[100]\n }\n }\n};\n\nexport default stepperPalette;\n","import { InputTextPalette } from '@fattureincloud/fic-design-system';\nimport { colors as defaultPalette } from 'palette/colors';\n\nconst inputTextPalette: InputTextPalette = {\n normal: {\n background: defaultPalette.white[100],\n color: defaultPalette.black[100],\n iconColor: defaultPalette.black[100],\n borderColor: defaultPalette.grey[500]\n },\n normalFocused: {\n background: defaultPalette.white[100],\n color: defaultPalette.black[100],\n borderColor: defaultPalette.blue[300]\n },\n success: {\n background: defaultPalette.green[50],\n color: defaultPalette.black[100],\n iconColor: defaultPalette.green[900],\n borderColor: defaultPalette.green[300]\n },\n warning: {\n background: defaultPalette.yellow[50],\n color: defaultPalette.black[100],\n iconColor: defaultPalette.yellow[900],\n borderColor: defaultPalette.yellow[300]\n },\n error: {\n background: defaultPalette.red[50],\n color: defaultPalette.black[100],\n iconColor: defaultPalette.red[900],\n borderColor: defaultPalette.red[300]\n },\n disabled: {\n background: defaultPalette.grey[100],\n color: defaultPalette.black[16],\n iconColor: defaultPalette.black[16],\n borderColor: 'transparent'\n }\n};\n\nexport default inputTextPalette;\n","import { TextAreaPalette } from '@fattureincloud/fic-design-system';\nimport { colors as defaultPalette } from 'palette/colors';\n\nconst textAreaPalette: TextAreaPalette = {\n normal: {\n background: defaultPalette.white[100],\n color: defaultPalette.black[100],\n borderColor: defaultPalette.grey[500]\n },\n normalFocused: {\n background: defaultPalette.white[100],\n color: defaultPalette.black[100],\n borderColor: defaultPalette.blue[300]\n },\n success: {\n background: defaultPalette.green[50],\n color: defaultPalette.black[100],\n borderColor: defaultPalette.green[300]\n },\n warning: {\n background: defaultPalette.yellow[50],\n color: defaultPalette.black[100],\n borderColor: defaultPalette.yellow[300]\n },\n error: {\n background: defaultPalette.red[50],\n color: defaultPalette.black[100],\n borderColor: defaultPalette.red[300]\n },\n disabled: {\n background: defaultPalette.grey[100],\n color: defaultPalette.black[16],\n borderColor: 'transparent'\n }\n};\n\nexport default textAreaPalette;\n","import { InputHelperPalette } from '@fattureincloud/fic-design-system';\nimport { colors as defaultPalette } from 'palette/colors';\n\nconst inputHelperPalette: InputHelperPalette = {\n normal: {\n color: defaultPalette.black[100],\n background: defaultPalette.grey[100]\n },\n error: {\n color: defaultPalette.red[900],\n background: defaultPalette.red[50]\n },\n warning: {\n color: defaultPalette.yellow[900],\n background: defaultPalette.yellow[50]\n },\n info: {\n color: defaultPalette.blue[900],\n background: defaultPalette.blue[50]\n },\n success: {\n color: defaultPalette.green[900],\n background: defaultPalette.green[50]\n }\n};\n\nexport default inputHelperPalette;\n","import { SelectPalette } from '@fattureincloud/fic-design-system';\nimport { colors as defaultPalette } from 'palette/colors';\n\nconst selectPalette: SelectPalette = {\n normal: {\n background: defaultPalette.white[100],\n color: defaultPalette.black[100],\n iconColor: defaultPalette.black[100],\n borderColor: defaultPalette.grey[500]\n },\n normalFocused: {\n background: defaultPalette.white[100],\n color: defaultPalette.black[100],\n iconColor: defaultPalette.black[100],\n borderColor: defaultPalette.blue[300]\n },\n success: {\n background: defaultPalette.green[50],\n color: defaultPalette.black[100],\n iconColor: defaultPalette.green[900],\n borderColor: defaultPalette.green[300]\n },\n warning: {\n background: defaultPalette.yellow[50],\n color: defaultPalette.black[100],\n iconColor: defaultPalette.yellow[900],\n borderColor: defaultPalette.yellow[300]\n },\n error: {\n background: defaultPalette.red[50],\n color: defaultPalette.black[100],\n iconColor: defaultPalette.red[900],\n borderColor: defaultPalette.red[300]\n },\n disabled: {\n background: defaultPalette.grey[100],\n color: defaultPalette.black[16],\n iconColor: defaultPalette.black[16],\n borderColor: 'transparent'\n }\n};\n\nexport default selectPalette;\n","import { colors } from './colors';\nimport { ButtonPalette } from '@fattureincloud/fic-design-system/dist/components/buttons/button/buttonPalette';\nimport { IconButtonPalette } from '@fattureincloud/fic-design-system/dist/components/buttons/iconButton/iconButtonPalette';\nimport { TagPalette } from '@fattureincloud/fic-design-system/dist/components/tag/tagPalette';\nimport buttonPalette from './components/buttonPalette';\nimport iconButtonPalette from './components/iconButtonPalette';\nimport tagPalette from './components/tagPalette';\nimport { MicroTagPalette } from '@fattureincloud/fic-design-system/dist/components/microTag/microTagPalette';\nimport { IconPalette } from '@fattureincloud/fic-design-system/dist/components/icon/iconPalette';\nimport microTagPalette from './components/microTagPalette';\nimport iconPalette from './components/iconPalette';\nimport {\n CheckboxPalette,\n DropdownPalette,\n IconBackgroundPalette,\n InputHelperPalette,\n InputTextPalette,\n SelectPalette,\n SidebarItemPalette,\n StepperPalette,\n TextAreaPalette,\n TooltipPalette\n} from '@fattureincloud/fic-design-system';\nimport checkboxPalette from './components/checkboxPalette';\nimport dropdownPalette from './components/dropdownPalette';\nimport iconBackgroundPalette from './components/iconBackgroundPalette';\nimport sidebarItemPalette from './components/sidebarItemPalette';\nimport tooltipPalette from './components/tooltipPalette';\nimport stepperPalette from './components/stepperPalette';\nimport inputTextPalette from './components/inputTextPalette';\nimport textAreaPalette from './components/textAreaPalette';\nimport inputHelperPalette from './components/inputHelperPalette';\nimport selectPalette from './components/selectPalette';\n\ntype Components = {\n tag: TagPalette;\n button: ButtonPalette;\n iconButton: IconButtonPalette;\n microTag: MicroTagPalette;\n icon: IconPalette;\n checkbox: CheckboxPalette;\n dropdown: DropdownPalette;\n iconBackground: IconBackgroundPalette;\n sidebarItem: SidebarItemPalette;\n tooltip: TooltipPalette;\n stepper: StepperPalette;\n inputText: InputTextPalette;\n textArea: TextAreaPalette;\n inputHelper: InputHelperPalette;\n select: SelectPalette;\n};\nconst components: Components = {\n tag: tagPalette,\n button: buttonPalette,\n iconButton: iconButtonPalette,\n microTag: microTagPalette,\n icon: iconPalette,\n checkbox: checkboxPalette,\n dropdown: dropdownPalette,\n iconBackground: iconBackgroundPalette,\n sidebarItem: sidebarItemPalette,\n tooltip: tooltipPalette,\n stepper: stepperPalette,\n inputText: inputTextPalette,\n textArea: textAreaPalette,\n inputHelper: inputHelperPalette,\n select: selectPalette\n};\n\nexport const defaultPalette = colors;\nexport const theme = { palette: colors, components };\n","import { AssignmentActionNames, AssignmentTypes } from 'actions/assignment/types';\nimport { Assignment } from 'types/assignment';\nimport { Pagination, AssignmentListStatusEnum, AssignmentsInfo, PageStatus } from 'types/assignmentList';\n\nexport type AssignmentReducer = {\n assignment?: Assignment;\n pageStatus: PageStatus;\n};\n\nexport const PAGE_SIZE = 15;\nexport const initialPagination: Pagination = { totalCount: 0, pageSize: PAGE_SIZE, currentPage: 1, totalPages: 1 };\nconst initialAssignmentsInfo: AssignmentsInfo = { totalPending: 0, totalWorking: 0, totalCompleted: 0 };\n\nconst initialPageStatus: PageStatus = {\n currentStatus: AssignmentListStatusEnum.toAccept,\n pagination: { ...initialPagination },\n assignmentsInfo: { ...initialAssignmentsInfo }\n};\nconst initialState: AssignmentReducer = { assignment: undefined, pageStatus: { ...initialPageStatus } };\n\nexport const assignmentReducer = (\n state: AssignmentReducer = initialState,\n action: AssignmentTypes\n): AssignmentReducer => {\n switch (action.type) {\n case AssignmentActionNames.SET_CURRENT_ASSIGNMENT:\n return { ...state, assignment: action.payload };\n\n case AssignmentActionNames.UNSET_CURRENT_ASSIGNMENT:\n return { ...state, assignment: undefined };\n\n case AssignmentActionNames.SET_ASSIGNMENT_PAGE_STATUS:\n return { ...state, pageStatus: action.payload };\n\n default:\n return state;\n }\n};\n","import { Assignment } from 'types/assignment';\nimport { PageStatus } from 'types/assignmentList';\n\n/**\n * Action type names\n */\nexport enum AssignmentActionNames {\n SET_CURRENT_ASSIGNMENT = 'SET_CURRENT_ASSIGNMENT',\n UNSET_CURRENT_ASSIGNMENT = 'UNSET_CURRENT_ASSIGNMENT',\n SET_ASSIGNMENT_PAGE_STATUS = 'SET_ASSIGNMENT_PAGE_STATUS'\n}\n\nexport type SetCurrentAssignment = {\n type: AssignmentActionNames.SET_CURRENT_ASSIGNMENT;\n payload: Assignment;\n};\n\nexport type UnsetCurrentAssignment = { type: AssignmentActionNames.UNSET_CURRENT_ASSIGNMENT };\n\nexport type SetAssignmentPageStatus = {\n type: AssignmentActionNames.SET_ASSIGNMENT_PAGE_STATUS;\n payload: PageStatus;\n};\n\n/**\n * Action output typings aggregator\n */\nexport type AssignmentTypes = SetCurrentAssignment | SetAssignmentPageStatus | UnsetCurrentAssignment;\n","import { setLoginDataAction } from 'actions/authorization';\nimport { api } from 'api';\nimport { store } from 'config/store';\nimport { RootState } from 'reducers/rootReducer';\nimport { accountManager } from './accountManager';\nimport { cookie } from './accountManager/cookies';\n\nexport const isAuthenticated = (): boolean => {\n const state = store.getState() as RootState;\n const { accessToken: reduxAccessToken } = state.authReducer;\n const refreshToken = accountManager.cookie.refreshToken.get();\n const { accessToken, email } = accountManager.localStorage.credentials.get() ?? {};\n if (!refreshToken || !accessToken) {\n return false;\n }\n if (email && reduxAccessToken !== accessToken) {\n store.dispatch(setLoginDataAction({ accessToken, refreshToken, email }));\n }\n return true;\n};\n\nexport const clearFirebaseToken = async () => {\n const token = cookie.firebaseToken.get();\n if (token) {\n await api.firebaseDevice.remove(token);\n cookie.firebaseToken.remove();\n }\n};\n","export const TABLET_WIDTH_BREAKPOINT = 768;\n","/**\n * Action type names\n */\nexport enum MobileActionNames {\n SCREEN_RESIZE = 'SCREEN_RESIZE'\n}\n\nexport type CheckMobileScreen = { type: MobileActionNames.SCREEN_RESIZE; payload: boolean };\n\n/**\n * Action output typings aggregator\n */\nexport type MobileTypes = CheckMobileScreen;\n","import { MODAL_IDS } from 'types/modal';\n\n/**\n * Action type names\n */\nexport enum ModalActionNames {\n OPEN_MODAL = 'OPEN_MODAL',\n CLOSE_MODAL = 'CLOSE_MODAL'\n}\n\nexport type OpenModal = { type: ModalActionNames.OPEN_MODAL; payload: MODAL_IDS };\n\nexport type CloseModal = { type: ModalActionNames.CLOSE_MODAL };\n\n/**\n * Action output typings aggregator\n */\nexport type ModalTypes = OpenModal | CloseModal;\n","module.exports = \"data:image/png;base64,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\"","export enum AssignmentListStatusEnum {\n 'toAccept' = 1,\n 'inProgress',\n 'completed',\n 'forwarded'\n}\n\nexport type Pagination = {\n totalCount: number;\n pageSize: number;\n currentPage: number;\n totalPages: number;\n};\n\nexport type AssignmentsInfo = {\n totalPending: number;\n totalWorking: number;\n totalCompleted: number;\n};\n\nexport type PageStatus = {\n currentStatus: AssignmentListStatusEnum;\n assignmentsInfo: AssignmentsInfo;\n pagination: Pagination;\n};\n","import React, { FC, Suspense } from 'react';\nimport LoadingSpinner from 'components/loadingSpinner';\n\ntype Props = { children: JSX.Element };\n\nexport const SuspenseWrapper: FC = ({ children }) => (\n }>{children}\n);\n","import { createSelector } from 'reselect';\nimport { RootState } from 'reducers/rootReducer';\n\nconst getAssignment = (state: RootState) => state.assignmentReducer.assignment;\nconst getDetails = createSelector(getAssignment, (res) => res);\n\nconst getProviderEmail = createSelector(getAssignment, (res) => res?.fornitoreEmail);\n\nconst canForwardAssignment = createSelector(\n (state: RootState) => {\n const loggedEmail = state.authReducer.email;\n const providerEmail = state.assignmentReducer.assignment?.fornitoreEmail;\n return Boolean(loggedEmail && providerEmail && loggedEmail === providerEmail);\n },\n (res) => res\n);\n\nexport const assignmentSelector = { getDetails, getProviderEmail, canForwardAssignment };\n"],"sourceRoot":""}