{"version":3,"sources":["utils/constants.ts","store/layoutStore.ts","store/accountStore.ts","store/configureStore.ts","store/carrelloStore.ts","store/cataloghiStore.ts","store/index.ts","components/HomePrivate.tsx","components/identity/Login.tsx","Zerouno/ZuAccountHelper.tsx","components/Layout.tsx","components/logo.png","Zerouno/ZuFormDetail.tsx","components/UserDetail.tsx","Zerouno/ZuTable/helpers.tsx","Zerouno/ZuTable/Operators.tsx","Zerouno/ZuTable/StringSearch.tsx","Zerouno/ZuTable/DateSearch.tsx","Zerouno/ZuTable/SearchDropdown.tsx","Zerouno/ZuTable/index.tsx","components/Users.tsx","components/UserCambioPassword.tsx","components/noImg.png","Zerouno/ZuSelect.tsx","components/select/ZuSelectElasticFaro.tsx","components/select/CatStatisticheSelect.tsx","components/ArticoliDetail.tsx","Zerouno/jsonDataFetch.ts","components/filters/SimpleSelector.tsx","components/filters/CategorieSelector.tsx","components/filters/CategorieInEvidenzaSelector.tsx","components/ListaArticoli.tsx","components/Catalogo.tsx","utils/utils.ts","components/Carrello.tsx","components/CataloghiDetail.tsx","components/Cataloghi.tsx","components/ContenutiPromozionali.tsx","components/ContenutiPromozionaliDetail.tsx","components/UserPasswordDimenticata.tsx","components/UserResetPassword.tsx","components/UserAttivaAccount.tsx","components/UserRegistrazione.tsx","components/UserCompletaDatiUtente.tsx","components/UserCompletaDatiUtenteResult.tsx","App.tsx","registerServiceWorker.ts","index.tsx"],"names":["StatoUtenteEnum","CategorizzazioniUser","hideMenuType","setTitleType","initialState","hidden","title","actionCreators","hideMenu","type","setTitle","msg_requiredField","msg_standardValidationError","ruoli","Amministratore","Cliente","SuperAdmin","typeViewArticoli","history","setAccount","clearAccount","user","isAuthenticated","name","username","roles","statoUtente","Disattivo","isInitialState","getAccount","setCarrello","clearCarrello","carrello","getCarrello","setCataloghi","clearCataloghi","cataloghi","getCataloghi","reducers","layout","state","incomingAction","undefined","action","account","createBrowserHistory","store","configureStore","middleware","getDefaultMiddleware","concat","routerMiddleware","reducer","router","connectRouter","preloadedState","HomePrivateComponent","contenuti","componentDidMount","fetch","method","headers","then","resp","ok","json","message","error","data","length","setState","this","carousel","map","c","readOnly","placeholder","value","BraftEditor","createEditorState","descrizione","language","contentStyle","padding","maxHeight","fontSize","overflow","background","backgroundImage","urlImmagineSfondo","backgroundSize","backgroundRepeat","backgroundPosition","controls","id","autoplay","to","React","connect","AccountStore","CarrelloStore","CataloghiStore","LoginComponent","succeded","loading","handleSubmit","values","minimumDelay","ms","Promise","res","setTimeout","successDelay","errorDelay","fetchLogin","checkIdentity","props","Object","keys","getPrototypeOf","prototype","articoliQta","push","response","catch","reason","credentials","body","JSON","stringify","justify","align","style","minHeight","className","bodyStyle","marginRight","marginLeft","marginTop","marginBottom","headStyle","onFinish","initialValues","RememberMe","description","showIcon","Item","label","rules","required","size","prefix","UserOutlined","LockOutlined","htmlType","icon","LoginOutlined","width","valuePropName","noStyle","ZuAccountHelper","Meta","timer","handleLogout","console","info","extractNameFromEmail","text","i","indexOf","substring","getInitials","replace","match","slice","join","toUpperCase","checkIdentityOnMount","checkIdentityInterval","setInterval","clearTimeout","userPrimaryInfo","nomeCognome","userSecondaryInfo","email","initials","userOverlay","boxShadow","margin","Divider","onClick","placement","trigger","overlay","color","cursor","defaultProps","withRouter","Header","Content","Footer","SubMenu","Sider","LayoutComponent","Option","collapsed","selectedKeys","toggleMenu","fillMenu","x","filter","r","includes","key","divider","menu","link","handleLanguageChange","HomeOutlined","intl","formatMessage","SettingOutlined","TeamOutlined","changeLocale","defaultLang","languages","alt","src","SearchOutlined","TagsOutlined","find","UsergroupAddOutlined","ProfileOutlined","count","offset","border","shape","ShoppingCartOutlined","children","Date","getFullYear","LayoutStore","injectIntl","msg_unableToLoadData","msg_unexpectedError","ZuFormDetail","isNew","getDefaults","url","baseUrl","notification","duration","load","submit","model","submitUrl","success","delete","deleteUrl","params","Title","Text","TabPane","Group","UserDetailComponent","formRef","passwordChanged","confirmChanged","datiAnagrafici","salvaEAttiva","window","back","inviaNuovaAttivazione","current","validateFields","getFieldsValue","handlePasswordBlur","e","target","trim","handleConfirmBlur","InAttivazione","setFieldsValue","options","k","msgPasswordNonCoincidono","msgPasswordNonValida","msgEmailValida","ghost","onBack","extra","disabled","SendOutlined","DownloadOutlined","UndoOutlined","defaultActiveKey","tab","ref","gutter","md","sm","autoComplete","flex","Attivo","AttivoInAttesaDati","max","span","mode","hasFeedback","min","Password","visibilityToggle","onBlur","dependencies","getFieldValue","validator","rule","reject","resolve","labelStyle","fontWeight","column","bordered","ragioneSociale","indirizzo","cap","citta","provincia","nazione","partitaIva","codiceFiscale","referente","telefono","categorizzazione","msg_reset","operators","contains","symbol","backgroundColor","stringType","numberType","dateType","startsWith","eq","gt","lt","ge","le","neq","range","today","lastWeek","monthToDate","month","yearToDate","getFilterValue","defaultOperator","operator","toString","parse","composeFilterString","filterValue","onFilter","f","formattedValue","formattedValue2","value2","rangeEndOp","dataType","toLowerCase","Number","parseFloat","isFinite","moment","isValid","format","add","dataIndex","s","endOf","subtract","Operators","op","optionLabelProp","dropdownMatchSelectWidth","showArrow","Component","StringSearch","searchInput","getFilterValuesFromKeys","addSearchItem","filterDropdownProps","setSelectedKeys","filters","emptyFilterItem","focus","removeSearchItem","index","confirm","reset","clearFilters","operatorComboType","inputs","canReset","paddingBottom","v","addonBefore","showOperators","onChange","suffix","CloseCircleFilled","node","onPressEnter","display","borderTop","PlusOutlined","MonthPicker","radioStyle","pickerStyle","DateSearch","startOf","startDate","endDate","computeFilterValue","radioChange","paddingTop","allowClear","onFocus","localeData","longDateFormat","SearchDropdown","dropDown","getColumnSearchProps","filterDropdown","onFilterDropdownVisibleChange","visible","Search","msg_search","ZuTable","pagination","sorter","globalFilterValue","additionalFilter","colString","item","filterStr","selectManyColumns","columns","globalString","getGlobalFilterColumns","take","pageSize","skip","orderby","field","order","queryUrl","afterDataFetched","total","totalRows","rows","renderDeleteAction","record","onConfirm","href","DeleteOutlined","handleTableChange","pager","remoteFiltering","handleGlobalFilterSubmit","forEach","defaultSortOrder","defaultFilteredValue","showSizeChanger","ret","globalFilter","actionsColumn","render","searcher","cb","col","searchProps","globalSearchHint","globalSearch","autoFocus","enterButton","onSearch","searchBarRender","dataSource","UsersComponent","detailUrl","msg_new","direction","strong","InfoCircleOutlined","level","rowKey","UserCambioPasswordComponent","recaptchaRef","captcha","RecaptchaToken","getValue","String","onReCaptchaChange","sitekey","msg_loadingError","ZuSelect","initialData","filterString","getComlumnNames","sortColumns","textColumn","getComlumnFiltersString","searchColumns","select","valueColumn","filterById","Array","isArray","excludeFilterOnIdLoookup","transformedData","transformData","handleSearch","search","apply","handleChange","option","handleDropdownVisibleChange","open","onDropdownVisibleChange","renderItem","h","wait","callable","args","debounce","initialFilterById","propsPrecedenti","statePrecedenti","stateValues","searchValueInStateData","exists","caseInsensitiveSearch","showSearch","notFoundContent","filterOption","dataRow","ZuSelectElasticFaro","getSelectValue","ids","customData","CatStatisticheSelect","Paragraph","BASEPATHIMMAGINI","ArticoliDetailComponent","formRefNewWishlist","articolo","currentImg","creaCatalogo","loadingBtn","loadingAggiuntaCatalogo","visibleUpdateQta","quantita","loadingPreventivo","articoloNonTrovato","componentDidUpdate","aggiornaCataloghi","aggiungiArticoloAlCatalogo","idCatalogo","idArticolo","creaCatalogoAggiungiArticolo","nomeCatalogo","aggiornaCarrello","btn","close","aggiungiArticoloAlCarrello","idCatStatistica","richiediPreventivo","d","listaArticoli","immaginedefault","immagini","indexof","menuListe","onOk","onCancel","maskClosable","forceRender","okButtonProps","xs","textAlign","preview","ultimamodifica","objectFit","objectPosition","height","noImg","mask","EyeOutlined","aspectRatio","PreviewGroup","onVisibleChange","vis","descrizionelunga","ellipsis","Button","DownOutlined","indicator","LoadingOutlined","spin","CheckOutlined","MinusOutlined","block","orientation","famiglia","classe","marca","natura","catmerc","defaultOpts","jsonDataFetch","opts","fetchOpts","err","SimpleSelector","useState","items","setItems","useEffect","indexName","finally","treeData","checkable","onCheck","checkedKeys","newData","setCustomData","setCheckedKeys","CategorieSelector","itemsTree","setItemsTree","sottocategorie","zero","element","CategorieInEvidenzaSelector","log","ListaArticoliComponent","typeView","hoverable","cover","actions","Panel","setLoading","setSearch","setTypeView","itemsNumber","setItemsNumber","currentPagenNumber","setcurrentPagenNumber","famigliaIds","setFamigliaIds","classeIds","setClasseIds","naturaIds","setNaturaIds","marcaIds","setMarcaIds","CatMercIds","setCatMercIds","sottocategorieIds","setSottocategorieIds","inevidenzaIds","setInevidenzaIds","famiglie","classi","catmerceologiche","nature","marche","inevidenza","handleCustomData","aggregates","catmerceologica","sottocategoria","spinning","event","header","UnorderedListOutlined","AppstoreOutlined","ListaArticoli","page","scrollTo","top","behavior","defaultPageSize","showTotal","CarrelloComponent","TextArea","loadingSingleBtn","visibleSinglePop","qtaUpdate","successResult","articoli","note","calcolaTotali","qtaTot","articoliTot","rimuoviArticolo","modificaArticolo","totali","status","colore","editable","tooltip","triggerType","maxLength","offsetTop","CataloghiDetailComponent","rinominaCatalogo","visiblePop","loadingSingleBtnRemove","catalogo","eliminaCatalogo","articoliLista","t","document","print","PrinterOutlined","EditOutlined","CataloghiComponent","selectedKey","statePrecedente","catalogoArray","handleMenu","menuItem","l","CataloghiDetail","ContenutiPromozionaliComponent","ContenutiPromozionaliDetailComponent","valueToHTML","urlImageContenuto","handleChangeHtmlEditor","toHTML","checkTextNotification","excludeControls","resultSuccess","location","URLSearchParams","code","get","UserAttivaAccountComponent","UserRegistrazioneComponent","subTitle","orientationMargin","UserCompletaDatiUtenteComponent","onOkResult","handleGoHome","ProduttoreScarpe","ProduttoreBorse","ProduttoreCinture","Altro","UserCompletaDatiUtenteResultComponent","handleOkResult","handleGoLogin","App","locale","itIT","localeMessages","intl_it","lang","detectLanguage","localStorage","getItem","navigator","toLocaleLowerCase","newLang","skipLocalStorage","removeItem","newState","enUS","intl_en","frFR","intl_fr","documentElement","setItem","getCarrelloUtente","getCataloghiUtente","messages","defaultLocale","exact","path","component","Login","Users","UserDetail","UserCambioPassword","HomePrivate","Catalogo","ArticoliDetail","Carrello","Cataloghi","ContenutiPromozionali","ContenutiPromozionaliDetail","UserCompletaDatiUtente","UserCompletaDatiUtenteResult","UserPasswordDimenticata","UserResetPassword","UserAttivaAccount","UserRegistrazione","Boolean","hostname","ReactDOM","getElementById","serviceWorker","ready","registration","unregister"],"mappings":"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","file":"static/js/main.b8ba88c6.chunk.js","sourcesContent":["\r\nexport const msg_requiredField = \"E' obbligatorio inserire un valore\";\r\nexport const msg_maxLength = \"Superata la lunghezza massima consentita\";\r\nexport const msg_unableToLoadData = \"Impossibile caricare i dati\";\r\nexport const msg_unexpectedError = \"Si e' verificato un errore imprevisto: contattare l'amministratore\";\r\nexport const msg_operationOk = \"Operazione completata\";\r\nexport const msg_operationError = \"Operazione non riuscita\";\r\nexport const msg_standardValidationError = \"One or more validation errors occurred.\";\r\n\r\nexport const ruoli = {\r\n Amministratore: \"Amministratore\",\r\n Cliente: \"Cliente\",\r\n SuperAdmin: \"SuperAdmin\",\r\n};\r\n\r\nexport const policies = (user: any) => {\r\n var r = (user && user.roles) || [];\r\n return {\r\n Default: r.some((x: any) =>\r\n x === ruoli.Amministratore ||\r\n x === ruoli.Cliente,\r\n )\r\n };\r\n}\r\n\r\nexport const typeViewArticoli = {\r\n Lista: \"Lista\",\r\n Griglia: \"Griglia\",\r\n};\r\n\r\nexport enum StatoUtenteEnum {\r\n Attivo = 1,\r\n Disattivo = 2,\r\n InAttivazione = 3,\r\n AttivoInAttesaDati = 4\r\n}\r\n\r\nexport enum CategorizzazioniUser {\r\n ProduttoreScarpe = \"Produttore scarpe\",\r\n ProduttoreBorse = \"Produttore borse\",\r\n ProduttoreCinture = \"Produttore cinture\",\r\n Altro = \"Altro\"\r\n}","import { Action, Reducer } from 'redux';\r\n\r\nconst hideMenuType = 'HIDE_MENU';\r\nconst setTitleType = 'SET_TITLE';\r\nconst initialState = { hidden: false, title: \"\" };\r\n\r\n\r\n// -----------------\r\n// STATE - This defines the type of data maintained in the Redux store.\r\n\r\nexport interface LayoutState {\r\n hidden?: boolean,\r\n title: string,\r\n}\r\n\r\n// -----------------\r\n// ACTIONS - These are serializable (hence replayable) descriptions of state transitions.\r\n// They do not themselves have any side-effects; they just describe something that is going to happen.\r\n// Use @typeName and isActionType for type detection that works even after serialization/deserialization.\r\n\r\nexport interface HideMenuAction { type: typeof hideMenuType }\r\nexport interface SetTitleAction { type: typeof setTitleType, title: string }\r\n\r\n// Declare a 'discriminated union' type. This guarantees that all references to 'type' properties contain one of the\r\n// declared type strings (and not any other arbitrary string).\r\nexport type KnownAction = HideMenuAction | SetTitleAction; // | AnotherAction;\r\n\r\n// ----------------\r\n// ACTION CREATORS - These are functions exposed to UI components that will trigger a state transition.\r\n// They don't directly mutate state, but they can have external side-effects (such as loading data).\r\n\r\nexport const actionCreators = {\r\n hideMenu: () => ({ type: hideMenuType } as HideMenuAction),\r\n setTitle: (title: string) => ({ type: setTitleType, title } as SetTitleAction),\r\n};\r\n\r\n// ----------------\r\n// REDUCER - For a given state and action, returns the new state. To support time travel, this must not mutate the old state.\r\n\r\nexport const reducer: Reducer = (state: LayoutState | undefined, incomingAction: Action): LayoutState => {\r\n if (state === undefined) {\r\n return initialState;\r\n }\r\n\r\n const action = incomingAction as KnownAction;\r\n switch (action.type) {\r\n case hideMenuType:\r\n return { ...state, hidden: true };\r\n case setTitleType:\r\n return { ...state, title: action.title };\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\n\r\n\r\n\r\n//export const reducer = (state: any, action: any) => {\r\n// state = state || initialState;\r\n\r\n// if (action.type === hideMenuType) {\r\n// return { ...state, hidden: true };\r\n// };\r\n\r\n// return state;\r\n//};\r\n\r\n//export const mapStateToProps = (state: any) => {\r\n// return {\r\n// hidden: state.layout.hidden\r\n// };\r\n//};\r\n\r\n//export const mapDispatchToProps = (dispatch: any) => ({\r\n// hideMenu: () => dispatch({ type: hideMenuType }),\r\n//});\r\n\r\n","import { Action, Reducer } from 'redux';\r\nimport { StatoUtenteEnum } from '../utils/constants';\r\n\r\nconst getAccount = 'GET_ACCOUNT';\r\nconst setAccount = 'SET_ACCOUNT';\r\nconst clearAccount = 'CLEAR_ACCOUNT';\r\nconst initialState = {\r\n user: { isAuthenticated: false, name: \"\", username: \"\", roles: [], statoUtente: StatoUtenteEnum.Disattivo, isInitialState: true }\r\n};\r\n\r\n\r\n// -----------------\r\n// STATE - This defines the type of data maintained in the Redux store.\r\n\r\nexport interface User {\r\n name: string,\r\n username: string,\r\n isAuthenticated: boolean,\r\n roles: string[],\r\n statoUtente: StatoUtenteEnum,\r\n isInitialState: boolean\r\n}\r\n\r\nexport interface AccountState {\r\n user: User,\r\n}\r\n\r\n// -----------------\r\n// ACTIONS - These are serializable (hence replayable) descriptions of state transitions.\r\n// They do not themselves have any side-effects; they just describe something that is going to happen.\r\n// Use @typeName and isActionType for type detection that works even after serialization/deserialization.\r\n\r\nexport interface GetAccountAction { type: typeof getAccount }\r\nexport interface SetAccountAction { type: typeof setAccount, user: User }\r\nexport interface ClearAccountAction { type: typeof clearAccount }\r\n\r\n// Declare a 'discriminated union' type. This guarantees that all references to 'type' properties contain one of the\r\n// declared type strings (and not any other arbitrary string).\r\nexport type KnownAction = SetAccountAction | GetAccountAction | ClearAccountAction; // | AnotherAction;\r\n\r\n// ----------------\r\n// ACTION CREATORS - These are functions exposed to UI components that will trigger a state transition.\r\n// They don't directly mutate state, but they can have external side-effects (such as loading data).\r\n\r\nexport const actionCreators = {\r\n clearAccount: () => ({ type: clearAccount } as ClearAccountAction),\r\n getAccount: () => ({ type: getAccount } as GetAccountAction),\r\n setAccount: (user: User) => ({ type: setAccount, user } as SetAccountAction),\r\n};\r\n\r\n// ----------------\r\n// REDUCER - For a given state and action, returns the new state. To support time travel, this must not mutate the old state.\r\n\r\nexport const reducer: Reducer = (state: AccountState | undefined, incomingAction: Action): AccountState => {\r\n if (state === undefined) {\r\n return initialState;\r\n }\r\n\r\n //console.log(\"getcurrentuser failed\", reason);\r\n\r\n const action = incomingAction as KnownAction;\r\n switch (action.type) {\r\n case clearAccount:\r\n return {\r\n ...state, user: { ...initialState.user }\r\n };\r\n\r\n case setAccount:\r\n return {\r\n ...state, user: { ...action.user, isInitialState: false }\r\n };\r\n \r\n default:\r\n return state;\r\n }\r\n\r\n\r\n\r\n};\r\n\r\n\r\n//setTimeout(() => this.fetchCurrentUser(), 1000);\r\n\r\n\r\n//export const reducer = (state: any, action: any) => {\r\n// state = state || initialState;\r\n\r\n// if (action.type === hideMenuType) {\r\n// return { ...state, hidden: true };\r\n// };\r\n\r\n// return state;\r\n//};\r\n\r\n//export const mapStateToProps = (state: any) => {\r\n// return {\r\n// hidden: state.layout.hidden\r\n// };\r\n//};\r\n\r\n//export const mapDispatchToProps = (dispatch: any) => ({\r\n// hideMenu: () => dispatch({ type: hideMenuType }),\r\n//});\r\n\r\n","// weird gotcha - install history v4.10.1\r\n// see open issue: https://github.com/supasate/connected-react-router/issues/312#issuecomment-647082777\r\nimport { createBrowserHistory, History } from \"history\";\r\nimport { configureStore } from \"@reduxjs/toolkit\";\r\nimport { routerMiddleware, connectRouter, RouterState } from \"connected-react-router\";\r\nimport {reducers } from './';\r\n\r\nexport const history = createBrowserHistory();\r\n\r\n// combineReducers will be handled internally by configureStore\r\nconst rootReducer = (history: History) => ({\r\n ...reducers,\r\n router: connectRouter(history)\r\n});\r\n\r\nconst preloadedState = {};\r\nexport const store = configureStore({\r\n middleware: (getDefaultMiddleware) =>\r\n getDefaultMiddleware().concat(routerMiddleware(history)),\r\n reducer: rootReducer(history),\r\n preloadedState\r\n});\r\n\r\nexport interface I_AppState {\r\n articles: { articleCount: number };\r\n selection: { selected: boolean };\r\n router: RouterState;\r\n}\r\n\r\n\r\n\r\n// import { applyMiddleware, combineReducers, compose, createStore } from 'redux';\r\n// import thunk from 'redux-thunk';\r\n// import { connectRouter, routerMiddleware } from 'connected-react-router';\r\n// import { History } from 'history';\r\n// import { ApplicationState, reducers } from './';\r\n\r\n// export 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// }\r\n\r\n\r\n// import { configureStore } from '@reduxjs/toolkit';\r\n// import { createBrowserHistory } from 'history';\r\n// import { reducers } from './';\r\n\r\n// export const history = createBrowserHistory();\r\n \r\n// export const store = configureStore({\r\n// reducer: {\r\n// ...reducers,\r\n// // router: connectRouter(history),\r\n// },\r\n// middleware: [routerMiddleware(history)],\r\n \r\n// });\r\n\r\n// export default store;\r\n\r\n\r\n","import { Action, Reducer } from 'redux';\r\nimport { ShorthandPropertyAssignment } from 'typescript';\r\n\r\nconst getCarrello = 'GET_CARRELLO';\r\nconst setCarrello = 'SET_CARRELLO';\r\nconst clearCarrello = 'CLEAR_CARRELLO';\r\nconst initialState = {\r\n carrello: null\r\n};\r\n\r\n\r\n// -----------------\r\n// STATE - This defines the type of data maintained in the Redux store.\r\n\r\nexport interface ArticoloQuantita {\r\n id: ShorthandPropertyAssignment,\r\n idArticolo: string,\r\n quantita: number,\r\n idCatStatistica: string,\r\n descrizione: string,\r\n immagini: string[],\r\n immaginedefault: string\r\n}\r\n\r\nexport interface CarrelloState {\r\n carrello: ArticoloQuantita[] | null,\r\n}\r\n\r\n// -----------------\r\n// ACTIONS - These are serializable (hence replayable) descriptions of state transitions.\r\n// They do not themselves have any side-effects; they just describe something that is going to happen.\r\n// Use @typeName and isActionType for type detection that works even after serialization/deserialization.\r\n\r\nexport interface GetCarrelloAction { type: typeof getCarrello }\r\nexport interface SetCarrelloAction { type: typeof setCarrello, carrello: ArticoloQuantita[] }\r\nexport interface ClearCarrelloAction { type: typeof clearCarrello }\r\n\r\n// Declare a 'discriminated union' type. This guarantees that all references to 'type' properties contain one of the\r\n// declared type strings (and not any other arbitrary string).\r\nexport type KnownAction = SetCarrelloAction | GetCarrelloAction | ClearCarrelloAction; // | AnotherAction;\r\n\r\n// ----------------\r\n// ACTION CREATORS - These are functions exposed to UI components that will trigger a state transition.\r\n// They don't directly mutate state, but they can have external side-effects (such as loading data).\r\n\r\nexport const actionCreators = {\r\n clearCarrello: () => ({ type: clearCarrello } as ClearCarrelloAction | null),\r\n getCarrello: () => ({ type: getCarrello } as GetCarrelloAction),\r\n setCarrello: (carrello: ArticoloQuantita[]) => ({ type: setCarrello, carrello } as SetCarrelloAction),\r\n};\r\n\r\n// ----------------\r\n// REDUCER - For a given state and action, returns the new state. To support time travel, this must not mutate the old state.\r\n\r\nexport const reducer: Reducer = (state: CarrelloState | undefined, incomingAction: Action): CarrelloState => {\r\n if (state === undefined) {\r\n return initialState;\r\n }\r\n\r\n //console.log(\"getcurrentuser failed\", reason);\r\n\r\n const action = incomingAction as KnownAction;\r\n switch (action.type) {\r\n case clearCarrello:\r\n return {\r\n ...state, carrello: initialState.carrello\r\n };\r\n\r\n case setCarrello:\r\n return {\r\n ...state, carrello: { ...action.carrello }\r\n };\r\n \r\n default:\r\n return state;\r\n }\r\n\r\n\r\n\r\n};\r\n\r\n\r\n//setTimeout(() => this.fetchCurrentUser(), 1000);\r\n\r\n\r\n//export const reducer = (state: any, action: any) => {\r\n// state = state || initialState;\r\n\r\n// if (action.type === hideMenuType) {\r\n// return { ...state, hidden: true };\r\n// };\r\n\r\n// return state;\r\n//};\r\n\r\n//export const mapStateToProps = (state: any) => {\r\n// return {\r\n// hidden: state.layout.hidden\r\n// };\r\n//};\r\n\r\n//export const mapDispatchToProps = (dispatch: any) => ({\r\n// hideMenu: () => dispatch({ type: hideMenuType }),\r\n//});\r\n\r\n","import { Action, Reducer } from 'redux';\r\n\r\nconst getCataloghi = 'GET_CATALOGHI';\r\nconst setCataloghi = 'SET_CATALOGHI';\r\nconst clearCataloghi = 'CLEAR_CATALOGHI';\r\nconst initialState = {\r\n cataloghi: null\r\n};\r\n\r\n\r\n// -----------------\r\n// STATE - This defines the type of data maintained in the Redux store.\r\nexport interface Articolo{\r\n idArticolo: string, \r\n descrizione: string,\r\n immagini: string[],\r\n immaginedefault: string\r\n}\r\n\r\n\r\nexport interface Catalogo {\r\n id: string,\r\n descrizione: string,\r\n articoli: Articolo[],\r\n}\r\n\r\nexport interface CatalogoState {\r\n cataloghi: Catalogo[] | null,\r\n}\r\n\r\n// -----------------\r\n// ACTIONS - These are serializable (hence replayable) descriptions of state transitions.\r\n// They do not themselves have any side-effects; they just describe something that is going to happen.\r\n// Use @typeName and isActionType for type detection that works even after serialization/deserialization.\r\n\r\nexport interface GetCatalogoAction { type: typeof getCataloghi }\r\nexport interface SetCatalogoAction { type: typeof setCataloghi, cataloghi: Catalogo[] }\r\nexport interface ClearCatalogoAction { type: typeof clearCataloghi }\r\n\r\n// Declare a 'discriminated union' type. This guarantees that all references to 'type' properties contain one of the\r\n// declared type strings (and not any other arbitrary string).\r\nexport type KnownAction = SetCatalogoAction | GetCatalogoAction | ClearCatalogoAction; // | AnotherAction;\r\n\r\n// ----------------\r\n// ACTION CREATORS - These are functions exposed to UI components that will trigger a state transition.\r\n// They don't directly mutate state, but they can have external side-effects (such as loading data).\r\n\r\nexport const actionCreators = {\r\n clearCataloghi: () => ({ type: clearCataloghi } as ClearCatalogoAction | null),\r\n getCataloghi: () => ({ type: getCataloghi } as GetCatalogoAction),\r\n setCataloghi: (cataloghi: Catalogo[]) => ({ type: setCataloghi, cataloghi } as SetCatalogoAction),\r\n};\r\n\r\n// ----------------\r\n// REDUCER - For a given state and action, returns the new state. To support time travel, this must not mutate the old state.\r\n\r\nexport const reducer: Reducer = (state: CatalogoState | undefined, incomingAction: Action): CatalogoState => {\r\n if (state === undefined) {\r\n return initialState;\r\n }\r\n\r\n //console.log(\"getcurrentuser failed\", reason);\r\n\r\n const action = incomingAction as KnownAction;\r\n switch (action.type) {\r\n case clearCataloghi:\r\n return {\r\n ...state, cataloghi: initialState.cataloghi\r\n };\r\n\r\n case setCataloghi:\r\n return {\r\n ...state, cataloghi: { ...action.cataloghi }\r\n };\r\n \r\n default:\r\n return state;\r\n }\r\n\r\n\r\n\r\n};\r\n\r\n\r\n//setTimeout(() => this.fetchCurrentUser(), 1000);\r\n\r\n\r\n//export const reducer = (state: any, action: any) => {\r\n// state = state || initialState;\r\n\r\n// if (action.type === hideMenuType) {\r\n// return { ...state, hidden: true };\r\n// };\r\n\r\n// return state;\r\n//};\r\n\r\n//export const mapStateToProps = (state: any) => {\r\n// return {\r\n// hidden: state.layout.hidden\r\n// };\r\n//};\r\n\r\n//export const mapDispatchToProps = (dispatch: any) => ({\r\n// hideMenu: () => dispatch({ type: hideMenuType }),\r\n//});\r\n\r\n","import * as LayoutStore from './layoutStore';\r\nimport * as AccountStore from './accountStore';\r\nimport * as CarrelloStore from './carrelloStore';\r\nimport * as CataloghiStore from './cataloghiStore';\r\n\r\n// The top-level state object\r\nexport interface ApplicationState {\r\n layout: LayoutStore.LayoutState | undefined;\r\n account: AccountStore.AccountState | undefined;\r\n carrello: CarrelloStore.CarrelloState | undefined;\r\n cataloghi: CataloghiStore.CatalogoState | undefined;\r\n}\r\n\r\n// Whenever an action is dispatched, Redux will update each top-level application state property using\r\n// the reducer with the matching name. It's important that the names match exactly, and that the reducer\r\n// acts on the corresponding ApplicationState property type.\r\nexport const reducers = {\r\n layout: LayoutStore.reducer,\r\n account: AccountStore.reducer,\r\n carrello: CarrelloStore.reducer,\r\n cataloghi: CataloghiStore.reducer,\r\n};\r\n\r\n// This type can be used as a hint on action creators so that its 'dispatch' and 'getState' params are\r\n// correctly typed to match your store.\r\nexport interface AppThunkAction {\r\n (dispatch: (action: TAction) => void, getState: () => ApplicationState): void;\r\n}\r\n","import './Home.less';\r\nimport * as React from 'react';\r\nimport { Route, Redirect } from 'react-router';\r\nimport { connect } from 'react-redux';\r\nimport { Carousel, message } from 'antd';\r\nimport { ApplicationState } from '../store';\r\nimport * as AccountStore from '../store/accountStore';\r\nimport * as CarrelloStore from '../store/carrelloStore';\r\nimport * as CataloghiStore from '../store/cataloghiStore';\r\nimport BraftEditor from 'braft-editor';\r\n\r\n\r\nclass HomePrivateComponent extends React.Component {\r\n state = {\r\n contenuti: undefined as any | undefined,\r\n };\r\n\r\n componentDidMount = () => {\r\n fetch(\"api/ContenutiPromozionali/GetContenutiCarousel\", {\r\n method: \"GET\",\r\n headers: { \"Content-Type\": \"application/json; charset=utf-8\" },\r\n })\r\n .then((resp) =>\r\n resp.ok\r\n ? resp.json()\r\n : () => { message.error(\"Errore caricamento contenuti\"); }\r\n )\r\n .then((data) => { \r\n if (data.length == 0){\r\n this.setState({ contenuti: null });\r\n }\r\n this.setState({ contenuti: data });\r\n });\r\n }\r\n\r\n render() {\r\n const { contenuti } = this.state;\r\n let carousel = <>\r\n if (contenuti?.length > 0) {\r\n carousel = contenuti.map((c: any) => {\r\n return (\r\n
\r\n {/*
\r\n
\r\n
*/}\r\n \r\n
\r\n )\r\n });\r\n } else {\r\n //carousel =

N

\r\n }\r\n\r\n if (!this.state.contenuti){\r\n return null;\r\n }\r\n if (this.state.contenuti.length > 0){\r\n return (\r\n \r\n {carousel}\r\n \r\n );\r\n }\r\n return(\r\n \r\n )\r\n };\r\n\r\n}\r\n\r\nexport default connect(\r\n (state: ApplicationState) => ({ ...state.account, ...state.carrello, ...state.cataloghi }),\r\n { ...AccountStore.actionCreators, ...CarrelloStore.actionCreators, ...CataloghiStore.actionCreators }\r\n)(HomePrivateComponent);","import { Alert, Button, Checkbox, Form, Input, Card, Row, Divider, Space } from 'antd';\r\nimport * as React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { ApplicationState } from '../../store';\r\nimport * as AccountStore from '../../store/accountStore';\r\nimport * as CarrelloStore from '../../store/carrelloStore';\r\nimport * as CataloghiStore from '../../store/cataloghiStore';\r\nimport { UserOutlined, LockOutlined, LoginOutlined } from '@ant-design/icons';\r\nimport { Link } from 'react-router-dom';\r\n\r\nimport './Login.less'\r\n\r\nconst msg_welcome = \"Benvenuto\";\r\nconst msg_loginFailedDescription = \"La combinazione di username e password non è stata riconosciuta\";\r\nconst msg_loginFailed = \"Login fallita\";\r\nconst msg_username = \"Username\";\r\nconst msg_password = \"Password\";\r\nconst msg_usernameError = \"Inserire username\";\r\nconst msg_passwordError = \"Inserire password\";\r\nconst msg_rememberMe = \"Ricordami\";\r\nconst msg_passwordForgotten = \"Password dimenticata?\";\r\nconst msg_registration = \"Crea nuovo account\";\r\n\r\nclass LoginComponent extends React.Component {\r\n\r\n state = {\r\n succeded: null,\r\n error: null,\r\n loading: false,\r\n }\r\n\r\n\r\n\r\n handleSubmit = (values: any) => {\r\n this.setState({ loading: true, error: null });\r\n\r\n const minimumDelay = (ms: number) => new Promise(res => setTimeout(res, ms));\r\n\r\n const successDelay = minimumDelay(500);\r\n const errorDelay = minimumDelay(3000);\r\n\r\n this.fetchLogin(values).then(\r\n async (succeded) => {\r\n\r\n if (succeded) {\r\n await successDelay;\r\n this.setState({ loading: false, succeded: true, error: null });\r\n this.checkIdentity();\r\n var { carrello, cataloghi } = this.props;\r\n // this.setState({ articoli: carrello }); \r\n var res = await fetch(\"/api/Carrelli/GetCarrello\");\r\n var json = res.ok && await res.json();\r\n if (json) {\r\n if (json && Object.keys(json).length === 0 && Object.getPrototypeOf(json) === Object.prototype) {\r\n //Risposta vuota no carrello\r\n this.props.setCarrello([]);\r\n } else {\r\n carrello = json.articoliQta;\r\n // descrizioneLinea = json.descrizione;\r\n this.props.setCarrello(carrello);\r\n }\r\n }\r\n\r\n var res = await fetch(\"/api/Cataloghi/GetCataloghi\");\r\n var json = res.ok && await res.json();\r\n if (json) {\r\n if (json && Object.keys(json).length === 0 && Object.getPrototypeOf(json) === Object.prototype) {\r\n //Risposta vuota no carrello\r\n this.props.setCataloghi([]);\r\n } else {\r\n cataloghi = json;\r\n // descrizioneLinea = json.descrizione;\r\n this.props.setCataloghi(cataloghi);\r\n }\r\n }\r\n\r\n this.props.history.push(\"/\");\r\n return;\r\n }\r\n await errorDelay;\r\n this.setState({ loading: false, succeded: false, error: true });\r\n },\r\n async (error) => {\r\n await errorDelay;\r\n this.setState({ loading: false, succeded: false, error: true });\r\n }\r\n );\r\n };\r\n\r\n fetchLogin(values: any) {\r\n return fetch('api/account/login', {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n },\r\n credentials: 'same-origin',\r\n body: JSON.stringify(values)\r\n }).then(res => res.json());\r\n }\r\n\r\n checkIdentity = () => {\r\n var options = {\r\n method: 'GET',\r\n headers: { 'Content-Type': 'application/json; charset=utf-8' }\r\n };\r\n\r\n fetch('api/account/getcurrentuser', options)\r\n .then(async (response: any) => {\r\n const json = response.ok && await response.json();\r\n this.props.setAccount(json);\r\n })\r\n .catch((reason: any) => {\r\n //console.log(\"getcurrentuser failed\", reason);\r\n this.props.setAccount({ isAuthenticated: false });\r\n });\r\n }\r\n\r\n\r\n render() {\r\n const { succeded, error, loading } = this.state;\r\n\r\n\r\n return (\r\n \r\n\r\n \r\n
\r\n\r\n {error ? () : null}\r\n\r\n \r\n } />\r\n \r\n\r\n \r\n } type=\"password\" />\r\n \r\n\r\n \r\n }\r\n style={{ width: \"100%\" }}\r\n loading={loading}\r\n >Login\r\n \r\n\r\n \r\n \r\n {msg_rememberMe}\r\n \r\n \r\n {msg_passwordForgotten}\r\n \r\n {msg_registration}\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 connect(\r\n (state: ApplicationState) => ({ ...state.account, ...state.carrello, ...state.cataloghi }),\r\n { ...AccountStore.actionCreators, ...CarrelloStore.actionCreators, ...CataloghiStore.actionCreators }\r\n)(LoginComponent);","import * as React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport * as AccountStore from '../store/accountStore';\r\nimport * as CarrelloStore from '../store/carrelloStore';\r\nimport * as CataloghiStore from '../store/cataloghiStore';\r\nimport { ApplicationState } from '../store';\r\nimport { Avatar, Button, Card, Dropdown, Form, Row, Space, Tooltip, Menu } from 'antd';\r\nimport { UserOutlined, BellOutlined, SettingOutlined } from '@ant-design/icons';\r\nimport { Link, withRouter } from 'react-router-dom';\r\n\r\nconst { Meta } = Card;\r\n\r\nclass ZuAccountHelper extends React.Component {\r\n\r\n static defaultProps = {\r\n checkIdentityOnMount: true,\r\n checkIdentityInterval: 60,\r\n }\r\n\r\n timer?: any;\r\n\r\n componentDidMount() {\r\n //console.info(\"componentDidMount\");\r\n if (this.props.checkIdentityOnMount) {\r\n this.checkIdentity();\r\n }\r\n\r\n if (this.props.checkIdentityInterval && (this.props.checkIdentityInterval > 0)) {\r\n this.timer = setInterval(this.checkIdentity, this.props.checkIdentityInterval * 1000);\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n if (this.timer) {\r\n clearTimeout(this.timer);\r\n this.timer = undefined;\r\n }\r\n }\r\n\r\n checkIdentity = () => {\r\n var options = {\r\n method: 'GET',\r\n headers: { 'Content-Type': 'application/json; charset=utf-8' }\r\n };\r\n\r\n fetch('api/account/getcurrentuser', options)\r\n .then(async (response: any) => {\r\n const json = response.ok && await response.json();\r\n //console.log(\"auth\", json)\r\n this.props.setAccount(json);\r\n })\r\n .catch((reason: any) => {\r\n //console.log(\"getcurrentuser failed\", reason);\r\n this.props.setAccount({ isAuthenticated: false });\r\n });\r\n }\r\n\r\n handleLogout = () => {\r\n fetch('api/account/logout', {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n }\r\n })\r\n .then(res => res.json())\r\n .then(\r\n (succeded) => {\r\n if (succeded) {\r\n this.props.clearAccount();\r\n this.props.clearCarrello();\r\n this.props.clearCataloghi();\r\n this.props.history.push(\"/\");\r\n return;\r\n }\r\n\r\n console.info(\"logout failed\");\r\n },\r\n (error) => {\r\n console.error(error);\r\n }\r\n )\r\n }\r\n\r\n extractNameFromEmail = (text: string) => {\r\n let i = text.indexOf(\"@\");\r\n if (i < 0) {\r\n return text;\r\n }\r\n return text.substring(0, i);\r\n }\r\n\r\n getInitials = (text: string) => {\r\n text = this.extractNameFromEmail(text || \"\");\r\n var initials = text.replace(/[^a-zA-Z- +_\\.]/g, \"\").match(/\\b\\w/g);\r\n return (initials || []).slice(0, 2).join('').toUpperCase();\r\n };\r\n\r\n render() {\r\n const { user } = this.props;\r\n const userPrimaryInfo = user.nomeCognome || user.name || user.username;\r\n const userSecondaryInfo = user.email || user.name || user.username;\r\n const initials = this.getInitials(userPrimaryInfo);\r\n const userOverlay = \r\n\r\n \r\n \r\n {initials}\r\n
{userPrimaryInfo}
{userSecondaryInfo}
\r\n
\r\n {/* \r\n \r\n {initials}\r\n
{username}
{user.email}
\r\n
\r\n
*/}\r\n \r\n \r\n Cambio password\r\n \r\n \r\n Esci\r\n \r\n
\r\n ;\r\n\r\n if (user && user.isAuthenticated) {\r\n return (\r\n \r\n {initials}\r\n \r\n );\r\n\r\n {/**/}\r\n\r\n }\r\n\r\n return (\r\n \r\n\r\n // \r\n // Accedi\r\n // \r\n );\r\n }\r\n};\r\n\r\nexport default connect(\r\n (state: ApplicationState) => ({ ...state.account, ...state.carrello, ...state.cataloghi }),\r\n { ...AccountStore.actionCreators, ...CarrelloStore.actionCreators, ...CataloghiStore.actionCreators }\r\n)(withRouter(ZuAccountHelper));","import './Layout.less';\r\nimport logo from './logo.png';\r\nimport * as React from 'react';\r\nimport { BrowserRouter, Link } from 'react-router-dom';\r\nimport { connect } from 'react-redux';\r\nimport { ApplicationState } from '../store';\r\nimport * as AccountStore from '../store/accountStore';\r\nimport * as LayoutStore from '../store/layoutStore';\r\nimport ZuAccountHelper from '../Zerouno/ZuAccountHelper';\r\nimport { ProfileOutlined, HomeOutlined, ShoppingCartOutlined, SettingOutlined, TagsOutlined, TeamOutlined, UsergroupAddOutlined, SearchOutlined } from '@ant-design/icons';\r\n\r\nimport { Layout, Menu, Row, Button, Select, Space, Badge } from 'antd';\r\nimport { ruoli } from '../utils/constants';\r\nimport { injectIntl } from 'react-intl';\r\n\r\n\r\nconst { Header, Content, Footer, Sider } = Layout;\r\nconst { SubMenu } = Menu;\r\nconst { Option } = Select;\r\n\r\n\r\nclass LayoutComponent extends React.Component {\r\n\r\n state = {\r\n collapsed: false,\r\n selectedKeys: [\"0\"],\r\n };\r\n\r\n toggleMenu = () => {\r\n this.setState({\r\n collapsed: !this.state.collapsed,\r\n });\r\n };\r\n\r\n fillMenu = (x: any, i: number) => {\r\n // Verifica ruoli\r\n if ((x.roles.length > 0 && x.roles.filter((r: any) => this.props.user?.roles?.includes(r)).length === 0))\r\n return null;\r\n\r\n const key=`${i + 1}_${x.text}`;\r\n\r\n if (x.divider) return ;\r\n if (x.menu) return {x.menu.map(this.fillMenu)}\r\n \r\n return (\r\n \r\n \r\n {x.icon} {x.text} \r\n \r\n \r\n );\r\n }\r\n\r\n handleLanguageChange= (value:any)=>{\r\n\r\n };\r\n\r\n onClick = (values: any) => {\r\n this.setState({selectedKeys: [values.key]})\r\n }\r\n\r\n render() {\r\n const iconStyle = { fontSize: 16 }\r\n const { collapsed, selectedKeys } = this.state;\r\n\r\n const menu = [\r\n { link: \"/\", icon: , text: this.props.intl.formatMessage({ id: \"menu.home\" }), roles: []},\r\n { divider: true, roles: [ruoli.Amministratore] },\r\n { icon: , text: this.props.intl.formatMessage({ id: \"menu.amministrazione\" }), roles: [ruoli.Amministratore], menu: [\r\n { link: \"/Users\", icon: , text: this.props.intl.formatMessage({ id: \"menu.utenti\" }), roles: [ruoli.Amministratore] },\r\n ]\r\n }\r\n ];\r\n\r\n const { changeLocale,defaultLang,languages,carrello } = this.props; \r\n\r\n return (\r\n \r\n \r\n \r\n
\r\n \r\n\r\n \r\n
\r\n \r\n \"logo\"\r\n \r\n
\r\n {this.props.user.isAuthenticated &&\r\n // \r\n // }>\r\n // \r\n // Home\r\n // \r\n // \r\n // }>\r\n // \r\n // Cataloghi   \r\n // \r\n // \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {this.props.user.roles.find((x: any) => x === ruoli.Amministratore) &&\r\n // <>\r\n // }>\r\n // \r\n // Gestione utenti   \r\n // \r\n // \r\n // }>\r\n // \r\n // Contenuti promozionali     \r\n // \r\n // \r\n // \r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n \r\n // \r\n }\r\n
\r\n\r\n \r\n {this.props.user.isAuthenticated &&\r\n \r\n \r\n
\r\n\r\n \r\n\r\n {this.props.children}\r\n\r\n\r\n \r\n
Copyright © {new Date().getFullYear()} Faro Italia - Zerogroup
\r\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 connect(\r\n (state: ApplicationState) => { return { ...state.layout, ...state.account, ...state.carrello } },\r\n { ...AccountStore.actionCreators, ...LayoutStore.actionCreators }\r\n)(injectIntl(LayoutComponent));","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUAAAABBCAMAAACXZY2JAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAEXUExURcq/rrKiiaiWeaSRc6KPcaOQcrSki5+MbJ6Kasi8qqeVeKybgM3Ds8K2orWljZ+La6aUdquafqWTdaSSdMW5psO3o87EtLGhh7Wmjquaf6CMbamYfKCNbrGgh7CghqGOb8CznqqZfaqYfLOjir6xm7+xnKKPcK2dgr2vmbmrlLSljczBsLanj7Kjiqyaf7+ynamXe5+LbMq/raeVecvBsLyumMG0oMi9rLqrlbmqk7eokK6dg6iWeq+ehLutl8m+rJ6Ka62cgaaUd6+fhLipkrutlq+fhcS3pKWTdsa6p8S4pbepkczCsaWSdbqslca7qLGhiMe8qbOki6mXerKiiKGNbriqksCzn72wm8G1oLyvma6egwAAAPXNfjUAAABddFJOU///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AOGvnZAAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAOfaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pg0KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNi4wLWMwMDYgNzkuZGFiYWNiYiwgMjAyMS8wNC8xNC0wMDozOTo0NCAgICAgICAgIj4NCiAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4NCiAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0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\"","import * as React from 'react';\r\nimport { notification, message } from 'antd';\r\n\r\nconst msg_unableToLoadData = \"Impossibile caricare i dati\";\r\nconst msg_saveOk = \"Operazione completata\";\r\nconst msg_saveError = \"Operazione non riuscita\";\r\nconst msg_unexpectedError = \"Si è verificato un errore imprevisto: contattare l'amministratore\";\r\n\r\nconst msg_eliminazioneCompletata = \"Eliminazione completata\";\r\nconst msg_eliminazioneNonRiuscita = \"Eliminazione non riuscita\";\r\n\r\n//interface IZuFormDetailProps {\r\n// baseUrl: string;\r\n// form?: any;\r\n// match?: any\r\n//}\r\n\r\n//export interface IZuFormDetailState {\r\n// loading?: boolean;\r\n//}\r\n\r\nexport default class ZuFormDetail extends React.Component {\r\n\r\n constructor(props: any) {\r\n super(props);\r\n this.isNew = !(props.match && props.match.params.id) && !props.id;\r\n }\r\n\r\n isNew: boolean;\r\n\r\n\r\n state: any = {\r\n loading: false,\r\n };\r\n\r\n getDefaults = async () => {\r\n this.setState({ loading: true });\r\n\r\n const url = `${this.props.baseUrl}/Defaults`;\r\n const response = await fetch(url, {});\r\n const res = await response;\r\n this.setState({ loading: false });\r\n\r\n if (res.ok) {\r\n let data = (await res.json()) || {};\r\n //console.log(\"Default data:\", data);\r\n return await data;\r\n }\r\n\r\n //console.log(res);\r\n notification.error({ message: msg_unableToLoadData, description: msg_unexpectedError, duration: 0 });\r\n return null;\r\n }\r\n\r\n load = async (key: any) => {\r\n this.setState({ loading: true });\r\n\r\n const url = `${this.props.baseUrl}/${key}`;\r\n const response = await fetch(url, {});\r\n const res = await response;\r\n this.setState({ loading: false });\r\n\r\n if (res.ok) {\r\n\r\n let data = (await res.json()) || {};\r\n //console.log(\"Loaded data:\", data);\r\n return await data;\r\n }\r\n\r\n notification.error({ message: msg_unableToLoadData, description: msg_unexpectedError, duration: 0 });\r\n return null;\r\n }\r\n\r\n submit = async (model: any, url?: string) => {\r\n this.setState({ loading: true });\r\n\r\n let submitUrl = url || this.props.baseUrl;\r\n const response = await fetch(submitUrl, {\r\n method: this.isNew ? 'POST' : 'PUT',\r\n headers: {\r\n 'Content-Type': 'application/json; charset=utf-8'\r\n },\r\n body: JSON.stringify(model)\r\n });\r\n const res = await response;\r\n this.setState({ loading: false });\r\n\r\n if (res.ok) {\r\n message.success(msg_saveOk);\r\n return res;\r\n }\r\n\r\n notification.error({ message: msg_saveError, description: msg_unexpectedError, duration: 0 });\r\n return res;\r\n }\r\n\r\n //TODO: Uniformare con quella di ZuTable\r\n delete = async (id: any) => {\r\n this.setState({ loading: true });\r\n\r\n const url = this.props.deleteUrl || `${this.props.baseUrl}/${id}`;\r\n const response = await fetch(url, { method: 'DELETE' });\r\n const res = await response;\r\n\r\n if (res.ok) {\r\n message.success(msg_eliminazioneCompletata);\r\n }\r\n else\r\n message.error(msg_eliminazioneNonRiuscita);\r\n\r\n this.setState({ loading: false });\r\n }\r\n\r\n};\r\n\r\n","import { Button, Card, Checkbox, Col, Descriptions, Empty, Form, Input, message, notification, PageHeader, Row, Select, Tabs, Typography, } from \"antd\";\r\nimport * as React from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport { ruoli, StatoUtenteEnum } from \"../utils/constants\";\r\nimport ZuFormDetail from \"../Zerouno/ZuFormDetail\";\r\nimport { DownloadOutlined, UndoOutlined, SendOutlined } from \"@ant-design/icons\";\r\nimport { FormInstance } from \"antd/lib/form\";\r\nimport { injectIntl } from 'react-intl';\r\nimport { ApplicationState } from '../store';\r\nimport * as AccountStore from '../store/accountStore';\r\n\r\nconst { Title, Text } = Typography;\r\nconst { Option } = Select;\r\nconst ButtonGroup = Button.Group;\r\nconst { TabPane } = Tabs;\r\n\r\n\r\nclass UserDetailComponent extends ZuFormDetail {\r\n readonly title = this.props.intl.formatMessage({ id: \"utente.utente\" });\r\n formRef = React.createRef();\r\n\r\n static defaultProps = {\r\n baseUrl: \"api/Users\",\r\n };\r\n\r\n state = {\r\n data: null,\r\n passwordChanged: false,\r\n confirmChanged: false,\r\n loading: false,\r\n statoUtente: null,\r\n datiAnagrafici: [] as any,\r\n };\r\n\r\n componentDidMount() {\r\n if (!this.isNew) {\r\n this.load(this.props.match.params.id).then((data: any) => {\r\n if (data != undefined) {\r\n //data.password = \" \"; serverside\r\n //data.confirm = \" \"; serverside\r\n this.setState({ data: data, statoUtente: data.statoUtente, datiAnagrafici: data.datiAnagrafici });\r\n this.formRef.current?.setFieldsValue(data);\r\n }\r\n });\r\n } else {\r\n this.setState({ statoUtente: StatoUtenteEnum.InAttivazione });\r\n }\r\n }\r\n\r\n componentDidUpdate() {\r\n // This method is called when the route parameters change\r\n }\r\n\r\n handleSubmit = (values: any) => {\r\n let data = values;\r\n data.salvaEAttiva = false;\r\n //console.log(\"btnsalva\", data);\r\n //debugger;\r\n // var oldPassword = this.state.data?.password;\r\n // if (oldPassword) {\r\n // // forzo perche non posso verificare se la password è cambiata lato server\r\n // data.passwordChanged = values.password !== oldPassword;\r\n // }\r\n if (!data.roles) data.roles = [];\r\n this.submit(data).then((res) => {\r\n if (res?.ok) window.history.back();\r\n });\r\n };\r\n\r\n //salvaAttiva = () => {\r\n // this.formRef.current?.validateFields([\"username\", \"email\", \"nomeCognome\", \"roles\"])\r\n // .then(x => {\r\n // let data = this.formRef.current?.getFieldsValue();\r\n // data.salvaEAttiva = true;\r\n // //console.log(\"btnsalvaeattiva\", data);\r\n // if (!data.roles) data.roles = [];\r\n // this.submit(data).then((res) => {\r\n // if (res?.ok) window.history.back();\r\n // });\r\n // });\r\n //}\r\n\r\n inviaNuovaAttivazione = () => {\r\n this.formRef.current?.validateFields([\"username\", \"email\", \"nomeCognome\", \"roles\"])\r\n .then(async x => {\r\n let model = this.formRef.current?.getFieldsValue();\r\n const response = await fetch(\"api/Users/SendEmailActivation\", {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json; charset=utf-8'\r\n },\r\n body: JSON.stringify({\r\n ...model\r\n })\r\n });\r\n const res = await response;\r\n let data: any = {};\r\n\r\n if (res.ok) {\r\n notification.success({ message: \"Mail inviata\" });\r\n window.history.back();\r\n }\r\n else {\r\n message.error(\"Errore\");\r\n }\r\n });\r\n }\r\n\r\n handlePasswordBlur = (e: any) => {\r\n var value = e.target.value;\r\n if (value && value.trim() && value.trim().length > 0)\r\n this.setState({ passwordChanged: true });\r\n };\r\n handleConfirmBlur = (e: any) => {\r\n var value = e.target.value;\r\n if (value && value.trim() && value.trim().length > 0)\r\n this.setState({ confirmChanged: true });\r\n };\r\n\r\n render() {\r\n const { data, passwordChanged, confirmChanged, statoUtente, datiAnagrafici } = this.state;\r\n\r\n let options = [] as any;\r\n if (this.props.user.roles.find((x: any) => x === ruoli.SuperAdmin)) {\r\n options = Object.keys(ruoli).map((k: any) => (\r\n \r\n ));\r\n } else {\r\n options = Object.keys(ruoli).map((k: any) => (\r\n k != ruoli.SuperAdmin &&\r\n \r\n ));\r\n }\r\n\r\n const msgPasswordNonCoincidono = this.props.intl.formatMessage({ id: \"utente.msgPasswordNonCoincidono\" });\r\n const msgPasswordNonValida = this.props.intl.formatMessage({ id: \"utente.msgPasswordNonValida\" });\r\n const msgEmailValida = this.props.intl.formatMessage({ id: \"utente.msgEmailValida\" });\r\n\r\n\r\n return (\r\n <>\r\n window.history.back()}\r\n title={this.title}\r\n extra={[\r\n //statoUtente == StatoUtenteEnum.DaAttivare &&\r\n //,\r\n (statoUtente == StatoUtenteEnum.InAttivazione && !this.isNew) &&\r\n ,\r\n ,\r\n ,\r\n ]}\r\n >\r\n\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n {/*{(statoUtente == StatoUtenteEnum.DaAttivare || statoUtente == StatoUtenteEnum.InAttivazione) && !this.props.user.roles.find((x: any) => x === ruoli.SuperAdmin) ?*/}\r\n {/* */}\r\n {statoUtente == StatoUtenteEnum.InAttivazione ?\r\n \r\n <>{this.props.intl.formatMessage({ id: \"utente.statoUtente.inAttivazione\" })}\r\n \r\n :\r\n \r\n {/* Attivo */}\r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {this.props.user.roles.find((x: any) => x === ruoli.SuperAdmin) &&\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ({\r\n validator(rule, value) {\r\n var password = getFieldValue(\r\n \"password\"\r\n );\r\n if (password !== value) {\r\n return Promise.reject(\r\n msgPasswordNonCoincidono\r\n );\r\n }\r\n return Promise.resolve();\r\n },\r\n }),\r\n ]}\r\n >\r\n \r\n \r\n \r\n \r\n }\r\n
\r\n
\r\n \r\n {datiAnagrafici != null ?\r\n \r\n {datiAnagrafici.ragioneSociale}\r\n {datiAnagrafici.indirizzo}\r\n {datiAnagrafici.cap}\r\n {datiAnagrafici.citta}\r\n {(datiAnagrafici.provincia)?.toUpperCase()}\r\n {datiAnagrafici.nazione}\r\n {datiAnagrafici.partitaIva}\r\n {datiAnagrafici.codiceFiscale}\r\n {datiAnagrafici.referente}\r\n {datiAnagrafici.email}\r\n {datiAnagrafici.telefono}\r\n {datiAnagrafici.categorizzazione}\r\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 connect(\r\n (state: ApplicationState) => { return { ...state.account } },\r\n { ...AccountStore.actionCreators }\r\n)(injectIntl(UserDetailComponent));\r\n","import React from 'react'\r\nimport { Typography } from 'antd'\r\nimport moment from 'moment'\r\nconst { Text } = Typography\r\n\r\nexport const msg_search = \"Cerca\";\r\nexport const msg_confirm = \"Ok\";\r\nexport const msg_reset = \"Reset\";\r\nexport const msg_addItem = \"Aggiunge una condizione di ricerca\";\r\n\r\nexport type operatorType = \"=\" | \">\" | \"<\" | \">=\" | \"<=\" | \"!=\" | \"*\" | \"^\" | \"><\" | \"D\" | \"W\" | \"WW\" | \"M\" | \"YTD\";\r\nexport type dataType = \"number\" | \"string\" | \"date\" | \"datetime\";\r\n\r\nexport interface FilterValue {\r\n operator: operatorType;\r\n value: string;\r\n value2?: string;\r\n}\r\n\r\n\r\n// const startsWithFragment = abc\r\n\r\n// const containsFragment = xyz\r\n\r\nconst containsFragment = abc\r\nconst startsWithFragment = abc\r\n\r\nexport const operators = {\r\n // Stringhe\r\n // startsWith: { label: \"Inizia con\", key: \"^\" as operatorType, symbol: <>srt, stringType: true, numberType: false, dateType: false },\r\n contains: { label: \"Contiene\", key: \"*\" as operatorType, symbol: containsFragment, stringType: true, numberType: false, dateType: false },\r\n startsWith: { label: \"Inizia con\", key: \"^\" as operatorType, symbol: startsWithFragment, stringType: true, numberType: false, dateType: false },\r\n\r\n // Generali\r\n eq: { label: \"Uguale a\", key: \"=\" as operatorType, symbol: \"=\", stringType: true, numberType: true, dateType: true },\r\n gt: { label: \"Maggiore di\", key: \">\" as operatorType, symbol: <>>, stringType: true, numberType: true, dateType: true },\r\n lt: { label: \"Minore di\", key: \"<\" as operatorType, symbol: <><, stringType: true, numberType: true, dateType: true },\r\n ge: { label: \"Maggiore o uguale a\", key: \">=\" as operatorType, symbol: <>≥, stringType: true, numberType: true, dateType: true },\r\n le: { label: \"Minore o uguale a\", key: \"<=\" as operatorType, symbol: <>≤, stringType: true, numberType: true, dateType: true },\r\n neq: { label: \"Diverso da\", key: \"!=\" as operatorType, symbol: <>≠, stringType: true, numberType: true, dateType: true },\r\n range: { label: \"Compreso tra\", key: \"><\" as operatorType, symbol: <>><, stringType: false, numberType: false, dateType: false }, // TODO da attivare\r\n \r\n // Date \r\n today: { label: \"Oggi\", key: \"D\" as operatorType, symbol: \"D\", stringType: false, numberType: false, dateType: true },\r\n lastWeek: { label: \"Ultima settimana\", key: \"W\" as operatorType, symbol: \"W\", stringType: false, numberType: false, dateType: true },\r\n monthToDate: { label: \"Da inizio mese\", key: \"MTD\" as operatorType, symbol: \"M\", stringType: false, numberType: false, dateType: true },\r\n month: { label: \"Nel mese di\", key: \"M\" as operatorType, symbol: \"M\", stringType: false, numberType: false, dateType: true },\r\n yearToDate: { label: \"Da inizio anno\", key: \"YTD\" as operatorType, symbol: \"YTD\", stringType: false, numberType: false, dateType: true },\r\n};\r\n\r\nexport function getFilterValue(key: FilterValue | React.ReactText | string | number | undefined, defaultOperator: operatorType): FilterValue {\r\n if (key == null) return { operator: defaultOperator, value: \"\" };\r\n\r\n if (typeof(key) != 'object') {\r\n let x = key.toString();\r\n if (x.startsWith(\"{\")) {\r\n key = JSON.parse(x) as FilterValue;\r\n } else {\r\n key = { operator: defaultOperator, value: x };\r\n }\r\n }\r\n return key;\r\n}\r\n\r\n\r\nexport function composeFilterString(column: any, filterValue: any) {\r\n if(!column || column.onFilter) return null; // client-side filtering\r\n \r\n let f = getFilterValue(filterValue, \"=\");\r\n\r\n const dataType = column.dataType?.toLowerCase()\r\n\r\n let formattedValue = \"\";\r\n let value = null;\r\n let formattedValue2 = \"\";\r\n let value2 = null;\r\n\r\n let rangeEndOp = \"<=\";\r\n\r\n switch (dataType) {\r\n case \"number\":\r\n value = Number.parseFloat(f.value);\r\n if (!Number.isFinite(value)) return null;\r\n formattedValue = `${value}`;\r\n break;\r\n\r\n case \"bool\":\r\n case \"boolean\":\r\n if (typeof (f.value) === 'boolean') {\r\n formattedValue = (f.value as boolean).toString();\r\n break;\r\n }\r\n value = Number.parseFloat(f.value);\r\n if (!Number.isFinite(value)) return null;\r\n formattedValue = value > 0 ? 'true' : 'false';\r\n break;\r\n\r\n case \"date\":\r\n case \"datetime\":\r\n rangeEndOp = \"<\";\r\n\r\n value = moment(f.value || \"*INVALID*\", \"L\"); // Attenzione un parametro undefined in moment diventa la data corrente\r\n if (value.isValid())\r\n formattedValue = `\"${value.format('YYYY-MM-DD')}\"`;\r\n\r\n value2 = moment(f.value2 || \"*INVALID*\", \"L\"); // Attenzione un parametro undefined in moment diventa la data corrente\r\n if (value2.isValid())\r\n formattedValue2 = `\"${value2.add(1, \"day\").format('YYYY-MM-DD')}\"`;\r\n\r\n break;\r\n\r\n default:\r\n f = getFilterValue(filterValue, \"*\");\r\n formattedValue =`\"${f.value}\"`;\r\n value = f.value;\r\n break;\r\n }\r\n\r\n switch (f.operator) {\r\n case operators.eq.key:\r\n case operators.gt.key:\r\n case operators.lt.key:\r\n case operators.ge.key:\r\n case operators.le.key:\r\n case operators.neq.key:\r\n return `${column.dataIndex} ${f.operator} ${formattedValue}`;\r\n\r\n case operators.range.key:\r\n let s = \"\";\r\n if (formattedValue)\r\n s = `${column.dataIndex} >= ${formattedValue}`;\r\n if (formattedValue2)\r\n s += `${s && \" AND \" } ${column.dataIndex} ${rangeEndOp} ${formattedValue2}`;\r\n return s;\r\n\r\n case operators.startsWith.key:\r\n return `${column.dataIndex}.StartsWith(${formattedValue})`;\r\n\r\n case operators.contains.key:\r\n return `${column.dataIndex}.Contains(${formattedValue})`;\r\n \r\n case operators.today.key:\r\n return `${column.dataIndex} >= \"${moment(value).format('YYYY-MM-DD')}\" \\\r\n and ${column.dataIndex} < \"${moment(value).add(1, \"day\").format('YYYY-MM-DD')}\"`;\r\n\r\n case operators.month.key:\r\n return `${column.dataIndex} >= \"${moment(value).format('YYYY-MM-01')}\" \\\r\n and ${column.dataIndex} < \"${moment(value).endOf(\"month\").add(1, \"day\").format('YYYY-MM-DD')}\"`;\r\n\r\n case operators.lastWeek.key:\r\n return `${column.dataIndex} >= \"${moment(value).subtract(1, \"week\").add(1, \"day\").format('YYYY-MM-DD')}\" \\\r\n and ${column.dataIndex} < \"${moment(value).add(1, \"day\").format('YYYY-MM-DD')}\"`;\r\n\r\n case operators.yearToDate.key:\r\n return `${column.dataIndex} >= \"${moment().format('YYYY-01-01')}\" \\\r\n and ${column.dataIndex} < \"${moment(value).add(1, \"day\").format('YYYY-MM-DD')}\"`;\r\n }\r\n\r\n\r\n}\r\n","import React, { Component } from 'react'\r\nimport { Select } from 'antd'\r\nimport { SelectProps, SelectValue } from 'antd/lib/select';\r\nimport { operators } from './helpers';\r\nconst { Option } = Select;\r\n\r\nexport default class Operators extends React.Component & {type: \"string\" | \"number\" }> {\r\n\r\n render() {\r\n const op = Object.keys(operators)\r\n .map((x: any) => (operators as any)[x])\r\n .filter((x: any) => x[`${this.props.type}Type`]);\r\n \r\n return (\r\n \r\n )\r\n }\r\n}\r\n\r\n\r\n","import React from 'react';\r\nimport { Button, Input, Row, Space } from 'antd';\r\nimport { FilterValue, msg_addItem, msg_confirm, msg_reset, msg_search, getFilterValue, operators, dataType } from './helpers';\r\nimport Operators from './Operators';\r\nimport { FilterDropdownProps } from 'antd/lib/table/interface';\r\nimport { CloseCircleFilled } from '@ant-design/icons';\r\nimport { SearchOutlined, PlusOutlined } from '@ant-design/icons';\r\n\r\n\r\nexport interface StringSearchProps {\r\n filterDropdownProps: FilterDropdownProps,\r\n dataIndex: string,\r\n dataType: dataType,\r\n title: string,\r\n showOperators: boolean,\r\n}\r\n\r\nexport class StringSearch extends React.Component {\r\n static defaultProps = {\r\n showOperators: true,\r\n };\r\n\r\n public get emptyFilterItem() : FilterValue {\r\n return { operator: this.props.dataType == \"number\" ? operators.eq.key : operators.contains.key, value: \"\" };\r\n }\r\n \r\n searchInput: any;\r\n\r\n getFilterValuesFromKeys = (keys: React.ReactText[] | undefined) : FilterValue[] => {\r\n if (!keys || keys.length == 0) return [];\r\n return keys.map(x => {\r\n return getFilterValue(x, operators.contains.key);\r\n });\r\n };\r\n\r\n addSearchItem = () => {\r\n const { setSelectedKeys, selectedKeys, } = this.props.filterDropdownProps;\r\n let filters = this.getFilterValuesFromKeys(selectedKeys);\r\n filters.push(this.emptyFilterItem);\r\n // Alla creazione il primo filtro non esiste, quindi ne aggiungo due\r\n if (filters.length === 1) filters.push(this.emptyFilterItem); \r\n setSelectedKeys && setSelectedKeys(filters.map(x => JSON.stringify(x)));\r\n setTimeout(() => this.searchInput.focus());\r\n };\r\n\r\n removeSearchItem = (index: any) => {\r\n const { setSelectedKeys, selectedKeys } = this.props.filterDropdownProps;\r\n let filters = this.getFilterValuesFromKeys(selectedKeys);\r\n filters = filters.filter((x: any, i: number) => i !== index);\r\n setSelectedKeys && setSelectedKeys(filters.map(x => JSON.stringify(x)));\r\n };\r\n\r\n confirm = () => {\r\n const { confirm, setSelectedKeys, selectedKeys } = this.props.filterDropdownProps;\r\n // Rimuove filtri vuoti\r\n const filters = this.getFilterValuesFromKeys(selectedKeys).filter((x: FilterValue) => x.value ? true : false);\r\n setSelectedKeys && setSelectedKeys(filters.map(x => JSON.stringify(x)));\r\n confirm && confirm();\r\n };\r\n \r\n reset = () => {\r\n const { clearFilters, confirm } = this.props.filterDropdownProps;\r\n clearFilters && clearFilters();\r\n confirm && confirm();\r\n }\r\n\r\n render() {\r\n const { selectedKeys, setSelectedKeys, clearFilters } = this.props.filterDropdownProps;\r\n const { title, dataType } = this.props;\r\n const operatorComboType = dataType == \"number\" ? \"number\" : \"string\";\r\n \r\n let inputs = this.getFilterValuesFromKeys(selectedKeys);\r\n if (inputs.length == 0) {\r\n inputs = [this.emptyFilterItem];\r\n }\r\n\r\n const canReset = JSON.stringify(inputs) != JSON.stringify([this.emptyFilterItem]);\r\n\r\n return (<>\r\n
\r\n {inputs.map((v: any, i: number) => \r\n \r\n {\r\n inputs[i] = { ...v, operator: e };\r\n setSelectedKeys && setSelectedKeys(inputs.map(x => JSON.stringify(x)));\r\n }} /> \r\n }\r\n suffix={inputs.length > 1 &&\r\n this.removeSearchItem(i)} \r\n style={{ color: \"rgba(0, 0, 0, .25)\", fontSize: 12 }} \r\n />\r\n }\r\n ref={node => { this.searchInput = node }}\r\n placeholder={`${msg_search} ${title}`}\r\n value={inputs[i].value}\r\n onChange={e => {\r\n inputs[i] = { ...v, value: e.target.value };\r\n setSelectedKeys && setSelectedKeys(inputs.map(x => JSON.stringify(x)));\r\n }\r\n }\r\n onPressEnter={this.confirm}\r\n style={{ width: \"100%\", marginBottom: 8, display: 'block' }}\r\n />\r\n )\r\n }\r\n
\r\n\r\n \r\n \r\n \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 { Button, Radio, DatePicker, Row } from 'antd';\r\nimport { FilterValue, operators, operatorType, msg_reset, msg_confirm } from './helpers';\r\nimport moment from 'moment'\r\nimport { FilterDropdownProps } from 'antd/lib/table/interface';\r\nimport { SearchOutlined } from '@ant-design/icons';\r\n\r\nconst { MonthPicker } = DatePicker;\r\n\r\nexport interface DateSearchProps {\r\n filterDropdownProps: FilterDropdownProps,\r\n dataIndex: string,\r\n title: string,\r\n}\r\n\r\nconst radioStyle = {\r\n display: 'block',\r\n};\r\n\r\nconst pickerStyle = {\r\n width: 180,\r\n marginLeft: 24,\r\n};\r\n\r\nexport class DateSearch extends React.Component {\r\n\r\n state = {\r\n value: undefined as operatorType | undefined,\r\n month: moment().startOf(\"month\"),\r\n startDate: moment().subtract(1, \"month\"),\r\n endDate: moment(),\r\n }\r\n\r\n getFilterValuesFromKeys = (keys: React.ReactText[] | undefined) => {\r\n if (!keys || keys.length == 0) return [];\r\n return (keys).map(x => JSON.parse(x.toString()));\r\n };\r\n\r\n computeFilterValue(): FilterValue | undefined {\r\n if (!this.state.value) return;\r\n\r\n let f = { operator: this.state.value, value: moment().format(\"L\") } as FilterValue;\r\n\r\n if (f.operator === operators.month.key) {\r\n f.value = this.state.month?.format(\"L\");\r\n }\r\n\r\n if (f.operator === operators.range.key) {\r\n f.value = this.state.startDate?.format(\"L\");\r\n f.value2 = this.state.endDate?.format(\"L\");\r\n }\r\n\r\n return f;\r\n }\r\n\r\n confirm = () => {\r\n const { confirm, setSelectedKeys } = this.props.filterDropdownProps;\r\n\r\n let filter = this.computeFilterValue();\r\n if (!filter) {\r\n setSelectedKeys && setSelectedKeys([]);\r\n } else {\r\n setSelectedKeys && setSelectedKeys([JSON.stringify(filter)]);\r\n }\r\n\r\n confirm && confirm();\r\n };\r\n\r\n reset = () => {\r\n this.setState({ value: undefined });\r\n const { clearFilters, confirm } = this.props.filterDropdownProps;\r\n clearFilters && clearFilters();\r\n confirm && confirm();\r\n }\r\n\r\n radioChange = (value: operatorType) => {\r\n this.setState({ value: value }, () => {\r\n let dontConfirm = [operators.month.key, operators.range.key];\r\n if (!dontConfirm.find(x => x === value))\r\n {\r\n this.confirm();\r\n }\r\n });\r\n }\r\n\r\n render() {\r\n const { selectedKeys, clearFilters } = this.props.filterDropdownProps;\r\n const { value } = this.state;\r\n const canReset = value != null;\r\n\r\n return (<>\r\n
\r\n this.radioChange(e.target.value)} value={value}>\r\n {operators.today.label}\r\n {operators.lastWeek.label}\r\n {operators.yearToDate.label}\r\n {operators.month.label}\r\n this.setState({ month: e })}\r\n onFocus={() => {\r\n this.radioChange(operators.month.key);\r\n }}\r\n\r\n />\r\n \r\n {operators.range.label}\r\n \r\n\r\n \r\n {\r\n this.setState({ startDate: e });\r\n }}\r\n onFocus={(e: any) => {\r\n this.radioChange(operators.range.key);\r\n }}\r\n />\r\n \r\n \r\n {\r\n this.setState({ endDate: e });\r\n }}\r\n onFocus={(e: any) => {\r\n this.radioChange(operators.range.key);\r\n }}\r\n />\r\n \r\n\r\n \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 { StringSearch } from './StringSearch';\r\nimport { DateSearch } from './DateSearch';\r\nimport { dataType } from './helpers';\r\nimport { FilterDropdownProps } from 'antd/lib/table/interface';\r\nimport { SearchOutlined } from '@ant-design/icons';\r\n\r\nexport class SearchDropdown {\r\n\r\n dropDown: any;\r\n\r\n getColumnSearchProps = (dataIndex: string, title: string, dataType: dataType) => {\r\n\r\n return ({\r\n filterDropdown: (filterDropdownProps: FilterDropdownProps) => {\r\n //console.log(\"filterDropdown\");\r\n\r\n if (dataType?.toLowerCase() === \"date\") {\r\n return ();\r\n }\r\n return ( this.dropDown = node }\r\n />);\r\n },\r\n //filterIcon: (filtered: any) => ,\r\n onFilterDropdownVisibleChange: (visible: any) => {\r\n if (visible) {\r\n setTimeout(() => this.dropDown?.searchInput?.focus());\r\n }\r\n },\r\n\r\n })\r\n };\r\n}\r\n","import * as React from 'react';\r\nimport { Input, Table, Popconfirm, message, Tooltip } from 'antd';\r\n\r\nimport { TableProps, ColumnProps } from 'antd/lib/table';\r\nimport { SearchDropdown } from \"./SearchDropdown\";\r\nimport { composeFilterString } from './helpers';\r\nimport { PaginationConfig } from 'antd/lib/pagination';\r\nimport { DeleteOutlined } from '@ant-design/icons';\r\nimport { ColumnsType, ColumnGroupType } from 'antd/lib/table/interface';\r\n\r\nconst { Search } = Input;\r\n\r\nconst msg_eliminazioneCompletata = \"Eliminazione completata\";\r\nconst msg_confermiCancellazione = \"Confermi la cancellazione?\";\r\nconst msg_eliminazioneNonRiuscita = \"Eliminazione non riuscita\";\r\nconst msg_erroreCaricamento = \"Caricamento dati non riuscito\";\r\nconst msg_search = \"Ricerca\";\r\n\r\ninterface ZuTableProps extends TableProps {\r\n baseUrl: string,\r\n queryUrl?: string,\r\n deleteUrl?: string,\r\n remoteFiltering: boolean,\r\n renderDeleteAction: boolean,\r\n afterDataFetched(data: any): any,\r\n pageSize: number,\r\n filter: string,\r\n searchBarRender?: (globalSearch: any) => {},\r\n}\r\n\r\ninterface ZuTableState {\r\n filters: any[],\r\n loading: boolean,\r\n rows: any[],\r\n pagination: PaginationConfig,\r\n sorter: any,\r\n globalFilterValue: string,\r\n};\r\n\r\n/*\r\n Versione: 22.04.12\r\n Changelog:\r\n 22.04.12 MB Update antd 4.19.5, bug fix filtri e paginazione\r\n 21.10.15 MB Aggiunta proprietà per filtro aggiuntivo in lettura dati\r\n 20.12.15 fix pagination\r\n 20.05.27 antd v4\r\n*/\r\n\r\nexport default class ZuTable extends React.Component, ZuTableState> {\r\n\r\n constructor(props: ZuTableProps) {\r\n super(props)\r\n\r\n // Verifica se è richiesto un ordinamento iniziale\r\n let sorter = {};\r\n this.selectManyColumns(props.columns).forEach((item: any) => {\r\n if (item.defaultSortOrder) {\r\n sorter = { field: item.dataIndex || item.key, order: item.defaultSortOrder };\r\n }\r\n });\r\n\r\n // Verifica se è richiesto un filtro iniziale\r\n let filters = {} as any;\r\n this.selectManyColumns(props.columns).forEach((item: any) => {\r\n if (item.defaultFilteredValue) {\r\n filters[item.dataIndex || item.key] = item.defaultFilteredValue;\r\n }\r\n });\r\n\r\n this.state = {\r\n filters,\r\n loading: false,\r\n rows: [],\r\n pagination: { current: 1, pageSize: this.props.pageSize, showSizeChanger: true },\r\n sorter,\r\n globalFilterValue: \"\",\r\n }\r\n //console.log(\"ctor\", this.props, this.state);\r\n }\r\n\r\n static defaultProps = {\r\n remoteFiltering: true,\r\n renderDeleteAction: true,\r\n afterDataFetched: () => { },\r\n pageSize: 10,\r\n filter: null,\r\n }\r\n\r\n componentDidMount() {\r\n this.fetch();\r\n }\r\n\r\n\r\n private selectManyColumns(columns: ColumnsType | undefined) {\r\n\r\n let ret: ColumnsType | undefined = [];\r\n\r\n if(columns != undefined){\r\n for (let index = 0; index < columns.length; index++) {\r\n const e = columns[index];\r\n const children = (e as ColumnGroupType).children;\r\n if(children)\r\n {\r\n ret.push(...this.selectManyColumns(children));\r\n }\r\n else{\r\n ret.push(e);\r\n }\r\n }\r\n }\r\n\r\n return ret;\r\n }\r\n \r\n\r\n private getGlobalFilterColumns() {\r\n return this.selectManyColumns(this.props.columns)!.filter((i: any) => i.globalFilter);\r\n }\r\n\r\n \r\n fetch = async () => {\r\n this.setState({ loading: true });\r\n\r\n const { pagination, sorter, filters, globalFilterValue } = this.state;\r\n const additionalFilter = this.props.filter;\r\n\r\n // Filtri per colonna\r\n let colString = Object.keys(filters).map((item: any) => {\r\n let f = (filters[item] || []).map((i: any) => {\r\n return composeFilterString(this.selectManyColumns(this.props.columns).find((i: any) => i.dataIndex == item), i);\r\n });\r\n let filterStr = f.filter((i: any) => i).join(\" or \");\r\n if (filterStr) filterStr = `(${filterStr})`\r\n return filterStr;\r\n }).filter(i => i).join(\" and \");\r\n\r\n // Filtro globale sulle colonne con globalFilter=\"true\"\r\n let globalString = \"\";\r\n if ((globalFilterValue || \"\").toString().trim()) {\r\n globalString = (this.getGlobalFilterColumns() || [])\r\n .map((item: any) => composeFilterString(item, globalFilterValue))\r\n .filter(i => i).join(\" or \");\r\n }\r\n\r\n // Composizione del filtro complessivo\r\n let filterStr = [colString, globalString].filter(i => (i || \"\").toString().trim()).join(\") and (\");\r\n if (filterStr) filterStr = `(${filterStr})`\r\n\r\n // Aggiunta filtro opzionale da props\r\n if (additionalFilter) {\r\n if (filterStr)\r\n filterStr = `(${additionalFilter}) and (${filterStr})`;\r\n else\r\n filterStr = additionalFilter;\r\n }\r\n\r\n let params = {\r\n take: pagination.pageSize,\r\n skip: ((pagination.current || 1) - 1) * (pagination.pageSize || 0),\r\n orderby: `${sorter.field || ''}${(sorter.order || '') == 'descend' ? ' desc' : ''}`,\r\n filter: filterStr,\r\n }\r\n\r\n //console.log(\"fetch\", params);\r\n const url = this.props.queryUrl || `${this.props.baseUrl}/Query`;\r\n const response = await fetch(url, {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json; charset=utf-8'\r\n },\r\n body: JSON.stringify({\r\n ...params\r\n })\r\n });\r\n const res = await response;\r\n let data: any = {};\r\n\r\n if (res.ok) {\r\n data = await res.json() || {};\r\n\r\n data = this.props.afterDataFetched(data) || data;\r\n\r\n const pagination = { ...this.state.pagination, total: data.totalRows };\r\n\r\n this.setState({ loading: false, rows: data.rows, pagination });\r\n }\r\n else {\r\n message.error(msg_erroreCaricamento);\r\n this.setState({ loading: false });\r\n }\r\n }\r\n\r\n //TODO: Uniformare con quella di ZuFormDetail\r\n delete = async (id: any) => {\r\n this.setState({ loading: true });\r\n\r\n const url = this.props.deleteUrl || `${this.props.baseUrl}/${id}`;\r\n const response = await fetch(url, { method: 'DELETE' });\r\n const res = await response;\r\n\r\n if (res.ok)\r\n {\r\n message.success(msg_eliminazioneCompletata);\r\n this.fetch();\r\n }\r\n else\r\n message.error(msg_eliminazioneNonRiuscita);\r\n\r\n this.setState({ loading: false });\r\n }\r\n\r\n renderDeleteAction = (text: any, record: any) => (\r\n \r\n this.delete(record.id)}>\r\n \r\n \r\n \r\n );\r\n\r\n handleTableChange = (pagination: any, filters: any, sorter: any, extra: any) => {\r\n //console.log(\"handleTableChange\", pagination, filters, sorter, this.state.filters);\r\n\r\n if (this.props.onChange) this.props.onChange(pagination, filters, sorter, extra);\r\n\r\n const pager = { ...this.state.pagination, current: pagination.current, pageSize: pagination.pageSize };\r\n const filter = { ...this.state.filters, ...filters };\r\n\r\n this.setState({\r\n pagination: pager,\r\n sorter: { ...sorter },\r\n filters: filter,\r\n }, \r\n () => {if (this.props.remoteFiltering) { this.fetch(); }\r\n });\r\n };\r\n\r\n handleGlobalFilterSubmit = (value: any) => {\r\n this.setState({ globalFilterValue: value }, this.fetch);\r\n }\r\n\r\n\r\n render() {\r\n\r\n const actionsColumn: ColumnProps = {\r\n render: this.renderDeleteAction,\r\n };\r\n\r\n let searcher = new SearchDropdown();\r\n\r\n // applicazione dei filtri ricorsiva sui children\r\n const cb = (col: any) => {\r\n const children = col.children;\r\n if (children) {\r\n return { ...col, children: children.map(cb) };\r\n }\r\n else {\r\n let searchProps = col.filter ? searcher.getColumnSearchProps(col.dataIndex, col.title, col.dataType) : null;\r\n return { ...col, ...searchProps };\r\n }\r\n }\r\n let columns = (this.props.columns || []).map(cb);\r\n\r\n columns = this.props.renderDeleteAction ? [...columns, actionsColumn] : columns;\r\n\r\n // Bug Table Antd (3.25.1): key non sarebbe necessario se specificato dataIndex, ma in \r\n // alcuni casi non funziona l'ordinamento in presenzas di filtri se key non è valorizzato\r\n columns.forEach(i => { i.key = i.key || i.dataIndex });\r\n\r\n const globalSearchHint = `${msg_search} ` + this.getGlobalFilterColumns().map(i => i.title).join(\", \");\r\n\r\n let globalSearch = null;\r\n \r\n if (this.getGlobalFilterColumns().length > 0) {\r\n globalSearch = \r\n \r\n \r\n ;\r\n }\r\n\r\n if (this.props.searchBarRender) {\r\n globalSearch = this.props.searchBarRender(globalSearch);\r\n }\r\n\r\n return (\r\n <>\r\n
{globalSearch}
\r\n\r\n \r\n\r\n \r\n )\r\n };\r\n};\r\n\r\n","import { Button, Row, Space, Tag, Tooltip, Typography } from \"antd\";\r\nimport * as React from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { ruoli, StatoUtenteEnum } from \"../utils/constants\";\r\nimport ZuTable from \"../Zerouno/ZuTable\";\r\nimport { injectIntl } from 'react-intl';\r\nimport { ApplicationState } from '../store';\r\nimport * as AccountStore from '../store/accountStore';\r\nimport { InfoCircleOutlined } from '@ant-design/icons';\r\n\r\nconst { Title, Text } = Typography;\r\n\r\n\r\nclass UsersComponent extends React.Component {\r\n private readonly url = \"api/Users\";\r\n private readonly detailUrl = \"/UserDetail\";\r\n private readonly title = this.props.intl.formatMessage({ id: \"utente.utenti\" });\r\n\r\n render() {\r\n const msg_new = this.props.intl.formatMessage({ id: \"global.nuovo\" });\r\n const columns: any = [\r\n // {\r\n // title: 'Id',\r\n // dataIndex: 'id',\r\n // key: 'id',\r\n // },\r\n {\r\n title: this.props.intl.formatMessage({ id: \"utente.username\" }),\r\n dataIndex: \"username\",\r\n filter: true,\r\n sorter: true,\r\n globalFilter: true,\r\n defaultSortOrder: \"ascend\",\r\n render: (value: any, record: any) => (\r\n {value}\r\n ),\r\n },\r\n {\r\n title: this.props.intl.formatMessage({ id: \"utente.nomeCognome\" }),\r\n dataIndex: \"nomeCognome\",\r\n filter: true,\r\n sorter: true,\r\n globalFilter: true,\r\n }, {\r\n title: this.props.intl.formatMessage({ id: \"utente.email\" }),\r\n dataIndex: \"email\",\r\n key: \"email\",\r\n globalFilter: true,\r\n sorter: true,\r\n filter: true,\r\n },\r\n {\r\n title: this.props.intl.formatMessage({ id: \"utente.ruoli\" }),\r\n filters: Object.keys(ruoli).map((r: any) => {\r\n return {\r\n text: r,\r\n value: (ruoli as any)[r],\r\n };\r\n }),\r\n onFilter: (value: any, record: any) => {\r\n return record.roles.includes(value);\r\n },\r\n render: (value: any, record: any) => (\r\n \r\n {record.roles?.map((r: string) => {\r\n let color = \"\";\r\n\r\n switch (r) {\r\n case ruoli.Amministratore:\r\n color = \"red\";\r\n break;\r\n\r\n case ruoli.Cliente:\r\n color = \"green\";\r\n break;\r\n }\r\n\r\n return (\r\n \r\n {r.toUpperCase()}\r\n \r\n );\r\n })}\r\n \r\n ),\r\n },\r\n {\r\n title: {this.props.intl.formatMessage({ id: \"utente.statoUtente\" })}\r\n \r\n {this.props.intl.formatMessage({ id: \"utente.statoUtente.inAttivazione\" })}L'utente si è registrato, ma non ha ancora cliccato il link di verifica della mail\r\n {this.props.intl.formatMessage({ id: \"utente.statoUtente.attivoInAttesaDati\" })}L'utente ha completato l'attivazione, ma non ha ancora compilato i dati anagrafici\r\n {this.props.intl.formatMessage({ id: \"utente.statoUtente.attivo\" })}L'utente ha completato l'attivazione e ha inserito i dati anagrafici\r\n {this.props.intl.formatMessage({ id: \"utente.statoUtente.nonAttivo\" })}L'utente è stato disabilitato e non può accedere al sistema\r\n \r\n }\r\n >\r\n ,\r\n dataIndex: \"statoUtente\",\r\n dataType: \"number\",\r\n filters:\r\n [{ value: StatoUtenteEnum.InAttivazione, text: this.props.intl.formatMessage({ id: \"utente.statoUtente.inAttivazione\" }) },\r\n { value: StatoUtenteEnum.AttivoInAttesaDati, text: this.props.intl.formatMessage({ id: \"utente.statoUtente.attivoInAttesaDati\" }) },\r\n { value: StatoUtenteEnum.Attivo, text: this.props.intl.formatMessage({ id: \"utente.statoUtente.attivo\" }) },\r\n { value: StatoUtenteEnum.Disattivo, text: this.props.intl.formatMessage({ id: \"utente.statoUtente.nonAttivo\" }) },\r\n ],\r\n render: (value: any) =>\r\n <>\r\n {value == StatoUtenteEnum.Attivo && this.props.intl.formatMessage({ id: \"utente.statoUtente.attivo\" })}\r\n {value == StatoUtenteEnum.Disattivo && this.props.intl.formatMessage({ id: \"utente.statoUtente.nonAttivo\" })}\r\n {value == StatoUtenteEnum.InAttivazione && this.props.intl.formatMessage({ id: \"utente.statoUtente.inAttivazione\" })}\r\n {value == StatoUtenteEnum.AttivoInAttesaDati && this.props.intl.formatMessage({ id: \"utente.statoUtente.attivoInAttesaDati\" })}\r\n \r\n },\r\n ];\r\n\r\n return (\r\n
\r\n \r\n \r\n <div>{this.title}</div>\r\n \r\n \r\n \r\n \r\n \r\n\r\n {\r\n return record.id;\r\n }}\r\n style={{\r\n backgroundColor: \"white\",\r\n }}\r\n >\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default connect(\r\n (state: ApplicationState) => { return { ...state.account } },\r\n { ...AccountStore.actionCreators }\r\n)(injectIntl(UsersComponent));\r\n","import { Button, Card, Col, Form, Input, notification, Row, Space, } from \"antd\";\r\nimport * as React from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport ZuFormDetail from \"../Zerouno/ZuFormDetail\";\r\nimport { FormInstance } from \"antd/lib/form\";\r\nimport { injectIntl } from 'react-intl';\r\nimport ReCAPTCHA from \"react-google-recaptcha\";\r\nimport { msg_operationError, msg_standardValidationError, msg_unexpectedError } from \"../utils/constants\";\r\n\r\nclass UserCambioPasswordComponent extends ZuFormDetail {\r\n readonly title = this.props.intl.formatMessage({ id: \"utente.utente\" });\r\n formRef = React.createRef();\r\n recaptchaRef = React.createRef();\r\n\r\n static defaultProps = {\r\n baseUrl: \"api/Users\",\r\n };\r\n\r\n state = {\r\n data: null,\r\n passwordChanged: false,\r\n confirmChanged: false, \r\n captcha: false,\r\n loading: false,\r\n };\r\n\r\n componentDidMount() {\r\n // if (!this.isNew) {\r\n // this.load(this.props.match.params.id).then((data: any) => {\r\n // if (data != undefined) {\r\n // //data.password = \" \"; serverside\r\n // //data.confirm = \" \"; serverside\r\n // this.setState({ data: data });\r\n // this.formRef.current?.setFieldsValue(data);\r\n // }\r\n // });\r\n // }\r\n }\r\n\r\n componentDidUpdate() {\r\n // This method is called when the route parameters change\r\n }\r\n\r\n handleSubmit = async (values: any) => {\r\n this.setState({ loading: true });\r\n let data = {\r\n ...values,\r\n RecaptchaToken: this.recaptchaRef?.current?.getValue()\r\n };\r\n\r\n // var oldPassword = this.state.data?.password;\r\n // if (oldPassword) {\r\n // // forzo perche non posso verificare se la password è cambiata lato server\r\n // data.passwordChanged = values.password !== oldPassword;\r\n // } \r\n // this.submit(data).then((res) => {\r\n // if (res?.ok) window.history.back();\r\n // });\r\n const response = await fetch(\"api/Account/ChangePassword\", {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json; charset=utf-8'\r\n },\r\n body: JSON.stringify({\r\n ...data\r\n })\r\n });\r\n const res = await response;\r\n\r\n if (res.ok) {\r\n // data = await (res.ok && res.json()) || {};\r\n notification.success({ message: 'Password cambiata con successo' })\r\n this.setState({ loading: false });\r\n window.history.back();\r\n }\r\n else {\r\n //reset captcha\r\n this.recaptchaRef.current.reset();\r\n let json = await response?.json();\r\n if (typeof json.message === 'string' ||json.message instanceof String) {\r\n notification.error({\r\n \"message\": msg_standardValidationError,\r\n \"description\": <>{json.message},\r\n \"duration\": 60\r\n });\r\n }\r\n else{\r\n notification.error({\r\n \"message\": msg_standardValidationError,\r\n \"description\": <>{json.message.map((x:any)=>

{x.description}

)},\r\n \"duration\": 60\r\n });\r\n }\r\n\r\n this.setState({ loading: false });\r\n }\r\n };\r\n\r\n handlePasswordBlur = (e: any) => {\r\n var value = e.target.value;\r\n if (value && value.trim() && value.trim().length > 0)\r\n this.setState({ passwordChanged: true });\r\n };\r\n handleConfirmBlur = (e: any) => {\r\n var value = e.target.value;\r\n if (value && value.trim() && value.trim().length > 0)\r\n this.setState({ confirmChanged: true });\r\n };\r\n onReCaptchaChange = (value: any) => { \r\n this.setState({\r\n captcha: value,\r\n });\r\n };\r\n\r\n render() {\r\n const { data, passwordChanged, confirmChanged } = this.state;\r\n\r\n const msgPasswordNonCoincidono = this.props.intl.formatMessage({ id: \"utente.msgPasswordNonCoincidono\" });\r\n const msgPasswordNonValida = this.props.intl.formatMessage({ id: \"utente.msgPasswordNonValida\" });\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ({\r\n validator(rule, value) {\r\n var password = getFieldValue(\r\n \"newPassword\"\r\n );\r\n if (password !== value) {\r\n return Promise.reject(\r\n msgPasswordNonCoincidono\r\n );\r\n }\r\n return Promise.resolve();\r\n },\r\n }),\r\n ]}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\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 injectIntl(\r\n connect()(UserCambioPasswordComponent)\r\n)\r\n","export default \"data:image/png;base64,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\"","import * as React from 'react';\r\nimport { Select, Spin, message, Col, Row } from 'antd';\r\nimport { SelectProps, SelectValue } from 'antd/lib/select';\r\n\r\nconst { Option } = Select;\r\n\r\nconst msg_loadingError = \"Caricamento dati non riuscito\";\r\nconst msg_selectAnItem = \"Seleziona un elemento\";\r\n\r\n/*\r\n versione : 22.05.16\r\n Changelog :\r\n 22.05.16 Utilizzo InitialData come set di dati iniziale\r\n 21.11.05 stripe ExcludeFilterOnIdLoookup + fix multiple\r\n 21.11.02 ExcludeFilterOnIdLoookup\r\n 21.03.04 CaseInsensitiveSearch\r\n 20.09.30 bugfix additionalfilter su ricerca\r\n 20.09.25 fix initialFilterById\r\n 20.09.24 filterById e initialFilterById in multiple mode\r\n 20.09.14 aggiunto renderItem\r\n 20.09.11 applicati filtri base anche a filterById\r\n 20.05.08 prof filter\r\n 20.03.04 antd v4\r\n TODO : \r\n - filtri per tipi dato diversi da stringa (ora solo \"contains\")\r\n - Gestire initialData anche componentDidUpdate?\r\n - Il dato letto da filterById dovrebbe finire in state.initialData o cmq essere cachato?\r\n - Letture pagine successive\r\n - Chiamata eventi originali delle pros onChange, onSearch, onDropdownVisibleChange?\r\n*/\r\n\r\nexport interface ZuSelectProps extends SelectProps {\r\n initialData: any[];\r\n url: string;\r\n pageSize: number;\r\n searchColumns: string | string[] | null | undefined;\r\n sortColumns: string | string[] | null | undefined;\r\n valueColumn: string;\r\n textColumn: string;\r\n filter: string;\r\n transformData: (dataRow: any) => {};\r\n renderItem?: (item: any) => React.ReactNode;\r\n caseInsensitiveSearch?: boolean;\r\n excludeFilterOnIdLoookup?: boolean;\r\n}\r\n\r\nexport default class ZuSelect extends React.Component, {}> {\r\n\r\n static defaultProps = {\r\n initialData: [],\r\n url: null,\r\n pageSize: 30,\r\n searchColumns: null, //textColumn se null\r\n sortColumns: null,\r\n valueColumn: \"value\",\r\n textColumn: \"text\",\r\n filter: null,\r\n transformData: (dataRow: any) => dataRow,\r\n }\r\n\r\n state = {\r\n data: this.props.initialData,\r\n initialData: this.props.initialData,\r\n value: undefined,\r\n loading: false,\r\n pagination: { totalRows: 0, current: 1 },\r\n };\r\n\r\n componentDidMount() {\r\n //console.log(\"select did mount\",this.props, this.state);\r\n this.handleSearch = debounce(this.handleSearch, 400);\r\n if (this.props.value) {\r\n this.initialFilterById();\r\n }\r\n }\r\n\r\n componentDidUpdate(propsPrecedenti: any, statePrecedenti: any) {\r\n //console.log(\"select did update\",this.props, propsPrecedenti, this.state, statePrecedenti);\r\n // Carica il dato per id se non esiste tra quelli presenti\r\n if (this.props.value && this.props.value != propsPrecedenti.value) {\r\n this.initialFilterById();\r\n }\r\n }\r\n\r\n initialFilterById() {\r\n const { data } = this.state;\r\n const { value, valueColumn, mode } = this.props;\r\n const stateValues = this.state.value || [];\r\n\r\n let searchValueInStateData = (v: VT | undefined) => data.find((f: any) => f[valueColumn] == v);\r\n\r\n let exists: boolean | undefined = true;\r\n if (mode == \"multiple\") {\r\n if (Array.isArray(value) && value.length > 0) {\r\n var values = value as Array;\r\n // esistono valori non presenti nello state ?\r\n // - quindi o situazione iniziale o valore settato dall'esterno\r\n // - se nello state allora li sta settando la select e va evitato il fetch\r\n var newValues = values.filter(v => !stateValues.find(x => x == v)).length > 0;\r\n if (newValues) {\r\n // tutti i valori sono nello state (non esistono valori che non sono nello state)\r\n exists = values.filter(v => !searchValueInStateData(v)).length == 0;\r\n }\r\n }\r\n else\r\n return;\r\n }\r\n else {\r\n // singolo : il valore è nello state\r\n exists = searchValueInStateData(value);\r\n }\r\n\r\n if (!exists) {\r\n this.filterById(value);\r\n }\r\n }\r\n\r\n filterString = async (filter: any) => {\r\n //TODO: utilizzare string | string[] per campi ************************************\r\n\r\n let params = {\r\n take: this.props.pageSize,\r\n skip: ((this.state.pagination.current || 1) - 1) * (this.props.pageSize || 0),\r\n orderby: `${this.getComlumnNames(this.props.sortColumns || this.props.textColumn)}`,\r\n filter: `${this.getComlumnFiltersString(this.props.searchColumns || this.props.textColumn, filter)}`,\r\n select: `new (${this.getComlumnNames(this.props.textColumn)}, ${this.props.valueColumn})`,\r\n }\r\n\r\n this.fetch(params);\r\n }\r\n\r\n filterById = async (id: any) => {\r\n var filterById = `${this.props.valueColumn} = \"${id}\"`;\r\n var take = 1;\r\n\r\n if (this.props.mode == \"multiple\") {\r\n if (Array.isArray(id) && id.length > 0) {\r\n filterById = id.map(x => `${this.props.valueColumn} = \"${x}\"`).join(' or ');\r\n take = id.length;\r\n }\r\n else\r\n return;\r\n }\r\n\r\n let filter = (this.props.filter && !this.props.excludeFilterOnIdLoookup)\r\n ? `(${this.props.filter}) and (${filterById})` : filterById;\r\n\r\n let params = {\r\n take: take,\r\n skip: 0,\r\n orderby: \"\",\r\n filter: filter,\r\n select: `new (${this.props.textColumn}, ${this.props.valueColumn})`,\r\n }\r\n\r\n this.fetch(params);\r\n }\r\n\r\n getComlumnNames(value: string | string[] | null | undefined) {\r\n if (Array.isArray(value)) {\r\n return value.join(\",\");\r\n }\r\n\r\n return value || \"\";\r\n }\r\n\r\n getComlumnFiltersString(value: string | string[] | null | undefined, filter?: string) {\r\n //console.log(\"getComlumnFiltersString\", value, filter)\r\n\r\n let additionalFilter = this.props.filter || \"\";\r\n\r\n if (!filter) return additionalFilter;\r\n if (!value) return additionalFilter;\r\n\r\n if (this.props.caseInsensitiveSearch) {\r\n filter = filter.toUpperCase();\r\n }\r\n\r\n const f = `.Contains(\"${filter}\")`;\r\n\r\n let res = \"\";\r\n if (Array.isArray(value)) {\r\n if (value.length == 0) return additionalFilter;\r\n\r\n if (this.props.caseInsensitiveSearch) {\r\n value = value.map((item: any) => { return `${item}.ToUpper()` });\r\n }\r\n\r\n res = value.join(`${f} or `).concat(f);\r\n } else {\r\n if (this.props.caseInsensitiveSearch) {\r\n value = `${value}.ToUpper()`;\r\n }\r\n\r\n res = value.concat(f);\r\n }\r\n\r\n return additionalFilter ? `(${additionalFilter}) and (${res})` : res;\r\n }\r\n\r\n fetch = async (params: any) => {\r\n //console.log(\"fetch\", params, this.props, this.state);\r\n this.setState({ data: [], loading: true });\r\n\r\n const url = this.props.url;\r\n const response = await fetch(url, {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json; charset=utf-8'\r\n },\r\n body: JSON.stringify({\r\n ...params\r\n })\r\n });\r\n const res = await response;\r\n let data: any = {};\r\n\r\n if (res.ok) {\r\n data = await (res.ok && res.json()) || {};\r\n let transformedData = data.rows.map(this.props.transformData);\r\n const pagination = { totalRows: data.totalRows };\r\n this.setState({ loading: false, data: transformedData, pagination });\r\n }\r\n else {\r\n message.error(msg_loadingError);\r\n this.setState({ loading: false });\r\n }\r\n }\r\n\r\n handleSearch = (search: string) => {\r\n this.filterString(search);\r\n 'function' === typeof this.props.onSearch && this.props.onSearch.apply(this, [search]);\r\n }\r\n\r\n handleChange = (value: any, option: any) => {\r\n this.setState({\r\n value,\r\n loading: false,\r\n });\r\n 'function' === typeof this.props.onChange && this.props.onChange.apply(this, [value, option]);\r\n };\r\n\r\n // Caricamento valori senza filtro alla open della select\r\n handleDropdownVisibleChange = (open: boolean) => {\r\n if (open) {\r\n this.filterString(\"\");\r\n }\r\n 'function' === typeof this.props.onDropdownVisibleChange && this.props.onDropdownVisibleChange.apply(this, [open]);\r\n }\r\n\r\n renderItem = (item: any) => {\r\n const { valueColumn, textColumn, renderItem } = this.props;\r\n return renderItem != undefined ? renderItem(item) : item[textColumn];\r\n }\r\n\r\n render() {\r\n const { loading, data, value } = this.state;\r\n\r\n const {\r\n // https://stackoverflow.com/questions/45598659/extending-component-event-handler-props-in-react\r\n onChange, onSearch, onDropdownVisibleChange,\r\n\r\n // Strip delle props specifiche di ZuSelect (per evitare React does not recognize the `xxx` prop on a DOM element)\r\n initialData, url, pageSize, searchColumns, sortColumns, valueColumn, textColumn, filter, transformData, renderItem, caseInsensitiveSearch, excludeFilterOnIdLoookup,\r\n\r\n // Il resto passato \r\n ...props } = this.props;\r\n\r\n return (\r\n : null}\r\n filterOption={false}\r\n style={{ width: '100%' }}\r\n\r\n onSearch={this.handleSearch}\r\n onChange={this.handleChange}\r\n onDropdownVisibleChange={this.handleDropdownVisibleChange}\r\n\r\n {...props}\r\n >\r\n {data.map((item: any) => (\r\n \r\n ))}\r\n \r\n\r\n );\r\n }\r\n}\r\n\r\nfunction debounce(cb: T, wait = 20) {\r\n var h: any;\r\n let callable: any = (...args: any) => {\r\n clearTimeout(h);\r\n h = setTimeout(() => cb(...args), wait);\r\n };\r\n return callable as T;\r\n};\r\n\r\n\r\n","import * as React from 'react';\r\nimport ZuSelect from '../../Zerouno/ZuSelect';\r\nimport { Typography } from \"antd\";\r\nimport { LabeledValue, SelectValue } from 'antd/lib/select';\r\nconst { Text } = Typography;\r\n\r\n\r\n//TODO: Temporaneo per progetto Faro\r\n\r\nexport default class ZuSelectElasticFaro extends ZuSelect {\r\n\r\n getSelectValue = (value: string | number | LabeledValue) => {\r\n return Object.keys(value).find(x => x == \"value\") ? (value as LabeledValue).value : value;\r\n }\r\n\r\n filterById = async (id: SelectValue | null) => {\r\n \r\n var ids;\r\n\r\n if (this.props.mode == \"multiple\") {\r\n if (!Array.isArray(id) || id.length == 0) return;\r\n \r\n ids = id.map(x => this.getSelectValue(x));\r\n take = id.length;\r\n }\r\n else\r\n {\r\n var value = this.getSelectValue(id as string | number | LabeledValue);\r\n if (value == null) return;\r\n \r\n var take = 1;\r\n ids = [value];\r\n }\r\n\r\n let filter = (this.props.filter && !this.props.excludeFilterOnIdLoookup)\r\n ? `(${this.props.filter})` : null;\r\n\r\n let params = {\r\n take: take,\r\n skip: 0,\r\n orderby: \"\",\r\n filter: filter,\r\n customData: {ids: ids },\r\n select: `new (${this.props.textColumn}, ${this.props.valueColumn})`,\r\n }\r\n\r\n this.fetch(params);\r\n }\r\n\r\n}\r\n\r\n\r\n","import * as React from 'react';\r\nimport ZuSelectElasticFaro from './ZuSelectElasticFaro';\r\nimport { Typography } from \"antd\";\r\nconst { Text } = Typography;\r\n\r\nexport default class CatStatisticheSelect extends React.Component {\r\n\r\n render() {\r\n return (\r\n \r\n\r\n );\r\n }\r\n\r\n}\r\n\r\n\r\n","import * as React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { ApplicationState } from '../store';\r\nimport * as AccountStore from '../store/accountStore';\r\nimport * as CarrelloStore from '../store/carrelloStore';\r\nimport * as CataloghiStore from '../store/cataloghiStore';\r\nimport { FormInstance } from \"antd/lib/form\";\r\nimport { Card, Col, Row, Space, Typography, Image, Descriptions, Divider, Form, InputNumber, Button, Menu, Dropdown, Modal, Input, PageHeader, message, notification, Spin, Empty } from 'antd';\r\nimport { EyeOutlined, DownOutlined, LoadingOutlined, MinusOutlined, PlusOutlined, CheckOutlined, ShoppingCartOutlined } from '@ant-design/icons';\r\nimport { msg_requiredField } from '../utils/constants';\r\nimport ZuFormDetail from '../Zerouno/ZuFormDetail';\r\nimport noImg from './noImg.png';\r\nimport CatStatisticheSelect from './select/CatStatisticheSelect';\r\n\r\nconst { Title, Paragraph } = Typography;\r\nconst BASEPATHIMMAGINI = \"StaticFiles\";\r\n\r\nclass ArticoliDetailComponent extends ZuFormDetail {\r\n formRef = React.createRef();\r\n formRefNewWishlist = React.createRef();\r\n\r\n state = {\r\n articolo: [] as any,\r\n cataloghi: [] as any,\r\n src: undefined,\r\n visible: false,\r\n currentImg: 0,\r\n creaCatalogo: false,\r\n loadingBtn: false,\r\n loadingAggiuntaCatalogo: false,\r\n visibleUpdateQta: false,\r\n quantita: 1,\r\n loadingPreventivo: false,\r\n articoloNonTrovato: false,\r\n }\r\n\r\n componentDidUpdate = (propsPrecedenti: any) => {\r\n if (propsPrecedenti.cataloghi != this.props.cataloghi) {\r\n let cataloghi = Object.values(this.props.cataloghi);\r\n this.setState({ cataloghi: cataloghi });\r\n }\r\n }\r\n\r\n async componentDidMount() {\r\n\r\n const url = `api/Articoli/${this.props.match.params.id}`;\r\n const response = await fetch(url, {});\r\n const res = await response;\r\n let articolo = {} as any;\r\n if (res.ok) {\r\n articolo = (await res.json()) || {};\r\n\r\n var src = null;\r\n var currentImg = 0; \r\n\r\n if (articolo.immaginedefault) {\r\n src = articolo.immaginedefault;\r\n currentImg = articolo?.immagini?.indexof(articolo.immaginedefault);\r\n } else {\r\n if (articolo?.immagini?.length > 0) src = articolo.immagini[0];\r\n }\r\n\r\n let cataloghi = [] as any;\r\n if (this.props.cataloghi != null) {\r\n cataloghi = Object.values(this.props.cataloghi);\r\n }\r\n\r\n this.formRef.current?.setFieldsValue({ quantita: 1 });\r\n this.setState({ articolo: articolo, src: src, currentImg: currentImg, cataloghi: cataloghi })\r\n }\r\n else {\r\n this.setState({ articolo: articolo, src: src, currentImg: 0, cataloghi: [], articoloNonTrovato: true })\r\n }\r\n }\r\n\r\n aggiornaCataloghi = async () => {\r\n var res = await fetch(\"/api/Cataloghi/GetCataloghi\");\r\n var json = res.ok && await res.json();\r\n if (json) {\r\n if (json && Object.keys(json).length === 0 && Object.getPrototypeOf(json) === Object.prototype) {\r\n //Risposta vuota no carrello\r\n this.props.setCataloghi([]);\r\n this.setState({ creaCatalogo: false, loadingBtn: false, loadingAggiuntaCatalogo: false });\r\n return;\r\n } else {\r\n let cataloghi = json;\r\n // descrizioneLinea = json.descrizione;\r\n this.props.setCataloghi(cataloghi);\r\n notification.success({ message: 'Articolo aggiunto al catalogo' })\r\n this.setState({ creaCatalogo: false, loadingBtn: false, loadingAggiuntaCatalogo: false });\r\n return;\r\n }\r\n }\r\n }\r\n\r\n\r\n aggiungiArticoloAlCatalogo = async (idCatalogo: any) => {\r\n this.setState({ loadingAggiuntaCatalogo: true });\r\n let model = { idCatalogo: idCatalogo, idArticolo: this.state.articolo.id };\r\n\r\n const response = await fetch(\"api/Cataloghi/AddArticolo\", {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json; charset=utf-8'\r\n },\r\n body: JSON.stringify({\r\n ...model\r\n })\r\n });\r\n const res = await response;\r\n let data: any = {};\r\n\r\n if (res.ok) {\r\n // data = await (res.ok && res.json()) || {};\r\n setTimeout(this.aggiornaCataloghi, 1000);\r\n }\r\n else {\r\n message.error(\"Errore\");\r\n this.setState({ loadingAggiuntaCatalogo: false });\r\n }\r\n }\r\n\r\n creaCatalogoAggiungiArticolo = async (values: any) => {\r\n this.setState({ loadingAggiuntaCatalogo: true });\r\n let model = { descrizione: values.nomeCatalogo, idArticolo: this.state.articolo.id };\r\n\r\n const response = await fetch(\"api/Cataloghi/CreateCatalogoAddArticolo\", {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json; charset=utf-8'\r\n },\r\n body: JSON.stringify({\r\n ...model\r\n })\r\n });\r\n const res = await response;\r\n let data: any = {};\r\n\r\n if (res.ok) {\r\n // data = await (res.ok && res.json()) || {};\r\n setTimeout(this.aggiornaCataloghi, 1000);\r\n }\r\n else {\r\n message.error(\"Errore\");\r\n this.setState({ loadingAggiuntaCatalogo: false });\r\n }\r\n }\r\n\r\n aggiornaCarrello = async () => {\r\n var res = await fetch(\"/api/Carrelli/GetCarrello\");\r\n var json = res.ok && await res.json();\r\n if (json) {\r\n if (json && Object.keys(json).length === 0 && Object.getPrototypeOf(json) === Object.prototype) {\r\n //Risposta vuota no carrello\r\n this.props.setCarrello([]);\r\n this.setState({ loadingBtn: false });\r\n return;\r\n } else {\r\n let carrello = json.articoliQta;\r\n // descrizioneLinea = json.descrizione;\r\n this.props.setCarrello(carrello);\r\n this.setState({ loadingBtn: false });\r\n const btn = (\r\n \r\n );\r\n notification.success({ message: 'Articolo aggiunto al carrello', description: btn, key: 'articoloaggiuntocarrello' })\r\n return;\r\n }\r\n }\r\n\r\n }\r\n\r\n aggiungiArticoloAlCarrello = async () => {\r\n this.setState({ loadingBtn: true });\r\n let model = { idArticolo: this.state.articolo.id, quantita: this.state.quantita, idCatStatistica: this.formRef.current?.getFieldValue(\"colore\") };\r\n\r\n const response = await fetch(\"api/Carrelli/AddArticolo\", {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json; charset=utf-8'\r\n },\r\n body: JSON.stringify({\r\n ...model\r\n })\r\n });\r\n const res = await response;\r\n let data: any = {};\r\n\r\n if (res.ok) {\r\n // data = await (res.ok && res.json()) || {};\r\n setTimeout(this.aggiornaCarrello, 1000);\r\n }\r\n else {\r\n message.error(\"Errore\");\r\n this.setState({ loadingBtn: false });\r\n }\r\n }\r\n\r\n richiediPreventivo = async () => {\r\n this.setState({ loadingPreventivo: true })\r\n const { articolo } = this.state;\r\n let model = [] as any;\r\n let d = { idArticolo: articolo.id, descrizione: articolo.descrizione, quantita: this.state.quantita };\r\n model.push(d);\r\n\r\n const response = await fetch(\"api/Carrelli/GetPreventivoArticolo\", {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json; charset=utf-8'\r\n },\r\n body: JSON.stringify({\r\n listaArticoli: model\r\n })\r\n });\r\n const res = await response;\r\n let data: any = {};\r\n\r\n if (res.ok) {\r\n // data = await (res.ok && res.json()) || {};\r\n notification.success({ message: 'Richiesta preventivo inviata con successo' })\r\n this.setState({ loadingPreventivo: false })\r\n }\r\n else {\r\n message.error(\"Errore\");\r\n this.setState({ loadingPreventivo: false })\r\n }\r\n }\r\n\r\n render() {\r\n const { visible, src, articolo, currentImg, creaCatalogo, loadingBtn, loadingAggiuntaCatalogo, visibleUpdateQta, quantita, loadingPreventivo, articoloNonTrovato } = this.state;\r\n const menuListe = (\r\n \r\n {(this.state.cataloghi || []).map((x: any) =>\r\n this.aggiungiArticoloAlCatalogo(x.id)}>{x.descrizione}\r\n )}\r\n this.setState({ creaCatalogo: true })} style={{ color: '#1890ff' }}>+ Crea un catalogo\r\n \r\n );\r\n\r\n return (\r\n <>\r\n {creaCatalogo &&\r\n this.formRefNewWishlist.current?.submit()}\r\n onCancel={() => this.setState({ creaCatalogo: false })}\r\n maskClosable={false}\r\n forceRender={true} // necessario !!!\r\n width={800}\r\n okButtonProps={{ loading: loadingAggiuntaCatalogo }}\r\n >\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n }\r\n window.history.back()}\r\n title={\"Articolo\"}\r\n >\r\n \r\n {articoloNonTrovato ?\r\n \r\n \r\n \r\n :\r\n \r\n \r\n \r\n \r\n \r\n \r\n {articolo?.immagini?.length > 0 ?\r\n (articolo.immagini || []).map((x: any, i: number) =>\r\n this.setState({ src: x, currentImg: i })}\r\n style={{ cursor: 'pointer', objectFit: 'cover', objectPosition: 'center center', width: 75, height: 75 }}\r\n />\r\n )\r\n :\r\n \r\n }\r\n \r\n \r\n \r\n {articolo?.immagini?.length > 0 ?\r\n (<>\r\n }}\r\n width={'70%'}\r\n // height={'auto'}\r\n src={`${BASEPATHIMMAGINI}/${src}?t=${articolo.ultimamodifica}`}\r\n onClick={() => this.setState({ visible: true })}\r\n style={{ aspectRatio: '1/1', objectFit: 'cover', objectPosition: 'center center' }}\r\n />\r\n
\r\n this.setState({ visible: vis }), current: currentImg }}>\r\n {(articolo.immagini || []).map((x: any) => )}\r\n \r\n
\r\n )\r\n :\r\n (\r\n \r\n )\r\n }\r\n \r\n
\r\n \r\n \r\n {articolo.id}\r\n {articolo.descrizione}\r\n {articolo.descrizionelunga && {articolo.descrizionelunga}}\r\n
\r\n \r\n \r\n {this.state.cataloghi?.length > 0 ?\r\n this.aggiungiArticoloAlCatalogo(this.state.cataloghi[0].id)} overlay={menuListe} icon={}>\r\n {this.state.cataloghi[0].descrizione}\r\n \r\n :\r\n \r\n }\r\n {loadingAggiuntaCatalogo && } />}\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n {/* */}\r\n {visibleUpdateQta ?\r\n \r\n this.setState({ quantita: value })}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n Scheda prodotto\r\n \r\n {articolo.famiglia}\r\n {articolo.classe}\r\n {articolo.marca}\r\n {articolo.natura}\r\n {articolo.catmerc}\r\n \r\n \r\n
\r\n }\r\n \r\n );\r\n };\r\n};\r\n\r\nexport default connect(\r\n (state: ApplicationState) => ({ ...state.account, ...state.carrello, ...state.cataloghi }),\r\n { ...AccountStore.actionCreators, ...CarrelloStore.actionCreators, ...CataloghiStore.actionCreators }\r\n)(ArticoliDetailComponent);","const defaultOpts = {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'X-Requested-With': 'XMLHttpRequest', //=>Unauthorized invece di RedirectToLogin\r\n },\r\n}\r\n\r\nexport interface JsonDataFetchResult {\r\n data?: T;\r\n response?: Response;\r\n}\r\nexport interface JsonDataFetchErrorResult {\r\n data?: T;\r\n response?: Response;\r\n error?: any;\r\n}\r\n\r\n/*\r\n versione : 22.10.20\r\n Changelog :\r\n 22.10.20 nuova struttura + lettura data su error\r\n*/\r\n\r\nexport async function jsonDataFetch(url: string, opts?: any) {\r\n let res;\r\n let data;\r\n let err;\r\n\r\n try {\r\n\r\n const fetchOpts = { ...defaultOpts, ...opts }\r\n const response = await fetch(url, fetchOpts);\r\n\r\n res = await response;\r\n data = await res.json();\r\n }\r\n catch (e) {\r\n err = e;\r\n }\r\n\r\n if (res && res.ok) {\r\n return { data: data, response: res } as JsonDataFetchResult;\r\n }\r\n else {\r\n throw { data: data, response: res, error: err } as JsonDataFetchErrorResult;\r\n }\r\n}\r\n\r\n/*\r\n * ESEMPIO \r\n * \r\n \r\n this.setState({ loading: true });\r\n jsonDataFetch<{ qtaDisponibileLotto: number }>(url, fetchOpts)\r\n .then(x => {\r\n if (x.data) {\r\n this.setState({ disponibilita: x.data.qtaDisponibileLotto });\r\n }\r\n })\r\n .catch((x: JsonDataFetchErrorResult<{ message: string }>) => {\r\n if (x.data && x.data.message) {\r\n message.error(this.props.intl.formatMessage({ id: x.data.message }));)\r\n }\r\n })\r\n .finally(() => {\r\n this.setState({ loading: false });\r\n });\r\n*/","import * as React from 'react';\r\nimport { List, message, Tree, TreeSelect, Typography } from 'antd';\r\nimport { FormattedMessage, injectIntl } from 'react-intl';\r\nimport { useEffect, useState } from 'react';\r\nimport { jsonDataFetch, JsonDataFetchErrorResult } from '../../Zerouno/jsonDataFetch';\r\nimport { Checkbox } from 'antd';\r\n\r\nconst {Text} = Typography;\r\n\r\ninterface IProps {\r\n indexName: string;\r\n filter?: string;\r\n bordered?: boolean;\r\n ids?: any[];\r\n setCustomData: (customData: any) => void,\r\n customData?: any,\r\n}\r\n\r\nexport default function SimpleSelector(props: IProps) {\r\n\r\n const [items, setItems] = useState([] as any[]);\r\n\r\n useEffect(() => {\r\n const fetchOpts = {\r\n body: JSON.stringify({ take: 200, skip: 0, orderby: \"\", /*filter: props.filter,*/ customData: { ids: props.ids?.map(x => x.key) } })\r\n }; \r\n\r\n jsonDataFetch(`api/Query/${props.indexName}`, fetchOpts)\r\n .then(x => {\r\n if (x.data) {\r\n let rows = x.data?.rows || [];\r\n let items = rows.map((i: any) => (\r\n {\r\n key: i.id, \r\n value: i.id, \r\n title: i.descrizione, \r\n }));\r\n setItems(items);\r\n }\r\n })\r\n .catch((x: JsonDataFetchErrorResult<{ message: string }>) => {\r\n if (x.data && x.data.message) {\r\n //TODO: Come gestiamo l'intl in questo progetto?\r\n //message.error(this.props.intl.formatMessage({ id: x.data.message }));)\r\n }\r\n })\r\n .finally(() => {\r\n \r\n });\r\n\r\n }, [props.ids, props.filter]);\r\n\r\n function setCheckedKeys (checkedKeys: any) {\r\n let { customData, indexName } = props;\r\n let newData = {...customData};\r\n newData[indexName] = checkedKeys;\r\n props.setCustomData(newData);\r\n }\r\n\r\n return (\r\n <>\r\n\r\n {/* { {item.title} ({item.key})}\r\n /> } */}\r\n\r\n \r\n setCheckedKeys(checkedKeys)}\r\n />\r\n \r\n \r\n );\r\n}\r\n\r\n","import * as React from 'react';\r\nimport { Tree, TreeSelect, Typography } from 'antd';\r\nimport { FormattedMessage, injectIntl } from 'react-intl';\r\nimport { useEffect, useState } from 'react';\r\nimport { jsonDataFetch, JsonDataFetchErrorResult } from '../../Zerouno/jsonDataFetch';\r\n\r\nconst {Text} = Typography;\r\n\r\ninterface IProps {\r\n indexName: string;\r\n filter?: string;\r\n bordered?: boolean;\r\n ids: any[],\r\n setCustomData: (customData: any) => void,\r\n customData?: any,\r\n}\r\n\r\nexport default function CategorieSelector(props: IProps) {\r\n\r\n const [items, setItems] = useState([] as any[]);\r\n const [itemsTree, setItemsTree] = useState([] as any[]);\r\n\r\n useEffect(() => {\r\n const fetchOpts = {\r\n body: JSON.stringify({ take: 200, skip: 0, orderby: \"\", /*filter: props.filter,*/ customData: { ids: props.ids?.map(x => x.key) } })\r\n };\r\n\r\n jsonDataFetch(`api/Query/categorie`, fetchOpts)\r\n .then(x => {\r\n if (x.data) {\r\n let rows = x.data?.rows || [];\r\n let items = rows.map((i: any) => (\r\n {\r\n key: 'c.' + i.id,\r\n value: 'c.' + i.id,\r\n title: i.descrizione,\r\n children: i.sottocategorie.map((i: any) => i.id)\r\n }));\r\n\r\n let itemsTree = rows.map((i: any) => (\r\n {\r\n key: 'c.' + i.id,\r\n value: 'c.' + i.id,\r\n title: i.descrizione\r\n }));\r\n setItems(items);\r\n setItemsTree(itemsTree);\r\n }\r\n })\r\n .catch((x: JsonDataFetchErrorResult<{ message: string }>) => {\r\n if (x.data && x.data.message) {\r\n //TODO: Come gestiamo l'intl in questo progetto?\r\n //message.error(this.props.intl.formatMessage({ id: x.data.message }));)\r\n }\r\n })\r\n .finally(() => {\r\n\r\n });\r\n \r\n }, [props.ids, props.filter]);\r\n\r\n function setCheckedKeys (checkedKeys: any) { \r\n let { customData, indexName } = props;\r\n let zero = [] as any;\r\n checkedKeys.forEach((element: any) => {\r\n let categoria = (items.find((i:any)=> i.key == element));\r\n (categoria.children).forEach((e: any)=>zero.push(e));\r\n });\r\n\r\n // let one = zero.filter((item: any) => !(item.startsWith('c.')));\r\n // let two = one.map((item: any)=> parseInt(item.replace(\"s.\",\"\")));\r\n\r\n let newData = {...customData};\r\n newData[indexName] = zero;\r\n\r\n props.setCustomData(newData);\r\n }\r\n\r\n return (\r\n <>\r\n setCheckedKeys(checkedKeys)}\r\n />\r\n \r\n );\r\n}\r\n\r\n","import * as React from 'react';\r\nimport { Tree, TreeSelect, Typography } from 'antd';\r\nimport { FormattedMessage, injectIntl } from 'react-intl';\r\nimport { useEffect, useState } from 'react';\r\nimport { jsonDataFetch, JsonDataFetchErrorResult } from '../../Zerouno/jsonDataFetch';\r\n\r\nconst {Text} = Typography;\r\n\r\ninterface IProps {\r\n indexName: string;\r\n filter?: string;\r\n bordered?: boolean;\r\n ids: any[],\r\n setCustomData: (customData: any) => void,\r\n customData?: any,\r\n}\r\n\r\nexport default function CategorieInEvidenzaSelector(props: IProps) {\r\n\r\n const [items, setItems] = useState([] as any[]);\r\n\r\n useEffect(() => {\r\n const fetchOpts = {\r\n body: JSON.stringify({ take: 200, skip: 0, orderby: \"\", /*filter: props.filter,*/ customData: { ids: props.ids?.map(x => x.key) } })\r\n }; \r\n\r\n jsonDataFetch(`api/Query/categorie`, fetchOpts)\r\n .then(x => {\r\n if (x.data) {\r\n let rows = x.data?.rows || [];\r\n let items = [] as any;\r\n rows.map((i: any) => (\r\n //{\r\n //key: 'c.' + i.id, \r\n //value: 'c.' + i.id, \r\n //title: i.descrizione, \r\n i.sottocategorie.map((i: any) => (\r\n items.push({\r\n key: i.id,\r\n value: 's.' + i.id,\r\n title: i.descrizione\r\n })))\r\n //}\r\n ));\r\n setItems(items);\r\n }\r\n })\r\n .catch((x: JsonDataFetchErrorResult<{ message: string }>) => {\r\n if (x.data && x.data.message) {\r\n //TODO: Come gestiamo l'intl in questo progetto?\r\n //message.error(this.props.intl.formatMessage({ id: x.data.message }));)\r\n }\r\n })\r\n .finally(() => {\r\n\r\n });\r\n \r\n }, [props.ids, props.filter]);\r\n\r\n function setCheckedKeys (checkedKeys: any) {\r\n console.log(checkedKeys);\r\n \r\n let { customData, indexName } = props; \r\n\r\n // let one = checkedKeys.filter((item: any) => !(item.startsWith('c.')));\r\n // let two = one.map((item: any)=> parseInt(item.replace(\"s.\",\"\")));\r\n\r\n let newData = {...customData};\r\n newData[indexName] = checkedKeys;\r\n\r\n props.setCustomData(newData);\r\n }\r\n\r\n return (\r\n <>\r\n setCheckedKeys(checkedKeys)}\r\n />\r\n \r\n );\r\n}\r\n\r\n","import * as React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { ApplicationState } from '../store';\r\nimport * as AccountStore from '../store/accountStore';\r\nimport * as CarrelloStore from '../store/carrelloStore';\r\nimport * as CataloghiStore from '../store/cataloghiStore';\r\nimport Form, { FormInstance } from \"antd/lib/form\";\r\nimport { Card, Col, Row, Image, List, Dropdown, Button, message, notification, Menu, Modal, Input } from 'antd';\r\nimport { DownOutlined } from '@ant-design/icons';\r\nimport { msg_requiredField, typeViewArticoli } from '../utils/constants';\r\nimport { Link } from 'react-router-dom';\r\nimport noImg from './noImg.png';\r\nimport ZuFormDetail from '../Zerouno/ZuFormDetail';\r\n\r\nconst { Meta } = Card;\r\nconst BASEPATHIMMAGINI = \"StaticFiles\";\r\n\r\nclass ListaArticoliComponent extends ZuFormDetail {\r\n formRefNewWishlist = React.createRef();\r\n\r\n state = {\r\n cataloghi: [] as any,\r\n loadingAggiuntaCatalogo: false,\r\n creaCatalogo: false,\r\n idArticolo: null,\r\n }\r\n\r\n componentDidUpdate = (propsPrecedenti: any) => {\r\n if (propsPrecedenti.cataloghi != this.props.cataloghi) {\r\n let cataloghi = Object.values(this.props.cataloghi);\r\n this.setState({ cataloghi: cataloghi });\r\n }\r\n }\r\n\r\n async componentDidMount() {\r\n let cataloghi = [] as any;\r\n if (this.props.cataloghi != null) {\r\n cataloghi = Object.values(this.props.cataloghi);\r\n }\r\n\r\n this.setState({ cataloghi: cataloghi })\r\n }\r\n\r\n aggiungiArticoloAlCatalogo = async (idCatalogo: any, idArticolo: any) => {\r\n this.setState({ loadingAggiuntaCatalogo: true });\r\n let model = { idCatalogo: idCatalogo, idArticolo: idArticolo };\r\n\r\n const response = await fetch(\"api/Cataloghi/AddArticolo\", {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json; charset=utf-8'\r\n },\r\n body: JSON.stringify({\r\n ...model\r\n })\r\n });\r\n const res = await response;\r\n let data: any = {};\r\n\r\n if (res.ok) {\r\n // data = await (res.ok && res.json()) || {};\r\n setTimeout(this.aggiornaCataloghi, 1000);\r\n }\r\n else {\r\n message.error(\"Errore\");\r\n this.setState({ loadingAggiuntaCatalogo: false });\r\n }\r\n }\r\n\r\n aggiornaCataloghi = async () => {\r\n var res = await fetch(\"/api/Cataloghi/GetCataloghi\");\r\n var json = res.ok && await res.json();\r\n if (json) {\r\n if (json && Object.keys(json).length === 0 && Object.getPrototypeOf(json) === Object.prototype) {\r\n //Risposta vuota no carrello\r\n this.props.setCataloghi([]);\r\n this.setState({ creaCatalogo: false, loadingBtn: false, loadingAggiuntaCatalogo: false });\r\n return;\r\n } else {\r\n let cataloghi = json;\r\n // descrizioneLinea = json.descrizione;\r\n this.props.setCataloghi(cataloghi);\r\n notification.success({ message: 'Articolo aggiunto al catalogo' })\r\n this.setState({ creaCatalogo: false, loadingBtn: false, loadingAggiuntaCatalogo: false });\r\n return;\r\n }\r\n }\r\n }\r\n\r\n creaCatalogoAggiungiArticolo = async (values: any) => {\r\n this.setState({ loadingAggiuntaCatalogo: true });\r\n let model = { descrizione: values.nomeCatalogo, idArticolo: this.state.idArticolo };\r\n\r\n const response = await fetch(\"api/Cataloghi/CreateCatalogoAddArticolo\", {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json; charset=utf-8'\r\n },\r\n body: JSON.stringify({\r\n ...model\r\n })\r\n });\r\n const res = await response;\r\n let data: any = {};\r\n\r\n if (res.ok) {\r\n // data = await (res.ok && res.json()) || {};\r\n setTimeout(this.aggiornaCataloghi, 1000);\r\n }\r\n else {\r\n message.error(\"Errore\");\r\n this.setState({ loadingAggiuntaCatalogo: false });\r\n }\r\n }\r\n\r\n render() {\r\n const { loadingAggiuntaCatalogo, creaCatalogo } = this.state;\r\n const { items } = this.props;\r\n // const menuListe = (\r\n // \r\n // {(this.state.cataloghi || []).map((x: any) =>\r\n // this.aggiungiArticoloAlCatalogo(x.id)}>{x.descrizione}\r\n // )}\r\n // this.setState({ creaCatalogo: true })} style={{ color: '#1890ff' }}>+ Crea un catalogo\r\n // \r\n // );\r\n\r\n return (\r\n <>\r\n {creaCatalogo &&\r\n this.formRefNewWishlist.current?.submit()}\r\n onCancel={() => this.setState({ creaCatalogo: false })}\r\n maskClosable={false}\r\n forceRender={true} // necessario !!!\r\n width={800}\r\n okButtonProps={{ loading: loadingAggiuntaCatalogo }}\r\n >\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n }\r\n {items?.length > 0 ?\r\n (this.props.typeView == typeViewArticoli.Lista ?\r\n \r\n {(items || []).map((articolo: any) =>\r\n <>\r\n \r\n \r\n 0 ? `${BASEPATHIMMAGINI}/${articolo?.immagini[0]}?t=${articolo.ultimamodifica}` : noImg)}\r\n // {...((articolo?.immagini?.length === 0 || !articolo?.immagini) && !articolo?.immaginedefault) && \r\n // { fallback: \"data:/mg.png;\"}}\r\n style={{ aspectRatio: '1/1', objectFit: 'cover', objectPosition: 'center center' }}\r\n />\r\n \r\n \r\n {articolo.id}}\r\n description={articolo.descrizione}\r\n />\r\n \r\n \r\n {this.state.cataloghi?.length > 0 ?\r\n // this.aggiungiArticoloAlCatalogo(this.state.cataloghi[0].id, articolo.id)}\r\n // overlay={\r\n // {(this.state.cataloghi || []).map((x: any) =>\r\n // this.aggiungiArticoloAlCatalogo(x.id, articolo.id)}>{x.descrizione}\r\n // )}\r\n // this.setState({ creaCatalogo: true, idArticolo: articolo.id })} style={{ color: '#1890ff' }}>+ Crea un catalogo\r\n // }\r\n // icon={}>\r\n // {this.state.cataloghi[0].descrizione}\r\n // \r\n \r\n {(this.state.cataloghi || []).map((x: any) =>\r\n this.aggiungiArticoloAlCatalogo(x.id, articolo.id)}>{x.descrizione}\r\n )}\r\n this.setState({ creaCatalogo: true, idArticolo: articolo.id })} style={{ color: '#1890ff' }}>+ Crea un catalogo\r\n }>\r\n \r\n \r\n :\r\n \r\n this.setState({ creaCatalogo: true, idArticolo: articolo.id })} style={{ color: '#1890ff' }}>+ Crea un catalogo\r\n }>\r\n \r\n \r\n }\r\n \r\n \r\n \r\n )}\r\n \r\n :\r\n \r\n {(items || []).map((articolo: any) =>\r\n \r\n \r\n 0 ? `${BASEPATHIMMAGINI}/${articolo?.immagini[0]}?t=${articolo.ultimamodifica}` : noImg)}\r\n // {...((articolo?.immagini?.length === 0 || !articolo?.immagini) && !articolo?.immaginedefault) && \r\n // { fallback: \"data:/mg.png;\"}}\r\n style={{ aspectRatio: '1/1', objectFit: 'cover', objectPosition: 'center center' }}\r\n />\r\n \r\n }\r\n actions={[\r\n \r\n \r\n {this.state.cataloghi?.length > 0 ?\r\n // this.aggiungiArticoloAlCatalogo(this.state.cataloghi[0].id, articolo.id)}\r\n // overlay={\r\n // {(this.state.cataloghi || []).map((x: any) =>\r\n // this.aggiungiArticoloAlCatalogo(x.id, articolo.id)}>{x.descrizione}\r\n // )}\r\n // this.setState({ creaCatalogo: true, idArticolo: articolo.id })} style={{ color: '#1890ff' }}>+ Crea un catalogo\r\n // }\r\n // icon={}>\r\n // {this.state.cataloghi[0].descrizione}\r\n // \r\n \r\n {(this.state.cataloghi || []).map((x: any) =>\r\n this.aggiungiArticoloAlCatalogo(x.id, articolo.id)}>{x.descrizione}\r\n )}\r\n this.setState({ creaCatalogo: true, idArticolo: articolo.id })} style={{ color: '#1890ff' }}>+ Crea un catalogo\r\n }>\r\n \r\n \r\n :\r\n \r\n this.setState({ creaCatalogo: true, idArticolo: articolo.id })} style={{ color: '#1890ff' }}>+ Crea un catalogo\r\n }>\r\n \r\n \r\n }\r\n \r\n \r\n ]}\r\n >\r\n {articolo.id}
{articolo.descrizione}} />\r\n \r\n\r\n \r\n )}\r\n
\r\n )\r\n :\r\n {item}} />\r\n }\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default connect(\r\n (state: ApplicationState) => ({ ...state.account, ...state.carrello, ...state.cataloghi }),\r\n { ...AccountStore.actionCreators, ...CarrelloStore.actionCreators, ...CataloghiStore.actionCreators }\r\n)(ListaArticoliComponent);\r\n","import './Home.less';\r\nimport * as React from 'react';\r\nimport { connect, createSelectorHook } from 'react-redux';\r\nimport { Alert, Button, Card, Col, Collapse, Divider, Input, List, Pagination, Row, Select, Space, Spin, Switch, Table, Typography } from 'antd';\r\nimport { UnorderedListOutlined, AppstoreOutlined } from '@ant-design/icons';\r\nimport { FormattedMessage, injectIntl } from 'react-intl';\r\nimport { debounce } from '../utils/utils';\r\nimport moment from 'moment';\r\nimport { useEffect, useState } from 'react';\r\nimport SimpleSelector from './filters/SimpleSelector';\r\nimport CategorieSelector from './filters/CategorieSelector';\r\nimport CategorieInEvidenzaSelector from './filters/CategorieInEvidenzaSelector';\r\nimport ListaArticoli from './ListaArticoli';\r\nimport { StatoUtenteEnum, typeViewArticoli } from '../utils/constants';\r\nimport { jsonDataFetch, JsonDataFetchErrorResult } from '../Zerouno/jsonDataFetch';\r\nimport { ApplicationState } from '../store';\r\nimport { Link } from 'react-router-dom';\r\n\r\n\r\nconst { Panel } = Collapse;\r\nconst { Search } = Input;\r\nconst { Text, Title } = Typography;\r\n\r\n\r\nfunction Catalogo(props: any) {\r\n\r\n var [loading, setLoading] = useState(false);\r\n var [search, setSearch] = useState('');\r\n var [typeView, setTypeView] = useState(typeViewArticoli.Griglia);\r\n var [items, setItems] = React.useState([] as any[]);\r\n var [itemsNumber, setItemsNumber] = React.useState(0);\r\n var [currentPagenNumber, setcurrentPagenNumber] = React.useState(1);\r\n var [famigliaIds, setFamigliaIds] = React.useState([] as any[]);\r\n var [classeIds, setClasseIds] = React.useState([] as any[]);\r\n var [naturaIds, setNaturaIds] = React.useState([] as any[]);\r\n var [marcaIds, setMarcaIds] = React.useState([] as any[]);\r\n var [CatMercIds, setCatMercIds] = React.useState([] as any[]);\r\n var [sottocategorieIds, setSottocategorieIds] = React.useState([] as any[]);\r\n var [inevidenzaIds, setInevidenzaIds] = React.useState([] as any[]);\r\n\r\n var [customData, setCustomData] = React.useState({ famiglie: [], classi: [], catmerceologiche: [], nature: [], marche: [], sottocategorie: [], inevidenza: [] });\r\n\r\n // function handleSearch(event: any) {\r\n // setSearch(event.target.value);\r\n // }\r\n\r\n function handleCustomData(customData: any) {\r\n setCustomData(customData);\r\n setcurrentPagenNumber(1);\r\n }\r\n\r\n function onChangePageNumber(page: any) {\r\n setcurrentPagenNumber(page);\r\n // window.scrollTo(0, 0)\r\n window.scrollTo({ top: 0, behavior: 'smooth' });\r\n }\r\n\r\n useEffect(() => {\r\n setSearch = debounce(setSearch, 800);\r\n });\r\n\r\n useEffect(() => {\r\n const fetchOpts = {\r\n body: JSON.stringify({ take: 20, skip: (20 * (currentPagenNumber - 1)), orderby: \"\", filter: search, customData: { ...customData } })\r\n };\r\n\r\n setLoading(true);\r\n jsonDataFetch(`api/Query/articoli`, fetchOpts)\r\n .then(x => {\r\n if (x.data) {\r\n let data = x.data;\r\n setItems(data?.rows || []);\r\n setItemsNumber(data?.totalRows || 0);\r\n setCatMercIds(data?.aggregates?.catmerceologica)\r\n setClasseIds(data?.aggregates?.classe)\r\n setFamigliaIds(data?.aggregates?.famiglia)\r\n setMarcaIds(data?.aggregates?.marca)\r\n setNaturaIds(data?.aggregates?.natura)\r\n setSottocategorieIds(data?.aggregates?.sottocategoria)\r\n setInevidenzaIds(data?.aggregates?.inevidenza)\r\n }\r\n })\r\n .catch((x: JsonDataFetchErrorResult<{ message: string }>) => {\r\n if (x.data && x.data.message) {\r\n //TODO: Come gestiamo l'intl in questo progetto?\r\n //message.error(this.props.intl.formatMessage({ id: x.data.message }));)\r\n }\r\n })\r\n .finally(() => {\r\n setLoading(false);\r\n });\r\n\r\n }, [search, customData, currentPagenNumber]);\r\n\r\n return (\r\n \r\n {props.user.statoUtente == StatoUtenteEnum.AttivoInAttesaDati &&\r\n qui })}\r\n type=\"info\"\r\n showIcon />\r\n }\r\n \r\n \r\n \r\n setSearch(event.target.value)} >\r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n {inevidenzaIds?.length > 0 &&\r\n } key=\"0\">\r\n \r\n \r\n }\r\n
} key=\"1\">\r\n \r\n \r\n } key=\"2\">\r\n \r\n \r\n } key=\"3\">\r\n \r\n \r\n } key=\"6\">\r\n \r\n \r\n } key=\"4\">\r\n \r\n \r\n } key=\"5\">\r\n \r\n \r\n\r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n description={articolo.descrizione}\r\n />\r\n
\r\n \r\n \r\n \r\n {visibleUpdateQta == articolo.idArticolo ?\r\n \r\n this.setState({ qtaUpdate: value })}\r\n />\r\n \r\n