{"version":3,"sources":["modules/core/constants.ts","modules/notification.js","modules/api.ts","modules/core/api.ts","modules/core/actions.ts","modules/core/localization.ts","modules/core/reducer.ts","modules/core/utility.ts","modules/core/components/DataTable.tsx","modules/core/index.ts","modules/archiviazione/constants.ts","modules/archiviazione/actions.ts","modules/archiviazione/api.ts","modules/archiviazione/localization.ts","modules/archiviazione/components/ArchivioMobile.tsx","modules/archiviazione/components/ArchiviMobile.tsx","modules/archiviazione/components/Archivi.tsx","modules/archiviazione/components/Filtro.tsx","modules/archiviazione/components/Archiviazione.tsx","modules/archiviazione/reducer.ts","modules/contributi/constants.ts","modules/contributi/actions.ts","modules/contributi/api.ts","modules/contributi/localization.ts","modules/contributi/components/InScadenza.tsx","modules/contributi/reducer.ts","modules/index.ts","modules/main/userManager.tsx","modules/main/components/AnonymousUser.tsx","modules/main/components/UserExpired.tsx","modules/main/components/PrivateRoute.tsx","modules/main/components/GoToLogin.tsx","modules/main/components/SignoutCallback.tsx","modules/main/components/SigninCallback.tsx","modules/main/components/AjaxLoader.tsx","modules/main/components/MenuUser.tsx","modules/main/components/HeaderMobile.tsx","modules/main/components/ToContributiInScadenza.tsx","modules/main/components/PageNotFound.tsx","modules/main/components/SelezionaAnagrafica.tsx","modules/main/components/AnagraficaRoute.tsx","modules/main/components/Routes.tsx","modules/main/components/PrincipaleMobile.tsx","modules/main/components/HeaderDefault.tsx","modules/main/components/PrincipaleDefault.tsx","modules/main/components/Principale.tsx","modules/main/components/App.tsx","registerServiceWorker.js","telemetry/TelemetryService.ts","telemetry/TelemetryProvider.jsx","index.tsx","store/configureStore.ts"],"names":["NAME","routes","main","mediaBreakpoints","mobile","tablet","computer","largeScreen","widescreen","NotificationComponent","title","message","level","autoDismiss","this","refs","notificationSystem","addNotification","ref","React","Component","notification","ReactDOM","render","createElement","document","getElementById","notify","query","url","state","data","requestCache","a","requestInit","method","headers","createHeaders","mode","cache","urlConParametri","createRequestUrl","fetch","response","ok","Error","statusText","json","responseJson","keys","Object","length","filter","key","undefined","map","join","addJson","Headers","append","core","auth","user","access_token","anagrafiche","anagrafica","idAnagrafica","loginSuccess","dispatch","type","value","push","logoutSuccess","loginError","userExpired","beginAjaxCall","endAjaxCall","cambiaLingua","lingua","strings","setLanguage","loadTenant","getState","process","tenantName","window","location","hostname","split","applicazioneApi","then","tenant","catch","error","loadAnagrafiche","refreshCache","cambiaAnagrafica","anagraficaSelezionata","italiano","header","logout","cambioDitta","dataTable","tornaSu","azioni","indietro","conferma","salva","aggiungi","ricerca","errori","datiNonValidi","home","selezionaDitta","inglese","initialState","ajaxCallsInProgress","lista","refreshAnagrafiche","loggedIn","expired","datetimeFormatter","locale","getLanguage","Date","toLocaleDateString","year","month","day","getIconName","fileName","element","pop","toLowerCase","name","color","decimalFormatter","Intl","NumberFormat","minimumFractionDigits","format","DataTable","props","onSelect","row","primaryKey","String","setState","selected","getPageElement","index","page","p","Menu","Item","as","active","onClick","pageChanged","getPageBreak","Icon","onPageChanged","renderPages","items","pageCount","Math","ceil","itemsCount","pageSize","renderFooter","columns","Table","Footer","Row","HeaderCell","colSpan","style","backgroundColor","position","scrollTo","width","renderCell","column","cell","formatter","Cell","collapsing","textAlign","renderRow","primaryKeyValue","className","positive","renderColumn","label","dataSource","striped","fixed","size","Header","Body","AppMedia","createMedia","breakpoints","constants","Media","MediaContextProvider","mediaStyles","createMediaStyle","archivi","loadArchiviazioneFiltro","archiviazioneApi","filtro","loadArchivi","result","downloadFile","idArchivio","azureBlobUrl","open","modulo","titolo","descrizione","tipoDocumento","anno","mese","mesi","numeroProtocollo","numeroProtocolloMobile","dataProtocollo","dataProtocolloMobile","sezionale","fileSelector","noImageTitolo","noImageDescrizione","imageOnly","ArchivioMobile","archivio","icona","Grid","Column","verticalAlign","link","onFileClick","id","fontWeight","Divider","ArchiviMobile","renderArchivio","renderPagination","Pagination","activePage","totalPages","onPageChange","firstItem","lastItem","renderBackOnTop","Button","basic","labelPosition","backOnTopText","_","Number","hidden","connector","connect","Archiviazione","createDataTableColumns","formatoDocumentoFormatter","item","icon","statePrecedente","greaterThanOrEqual","at","valoriFiltro","onFiltraClick","idTipoDocumento","renderDropdownTipiDocumento","options","tipiDocumento","t","text","Dropdown","placeholder","clearable","fluid","selection","onChange","onTipoDocumentoChanged","renderDropdownAnni","anniConArchivi","onAnnoChanged","renderDropdownMesi","find","disabled","onMeseChanged","primary","stackable","centered","Content","Subheader","ragioneSociale","requestContributiInScadenza","contributiApi","inScadenza","console","log","contributi","Contributi","renderContributi","bind","renderContributo","renderContributoBody","renderImportiContributo","renderImportoContributo","dividing","circular","inverted","contributo","segmentProps","tertiary","contributoSegment","segment","cloneElement","acronimo","Segment","canaleContributivo","scadenza","tipoScadenza","floated","importi","compact","definition","unstackable","importo","tipoImporto","reducers","incomingAction","action","archiviazione","results","count","LocalizedStrings","it","en","userManagerConfig","client_id","redirect_uri","protocol","port","post_logout_redirect_uri","response_type","response_mode","scope","authority","acr_values","filterProtocolClaims","loadUserInfo","revokeAccessTokenOnSignout","clockSkew","userManager","UserManager","Core","loginClick","imageSmall","href","Container","paddingTop","marginTop","Image","src","image","maxHeight","signinRedirect","UserExpired","logoutClick","signoutRedirect","events","addAccessTokenExpiring","addAccessTokenExpired","removeAccessTokenExpiring","removeAccessTokenExpired","Route","GoToLogin","loggedOut","signoutRedirectCallback","removeUser","to","gestioneErroreLogin","includes","alert","signinRedirectCallback","Dimmer","Loader","children","anagraficheCount","Array","isArray","profile","userName","email","renderCambiaAnagrafica","renderPopupTrigger","Portal","closeOnTriggerClick","openOnTriggerClick","trigger","right","top","stretched","relaxed","Label","onLinguaClick","Flag","onLogout","Fragment","logo","picture","attached","onMenuClick","alt","PageNotFound","utente","renderAzienda","tenantImageSmall","vertical","prevProps","Routes","path","exact","component","ToContributiInScadenza","InScadenza","Principale","contextRef","showSidebar","visible","handleSidebarHide","createRef","Sticky","context","HeaderMobile","Sidebar","Pushable","animation","onHide","Link","Pusher","Ref","innerRef","HeaderDefault","greaterThan","SignoutCallback","SigninCallback","isLocalhost","Boolean","match","registerValidSW","swUrl","navigator","serviceWorker","register","registration","onupdatefound","installingWorker","installing","onstatechange","controller","ai","reactPlugin","appInsights","initialize","instrumentationKey","browserHistory","ReactPlugin","ApplicationInsights","config","maxBatchInterval","enableAutoRouteTracking","enableCorsCorrelation","disableFetchTracking","disableCorrelationHeaders","isCookieUseDisabled","extensions","extensionConfig","identifier","history","loadAppInsights","addTelemetryInitializer","envelope","tags","createTelemetryService","TelemetryProvider","initialized","AppInsightsInstrumentationKey","withRouter","withAITracking","baseUrl","getElementsByTagName","getAttribute","createBrowserHistory","basename","store","middleware","thunk","routerMiddleware","rootReducer","combineReducers","router","connectRouter","enhancers","windowIfDefined","__REDUX_DEVTOOLS_EXTENSION__","createStore","compose","applyMiddleware","configureStore","App","URL","origin","addEventListener","status","get","indexOf","ready","unregister","reload","checkValidServiceWorker","registerServiceWorker"],"mappings":"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","file":"static/js/main.baf8e9f0.chunk.js","sourcesContent":["export const NAME = \"core\";\r\n\r\nexport const routes = {\r\n main: '/'\r\n};\r\n\r\nexport const mediaBreakpoints = {\r\n mobile: 320,\r\n tablet: 768,\r\n computer: 992,\r\n largeScreen: 1200,\r\n widescreen: 1920\r\n};","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport NotificationSystem from 'react-notification-system';\r\n\r\nclass NotificationComponent extends React.Component {\r\n notify(title, message, level, autoDismiss = 5) {\r\n this.refs.notificationSystem.addNotification({\r\n title,\r\n message,\r\n level,\r\n autoDismiss,\r\n });\r\n }\r\n\r\n render() {\r\n return ();\r\n }\r\n}\r\n\r\nclass Notification {\r\n success(message, title) {\r\n const notification = ReactDOM.render(React.createElement(NotificationComponent),\r\n document.getElementById('notification'));\r\n notification.notify(title, message, 'success');\r\n }\r\n\r\n error(message, title) {\r\n const notification = ReactDOM.render(React.createElement(NotificationComponent),\r\n document.getElementById('notification'));\r\n notification.notify(title, message, 'error', 7);\r\n }\r\n\r\n warning(message, title) {\r\n const notification = ReactDOM.render(React.createElement(NotificationComponent),\r\n document.getElementById('notification'));\r\n notification.notify(title, message, 'warning');\r\n }\r\n}\r\n\r\nconst notification = new Notification();\r\nexport default notification;\r\n","import { ApplicationState } from \".\";\r\n\r\nexport async function query(\r\n url: string,\r\n state: ApplicationState,\r\n data: any,\r\n requestCache: RequestCache\r\n) : Promise {\r\n var requestInit: RequestInit = {\r\n method: 'GET',\r\n headers: createHeaders(state, false),\r\n mode: 'cors',\r\n cache: requestCache\r\n };\r\n\r\n const urlConParametri = createRequestUrl(url, data);\r\n const response: Response = await fetch(urlConParametri, requestInit);\r\n \r\n if (!response.ok) {\r\n throw new Error(`Si è verificato un errore ${response.statusText}`);\r\n }\r\n \r\n const responseJson = await response.json();\r\n return responseJson;\r\n}\r\n\r\nexport async function command(\r\n url: string,\r\n state: ApplicationState,\r\n data: string | FormData\r\n): Promise {\r\n var requestInit: RequestInit = {\r\n method: 'POST',\r\n headers: createHeaders(state, typeof data === 'string'),\r\n mode: 'cors',\r\n body: data,\r\n };\r\n\r\n const response = await fetch(url, requestInit);\r\n\r\n if (!response.ok) {\r\n throw new Error(`Si è verificato un errore ${response.statusText}`);\r\n }\r\n \r\n const responseJson = await response.json();\r\n return responseJson;\r\n}\r\n\r\nfunction createRequestUrl(url: string, data: any): string {\r\n const keys = Object.keys(data);\r\n if (keys.length === 0) return url;\r\n\r\n var queryString = keys\r\n .filter((key: string): boolean => data[key] !== undefined)\r\n .map(key => key + '=' + data[key])\r\n .join('&');\r\n\r\n return url + \"?\" + queryString;\r\n}\r\n\r\nfunction createHeaders(state: ApplicationState, addJson: boolean) : Headers {\r\n var headers = new Headers();\r\n if (addJson) {\r\n headers.append(\"Content-Type\", \"application/json\");\r\n }\r\n\r\n if (state.core.auth.user !== undefined) {\r\n headers.append(\"Authorization\", \"Bearer \" + state.core.auth.user.access_token);\r\n }\r\n if (state.core.anagrafiche.anagrafica !== undefined) {\r\n headers.append(\"NEiTAnagrafica\", state.core.anagrafiche.anagrafica.idAnagrafica);\r\n }\r\n\r\n return headers;\r\n}","import { ApplicationState } from \"..\";\r\nimport { query } from '../api';\r\nimport { Anagrafica, Tenant } from \"./models\";\r\n\r\nexport const getTenant = (\r\n state: ApplicationState\r\n): Promise => {\r\n const url: string = process.env.REACT_APP_TENANT_INFO as string;\r\n const splittedLocation = window.location.hostname.split(\".\");\r\n const tenantName = splittedLocation[0];\r\n \r\n return query(url, state, { tenantName }, \"default\");\r\n}\r\n\r\nexport const getAnagrafiche = (\r\n state: ApplicationState,\r\n refreshCache: boolean\r\n): Promise => {\r\n const url: string = '/api/anagrafiche';\r\n const requestCache: RequestCache = refreshCache ? \"reload\" : \"default\";\r\n \r\n return query(url, state, { }, requestCache);\r\n}","import { User } from 'oidc-client';\r\nimport { ApplicationState, NEiTThunk, strings } from '..';\r\nimport notification from '../notification';\r\nimport { CoreActions } from './actionTypes';\r\nimport * as applicazioneApi from './api';\r\nimport { Anagrafica } from './models';\r\nimport { push, CallHistoryMethodAction } from 'connected-react-router'\r\n\r\ntype AuthenticationAction = \r\n CoreActions | \r\n CallHistoryMethodAction\r\n\r\nexport const loginSuccess = (user: User): NEiTThunk => (dispatch) => {\r\n dispatch({ type: 'core/LOGIN_SUCCESS', value: user });\r\n dispatch(push('/'));\r\n}\r\n\r\nexport const logoutSuccess = (): NEiTThunk => (dispatch) => { \r\n dispatch({ type: 'core/LOGOUT_SUCCESS' });\r\n dispatch(push('/'));\r\n}\r\n\r\nexport const loginError = () => ({ type: 'core/LOGIN_ERROR' })\r\nexport const userExpired = () => ({ type: 'core/USER_EXPIRED' })\r\n\r\nexport const beginAjaxCall = (): CoreActions => ({ type: 'core/BEGIN_AJAX_CALL' })\r\nexport const endAjaxCall = (): CoreActions => ({ type: 'core/END_AJAX_CALL' })\r\n\r\nexport const cambiaLingua = (lingua: 'it' | 'en'): NEiTThunk => (dispatch) => {\r\n strings.setLanguage(lingua);\r\n\r\n dispatch({ type: 'core/CAMBIA_LINGUA' , value: lingua });\r\n}\r\n\r\nexport const loadTenant = (): NEiTThunk => (dispatch, getState) => {\r\n dispatch({ type: 'core/BEGIN_AJAX_CALL' });\r\n \r\n const state: ApplicationState = getState();\r\n\r\n applicazioneApi.getTenant(state)\r\n .then(tenant => {\r\n dispatch({ type: 'core/LOAD_TENANT', value: tenant });\r\n dispatch({ type: 'core/END_AJAX_CALL' });\r\n })\r\n .catch(error => {\r\n dispatch({ type: 'core/END_AJAX_CALL' });\r\n notification.error(error.message);\r\n });\r\n}\r\n\r\nexport const loadAnagrafiche = (): NEiTThunk => (dispatch, getState) => {\r\n dispatch({ type: 'core/BEGIN_AJAX_CALL' });\r\n\r\n const state: ApplicationState = getState();\r\n const refreshCache: boolean = false;\r\n\r\n applicazioneApi.getAnagrafiche(state, refreshCache)\r\n .then(anagrafiche => {\r\n dispatch({ type: 'core/LOAD_ANAGRAFICHE' , value: anagrafiche });\r\n dispatch({ type: 'core/END_AJAX_CALL' });\r\n })\r\n .catch(error => {\r\n dispatch({ type: 'core/END_AJAX_CALL' });\r\n notification.error(error.message);\r\n });\r\n}\r\n\r\nexport const cambiaAnagrafica = (): NEiTThunk => (dispatch) => {\r\n dispatch({ type: 'core/MODIFICA_ANAGRAFICA' });\r\n}\r\n\r\nexport const anagraficaSelezionata = (anagrafica: Anagrafica) => ({ type: 'core/ANAGRAFICA_SELEZIONATA', value: anagrafica })","export const italiano = {\r\n header: {\r\n logout: \"Esci\",\r\n lingua: \"Lingua:\",\r\n cambioDitta: \"Cambia ditta\",\r\n },\r\n dataTable: {\r\n tornaSu: 'Torna su'\r\n },\r\n azioni: {\r\n indietro: 'Indietro',\r\n conferma: 'Conferma',\r\n salva: 'Salva',\r\n aggiungi: 'Aggiungi',\r\n ricerca: 'Ricerca'\r\n },\r\n errori: {\r\n datiNonValidi: 'Dati non validi'\r\n },\r\n home: 'Che cosa vuoi fare?',\r\n selezionaDitta: \"Seleziona la ditta:\",\r\n}\r\n\r\nexport const inglese = {\r\n header: {\r\n logout: \"Log out\",\r\n lingua: \"Language:\",\r\n cambioDitta: \"Change company\",\r\n }, \r\n dataTable: {\r\n tornaSu: 'Up'\r\n },\r\n azioni: {\r\n indietro: 'Indietro',\r\n conferma: 'Conferma',\r\n salva: 'Salva',\r\n aggiungi: 'Aggiungi',\r\n ricerca: 'Ricerca'\r\n },\r\n errori: {\r\n datiNonValidi: 'Dati non validi'\r\n },\r\n home: 'Che cosa vuoi fare?',\r\n selezionaDitta: \"Select the company:\"\r\n}","import { Action } from 'redux';\r\nimport { CoreActions } from './actionTypes';\r\nimport { CoreState } from './models';\r\n\r\nconst initialState: CoreState = {\r\n ajaxCallsInProgress: 0,\r\n lingua: \"it\",\r\n tenant: undefined,\r\n anagrafiche: { lista: [], anagrafica: undefined, refreshAnagrafiche: false },\r\n auth: { \r\n loggedIn: false, \r\n expired: false, \r\n user: undefined \r\n },\r\n};\r\n\r\nexport default (\r\n state: CoreState = initialState, \r\n incomingAction: Action\r\n): CoreState => {\r\n const action = incomingAction as CoreActions;\r\n switch (action.type) {\r\n case 'core/BEGIN_AJAX_CALL': \r\n return {\r\n ...state,\r\n ajaxCallsInProgress: state.ajaxCallsInProgress + 1\r\n };\r\n case 'core/END_AJAX_CALL':\r\n return {\r\n ...state,\r\n ajaxCallsInProgress: state.ajaxCallsInProgress - 1\r\n };\r\n case 'core/CAMBIA_LINGUA':\r\n return {\r\n ...state,\r\n lingua: action.value\r\n };\r\n\r\n case 'core/LOAD_TENANT':\r\n return {\r\n ...state,\r\n tenant: action.value\r\n };\r\n case 'core/LOAD_ANAGRAFICHE':\r\n return {\r\n ...state,\r\n anagrafiche: {\r\n ...state.anagrafiche,\r\n lista: action.value\r\n }\r\n };\r\n case 'core/ANAGRAFICA_SELEZIONATA':\r\n return {\r\n ...state,\r\n anagrafiche: {\r\n ...state.anagrafiche,\r\n anagrafica: action.value\r\n }\r\n };\r\n case 'core/MODIFICA_ANAGRAFICA':\r\n return {\r\n ...state,\r\n anagrafiche: {\r\n ...state.anagrafiche,\r\n anagrafica: undefined\r\n }\r\n };\r\n case 'core/LOGIN_SUCCESS':\r\n return {\r\n ...state,\r\n auth: {\r\n user: action.value,\r\n loggedIn: true,\r\n expired: action.value.expired\r\n }\r\n };\r\n case 'core/LOGIN_ERROR':\r\n case 'core/LOGOUT_SUCCESS':\r\n return {\r\n ...state,\r\n auth: {\r\n user: undefined,\r\n loggedIn: false,\r\n expired: false,\r\n }\r\n };\r\n case 'core/USER_EXPIRED':\r\n return {\r\n ...state,\r\n auth: {\r\n ...state.auth,\r\n expired: true,\r\n }\r\n };\r\n }\r\n\r\n return state;\r\n};","import { strings } from '..';\r\nimport { IconValues } from './models';\r\n\r\nexport function datetimeFormatter(value: string | number | Date) {\r\n const locale = strings.getLanguage();\r\n const options: Intl.DateTimeFormatOptions = { \r\n year: 'numeric', \r\n month: '2-digit', \r\n day: '2-digit' \r\n };\r\n\r\n return new Date(value).toLocaleDateString(locale, options);\r\n}\r\n\r\nexport function getIconName(fileName: string): IconValues {\r\n if (fileName === undefined) {\r\n throw new Error(\"fileName non può essere undefined\");\r\n }\r\n\r\n const splitted = fileName.split('.');\r\n const element = splitted.pop();\r\n const extension = element === undefined ? '' : element.toLowerCase();\r\n\r\n switch (extension) {\r\n case \"pdf\": return { name: \"file pdf outline\", color: \"red\" };\r\n\r\n case \"doc\": return { name: \"file word outline\", color: \"blue\" };\r\n case \"docx\": return { name: \"file word outline\", color: \"blue\" };\r\n\r\n case \"xls\": return { name: \"file excel outline\", color: \"green\" };\r\n case \"xlsx\": return { name: \"file excel outline\", color: \"green\" };\r\n \r\n case \"msg\": return { name: \"mail outline\", color: \"green\" };\r\n\r\n case \"txt\": return { name: \"file alternate outline\", color: \"grey\" };\r\n\r\n case \"jpg\": return { name: \"file image outline\", color: \"yellow\" };\r\n case \"jpeg\": return { name: \"file image outline\", color: \"yellow\" };\r\n case \"png\": return { name: \"file image outline\", color: \"yellow\" };\r\n case \"bmp\": return { name: \"file image outline\", color: \"yellow\" };\r\n\r\n default: return { name: \"file outline\", color: \"black\" };\r\n }\r\n}\r\n\r\nexport function decimalFormatter(value: number) { \r\n const locale = strings.getLanguage();\r\n return Intl.NumberFormat(locale, { minimumFractionDigits: 2 }).format(value)\r\n}","import React, { Component } from 'react';\r\nimport { Icon, Menu, SemanticWIDTHS, Table } from 'semantic-ui-react';\r\nimport { strings } from '../..';\r\n\r\nexport interface Column {\r\n key: keyof T,\r\n label: string,\r\n width?: SemanticWIDTHS,\r\n collapsing?: boolean,\r\n textAlign?: 'center' | 'left' | 'right',\r\n formatter?: (value: any, item: T) => string | JSX.Element\r\n}\r\n\r\ntype DataTableProps = {\r\n dataSource: ReadonlyArray,\r\n primaryKey: keyof T,\r\n columns: ReadonlyArray>,\r\n page: number,\r\n itemsCount: number,\r\n pageSize: number,\r\n onSelect?: (row: T) => void,\r\n onPageChanged: (page: number) => void\r\n}\r\n\r\ntype DataTableState = {\r\n selected: string,\r\n}\r\n\r\nexport class DataTable extends Component, DataTableState> {\r\n constructor(props: DataTableProps) {\r\n super(props);\r\n\r\n this.state = {\r\n selected: ''\r\n };\r\n }\r\n\r\n render() {\r\n const { columns, dataSource } = this.props;\r\n return (\r\n \r\n \r\n \r\n {columns.map(this.renderColumn)}\r\n \r\n \r\n \r\n {dataSource && dataSource.map(this.renderRow)}\r\n \r\n {this.renderFooter()}\r\n
);\r\n }\r\n\r\n onSelect = (row: T) => {\r\n const { primaryKey, onSelect } = this.props;\r\n const key = String(row[primaryKey]);\r\n\r\n this.setState({ selected: key });\r\n\r\n if (onSelect) {\r\n onSelect(row);\r\n }\r\n }\r\n\r\n getPageElement = (index: number) => {\r\n const { page } = this.props;\r\n const p = index + 1;\r\n\r\n return (\r\n { this.pageChanged(p); }}>{p}\r\n );\r\n }\r\n\r\n getPageBreak = () => {\r\n return ();\r\n }\r\n\r\n pageChanged = (page: number) => {\r\n const { onPageChanged } = this.props;\r\n\r\n if (onPageChanged) {\r\n onPageChanged(page);\r\n }\r\n }\r\n\r\n renderPages = () => {\r\n const items = [];\r\n const pageCount = Math.ceil(this.props.itemsCount / this.props.pageSize);\r\n\r\n for (let index = 0; index < pageCount; index++) {\r\n items.push(this.getPageElement(index));\r\n }\r\n\r\n return (\r\n \r\n {items}\r\n \r\n );\r\n }\r\n\r\n renderFooter = () => {\r\n const { itemsCount, pageSize, columns } = this.props;\r\n return (\r\n \r\n \r\n \r\n \r\n {itemsCount > pageSize && this.renderPages()}\r\n \r\n window.scrollTo(0, 0)} style={{ width: 180 }}>\r\n \r\n {strings.core.dataTable.tornaSu}\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n\r\n renderCell = (row: T, column: Column) => {\r\n let cell: string | JSX.Element = String(row[column.key]);\r\n if (column.formatter !== undefined) {\r\n cell = column.formatter!(row[column.key], row);\r\n }\r\n\r\n return (\r\n \r\n {cell}\r\n \r\n );\r\n }\r\n\r\n renderRow = (row: T, index: number) => {\r\n const { columns, primaryKey } = this.props;\r\n const primaryKeyValue = String(row[primaryKey]);\r\n return (\r\n this.onSelect(row)}\r\n key={index}>\r\n {columns.map(column => this.renderCell(row, column))}\r\n );\r\n }\r\n\r\n renderColumn = (column: Column, index: number) => {\r\n return (\r\n \r\n {column.label}\r\n \r\n );\r\n }\r\n}\r\n","import * as constants from './constants'\r\nimport * as actions from './actions'\r\nimport * as localization from './localization'\r\nimport { createMedia } from '@artsy/fresnel'\r\n\r\nexport { actions }\r\nexport { localization }\r\nexport { constants }\r\n\r\nexport { default as reducer } from './reducer'\r\n\r\nexport * from './utility'\r\nexport * from './actionTypes'\r\nexport * from './models'\r\nexport * from './components/DataTable'\r\n\r\nconst AppMedia = createMedia({\r\n breakpoints: constants.mediaBreakpoints\r\n});\r\nconst { Media, MediaContextProvider } = AppMedia;\r\n\r\nexport { Media, MediaContextProvider}; \r\nexport const mediaStyles = AppMedia.createMediaStyle();","export const NAME = \"archivi\";\r\n\r\nexport const routes = {\r\n main: '/archivi',\r\n archivi: '/archivi',\r\n}","import { ApplicationState, NEiTThunk } from '..';\r\nimport { BeginAjaxCallAction, EndAjaxCallAction } from '../core/actionTypes';\r\nimport notification from '../notification';\r\nimport { ArchiviActions } from './actionTypes';\r\nimport * as archiviazioneApi from './api';\r\nimport { FiltroArchivi } from './models';\r\n\r\ntype Actions = \r\n ArchiviActions |\r\n BeginAjaxCallAction |\r\n EndAjaxCallAction;\r\n\r\nexport const loadArchiviazioneFiltro = (): NEiTThunk => (dispatch, getState) => {\r\n dispatch({ type: 'core/BEGIN_AJAX_CALL' });\r\n\r\n const state: ApplicationState = getState();\r\n const refreshCache = state.archivi.filtro.refreshCache;\r\n\r\n archiviazioneApi.getFiltroArchivi(state, refreshCache)\r\n .then(filtro => {\r\n dispatch({ type: 'archivi/LOAD_FILTRO', value: filtro });\r\n dispatch({ type: 'core/END_AJAX_CALL' });\r\n })\r\n .catch(error => {\r\n dispatch({ type: 'core/END_AJAX_CALL' });\r\n notification.error(error.message);\r\n })\r\n}\r\n\r\nexport const loadArchivi = (\r\n filtro: FiltroArchivi\r\n): NEiTThunk => (dispatch, getState) => {\r\n dispatch({ type: 'core/BEGIN_AJAX_CALL' });\r\n \r\n const state: ApplicationState = getState();\r\n const refreshCache = state.archivi.archivi.refreshCache;\r\n\r\n archiviazioneApi.getArchivi(state, filtro, refreshCache)\r\n .then(result => {\r\n dispatch({ type: 'archivi/LOAD_ARCHIVI', value: result, page: filtro.page });\r\n dispatch({ type: 'core/END_AJAX_CALL' });\r\n })\r\n .catch(error => {\r\n dispatch({ type: 'core/END_AJAX_CALL' });\r\n notification.error(error.message);\r\n });\r\n}\r\n\r\nexport const downloadFile = (\r\n idArchivio: string\r\n): NEiTThunk => (dispatch, getState) => {\r\n dispatch({ type: 'core/BEGIN_AJAX_CALL' });\r\n \r\n const state: ApplicationState = getState();\r\n\r\n archiviazioneApi.getUrlArchivio(state, idArchivio)\r\n .then(azureBlobUrl => {\r\n window.open(azureBlobUrl.url);\r\n\r\n dispatch({ type: 'core/END_AJAX_CALL' });\r\n })\r\n .catch(error => {\r\n dispatch({ type: 'core/END_AJAX_CALL' });\r\n notification.error(error.message);\r\n });\r\n}","import { ValoriFiltroArchivi, Archivio, FiltroArchivi, UrlArchivio } from './models';\r\nimport { query } from '../api';\r\nimport { ApplicationState } from '..';\r\nimport { PageResult } from '../core';\r\n\r\nexport const getFiltroArchivi = (\r\n state: ApplicationState,\r\n refreshCache: boolean\r\n): Promise => {\r\n const url: string = 'api/archivi/valoriFiltro';\r\n const requestCache: RequestCache = refreshCache ? \"reload\" : \"default\";\r\n\r\n return query(url, state, {}, requestCache);\r\n}\r\n\r\nexport const getArchivi = (\r\n state: ApplicationState,\r\n filtro: FiltroArchivi,\r\n refreshCache: boolean\r\n): Promise> => {\r\n const url = 'api/archivi';\r\n const requestCache: RequestCache = refreshCache ? \"reload\" : \"default\";\r\n\r\n return query>(url, state, filtro, requestCache);\r\n}\r\n\r\nexport const getUrlArchivio = (\r\n state: ApplicationState,\r\n idArchivio: string\r\n): Promise => {\r\n const url = 'api/archivi/urlarchivio';\r\n const data = { idArchivio };\r\n\r\n return query(url, state, data, 'default');\r\n}","export const italiano = {\r\n modulo: 'Archiviazione',\r\n archivi: {\r\n titolo: 'Archivi',\r\n descrizione: 'Visualizza i tuoi archivi',\r\n },\r\n filtro: {\r\n ricerca: \"Ricerca\",\r\n tipoDocumento: \"Seleziona un tipo documento\",\r\n anno: \"Anno\",\r\n mese: \"Mese\",\r\n mesi: [\r\n \"Gennaio\",\r\n \"Febbraio\",\r\n \"Marzo\",\r\n \"Aprile\",\r\n \"Maggio\",\r\n \"Giugno\",\r\n \"Luglio\",\r\n \"Agosto\",\r\n \"Settembre\",\r\n \"Ottobre\",\r\n \"Novembre\",\r\n \"Dicembre\"\r\n ]\r\n },\r\n dataTable: {\r\n tipoDocumento: \"Tipo documento\",\r\n numeroProtocollo: \"Num. prot.\",\r\n numeroProtocolloMobile: \"Numero:\",\r\n dataProtocollo: \"Data prot.\",\r\n dataProtocolloMobile: \"Data:\",\r\n sezionale: \"Sez.\"\r\n },\r\n fileSelector: {\r\n titolo: 'Aggiungi delle immagini',\r\n noImageTitolo: 'Nessuna immagine',\r\n noImageDescrizione: 'Per aggiungere delle immagini premi il tasto +',\r\n imageOnly: 'Verranno accettati file solo di tipo immagine',\r\n }\r\n}\r\n\r\nexport const inglese = {\r\n modulo: 'Archiviazione',\r\n archivi: {\r\n titolo: '',\r\n descrizione: '',\r\n },\r\n filtro: {\r\n ricerca: \"Search\",\r\n tipoDocumento: \"Select a document type\",\r\n anno: \"Year\",\r\n mese: \"Month\",\r\n mesi: [\r\n \"January\",\r\n \"February\",\r\n \"March\",\r\n \"April\",\r\n \"May\",\r\n \"June\",\r\n \"July\",\r\n \"August\",\r\n \"September\",\r\n \"October\",\r\n \"November\",\r\n \"December\"\r\n ]\r\n },\r\n dataTable: {\r\n tipoDocumento: \"Document type\",\r\n numeroProtocollo: \"Protocol\",\r\n numeroProtocolloMobile: \"Protocol:\",\r\n dataProtocollo: \"Date\",\r\n dataProtocolloMobile: \"Date:\",\r\n sezionale: \"Sez.\"\r\n },\r\n fileSelector: {\r\n titolo: 'Aggiungi delle immagini',\r\n noImageTitolo: 'Nessuna immagine',\r\n noImageDescrizione: 'Per aggiungere delle immagini premi il tasto +',\r\n imageOnly: 'Verranno accettati file solo di tipo immagine',\r\n }\r\n}","import React, { Component } from 'react';\r\nimport { Icon, Grid, Divider } from 'semantic-ui-react';\r\nimport { strings } from '../..';\r\nimport { datetimeFormatter, getIconName } from '../../core';\r\nimport { Archivio } from '../models';\r\n\r\ntype ArchivioMobileProps = {\r\n archivio: Archivio,\r\n onFileClick: (e: any, data: any) => void\r\n}\r\n\r\nexport default class ArchivioMobile extends Component {\r\n render () {\r\n const { idArchivio, numeroProtocollo, dataProtocollo, fileName, tipoDocumento } = this.props.archivio;\r\n const icona = getIconName(fileName);\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n

{tipoDocumento}

\r\n \r\n \r\n {strings.archivi.dataTable.numeroProtocolloMobile}{' '}\r\n {numeroProtocollo}\r\n \r\n \r\n {strings.archivi.dataTable.dataProtocolloMobile}{' '}\r\n {datetimeFormatter(dataProtocollo)}\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n );\r\n } \r\n}","import React from 'react';\r\nimport { Icon, Divider, Pagination, Button, PaginationProps } from 'semantic-ui-react';\r\nimport ArchivioMobile from './ArchivioMobile';\r\nimport { Archivio } from '../models';\r\n\r\ntype ArchivioMobileProps = {\r\n archivi: ReadonlyArray,\r\n page: number,\r\n itemsCount: number,\r\n pageSize: number,\r\n backOnTopText: string,\r\n onPageChanged: (page: number) => void\r\n onFileClick: (e: any, data: any) => void\r\n}\r\n\r\nexport default class ArchiviMobile extends React.Component {\r\n\r\n render() {\r\n const { archivi } = this.props;\r\n return (\r\n
\r\n {archivi.map(this.renderArchivio)}\r\n {archivi.length > 0 && this.renderPagination()}\r\n
\r\n \r\n );\r\n }\r\n \r\n renderArchivio = (archivio: Archivio) => {\r\n return ;\r\n }\r\n\r\n renderPagination = () => {\r\n const { page, itemsCount, pageSize } = this.props;\r\n const pageCount = Math.ceil(itemsCount / pageSize);\r\n return (\r\n \r\n );\r\n }\r\n\r\n renderBackOnTop = () => {\r\n return (\r\n \r\n );\r\n }\r\n\r\n onPageChange = (_: React.MouseEvent, data: PaginationProps) => {\r\n const { activePage } = data;\r\n if (this.props.onPageChanged) {\r\n this.props.onPageChanged(Number(activePage));\r\n }\r\n }\r\n}","import React from 'react';\r\nimport { connect, ConnectedProps } from 'react-redux';\r\nimport { Icon } from 'semantic-ui-react';\r\nimport * as Archiviazione from '../';\r\nimport { ApplicationState, strings } from '../..';\r\nimport { Column, DataTable, getIconName } from '../../core';\r\nimport { datetimeFormatter } from '../../core/utility';\r\nimport { Archivio } from '../models';\r\nimport ArchiviMobile from './ArchiviMobile';\r\nimport { mediaStyles, MediaContextProvider, Media } from '../../core'; \r\n\r\nconst connector = connect(\r\n (state: ApplicationState) => ({ \r\n archivi: state.archivi.archivi, \r\n lingua: state.core.lingua,\r\n }),\r\n Archiviazione.actions\r\n)\r\ntype PropsFromRedux = ConnectedProps\r\n\r\ntype ArchiviProps = PropsFromRedux\r\ntype ArchiviState = { page: number }\r\n\r\nclass Archivi extends React.Component {\r\n constructor(props: ArchiviProps) {\r\n super(props);\r\n\r\n this.state = {\r\n page: 1\r\n };\r\n }\r\n\r\n componentDidUpdate(_: Readonly, statePrecedente: Readonly) {\r\n if (this.state.page !== statePrecedente.page) {\r\n this.props.loadArchivi(this.state);\r\n\r\n window.scrollTo(0, 0);\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n dataSource={this.props.archivi.lista}\r\n columns={this.createDataTableColumns()}\r\n page={this.state.page}\r\n itemsCount={this.props.archivi.itemsCount}\r\n pageSize={this.props.archivi.pageSize}\r\n primaryKey=\"idArchivio\"\r\n onPageChanged={this.onPageChanged}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n }\r\n\r\n createDataTableColumns = (): ReadonlyArray> => {\r\n return [\r\n { key: 'tipoDocumento', label: strings.archivi.dataTable.tipoDocumento, width: 8 }, \r\n { key: 'numeroProtocollo', label: strings.archivi.dataTable.numeroProtocollo }, \r\n { key: 'dataProtocollo', label: strings.archivi.dataTable.dataProtocollo, formatter: datetimeFormatter }, \r\n { key: 'sezionale', label: strings.archivi.dataTable.sezionale },\r\n { key: 'fileName', label: '', formatter: this.formatoDocumentoFormatter, width: 1 }\r\n ];\r\n }\r\n\r\n formatoDocumentoFormatter = (value: any, item: Archivio) => {\r\n const icon = getIconName(String(value));\r\n\r\n return (\r\n \r\n );\r\n }\r\n\r\n onFileClick = (_: any, data: any) => {\r\n this.props.downloadFile(String(data.id));\r\n }\r\n\r\n onPageChanged = (page: number) => {\r\n this.setState({ page });\r\n }\r\n}\r\n\r\nexport default connector(Archivi);","import React from 'react';\r\nimport { connect, ConnectedProps } from 'react-redux';\r\nimport { Grid, Dropdown, Button, Icon, DropdownProps, DropdownItemProps } from 'semantic-ui-react';\r\nimport { ApplicationState, strings } from '../..';\r\nimport * as Archiviazione from '../';\r\nimport { FiltroArchivi } from '../models';\r\n\r\nconst connector = connect(\r\n (state: ApplicationState) => ({ \r\n valoriFiltro: state.archivi.filtro, \r\n lingua: state.core.lingua \r\n }),\r\n Archiviazione.actions\r\n)\r\ntype PropsFromRedux = ConnectedProps\r\n\r\ntype FiltroProps = PropsFromRedux\r\n\r\ntype FiltroState = {\r\n idTipoDocumento: string,\r\n anno: string,\r\n mese: string\r\n}\r\n\r\nclass Filtro extends React.Component {\r\n constructor(props: FiltroProps) {\r\n super(props);\r\n\r\n this.state = { \r\n idTipoDocumento: '',\r\n anno: '',\r\n mese: ''\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.props.loadArchiviazioneFiltro();\r\n }\r\n\r\n render() {\r\n return ( \r\n \r\n \r\n {this.renderDropdownTipiDocumento()}\r\n \r\n \r\n {this.renderDropdownAnni()}\r\n \r\n \r\n {this.renderDropdownMesi()}\r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n\r\n onFiltraClick = () => {\r\n const filtro: FiltroArchivi = \r\n {\r\n idTipoDocumento: this.state.idTipoDocumento === '' ? undefined : this.state.idTipoDocumento,\r\n anno: this.state.anno === '' ? undefined : Number(this.state.anno),\r\n mese: this.state.mese === '' ? undefined : Number(this.state.mese),\r\n page: 1 \r\n };\r\n this.props.loadArchivi(filtro);\r\n }\r\n\r\n renderDropdownTipiDocumento = () => {\r\n const options = this.props.valoriFiltro.tipiDocumento\r\n .map(t => ({ key: t.idTipoDocumento, value: t.idTipoDocumento, text: t.tipoDocumento }));\r\n \r\n return (\r\n \r\n );\r\n }\r\n\r\n renderDropdownAnni = () => {\r\n const options = this.props.valoriFiltro.anniConArchivi\r\n .map(a => ({ key: a.anno, value: a.anno, text: a.anno }));\r\n \r\n return (\r\n \r\n );\r\n }\r\n\r\n renderDropdownMesi = () => {\r\n let options: DropdownItemProps[] = []; \r\n if (this.state.anno !== '') {\r\n const annoSelezionato = this.props.valoriFiltro.anniConArchivi.find(a => a.anno === Number(this.state.anno));\r\n options = annoSelezionato!.mesi\r\n .map(mese => ({ key: mese, value: mese, text: strings.archivi.filtro.mesi[mese - 1] }));\r\n }\r\n \r\n return (\r\n \r\n );\r\n }\r\n\r\n onTipoDocumentoChanged = (_: React.SyntheticEvent, data: DropdownProps) => {\r\n this.setState({ idTipoDocumento: String(data.value) });\r\n }\r\n\r\n onAnnoChanged = (_: React.SyntheticEvent, data: DropdownProps) => {\r\n const mese = data.value === '' ? '' : this.state.mese;\r\n\r\n this.setState({ anno: String(data.value), mese });\r\n }\r\n\r\n onMeseChanged = (_: React.SyntheticEvent, data: DropdownProps) => {\r\n this.setState({ mese: String(data.value) });\r\n }\r\n}\r\n\r\nexport default connector(Filtro);","import React from 'react';\r\nimport { connect, ConnectedProps } from 'react-redux';\r\nimport { Grid, Icon, Header } from 'semantic-ui-react';\r\nimport Archivi from './Archivi';\r\nimport Filtro from './Filtro';\r\nimport { ApplicationState } from '../..';\r\n\r\nconst connector = connect(\r\n (state: ApplicationState) => ({\r\n anagrafica: state.core.anagrafiche.anagrafica!,\r\n })\r\n)\r\ntype PropsFromRedux = ConnectedProps\r\n\r\ntype ArchiviazioneProps = PropsFromRedux\r\n\r\nclass Archiviazione extends React.Component {\r\n render() {\r\n const { anagrafica } = this.props;\r\n return ( \r\n \r\n \r\n
\r\n \r\n \r\n Archiviazione\r\n {anagrafica.ragioneSociale}\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default connector(Archiviazione);","import { Action } from 'redux';\r\nimport { ArchiviState } from './models';\r\nimport { ArchiviActions } from './actionTypes';\r\n\r\nconst initialState: ArchiviState = {\r\n filtro: { tipiDocumento: [], anniConArchivi: [], refreshCache: true },\r\n archivi: { lista: [], page: 1, pageSize: 100, itemsCount: 0, refreshCache: true }\r\n}\r\n\r\nexport default (\r\n state: ArchiviState = initialState, \r\n incomingAction: Action\r\n): ArchiviState => {\r\n \r\n const action = incomingAction as ArchiviActions;\r\n switch (action.type) {\r\n case 'core/MODIFICA_ANAGRAFICA':\r\n return initialState;\r\n case 'archivi/LOAD_FILTRO': \r\n return { \r\n ...state,\r\n filtro: {\r\n ...action.value,\r\n refreshCache: false\r\n }\r\n };\r\n case 'archivi/LOAD_ARCHIVI':\r\n return {\r\n ...state,\r\n archivi: { \r\n lista: action.value.results, \r\n page: action.page, \r\n pageSize: action.value.pageSize,\r\n itemsCount: action.value.count,\r\n refreshCache: false\r\n }\r\n };\r\n default: return state;\r\n }\r\n};","export const NAME = \"contributi\";\r\n\r\nexport const routes = {\r\n main: '/inscadenza',\r\n}","import { ApplicationState, NEiTThunk } from '..';\r\nimport { BeginAjaxCallAction, EndAjaxCallAction } from '../core/actionTypes';\r\nimport notification from '../notification';\r\nimport { ContributiActions } from './actionTypes';\r\nimport * as contributiApi from './api';\r\n\r\ntype Actions = \r\n ContributiActions |\r\n BeginAjaxCallAction |\r\n EndAjaxCallAction;\r\n\r\nexport const requestContributiInScadenza= (): NEiTThunk => (dispatch, getState) => {\r\n dispatch({ type: 'core/BEGIN_AJAX_CALL' });\r\n\r\n const state: ApplicationState = getState();\r\n const refreshCache: boolean = false;\r\n\r\n contributiApi.getContributiInScadenza(state, refreshCache)\r\n .then(inScadenza => {\r\n\r\n console.log(inScadenza);\r\n\r\n dispatch({ type: 'contributi/REQUEST_CONTRIBUTI_SCADENZE', value: inScadenza });\r\n dispatch({ type: 'core/END_AJAX_CALL' });\r\n })\r\n .catch(error => {\r\n dispatch({ type: 'core/END_AJAX_CALL' });\r\n notification.error(error.message);\r\n });\r\n}","import { Contributo } from './models';\r\nimport { query } from '../api';\r\nimport { ApplicationState } from '..';\r\n\r\nexport const getContributiInScadenza = (\r\n state: ApplicationState,\r\n refreshCache: boolean\r\n): Promise> => {\r\n const url = 'api/contributi/inscadenza';\r\n const requestCache: RequestCache = refreshCache ? \"reload\" : \"default\";\r\n\r\n return query>(url, state, {}, requestCache);\r\n}","export const italiano = { \r\n modulo: 'Contributi'\r\n}\r\nexport const inglese = {\r\n modulo: 'Contributi'\r\n}","import React from 'react';\r\nimport { connect, ConnectedProps } from 'react-redux';\r\nimport { ApplicationState } from '../..';\r\nimport { Grid, Segment, Table, Header, Icon } from 'semantic-ui-react';\r\nimport { datetimeFormatter, decimalFormatter } from '../../core/utility';\r\nimport * as Contributi from '../../contributi';\r\nimport { Contributo, ImportoContributo } from '../models';\r\n\r\nconst connector = connect(\r\n (state: ApplicationState) => state => ({ \r\n ...state.contributi, \r\n lingua: state.core.lingua,\r\n anagrafica: state.core.anagrafiche.anagrafica!,\r\n }),\r\n Contributi.actions\r\n)\r\ntype PropsFromRedux = ConnectedProps\r\n\r\ntype InScadenzaProps = PropsFromRedux\r\n\r\nclass InScadenza extends React.Component {\r\n constructor(props: InScadenzaProps) {\r\n super(props);\r\n\r\n this.renderContributi = this.renderContributi.bind(this);\r\n this.renderContributo = this.renderContributo.bind(this);\r\n this.renderContributoBody = this.renderContributoBody.bind(this);\r\n this.renderImportiContributo = this.renderImportiContributo.bind(this);\r\n this.renderImportoContributo = this.renderImportoContributo.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n this.props.requestContributiInScadenza();\r\n }\r\n\r\n render() {\r\n const { anagrafica } = this.props;\r\n\r\n return (\r\n \r\n \r\n
\r\n \r\n \r\n Contributi in scadenza\r\n {anagrafica.ragioneSociale}\r\n \r\n
\r\n
\r\n {this.renderContributi()}\r\n
\r\n );\r\n }\r\n\r\n renderContributi() {\r\n if (this.props.inScadenza.length === 0) {\r\n return (\r\n \r\n \r\n
\r\n \r\n Non sono presenti contributi con scadenze\r\n
\r\n
\r\n
\r\n );\r\n }\r\n \r\n return this.props.inScadenza.map(this.renderContributo);\r\n }\r\n\r\n renderContributo(contributo: Contributo) {\r\n const segmentProps = {inverted: false, color: contributo.color, tertiary: false};\r\n\r\n const contributoSegment = this.renderContributoBody(contributo);\r\n const segment = React.cloneElement(contributoSegment, segmentProps);\r\n return (\r\n \r\n \r\n {segment}\r\n \r\n \r\n );\r\n }\r\n\r\n renderContributoBody(contributo: Contributo) {\r\n return (\r\n \r\n \r\n \r\n \r\n
\r\n {contributo.acronimo}\r\n {contributo.canaleContributivo}\r\n
\r\n
\r\n \r\n
\r\n Scadenza: {' '} {datetimeFormatter(contributo.scadenza)}\r\n {contributo.tipoScadenza} \r\n
\r\n
\r\n \r\n {this.renderImportiContributo(contributo.importi)}\r\n \r\n
\r\n
\r\n
\r\n );\r\n }\r\n\r\n renderImportiContributo(importi: ReadonlyArray) {\r\n if (importi.length === 0) {\r\n return (
)\r\n }\r\n\r\n return (\r\n \r\n \r\n {importi.map(this.renderImportoContributo)}\r\n \r\n
\r\n );\r\n }\r\n\r\n renderImportoContributo(importo: ImportoContributo) {\r\n return (\r\n \r\n {importo.tipoImporto}\r\n € {decimalFormatter(importo.importo)}\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default connector(InScadenza);","import { Action } from 'redux';\r\nimport { ContributiState } from './models';\r\nimport { ContributiActions } from './actionTypes';\r\n\r\nconst initialState: ContributiState = { \r\n inScadenza: []\r\n};\r\n\r\nexport default (\r\n state: ContributiState = initialState, \r\n incomingAction: Action\r\n): ContributiState => {\r\n \r\n const action = incomingAction as ContributiActions;\r\n switch (action.type) {\r\n case 'core/MODIFICA_ANAGRAFICA':\r\n return initialState;\r\n case 'contributi/REQUEST_CONTRIBUTI_SCADENZE':\r\n return {\r\n ...state,\r\n inScadenza: action.value\r\n };\r\n case 'contributi/RESET_CONTRIBUTI':\r\n return {\r\n ...state,\r\n inScadenza: []\r\n };\r\n\r\n default: return state;\r\n }\r\n \r\n \r\n};","import LocalizedStrings from 'react-localization';\r\nimport { Action } from 'redux';\r\nimport { ThunkAction } from 'redux-thunk';\r\nimport * as core from './core';\r\nimport * as archiviazione from './archiviazione';\r\nimport * as contributi from './contributi';\r\n\r\nexport interface ApplicationState {\r\n [core.constants.NAME]: core.CoreState, \r\n [archiviazione.constants.NAME]: archiviazione.ArchiviState,\r\n [contributi.constants.NAME]: contributi.ContributiState,\r\n}\r\n\r\nexport const reducers = {\r\n [core.constants.NAME]: core.reducer,\r\n [archiviazione.constants.NAME]: archiviazione.reducer,\r\n [contributi.constants.NAME]: contributi.reducer,\r\n}\r\n\r\nexport const strings = new LocalizedStrings({\r\n it: {\r\n [core.constants.NAME]: core.localization.italiano,\r\n [archiviazione.constants.NAME]: archiviazione.localization.italiano,\r\n [contributi.constants.NAME]: contributi.localization.italiano,\r\n },\r\n en: {\r\n [core.constants.NAME]: core.localization.inglese,\r\n [archiviazione.constants.NAME]: archiviazione.localization.inglese,\r\n [contributi.constants.NAME]: contributi.localization.inglese,\r\n }\r\n})\r\n\r\nexport const routes = {\r\n [core.constants.NAME]: core.constants.routes,\r\n [archiviazione.constants.NAME]: archiviazione.constants.routes,\r\n [contributi.constants.NAME]: contributi.constants.routes,\r\n}\r\n\r\nexport type NEiTThunk = ThunkAction;","import { UserManager } from 'oidc-client';\r\n\r\nconst userManagerConfig = {\r\n client_id: 'neit_contributi_impresa_spa',\r\n redirect_uri: `${window.location.protocol}//${window.location.hostname}${window.location.port ? `:${window.location.port}` : ''}/loginCallback`,\r\n post_logout_redirect_uri: `${window.location.protocol}//${window.location.hostname}${window.location.port ? `:${window.location.port}` : ''}/logoutCallback`,\r\n response_type: 'code',\r\n response_mode: 'query',\r\n scope: 'openid profile email NEiT.profile neit_contributi_impresa',\r\n authority: process.env.REACT_APP_IDENTITY_PROVIDER,\r\n acr_values: \"tenant:\" + window.location.hostname.split(\".\")[0],\r\n filterProtocolClaims: true,\r\n loadUserInfo: true,\r\n revokeAccessTokenOnSignout: true,\r\n clockSkew: 3600\r\n};\r\n\r\nconst userManager = new UserManager(userManagerConfig);\r\n\r\nexport default userManager;","import React from \"react\";\r\nimport { connect, ConnectedProps } from 'react-redux';\r\nimport { Button, Grid, Header, Image, Container } from \"semantic-ui-react\";\r\nimport userManager from '../userManager';\r\nimport { ApplicationState } from '../..';\r\nimport * as Core from '../../core';\r\n\r\nconst connector = connect(\r\n (state: ApplicationState) => state.core,\r\n Core.actions\r\n)\r\ntype PropsFromRedux = ConnectedProps\r\n\r\ntype AnonymousUserProps = PropsFromRedux\r\n\r\nclass AnonymousUser extends React.Component {\r\n constructor(props: AnonymousUserProps) {\r\n super(props);\r\n\r\n this.loginClick = this.loginClick.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n this.props.loadTenant();\r\n }\r\n\r\n render() {\r\n if (this.props.tenant?.ragioneSociale !== undefined) {\r\n document.title = \"Portale CATA\";\r\n }\r\n if (this.props.tenant?.imageSmall !== undefined) {\r\n const favicon = document.getElementById(\"favicon\") as any;\r\n favicon.href = this.props.tenant?.imageSmall;\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n Benvenuto nell'area riservata\r\n Per utilizzare il servizio effettua il login.\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n );\r\n }\r\n\r\n loginClick() {\r\n userManager.signinRedirect();\r\n }\r\n}\r\n\r\nexport default connector(AnonymousUser);\r\n","import React from \"react\";\r\nimport { Button, Grid, Header } from \"semantic-ui-react\";\r\nimport userManager from '../userManager';\r\n\r\nexport default class UserExpired extends React.Component {\r\n\r\n render() {\r\n return (\r\n \r\n \r\n \r\n
\r\n La sessione è scaduta\r\n \r\n Per utilizzare i servizi è necessario effettuare il login dalla finestra principale\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n );\r\n }\r\n\r\n logoutClick = () => {\r\n userManager.signoutRedirect();\r\n }\r\n}","import React from 'react';\r\nimport { connect, ConnectedProps } from 'react-redux';\r\nimport { Route, RouteProps } from 'react-router-dom';\r\nimport * as Core from '../../core';\r\nimport { ApplicationState } from '../..';\r\nimport userManager from '../userManager';\r\nimport AnonymousUser from './AnonymousUser';\r\nimport UserExpired from './UserExpired';\r\n\r\nconst connector = connect(\r\n (state: ApplicationState) => state.core,\r\n Core.actions\r\n)\r\ntype PropsFromRedux = ConnectedProps\r\n\r\ntype PrivateRouteProps = \r\n RouteProps &\r\n PropsFromRedux\r\n\r\nclass PrivateRoute extends Route {\r\n \r\n componentDidMount() {\r\n userManager.events.addAccessTokenExpiring(this.props.userExpired);\r\n userManager.events.addAccessTokenExpired(this.props.userExpired);\r\n }\r\n\r\n componentWillUnmount() {\r\n userManager.events.removeAccessTokenExpiring(this.props.userExpired);\r\n userManager.events.removeAccessTokenExpired(this.props.userExpired);\r\n }\r\n\r\n render() {\r\n if (this.props.auth.expired) {\r\n return ;\r\n } else if (!this.props.auth.loggedIn) {\r\n return ;\r\n } else {\r\n return ;\r\n }\r\n }\r\n}\r\n\r\nexport default connector(PrivateRoute)","import React from \"react\";\r\nimport userManager from '../userManager';\r\nimport { Header, Icon } from \"semantic-ui-react\";\r\n\r\nexport default class GoToLogin extends React.Component {\r\n\r\n componentDidMount() {\r\n userManager.signinRedirect();\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n \r\n Ti stiamo reindirizzando verso il login ...\r\n
\r\n );\r\n }\r\n}","import React from \"react\";\r\nimport { connect, ConnectedProps } from 'react-redux';\r\nimport { Redirect } from \"react-router-dom\";\r\nimport { Header, Icon } from \"semantic-ui-react\";\r\nimport userManager from '../userManager';\r\nimport { ApplicationState } from '../..';\r\nimport * as Core from '../../core';\r\n\r\nconst connector = connect(\r\n (state: ApplicationState) => ({\r\n loggedOut: !state.core.auth.loggedIn,\r\n }),\r\n Core.actions,\r\n)\r\ntype PropsFromRedux = ConnectedProps\r\n\r\ntype SignoutCallbackProps = PropsFromRedux\r\n\r\nclass SignoutCallback extends React.Component {\r\n \r\n componentDidMount() {\r\n userManager.signoutRedirectCallback()\r\n .then(() => userManager.removeUser())\r\n .then(() => this.props.logoutSuccess())\r\n .catch(() => console.log(\"ERRORE\"));\r\n }\r\n\r\n render() {\r\n return (\r\n this.props.loggedOut ?\r\n :\r\n (\r\n
\r\n \r\n Stiamo completando la procedura di logout...\r\n
\r\n )\r\n );\r\n }\r\n}\r\n\r\nexport default connector(SignoutCallback);\r\n","import React from \"react\";\r\nimport { connect, ConnectedProps } from 'react-redux';\r\nimport { Redirect } from \"react-router-dom\";\r\nimport { Header, Icon } from \"semantic-ui-react\";\r\nimport userManager from '../userManager';\r\nimport { ApplicationState } from '../..';\r\nimport * as Core from '../../core';\r\n\r\nconst connector = connect(\r\n (state: ApplicationState) => ({\r\n loggedIn: state.core.auth.loggedIn,\r\n }),\r\n Core.actions,\r\n)\r\ntype PropsFromRedux = ConnectedProps\r\n\r\ntype SigninCallbackProps = PropsFromRedux\r\n\r\nclass SigninCallback extends React.Component {\r\n\r\n componentDidMount() {\r\n userManager.signinRedirectCallback()\r\n .then((user) => this.props.loginSuccess(user))\r\n .catch(error => this.gestioneErroreLogin(error));\r\n }\r\n\r\n render() {\r\n return (\r\n this.props.loggedIn ?\r\n :\r\n (\r\n
\r\n \r\n Stiamo completando la procedura di login...\r\n
\r\n )\r\n );\r\n }\r\n\r\n gestioneErroreLogin = (error: any) => {\r\n if (error.message.includes(\"iat is in the future\")) {\r\n const message = // va lasciata cosi la stringa sotto, altrimenti vengono impostati degli spazi nel messaggio\r\n `L'orario del tuo pc � incongruente con quello del server. \r\nPer motivi di sicurezza il login non risulta valido.`;\r\n window.alert(message);\r\n }\r\n\r\n this.props.loginError();\r\n }\r\n}\r\n\r\nexport default connector(SigninCallback);\r\n","import React, { PropsWithChildren } from 'react';\r\nimport { connect, ConnectedProps } from 'react-redux';\r\nimport { Dimmer, Loader } from 'semantic-ui-react';\r\nimport { ApplicationState } from '../..';\r\n\r\nconst connector = connect(\r\n (state: ApplicationState) => state.core\r\n)\r\ntype PropsFromRedux = ConnectedProps\r\n\r\ntype StateProps = PropsWithChildren\r\n\r\nclass AjaxLoader extends React.Component {\r\n render() {\r\n return (\r\n
\r\n 0} inverted>\r\n Caricamento...\r\n \r\n {this.props.children}\r\n
\r\n );\r\n }\r\n};\r\n\r\nexport default connector(AjaxLoader);\r\n\r\n/*\r\nexport default connect(\r\n state => state.application\r\n)(AjaxLoader);\r\n*/","import React from 'react';\r\nimport { connect, ConnectedProps } from 'react-redux';\r\nimport { Menu, Icon, Button, Flag, Grid, Label, Portal, Segment, Divider, LabelProps, ButtonProps } from 'semantic-ui-react';\r\nimport { strings } from '../..';\r\nimport { ApplicationState } from '../..';\r\nimport * as Core from '../../core';\r\n\r\ntype OwnProps = {\r\n onLinguaClick: (event: React.MouseEvent, data: LabelProps) => void,\r\n onLogout: (event: React.MouseEvent, data: ButtonProps) => void\r\n}\r\n\r\nconst connector = connect(\r\n (state: ApplicationState) => {\r\n let anagraficheCount = 1;\r\n if (state.core.anagrafiche.anagrafica !== undefined && Array.isArray(state.core.auth.user!.profile.anagrafica)) {\r\n anagraficheCount = state.core.auth.user!.profile.anagrafica.length;\r\n }\r\n\r\n return ({\r\n lingua: state.core.lingua,\r\n userName: state.core.auth.user?.profile.email,\r\n anagraficheCount: anagraficheCount\r\n })\r\n },\r\n Core.actions,\r\n)\r\ntype PropsFromRedux = ConnectedProps\r\n\r\ntype MenuUserProps = \r\n PropsFromRedux & \r\n OwnProps\r\n\r\nclass MenuUser extends React.Component {\r\n constructor(props: MenuUserProps) {\r\n super(props);\r\n\r\n this.renderCambiaAnagrafica = this.renderCambiaAnagrafica.bind(this);\r\n this.renderPopupTrigger = this.renderPopupTrigger.bind(this);\r\n }\r\n\r\n render() {\r\n const { userName, lingua } = this.props;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {strings.core.header.lingua}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.renderCambiaAnagrafica()}\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n\r\n renderCambiaAnagrafica() {\r\n const { anagraficheCount } = this.props;\r\n if (anagraficheCount > 1) {\r\n return (\r\n \r\n
\r\n \r\n
\r\n
\r\n );\r\n }\r\n\r\n return \r\n }\r\n\r\n renderPopupTrigger(userName: string | undefined) {\r\n return (\r\n \r\n \r\n {userName}\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default connector(MenuUser);\r\n","import React, { Component } from 'react';\r\nimport { connect, ConnectedProps } from 'react-redux';\r\nimport { Menu, Icon, MenuItemProps, LabelProps } from 'semantic-ui-react';\r\nimport userManager from '../userManager';\r\nimport MenuUser from './MenuUser';\r\nimport { ApplicationState } from '../..';\r\nimport * as Core from '../../core';\r\n\r\ntype OwnProps = {\r\n onMenuClick: (event: React.MouseEvent, data: MenuItemProps) => void\r\n}\r\n\r\nconst connector = connect(\r\n (state: ApplicationState) => ({\r\n logo: state.core.auth.user!.profile.picture,\r\n }),\r\n Core.actions,\r\n)\r\ntype PropsFromRedux = ConnectedProps\r\n\r\ntype PrincipaleHeaderMobileProps = \r\n PropsFromRedux &\r\n OwnProps\r\n\r\nclass PrincipaleHeaderMobile extends Component {\r\n constructor(props: PrincipaleHeaderMobileProps) {\r\n super(props);\r\n \r\n this.onLogout = this.onLogout.bind(this);\r\n this.onLinguaClick = this.onLinguaClick.bind(this);\r\n }\r\n\r\n render () {\r\n const { logo } = this.props;\r\n\r\n return (\r\n \r\n \r\n \r\n \"logo\"\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n onLogout() {\r\n userManager.signoutRedirect();\r\n }\r\n\r\n onLinguaClick(_: React.MouseEvent, data: LabelProps) {\r\n this.props.cambiaLingua(data.lingua);\r\n }\r\n}\r\n\r\nexport default connector(PrincipaleHeaderMobile);\r\n","import React from 'react';\r\nimport { Redirect } from 'react-router-dom';\r\n\r\nexport default () => \r\n ","import React from \"react\";\r\nimport { Grid, Header, Icon } from \"semantic-ui-react\";\r\n\r\nconst PageNotFound = () => {\r\n return (\r\n \r\n \r\n \r\n
\r\n \r\n Pagina non trovata\r\n \r\n Riprova\r\n \r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default PageNotFound;\r\n","import React from 'react';\r\nimport { connect, ConnectedProps } from 'react-redux';\r\nimport { Grid, Header, Icon, Image, Menu } from 'semantic-ui-react';\r\nimport * as Core from '../../core';\r\nimport { ApplicationState, strings } from '../..';\r\nimport { mediaStyles, MediaContextProvider, Media } from '../../core'; \r\n\r\nconst connector = connect(\r\n (state: ApplicationState) => ({\r\n utente: state.core.auth.user!,\r\n anagrafiche: state.core.anagrafiche.lista\r\n }),\r\n Core.actions\r\n)\r\ntype PropsFromRedux = ConnectedProps\r\n\r\ntype SelezionaAnagraficaProps = PropsFromRedux\r\n\r\nclass SelezionaAnagrafica extends React.Component {\r\n\r\n componentDidMount() {\r\n this.props.loadAnagrafiche();\r\n }\r\n\r\n render() {\r\n const tenantImageSmall = this.props.utente?.profile?.picture ?? '';\r\n const tenantName = this.props.utente?.profile?.tenantName ?? 'CATA';\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {tenantName}\r\n \r\n \r\n \r\n \r\n
{strings.core.selezionaDitta}
\r\n
\r\n \r\n \r\n \r\n {this.props.anagrafiche.map(this.renderAzienda)}\r\n \r\n \r\n \r\n
\r\n );\r\n }\r\n\r\n renderAzienda = (anagrafica: Core.Anagrafica) => {\r\n return (\r\n this.props.anagraficaSelezionata(anagrafica)}>\r\n \r\n \r\n \r\n {anagrafica.ragioneSociale}\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default connector(SelezionaAnagrafica);","import React from \"react\";\r\nimport { connect, ConnectedProps } from 'react-redux';\r\nimport { Route, RouteProps } from \"react-router-dom\";\r\nimport * as Core from '../../core';\r\nimport { ApplicationState } from '../..';\r\nimport SelezionaAnagrafica from \"./SelezionaAnagrafica\";\r\n\r\nconst connector = connect(\r\n (state: ApplicationState) => ({\r\n anagrafiche: state.core.anagrafiche.lista,\r\n anagrafica: state.core.anagrafiche.anagrafica\r\n }),\r\n Core.actions\r\n)\r\ntype PropsFromRedux = ConnectedProps\r\n\r\ntype AnagraficaRouteProps = \r\n RouteProps &\r\n PropsFromRedux\r\n\r\nclass AnagraficaRoute extends Route {\r\n\r\n componentDidMount() {\r\n const { anagrafiche } = this.props;\r\n if (anagrafiche.length === 1) {\r\n this.props.loadAnagrafiche();\r\n }\r\n }\r\n\r\n componentDidUpdate(prevProps: AnagraficaRouteProps) {\r\n const { anagrafiche } = this.props;\r\n if (prevProps.anagrafiche.length === 0 && anagrafiche.length === 1) {\r\n this.props.anagraficaSelezionata(anagrafiche[0]);\r\n }\r\n }\r\n\r\n render() {\r\n const { anagrafica } = this.props;\r\n return anagrafica === undefined ?\r\n :\r\n \r\n }\r\n}\r\n\r\nexport default connector(AnagraficaRoute);\r\n","import React from \"react\";\r\nimport { Route, Switch } from 'react-router-dom';\r\nimport { Archiviazione } from '../../archiviazione';\r\nimport ToContributiInScadenza from './ToContributiInScadenza';\r\nimport { InScadenza } from '../../contributi';\r\nimport PageNotFound from './PageNotFound';\r\nimport AnagraficaRoute from \"./AnagraficaRoute\";\r\n\r\nexport default class Routes extends React.Component {\r\n render() {\r\n return (\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n );\r\n }\r\n}","import React, { RefObject } from \"react\";\r\nimport { Link } from 'react-router-dom';\r\nimport { Menu, Container, Sidebar, Icon, Divider, Sticky, Ref } from \"semantic-ui-react\";\r\nimport HeaderMobile from \"./HeaderMobile\";\r\nimport Routes from \"./Routes\";\r\n\r\nexport type PrincipaleState = {\r\n visible: boolean\r\n}\r\n\r\nexport default class Principale extends React.Component<{}, PrincipaleState> {\r\n private contextRef: RefObject;\r\n\r\n constructor(props: {}) {\r\n super(props);\r\n\r\n this.contextRef = React.createRef();\r\n\r\n this.state = { visible: false };\r\n }\r\n\r\n render() {\r\n // il div è utilizzato perche il container fluid, in versione mobile, lascia dello spazio a destra e sinistra nel menu\r\n const { visible } = this.state;\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Archiviazione\r\n \r\n \r\n \r\n Contributi\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n }\r\n \r\n showSidebar = () => this.setState({ visible: true });\r\n \r\n handleSidebarHide = () => this.setState({ visible: false });\r\n}\r\n","import React, { Component } from 'react';\r\nimport { connect, ConnectedProps } from 'react-redux';\r\nimport { Link } from 'react-router-dom';\r\nimport { Menu, Icon, LabelProps } from 'semantic-ui-react';\r\nimport userManager from '../userManager';\r\nimport MenuUser from './MenuUser';\r\nimport { ApplicationState } from '../..';\r\nimport * as Core from '../../core';\r\n\r\nconst connector = connect(\r\n (state: ApplicationState) => ({\r\n logo: state.core.auth.user?.profile.picture,\r\n }),\r\n Core.actions,\r\n)\r\ntype PropsFromRedux = ConnectedProps\r\n\r\ntype PrincipaleHeaderDefaultProps = PropsFromRedux\r\n\r\nclass PrincipaleHeaderDefault extends Component {\r\n constructor(props: PrincipaleHeaderDefaultProps) {\r\n super(props);\r\n \r\n this.onLogout = this.onLogout.bind(this);\r\n this.onLinguaClick = this.onLinguaClick.bind(this);\r\n }\r\n\r\n render () {\r\n const { logo } = this.props;\r\n\r\n return (\r\n \r\n \r\n \"logo\"\r\n \r\n \r\n \r\n Contributi\r\n \r\n \r\n \r\n Archiviazione\r\n \r\n \r\n \r\n );\r\n } \r\n\r\n onLogout() {\r\n userManager.signoutRedirect();\r\n }\r\n\r\n onLinguaClick(_: React.MouseEvent, data: LabelProps) {\r\n this.props.cambiaLingua(data.lingua);\r\n }\r\n}\r\n\r\nexport default connector(PrincipaleHeaderDefault);\r\n","import React, { RefObject } from \"react\";\r\nimport { Container, Divider, Sticky, Ref } from \"semantic-ui-react\";\r\nimport HeaderDefault from \"./HeaderDefault\";\r\nimport Routes from \"./Routes\";\r\n\r\nexport default class Principale extends React.Component {\r\n private contextRef: RefObject;\r\n\r\n constructor(props: {}) {\r\n super(props);\r\n\r\n this.contextRef = React.createRef();\r\n }\r\n\r\n render() {\r\n // il div è utilizzato perche il container fluid, in versione mobile, lascia dello spazio a destra e sinistra nel menu\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\n","import React, { createRef } from \"react\";\r\nimport PrincipaleMobile from './PrincipaleMobile';\r\nimport PrincipaleDefault from './PrincipaleDefault';\r\nimport { mediaStyles, MediaContextProvider, Media } from \"../../core\";\r\n\r\nexport default class Principale extends React.Component {\r\n contextRef = createRef();\r\n\r\n render() {\r\n // il div è utilizzato perche il container fluid, in versione mobile, lascia dello spazio a destra e sinistra nel menu\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\n","import React from 'react';\r\nimport { Route, Switch } from 'react-router-dom';\r\nimport PrivateRoute from './PrivateRoute';\r\nimport GoToLogin from './GoToLogin';\r\nimport SignoutCallback from './SignoutCallback';\r\nimport SigninCallback from './SigninCallback';\r\nimport AjaxLoader from './AjaxLoader';\r\nimport Principale from './Principale';\r\n\r\nexport default () => (\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n);","// In production, we register a service worker to serve assets from local cache.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on the \"N+1\" visit to a page, since previously\r\n// cached resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model, read https://goo.gl/KwvDNy.\r\n// This link also includes instructions on opting out of this behavior.\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === 'localhost' ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === '[::1]' ||\r\n // 127.0.0.1/8 is considered localhost for IPv4.\r\n window.location.hostname.match(\r\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n )\r\n);\r\n\r\nexport default function register() {\r\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location);\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebookincubator/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Lets check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl);\r\n } else {\r\n // Is not local host. Just register service worker\r\n registerValidSW(swUrl);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW(swUrl) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then(registration => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the old content will have been purged and\r\n // the fresh content will have been added to the cache.\r\n // It's the perfect time to display a \"New content is\r\n // available; please refresh.\" message in your web app.\r\n console.log('New content is available; please refresh.');\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log('Content is cached for offline use.');\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch(error => {\r\n console.error('Error during service worker registration:', error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl)\r\n .then(response => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n if (\r\n response.status === 404 ||\r\n response.headers.get('content-type').indexOf('javascript') === -1\r\n ) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl);\r\n }\r\n })\r\n .catch(() => {\r\n console.log(\r\n 'No internet connection found. App is running in offline mode.'\r\n );\r\n });\r\n}\r\n\r\nexport function unregister() {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister();\r\n });\r\n }\r\n}\r\n","import { ApplicationInsights, ITelemetryItem } from '@microsoft/applicationinsights-web';\r\nimport { ReactPlugin } from '@microsoft/applicationinsights-react-js';\r\n\r\n/**\r\n * Create the App Insights Telemetry Service\r\n * @return {{reactPlugin: ReactPlugin, appInsights: Object, initialize: Function}} - Object\r\n */\r\nconst createTelemetryService = () => {\r\n let reactPlugin = null;\r\n let appInsights = null;\r\n\r\n /**\r\n * Initialize the Application Insights class\r\n * @param {string} instrumentationKey - Application Insights Instrumentation Key\r\n * @param {Object} browserHistory - client's browser history, supplied by the withRouter HOC\r\n * @return {void}\r\n */\r\n const initialize = (instrumentationKey: string, browserHistory: Object) => {\r\n if (!instrumentationKey || !browserHistory) {\r\n throw new Error('Could not initialize Telemetry Service');\r\n }\r\n\r\n reactPlugin = new ReactPlugin();\r\n\r\n appInsights = new ApplicationInsights({\r\n config: {\r\n instrumentationKey: instrumentationKey,\r\n maxBatchInterval: 0,\r\n enableAutoRouteTracking: true,\r\n enableCorsCorrelation: true,\r\n disableFetchTracking: false,\r\n disableCorrelationHeaders: false,\r\n isCookieUseDisabled: true, // disabilita i cookie per tracciare gli utenti\r\n extensions: [reactPlugin],\r\n extensionConfig: {\r\n [reactPlugin.identifier]: {\r\n history: browserHistory\r\n }\r\n }\r\n }\r\n });\r\n\r\n appInsights.loadAppInsights();\r\n \r\n appInsights.addTelemetryInitializer((envelope: ITelemetryItem) => {\r\n if (envelope.tags !== undefined) {\r\n envelope.tags[\"ai.cloud.role\"] = \"contributo-impresa-spa\";\r\n }\r\n });\r\n };\r\n\r\n return { reactPlugin, appInsights, initialize };\r\n};\r\n\r\nexport const ai = createTelemetryService();","import React, { Fragment } from 'react';\r\nimport { withAITracking } from '@microsoft/applicationinsights-react-js';\r\nimport { ai } from './TelemetryService';\r\nimport { withRouter } from 'react-router-dom';\r\n\r\n/**\r\n * This Component provides telemetry with Azure App Insights\r\n *\r\n * NOTE: the package '@microsoft/applicationinsights-react-js' has a HOC withAITracking that requires this to be a Class Component rather than a Functional Component\r\n */\r\nclass TelemetryProvider extends React.Component {\r\n state = {\r\n initialized: false\r\n };\r\n\r\n componentDidMount() {\r\n const { history } = this.props;\r\n const { initialized } = this.state;\r\n const AppInsightsInstrumentationKey = process.env.REACT_APP_AI_INSTRUMENTATION_KEY; // PUT YOUR KEY HERE\r\n if (!Boolean(initialized) && Boolean(AppInsightsInstrumentationKey) && Boolean(history)) {\r\n ai.initialize(AppInsightsInstrumentationKey, history);\r\n this.setState({ initialized: true });\r\n }\r\n }\r\n\r\n render() {\r\n const {children} = this.props;\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(withAITracking(ai.reactPlugin, TelemetryProvider));","import 'semantic-ui-css/semantic.min.css'\r\n\r\nimport * as React from 'react';\r\nimport * as ReactDOM from 'react-dom';\r\nimport { Provider } from 'react-redux';\r\nimport { ConnectedRouter } from 'connected-react-router';\r\nimport { createBrowserHistory } from 'history';\r\nimport configureStore from './store/configureStore';\r\nimport { App } from './modules/main';\r\nimport registerServiceWorker from './registerServiceWorker';\r\nimport TelemetryProvider from './telemetry/TelemetryProvider';\r\n\r\n// Create browser history to use in the Redux store\r\nconst baseUrl = document.getElementsByTagName('base')[0].getAttribute('href') as string;\r\nconst history = createBrowserHistory({ basename: baseUrl });\r\n\r\n// Get the application-wide store instance, prepopulating with state from the server where available.\r\nconst store = configureStore(history);\r\n\r\nReactDOM.render(\r\n \r\n \r\n \r\n \r\n \r\n \r\n ,\r\n document.getElementById('root'));\r\n\r\nregisterServiceWorker();\r\n","import { applyMiddleware, combineReducers, compose, createStore } from 'redux';\r\nimport thunk from 'redux-thunk';\r\nimport { connectRouter, routerMiddleware } from 'connected-react-router';\r\nimport { History } from 'history';\r\nimport { ApplicationState, reducers } from '../modules';\r\n\r\nexport default function configureStore(history: History, initialState?: ApplicationState) {\r\n const middleware = [\r\n thunk,\r\n routerMiddleware(history)\r\n ];\r\n\r\n const rootReducer = combineReducers({\r\n ...reducers,\r\n router: connectRouter(history)\r\n });\r\n\r\n const enhancers = [];\r\n const windowIfDefined = typeof window === 'undefined' ? null : window as any;\r\n if (windowIfDefined && windowIfDefined.__REDUX_DEVTOOLS_EXTENSION__) {\r\n enhancers.push(windowIfDefined.__REDUX_DEVTOOLS_EXTENSION__());\r\n }\r\n\r\n return createStore(\r\n rootReducer,\r\n initialState,\r\n compose(applyMiddleware(...middleware), ...enhancers)\r\n );\r\n}"],"sourceRoot":""}