{"version":3,"sources":["img/logo_gest_cabecera.png","components/context/SessionContext.js","img/ajustes.png","hooks/useWindowSizze.js","components/notifications/NotificationIndicator.js","img/campanita.png","hooks/useTimeout.js","components/Layout.js","img/select_open_white_right.png","img/users.png","img/auditoria.png","img/log_out.png","img/select_open_white_left.png","components/login/Login.js","img/logo_dfserver_big_blanco.png","components/routes/PrivateRoute.js","components/routes/PublicRoute.js","img/check_rounded_big.png","components/login/PasswordRecovery.js","components/routes/ConditionalPrivateRoute.js","img/delete.png","img/edit.png","img/go_back.png","components/common/BackButton.js","img/spinner.gif","components/users/Users.js","components/common/InfoPopover.js","img/info.png","components/states/States.js","img/ver.png","components/procedures/Procedures.js","components/procedures/ProcedureStateChooser.js","img/warning.png","components/procedures/ProcedureDataChooser.js","components/procedures/ProcedureDocChooser.js","components/procedures/Procedure.js","components/dealers/Dealer.js","img/close_red.png","img/check_green.png","components/dealers/Dealers.js","hooks/useUserConfig.js","components/registries/Registries.js","img/download.png","NO_DOC.pdf","components/registries/DocumentViewer.js","components/registries/RemoteDocuments.js","components/registries/LocalDocuments.js","img/upload.png","components/registries/RegistryEvents.js","components/registries/Registry.js","components/history/HistorySearch.js","components/history/HistoryGrid.js","components/history/History.js","App.js","reportWebVitals.js","index.js"],"names":["SessionContext","createContext","getWidth","window","innerWidth","document","documentElement","clientWidth","body","getHeight","innerHeight","clientHeight","useWindowSize","size","setSize","useState","width","height","useEffect","timeoutId","resizeListener","clearTimeout","setTimeout","addEventListener","removeEventListener","renderListItem","itemData","_jsxs","className","style","children","_jsx","fontSize","date","description","NotificationIndicator","_ref","notifications","setNotifications","openState","setOpenState","location","useLocation","history","useHistory","console","log","windowSize","_Fragment","onClick","toggleOpenState","cursor","position","borderRadius","id","src","length","display","Popover","onShowing","getElementsByClassName","classList","add","onHiding","remove","elementAttr","class","onContentReady","args","html","component","content","padding","target","visible","List","itemRender","noDataText","displayExpr","dataSource","onItemClick","e","notUrl","concat","concesionarioId","procedureId","registryId","filter","each","push","notBasedSize","bottomSize","allowItemDeleting","useTimeout","callback","delay","savedCallback","useRef","current","tick","ret","Promise","then","Layout","drawerState","setDrawerState","open","enabled","notificationsState","setNotificationsState","session","sessionContext","setSession","setSessionContext","useContext","closeDrawer","fillComesFrom","currentUrl","pathname","backlog","undefined","state","comesFrom","handleErrors","response","ok","Error","statusText","async","fetch","process","json","result","catch","isActive","user","name","flex","userType","marginTop","Link","replace","to","ajustes","method","headers","alignItems","justifyContent","backgroundColor","textAlign","gestoria","codigo","logo","openDrawer","Container","validate","values","errors","password","email","test","Login","loginState","setLoginState","loading","message","DXTextInput","fieldName","fieldType","fieldPlaceholder","rest","Field","type","placeholde","_ref2","field","form","TextBox","placeholder","mode","valueChangeEvent","onKeyUp","event","setFieldValue","option","onChange","onFocusOut","setFieldTouched","value","loginFormOptions","initialValues","onSubmit","JSON","stringify","data","shownInitialAlert","Formik","_ref3","isSubmitting","props","hasInputError","touched","hasFetchError","hasError","Form","htmlFor","disabled","inputAttr","autocomplete","Button","color","text","useSubmitBehavior","element","PrivateRoute","isAuthenticated","Route","Redirect","PublicRoute","validateConfirm","match","passwordConfirm","PasswordRecovery","queryParams","queryString","parse","search","queryEmail","queryRecovery","recovery","dialogState","setDialogState","title","header","my","at","of","popupVisible","showDialog","recoveryStep","setRecoveryStep","recoveryState","setRecoveryState","recoveryConfirmState","setRecoveryConfirmState","recoveryFormOptions","recoveryConfirmFormOptions","stylingMode","_ref4","marginBottom","Popup","animation","hide","onShown","repaint","hideDialog","dragEnabled","closeOnOutsideClick","showCloseButton","showTitle","container","minWidth","Position","ToolbarItem","widget","toolbar","options","check_rounded_big","ConditionalPrivateRoute","condition","BackButton","handleClick","imgGoBack","Users","editFormRef","createFormRef","lopdFormRef","createUserState","setCreateUserState","error","editUserState","setEditUserState","lopdState","setLopdState","useLopd","passwordDuration","passwordRotation","userCountState","setUserCountState","createDialogState","setCreateDialogState","hideCreateDialog","lopdDialogState","setLopdDialogState","hideLopdDialog","editDialogState","setEditDialogState","hideEditDialog","genericDialogState","setGenericDialogState","okText","koText","okCallback","koCallback","hideGenericDialog","mailDialogState","setMailDialogState","hideMailDialog","DXComboInput","SelectBox","onValueChanged","DXCheckInput","_ref5","_ref6","CheckBox","validateCreate","createFormOptions","showMailDialog","lopdFormOptions","isNaN","parseFloat","isFinite","Number","editFormOptions","jsonDataSource","CustomStore","key","loadMode","load","DataGrid","keyExpr","showColumnLines","showRowLines","showBorders","onCellPrepared","DGLoadPanel","shadingColor","showIndicator","showPane","indicatorSrc","imgSpinner","Scrolling","useNative","SearchPanel","Toolbar","Item","locateInMenu","setErrors","Editing","allowUpdating","allowDeleting","allowAdding","Column","dataField","caption","dataType","calculateCellValue","rowData","DGButton","icon","imgEdit","hint","showEditDialog","row","mail","render","imgDelete","showGenericDialog","userId","deleteUser","innerRef","_ref7","handleReset","valueExpr","flexDirection","flexGrow","marginLeft","_ref8","readOnly","fontFamily","_ref9","InfoPopover","onMouseEnter","onMouseLeave","States","createStateState","setCreateStateState","foreColor","bgColor","editStateState","setEditStateState","stateCountState","setStateCountState","DXColorBoxInput","ColorBox","dropDownButtonComponent","dropDownButtonRender","dropDownButtonTemplate","openOnFieldClick","applyValueMode","applyButtonText","cancelButtonText","renderColorCell","borderColor","borderStyle","borderWidth","rowType","column","cellElement","querySelectorAll","forEach","visibility","headerCellRender","role","cellRender","stateId","deleteState","defaultValue","Procedures","newSubmenuOpenState","setNewSubmenuOpenState","createProcedureState","setCreateProcedureState","editProcedureState","setEditProcedureState","procedureCountState","setProcedureCountState","defaultProceduresState","setDefaultProceduresState","createDefaultProcedureState","setCreateDefaultProcedureState","defaultProcedureDialogState","setDefaultProcedureDialogState","hideDefaultProcedureDialog","importSucessDialogState","setImportSucessDialogState","hideImportSucessDialog","importDialogValueState","setImportDialogValueState","importDialogObjectState","setImportDialogObjectState","importDialogState","setImportDialogState","hideImportDialog","loadDefaultProcedures","importProcedure","importString","all","importButtonClick","useCallback","navigator","clipboard","readText","b64Parsed","jsonParsed","atob","Id","Data","Docs","Name","err","showImportDialog","newButtonClick","stateCellRenderer","stateName","stateBGColor","flexWrap","marginRight","boxShadow","alignSelf","verButtonRenderer","imgView","verButtonClick","Sorting","defaultSortOrder","defaultSortIndex","contenido","margin","ProcedureStateChooser","itemsState","setItemsState","onCheckChanged","check","tasks","task","find","taskIndex","indexOf","initial","map","slice","selectionMode","items","item","repaintChangesOnly","inital","shown","ItemDragging","allowReordering","group","onDragStart","fromIndex","onAdd","toIndex","onRemove","onReorder","tmpTasks","ProcedureDataChooser","withMandatory","withSync","isRemote","headerText","registryCount","createDataState","setCreateDataState","mandatory","sync","isPlate","isChassis","editDataState","setEditDataState","createDataDialogState","setCreateDataDialogState","editDataDialogState","setEditDataDialogState","validateCreateData","remote","getNextId","onDataChanged","nextId","Math","min","apply","o","newData","float","textDecoration","opacity","border","editingObject","dataset","warning_big","deleteData","ProcedureDocChooser","createDocState","setCreateDocState","editDocState","setEditDocState","createDocDialogState","setCreateDocDialogState","editDocDialogState","setEditDocDialogState","validateCreateDoc","onDocChanged","newDoc","deleteDoc","Procedure","useParams","loadingState","setLoadingState","editionState","setEditionState","nameInputState","setNameInputState","errorState","setErrorState","procedureState","setProcedureState","dateModif","Date","getDate","getMonth","getFullYear","join","stateState","setStateState","dataState","setDataState","remoteDataState","setRemoteDataState","docsState","setDocsState","remoteDocsState","setRemoteDocsState","registryCountState","setRegistryCountState","exportState","setExportState","loadProcedure","loadStates","loadRegistryCount","loadDatas","loadDocs","loadAll","exportProcedure","saveEdit","trim","toLowerCase","initState","res","states","docs","exitAfterSuccess","exportDialogState","setExportDialogState","hideExportDialog","whiteSpace","getElementById","innerHTML","writeText","overflowY","wordWrap","LoadPanel","Dealer","dealer","loadingCounters","setDealerState","number","counters","estado","clienteDF","descripcion","alert","Gallery","initialItemWidth","showNavButtons","loop","Dealers","loadingDealersState","setLoadingDealersState","loadingCountsState","setLoadingCountsState","dealersState","setDealersState","nextToExpireState","setNextToExpireState","dialogShown","expiredList","loaded","dialogExpirationState","setDialogExpirationState","hideDialogExpiration","dialogChangeStateState","setDialogChangeStateState","cbOk","cbKo","hideDialogChangeState","loadCloseToExpire","newSession","showDialogExpiration","firstLoadStates","sort","a","b","loadStatesWithCounters","showDialogChangeState","setDealerStateRequest","useUserConfig","configState","setConfigState","setConfig","configName","configValue","finalResult","config","er","getConfig","configDefaultValue","setReturnHook","get","set","loadConfig","returnHook","Registries","userConfig","changeStateFormRef","gridRef","changeStateState","setChangeStateState","ids","statesState","setStatesState","results","byProcedureStatesState","setByProcedureStatesState","usersState","setUsersState","dealerState","changeStateButtonState","setChangeStateButtonState","exportSigaButtonState","setExportSigaButtonState","tagBoxValueState","setTagBoxValueState","procedureTagBoxValueState","setProcedureTagBoxValueState","gridPaginationState","setGridPaginationState","selectedGridState","setSelectedGridState","changeStateDialogState","setChangeStateDialogState","currentState","hideChangeStateDialog","changeStateFormOptions","loadDealer","loadByProcedureStates","loadProcedures","loadUsers","downloadB64","fileB64","fileName","extension","linkSource","downloadLink","createElement","fname","href","download","click","resizeGridPagination","expGridShowRowCount","floor","pageSize","infoText","ee","userFilter","instance","assigned","bottom","left","ref","filterValue","onSelectionChanged","getSelectedRowsData","selectedData","procedure","allStatesValid","allRegistriesAvailable","onExporting","workbook","Workbook","worksheet","addWorksheet","beginUpdate","columnOption","exportDataGrid","customizeCell","excelCell","font","alignment","horizontal","xlsx","writeBuffer","buffer","saveAs","Blob","endUpdate","cancel","onRowClick","onInitialized","Export","allowExportSelectedData","texts","exportAll","exportSelectedRows","cssClass","showChangeStateDialog","idRegistry","exportRegistrySIGA","TagBox","searchEnabled","showSelectionControls","showDropDownButton","selectAllText","Selection","deferred","showCheckBoxesMode","rowRenderingMode","Paging","defaultPageSize","Pager","showPageSizeSelector","showInfo","showNavigationButtons","borderBottomLeftRadius","borderTopLeftRadius","String","padStart","aboutToGetDeleted","closeDate","exported","customizeText","cellInfo","downloaded","statesDataSource","order","DocumentViewer","elmId","selectedDocB64","viewerWidth","pdfjs","GlobalWorkerOptions","workerSrc","version","selectedDocumentNumPages","setSelectedDocumentNumPages","selectedDocumentPageNumber","setSelectedDocumentPageNumber","calculatedWidth","setCalculatedWidth","calculatedHeight","setCalculatedHeight","selectedDocumentChangePage","offset","selectedDocumentPrevPageNumber","theMatches","theNumber","theWidth","getBoundingClientRect","fontStyle","startsWith","Document","noData","file","encodeURI","onLoadSuccess","numPages","Page","pageNumber","RemoteDocuments","reload","remoteProcedureDocuments","freeDocuments","env","NODE_ENV","addFormRef","selectedDocState","setSelectedDocState","free","selectedDocB64State","setSelectedDocB64State","remoteProcedureDocumentsState","setRemoteProcedureDocumentsState","freeDocumentsState","setFreeDocumentsState","addExtraState","setAddExtraState","addExtraDialogState","setAddExtraDialogState","hideAddExtraDialog","editExtraState","setEditExtraState","idDoc","editExtraDialogState","setEditExtraDialogState","hideEditExtraDialog","confirmDeleteDialogState","setConfirmDeleteDialogState","hideConfirmDeleteDialog","loadRemoteProcedureDocuments","loadExtraDocuments","addExtraFormOptions","editExtraFormOptions","b64","d","hasDocument","classNames","paddingLeft","imgDownload","item2","showAddExtraDialog","showEditExtraDialog","oldName","LocalDocuments","localProcedureDocuments","uploadFormRef","localProcedureDocumentsState","setLocalProcedureDocumentsState","uploadExtraState","setUploadExtraState","uploadExtraDialogState","setuploadExtraDialogState","hideUploadExtraDialog","showConfirmDeleteDialog","loadLocalProcedureDocuments","formData","FormData","append","uploadExtraFormOptions","isSelected","showUploadExtraDialog","currentTarget","files","RegistryEvents","registryEventsState","setRegistryEventsState","filterState","setFilterState","registryDataSource","columnAutoWidth","sortOrder","datePart","split","timePart","formated","allowSorting","Registry","idDealer","idProcedure","registryState","setRegistryState","stateComboState","setStateComboState","userComboState","setUserComboState","exportedSigaChkState","setExportedSigaChkState","extraDocsState","setExtraDocsState","extraRemoteDocsState","setExtraRemoteDocsState","incidenceState","setIncidenceState","notifyToStringState","setNotifyToStringState","dataFormState","setDataFormState","remoteDataFormState","setRemoteDataFormState","loadRegistry","listItem","querySelector","registry","downloadRegistry","fullId","isAnyDocMissing","isAnyDataMissing","valorEnCampo","validateRegistry","dataJson","encodeURIComponent","stateDataSource","useMemo","prepareData","remoteDataResult","dataResult","remoteDocsResult","docsResult","remoteExtraDocsResult","extraDocsResult","property","datas","item1","extraDocs","remoteDataForm","dataForm","incidence","stringNotifyTo","notifyTo","Type","Target","cmbFixState","setCmbFixState","onClosed","onOpened","close","maxWidth","procedureName","createDate","changeDate","e2","flexBasis","paddingRight","readonly","borderLeft","HistorySearch","searchState","setSearchState","userDataSource","DateBox","setDate","pickerType","startDate","prevState","displayFormat","disabledDates","endDate","showClearButton","tramite","HistoryGrid","historyDataSource","gestoriaId","endsWith","exportButtonState","setExportButtonState","selectedRowsOnly","eId","History","marginBlockStart","marginBlockEnd","App","loadingSession","setLoadingSession","doWork","interval","setInterval","clearInterval","sessionActive","isAdmin","hasPerms","Provider","Switch","exact","path","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","baseUrl","getElementsByTagName","getAttribute","rootElement","ReactDOM","BrowserRouter","basename"],"mappings":"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","file":"static/js/main.74154cc0.chunk.js","sourcesContent":["export default \"data:image/png;base64,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\"","import { createContext } from 'react'\r\n\r\nexport const SessionContext = createContext(null);","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAAGzs1ytAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAFqADAAQAAAABAAAAFgAAAAAcITNaAAACPUlEQVQ4EdVVv2sUQRT+ds5ccphLkVyTkCalcl6RoCAqXGOROrFI4DxBsLDSxtLCPyBJZSEIasA06cXuQCUQwSKEWNpIqksKL3DmJLvO92be7qyXCyII+mB33r5f+7153+wCgUSiX707jk7vwMiDVYDofRBEtdZcUIvB+Pm3qDYSGlwBaoyI401UymW0nh7RBI3q08Xw+7fq7XdS6lJjhUkOKJLr2F0ngFuYbVzwRl80Mo/Qw56D57GKy2X4qD9dsq6JjEBOk0qhhNaL7+cynw8MMczdm8Rxdx/tk66Ni7LK7DXBQ7vDX1EsXcGP47rd39dSzBfIgmmt3xnBt5MZth0Gif5XbxmM+v1RHHSeCG6+0phFxMkD7L66oQhcMLG6jtUerJZ8PsHNlE1RuBPsnFe5OCE2E63Jam8uWLvnlqlsPT8UlfT0kmcL9/YMcRPka8kkDqHWBIaGW+h1t22zhLaq+UFlf4qYwBEnmJagifJjDc62Ti3K1SIuYqzwhQRS17+x9kNWXBwq4drDmJJQfWzn0/pnIemAlvoLk07tozcDD5gWT1e74ZXR+ezz4xzBRHwkORqeWjLLmGUMl6bkok5bKvbgSk5qECWPWCenMSyy83JDH3NrrbmUHmZ1+EPNx37EGsSVxBskZ/lsTr4wh8IjqkI281/wq9BGnwpzmBtI8JGzVhK3HT9L/WQ+/yvVRmoSpdPLP/NbMVa4GRrze6weZUaUfERkPsiPR31ciTCJryGJLp/GiDD0/9F/ArylwQPw4LVtAAAAAElFTkSuQmCC\"","import { useState, useEffect } from 'react';\r\n\r\nconst getWidth = () => window.innerWidth\r\n || document.documentElement.clientWidth\r\n || document.body.clientWidth;\r\nconst getHeight = () => window.innerHeight\r\n || document.documentElement.clientHeight\r\n || document.body.clientHeight;\r\n\r\nexport default function useWindowSize() {\r\n // save current window width in the state object\r\n let [size, setSize] = useState({\r\n width: getWidth(),\r\n height: getHeight()\r\n });\r\n\r\n // in this case useEffect will execute only once because\r\n // it does not have any dependencies.\r\n useEffect(() => {\r\n // timeoutId for debounce mechanism\r\n let timeoutId = null;\r\n const resizeListener = () => {\r\n // prevent execution of previous setTimeout\r\n clearTimeout(timeoutId);\r\n // change width from the state object after 150 milliseconds\r\n timeoutId = setTimeout(() => setSize({\r\n width: getWidth(),\r\n height: getHeight()\r\n }), 150);\r\n };\r\n // set resize listener\r\n window.addEventListener('resize', resizeListener);\r\n\r\n // clean up function\r\n return () => {\r\n // remove resize listener\r\n window.removeEventListener('resize', resizeListener);\r\n }\r\n }, [])\r\n\r\n return size;\r\n}","import { Popover, List } from 'devextreme-react'\r\nimport React, { useEffect, useState } from 'react'\r\nimport imgNotificationIndicator from '../../img/campanita.png';\r\nimport \"./NotificationIndicator.css\";\r\nimport useWindowSize from '../../hooks/useWindowSizze'\r\nimport { useHistory, useLocation } from 'react-router';\r\n\r\n\r\nconst renderListItem = (itemData) => {\r\n return (\r\n
\r\n {itemData.date}\r\n
\r\n {itemData.description}\r\n
\r\n )\r\n}\r\nconst demoData = [\r\n { description: \"El concesionario 'TEST' ha adjuntado el documento 'TEST' al trámite 'TEST'.\", date: \"15-04-1992 03:54\" },\r\n { description: \"El concesionario 'TEST' ha adjuntado el documento 'TEST' al trámite 'TEST'.\", date: \"15-04-1992 03:54\" },\r\n { description: \"El concesionario 'TEST' ha adjuntado el documento 'TEST' al trámite 'TEST'.\", date: \"15-04-1992 03:54\" },\r\n { description: \"El concesionario 'TEST' ha adjuntado el documento 'TEST' al trámite 'TEST'.\", date: \"15-04-1992 03:54\" },\r\n { description: \"El concesionario 'TEST' ha adjuntado el documento 'TEST' al trámite 'TEST'.\", date: \"15-04-1992 03:54\" },\r\n { description: \"El concesionario 'TEST' ha adjuntado el documento 'TEST' al trámite 'TEST'.\", date: \"15-04-1992 03:54\" },\r\n { description: \"El concesionario 'TEST' ha adjuntado el documento 'TEST' al trámite 'TEST'.\", date: \"15-04-1992 03:54\" },\r\n { description: \"El concesionario 'TEST' ha adjuntado el documento 'TEST' al trámite 'TEST'.\", date: \"15-04-1992 03:54\" },\r\n { description: \"El concesionario 'TEST' ha adjuntado el documento 'TEST' al trámite 'TEST'.\", date: \"15-04-1992 03:54\" },\r\n { description: \"El concesionario 'TEST' ha adjuntado el documento 'TEST' al trámite 'TEST'.\", date: \"15-04-1992 03:54\" },\r\n { description: \"El concesionario 'TEST' ha adjuntado el documento 'TEST' al trámite 'TEST'.\", date: \"15-04-1992 03:54\" },\r\n { description: \"El concesionario 'TEST' ha adjuntado el documento 'TEST' al trámite 'TEST'.\", date: \"15-04-1992 03:54\" },\r\n { description: \"El concesionario 'TEST' ha adjuntado el documento 'TEST' al trámite 'TEST'.\", date: \"15-04-1992 03:54\" },\r\n { description: \"El concesionario 'TEST' ha adjuntado el documento 'TEST' al trámite 'TEST'.\", date: \"15-04-1992 03:54\" }\r\n];\r\nexport const NotificationIndicator = ({ notifications, setNotifications }) => {\r\n const [openState, setOpenState] = useState(false)\r\n const toggleOpenState = () => {\r\n setOpenState(!openState);\r\n }\r\n const location = useLocation();\r\n const history = useHistory();\r\n\r\n //public int Id { get; set; }\r\n //public int GestoriaId { get; set; }\r\n //public int UserId { get; set; }\r\n //public int ProcedureId { get; set; }\r\n //public int RegistryId { get; set; }\r\n //public string Description { get; set; } = String.Empty;\r\n //public string Date { get; set; } = String.Empty;\r\n //public int Seen { get; set; }\r\n //public int ConcesionarioId { get; set; }\r\n\r\n useEffect(() => { console.log(location) }, []);\r\n const windowSize = useWindowSize();\r\n\r\n return (\r\n <>\r\n \r\n
\r\n \r\n \r\n
0 ? { display: \"initial\" } : { display: \"none\" }) } className=\"notification-indicator-component-new\" >
\r\n
\r\n \r\n { document.getElementsByClassName(\"notification-indicator-component-active-indicator\")[0].classList.add(\"active\"); }}\r\n onHiding={() => {\r\n setOpenState(false);\r\n document.getElementsByClassName(\"notification-indicator-component-active-indicator\")[0].classList.remove(\"active\");\r\n }}\r\n elementAttr={{ class: \"notification-indicator-component-popover\" }}\r\n onContentReady={\r\n (args) => { \r\n var html = args.component.content();\r\n html.style.padding = 0;\r\n html.style.borderRadius = \"8px\";\r\n //$(html).css(\"padding\", \"0\"); \r\n } \r\n }\r\n target=\"#link1\"\r\n position=\"bottom\"\r\n width={300}\r\n visible={openState}\r\n >\r\n

Notificaciones

\r\n
\r\n {\r\n let notUrl = `/registry/${e.itemData.concesionarioId}/${e.itemData.procedureId}/${e.itemData.registryId}`;\r\n setNotifications(notifications.filter((each) => {\r\n return (e.itemData.registryId != each.registryId || e.itemData.concesionarioId != each.concesionarioId || e.itemData.procedureId != each.procedureId);\r\n }));\r\n setOpenState(false);\r\n history.push(notUrl);\r\n }}\r\n height={() => {\r\n const headerSize = 45;\r\n const bottomSize = 150;\r\n const toobarSize = 50;\r\n const listItemSize = 105;\r\n let size = windowSize.height - 150;\r\n let notBasedSize = (notifications.length * listItemSize);\r\n if ((bottomSize + toobarSize + headerSize) + notBasedSize >= windowSize.height) {\r\n return size;\r\n } else {\r\n return notBasedSize;\r\n }\r\n }}\r\n allowItemDeleting={false}>\r\n \r\n
\r\n \r\n \r\n )\r\n}\r\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAAGXcA1uAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAGKADAAQAAAABAAAAGAAAAADiNXWtAAAByUlEQVRIDZVVu0oEQRDcPQVR8PUBYuRfCJoomPgBIoIcFwliJJiJialfYGRgcKlfYGQieImJmWB4goqwiVq1Nz3X7vTMzjX0dk91dfXu7OxdUSgrmf/CGDu8/DMUujWAZFNopSSoDGsBUhRYlLQmyDVsQQrn9dK6QGomwAFecAZNiiLlARY4O3wS19JBd6jNLhROEeccUcK1JD6COAuv4LR1X7CSEce83gd80G5NqgOthhSfNT5TYe5ToDYGnsapytSovoLjKRq6cHO/gy4Qt9wEbu1UQNCAIzbDleb4HKy7JlPWnqQTKUbihnCjp0wILvZkLe9hGcBQQCP+4AjXGyATjgyShoTn3zTVOSVl85jyxQ+Cr7uNTKFPXqbhu/BDLlrs26xjYl+21iTkglqIeW5fkgehHvwdHrM3FA6SIlYRTTsxxQS+Z2nVB0kXILCINV+7Pwu6nsj547mEo/ChOZYIj7GF6z4r582O/kWsqmB4gpfENrSVnkXHjOjeblPIqPsvn0OaW3FsTp4MPAnouKs1+EPG3eVSHkFc9YOwGOR2TsAbcEBwTP1UlUD0DMvmv0SFI3mpaGaaO4Di+/AVp/KKeIMBlVtHwx9KOusVJrKcJAAAAABJRU5ErkJggg==\"","import React, { useEffect, useRef } from \"react\";\r\n\r\nfunction useTimeout(\r\n callback,\r\n delay\r\n) {\r\n const savedCallback = useRef(callback);\r\n\r\n // Remember the latest callback.\r\n useEffect(() => {\r\n savedCallback.current = callback;\r\n }, [callback]);\r\n\r\n // Set up the timeout loop.\r\n useEffect(() => {\r\n let id: null;\r\n function tick() {\r\n const ret = savedCallback.current();\r\n\r\n if (ret instanceof Promise) {\r\n ret.then(() => {\r\n if (delay !== null) {\r\n id = setTimeout(tick, delay);\r\n }\r\n });\r\n } else {\r\n if (delay !== null) {\r\n id = setTimeout(tick, delay);\r\n }\r\n }\r\n }\r\n if (delay !== null) {\r\n id = setTimeout(tick, delay);\r\n return () => id && clearTimeout(id);\r\n }\r\n }, [delay]);\r\n}\r\n\r\nexport default useTimeout;","import React, { useContext, useEffect, useState } from 'react';\r\nimport { Container } from 'reactstrap';\r\nimport logo from '../img/logo_gest_cabecera.png';\r\nimport \"./Layout.css\";\r\nimport { SessionContext } from './context/SessionContext';\r\nimport { Link, useHistory } from 'react-router-dom';\r\n\r\nimport ajustes from '../img/ajustes.png';\r\nimport users from '../img/users.png';\r\nimport logout from '../img/log_out.png';\r\nimport auditoria from '../img/auditoria.png';\r\nimport select_open_white_left from '../img/select_open_white_left.png';\r\nimport select_open_white_right from '../img/select_open_white_right.png';\r\nimport { NotificationIndicator } from './notifications/NotificationIndicator';\r\nimport useTimeout from '../hooks/useTimeout';\r\n\r\n\r\nexport const Layout = ({ children }) => {\r\n let history = useHistory();\r\n const [drawerState, setDrawerState] = useState({\r\n open: false,\r\n enabled: true\r\n });\r\n const [notificationsState, setNotificationsState] = useState([]);\r\n const { session: sessionContext, setSession: setSessionContext } = useContext(SessionContext);\r\n\r\n const onLogout= async () => {\r\n const response = await fetch(`${process.env.PUBLIC_URL}/api/session`, {\r\n method: 'DELETE',\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n setSessionContext(null);\r\n }\r\n const closeDrawer = () => { setDrawerState({ open: false, enabled: drawerState.enabled }) };\r\n const openDrawer = () => { setDrawerState({ open: true, enabled: drawerState.enabled }) };\r\n\r\n const fillComesFrom = () => {\r\n let currentUrl = history.location.pathname;\r\n let backlog = [];\r\n if (history.location.state != undefined && history.location.state.comesFrom != undefined && history.location.state.comesFrom != \"\") {\r\n backlog = history.location.state.comesFrom;\r\n }\r\n if (backlog.length==0 || backlog[backlog.length - 1] != currentUrl) backlog.push(currentUrl);\r\n return backlog;\r\n }\r\n function handleErrors(response) {\r\n if (!response.ok) {\r\n throw Error(response.statusText);\r\n }\r\n return response;\r\n }\r\n useEffect(async () => {\r\n await fetch(`${process.env.PUBLIC_URL}/api/notifications/Get`)\r\n .then(handleErrors)\r\n .then(response => response.json())\r\n .then(result => {\r\n // You can process the response here\r\n setNotificationsState(result.response);\r\n return result.response;\r\n })\r\n .catch(() => { throw 'Network error' });\r\n }, []);\r\n useTimeout(async () => {\r\n await fetch(`${process.env.PUBLIC_URL}/api/notifications/Get`)\r\n .then(handleErrors)\r\n .then(response => response.json())\r\n .then(result => {\r\n // You can process the response here\r\n setNotificationsState(result.response);\r\n return result.response;\r\n })\r\n .catch(() => { throw 'Network error' });\r\n }, 30000);\r\n\r\n\r\n return (\r\n <>\r\n {(sessionContext != null && sessionContext.isActive) ?\r\n
\r\n
{ setDrawerState({ open: false, enabled: drawerState.enabled }) }}>
\r\n
\r\n
\r\n
{`Hola, ${sessionContext.user.name}`}
\r\n
\r\n
\r\n
\r\n {sessionContext.user.userType >= 1 ?

Configuración

: null}\r\n {sessionContext.user.userType === 2 ?
Config. de estados
: null}\r\n {sessionContext.user.userType === 2 ?
Config. tipos de trámites
: null}\r\n {sessionContext.user.userType === 2 ?
Config. de usuarios
: null}\r\n {sessionContext.user.userType >= 1 ?
Auditoría
: null}\r\n
\r\n
Cerrar sesión
\r\n
\r\n
\r\n Código de gestoría:\r\n
\r\n {sessionContext.gestoria.codigo?sessionContext.gestoria.codigo:\"XXXX-XXXX-XXXX\"}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n { history.replace(\"/\", { comesFrom: [] }); }} />\r\n
\r\n \r\n
{`Hola, ${sessionContext.user.name}`}
\r\n
\r\n\r\n
\r\n \r\n {children}\r\n \r\n
\r\n
\r\n :\r\n

ERROR!

\r\n }\r\n \r\n )\r\n}\r\n\r\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAABEZVhJZk1NACoAAAAIAAGHaQAEAAAAAQAAABoAAAAAAAOgAQADAAAAAQABAACgAgAEAAAAAQAAAA6gAwAEAAAAAQAAAA4AAAAAvfA5+gAAAEVJREFUOE9jGIng////vEB8HIjdoELEA6CmECD+CMQFUCHiAVCTARA/AuK5QMwGFYYDJihNHQC0gXSnAhWTHzjDCjAwAAD41DcmOLGxEgAAAABJRU5ErkJggg==\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAAGzs1ytAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAFqADAAQAAAABAAAAFgAAAAAcITNaAAACPUlEQVQ4Ed1Vz2sUMRT+3q5bpCBooVbwIEKPO66g9iiCJ+1RvQhji0pBqAf/Av0L9NRDoULX3kShl9JLQeypoBS6s1ZRexN/FIsgLbVsd+KXTOJkZ8YtiAcxMJuXL9/7kry8vAW8VjZ2NVQYqPUnuB5kWxnByB0crg1ifaVRgorvQ9ROlgVUr23A+u8zs2dGj2C7/QnIa+a990Y6tPVAZB4q0S4l7hIjRsvYQbgmODl6ELvtbwZozsjeaxQyzt1LzmMnU5nqzQFg57PBBcM859wvAbuc3Rjh5tQX/m7yU2g8modg1pBFItPzx1MuuAfH0v2fH8ZX+fu2C5WOjL4i/QXhRbdQGg2dLF/XWoYgrauOwBiMOzslQ/U5EFH9AW0bxvqwwz2yhAYUTEBnIKSXY0Ht+lCeLOpSAspZm6qJULy7hCuPzQNxr2SKRLdPXnumbbxtYr2x6hLlRmb6372x3Ea7AmmGdqV5k9XwNKM/wZJxion/ASW5y/SvewxjFgv/zjkYGWMdmsyKcPyUT+Oyj3uJYWHtDLzgOxzijvT1HkOsppmKT7jTRZaVpIL4KsBC5xBwV+3h1lmpigdqcwHR9Bv2PRi83Y/e7xfQ3v8SryZXMzwzLA6Fnso6B7cOAVsRi+DRnJCgTew8opnnbq5TuJtzUrI7+U7F9VI+wVOZ2pUJxeZrxjX/RBJHKyrPmAnL3PlHKOljdhzndI1+B1Apb7s1UmGlhH9D77mxH7ygFX7vCp17KmNYfkje/9Z+AhyluXOSEwuvAAAAAElFTkSuQmCC\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAAGzs1ytAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAFqADAAQAAAABAAAAFgAAAAAcITNaAAABxklEQVQ4Eb1UPUsDQRB9K2qIKW21VBsPBLHUQmxMBEEhXVIaUAgIkp+QLiholTLptRBjoa1g7WljG7EQQVEEkcR1di/3tXubDSncIpmbefNmdj4WUA+ng/kCH1ENkW8ySxipYjAmMU5xHZy3pMzwBLc57aFIubW2hFJ+FeCYihAOKHr8FD3A3zeZVPrpCAOjE6TV6f4G4ERkYLULIrBTaKvAIJYom0zEz5AumduryXKqTvDB0oN+7h7bcWfyCJkj7pvlIzgzevW84gigyNFUXypYhGtYUUTwL6lwhPSmNBjLwm1cCr/wgpRvdmUhxsXdBs1Jb5Bill6d/dL5/9GUQuaYJ5A/OFE0wKiq2d4/pgpynB6WVZMOblRLeH3/1IBCoTFn0uPIpCftYOYUdZBYp2FO2JR+3mJxwesehO34Tern0p/YKV5QA7OJBIy1KEAu0UZKndg0TiYGoe89P1GI1hF/VeS4RZEGWTYmYb2ME2fgGVhtJb6+fcBPpysJP76+MbtRQeP8xhpAL4Xisrw4h9xuDc8vb5hIp+CeVZEas7rpU6/wSpKrekVVW7+tpbAyGAD6ncQrRctA3daf2iQSuZq0NP91/gCGfK9CAUhI1QAAAABJRU5ErkJggg==\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAVCAYAAAHeEJUAAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAFaADAAQAAAABAAAAFQAAAAAIGxIOAAACP0lEQVQ4EcVVMWgUQRR9c1lXiyvE4tRCxaDdzJloZWHESlKKaLdzRZLKiLaCQho7O7VLmqSKkFgFU4tgo6iXBUUxioJiELE4CDkj4/+zmdnZ270EBHHgbv5/7/2//+//3AGVRyYmsoRKziKKGj0ioh1Swy6iWbbzkfq7F4W2B3cyBqxA6gtoNF+jMdTG2qs3eVBQVg6WLKdyd0nQF5D6axVX86DSk5DJx8w3B+zNPuOlI/Vbj4WZZfLO4XlmmOO4NBVbIp09aO/MP+bE5VvpRSpngx6/WCb/GpH6NvjTc7LZOFC2bgBmitwzaAx3aU5PHJU3ZSdglhxBAUtUb7BazCh9C6hdQzrb9kK2a+I6VOumxyjyi3d6aww5WtZVGCO82BmMqeQ9u1mNojaBZmvF8f5WOoWIJtjPs3BWiA4uDg5Z4cLqS2qojpW5waKQPV5hgXtWaDBJzT209n//yvvZrhSVbMJggFr4Tf1lvxTb6POJh6Jm646dtkrce8hWiBPzYZy3gXUVp1jp6bF96HQ/0QQ2IeJhtKc/2JhgnZDOZTHN8aMw3Rc0nQj1+DCezvxw+YuVdn7RVESMeM8Rn5CV3HZ4s80PZB3rbZxVVHxJvU47/ayC6Q+p5DmtzHooKFYqME8rfQon9LlQ1NdmncFJ6mQ+1BTfKTNSL9N7Ok/WDA7tvYJHdzfCAGuPXt2Nzz/vkz1GCZdpI0ZDTTkps3J8P0T3AVU9siXuUPAaVcV/NnWLCfEYJr6MdPrblubfXn8AL7Co2x5+ZtYAAAAASUVORK5CYII=\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAABEZVhJZk1NACoAAAAIAAGHaQAEAAAAAQAAABoAAAAAAAOgAQADAAAAAQABAACgAgAEAAAAAQAAAA6gAwAEAAAAAQAAAA4AAAAAvfA5+gAAAEZJREFUOE9jGOng////bkB8HIh5oUKEAVBxARB/BOIQqBB+AFTIBsRzgfgREBtAhTEAE5SmHgDaRppTkQFQE+mBM2wAAwMAIWg3JuTUxFcAAAAASUVORK5CYII=\"","import React, { useContext, useState } from 'react';\r\nimport { Field, Formik, Form } from 'formik';\r\nimport { Button } from 'devextreme-react/button';\r\nimport { TextBox } from 'devextreme-react/text-box';\r\nimport \"./Login.css\";\r\nimport logo from '../../img/logo_dfserver_big_blanco.png'; // with import\r\nimport { SessionContext } from '../context/SessionContext';\r\nimport { Link } from 'react-router-dom';\r\n\r\n\r\n\r\n// A custom validation function. This must return an object\r\n// which keys are symmetrical to our values/initialValues\r\nconst validate = values => {\r\n const errors = {};\r\n\r\n if (!values.password) {\r\n errors.password = 'Requerido';\r\n } else if (values.password.length > 20) {\r\n errors.password = 'Must be 20 characters or less';\r\n }\r\n\r\n if (!values.email) {\r\n errors.email = 'Requerido';\r\n } else if (!/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}$/i.test(values.email)) {\r\n errors.email = 'Invalid email address';\r\n }\r\n\r\n return errors;\r\n};\r\n\r\n\r\nexport const Login = () => {\r\n //const loginForm = useFormik({\r\n // initialValues: {\r\n // email: '',\r\n // password: ''\r\n // },\r\n // validate,\r\n // onSubmit: values => {\r\n // alert(JSON.stringify(values, null, 2));\r\n // },\r\n //});\r\n const [loginState, setLoginState] = useState({ loading: false, email: null, password: null, result: null, message: \"\" });\r\n const { session: sessionContext, setSession: setSessionContext } = useContext(SessionContext);\r\n const DXTextInput = ({fieldName, fieldType, fieldPlaceholder, ...rest }) => (\r\n \r\n {({ field, form }) => (\r\n {\r\n form.setFieldValue(field.name, event.component.option(\"value\"), true)\r\n }}\r\n onChange={event => {\r\n form.setFieldValue(field.name, event.component.option(\"value\"), true)\r\n }}\r\n onFocusOut={event => {\r\n form.setFieldTouched(field.name)\r\n }}\r\n value={field.value}\r\n />\r\n )}\r\n \r\n );\r\n const loginFormOptions = {\r\n initialValues: {\r\n email: '',\r\n password: ''\r\n },\r\n validate: validate ,\r\n onSubmit: async values => {\r\n setLoginState({\r\n loading: true, email: values.email, password: values.password, result: null, message: \"\"\r\n });\r\n //alert(JSON.stringify(values, null, 2));\r\n const response = await fetch(`${process.env.PUBLIC_URL}/api/session`, {\r\n method: 'POST',\r\n body: JSON.stringify(values),\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n const data = await response.json();\r\n setLoginState({\r\n loading: false, email: values.email, password: values.password, result: data.response, message: data.message\r\n });\r\n if (data.response != null) {\r\n data.response.shownInitialAlert = false;\r\n setSessionContext(data.response);\r\n }\r\n }\r\n };\r\n return (\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n {\r\n ({ isSubmitting, ...props }) => {\r\n const hasInputError = (props.touched.password && props.errors.password) || (props.touched.email && props.errors.email);\r\n const hasFetchError = (!loginState.loading && loginState.email == props.values.email && loginState.password == props.values.password && loginState.result == null);\r\n const hasError = (hasInputError || hasFetchError);\r\n return
\r\n

Inicio de sesión

\r\n \r\n \r\n \r\n \r\n {hasError?\r\n
\r\n {props.touched.email && props.errors.email && props.errors.email == \"Requerido\" || props.touched.password && props.errors.password && props.errors.password == \"Requerido\" ?\r\n \"Todos los campos son obligatorios\"\r\n :\r\n loginState.result == null && (loginState.message != \"\" && loginState.message != \"No session\") ? loginState.message :\"El correo o la contraseña no son válidos\"\r\n }\r\n {/*{hasFetchError ?*/}\r\n {/* \"El correo o la contraseña no son válidos\"*/}\r\n {/* :*/}\r\n {/* \"\"*/}\r\n {/*}*/}\r\n
:\r\n null\r\n }\r\n\r\n
\r\n
\r\n )\r\n}\r\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALoAAAA3CAYAAAHMJ2BhAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAuqADAAQAAAABAAAANwAAAADht6StAAAbz0lEQVR4Ae2dB5gV1dnHz91lKYsguyBVQRBFmj2KBVEsMWrQGEs0RgFRir2XqIgxatTYZSEqWLCED0VMjAUVjLGigo1iA6TjsjS3s3vz+8+dM3vu3LlbMPiI332f5923nznzzmlzZuauMVs7xHQCcSAGWGp10HHgiDQ2E9YXj82LK1aQ2yS7Zeyswo0Jib8qXGAVCSk+0Oqg18rm699z9H/09JPyW1ZUlMd79totLmoPluUH3Q+dLd6BP8O/JpnCHoZk20Kp+X6+XhVqLH3s9KINS7/baAaMfkSmAJSWHZEe8zW7Qt8Ar6OQ+dhOg18JTgCzwe2VFmgk2FrL2HzU2rR+kcH//5Rek/RPe1voeptbXTDkz8A+vt0jsmM6EuFlq5eubFz+UVXV8Retzsu9X4inC/PIo6VzYKANdnRec9ZFXbOx2GuWaprys83SE1QDKQlsC3kTbAR67RqqjvS6ChUPXJcgNX9bNGlkLpj6ufnHO4tqlPh/DT4CtgDfAZuCFWAWeB34obyhtuCaYIdT7S066gybkoGfbG+NP9qpdUlxSaFb49yRRVm0q+RLb9sC9AyHT3aiFGy7WbsKhR8dkiVerT/AggSJL/d9vfKkkyzw7X/06esJrTG23ZVsWBP0niUL50e3x3CBtmBbmF+4e9CPfd3ocCzyVRG6092yXB7fa13/4rFtBq0sXOtV+vwps+M77dDZwydmLfJ0z7yxIKjHFms2qpAztDSC32QrXRdV5q3PrAPmmJKyStPvgwNMk6xKT20nJ42mGqsaU3gJfE94Teq5oApYBeaBhdiLobrU2fBVULW/aqgS0BLcDiwD26CfA5VvX/hPxW8OlBTkX0wZdyo2lhW7PXdE0RWbU04mJpOBrTkDW2yE+aFJKSnIK2cWaGzLoaILc0et7WZlLVQ0QlgYLoMVRK2jrz/M2kJ+N6Dvam3QtSAHrokXH4LOjjzRPY6GRrfS3rGM6eoOmarkuyrAqcgekoFn3MIc+zFWLyfLW3saqjuWVvIHUuKltOUUF+R96M2mBW2CmdTeJklfUtD6PM+XmHDFVY4HtjBLUdqp3T3R4KB+2HfQtxTjy14iHFnqzo78CfI3kgVepedP9So94u8febOoKi6cN/Xy4D4vKuMLVTLwrAqCbpIg3oJk4AH9sTpRyT540x38Cqtw7EfbGGuDepOc9Kq4rej+R57gVfw319wX6GT34gmy65D/qCApRYF3PAfnT0IdP8CnOT59Evq8jXOp5bEf4fBzkb1ZUfFWLyrwMu5X/vlPlsWV9enzlnsVtzb5bZFRxVaIab/B5cfHds4rMRuLVLnJ2deZo08aZu58YLy5vvXNUgU31FqzjETWXeDH4GXg9RzPZqQV8r2g7twvBaeCyt6fwClgOZgDloBNwTPAW4m/w6986roah7qgeGw+d6vx3hF+c1hs7Sm9Kr4j9FtQWwmtOai2FjzA5i3EEDqC8mmCfSN6LcZ0w6nCV4PKkBZpqqi3IsSnBbJWi99DNwsYy+lfJpvLVs0YrvplIJOBTAYyGdiiGWjwNLFFa7MVFR6ffFJ26ZrXbmfwP4wk9mCbURvkk9kZuquu0/hRkk7FNGtty6y0tq4K/ZTtpePyh1RXxyfUt47Z2Tndmw5f/XXYX8nQytB79gEVTAG/9bjEH2/fxPezaj2F0NZasKYOF+z6w38BluF/Dljg2/4Cb+H3MJeCwT60NUBvBh935DHwv3Tko1SeBV+vNZVd8Up1J3gWuC7kJ9vT4HIxPhxifVyqVWpUwmPb7Wmyeg42sVa7uO4eX1VV+VWwJA9bOZh3U6SDuja/EiLa6HJPIuUuz43zfbWec+FZ1wfDaGt09Za3NujVfnlWdZYvr7YKJ+Y26RzZugR3jxG2xAM26xmPj7I+ltrbAtHSGRcH9zhfrFrn3T7oFuLW6fMCve6Lvps0INjHjUw8x6sr6cG9i183tfQHbaXgm4HP+fgW9HHHdiNyGJqgGO0oz4TXI84AHJt3M+nL7QIHGMfH27n05V2tj2O/B/5csHOEzXGLb2PtlpYWtB6opJV8/FBSUq96/tN4/xOGBvvNl914m2d/f+HqJL+5T5xRc+dsCxXlqClJR3emU5vuvp9VJbVatyzL49jX8pbaYKiGiNFWtnZRdHbIs+YrYe61ArS/9Rfv6LUVvcza/LKs+VeuPmTTJv7L1hGaVG/2SDrZlr7h+5IgoXOWFMWncaNsN/l36tzFa/UbiksDnw/mLw9ae/j4botxju2xQ60zkr3b9wxWXxsNF+bLuykG/ps09q7of+3YFvv+So6Fi+xxUbQEvV06q/P9f2edQ1Q9so+jW+L7axfDwptuWezjl9rEi/7fkw8GidVQ4j5clXzBjeODZHu9pCDvK7c8b/XCkWagPInVRaFrdHl8+mFXj9CDg47wF8H3h3oVhB+P/mHk920cuiHIE6HaOBgP/5K1bQ6lnGHE2WHtCcoLHkNtTnkNiSkZm/9M3MRPaEiMfJnY/pp77jptrASgyS4XSWOZnhYtRd4Rfn9Q47gmmW7om6PXE6BC6AJ0T4DPgZXo5qHTyfcEB4LagRkNLsW2CKpWvR+8VkjXIA4BR4DboXsanda3w+A/hF8Er6HsXbAKPARsDN6C3Zvg8DkM+VVQUIpe9f/RgGXj9axixtR1wFgs6/zckWvur8svY89kIJOBTAYyGchkIJOBTAYyGchkIJOBn0YGvDvSn0ZVtq5alBa0OaQ6Xn0lt5z7kERuCGOzsuI5VzQdtarW7W6dZSbpDbzW7MNob/7i2sJiWea03BFrn0rn86MknUrmcbu+VT81UgLD78elS6qnj8XmNh9ZFPUCickiITuBUbAIpV4c8QBe+y5huNDaoyjO3hMZbEU2UH7w2vNJAVtGiqFGcTjsLjVi4u0xJ+4G3+buUjru3sssOr7eMo6C5rasMPVfYtE+UP0gHu9VXJD/eZSz3q5xn+Etx8l2iy7wldTMbuxrk8uCNsLus0IUJU47lx18Wz+oHkC8J5ljajPNgjbQ/gAGu5Pwbp3c/e3pxOrRn4UDLONTlaXy/wGp8HUi2pC7x5FnObw7VES+WUTyXtFbQ05Mgm3SymR1O87Edjic95QirgeJLxmXf0o4zhtedMl9wxVU+Hbxjq4anV6cvAu1t4+NXOew5MQrCSn+jv11zNo5DACbkreLFIpFvhX2Skf+G/zZkoHg/TH8vkNuRYj2/vXKltdgVIYcLWB7A/5gybIhj4c9x8qiLmhP3JWzep1lsg/4s6sK+O+nHmearPHaVqCzL/9bhfeUxgoheosv1+YTCkkS1Ws84KQE+1l5M2jvUMxIR/YaiS+3gdY65DlxLtvMFVyel/vGuHL20KVBwm+a/pX38ZY+4Cqt1E40V/k300zRIO/pYRBW+lCHLoEAU1tCvXdB5UzC9neDvBQ6T9Zdm8Pv7PBi9QBkTUgncaBfnnpSCmAbhPJY36CvO9Q6E2eYUF4qgp93PGxjE+qav375Sa3VWrHpmaqGN0GvBHH/xq/3pKwckzNspcnKSkxzV78w38yd9ZaZftnxZumz95hmOTWjT7u225nYkKDNmXhl+R1uibUl3e2SpW4Q/A3gBquj4uNA+2B6hfScvB5mqIZlkn3Ix2+ZFXyqMfos0E2Ky0/z/b6nzEKfFylweLH2iVJI7YlD+DsryoBunq9fRfmWT3HNGbokSVdcUWVmP3yTp5v39gyPri+tDHwaZWeZ+GB7qvF9AgNMbUkPHk1RmTluEPIYsLN0JPEXkOHgcT5eAvUAnypQXVcTqYWOlvGpnjBNAIO4kH2iL2/DsdQqLZxnGfRXwg8ANfanAGU/Au6bYkgo/uXr21FOuG6eqbhp1zShNeqeO+1srntJ7acGGjfKNtPX7k2OTIsabe1Jv8x3dFudG+vxnMws0AVv9cMJNLfOGDWzTLJyiEaVH+iIHer4By0RfbWjt/PPNY4ukqVebg9WjzzGcUxuzr6hedlCM2dycps4pnd706f/EUFo71PONy2bqmPXwI1jrjVH5H2IIu7WNaWlD6VSSS/sENHSLyapsjVFp+W+pyw98R8EaviwD5E/C0UciH00qA+E1/u28MQWtGB8Tnbiz/V5r24kMLhY6INeTIzuIq8ClQGN24HNj3/dp7pvOcnnPUKZk8X03vCk+fjxMwPTQTu2Mh2PP9ccccdzHnbe73Bz0696BPY7brzQXN3pIU/OimWNDQwwWi7tCf3IVfr8J9A97IngtxB5R992EPq3fD6S4D8Bw5CQcT5xPbE1RV8asnkidu/GybHloiolJkiofKwd9WPwmgiT3g5w/a2vqGJDtpTycdP3ot5kHZ+4Y6uS0vVrbRll1Y1N6cnzTdtWuZ6qsipuGvHev63QW5+vMPmvH2O6N6uZSMNLRutry/zJUhKlewS7wrmdpFzhVha7ErXJ1f2veNbpRZSV55Y3t6SL+WaPR81ePTqZkvJNZsacZabLgqvMkXkfuG5cZPN17si13V2lrvooFHtR4WGuweXx6YB9hXTwz0CuAo9Cd590AvT5kGbovCkb+UH4s6Ea+E6EHy6/HwKUFdnaf0iZ9YnlsDE2upLG5frEySfcyqVT0jWO6qZCl0hjqSaTweCJ4JPgS6BmiKNJ3BL8t4dfBK4DZVc/0x3dNqCGKl3ELuC3+Gtf53H4y8G9wYvB1qCGqnbga6DW4SvBYvBm8BDwAVAz1wxQ78zcDdWFPRWiYwpmoj80wW75vyUT8neIl8W/bciRohKueN1CbwvVWlpJyAaXg+rG00Eldi+wLX5KuD4zX4r8NKgKaOZXCx8IFmO7E6rJ7R3QtgzZVoN6Q+xwqC5mB+mQr4e+Aj0K+idQ46jihoLz0KucPqAHyE9ZHnoI9enpyFuUzR1atCR35IX6JL+kHgcqT5dwxaqla2j5CKpEaILTXstiZLV6fV5WBu9tzUJbotMQsgq+LbwqsBjsjW4lOrXi9uAaUG9wfYquG1SrGL2Kp13HX0BnQb3E46fjS7av7WnynoO8Lzb1vp2Qv4QGgE09ag16XfgfHUoL2u8YN+WPMtgdnHTwmFma2zi7V9KPJCU5ZIRMBjIZyGQgk4FMBjIZyGQgk4FMBjIZyGQgk4FMBjIZyGQgk4FMBjIZyGQgk4GtLwNbzePRrS+1mRq7GSh9sF3X6k2VvB3DV/5x75mXa07Px8ynPDJ5uFl+h4LYyZ9XpHes3ZJp6LXnJ2P9ARkoHZ93UHWVeZYitvsBxSSHxmL/ym1hTtW/A0k21C55DZ2Hjefj1rcWV73zoDdtVoD/BufQy6RLAcoagPKgFEOqogmqf1POq6mm+mk4Vis8h4O/BVV/PdwV6KGt3ihU2Y9xjE+heo3gQMiZ4h0Id3bJerXhReL0CoMHxD4DcygYed4JL+/Jvp6+vwLeT/wS6Yk9HZL8IFUGntzjMzHBJv8lRq9m3AA29i06rt4S6AVu7+ssCZ+DXtvQg+pTKN97m4vyzkHexwb4NBynEVPXWF9dvBfyrbfo/sB9vYMa6hgzhdlZOf2ifpEuqqjgREmELko4gVExru4NhJNJii5uAJSlVzNOCRTpmYuIvSe9OdpC+XoLQK/z6U2FumAcxxhpnYj9G/zZVq6FjiHuBtdO7EpkvaJSX9DgoNdVlhGrTqMG70Ilgt6w0Ls+KUCMOodyLJCPGn8OWN/RrCVlb8TfA8pT59/ZF+tDZhCvV2fqBWV/a7NLVVXV+wwFep3nx4GY+Sf/KWIQ9axtAEp6aXVZRM306VEA2HWh1OstDIDRqy8TrMKnGhXC8GxQEAxGNdIGjxocSyPVh348JIDfuOVbHuutgUeCiTpPfe4UAG4aEf8ZipMY1cCuUSC2bHAR6EIewmRfMQRa6Brh1WjvCOlc8SxH0P8oKwPVcL939JY9VvWwgHJv0L1W8ou6LtcqBpteP9I7ZS4cSr4jZxzXSXzZ2NaHV22qWlBnI8/ZxmT1ONVUHf2C90GLPmoJY/yMxaZwvwkm3r5f+DCpctwcy49MfRkfv7dymRZ0QesN5OMJTlxvEM4Fd3UCh6DXr3gNd3S1svjqBb53a3WKNmq00IUJg35xcS3lvuEakBe7cn14YvRSn94pC0PaUYMY/U7e0wRcFQrSeerFbP2q5KmwWn64MAL949jfdpXoDkI+w9e9in2Sa6+Lx/+junxcO/56L+8+dNe5enh11lqhYnybvSqrqsLnFcTE2uxhqvqPNU1adwt0GhU2VcfN3JUbzaK1paZ8U7XJz80xPdu1MB1bNjEd+h7NXAj6sPjj6abjbJrXJq1Kk4H363Yqqf5mFto9ki01UoMausJICPmI3wirBu/COehvwr7EVTr8Xtjv9mX9HN4ox1Zvlji9DHk7AZeHgjojz8Rm1VNgLsX/W6uohe5G3N+xK/8aGV4j7t5a/FNMxB+AMtzI1VmCq0WZr+I3Hl14QFAjrmkFCMCDCeLdEwz2+drI1ZStjqFz0Kyn9fnq2gJcG7GdkC92dfBfgnUuQSurq8IzOmGMRQf91eTseppXpNvQZi/bYB6ZtYR7F9ptealZv2iBKd9QaLbvvqsZMPhIzz/8p8vuRxiz+zemvGKTWfnihabjd7plciBudufXSi/gZwFrv26cqL7tDEO4MXkl46RGGwVeLTHcFWV0dOEp0qlxNEtsrmtBbgu+7pSZjtU/OjzYxsKPTufo6O+y/i7FPt/xsaw+3w/DNBRRs45uTPXFuZZ7YdDg4QEG/aq2haut3lIM+mcedYE6fhIQ8EZEkH4cWrORC/r/M/lJwWmE8vGtd9VX5DWYHy+e/2zSr7Laf34j+th7C72fxP3Dfc/Hd+7Wveancvm/ePseODBtnFuG+NKysvgnUy51jqt/XZSfNCu6Vc5yhGAodHTp2N3SGN5Jo5c6WKPDHxb2I7H66C0daGTSmj4AjVbgQFANSjfRD4NR56ARWhf4D9B0EF6jRzb0NMFPoNdSx4VBCAWuwvJUV75Ro6Q+KNwZVAP7i++/AP9bbGwd9BjlQoBfK7CoDn9r1jULd8oD0V1kHWqj1VXVe1l71s4nst5eYXK66fOQVNAI/vaitZ7h0yfuNNWVybcQa779yugT3H37HWzOv+NRc8m0ueap2ctTC0KTnRUzuw662ZT8bhE3PkGf1iZFJLgNPXyykQFcCM1CN0QYtWzRjVI6CMrHTzeTHlCeRrhpCH3AcaCWNy4OwV8f3KxBHwnYloHDQJ1PS3BlhOPhEbpIFeV8G2mI7kjz8d0JTL5qLE/880opivJnonwgxZD4pFkdRMsPwZkJ0rC/lL8ejLphjSpIa9t+EQZ1PA0etUJ1oywtbzyo/nKKWfDUEFPMP/2MAnXBvh1amP265JlBZ54T5eLpSvhmtLJtd28N3y0/aSJPinl//ioz4e7L2IpKXC7quzDJwRHcpZOjjmYpSI1FjTJ89LEk9rroqEBrL16gEEOcRrjjkpS1CNRBw4XWYaOIfTnCVdtw68H2IdvEkFynyLG2w0kdeHgtzvoQazG+Gla+Ad3cDEL/Hvb9wvHozsN2KPpejk0fVgkFBfg0ZFcqnghL/ssxTkCTS1mToMFg43rpOPjp5vc/rh5en8x3wn5USB+Iua0GfsS/vdFSqoWU3YpfpLvuYD7IPcX0OP520yK3ceAr5ux+nc2bC9eZNv0PMS0nvmxenTLJrP7sfVO+fo3ZpmNX0/XQE0yrrj29mHP272z6tPeKTSrjPRr4S3+/z1zZcYLZs311YKMjlQZCiAlOnIouwaYlQEPgDZy1rZeYj/xIylJSfx8qaDl+nUK6zRIpfxGBXeoZXIbfARx7tvyJHQepreHKzYXBxD5KnGYLdaBtXCO8GuQo6fDJgywEt5XsgDpAT/ySRn38G6GfCR4IurAOQbNYytBITHNs9R2tVaZmQn3ZSGjNL0TJ4MOj2AaLxz4AMlN8CFSf3fGLnOlKx+adRnPTEi4FllZ3M9/t/7jZt68mvWR4d/E6M/PrQrN8fblnaMRypGe7bcyve7cz7Vs0SXKuYFfmzsmzTI8lt5hjW6du1tHI482yNrWNDd9YmBToC15D5wRHIttGHo9wlG41uAjUuvELaCRQlkbcUyONPK0k9sY0tgapOY5GvkNB7Rf3BrXTIFgBfgJqH/w5jhc0FmIORsftewoEHT5k0b71TdIRewnEHiPkZrT9N8P3U0dQw9Zs4ILWzPoEVo0mBShfw9hZ4OngefhNCTvho1nxcjB1mAs718he3Ygdiiq1tSX89GDoVbH4qfMNA5VXXXd1bg1kqv8L+C2BpgC/B3cbt7SqW1r4qqK7WdD9FtNvn71N+1qWJLaAD75Ybaa+/rHZc12BGdT6HWb/qKaZ8OZfjJ/Eg6OUnNmy0l1ga98ilGRqKtT3zbPCB8B2PjrtK0c2CPnjkw/JwWeV5J8aUD8NR1+CO4TqpqGrB/VeHNL/LMSGPvqvYpJcVZlnlpe3MSsq8s222cWmY5NC06nxGtMsOzHK15kYRvKcnPjejYet82bsdP6az9Rzp4L9wb7gTHB3UCNjP/Af4LHgK1ygNfi3hT8S/BycA/4CVI9X7C9BjTZX4uv1fPzfQ74X1GioR/7d0B0Or/mnBDwIbA++5suqh2I1FU4CFatjKmY28fpxAY0+WjvPhKrha5bQsuFZkEWiN8IrRqPrJ2AbUOvkacToHJrBHw2qs81E3hle9VDsd+DxoBrrM+B2oM7rM3y1llWZitVSTNtwu8GrbI2KX0E9QN8IZi6osl3QsLQPvh+5yp8LH3+sXfOS7yve5nyUly0KWbHYa81GFqld1AneiO5frLvx1j9c1u9nabrqA04Ax4NqxFpfqjFppL0NLMS3Jb5qlGfAz4B/B/4CeG+kRlajKARzQTX0BWAXUGs9UcW2Ay8F1TDmgWpkF4BqWO0p4yF49dbJPlXcBrAFdpaGXkP/D0TH0jH+Cso+BHt/4pX0q0GVrc55MngXtj2g6iQvQaTXhVHnWwheC47BR2vzt+CLwMvBXuA14DRwMKhO+T74PHg9/jrXAIhVfueAURddebovcP6ZMfGH27Qoqah6ksXPsf/LU9NanLw93WxE0WkNKVcjui6SLkhnUBd1IngvqBFuI6gR+t/gJeC+4JngIrAH+FtQ62A1ADUaNSY15tPQ6X/1HQevzqKpWmtlzQSHgGeAJ4JqwJoN+oC/BoeAajg6nhpoAag4LXU00mp0Vawa5ACOoX943xR+A6idhU1Q1WMS5J/IT8Or4atRbw+OAD8FNdK+Cf4L3AHUiL0OVAPXuWvZoUZ8BXglqGMvB28B1ammg0tBDQgDwHag/iPcg9AUoA7K3a1gTsio89d5KM8/Wyh+uE1HU1E9hjY6hL307M04UX7KMz61WWWb02MXfFW+GfHR202bU1BDY7j4fYmZDKoj3crFvr+hZWT8t94MxB/aPr+0omQX7jA70Pg7ZmXp+Ud8pXpB3FQXNe6xxwuxQ2d6A9fWe5aZmmcykMlAJgOZDGQykMlAJgOZDGQykMlAugz8F1fnpKbcNXu1AAAAAElFTkSuQmCC\"","import React from 'react'\r\nimport { Redirect, Route } from 'react-router'\r\n\r\nexport const PrivateRoute = ({\r\n children,\r\n isAuthenticated,\r\n ...rest\r\n }) => {\r\n return (\r\n \r\n {isAuthenticated ? (\r\n children\r\n ) : (\r\n \r\n )}\r\n \r\n )\r\n}\r\n//export const PrivateRoute = ({\r\n// isAuthenticated,\r\n// component: Component,\r\n// ...rest\r\n//}) => {\r\n// return (\r\n// {\r\n// return (isAuthenticated)\r\n// ? ()\r\n// : ()\r\n// }}\r\n// />\r\n// )\r\n//}","import React from 'react'\r\nimport { Redirect, Route } from 'react-router'\r\n\r\nexport const PublicRoute = ({\r\n children,\r\n isAuthenticated,\r\n ...rest\r\n }) => {\r\n return (\r\n \r\n {!isAuthenticated ? (\r\n children\r\n ) : (\r\n \r\n )}\r\n \r\n )\r\n}\r\n//export const PublicRoute = ({\r\n// isAuthenticated,\r\n// component: Component,\r\n// ...rest\r\n//}) => {\r\n// return (\r\n// {\r\n// return (!isAuthenticated)\r\n// ? ()\r\n// : ()\r\n// }}\r\n// />\r\n// )\r\n//}","export default \"data:image/png;base64,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\"","import React, { useContext, useEffect, useState } from 'react';\r\nimport { Field, Formik, Form } from 'formik';\r\nimport { Button } from 'devextreme-react/button';\r\nimport { TextBox } from 'devextreme-react/text-box';\r\nimport { Popup, Position, ToolbarItem } from 'devextreme-react/popup';\r\nimport { useHistory, useLocation } from 'react-router';\r\nimport queryString from 'query-string'\r\n\r\n\r\nimport logo from '../../img/logo_gest_cabecera.png'; \r\nimport check_rounded_big from '../../img/check_rounded_big.png'; \r\nimport \"./PasswordRecovery.css\";\r\n\r\n\r\n\r\n// A custom validation function. This must return an object\r\n// which keys are symmetrical to our values/initialValues\r\nconst validate = values => {\r\n const errors = {};\r\n if (!values.email) {\r\n errors.email = 'Requerido';\r\n } else if (!/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}$/i.test(values.email)) {\r\n errors.email = 'El correo introducido no es válido';\r\n }\r\n\r\n return errors;\r\n};\r\nconst validateConfirm = values => {\r\n const errors = {};\r\n var securityValidator = /^(?=.*\\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[^a-zA-Z0-9])(?!.*\\s).{8,15}$/;\r\n if (!values.password) {\r\n errors.password = 'Requerido';\r\n } else if (!values.password.match(securityValidator)) {\r\n errors.password = 'Debe tener una longitud de entre 8 y 15 carácteres y contener al menos una letra minúscula, una letra mayúscula, un número y un carácter especial.';\r\n }\r\n if (!values.passwordConfirm) {\r\n errors.passwordConfirm = 'Requerido';\r\n } else if (values.passwordConfirm != values.password) {\r\n errors.passwordConfirm = 'Las contraseñas no coinciden. Vuelve a introducirlas de nuevo.';\r\n }\r\n\r\n return errors;\r\n};\r\nconst DXTextInput = ({ fieldName, fieldType, fieldPlaceholder, ...rest }) => (\r\n \r\n {({ field, form }) => (\r\n {\r\n form.setFieldValue(field.name, event.component.option(\"value\"), true)\r\n }}\r\n onChange={event => { form.setFieldValue(field.name, event.component.option(\"value\"), true) }}\r\n onFocusOut={event => { form.setFieldTouched(field.name) }}\r\n value={field.value}\r\n />\r\n )}\r\n \r\n);\r\n\r\nexport const PasswordRecovery = () => {\r\n let history = useHistory();\r\n const location = useLocation();\r\n const queryParams = queryString.parse(location.search);\r\n console.log(queryParams);\r\n const queryEmail = queryParams.email || \"\";\r\n const queryRecovery = queryParams.recovery || \"\";\r\n\r\n\r\n //const filter = queryParams.q || \"\";\r\n\r\n const [dialogState, setDialogState] = useState({\r\n title: \"\",\r\n header: \"\",\r\n body: \"\",\r\n position: { my: 'center', at: 'center', of: window },\r\n popupVisible: false,\r\n });\r\n const showDialog = (title, header, body) => {\r\n setDialogState({\r\n title: title,\r\n header: header,\r\n body: body,\r\n position: { my: 'center', at: 'center', of: window },\r\n popupVisible: true,\r\n });\r\n }\r\n\r\n const hideDialog = () => {\r\n setDialogState({\r\n position: { my: 'center', at: 'center', of: window },\r\n popupVisible: false,\r\n });\r\n }\r\n const [recoveryStep, setRecoveryStep] = useState(\"start\");\r\n const [recoveryState, setRecoveryState] = useState({ loading: false, email: null, result: null });\r\n const [recoveryConfirmState, setRecoveryConfirmState] = useState({ loading: false, password: null, passwordConfirm: null, result: null });\r\n\r\n\r\n\r\n\r\n useEffect(async () => {\r\n if (queryEmail != \"\" && queryRecovery != \"\") {\r\n const response = await fetch(`${process.env.PUBLIC_URL}/api/recovery/check?email=${queryEmail}&recovery=${queryRecovery}`, {\r\n method: 'GET',\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n const data = await response.json();\r\n if (data.response) {\r\n setRecoveryStep(\"confirm\");\r\n } else {\r\n setRecoveryStep(\"start\");\r\n }\r\n }\r\n })\r\n\r\n const recoveryFormOptions = {\r\n initialValues: {\r\n email: ''\r\n },\r\n validate: validate,\r\n onSubmit: async values => {\r\n setRecoveryState({\r\n loading: true, email: values.email, result: null\r\n });\r\n const response = await fetch(`${process.env.PUBLIC_URL}/api/recovery/start?email=${values.email}`, {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n const data = await response.json();\r\n showDialog(\"Correo electrónico de cambio de contraseña enviado\",\r\n \"Correo electrónico de cambio de contraseña enviado.\",\r\n \"En breve, recibirás el correo. Si no es así, revisa el correo electrónico introducido o revisa la bandeja de SPAM por si hubiese llegado allí.\");\r\n setRecoveryState({\r\n loading: false, email: values.email, result: data.response\r\n });\r\n }\r\n };\r\n const recoveryConfirmFormOptions = {\r\n initialValues: {\r\n password: '',\r\n passwordConfirm: ''\r\n },\r\n validate: validateConfirm,\r\n onSubmit: async values => {\r\n setRecoveryConfirmState({\r\n loading: true, password: values.password, passwordConfirm: values.passwordConfirm, result: false\r\n });\r\n const response = await fetch(`${process.env.PUBLIC_URL}/api/recovery/confirm?email=${queryEmail}&recovery=${queryRecovery}&password=${values.password}`, {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n const data = await response.json();\r\n if (data.response) {\r\n showDialog(\"Contraseña cambiada\",\r\n \"Se ha cambiado tu contraseña con éxito.\",\r\n \"Utiliza tu nueva contraseña para iniciar sesión a continuación.\");\r\n } else {\r\n\r\n }\r\n \r\n setRecoveryConfirmState({\r\n loading: false, password: values.password, passwordConfirm: values.passwordConfirm, result: data.response\r\n });\r\n }\r\n };\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n {(dialogState.popupVisible ?\r\n null\r\n :\r\n (recoveryStep == \"start\" ?\r\n \r\n {\r\n ({ isSubmitting, ...props }) => {\r\n const hasInputError = (props.touched.email && props.errors.email);\r\n const hasFetchError = (!recoveryState.loading && recoveryState.email == props.values.email && recoveryState.result == null);\r\n const hasError = (hasInputError || hasFetchError);\r\n return
\r\n

¿Has olvidado la contraseña?

\r\n

Introduce tu correo electrónico y te enviaremos un correo para restablecer la contraseña.

\r\n \r\n \r\n {hasError ?\r\n
\r\n {props.touched.email && props.errors.email && props.errors.email == \"Requerido\" ?\r\n \"Todos los campos son obligatorios\"\r\n :\r\n \"El correo no es válido\"\r\n }\r\n
:\r\n null\r\n }\r\n
\r\n
\r\n\r\n

En breve, recibirás el correo. Si no es así, revisa el correo electrónico introducido o revisa la bandeja de SPAM por si hubiese llegado allí.

\r\n \r\n }\r\n }\r\n
\r\n :\r\n \r\n {\r\n ({ isSubmitting, ...props }) => {\r\n const hasInputError = (props.touched.password && props.errors.password || props.touched.passwordConfirm && props.errors.passwordConfirm);\r\n const hasFetchError = (!recoveryConfirmState.loading && recoveryConfirmState.password == props.values.password && recoveryConfirmState.result == false);\r\n const hasError = (hasInputError || hasFetchError);\r\n return
\r\n

Cambiar contraseña

\r\n \r\n \r\n \r\n \r\n {hasError ?\r\n
\r\n {props.touched.password && props.errors.password && props.errors.password == \"Requerido\" || props.touched.passwordConfirm && props.errors.passwordConfirm && props.errors.passwordConfirm == \"Requerido\" ?\r\n \"Todos los campos son obligatorios\"\r\n :\r\n props.errors.password || props.errors.passwordConfirm\r\n //(props.touched.password && props.errors.password && props.errors.password == \"Demasiado corta\") ?\r\n // \"La contraseña es demasiado corta\"\r\n // :\r\n // \"Las contraseñas no coinciden. Vuelve a introducirlas.\"\r\n }\r\n
:\r\n null\r\n }\r\n
\r\n
\r\n\r\n \r\n }\r\n }\r\n
\r\n )\r\n )}\r\n {\r\n e.component.repaint();\r\n }}\r\n visible={dialogState.popupVisible}\r\n onHiding={hideDialog}\r\n dragEnabled={false}\r\n closeOnOutsideClick={false}\r\n showCloseButton={false}\r\n showTitle={true}\r\n title={dialogState.title}\r\n container=\".dx-viewport\"\r\n height=\"auto\"\r\n width=\"auto\"\r\n minWidth=\"500px\"\r\n >\r\n \r\n {\r\n let currentUrl = history.location.pathname;\r\n let backlog = [];\r\n if (history.location.state != undefined && history.location.state.comesFrom != undefined && history.location.state.comesFrom != \"\") {\r\n backlog = history.location.state.comesFrom;\r\n }\r\n backlog.push(currentUrl)\r\n history.replace(\"./\", { comesFrom: backlog });\r\n },\r\n }}\r\n />\r\n {/**/}\r\n
\r\n

\r\n {dialogState.header}\r\n

\r\n

\r\n {dialogState.body}\r\n

\r\n \r\n
\r\n
\r\n )\r\n}\r\n","import React from 'react'\r\nimport { Redirect, Route } from 'react-router'\r\n\r\nexport const ConditionalPrivateRoute = ({\r\n children,\r\n isAuthenticated,\r\n condition,\r\n ...rest\r\n}) => {\r\n return (\r\n \r\n {isAuthenticated && condition ? (\r\n children\r\n ) : (\r\n \r\n )}\r\n \r\n )\r\n}","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAAGXcA1uAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAGKADAAQAAAABAAAAGAAAAADiNXWtAAACR0lEQVRIDe1VvW/TUBD/nZ1maNkqAaoEZaTETspQJpBAjAzMDHaK2GAEIVb+AMZKRQwk7UAHFphAgGBBQqoEaRKJDgwIGBAIpoaQD7/He7aT9xE3bRHdeFJ8X7+7e7k7nwHtUMwXw6uS5mKB8aWY6g+CHz4C4Sk4io4OSwJ4Adfhkk9QRI8NA9HdJIvUNlcTb8n74bIkmYfgBR1hyVvWriXvi6iuqIf3wyY43wRRAY2VOd2UOJTCU4hwTwA2daPBcz4DF9eVThZZnkE5bZoWKSmtctuRy3IYFM+mcTDTIblGPr2WTXfMngkYLasXfgB4LUXPieko6J6Ek1dm0et+1JXb8hP5Y0kGv3xNNOqm6MObbDA/B9BtNKpL6kpe8AAu3cDk9E9EPybRnmKYph5avw7gN1sTHT8rg6lJlhKn42i1G3CcGUxsddDKbaHHj0rT4JhlHWjH0P13MP8DcQanw9FjDORy9MWPR0y/oemwsfIyNX7XQF/E6zwU9bKObIkhSjLpPlAOhtUSSkEgXrCLllbsHfch6pW1Eb2mUAkWFg+jG5U0m2IZ3RFT8wTEng2VES6IRp8Rw3FrqNOZvLuB9crXJEGpXEDEmrr9n/Cu443GkatDju3fHD98Ze9fs8t20GL5PBh7DmfqEOrL3zC/OI9+9E4s6BN4u/oeC5ePoN3/hJxzGrXqa9tdynue7Kwg43T/E4yrTmwb3+R69YVAqXelVpG7Wcnr9z8bchzSfGQnIJpFsXzJhO5CYvygSL/953QXIfYM+QNyHKG9fUf0vAAAAABJRU5ErkJggg==\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAAGXcA1uAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAGKADAAQAAAABAAAAGAAAAADiNXWtAAACHElEQVRIDc1UPWgUQRh9326uiRAjiT/RLj+QwM6xeCCohaClWAQEsdi9i0UwaWJrI9gFCShY2Em4dAr+dDbCdaeFEO5MBG2uEMFYiDZJ5O4mM7s4Nzs7e3dRIV71vve9ee+b2bkBrL/8zWMx74UtqwBgwfOMjk6z4J1extgLeJ9kWmZhzoQjadaawcLPutJRBeenFFbAOrvqZgCZy8IXGV2DlmK/NGWwlpJzghR7QcPskkmgMD+G3e0vIHqCevma2e/sWnbypSuR2HEWbWJz8UHULHwabV7LTu5Ba0SQ3BWx+R86PaAXCcyK98Gb06ivDet89gLeviWEP3WxxPaRft+hUfd47wWF+UFwnBazv0Fldaf3gl/bW5GoXj5rimWdHMkv+cL9EAj3bOI0F184y1+1I00mSJ5wudP+B8j9K49CcQKj+SpO+EOYma2iUWmbfn8ewG6Mo9n+JAyPioO9hJ3vw/hae2UGpM/IVNhqtnAE1PLwvuzi6oSLXM5HbW3JJk2/ADaVzsk3p9XeAOe5mKZHImhRl+h4fztgwQU0Wx+VOdHtbuYyqP+AfDEUZ11R0znudfFsLas6A/R3RCy4I8zvKg+ic8K8quouoHcACx+LI5mLPWgXA8401lcbXTwTre4BLHgtJr8YrSD6hsHDk3j7MPVGJRyNIvsbeOGmMgd9wMj4yf2ay6zsFxX0DODnxTV4iVr5gTHY/1PuARaBiNYRxai1AAAAAElFTkSuQmCC\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAFoTx1HAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAADqADAAQAAAABAAAADgAAAAC98Dn6AAAA8ElEQVQoFWNgwAN0Y+8hZHVj7yI4hFl6ieYgRUxglYx//xPQoRvrhayCEczRjXvP8P+/ALIEAwPjW1S+TmwGqgBRPM9cdobQVcyYao1iNRl0Y1+gSzAyNDQwMay5+xddgiFEGWqKYaIWg07ccwwFcAGQncZpInA+zRiQ0EM2HmTtzx/rgUImDExsqgyX5jxBloaxERp1ElwZGP+tBgb/BwZmxjCGv2wPYYpQaHamzwxnZ31jgQsy/2dk+AfkMTLyM/xlVGBg+gNJAnAFUMYvpldA1j2EjTAFhomiDL//bGBgZDBkYGa2Yriw4AJMamBpAMAJNU/JtH0BAAAAAElFTkSuQmCC\"","import React from 'react'\r\nimport imgGoBack from '../../img/go_back.png';\r\n\r\nexport const BackButton = ({ text, history, to }) => {\r\n const handleClick = () => {\r\n let currentUrl = history.location.pathname;\r\n let backlog = [];\r\n if (history.location.state != undefined && history.location.state.comesFrom != undefined && history.location.state.comesFrom != \"\") {\r\n backlog = history.location.state.comesFrom;\r\n }\r\n //if (to == \"\" && backlog.length > 0) {\r\n // backlog.pop();\r\n // history.replace(backlog[backlog.length - 1], { comesFrom: backlog });\r\n if (to == \"\") {\r\n backlog.push(currentUrl)\r\n history.replace(\"./dealers\", { comesFrom: backlog });\r\n } else {\r\n backlog.push(currentUrl)\r\n history.replace(to, { comesFrom: backlog });\r\n }\r\n }\r\n return (\r\n
\r\n
\r\n { text }\r\n
\r\n
\r\n )\r\n}\r\n","export default __webpack_public_path__ + \"static/media/spinner.5bb05d7b.gif\";","import { Button, CheckBox, DataGrid, Popup, SelectBox, TextBox } from 'devextreme-react'\r\nimport React, { useContext, useRef, useState } from 'react'\r\nimport useWindowSize from '../../hooks/useWindowSizze'\r\nimport CustomStore from 'devextreme/data/custom_store';\r\nimport { Column, Button as DGButton, Editing, SearchPanel, Toolbar, Item, Scrolling, LoadPanel as DGLoadPanel } from 'devextreme-react/data-grid';\r\nimport \"./Users.css\";\r\nimport imgDelete from '../../img/delete.png';\r\nimport imgEdit from '../../img/edit.png';\r\nimport imgGoBack from '../../img/go_back.png';\r\nimport check_rounded_big from '../../img/check_rounded_big.png';\r\nimport { Link, useHistory } from 'react-router-dom';\r\nimport { Position, ToolbarItem } from 'devextreme-react/popover';\r\nimport { Field, Form, Formik } from 'formik';\r\nimport { BackButton } from '../common/BackButton';\r\nimport { SessionContext } from '../context/SessionContext';\r\nimport imgSpinner from '../../img/spinner.gif';\r\n\r\nexport const Users = () => {\r\n\r\n let history = useHistory();\r\n\r\n const editFormRef = useRef();\r\n const createFormRef = useRef();\r\n const lopdFormRef = useRef();\r\n\r\n const { session: sessionContext, setSession: setSessionContext } = useContext(SessionContext);\r\n\r\n const [createUserState, setCreateUserState] = useState({ loading: false, email: null, name: null, type: null, error: false, result: null });\r\n const [editUserState, setEditUserState] = useState({ id: -1, loading: false, email: null, name: null, type: null, error: false, result: null });\r\n const [lopdState, setLopdState] = useState({ loading: false, useLopd: false, passwordDuration: 365, passwordRotation: 10, error: false, result: null });\r\n const [userCountState, setUserCountState] = useState(0);\r\n\r\n const [createDialogState, setCreateDialogState] = useState({\r\n title: \"\",\r\n header: \"\",\r\n body: \"\",\r\n position: { my: 'center', at: 'center', of: window },\r\n popupVisible: false,\r\n });\r\n const showCreateDialog = (title, header, body) => {\r\n setCreateDialogState({\r\n title: title,\r\n header: header,\r\n body: body,\r\n position: { my: 'center', at: 'center', of: window },\r\n popupVisible: true,\r\n });\r\n if (createFormRef != undefined && createFormRef != null && createFormRef.current != undefined && createFormRef.current != null) {\r\n createFormRef.current.setErrors({});\r\n }\r\n }\r\n const hideCreateDialog = () => {\r\n setCreateDialogState({\r\n position: { my: 'center', at: 'center', of: window },\r\n popupVisible: false,\r\n });\r\n }\r\n\r\n\r\n\r\n const [lopdDialogState, setLopdDialogState] = useState({\r\n title: \"\",\r\n header: \"\",\r\n body: \"\",\r\n position: { my: 'center', at: 'center', of: window },\r\n popupVisible: false,\r\n });\r\n const showLopdDialog = (title, header, body) => {\r\n setLopdDialogState({\r\n title: title,\r\n header: header,\r\n body: body,\r\n position: { my: 'center', at: 'center', of: window },\r\n popupVisible: true,\r\n });\r\n if (lopdFormRef != undefined && lopdFormRef != null && lopdFormRef.current != undefined && lopdFormRef.current != null) {\r\n lopdFormRef.current.setErrors({});\r\n }\r\n }\r\n const hideLopdDialog = () => {\r\n setLopdDialogState({\r\n position: { my: 'center', at: 'center', of: window },\r\n popupVisible: false,\r\n });\r\n }\r\n\r\n\r\n\r\n const [editDialogState, setEditDialogState] = useState({\r\n id: -1,\r\n name: \"\",\r\n email: \"\",\r\n type: 0,\r\n title: \"\",\r\n header: \"\",\r\n body: \"\",\r\n position: { my: 'center', at: 'center', of: window },\r\n popupVisible: false,\r\n });\r\n const showEditDialog = (title, id, name, email, type) => {\r\n setEditDialogState({\r\n id: id,\r\n name: name,\r\n email: email,\r\n type: type,\r\n title: title,\r\n position: { my: 'center', at: 'center', of: window },\r\n popupVisible: true,\r\n });\r\n if (editFormRef != undefined && editFormRef != null && editFormRef.current != undefined && editFormRef.current != null) {\r\n editFormRef.current.setFieldValue(\"name\", name, false);\r\n editFormRef.current.setFieldValue(\"email\", email, false);\r\n editFormRef.current.setFieldValue(\"type\", Number(type), false);\r\n editFormRef.current.setErrors({});\r\n }\r\n }\r\n const hideEditDialog = () => {\r\n setEditDialogState({\r\n id: -1,\r\n position: { my: 'center', at: 'center', of: window },\r\n popupVisible: false,\r\n });\r\n }\r\n\r\n\r\n\r\n\r\n const [genericDialogState, setGenericDialogState] = useState({\r\n title: \"\",\r\n body: \"\",\r\n okText: \"\",\r\n koText: \"\",\r\n okCallback: () => {\r\n\r\n },\r\n koCallback: () => {\r\n\r\n },\r\n position: { my: 'center', at: 'center', of: window },\r\n popupVisible: false,\r\n });\r\n const showGenericDialog = (title, body, okText, koText, okCallback, koCallback) => {\r\n setGenericDialogState({\r\n title: title,\r\n body: body,\r\n okText: okText,\r\n koText: koText,\r\n okCallback: okCallback,\r\n koCallback: koCallback,\r\n position: { my: 'center', at: 'center', of: window },\r\n popupVisible: true,\r\n });\r\n }\r\n const hideGenericDialog = () => {\r\n setGenericDialogState({\r\n title: \"\",\r\n body: \"\",\r\n okText: \"\",\r\n koText: \"\",\r\n okCallback: () => {\r\n\r\n },\r\n koCallback: () => {\r\n\r\n },\r\n position: { my: 'center', at: 'center', of: window },\r\n popupVisible: false,\r\n });\r\n }\r\n\r\n\r\n\r\n\r\n const [mailDialogState, setMailDialogState] = useState({\r\n title: \"\",\r\n header: \"\",\r\n body: \"\",\r\n position: { my: 'center', at: 'center', of: window },\r\n popupVisible: false,\r\n });\r\n const showMailDialog = (title, target) => {\r\n setMailDialogState({\r\n title: title,\r\n target: target,\r\n position: { my: 'center', at: 'center', of: window },\r\n popupVisible: true,\r\n });\r\n }\r\n const hideMailDialog = () => {\r\n setMailDialogState({\r\n position: { my: 'center', at: 'center', of: window },\r\n popupVisible: false,\r\n });\r\n }\r\n\r\n\r\n\r\n const DXTextInput = ({ fieldName, fieldType, fieldPlaceholder, ...rest }) => (\r\n \r\n {({ field, form }) => (\r\n { form.setFieldValue(field.name, event.component.option(\"value\"), true) }}\r\n onFocusOut={event => { form.setFieldTouched(field.name) }}\r\n value={field.value}\r\n valueChangeEvent=\"keyup\"\r\n onKeyUp={event => {\r\n form.setFieldValue(field.name, event.component.option(\"value\"), true)\r\n }}\r\n />\r\n )}\r\n \r\n );\r\n const DXComboInput = ({ fieldName, fieldType, fieldPlaceholder, ...rest }) => (\r\n \r\n {({ field, form }) => (\r\n {\r\n form.setFieldValue(field.name, event.component.option(\"value\"), true)\r\n }}\r\n onFocusOut={event => { form.setFieldTouched(field.name) }}\r\n value={field.value}\r\n />\r\n )}\r\n \r\n );\r\n\r\n const DXCheckInput = ({ fieldName, fieldType, fieldPlaceholder, ...rest }) => (\r\n \r\n {({ field, form }) => (\r\n { form.setFieldValue(field.name, event.component.option(\"value\"), true) }}\r\n onFocusOut={event => { form.setFieldTouched(field.name) }}\r\n value={field.value}\r\n />\r\n )}\r\n \r\n );\r\n\r\n // A custom validation function. This must return an object\r\n // which keys are symmetrical to our values/initialValues\r\n const validateCreate = values => {\r\n const errors = {};\r\n\r\n if (!values.name) {\r\n errors.name = 'Requerido';\r\n } else if (values.name.length > 30) {\r\n errors.name = 'Must be 30 characters or less';\r\n }\r\n\r\n if (!values.email) {\r\n errors.email = 'Requerido';\r\n } else if (!/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}$/i.test(values.email)) {\r\n errors.email = 'Correo inválido';\r\n }\r\n\r\n return errors;\r\n };\r\n const validateLopd = values => {\r\n const errors = {};\r\n\r\n if (values.useLopd) {\r\n if (!values.passwordDuration) {\r\n errors.passwordDuration = 'Requerido';\r\n } else if (!(!isNaN(parseFloat(values.passwordDuration)) && isFinite(values.passwordDuration))) {\r\n errors.passwordDuration = 'Debe ser un número';\r\n } else if (Number(values.passwordDuration) > 3650) {\r\n errors.passwordDuration = 'Debe ser 3650 o menos';\r\n } else if (Number(values.passwordDuration) < 7) {\r\n errors.passwordDuration = 'Debe ser 7 o más';\r\n }\r\n if (!values.passwordRotation) {\r\n errors.passwordRotation = 'Requerido';\r\n } else if (!(!isNaN(parseFloat(values.passwordRotation)) && isFinite(values.passwordRotation))) {\r\n errors.passwordRotation = 'Debe ser un número';\r\n } else if (Number(values.passwordRotation) > 50) {\r\n errors.passwordRotation = 'Debe ser 50 o menos';\r\n } else if (Number(values.passwordRotation) < 0) {\r\n errors.passwordRotation = 'Debe ser 0 o más';\r\n }\r\n }\r\n\r\n return errors;\r\n };\r\n const createFormOptions = {\r\n initialValues: {\r\n email: '',\r\n name: '',\r\n type: 0\r\n },\r\n validate: validateCreate,\r\n onSubmit: async values => {\r\n setCreateUserState({\r\n loading: true, email: values.email, name: values.name, type: values.type, error: false, result: null\r\n });\r\n //alert(JSON.stringify(values, null, 2));\r\n const response = await fetch(`${process.env.PUBLIC_URL}/api/users`, {\r\n method: 'POST',\r\n body: JSON.stringify(values),\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n const data = await response.json();\r\n setCreateUserState({\r\n loading: false, email: values.email, name: values.name, type: values.type, error: (data.response == null), result: (data.response != null ? data.response : data.message)\r\n });\r\n if (data.response != null) {\r\n hideCreateDialog();\r\n showMailDialog(\"Correo al nuevo usuario\", values.email)\r\n }\r\n }\r\n };\r\n const lopdFormOptions = {\r\n initialValues: {\r\n useLopd: true,\r\n passwordDuration: \"365\",\r\n passwordRotation: \"10\"\r\n },\r\n validate: validateLopd,\r\n onSubmit: async values => {\r\n setLopdState({\r\n loading: true, useLopd: values.useLopd, passwordDuration: values.passwordDuration, passwordRotation: values.passwordRotation, error: false, result: null\r\n });\r\n //alert(JSON.stringify(values, null, 2));\r\n const response = await fetch(`${process.env.PUBLIC_URL}/api/LOPD`, {\r\n method: 'POST',\r\n body: JSON.stringify(values),\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n const data = await response.json();\r\n setLopdState({\r\n loading: false, useLopd: values.useLopd, passwordDuration: values.passwordDuration, passwordRotation: values.passwordRotation, error: (data.response == null), result: (data.response != null ? data.response : data.message)\r\n });\r\n if (data.response != null) {\r\n hideLopdDialog();\r\n }\r\n }\r\n };\r\n const editFormOptions = {\r\n initialValues: {\r\n email: editDialogState.email,\r\n name: editDialogState.name,\r\n type: editDialogState.type\r\n },\r\n validate: validateCreate,\r\n onSubmit: async values => {\r\n setEditUserState({\r\n id: editDialogState.id, loading: true, email: values.email, name: values.name, type: values.type, result: null\r\n });\r\n //alert(JSON.stringify(values, null, 2));\r\n const response = await fetch(`${process.env.PUBLIC_URL}/api/users`, {\r\n method: 'PUT',\r\n body: JSON.stringify({ ...values, id: editDialogState.id }),\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n const data = await response.json();\r\n setEditUserState({\r\n id: editDialogState.id, loading: false, email: values.email, name: values.name, type: values.type, result: (data.response != null ? data.response : data.message)\r\n });\r\n if (data.response != null) {\r\n hideEditDialog();\r\n }\r\n }\r\n };\r\n const deleteUser = async (userId) => {\r\n const response = await fetch(`${process.env.PUBLIC_URL}/api/users?userId=${userId}`, {\r\n method: 'DELETE',\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n const data = await response.json();\r\n }\r\n function handleErrors(response) {\r\n if (!response.ok) {\r\n throw Error(response.statusText);\r\n }\r\n return response;\r\n }\r\n const jsonDataSource = new CustomStore({\r\n key: 'id',\r\n loadMode: 'raw', \r\n load: () => {\r\n return fetch(`${process.env.PUBLIC_URL}/api/users`)\r\n .then(handleErrors)\r\n .then(response => response.json())\r\n .then(result => {\r\n // You can process the response here\r\n setUserCountState(result.response.length);\r\n return result.response;\r\n })\r\n .catch(() => { throw 'Network error' });\r\n }\r\n });\r\n\r\n const onActionCellPrepared = (e) => {\r\n //if (e.rowType === \"data\" && e.column.caption === \"Acciones\") {\r\n // if (e.data.userType == 2) {\r\n // e.cellElement.querySelectorAll(\"img\").forEach((each) => {\r\n // each.style.visibility = \"hidden\";\r\n // });\r\n // } else {\r\n // e.cellElement.querySelectorAll(\"img\").forEach((each) => {\r\n // each.style.visibility = \"visible\";\r\n // });\r\n // }\r\n //}\r\n }\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \r\n
\r\n

Usuarios 

\r\n

({userCountState} usuarios)

\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n event.element.classList.remove(\"dx-state-active\");\r\n event.element.classList.remove(\"dx-state-focused\");\r\n showLopdDialog(\"Configuración de RGPD\", \"otro hola\", \"mashola\");\r\n }\r\n }\r\n />\r\n \r\n \r\n {\r\n event.element.classList.remove(\"dx-state-active\");\r\n event.element.classList.remove(\"dx-state-focused\");\r\n showCreateDialog(\"Nuevo usuario\", \"otro hola\", \"mashola\");\r\n }\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n return rowData.userType == 2 ? \"Admin\" : (rowData.userType == 1 ? \"Usuario con permisos\" : \"Usuario sin permisos\");\r\n }}\r\n />\r\n \r\n {/**/}\r\n {/**/}\r\n {\r\n showEditDialog(\"Editar usuario\", e.row.data.id, e.row.data.name, e.row.data.mail, e.row.data.userType);\r\n }}\r\n render= {(data) => {\r\n return
\r\n }\r\n }\r\n />\r\n {\r\n {\r\n return sessionContext.user.id != e.row.data.id\r\n }\r\n }}\r\n text=\"Eliminar\"\r\n stylingMode=\"outlined\"\r\n type=\"success\"\r\n icon={imgDelete}\r\n hint=\"Eliminar usuario\"\r\n onClick={(e) => {\r\n showGenericDialog(\"Eliminar usuario\", [`¿Estás seguro de que deseas eliminar el usuario `, <>{e.row.data.name}?
, \"Este usuario dejará de tener acceso a DF-Gest de inmediato y todos los trámites asignados a él pasarán a 'No Asignado'.\"], \"Si, eliminar\", \"No, cancelar\", () => { deleteUser(e.row.data.id); hideGenericDialog() }, () => { hideGenericDialog() })\r\n }}\r\n render={(data) => {\r\n return
\r\n }}\r\n />\r\n
\r\n \r\n
\r\n
\r\n\r\n {\r\n e.component.repaint();\r\n }}\r\n visible={createDialogState.popupVisible}\r\n onHiding={hideCreateDialog}\r\n \r\n dragEnabled={false}\r\n closeOnOutsideClick={false}\r\n showCloseButton={false}\r\n showTitle={true}\r\n title={createDialogState.title}\r\n container=\".dx-viewport\"\r\n height=\"auto\"\r\n width=\"auto\"\r\n >\r\n \r\n
\r\n \r\n {\r\n ({ isSubmitting, handleReset, setFieldTouched, ...props }) => {\r\n const hasInputError = (props.touched.password && props.errors.password) || (props.touched.email && props.errors.email);\r\n const hasFetchError = (!createUserState.loading && createUserState.email == props.values.email && createUserState.name == props.values.name && createUserState.type == props.values.type && (createUserState.result == null || createUserState.error) );\r\n const hasError = (hasInputError || hasFetchError);\r\n return
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {hasError ?\r\n
\r\n {props.touched.email && props.errors.email && props.errors.email == \"Requerido\" || props.touched.name && props.errors.name && props.errors.name == \"Requerido\" || props.touched.type && props.errors.type && props.errors.type == \"Requerido\" ?\r\n \"Todos los campos son obligatorios\"\r\n :\r\n createUserState.error ? createUserState.result : \"Se han proporcionado datos inválidos\"\r\n }\r\n
:\r\n null\r\n }\r\n\r\n

Antes de guardar, revisa que el correo electrónico es el correcto.

\r\n

Tras guardarse, este campo no podrás editarlo y tendrás que eliminar el usuario y volver a crearlo.

\r\n
\r\n
\r\n
\r\n \r\n }\r\n }\r\n \r\n \r\n {\r\n e.component.repaint();\r\n }}\r\n visible={editDialogState.popupVisible}\r\n onHiding={hideEditDialog}\r\n dragEnabled={false}\r\n closeOnOutsideClick={false}\r\n showCloseButton={false}\r\n showTitle={true}\r\n title={editDialogState.title}\r\n container=\".dx-viewport\"\r\n height=\"auto\"\r\n width=\"auto\"\r\n minWidth=\"650px\"\r\n >\r\n \r\n
\r\n \r\n {\r\n ({ isSubmitting, handleReset, setFieldTouched, setFieldValue, ...props }) => {\r\n const hasInputError = (props.touched.password && props.errors.password) || (props.touched.email && props.errors.email);\r\n const hasFetchError = (!editUserState.loading && editUserState.email == props.values.email && editUserState.name == props.values.name && editUserState.type == props.values.type && (createUserState.result == null || createUserState.error));\r\n const hasError = (hasInputError || hasFetchError);\r\n return
\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {hasError ?\r\n
\r\n {props.touched.email && props.errors.email && props.errors.email == \"Requerido\" || props.touched.name && props.errors.name && props.errors.name == \"Requerido\" || props.touched.type && props.errors.type && props.errors.type == \"Requerido\" ?\r\n \"Todos los campos son obligatorios\"\r\n :\r\n editUserState.error ? editUserState.result :\"Se han proporcionado datos inválidos\"\r\n }\r\n
:\r\n null\r\n }\r\n\r\n
\r\n
\r\n
\r\n \r\n }\r\n }\r\n \r\n \r\n {\r\n e.component.repaint();\r\n }}\r\n visible={mailDialogState.popupVisible}\r\n onHiding={hideMailDialog}\r\n dragEnabled={false}\r\n closeOnOutsideClick={false}\r\n showCloseButton={false}\r\n showTitle={true}\r\n title={mailDialogState.title}\r\n container=\".dx-viewport\"\r\n height=\"auto\"\r\n width=\"600px\"\r\n >\r\n \r\n {\r\n hideMailDialog();\r\n },\r\n }}\r\n />\r\n
\r\n

\r\n Hemos enviado un correo electrónico al usuario que acabas de crear.\r\n

\r\n

\r\n {mailDialogState.target}\r\n

\r\n

\r\n En él recibirá las instrucciones para acceder a la plataforma.\r\n

\r\n

Si te has equivocado de correo electrónico, elimina el usuario y crea uno nuevo.

\r\n \r\n {\r\n e.component.repaint();\r\n }}\r\n visible={genericDialogState.popupVisible}\r\n onHiding={hideGenericDialog}\r\n dragEnabled={false}\r\n closeOnOutsideClick={false}\r\n showCloseButton={false}\r\n showTitle={true}\r\n title={genericDialogState.title}\r\n container=\".dx-viewport\"\r\n height=\"auto\"\r\n width=\"auto\"\r\n >\r\n \r\n {genericDialogState.koText != null ?\r\n \r\n :\r\n null\r\n }\r\n {genericDialogState.okText != null ?\r\n \r\n :\r\n null\r\n }\r\n

\r\n {genericDialogState.body}\r\n

\r\n \r\n {\r\n e.component.repaint();\r\n }}\r\n visible={lopdDialogState.popupVisible}\r\n onHiding={hideLopdDialog}\r\n\r\n dragEnabled={false}\r\n closeOnOutsideClick={false}\r\n showCloseButton={false}\r\n showTitle={true}\r\n title={lopdDialogState.title}\r\n container=\".dx-viewport\"\r\n height=\"auto\"\r\n width=\"400\"\r\n >\r\n \r\n
\r\n \r\n {\r\n ({ isSubmitting, handleReset, setFieldTouched, ...props }) => {\r\n const hasInputError = (props.touched.passwordDuration && props.errors.passwordDuration) || (props.touched.passwordRotation && props.errors.passwordRotation);\r\n const hasFetchError = (!lopdState.loading && lopdState.useLopd == props.values.useLopd && lopdState.passwordDuration == props.values.passwordDuration && lopdState.passwordRotation == props.values.passwordRotation && (lopdState.result == null || lopdState.error));\r\n const hasError = (hasInputError || hasFetchError);\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 {hasError ?\r\n
\r\n {props.touched.passwordDuration && props.errors.passwordDuration && props.errors.passwordDuration == \"Requerido\" || props.touched.passwordRotation && props.errors.passwordRotation && props.errors.passwordRotation == \"Requerido\" ?\r\n \"Los campos son obligatorios si se activa RGPD\"\r\n :\r\n lopdState.error ? lopdState.result : \"Se han proporcionado datos inválidos\"\r\n }\r\n
:\r\n null\r\n }\r\n
\r\n
\r\n
\r\n \r\n }\r\n }\r\n \r\n \r\n
\r\n )\r\n}\r\n","import { Popover } from 'devextreme-react'\r\nimport React, { useState } from 'react'\r\nimport imgInfo from '../../img/info.png';\r\n\r\nexport const InfoPopover = ({ content }) => {\r\n const [openState, setOpenState] = useState(false)\r\n const toggleOpenState = () => {\r\n setOpenState(!openState);\r\n }\r\n return (\r\n <>\r\n \r\n \r\n {content}\r\n \r\n \r\n )\r\n}\r\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAYAAAFM0aXcAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAD6ADAAQAAAABAAAADwAAAAAHNtsJAAAB0UlEQVQoFaVSPUscURQ9b2Y3EjClJliI0XZmCIqiWGgVQQMhYDTNzkr8QGzEVIFU/gFBBGFBJOw2KpKQNMHCIq0g6M42hoSgoOBuabXqvue9d32zmUCqPHgf59xzz9x33wA8vMyF4gWumgCCqTfCNhbLeOFPBPOt9YA9+GHZFYYNnnSf4/KoRCYk88JTCdh0vN5pKEF59ag1ZMSkNWbMZyuUCpnsmUvzhiCckZ0X+rgrX3/cX8ZR7goDSw9xmDsQAbso/UPFaq5I11YEO+47FD9uxTEYw834SrMqO2MZwcxT+JnPDSWdGBOfgq4eoFRoQZCdhjb9cPEFx/lX5FBx4KQmJcuYC5Tys9BYFEx8KraL8t/I7heifJflHOjbbQug0qPxmXiybeqLCypunkiQC2Jexj+u8kcj6EqmuguDdihnneZ3un8FSrXA6CGaC1A4g2oaR3Hjd8PVzxzSw3yqE/fr4NtHVM4ohheaEzyXxHppJHfWzy7/JYjiV/eyYyTeT8ZJT3ncqhFAfUgEo4Iv+NlUL2q1NaQfPE/EoXYJv+fkPcCM0x4lBD1hO671KqJCZ4IXIPo9hx7lJaBfxO22yhunje7VYWG8y39Cesr7r27fAZC8t6R3kR1+AAAAAElFTkSuQmCC\"","import { Button, ColorBox, DataGrid, Popup, SelectBox, TextBox } from 'devextreme-react'\r\nimport React, { useRef, useState } from 'react'\r\nimport useWindowSize from '../../hooks/useWindowSizze'\r\nimport CustomStore from 'devextreme/data/custom_store';\r\nimport { Column, Button as DGButton, Editing, SearchPanel, Toolbar, Item, Scrolling, LoadPanel as DGLoadPanel } from 'devextreme-react/data-grid';\r\nimport \"./States.css\";\r\nimport imgDelete from '../../img/delete.png';\r\nimport imgEdit from '../../img/edit.png';\r\nimport imgGoBack from '../../img/go_back.png';\r\nimport check_rounded_big from '../../img/check_rounded_big.png';\r\nimport { Link, useHistory } from 'react-router-dom';\r\nimport { Position, ToolbarItem } from 'devextreme-react/popover';\r\nimport { Field, Form, Formik } from 'formik';\r\nimport { BackButton } from '../common/BackButton';\r\nimport { InfoPopover } from '../common/InfoPopover';\r\nimport imgSpinner from '../../img/spinner.gif';\r\n\r\nexport const States = () => {\r\n\r\n let history = useHistory();\r\n\r\n const editFormRef = useRef()\r\n\r\n const [createStateState, setCreateStateState] = useState({ loading: false, foreColor: null, name: null, bgColor: null, error: false, result: null });\r\n const [editStateState, setEditStateState] = useState({ id: -1, loading: false, foreColor: null, name: null, bgColor: null, error: false, result: null });\r\n const [stateCountState, setStateCountState] = useState(0);\r\n\r\n const [createDialogState, setCreateDialogState] = useState({\r\n title: \"\",\r\n header: \"\",\r\n body: \"\",\r\n position: { my: 'center', at: 'center', of: window },\r\n popupVisible: false,\r\n });\r\n const showCreateDialog = (title, header, body) => {\r\n setCreateDialogState({\r\n title: title,\r\n header: header,\r\n body: body,\r\n position: { my: 'center', at: 'center', of: window },\r\n popupVisible: true,\r\n });\r\n }\r\n const hideCreateDialog = () => {\r\n setCreateDialogState({\r\n position: { my: 'center', at: 'center', of: window },\r\n popupVisible: false,\r\n });\r\n }\r\n\r\n\r\n\r\n const [editDialogState, setEditDialogState] = useState({\r\n id: -1,\r\n name: \"\",\r\n bgColor: \"\",\r\n foreColor: \"\",\r\n title: \"\",\r\n header: \"\",\r\n body: \"\",\r\n position: { my: 'center', at: 'center', of: window },\r\n popupVisible: false,\r\n });\r\n const showEditDialog = (title, id, name, bgColor, foreColor) => {\r\n setEditDialogState({\r\n id: id,\r\n name: name,\r\n bgColor: bgColor,\r\n foreColor: foreColor,\r\n title: title,\r\n position: { my: 'center', at: 'center', of: window },\r\n popupVisible: true,\r\n });\r\n if (editFormRef != undefined && editFormRef != null && editFormRef.current != undefined && editFormRef.current != null) {\r\n editFormRef.current.setFieldValue(\"name\", name, false);\r\n editFormRef.current.setFieldValue(\"foreColor\", foreColor, false);\r\n editFormRef.current.setFieldValue(\"bgColor\", bgColor, false);\r\n }\r\n \r\n }\r\n const hideEditDialog = () => {\r\n setEditDialogState({\r\n id: -1,\r\n position: { my: 'center', at: 'center', of: window },\r\n popupVisible: false,\r\n });\r\n }\r\n\r\n\r\n\r\n\r\n const [mailDialogState, setMailDialogState] = useState({\r\n title: \"\",\r\n header: \"\",\r\n body: \"\",\r\n position: { my: 'center', at: 'center', of: window },\r\n popupVisible: false,\r\n });\r\n const showMailDialog = (title, target) => {\r\n setMailDialogState({\r\n title: title,\r\n target: target,\r\n position: { my: 'center', at: 'center', of: window },\r\n popupVisible: true,\r\n });\r\n }\r\n const hideMailDialog = () => {\r\n setMailDialogState({\r\n position: { my: 'center', at: 'center', of: window },\r\n popupVisible: false,\r\n });\r\n }\r\n\r\n\r\n const [genericDialogState, setGenericDialogState] = useState({\r\n title: \"\",\r\n body: \"\",\r\n okText: \"\",\r\n koText: \"\",\r\n okCallback: () => {\r\n\r\n },\r\n koCallback: () => {\r\n\r\n },\r\n position: { my: 'center', at: 'center', of: window },\r\n popupVisible: false,\r\n });\r\n const showGenericDialog = (title, body, okText, koText, okCallback, koCallback) => {\r\n setGenericDialogState({\r\n title: title,\r\n body: body,\r\n okText: okText,\r\n koText: koText,\r\n okCallback: okCallback,\r\n koCallback: koCallback,\r\n position: { my: 'center', at: 'center', of: window },\r\n popupVisible: true,\r\n });\r\n }\r\n const hideGenericDialog = () => {\r\n setGenericDialogState({\r\n title: \"\",\r\n body: \"\",\r\n okText: \"\",\r\n koText: \"\",\r\n okCallback: () => {\r\n\r\n },\r\n koCallback: () => {\r\n\r\n },\r\n position: { my: 'center', at: 'center', of: window },\r\n popupVisible: false,\r\n });\r\n }\r\n\r\n\r\n const DXTextInput = ({ fieldName, fieldType, fieldPlaceholder, ...rest }) => (\r\n \r\n {({ field, form }) => (\r\n {\r\n form.setFieldValue(field.name, event.component.option(\"value\"), true)\r\n }}\r\n onChange={event => { form.setFieldValue(field.name, event.component.option(\"value\"), true) }}\r\n onFocusOut={event => { form.setFieldTouched(field.name) }}\r\n value={field.value}\r\n />\r\n )}\r\n \r\n );\r\n const DXComboInput = ({ fieldName, fieldType, fieldPlaceholder, ...rest }) => (\r\n \r\n {({ field, form }) => (\r\n {\r\n form.setFieldValue(field.name, event.component.option(\"value\"), true)\r\n }}\r\n onFocusOut={event => { form.setFieldTouched(field.name) }}\r\n value={field.value}\r\n />\r\n )}\r\n \r\n );\r\n const DXColorBoxInput = ({ fieldName, fieldType, fieldPlaceholder, ...rest }) => (\r\n \r\n {({ field, form }) => (\r\n {\r\n form.setFieldValue(field.name, event.component.option(\"value\"), true)\r\n }}\r\n onFocusOut={event => { form.setFieldTouched(field.name) }}\r\n value={field.value}\r\n />\r\n )}\r\n \r\n );\r\n\r\n // A custom validation function. This must return an object\r\n // which keys are symmetrical to our values/initialValues\r\n const validateCreate = values => {\r\n const errors = {};\r\n\r\n if (!values.name) {\r\n errors.name = 'Requerido';\r\n } else if (values.name.length > 30) {\r\n errors.name = 'Must be 30 characters or less';\r\n }\r\n return errors;\r\n };\r\n const createFormOptions = {\r\n initialValues: {\r\n name: '',\r\n foreColor: '#000000',\r\n bgColor: '#FFFFFF'\r\n },\r\n validate: validateCreate,\r\n onSubmit: async values => {\r\n setCreateStateState({\r\n loading: true, foreColor: values.foreColor, name: values.name, bgColor: values.bgColor, error: false, result: null\r\n });\r\n //alert(JSON.stringify(values, null, 2));\r\n const response = await fetch(`${process.env.PUBLIC_URL}/api/states`, {\r\n method: 'POST',\r\n body: JSON.stringify(values),\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n const data = await response.json();\r\n setCreateStateState({\r\n loading: false, foreColor: values.foreColor, name: values.name, bgColor: values.bgColor, error: (data.response == null), result: (data.response != null ? data.response : data.message)\r\n });\r\n if (data.response != null) {\r\n hideCreateDialog();\r\n }\r\n }\r\n };\r\n const editFormOptions = {\r\n initialValues: {\r\n email: editDialogState.email,\r\n foreColor: editDialogState.foreColor,\r\n bgColor: editDialogState.bgColor\r\n },\r\n validate: validateCreate,\r\n onSubmit: async values => {\r\n setEditStateState({\r\n id: editDialogState.id, loading: true, email: values.email, name: values.name, type: values.type, result: null\r\n });\r\n //alert(JSON.stringify(values, null, 2));\r\n const response = await fetch(`${process.env.PUBLIC_URL}/api/states`, {\r\n method: 'PUT',\r\n body: JSON.stringify({ ...values, id: editDialogState.id }),\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n const data = await response.json();\r\n setEditStateState({\r\n id: editDialogState.id, loading: false, email: values.email, name: values.name, type: values.type, result: (data.response != null ? data.response : data.message)\r\n });\r\n if (data.response != null) {\r\n hideEditDialog();\r\n }\r\n }\r\n };\r\n\r\n function handleErrors(response) {\r\n if (!response.ok) {\r\n throw Error(response.statusText);\r\n }\r\n return response;\r\n }\r\n const jsonDataSource = new CustomStore({\r\n key: 'id',\r\n loadMode: 'raw', \r\n load: () => {\r\n return fetch(`${process.env.PUBLIC_URL}/api/states`)\r\n .then(handleErrors)\r\n .then(response => response.json())\r\n .then(result => {\r\n // You can process the response here\r\n setStateCountState(result.response.length);\r\n return result.response;\r\n })\r\n .catch(() => { throw 'Network error' });\r\n }\r\n });\r\n const renderColorCell = (data) => {\r\n return
;\r\n }\r\n const onActionCellPrepared = (e) => {\r\n if (e.rowType === \"data\" && e.column.caption === \"Acciones\") {\r\n if (e.data.id <= 99) {\r\n e.cellElement.querySelectorAll(\"img\").forEach((each) => {\r\n each.style.visibility = \"hidden\";\r\n });\r\n } else {\r\n e.cellElement.querySelectorAll(\"img\").forEach((each) => {\r\n each.style.visibility = \"visible\";\r\n });\r\n }\r\n }\r\n }\r\n const deleteState = async (stateId) => {\r\n const response = await fetch(`${process.env.PUBLIC_URL}/api/states?stateId=${stateId}`, {\r\n method: 'DELETE',\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n const data = await response.json();\r\n }\r\n\r\n const systemColumnHeaderCellRender = (data) => {\r\n return
{data.column.caption}
\r\n }\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \r\n
\r\n

Estados 

\r\n

({stateCountState} estados)

\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n event.element.classList.remove(\"dx-state-active\");\r\n event.element.classList.remove(\"dx-state-focused\");\r\n showCreateDialog(\"Nuevo estado\", \"otro hola\", \"mashola\");\r\n }\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n return rowData.id <= 99 ? true : false;\r\n }}\r\n />\r\n \r\n \r\n \r\n {/**/}\r\n {/**/}\r\n {\r\n return e.row.data.id >= 100; //rowData.id >= 100\r\n }}\r\n text=\"Editar\"\r\n stylingMode=\"outlined\"\r\n type=\"success\"\r\n icon={imgEdit}\r\n hint=\"Editar estado\"\r\n onClick={(e) => {\r\n showEditDialog(\"Editar estado\", e.row.data.id, e.row.data.name, e.row.data.bgColor, e.row.data.foreColor);\r\n }}\r\n render={(data) => {\r\n return
\r\n }\r\n }\r\n />\r\n {\r\n return e.row.data.id >= 100;\r\n }}\r\n text=\"Eliminar\"\r\n stylingMode=\"outlined\"\r\n type=\"success\"\r\n icon={imgDelete}\r\n hint=\"Eliminar estado\"\r\n onClick={(e) => {\r\n showGenericDialog(\"Eliminar estado\", [`¿Estás seguro de que deseas eliminar el estado `, <>{e.row.data.name}?
, \"Esta acción es irreversible y los trámites que estén en este estado pasarán a 'Sin Estado.'\"], \"Si, eliminar\", \"No, cancelar\", () => { deleteState(e.row.data.id); hideGenericDialog() }, () => { hideGenericDialog() })\r\n }}\r\n render={(data) => {\r\n return
\r\n }}\r\n />\r\n
\r\n \r\n
\r\n
\r\n\r\n {\r\n e.component.repaint();\r\n }}\r\n visible={createDialogState.popupVisible}\r\n onHiding={hideCreateDialog}\r\n \r\n dragEnabled={false}\r\n closeOnOutsideClick={false}\r\n showCloseButton={false}\r\n showTitle={true}\r\n title={createDialogState.title}\r\n container=\".dx-viewport\"\r\n height=\"auto\"\r\n width=\"auto\"\r\n minWidth=\"400\"\r\n >\r\n \r\n
\r\n \r\n {\r\n ({ isSubmitting, handleReset, setFieldTouched, ...props }) => {\r\n const hasInputError = (props.touched.name && props.errors.name);\r\n const hasFetchError = (!createStateState.loading && createStateState.email == props.values.email && createStateState.name == props.values.name && createStateState.type == props.values.type && (createStateState.result == null || createStateState.error) );\r\n const hasError = (hasInputError || hasFetchError);\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 {hasError ?\r\n
\r\n {props.touched.name && props.errors.name && props.errors.name == \"Requerido\" ?\r\n \"Todos los campos son obligatorios\"\r\n :\r\n createStateState.error ? createStateState.result : \"Se han proporcionado datos inválidos\"\r\n }\r\n
:\r\n null\r\n }\r\n\r\n
\r\n
\r\n
\r\n \r\n }\r\n }\r\n \r\n \r\n {\r\n e.component.repaint();\r\n }}\r\n visible={editDialogState.popupVisible}\r\n onHiding={hideEditDialog}\r\n dragEnabled={false}\r\n closeOnOutsideClick={false}\r\n showCloseButton={false}\r\n showTitle={true}\r\n title={editDialogState.title}\r\n container=\".dx-viewport\"\r\n height=\"auto\"\r\n width=\"auto\"\r\n minWidth=\"400\"\r\n >\r\n \r\n
\r\n \r\n {\r\n ({ isSubmitting, handleReset, setFieldTouched, setFieldValue, ...props }) => {\r\n const hasInputError = (props.touched.password && props.errors.password) || (props.touched.email && props.errors.email);\r\n const hasFetchError = (!editStateState.loading && editStateState.email == props.values.email && editStateState.name == props.values.name && editStateState.type == props.values.type && (createStateState.result == null || createStateState.error));\r\n const hasError = (hasInputError || hasFetchError);\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 {hasError ?\r\n
\r\n {props.touched.email && props.errors.email && props.errors.email == \"Requerido\" || props.touched.name && props.errors.name && props.errors.name == \"Requerido\" || props.touched.type && props.errors.type && props.errors.type == \"Requerido\" ?\r\n \"Todos los campos son obligatorios\"\r\n :\r\n editStateState.error ? editStateState.result :\"Se han proporcionado datos inválidos\"\r\n }\r\n
:\r\n null\r\n }\r\n\r\n
\r\n
\r\n
\r\n \r\n }\r\n }\r\n \r\n \r\n {\r\n e.component.repaint();\r\n }}\r\n visible={mailDialogState.popupVisible}\r\n onHiding={hideMailDialog}\r\n dragEnabled={false}\r\n closeOnOutsideClick={false}\r\n showCloseButton={false}\r\n showTitle={true}\r\n title={mailDialogState.title}\r\n container=\".dx-viewport\"\r\n height=\"auto\"\r\n width=\"auto\"\r\n >\r\n \r\n {\r\n hideMailDialog();\r\n },\r\n }}\r\n />\r\n
\r\n

\r\n Hemos enviado un correo electrónico al estado que acabas de crear.\r\n

\r\n

\r\n {mailDialogState.target}\r\n

\r\n

\r\n En él recibirá las instrucciones para acceder a la plataforma.\r\n

\r\n

Si te has equivocado de correo electrónico, elimina el estado y crea uno nuevo.

\r\n \r\n {\r\n e.component.repaint();\r\n }}\r\n visible={genericDialogState.popupVisible}\r\n onHiding={hideGenericDialog}\r\n dragEnabled={false}\r\n closeOnOutsideClick={false}\r\n showCloseButton={false}\r\n showTitle={true}\r\n title={genericDialogState.title}\r\n container=\".dx-viewport\"\r\n height=\"auto\"\r\n width=\"auto\"\r\n >\r\n \r\n {genericDialogState.koText != null ?\r\n \r\n :\r\n null\r\n }\r\n {genericDialogState.okText != null ?\r\n \r\n :\r\n null\r\n }\r\n

\r\n {genericDialogState.body}\r\n

\r\n \r\n
\r\n )\r\n}\r\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAAGXcA1uAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAGKADAAQAAAABAAAAGAAAAADiNXWtAAACt0lEQVRIDe1VTWgTQRT+ZhOTJuLFVvwDI6JYYSf9g4KKIvXgvaVYxN3GHkrPJQheSg4FwZMehCJYQi00SqvoRRGhlVYRjH9R0frTKoiVxoM92EjT7Ppm0p1k2UoreJIOLPPN97733syb4S3wp8GkgZvdYGzGJfKhNnYEVdFBbKnNuSyrWDSaldANexXKv5X4pAM3z2JzzTwi9Qwb+QnMZtKAfvK+NIrETnLdGC1m0Nt7VSrdGFL4n4BiFctDcaOHlnVU1TFY2A+GH3g50OVIlsrefgqB4B08uTSDRELD8MeCI8CrK0XNwY4NmFuMKR7cfKgWujkuT8rNy4rjxl2BvVsSrG5GyXIYTEsjk3wkqP9puA9db+zDAoboDsZhI0cHb4JPi+N5csx7aN2cQEPnOmngxiBV6qIScfOpwhLoxgNF6EZW3kHx1d1SPDfvCaxJIuRrUQagSmHG9igcqGgTuOiwUDiAaOyQNAZD25SocheXmMeqsfCrPCjRDZ1h+TzqOkoOrYkAcTfJttUJ4q6SYIVo8tMxMCsMOzyKTN+sI16bV1cBb1GX8xOFfjNVDU2LwLYidNlZ2NpnoGJqpaIvnyAaXw8rewbMbqJ8w/D7U3jW/9WTW97wdAtsu42+eQRD3bLtlAndCWqMZlgsTjs8jRcDE0rHjVbYLAXatuIYmyNdI+neKU48UNu6QLob1Mv6BF9KIDp1yH8cj5PflIMA0Y69sPJvXVxp8Z0CbSotl5D41fzENbweOFq2I18SucJI+auX8kz/JLWD254ggtBw3sOL7pvDVWjsurCVTuAoxT9y0eolyzgCFT1U07w0iXY+Mk39HzvJOUM9573jImfd6KKNdFIjPkeNmMpZHN4EjkXMoqHlQfVHMwWepv18ofkD/WC2k3UH4d00p6nJpZZvciLI2lihAr8BDdvBpXeXHSMAAAAASUVORK5CYII=\"","import { Button, DataGrid, DropDownButton, List, Popup, SelectBox, TextBox } from 'devextreme-react'\r\nimport React, { useCallback, useEffect, useRef, useState } from 'react'\r\nimport useWindowSize from '../../hooks/useWindowSizze'\r\nimport CustomStore from 'devextreme/data/custom_store';\r\nimport { Column, Button as DGButton, Editing, SearchPanel, Toolbar, Item, Scrolling, LoadPanel as DGLoadPanel, Sorting } from 'devextreme-react/data-grid';\r\nimport \"./Procedures.css\";\r\nimport imgDelete from '../../img/delete.png';\r\nimport imgEdit from '../../img/edit.png';\r\nimport imgView from '../../img/ver.png';\r\nimport imgGoBack from '../../img/go_back.png';\r\nimport check_rounded_big from '../../img/check_rounded_big.png';\r\nimport { Link, useHistory, useLocation } from 'react-router-dom';\r\nimport Popover, { Position, ToolbarItem } from 'devextreme-react/popover';\r\nimport { Field, Form, Formik } from 'formik';\r\nimport { BackButton } from '../common/BackButton';\r\nimport imgSpinner from '../../img/spinner.gif';\r\n\r\nexport const Procedures = () => {\r\n const [newSubmenuOpenState, setNewSubmenuOpenState] = useState(false)\r\n const toggleNewSubmenuOpenState = () => {\r\n setNewSubmenuOpenState(!newSubmenuOpenState);\r\n }\r\n const location = useLocation();\r\n const history = useHistory();\r\n const editFormRef = useRef();\r\n\r\n\r\n const [createProcedureState, setCreateProcedureState] = useState({ loading: false, email: null, name: null, type: null, error: false, result: null });\r\n const [editProcedureState, setEditProcedureState] = useState({ id: -1, loading: false, email: null, name: null, type: null, error: false, result: null });\r\n const [procedureCountState, setProcedureCountState] = useState(0);\r\n const [defaultProceduresState, setDefaultProceduresState] = useState([]);\r\n const [createDefaultProcedureState, setCreateDefaultProcedureState] = useState({ loading: false, error: false, result: null });\r\n\r\n\r\n const [mailDialogState, setMailDialogState] = useState({\r\n title: \"\",\r\n header: \"\",\r\n body: \"\",\r\n position: { my: 'center', at: 'center', of: window },\r\n popupVisible: false,\r\n });\r\n const showMailDialog = (title, target) => {\r\n setMailDialogState({\r\n title: title,\r\n target: target,\r\n position: { my: 'center', at: 'center', of: window },\r\n popupVisible: true,\r\n });\r\n }\r\n const hideMailDialog = () => {\r\n setMailDialogState({\r\n position: { my: 'center', at: 'center', of: window },\r\n popupVisible: false,\r\n });\r\n }\r\n\r\n\r\n const [defaultProcedureDialogState, setDefaultProcedureDialogState] = useState({\r\n title: \"\",\r\n header: \"\",\r\n body: \"\",\r\n position: { my: 'center', at: 'center', of: window },\r\n popupVisible: false,\r\n });\r\n const showDefaultProcedureDialog = (title) => {\r\n setDefaultProcedureDialogState({\r\n title: title,\r\n position: { my: 'center', at: 'center', of: window },\r\n popupVisible: true,\r\n });\r\n }\r\n const hideDefaultProcedureDialog = () => {\r\n setDefaultProcedureDialogState({\r\n position: { my: 'center', at: 'center', of: window },\r\n popupVisible: false,\r\n });\r\n }\r\n\r\n\r\n\r\n const [importSucessDialogState, setImportSucessDialogState] = useState({\r\n title: \"\",\r\n header: \"\",\r\n body: \"\",\r\n position: { my: 'center', at: 'center', of: window },\r\n popupVisible: false,\r\n });\r\n const showImportSucessDialog = (title) => {\r\n setImportSucessDialogState({\r\n title: title,\r\n position: { my: 'center', at: 'center', of: window },\r\n popupVisible: true,\r\n });\r\n }\r\n const hideImportSucessDialog = () => {\r\n setImportSucessDialogState({\r\n position: { my: 'center', at: 'center', of: window },\r\n popupVisible: false,\r\n });\r\n }\r\n\r\n\r\n const [importDialogValueState, setImportDialogValueState] = useState(\"\");\r\n const [importDialogObjectState, setImportDialogObjectState] = useState(null);\r\n const [importDialogState, setImportDialogState] = useState({\r\n title: \"\",\r\n header: \"\",\r\n body: \"\",\r\n position: { my: 'center', at: 'center', of: window },\r\n popupVisible: false,\r\n });\r\n const showImportDialog = async (title) => {\r\n setImportDialogValueState(\"\");\r\n setImportDialogObjectState(null);\r\n if (navigator.clipboard.readText) {\r\n const text = await navigator.clipboard.readText();\r\n let b64Parsed = \"\";\r\n let jsonParsed = \"\";\r\n try {\r\n b64Parsed = atob(text)\r\n jsonParsed = JSON.parse(b64Parsed);\r\n setImportDialogValueState(text);\r\n console.log(jsonParsed);\r\n if (jsonParsed.Id == undefined || jsonParsed.Data == undefined || jsonParsed.Docs == undefined || jsonParsed.Name == undefined || jsonParsed.States == undefined) {\r\n //El código es inválido\r\n } else {\r\n setImportDialogObjectState(jsonParsed);\r\n }\r\n } catch (err) {\r\n\r\n }\r\n }\r\n setImportDialogState({\r\n title: title,\r\n position: { my: 'center', at: 'center', of: window },\r\n popupVisible: true,\r\n });\r\n }\r\n const hideImportDialog = () => {\r\n setImportDialogState({\r\n position: { my: 'center', at: 'center', of: window },\r\n popupVisible: false,\r\n });\r\n }\r\n\r\n\r\n\r\n\r\n const DXTextInput = ({ fieldName, fieldType, fieldPlaceholder, ...rest }) => (\r\n \r\n {({ field, form }) => (\r\n { form.setFieldValue(field.name, event.component.option(\"value\"), true) }}\r\n onFocusOut={event => { form.setFieldTouched(field.name) }}\r\n value={field.value}\r\n />\r\n )}\r\n \r\n );\r\n const DXComboInput = ({ fieldName, fieldType, fieldPlaceholder, ...rest }) => (\r\n \r\n {({ field, form }) => (\r\n {\r\n form.setFieldValue(field.name, event.component.option(\"value\"), true)\r\n }}\r\n onFocusOut={event => { form.setFieldTouched(field.name) }}\r\n value={field.value}\r\n />\r\n )}\r\n \r\n );\r\n\r\n // A custom validation function. This must return an object\r\n // which keys are symmetrical to our values/initialValues\r\n const validateCreate = values => {\r\n const errors = {};\r\n\r\n if (!values.name) {\r\n errors.name = 'Requerido';\r\n } else if (values.name.length > 30) {\r\n errors.name = 'Must be 30 characters or less';\r\n }\r\n\r\n if (!values.email) {\r\n errors.email = 'Requerido';\r\n } else if (!/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}$/i.test(values.email)) {\r\n errors.email = 'Invalid email address';\r\n }\r\n\r\n return errors;\r\n };\r\n\r\n function handleErrors(response) {\r\n if (!response.ok) {\r\n throw Error(response.statusText);\r\n }\r\n return response;\r\n }\r\n const jsonDataSource = new CustomStore({\r\n key: 'id',\r\n loadMode: 'raw',\r\n load: () => {\r\n return fetch(`${process.env.PUBLIC_URL}/api/procedures/Get`)\r\n .then(handleErrors)\r\n .then(response => response.json())\r\n .then(result => {\r\n // You can process the response here\r\n setProcedureCountState(result.response.length);\r\n return result.response;\r\n })\r\n .catch(() => { throw 'Network error' });\r\n }\r\n });\r\n\r\n const loadDefaultProcedures = async () => {\r\n fetch(`${process.env.PUBLIC_URL}/api/procedures/GetDefaultProcedures`)\r\n .then(response => response.json())\r\n .then(result => {\r\n // You can process the response here\r\n console.log(result.response)\r\n setDefaultProceduresState(result.response)\r\n })\r\n .catch(() => { throw 'Network error' });\r\n };\r\n\r\n const importProcedure = async (importString) => {\r\n setCreateDefaultProcedureState({\r\n loading: true, error: false, result: null\r\n });\r\n //alert(JSON.stringify(values, null, 2));\r\n const response = await fetch(`${process.env.PUBLIC_URL}/api/procedures/ImportProcedure`, {\r\n method: 'POST',\r\n body: JSON.stringify(importString),\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n const data = await response.json();\r\n setCreateDefaultProcedureState({\r\n loading: false, error: (data.response == null), result: (data.response != null ? data.response : data.message)\r\n });\r\n hideDefaultProcedureDialog();\r\n hideImportDialog();\r\n if (!createDefaultProcedureState.error) {\r\n showImportSucessDialog(\"Tipo de trámite creado\");\r\n }\r\n }\r\n\r\n\r\n const loadAll = async () => {\r\n //setLoadingState(true);\r\n Promise.all([loadDefaultProcedures()]).then(() => {\r\n //setLoadingState(false);\r\n });\r\n }\r\n useEffect(loadAll, []);\r\n\r\n\r\n const importButtonClick = useCallback((event) => {\r\n showImportDialog(\"Importar tipo de trámite\");\r\n event.element.classList.remove(\"dx-state-active\");\r\n event.element.classList.remove(\"dx-state-focused\");\r\n }, [])\r\n const newButtonClick = useCallback((event) => {\r\n toggleNewSubmenuOpenState();\r\n event.element.classList.remove(\"dx-state-active\");\r\n event.element.classList.remove(\"dx-state-focused\");\r\n }, [])\r\n const newButtonAttrs = { class: \"procedures-component-newbutton\", id: \"procedures-component-newbutton\" };\r\n const stateCellRenderer = useCallback((data) => {\r\n let stateName = \"Cargando...\";\r\n let stateBGColor = \"#FFFFFF\";\r\n if (data.data.state == -1) {\r\n stateName = \"Oculto\";\r\n stateBGColor = \"#FF5252\";\r\n } else if (data.data.state == 0) {\r\n stateName = \"Desactivado\";\r\n stateBGColor = \"#BDBDBD\";\r\n } else if (data.data.state == 1) {\r\n stateName = \"Activo\";\r\n stateBGColor = \"#8BC34A\";\r\n }\r\n return
{stateName}
\r\n }, []);\r\n const verButtonRenderer = useCallback((data) => {\r\n return
\r\n }, []);\r\n const verButtonClick = useCallback((e) => {\r\n let currentUrl = history.location.pathname;\r\n let backlog = [];\r\n if (history.location.state != undefined && history.location.state.comesFrom != undefined && history.location.state.comesFrom != \"\") {\r\n backlog = history.location.state.comesFrom;\r\n }\r\n backlog.push(currentUrl);\r\n history.replace(`/procedure/${e.row.data.id}`, { comesFrom: backlog });\r\n }, []);\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \r\n
\r\n

Tipos de trámites 

\r\n

({procedureCountState} trámites)

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n {\r\n setNewSubmenuOpenState(false);\r\n }}\r\n width={200}\r\n visible={newSubmenuOpenState}\r\n onContentReady={\r\n (args) => {\r\n var html = args.component.content();\r\n html.style.padding = 0;\r\n html.style.borderRadius = \"8px\";\r\n }\r\n }\r\n >\r\n {\r\n if (e.itemData.id == 0) {\r\n history.push(\"./procedure/-1\");\r\n setNewSubmenuOpenState(false);\r\n } else {\r\n showDefaultProcedureDialog(\"Tipos de trámite predeterminados\");\r\n setNewSubmenuOpenState(false);\r\n }\r\n }}\r\n allowItemDeleting={false}>\r\n \r\n \r\n\r\n {\r\n e.component.repaint();\r\n }}\r\n visible={mailDialogState.popupVisible}\r\n onHiding={hideMailDialog}\r\n dragEnabled={false}\r\n closeOnOutsideClick={false}\r\n showCloseButton={false}\r\n showTitle={true}\r\n title={mailDialogState.title}\r\n container=\".dx-viewport\"\r\n height=\"auto\"\r\n width=\"auto\"\r\n >\r\n \r\n {\r\n hideMailDialog();\r\n },\r\n }}\r\n />\r\n
\r\n

\r\n Hemos enviado un correo electrónico al trámite que acabas de crear.\r\n

\r\n

\r\n {mailDialogState.target}\r\n

\r\n

\r\n En él recibirá las instrucciones para acceder a la plataforma.\r\n

\r\n

Si te has equivocado de correo electrónico, elimina el trámite y crea uno nuevo.

\r\n \r\n {\r\n e.component.repaint();\r\n }}\r\n visible={defaultProcedureDialogState.popupVisible}\r\n onHiding={hideDefaultProcedureDialog}\r\n dragEnabled={false}\r\n closeOnOutsideClick={false}\r\n showCloseButton={false}\r\n showTitle={true}\r\n title={defaultProcedureDialogState.title}\r\n container=\".dx-viewport\"\r\n height=\"auto\"\r\n width=\"auto\"\r\n >\r\n \r\n {\r\n hideDefaultProcedureDialog();\r\n },\r\n }}\r\n />\r\n

\r\n Elige un tipo de trámite predeterminado y se creará automáticamente.\r\n

\r\n {\r\n if (e.itemData.contenido != null && e.itemData.contenido != \"\") {\r\n await importProcedure(e.itemData.contenido);\r\n }\r\n }}\r\n allowItemDeleting={false}>\r\n \r\n \r\n {\r\n e.component.repaint();\r\n }}\r\n visible={importSucessDialogState.popupVisible}\r\n onHiding={hideImportSucessDialog}\r\n dragEnabled={false}\r\n closeOnOutsideClick={false}\r\n showCloseButton={false}\r\n showTitle={true}\r\n title={importSucessDialogState.title}\r\n container=\".dx-viewport\"\r\n height=\"auto\"\r\n width=\"auto\"\r\n >\r\n \r\n {\r\n hideImportSucessDialog();\r\n },\r\n }}\r\n />\r\n
\r\n

\r\n Se ha creado el tipo de trámite satisfactoriamente.\r\n

\r\n

Puedes modificar el trámite desde el listado que se muestra en esta misma ventana.

\r\n \r\n {\r\n e.component.repaint();\r\n }}\r\n visible={importDialogState.popupVisible}\r\n onHiding={hideImportDialog}\r\n dragEnabled={false}\r\n closeOnOutsideClick={false}\r\n showCloseButton={false}\r\n showTitle={true}\r\n title={importDialogState.title}\r\n container=\".dx-viewport\"\r\n height=\"auto\"\r\n width=\"auto\"\r\n >\r\n \r\n {\r\n await importProcedure(importDialogValueState);\r\n hideImportDialog();\r\n },\r\n }}\r\n />\r\n {\r\n hideImportDialog();\r\n },\r\n }}\r\n />\r\n {(navigator.clipboard != undefined && navigator.clipboard.readText != undefined && importDialogValueState!=\"\" && importDialogObjectState!=null ?\r\n <>\r\n

\r\n Pulsa el botón importar para confirmar la importación del código de importación que se muestra a continuación:\r\n

\r\n
\r\n
\r\n
Nombre:
{importDialogObjectState.Name}
\r\n
\r\n
\r\n
Datos:
{importDialogObjectState.Data.length}
\r\n
\r\n
\r\n
Documentos:
{importDialogObjectState.Docs.length}
\r\n
\r\n
\r\n \r\n \r\n :\r\n <>\r\n

\r\n No se ha encontrado ningún código de importación de tipo de trámite en el portapapeles.\r\n

\r\n

Si has copiado un código de importación es posible que debas permitir al navegador el acceso al portapapeles.

\r\n \r\n )}\r\n \r\n
\r\n )\r\n}\r\n","import { CheckBox, List } from 'devextreme-react';\r\nimport { ItemDragging } from 'devextreme-react/list';\r\nimport React from 'react'\r\nimport { disable } from 'workbox-navigation-preload';\r\nimport \"./ProcedureStateChooser.css\";\r\n\r\nexport const ProcedureStateChooser = ({ itemsState, setItemsState, disabled }) => {\r\n\r\n const onDragStart=(e) => {\r\n e.itemData = itemsState[e.fromIndex];\r\n }\r\n\r\n const onAdd = (e) => {\r\n const tasks = itemsState;\r\n setItemsState(\r\n [...tasks.slice(0, e.toIndex), e.itemData, ...tasks.slice(e.toIndex)],\r\n );\r\n }\r\n\r\n const onRemove = (e) => {\r\n const tasks = itemsState;\r\n setItemsState(\r\n [...tasks.slice(0, e.fromIndex), ...tasks.slice(e.fromIndex + 1)],\r\n );\r\n }\r\n\r\n const onReorder = (e) => {\r\n const tasks = itemsState;\r\n const tmpTasks = [...tasks.slice(0, e.fromIndex), ...tasks.slice(e.fromIndex + 1)];\r\n setItemsState(\r\n [...tmpTasks.slice(0, e.toIndex), e.itemData, ...tmpTasks.slice(e.toIndex)],\r\n );\r\n }\r\n const onCheckChanged = (itemData, check, value) => {\r\n const tasks = itemsState;\r\n const task = tasks.find((e) => e.state.id == itemData.state.id);\r\n const taskIndex = tasks.indexOf(task);\r\n if (check == \"shown\") {\r\n if (!task.initial) {\r\n task[check] = value;\r\n }\r\n }else if (check == \"initial\") {\r\n if (value) {\r\n tasks.map((e) => {\r\n e[\"initial\"] = false;\r\n });\r\n task[check] = value;\r\n }\r\n } else {\r\n task[check] = value;\r\n }\r\n setItemsState(\r\n [...tasks.slice(0, taskIndex), task, ...tasks.slice(taskIndex+1)],\r\n );\r\n }\r\n\r\n return (\r\n
\r\n

Estados que se mostrarán en el trámite

\r\n

Selecciona los estados a mostrar en este tipo de trámite y ordénalos arrastrándolos a la posición deseada. Selecciona el estado inicial (solo puedes seleccionar uno). El estado “Finalizado” será obligatorio y el estado final de todos los tipos de trámite.

\r\n
\r\n
Nombre del estado
\r\n
Estados a mostrar
\r\n
Estado inicial
\r\n
Estado final
\r\n
\r\n (\r\n
\r\n {item.state.name}\r\n
{(item.state.id != 6 && item.state.id != 1) && !item.inital ? { onCheckChanged(item, \"shown\", e.value) }} /> : null}
\r\n
{(item.state.id != 6 && item.state.id != 1) && item.shown ? { onCheckChanged(item, \"initial\", e.value) }} /> : null }
\r\n
{item.state.id == 6 ? : null}
\r\n
\r\n )}\r\n >\r\n \r\n \r\n \r\n
\r\n )\r\n}\r\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAAGWB6gOAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAJKADAAQAAAABAAAAJAAAAAAqDuP8AAADpElEQVRYCcWYz2sTQRTH30yibVJBuq1aC570ouBFxNqKJ/HHpYiCN0EPHppexD/BfyKKt17FUxW0xUtBLXjwoFhBQcSDFW2SgyZRSXacN+0bZ3ZmNrsJ1AGdmTff932fzGZ2NwVIa83qqLDWW3ejaSEbLXBcFbF48WfllhYyHJFCR70D9COl9oLSHiVmqpo0p1SOlWji7dGL/EigcGiSXByZb6h1VRxFJBi6+JBydEyJSICrhclTwMoTjlAHMg1a96IZ05WSNBMGREc8xz4p1CLcLBT4mhbRBpYrdaUz3ZQozQUzlIhckqXIjfdywURG6qQLzRljP6xrRwtm36qOduVXlDPGp8qV2ktzzRynGiVJGGcz5bn6qmlA46BR0kQnBMz0NSEh9qbJ0OVlwH987zElwV33baxjZJpgJt99EAr7jkP87ZUywv98ZpZR0gSTOh8eYOe0pJneI5+JyuY7gQ1HIFpfHTMM0AVQRkETVA6PQWHiBHQ/PcaZt6GZ+mgMWPju8auWbiI/Pee85q3QT1DvkS+5VY1OChCrUtQpzzd2+DQUs64aBalHExzLI1L0fXdIh33QCO9PpjB0/EkTNKJ7GAmxT6PyGoUS0qi8RmkJoSKOkSnEg0qHlj5iqIhjZApFc10dWDy0ZjOLUdwySgrQCJto2ufMLOY18glQGG+8Jr3uk0U1UXJBZyijN+ZUjZNFtVFywcyMN1wjXDeLFykgjcxcPW4vHAHR/q7n5mCruDqviihEw/dPQ+naGpTn/EZoSlTqMIZo4vVV+L10Hbqfn5og1pioivJlLHzrkyndj4tWYmjCC6IwxRh0Q4JecblBz1CTemPrZYLr7Wp0Q16m20rL4aZ8EvsfO1nMpGYgoOadaBmEOGvVYmxppFK/YMVyTPoG8sJQ4QGg+gJKhRkQKjdQJpgBoHIB5YLpEyozUF8wfUBlAgrBsPGjULqyQmVV375/GkTtrRVTk4xfdP30cB02IyEYXBX1d1aaiLsSZs2K6YkQ56XXEz0PDFKBmtVoybnPmEZxB+LGex3Z3Bn/00yJMkAFgRQMiHO6WmAQ1//tiO/NwEnrAeUFygqDxWLjEmUCwqQUKAcoD4zyNr7AoTcV1DktAGUB5YXBRyE/cEa+6WxA/PML4AtLruaB0kD5YWRp+Yee4qFLwErjwHdNQvHwVfkzJPXXjsubgFL3IflXgUV5NmZd9TZGGDwaqTRmt3aIjW1jaW8p+fP3vzN4wf4C0RPSNCqV42wAAAAASUVORK5CYII=\"","import { Button, CheckBox, List, Popup, TextBox } from 'devextreme-react';\r\nimport { ItemDragging } from 'devextreme-react/list';\r\nimport { Position, ToolbarItem } from 'devextreme-react/popup';\r\nimport { Field, Form, Formik } from 'formik';\r\nimport React, { useRef, useState } from 'react'\r\nimport \"./ProcedureDataChooser.css\";\r\nimport imgDelete from '../../img/delete.png';\r\nimport imgEdit from '../../img/edit.png';\r\nimport { InfoPopover } from '../common/InfoPopover';\r\nimport warning_big from '../../img/warning.png';\r\n\r\nexport const ProcedureDataChooser = ({ itemsState, setItemsState, withMandatory, withSync, isRemote, disabled, headerText, registryCount }) => {\r\n\r\n\r\n const editFormRef = useRef();\r\n const createFormRef = useRef();\r\n\r\n const [createDataState, setCreateDataState] = useState({ loading: false, mandatory: null, name: null, sync: null, isPlate: null, isChassis: null, error: false, result: null });\r\n const [editDataState, setEditDataState] = useState({ id: -1, loading: false, mandatory: null, name: null, sync: null, isPlate: null, isChassis: null, error: false, result: null });\r\n const [createDataDialogState, setCreateDataDialogState] = useState({\r\n title: \"\",\r\n header: \"\",\r\n body: \"\",\r\n position: { my: 'center', at: 'center', of: window },\r\n popupVisible: false,\r\n });\r\n const showCreateDialog = () => {\r\n setCreateDataDialogState({\r\n position: { my: 'center', at: 'center', of: window },\r\n popupVisible: true,\r\n });\r\n if (createFormRef != undefined && createFormRef != null && createFormRef.current != undefined && createFormRef.current != null) {\r\n createFormRef.current.setFieldValue(\"name\", \"\", false);\r\n createFormRef.current.setFieldValue(\"mandatory\", false, false);\r\n createFormRef.current.setFieldValue(\"sync\", false, false);\r\n createFormRef.current.setFieldValue(\"isPlate\", false, false);\r\n createFormRef.current.setFieldValue(\"isChassis\", false, false);\r\n }\r\n }\r\n const hideCreateDialog = () => {\r\n setCreateDataDialogState({\r\n position: { my: 'center', at: 'center', of: window },\r\n popupVisible: false,\r\n });\r\n }\r\n\r\n\r\n const [editDataDialogState, setEditDataDialogState] = useState({\r\n id: 0,\r\n title: \"\",\r\n header: \"\",\r\n body: \"\",\r\n position: { my: 'center', at: 'center', of: window },\r\n popupVisible: false,\r\n });\r\n const showEditDialog = (id) => {\r\n setEditDataDialogState({\r\n id: id,\r\n position: { my: 'center', at: 'center', of: window },\r\n popupVisible: true,\r\n });\r\n if (editFormRef != undefined && editFormRef != null && editFormRef.current != undefined && editFormRef.current != null) {\r\n let editingObject = itemsState.find((e) => e.id == id);\r\n if (editingObject != undefined && editingObject != null) {\r\n editFormRef.current.setFieldValue(\"name\", editingObject.name, false);\r\n editFormRef.current.setFieldValue(\"sync\", editingObject.sync, false);\r\n editFormRef.current.setFieldValue(\"mandatory\", editingObject.mandatory, false);\r\n editFormRef.current.setFieldValue(\"isPlate\", editingObject.isPlate, false);\r\n editFormRef.current.setFieldValue(\"isChassis\", editingObject.isChassis, false);\r\n } else {\r\n hideEditDialog();\r\n }\r\n }\r\n }\r\n const hideEditDialog = () => {\r\n setEditDataDialogState({\r\n position: { my: 'center', at: 'center', of: window },\r\n popupVisible: false,\r\n });\r\n }\r\n\r\n const validateCreateData = values => {\r\n const errors = {};\r\n\r\n if (!values.name) {\r\n errors.name = 'Requerido';\r\n } else if (values.name.length > 150) {\r\n errors.name = 'Must be 150 characters or less';\r\n }\r\n\r\n return errors;\r\n };\r\n\r\n const DXTextInput = ({ fieldName, fieldType, fieldPlaceholder, ...rest }) => (\r\n \r\n {({ field, form }) => (\r\n { form.setFieldValue(field.name, event.component.option(\"value\"), true) }}\r\n onFocusOut={event => { form.setFieldTouched(field.name) }}\r\n value={field.value}\r\n />\r\n )}\r\n \r\n );\r\n const DXCheckInput = ({ fieldName, fieldType, fieldPlaceholder, ...rest }) => (\r\n \r\n {({ field, form }) => (\r\n { form.setFieldValue(field.name, event.component.option(\"value\"), true) }}\r\n onFocusOut={event => { form.setFieldTouched(field.name) }}\r\n value={field.value}\r\n />\r\n )}\r\n \r\n );\r\n const createFormOptions = {\r\n initialValues: {\r\n sync: false,\r\n name: '',\r\n mandatory: false\r\n },\r\n validate: validateCreateData,\r\n onSubmit: async values => {\r\n values.remote = isRemote;\r\n values.id = getNextId();\r\n setItemsState([...itemsState, values]);\r\n hideCreateDialog();\r\n }\r\n };\r\n const editFormOptions = {\r\n initialValues: {\r\n sync: false,\r\n name: '',\r\n mandatory: false\r\n },\r\n validate: validateCreateData,\r\n onSubmit: async values => {\r\n values.remote = isRemote;\r\n //setItemsState([...itemsState, values]);\r\n onDataChanged(editDataDialogState.id, values);\r\n hideEditDialog();\r\n }\r\n };\r\n\r\n const getNextId = () => {\r\n let nextId = Math.min.apply(Math, itemsState.map(function (o) { return o.id; }));\r\n if (nextId>0) {\r\n nextId = -1;\r\n } else {\r\n nextId = nextId - 1;\r\n }\r\n if (isRemote && nextId>-100) {\r\n nextId = nextId * 100;\r\n }\r\n return nextId;\r\n }\r\n\r\n const onAdd = () => {\r\n showCreateDialog();\r\n //setItemsState([...itemsState, { name: \"nuevo\", id: 0 }]);\r\n }\r\n const onDataChanged = (id, newData) => {\r\n const tasks = itemsState;\r\n const task = tasks.find((e) => e.id == id);\r\n const taskIndex = tasks.indexOf(task);\r\n \r\n task.name = newData.name;\r\n task.sync = newData.sync;\r\n task.mandatory = newData.mandatory;\r\n task.isPlate = newData.isPlate;\r\n task.isChassis = newData.isChassis;\r\n setItemsState(\r\n [...tasks.slice(0, taskIndex), task, ...tasks.slice(taskIndex + 1)],\r\n );\r\n }\r\n\r\n const [genericDialogState, setGenericDialogState] = useState({\r\n title: \"\",\r\n body: \"\",\r\n okText: \"\",\r\n koText: \"\",\r\n okCallback: () => {\r\n\r\n },\r\n koCallback: () => {\r\n\r\n },\r\n position: { my: 'center', at: 'center', of: window },\r\n popupVisible: false,\r\n });\r\n const showGenericDialog = (title, body, okText, koText, okCallback, koCallback) => {\r\n setGenericDialogState({\r\n title: title,\r\n body: body,\r\n okText: okText,\r\n koText: koText,\r\n okCallback: okCallback,\r\n koCallback: koCallback,\r\n position: { my: 'center', at: 'center', of: window },\r\n popupVisible: true,\r\n });\r\n }\r\n const hideGenericDialog = () => {\r\n setGenericDialogState({\r\n title: \"\",\r\n body: \"\",\r\n okText: \"\",\r\n koText: \"\",\r\n okCallback: () => {\r\n\r\n },\r\n koCallback: () => {\r\n\r\n },\r\n position: { my: 'center', at: 'center', of: window },\r\n popupVisible: false,\r\n });\r\n }\r\n const deleteData = (id) => {\r\n const tasks = itemsState;\r\n const task = tasks.find((e) => e.id == id);\r\n const taskIndex = tasks.indexOf(task);\r\n\r\n setItemsState(\r\n [...tasks.slice(0, taskIndex), ...tasks.slice(taskIndex + 1)],\r\n );\r\n }\r\n\r\n return (\r\n
\r\n

{headerText}

\r\n
Añadir nuevo dato
\r\n\r\n
\r\n
Nombre
\r\n {(withMandatory ?\r\n
Obligatorio
\r\n :\r\n
)\r\n }\r\n {(withSync ?\r\n
Sincronizable
\r\n :\r\n
)\r\n }\r\n
\r\n
\r\n {itemsState.length > 0 ?\r\n itemsState.map((e) => {\r\n return
\r\n
\r\n {e.name}\r\n {withMandatory ?\r\n
{(e.mandatory ? \"Sí\" : \"No\")}
\r\n :\r\n
\r\n }\r\n {withSync ?\r\n
{(e.sync ? \"Sí\" : \"No\")}
\r\n :\r\n
\r\n }\r\n
\r\n
\r\n
\r\n showEditDialog(e.element.dataset.id)}\r\n />\r\n {\r\n showGenericDialog(\"Eliminar dato\", [`¿Estás seguro de que deseas eliminar el dato `, <>{e.name}?
, \"Los datos asignados a trámites de este tipo dejarán de estar disponibles permanentemente.\"], \"Si, eliminar\", \"No, cancelar\", () => {\r\n hideGenericDialog();\r\n showGenericDialog(\"Eliminar dato\",\r\n [
,\r\n

\r\n Eliminar la entrada de dato '{e.name}' afectará a {registryCount} trámites.\r\n

,\r\n

¿Sigues estando seguro de eliminar la entrada de dato {e.name}?

\r\n ], \"Eliminar permanentemente\", \"Cancelar\", () => {\r\n deleteData(e.id);\r\n hideGenericDialog();\r\n }, () => { hideGenericDialog() })\r\n }, () => { hideGenericDialog() })\r\n }}\r\n />\r\n
\r\n
\r\n })\r\n :\r\n
Sin datos
\r\n }\r\n \r\n {\r\n e.component.repaint();\r\n }}\r\n visible={createDataDialogState.popupVisible}\r\n onHiding={hideCreateDialog}\r\n\r\n dragEnabled={false}\r\n closeOnOutsideClick={false}\r\n showCloseButton={false}\r\n showTitle={true}\r\n title=\"Nuevo dato\"\r\n container=\".dx-viewport\"\r\n height=\"auto\"\r\n width=\"auto\"\r\n minWidth=\"400\"\r\n >\r\n \r\n
\r\n \r\n {\r\n ({ isSubmitting, handleReset, setFieldTouched, ...props }) => {\r\n const hasInputError = (props.touched.name && props.errors.name) || (props.touched.sync && props.errors.sync) || (props.touched.mandatory && props.errors.mandatory);\r\n //const hasFetchError = (!createDataState.loading && createDataState.email == props.values.email && createDataState.name == props.values.name && createDataState.type == props.values.type && (createDataState.result == null || createDataState.error));\r\n const hasError = (hasInputError);\r\n return
\r\n \r\n \r\n {withMandatory ?\r\n
\r\n \r\n \r\n
\r\n :\r\n null\r\n }\r\n {withSync ?\r\n
\r\n \r\n \r\n
\r\n :\r\n null\r\n }\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n {hasError ?\r\n
\r\n {props.touched.name && props.errors.name && props.errors.name == \"Requerido\" ?\r\n \"Todos los campos son obligatorios\"\r\n :\r\n createDataState.error ? createDataState.result : \"Se han proporcionado datos inválidos\"\r\n }\r\n
:\r\n null\r\n }\r\n
\r\n
\r\n
\r\n \r\n }\r\n }\r\n \r\n \r\n\r\n\r\n {\r\n e.component.repaint();\r\n }}\r\n visible={editDataDialogState.popupVisible}\r\n onHiding={hideEditDialog}\r\n\r\n dragEnabled={false}\r\n closeOnOutsideClick={false}\r\n showCloseButton={false}\r\n showTitle={true}\r\n title=\"Editar dato\"\r\n container=\".dx-viewport\"\r\n height=\"auto\"\r\n width=\"auto\"\r\n minWidth=\"400\"\r\n >\r\n \r\n
\r\n \r\n {\r\n ({ isSubmitting, handleReset, setFieldTouched, ...props }) => {\r\n const hasInputError = (props.touched.name && props.errors.name) || (props.touched.sync && props.errors.sync) || (props.touched.mandatory && props.errors.mandatory);\r\n //const hasFetchError = (!editDataState.loading && editDataState.email == props.values.email && editDataState.name == props.values.name && editDataState.type == props.values.type && (editDataState.result == null || editDataState.error));\r\n const hasError = (hasInputError);\r\n return
\r\n \r\n \r\n {withMandatory ?\r\n
\r\n \r\n \r\n
\r\n :\r\n null\r\n }\r\n {withSync ?\r\n
\r\n \r\n \r\n
\r\n :\r\n null\r\n }\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n {hasError ?\r\n
\r\n {props.touched.name && props.errors.name && props.errors.name == \"Requerido\" ?\r\n \"Todos los campos son obligatorios\"\r\n :\r\n editDataState.error ? editDataState.result : \"Se han proporcionado datos inválidos\"\r\n }\r\n
:\r\n null\r\n }\r\n
\r\n
\r\n
\r\n \r\n }\r\n }\r\n \r\n \r\n {\r\n e.component.repaint();\r\n }}\r\n visible={genericDialogState.popupVisible}\r\n onHiding={hideGenericDialog}\r\n dragEnabled={false}\r\n closeOnOutsideClick={false}\r\n showCloseButton={false}\r\n showTitle={true}\r\n title={genericDialogState.title}\r\n container=\".dx-viewport\"\r\n height=\"auto\"\r\n width=\"auto\"\r\n >\r\n \r\n {genericDialogState.koText != null ?\r\n \r\n :\r\n null\r\n }\r\n {genericDialogState.okText != null ?\r\n \r\n :\r\n null\r\n }\r\n

\r\n {genericDialogState.body}\r\n

\r\n \r\n
\r\n )\r\n}\r\n","import { Button, CheckBox, List, Popup, TextBox } from 'devextreme-react';\r\nimport { ItemDragging } from 'devextreme-react/list';\r\nimport { Position, ToolbarItem } from 'devextreme-react/popup';\r\nimport { Field, Form, Formik } from 'formik';\r\nimport React, { useRef, useState } from 'react'\r\nimport \"./ProcedureDocChooser.css\";\r\nimport imgDelete from '../../img/delete.png';\r\nimport imgEdit from '../../img/edit.png';\r\nimport warning_big from '../../img/warning.png';\r\n\r\nexport const ProcedureDocChooser = ({ itemsState, setItemsState, isRemote, disabled, headerText, registryCount }) => {\r\n\r\n\r\n const editFormRef = useRef();\r\n const createFormRef = useRef();\r\n\r\n const [createDocState, setCreateDocState] = useState({ loading: false, mandatory: null, name: null, error: false, result: null });\r\n const [editDocState, setEditDocState] = useState({ id: -1, loading: false, mandatory: null, name: null, error: false, result: null });\r\n const [createDocDialogState, setCreateDocDialogState] = useState({\r\n title: \"\",\r\n header: \"\",\r\n body: \"\",\r\n position: { my: 'center', at: 'center', of: window },\r\n popupVisible: false,\r\n });\r\n const showCreateDialog = () => {\r\n setCreateDocDialogState({\r\n position: { my: 'center', at: 'center', of: window },\r\n popupVisible: true,\r\n });\r\n if (createFormRef != undefined && createFormRef != null && createFormRef.current != undefined && createFormRef.current != null) {\r\n createFormRef.current.setFieldValue(\"name\", \"\", false);\r\n createFormRef.current.setFieldValue(\"mandatory\", false, false);\r\n }\r\n }\r\n const hideCreateDialog = () => {\r\n setCreateDocDialogState({\r\n position: { my: 'center', at: 'center', of: window },\r\n popupVisible: false,\r\n });\r\n }\r\n\r\n\r\n const [editDocDialogState, setEditDocDialogState] = useState({\r\n id: 0,\r\n title: \"\",\r\n header: \"\",\r\n body: \"\",\r\n position: { my: 'center', at: 'center', of: window },\r\n popupVisible: false,\r\n });\r\n const showEditDialog = (id) => {\r\n setEditDocDialogState({\r\n id: id,\r\n position: { my: 'center', at: 'center', of: window },\r\n popupVisible: true,\r\n });\r\n if (editFormRef != undefined && editFormRef != null && editFormRef.current != undefined && editFormRef.current != null) {\r\n let editingObject = itemsState.find((e) => e.id == id);\r\n if (editingObject != undefined && editingObject != null) {\r\n editFormRef.current.setFieldValue(\"name\", editingObject.name, false);\r\n editFormRef.current.setFieldValue(\"mandatory\", editingObject.mandatory, false);\r\n } else {\r\n hideEditDialog();\r\n }\r\n }\r\n }\r\n const hideEditDialog = () => {\r\n setEditDocDialogState({\r\n position: { my: 'center', at: 'center', of: window },\r\n popupVisible: false,\r\n });\r\n }\r\n\r\n const validateCreateDoc = values => {\r\n const errors = {};\r\n\r\n if (!values.name) {\r\n errors.name = 'Requerido';\r\n } else if (values.name.length > 150) {\r\n errors.name = 'Must be 150 characters or less';\r\n }\r\n\r\n return errors;\r\n };\r\n\r\n const DXTextInput = ({ fieldName, fieldType, fieldPlaceholder, ...rest }) => (\r\n \r\n {({ field, form }) => (\r\n { form.setFieldValue(field.name, event.component.option(\"value\"), true) }}\r\n onFocusOut={event => { form.setFieldTouched(field.name) }}\r\n value={field.value}\r\n />\r\n )}\r\n \r\n );\r\n const DXCheckInput = ({ fieldName, fieldType, fieldPlaceholder, ...rest }) => (\r\n \r\n {({ field, form }) => (\r\n { form.setFieldValue(field.name, event.component.option(\"value\"), true) }}\r\n onFocusOut={event => { form.setFieldTouched(field.name) }}\r\n value={field.value}\r\n />\r\n )}\r\n \r\n );\r\n const createFormOptions = {\r\n initialValues: {\r\n name: '',\r\n mandatory: false\r\n },\r\n validate: validateCreateDoc,\r\n onSubmit: async values => {\r\n values.remote = isRemote;\r\n values.id = getNextId();\r\n setItemsState([...itemsState, values]);\r\n hideCreateDialog();\r\n }\r\n };\r\n const editFormOptions = {\r\n initialValues: {\r\n name: '',\r\n mandatory: false\r\n },\r\n validate: validateCreateDoc,\r\n onSubmit: async values => {\r\n values.remote = isRemote;\r\n //setItemsState([...itemsState, values]);\r\n onDocChanged(editDocDialogState.id, values);\r\n hideEditDialog();\r\n }\r\n };\r\n\r\n const [genericDialogState, setGenericDialogState] = useState({\r\n title: \"\",\r\n body: \"\",\r\n okText: \"\",\r\n koText: \"\",\r\n okCallback: () => {\r\n\r\n },\r\n koCallback: () => {\r\n\r\n },\r\n position: { my: 'center', at: 'center', of: window },\r\n popupVisible: false,\r\n });\r\n const showGenericDialog = (title, body, okText, koText, okCallback, koCallback) => {\r\n setGenericDialogState({\r\n title: title,\r\n body: body,\r\n okText: okText,\r\n koText: koText,\r\n okCallback: okCallback,\r\n koCallback: koCallback,\r\n position: { my: 'center', at: 'center', of: window },\r\n popupVisible: true,\r\n });\r\n }\r\n const hideGenericDialog = () => {\r\n setGenericDialogState({\r\n title: \"\",\r\n body: \"\",\r\n okText: \"\",\r\n koText: \"\",\r\n okCallback: () => {\r\n\r\n },\r\n koCallback: () => {\r\n\r\n },\r\n position: { my: 'center', at: 'center', of: window },\r\n popupVisible: false,\r\n });\r\n }\r\n\r\n\r\n const getNextId = () => {\r\n let nextId = Math.min.apply(Math, itemsState.map(function (o) { return o.id; }));\r\n if (nextId > 0) {\r\n nextId = -1;\r\n } else {\r\n nextId = nextId - 1;\r\n }\r\n if (isRemote && nextId>-100) {\r\n nextId = nextId * 100;\r\n }\r\n return nextId;\r\n }\r\n\r\n const onAdd = () => {\r\n showCreateDialog();\r\n //setItemsState([...itemsState, { name: \"nuevo\", id: 0 }]);\r\n }\r\n const onDocChanged = (id, newDoc) => {\r\n const tasks = itemsState;\r\n const task = tasks.find((e) => e.id == id);\r\n const taskIndex = tasks.indexOf(task);\r\n \r\n task.name = newDoc.name;\r\n task.mandatory = newDoc.mandatory;\r\n setItemsState(\r\n [...tasks.slice(0, taskIndex), task, ...tasks.slice(taskIndex + 1)],\r\n );\r\n }\r\n const deleteDoc = (id) => {\r\n const tasks = itemsState;\r\n const task = tasks.find((e) => e.id == id);\r\n const taskIndex = tasks.indexOf(task);\r\n\r\n setItemsState(\r\n [...tasks.slice(0, taskIndex), ...tasks.slice(taskIndex + 1)],\r\n );\r\n }\r\n\r\n return (\r\n
\r\n

{headerText}

\r\n {/*type: \"default\"*/}\r\n
Añadir nuevo documento
\r\n {/**/}\r\n\r\n
\r\n
Nombre
\r\n
\r\n
Obligatorio
\r\n
\r\n
\r\n {itemsState.length > 0 ?\r\n itemsState.map((e) => {\r\n return
\r\n
\r\n {e.name}\r\n
\r\n
{(e.mandatory ? \"Sí\" : \"No\")}
\r\n
\r\n
\r\n
\r\n showEditDialog(e.element.dataset.id)}\r\n />\r\n {\r\n showGenericDialog(\"Eliminar dato\", [`¿Estás seguro de que deseas eliminar el dato `, <>{e.name}?
, \"Los datos asignados a trámites de este tipo dejarán de estar disponibles permanentemente.\"], \"Si, eliminar\", \"No, cancelar\", () => {\r\n hideGenericDialog();\r\n showGenericDialog(\"Eliminar documento\",\r\n [
,\r\n

\r\n Eliminar la entrada de documento '{e.name}' afectará a {registryCount} trámites.\r\n

,\r\n

¿Sigues estando seguro de eliminar la entrada de documento {e.name}?

\r\n ], \"Eliminar permanentemente\", \"Cancelar\", () => {\r\n deleteDoc(e.id);\r\n hideGenericDialog();\r\n }, () => { hideGenericDialog() })\r\n }, () => { hideGenericDialog() })\r\n }}\r\n />\r\n
\r\n
\r\n })\r\n :\r\n
Sin datos
\r\n }\r\n \r\n {\r\n e.component.repaint();\r\n }}\r\n visible={createDocDialogState.popupVisible}\r\n onHiding={hideCreateDialog}\r\n\r\n dragEnabled={false}\r\n closeOnOutsideClick={false}\r\n showCloseButton={false}\r\n showTitle={true}\r\n title=\"Nuevo documento\"\r\n container=\".dx-viewport\"\r\n height=\"auto\"\r\n width=\"auto\"\r\n minWidth=\"400\"\r\n >\r\n \r\n
\r\n \r\n {\r\n ({ isSubmitting, handleReset, setFieldTouched, ...props }) => {\r\n const hasInputError = (props.touched.name && props.errors.name) || (props.touched.sync && props.errors.sync) || (props.touched.mandatory && props.errors.mandatory);\r\n //const hasFetchError = (!createDocState.loading && createDocState.email == props.values.email && createDocState.name == props.values.name && createDocState.type == props.values.type && (createDocState.result == null || createDocState.error));\r\n const hasError = (hasInputError);\r\n return
\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n\r\n {hasError ?\r\n
\r\n {props.touched.name && props.errors.name && props.errors.name == \"Requerido\" ?\r\n \"Todos los campos son obligatorios\"\r\n :\r\n createDocState.error ? createDocState.result : \"Se han proporcionado datos inválidos\"\r\n }\r\n
:\r\n null\r\n }\r\n
\r\n
\r\n
\r\n \r\n }\r\n }\r\n \r\n \r\n\r\n\r\n {\r\n e.component.repaint();\r\n }}\r\n visible={editDocDialogState.popupVisible}\r\n onHiding={hideEditDialog}\r\n\r\n dragEnabled={false}\r\n closeOnOutsideClick={false}\r\n showCloseButton={false}\r\n showTitle={true}\r\n title=\"Editar dato\"\r\n container=\".dx-viewport\"\r\n height=\"auto\"\r\n width=\"auto\"\r\n minWidth=\"400\"\r\n >\r\n \r\n
\r\n \r\n {\r\n ({ isSubmitting, handleReset, setFieldTouched, ...props }) => {\r\n const hasInputError = (props.touched.name && props.errors.name) || (props.touched.sync && props.errors.sync) || (props.touched.mandatory && props.errors.mandatory);\r\n //const hasFetchError = (!editDocState.loading && editDocState.email == props.values.email && editDocState.name == props.values.name && editDocState.type == props.values.type && (editDocState.result == null || editDocState.error));\r\n const hasError = (hasInputError);\r\n return
\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n {hasError ?\r\n
\r\n {props.touched.name && props.errors.name && props.errors.name == \"Requerido\" ?\r\n \"Todos los campos son obligatorios\"\r\n :\r\n editDocState.error ? editDocState.result : \"Se han proporcionado datos inválidos\"\r\n }\r\n
:\r\n null\r\n }\r\n
\r\n
\r\n
\r\n \r\n }\r\n }\r\n \r\n \r\n {\r\n e.component.repaint();\r\n }}\r\n visible={genericDialogState.popupVisible}\r\n onHiding={hideGenericDialog}\r\n dragEnabled={false}\r\n closeOnOutsideClick={false}\r\n showCloseButton={false}\r\n showTitle={true}\r\n title={genericDialogState.title}\r\n container=\".dx-viewport\"\r\n height=\"auto\"\r\n width=\"auto\"\r\n >\r\n \r\n {genericDialogState.koText != null ?\r\n \r\n :\r\n null\r\n }\r\n {genericDialogState.okText != null ?\r\n \r\n :\r\n null\r\n }\r\n

\r\n {genericDialogState.body}\r\n

\r\n \r\n\r\n
\r\n )\r\n}\r\n","import React, { useEffect, useState } from 'react'\r\nimport { useHistory, useParams } from 'react-router';\r\nimport { Link } from 'react-router-dom';\r\nimport \"./Procedure.css\";\r\nimport imgGoBack from '../../img/go_back.png';\r\nimport { ProcedureStateChooser } from './ProcedureStateChooser';\r\nimport { Button, Popup, TextBox, LoadPanel } from 'devextreme-react';\r\nimport { ProcedureDataChooser } from './ProcedureDataChooser';\r\nimport { Position, ToolbarItem } from 'devextreme-react/popup';\r\nimport { ProcedureDocChooser } from './ProcedureDocChooser';\r\nimport { BackButton } from '../common/BackButton';\r\nimport imgSpinner from '../../img/spinner.gif';\r\n\r\nexport const Procedure = () => {\r\n let { id } = useParams();\r\n\r\n let history = useHistory();\r\n\r\n const [loadingState, setLoadingState] = useState(true);\r\n const [editionState, setEditionState] = useState((id==-1));\r\n\r\n const [nameInputState, setNameInputState] = useState(\"\");\r\n const [errorState, setErrorState] = useState(\"\");\r\n\r\n\r\n const [procedureState, setProcedureState] = useState({\r\n name: \"\", dateModif: [\r\n ('0' + new Date().getDate()).slice(-2),\r\n ('0' + (new Date().getMonth() + 1)).slice(-2),\r\n new Date().getFullYear()\r\n ].join('/')});\r\n const [stateState, setStateState] = useState([]);\r\n const [dataState, setDataState] = useState([]);\r\n const [remoteDataState, setRemoteDataState] = useState([]);\r\n const [docsState, setDocsState] = useState([]);\r\n const [remoteDocsState, setRemoteDocsState] = useState([]);\r\n const [registryCountState, setRegistryCountState] = useState(0);\r\n const [exportState, setExportState] = useState(\"\");\r\n\r\n\r\n const loadProcedure = async () => {\r\n\r\n if (id != -1) {\r\n return fetch(`${process.env.PUBLIC_URL}/api/procedures/GetProcedure?idProcedure=${id}`)\r\n .then(response => response.json())\r\n .then(result => {\r\n // You can process the response here\r\n console.log(result.response)\r\n if (result.response != null) {\r\n setProcedureState(result.response);\r\n setNameInputState(result.response.name);\r\n } else {\r\n let currentUrl = history.location.pathname;\r\n let backlog = [];\r\n if (history.location.state != undefined && history.location.state.comesFrom != undefined && history.location.state.comesFrom != \"\") {\r\n backlog = history.location.state.comesFrom;\r\n }\r\n backlog.push(currentUrl);\r\n history.replace(\"/procedures\", { comesFrom: backlog });\r\n }\r\n })\r\n .catch(() => { throw 'Network error' });\r\n } else {\r\n setProcedureState({\r\n name: \"\", dateModif: [\r\n ('0' + new Date().getDate()).slice(-2),\r\n ('0' + (new Date().getMonth() + 1)).slice(-2),\r\n new Date().getFullYear()\r\n ].join('/')\r\n });\r\n }\r\n };\r\n\r\n const loadStates = async () => {\r\n return fetch(`${process.env.PUBLIC_URL}/api/procedures/GetStates?idProcedure=${id}`)\r\n .then(response => response.json())\r\n .then(result => {\r\n // You can process the response here\r\n console.log(result.response)\r\n setStateState(result.response)\r\n })\r\n .catch(() => { throw 'Network error' });\r\n };\r\n\r\n const loadRegistryCount = async () => {\r\n return fetch(`${process.env.PUBLIC_URL}/api/procedures/GetProcedureRegistryCount?idProcedure=${id}`)\r\n .then(response => response.json())\r\n .then(result => {\r\n // You can process the response here\r\n console.log(`Registry count ${result.response}`)\r\n setRegistryCountState(result.response)\r\n })\r\n .catch(() => { throw 'Network error' });\r\n };\r\n\r\n const loadDatas = async () => {\r\n return fetch(`${process.env.PUBLIC_URL}/api/procedures/GetData?idProcedure=${id}&remote=0`)\r\n .then(response => response.json())\r\n .then(result => {\r\n // You can process the response here\r\n console.log(result.response)\r\n setDataState(result.response)\r\n return fetch(`${process.env.PUBLIC_URL}/api/procedures/GetData?idProcedure=${id}&remote=1`)\r\n .then(response => response.json())\r\n .then(result => {\r\n // You can process the response here\r\n console.log(result.response)\r\n setRemoteDataState(result.response)\r\n })\r\n .catch(() => { throw 'Network error' });\r\n })\r\n .catch(() => { throw 'Network error' });\r\n \r\n };\r\n const loadDocs = async () => {\r\n return fetch(`${process.env.PUBLIC_URL}/api/procedures/GetDocs?idProcedure=${id}&remote=0`)\r\n .then(response => response.json())\r\n .then(result => {\r\n // You can process the response here\r\n console.log(result.response)\r\n setDocsState(result.response)\r\n return fetch(`${process.env.PUBLIC_URL}/api/procedures/GetDocs?idProcedure=${id}&remote=1`)\r\n .then(response => response.json())\r\n .then(result => {\r\n // You can process the response here\r\n console.log(result.response)\r\n setRemoteDocsState(result.response)\r\n })\r\n .catch(() => { throw 'Network error' });\r\n })\r\n .catch(() => { throw 'Network error' });\r\n };\r\n const loadDocs_DEPR = async () => {\r\n fetch(`${process.env.PUBLIC_URL}/api/procedures/GetDocs?idProcedure=${id}&remote=0`)\r\n .then(response => response.json())\r\n .then(result => {\r\n // You can process the response here\r\n console.log(result.response)\r\n setDocsState(result.response)\r\n })\r\n .catch(() => { throw 'Network error' });\r\n fetch(`${process.env.PUBLIC_URL}/api/procedures/GetDocs?idProcedure=${id}&remote=1`)\r\n .then(response => response.json())\r\n .then(result => {\r\n // You can process the response here\r\n console.log(result.response)\r\n setRemoteDocsState(result.response)\r\n })\r\n .catch(() => { throw 'Network error' });\r\n };\r\n\r\n const loadAll = async () => {\r\n setLoadingState(true);\r\n Promise.all([loadProcedure(), loadStates(), loadDatas(), loadDocs(), loadRegistryCount(), exportProcedure()]).then(() => {\r\n setLoadingState(false);\r\n });\r\n }\r\n\r\n const exportProcedure = async () => {\r\n setExportState(\"\");\r\n if (id > 0) {\r\n return fetch(`${process.env.PUBLIC_URL}/api/procedures/ExportProcedure?idProcedure=${id}`)\r\n .then(response => response.json())\r\n .then(result => {\r\n // You can process the response here\r\n console.log(result.response)\r\n if (result.response != null) {\r\n setExportState(result.response);\r\n } else {\r\n\r\n }\r\n })\r\n .catch(() => { throw 'Network error' });\r\n }\r\n }\r\n\r\n const validate = async () => {\r\n setErrorState(\"\");\r\n setLoadingState(true);\r\n return fetch(`${process.env.PUBLIC_URL}/api/procedures/Get`)\r\n .then(response => response.json())\r\n .then(result => {\r\n // You can process the response here\r\n console.log(result.response)\r\n //Se checkea el nombre\r\n if (nameInputState.trim() == \"\") {\r\n setLoadingState(false);\r\n setErrorState(\"No se ha proporcionado un nombre para el trámite.\");\r\n return \"No se ha proporcionado un nombre para el trámite.\"\r\n }\r\n if (result.response.find((each) => {\r\n return each.id != id && each.name.toLowerCase() == nameInputState.toLowerCase();\r\n }) != null) {\r\n setLoadingState(false);\r\n setErrorState(\"Ya existe un tipo de trámite con el mismo nombre.\");\r\n return \"Ya existe un tipo de trámite con el mismo nombre.\"\r\n }\r\n //Se checkean los estados\r\n let initState = null;\r\n initState = stateState.find((each) => {\r\n return each.initial && each.shown;\r\n });\r\n if (initState == null) {\r\n setLoadingState(false);\r\n setErrorState(\"No se ha establecido un estado inicial.\");\r\n return \"No se ha establecido un estado inicial.\"\r\n }\r\n //Todo ok\r\n setLoadingState(false);\r\n setErrorState(\"\");\r\n return \"\";\r\n })\r\n .catch(() => { setLoadingState(false); throw 'Network error' });\r\n }\r\n\r\n const saveEdit = async (exitAfterSuccess) => {\r\n validate().then((res) => {\r\n if (res != \"\") {\r\n console.log(res);\r\n } else {\r\n if (id > 0) {\r\n setLoadingState(true);\r\n let values = {\r\n id: id,\r\n name: nameInputState,\r\n states: stateState,\r\n data: [...dataState, ...remoteDataState],\r\n docs: [...docsState, ...remoteDocsState]\r\n };\r\n console.log(`${process.env.PUBLIC_URL}/api/procedures/Put`);\r\n console.log(values);\r\n fetch(`${process.env.PUBLIC_URL}/api/procedures/Put`, {\r\n method: 'PUT',\r\n body: JSON.stringify(values),\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n }\r\n }).then((response) => {\r\n response.json().then((data) => {\r\n setLoadingState(false);\r\n if (data.response == null) {\r\n setErrorState(data.message);\r\n } else {\r\n if (exitAfterSuccess) {\r\n let currentUrl = history.location.pathname;\r\n let backlog = [];\r\n if (history.location.state != undefined && history.location.state.comesFrom != undefined && history.location.state.comesFrom != \"\") {\r\n backlog = history.location.state.comesFrom;\r\n }\r\n backlog.push(currentUrl);\r\n history.replace(\"/procedures\", { comesFrom: backlog });\r\n } else {\r\n //setEditionState(false);\r\n loadAll();\r\n }\r\n }\r\n });\r\n });\r\n } else {\r\n setLoadingState(true);\r\n //setCreateUserState({\r\n // loading: true, email: values.email, name: values.name, type: values.type, error: false, result: null\r\n //});\r\n let values = {\r\n id: -1,\r\n name: nameInputState,\r\n states: stateState,\r\n data: [...dataState, ...remoteDataState],\r\n docs: [...docsState, ...remoteDocsState]\r\n };\r\n fetch(`${process.env.PUBLIC_URL}/api/procedures/Post`, {\r\n method: 'POST',\r\n body: JSON.stringify(values),\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n }\r\n }).then((response) => {\r\n response.json().then((data) => {\r\n setLoadingState(false);\r\n if (data.response == null) {\r\n setErrorState(data.message);\r\n } else {\r\n if (exitAfterSuccess) {\r\n let currentUrl = history.location.pathname;\r\n let backlog = [];\r\n if (history.location.state != undefined && history.location.state.comesFrom != undefined && history.location.state.comesFrom != \"\") {\r\n backlog = history.location.state.comesFrom;\r\n }\r\n backlog.push(currentUrl);\r\n history.replace(\"/procedures\", { comesFrom: backlog });\r\n } else {\r\n let currentUrl = history.location.pathname;\r\n let backlog = [];\r\n if (history.location.state != undefined && history.location.state.comesFrom != undefined && history.location.state.comesFrom != \"\") {\r\n backlog = history.location.state.comesFrom;\r\n }\r\n backlog.push(currentUrl);\r\n history.replace(`/procedure/${data.response.id}`, { comesFrom: backlog });\r\n }\r\n }\r\n });\r\n });\r\n }\r\n\r\n\r\n\r\n //setCreateUserState({\r\n // loading: false, email: values.email, name: values.name, type: values.type, error: (data.response == null), result: (data.response != null ? data.response : data.message)\r\n //});\r\n }\r\n })\r\n }\r\n\r\n\r\n const [genericDialogState, setGenericDialogState] = useState({\r\n title: \"\",\r\n body: \"\",\r\n okText: \"\",\r\n koText: \"\",\r\n okCallback: () => {\r\n\r\n },\r\n koCallback: () => {\r\n\r\n },\r\n position: { my: 'center', at: 'center', of: window },\r\n popupVisible: false,\r\n });\r\n const showGenericDialog = (title, body, okText, koText, okCallback, koCallback) => {\r\n setGenericDialogState({\r\n title: title,\r\n body: body,\r\n okText: okText,\r\n koText: koText,\r\n okCallback: okCallback,\r\n koCallback: koCallback,\r\n position: { my: 'center', at: 'center', of: window },\r\n popupVisible: true,\r\n });\r\n }\r\n const hideGenericDialog = () => {\r\n setGenericDialogState({\r\n title: \"\",\r\n body: \"\",\r\n okText: \"\",\r\n koText: \"\",\r\n okCallback: () => {\r\n\r\n },\r\n koCallback: () => {\r\n\r\n },\r\n position: { my: 'center', at: 'center', of: window },\r\n popupVisible: false,\r\n });\r\n }\r\n\r\n\r\n\r\n const [exportDialogState, setExportDialogState] = useState({\r\n title: \"\",\r\n position: { my: 'center', at: 'center', of: window },\r\n popupVisible: false,\r\n });\r\n const showExportDialog = (title) => {\r\n setExportDialogState({\r\n title: title,\r\n position: { my: 'center', at: 'center', of: window },\r\n popupVisible: true,\r\n });\r\n }\r\n const hideExportDialog = () => {\r\n setExportDialogState({\r\n title: \"\",\r\n position: { my: 'center', at: 'center', of: window },\r\n popupVisible: false,\r\n });\r\n }\r\n\r\n //useEffect(loadProcedure, [id]);\r\n //useEffect(loadStates, [id]);\r\n //useEffect(loadDatas, [id]);\r\n useEffect(loadAll, [id]);\r\n\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n

Configuración del tipo de trámite

\r\n
\r\n {editionState\r\n ?\r\n
\r\n
{errorState}
\r\n
\r\n \r\n
\r\n :\r\n
\r\n
\r\n
\r\n }\r\n
\r\n
\r\n
\r\n
Nombre: *
{ setNameInputState(event.component.option(\"value\")) }} value={nameInputState} />
Fecha de última modificación: {procedureState.dateModif}
\r\n
\r\n
\r\n

Estados

\r\n \r\n
\r\n
\r\n

Datos

\r\n \r\n
\r\n \r\n
\r\n
\r\n

Documentos

\r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n {\r\n e.component.repaint();\r\n }}\r\n visible={genericDialogState.popupVisible}\r\n onHiding={hideGenericDialog}\r\n dragEnabled={false}\r\n closeOnOutsideClick={false}\r\n showCloseButton={false}\r\n showTitle={true}\r\n title={genericDialogState.title}\r\n container=\".dx-viewport\"\r\n height=\"auto\"\r\n width=\"auto\"\r\n >\r\n \r\n {genericDialogState.koText != null ?\r\n \r\n :\r\n null\r\n }\r\n {genericDialogState.okText != null ?\r\n \r\n :\r\n null\r\n }\r\n

\r\n {genericDialogState.body}\r\n

\r\n \r\n\r\n {\r\n e.component.repaint();\r\n }}\r\n visible={exportDialogState.popupVisible}\r\n onHiding={hideExportDialog}\r\n dragEnabled={false}\r\n closeOnOutsideClick={true}\r\n showCloseButton={false}\r\n showTitle={true}\r\n title={exportDialogState.title}\r\n container=\".dx-viewport\"\r\n height=\"auto\"\r\n width=\"70%\"\r\n >\r\n \r\n {\r\n let text = document.getElementById('exportCodeTag').innerHTML;\r\n try {\r\n await navigator.clipboard.writeText(text);\r\n console.log('Content copied to clipboard');\r\n } catch (err) {\r\n console.error('Failed to copy: ', err);\r\n }\r\n },\r\n }}\r\n />\r\n {\r\n hideExportDialog();\r\n },\r\n }}\r\n />\r\n

\r\n A continuación se muestra el código de importación del tipo de trámite. Puedes copiarlo y almacenarlo para su posterior importación.\r\n

\r\n
{ exportState }
\r\n \r\n \r\n
\r\n )\r\n}\r\n","import {Button, Gallery, LoadPanel} from 'devextreme-react'\r\nimport React, { useState } from 'react'\r\nimport \"./Dealer.css\";\r\nimport { Link, useHistory } from 'react-router-dom';\r\nimport imgSpinner from '../../img/spinner.gif';\r\nimport checkGreen from '../../img/check_green.png';\r\nimport closeRed from '../../img/close_red.png';\r\n\r\nexport const Dealer = ({ dealer, loadingCounters, setDealerState }) => {\r\n\r\n let history = useHistory();\r\n\r\n const dataSource = [\r\n { number: dealer.counters[\"2\"] || 0, name: \"Pendiente\" },\r\n { number: dealer.counters[\"3\"] || 0, name: \"En trámite\" },\r\n { number: dealer.counters[\"4\"] || 0, name: \"Incidencia\" },\r\n { number: dealer.counters[\"5\"] || 0, name: \"En revisión\" },\r\n { number: dealer.counters[\"-1\"] || 0, name: \"Otros\" },\r\n ];\r\n const renderGalleryItem = (itemData) => {\r\n return (\r\n
\r\n

{itemData.number}

\r\n

{itemData.name}

\r\n
\r\n );\r\n }\r\n\r\n\r\n\r\n \r\n\r\n return (\r\n
\r\n
\r\n \r\n {\r\n dealer.estado == 0 ?\r\n <>\r\n
\r\n

{dealer.name}

\r\n
\r\n {dealer.clienteDF}\r\n
\r\n
\r\n {dealer.descripcion != null && dealer.descripcion != \"\"? dealer.descripcion:\"Este concesionario está pendiente de aprobación. No se ha proporcionado información adicional para su aprobación.\"}\r\n
\r\n
\r\n
\r\n \r\n :\r\n <>\r\n
\r\n

{dealer.name}

\r\n
\r\n {dealer.clienteDF}\r\n
\r\n
\r\n {\r\n loadingCounters ?\r\n \r\n :\r\n \r\n }\r\n
\r\n
\r\n
Acceder
\r\n
\r\n \r\n }\r\n \r\n
\r\n
\r\n )\r\n}\r\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAFo9M/3AAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAEKADAAQAAAABAAAAEAAAAAA0VXHyAAABOklEQVQ4EYWTPVLDQAyFpU0uAElJi4cO3yE9mZyFc3AWhh7uENrUlDjM0DLZzX4bnmcd7KBif7RPT0+Sbd93m4XJutuHpPPZrqd9s/4MvLl7x55SWthXs7nngnXN+tXlSBbfrncvy3C1e37n4hZWoBwiXoQsITEdtsFnLWhQGEB2Z8GIACgFsOAvsjiUPFkeuZDXpyjSzFpFAMbEWLSfXMMVAJ0KWUQrQYIo+hDtpogUQOXVVfVVCITAuuS+CqmnzLofBaCcRKJDbJxHOykAmpxh1jmJwgDlD2DrNCpPdkVudNT5T9Dhihy6Xj4G9zzlbLVzimgK07dpigi/Mo6RDwgAY3U27mOB+LE/BHUwgYCod4qkJzgPrBt66a3M8VKNKJCNEc1nwT5+ovFLPf43wt/38j9Gi0/zHHsEGmgWW5l4AvMAAAAASUVORK5CYII=\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAAQCAYAAAFsAR/KAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAEqADAAQAAAABAAAAEAAAAADgaeE1AAAB8ElEQVQ4EZVUMUgcQRR9M3feKTaXQuQQOxsRUoQLeEYQQey0PBEsUnimSrAKpElMkyaQoOWOCmksLEQUrEQtdtYLkYgSksIiRLGxUcEIp7s7+TvrrHuXrJiBZf5//82bN39nFzBDiheAM/vM5NGcglIcg20ui6AgqIhu+JmjEJPWT9iWqiEkJ5pp6LbYC5gcvRNMazD1KQBqdwuQ+JDigGx18DhWE4fylUA1VJKiSisyyDTk4aIF/vU+HuSy6Cpd1SzUiRTLsMXp34W7EFt8DMrJxp3FJvhnl+B8Mtm4OrsgkVP0jE//ezPbehfvNYe0PEgxE7F3dhoofoUU6zcYbcef0vGfE/GLBqtff5PVfRTLW4YUGt8WnfDUdwJdetL6tRgGzaHxYvkHGvPNmpBm7bG6DpNbUM+sz535Pihvk6ySBltIblP9wnjuWB/gu1uhCNbxZHzs/xwdrGVxcrxLAp1aN4URFCcWg/imSVYJiueTXxIxt+cfwXM/U5Sm5xCNuYcolM4p1oMu++xrwH9rAJJeQTY/isLQZYRJ8YZcTOmcs/foKb+MajfB7dHsuX4SXAJUTtcY+4UUhuFhjkQKhFXBeIH68a1eJMhvhUy1IlrpLqxC4bGBwNgGHXuA5vt+7tFSMkZ/Eimm4YjRGJoY/gEGJ6GfMEf22wAAAABJRU5ErkJggg==\"","import { LoadPanel, Popup } from 'devextreme-react'\r\nimport React, { useContext, useEffect, useState } from 'react'\r\nimport \"./Dealers.css\";\r\nimport { useHistory } from 'react-router-dom';\r\nimport { Dealer } from './Dealer';\r\nimport warning_big from '../../img/warning.png';\r\nimport { Position, ToolbarItem } from 'devextreme-react/popup';\r\nimport { SessionContext } from '../context/SessionContext';\r\nimport imgSpinner from '../../img/spinner.gif';\r\n\r\nexport const Dealers = () => {\r\n\r\n let history = useHistory();\r\n\r\n\r\n const { session: sessionContext, setSession: setSessionContext } = useContext(SessionContext);\r\n const [loadingDealersState, setLoadingDealersState] = useState(true);\r\n const [loadingCountsState, setLoadingCountsState] = useState(true);\r\n const [dealersState, setDealersState] = useState([]);\r\n const [nextToExpireState, setNextToExpireState] = useState({ dialogShown: false, expiredList: [], loaded: false });\r\n\r\n\r\n const [dialogState, setDialogState] = useState({\r\n title: \"\",\r\n header: \"\",\r\n body: \"\",\r\n position: { my: 'center', at: 'center', of: window },\r\n popupVisible: false,\r\n });\r\n const showDialog = (title, header, body) => {\r\n setDialogState({\r\n title: title,\r\n header: header,\r\n body: body,\r\n position: { my: 'center', at: 'center', of: window },\r\n popupVisible: true,\r\n });\r\n }\r\n const hideDialog = () => {\r\n setDialogState({\r\n position: { my: 'center', at: 'center', of: window },\r\n popupVisible: false,\r\n });\r\n }\r\n\r\n const [dialogExpirationState, setDialogExpirationState] = useState({\r\n title: \"\",\r\n header: \"\",\r\n body: \"\",\r\n position: { my: 'center', at: 'center', of: window },\r\n popupVisible: false,\r\n });\r\n const showDialogExpiration = (title, header, body) => {\r\n setDialogExpirationState({\r\n title: title,\r\n header: header,\r\n body: body,\r\n position: { my: 'center', at: 'center', of: window },\r\n popupVisible: true,\r\n });\r\n }\r\n const hideDialogExpiration = () => {\r\n setDialogExpirationState({\r\n position: { my: 'center', at: 'center', of: window },\r\n popupVisible: false,\r\n });\r\n }\r\n\r\n const [dialogChangeStateState, setDialogChangeStateState] = useState({\r\n position: { my: 'center', at: 'center', of: window },\r\n popupVisible: false,\r\n cbOk: () => { },\r\n cbKo: () => { },\r\n state: 0,\r\n dealer: null\r\n });\r\n const showDialogChangeState = (dealer, state, cbOk, cbKo) => {\r\n setDialogChangeStateState({\r\n position: { my: 'center', at: 'center', of: window },\r\n popupVisible: true,\r\n cbOk: cbOk,\r\n cbKo: cbKo,\r\n state: state,\r\n dealer: dealer\r\n });\r\n }\r\n const hideDialogChangeState = () => {\r\n setDialogChangeStateState({\r\n position: { my: 'center', at: 'center', of: window },\r\n popupVisible: false,\r\n });\r\n }\r\n\r\n\r\n const loadCloseToExpire = async () => {\r\n if (sessionContext != undefined && sessionContext != null && !sessionContext.shownInitialAlert) {\r\n fetch(`${process.env.PUBLIC_URL}/api/registries/GetCloseToExpire`)\r\n .then(response => response.json())\r\n .then(result => {\r\n // You can process the response here\r\n console.log(result.response);\r\n setNextToExpireState({ dialogShown: true, expiredList: result.response, loaded: true });\r\n if (result.response != undefined && result.response != null && result.response.length != undefined && result.response.length > 0) {\r\n let newSession = sessionContext;\r\n newSession.shownInitialAlert = true;\r\n setSessionContext(newSession)\r\n showDialogExpiration(\"Aviso importante\",\r\n `${result.response.length} trámites finalizados serán borrados pronto.`,\r\n \"Revisa la fecha de borrado y decárgalos. Los trámites se borrarán a los 2 meses de haber sido finalizados.\");\r\n }\r\n //setDealersState(result.response);\r\n })\r\n .catch(() => {\r\n setNextToExpireState({ dialogShown: false, expiredList: [], loaded: true });\r\n throw 'Network error'\r\n });\r\n }\r\n };\r\n const firstLoadStates = async () => {\r\n fetch(`${process.env.PUBLIC_URL}/api/dealers/Get?withCounters=0`)\r\n .then(response => response.json())\r\n .then(result => {\r\n // You can process the response here\r\n console.log(result.response)\r\n result.response.sort(function (a, b) { return b.estado - a.estado });\r\n setDealersState(result.response)\r\n setLoadingDealersState(false);\r\n loadStatesWithCounters();\r\n })\r\n .catch(() => { throw 'Network error' });\r\n };\r\n const loadStatesWithCounters = async () => {\r\n fetch(`${process.env.PUBLIC_URL}/api/dealers/Get?withCounters=1`)\r\n .then(response => response.json())\r\n .then(result => {\r\n // You can process the response here\r\n console.log(result.response)\r\n setLoadingCountsState(false);\r\n result.response.sort(function (a, b) { return b.estado - a.estado });\r\n setDealersState(result.response)\r\n })\r\n .catch(() => { throw 'Network error' });\r\n };\r\n const setDealerState = (dealer, state) => {\r\n showDialogChangeState(dealer, state, () => {\r\n setDealerStateRequest(dealer, state);\r\n hideDialogChangeState();\r\n }, () => {\r\n hideDialogChangeState();\r\n });\r\n }\r\n const setDealerStateRequest = (dealer, state) => {\r\n setLoadingDealersState(true);\r\n fetch(`${process.env.PUBLIC_URL}/api/dealers/PutState?id=${dealer.id}&state=${state}`,\r\n {\r\n method: 'PUT',\r\n body: '',\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n }\r\n })\r\n .then(response => response.json())\r\n .then(result => {\r\n // You can process the response here\r\n console.log(result.response)\r\n if (result.response != null) {\r\n firstLoadStates();\r\n }\r\n })\r\n .catch(() => {\r\n throw 'Network error'\r\n setLoadingDealersState(false);\r\n });\r\n }\r\n\r\n\r\n useEffect(() => { firstLoadStates() }, []);\r\n useEffect(() => { loadCloseToExpire() }, [sessionContext]);\r\n\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n

Concesionarios

\r\n
\r\n\r\n
\r\n
\r\n {\r\n dealersState.map((e) => {\r\n if (e.estado==1 || (sessionContext.user.userType === 2 && e.estado==0)) {\r\n return \r\n }\r\n return null;\r\n })\r\n }\r\n
\r\n
\r\n
\r\n {\r\n e.component.repaint();\r\n }}\r\n visible={dialogExpirationState.popupVisible}\r\n onHiding={hideDialogExpiration}\r\n dragEnabled={false}\r\n closeOnOutsideClick={false}\r\n showCloseButton={false}\r\n showTitle={true}\r\n title={dialogExpirationState.title}\r\n container=\".dx-viewport\"\r\n height=\"auto\"\r\n width=\"auto\"\r\n minWidth={ 500 }\r\n >\r\n \r\n {\r\n hideDialogExpiration();\r\n },\r\n }}\r\n />\r\n
\r\n

Aviso importante

\r\n

\r\n {dialogExpirationState.header}\r\n

\r\n

Revisa la fecha de borrado y descárgalos.

\r\n

\r\n Los trámites se borrarán a los 2 meses de haber sido finalizados.\r\n

\r\n \r\n {\r\n e.component.repaint();\r\n }}\r\n visible={dialogChangeStateState.popupVisible}\r\n onHiding={hideDialogChangeState}\r\n dragEnabled={false}\r\n closeOnOutsideClick={false}\r\n showCloseButton={false}\r\n showTitle={true}\r\n title={`${dialogChangeStateState.state == 1 ? \"Aprobar\" : \"Rechazar\"} concesionario ${dialogChangeStateState.dealer!=null?dialogChangeStateState.dealer.name:\"NO NAME\"}`}\r\n container=\".dx-viewport\"\r\n height=\"auto\"\r\n width=\"auto\"\r\n >\r\n \r\n {/*{dialogChangeStateState.koText != null ?*/}\r\n \r\n {/* :*/}\r\n {/* null*/}\r\n {/*}*/}\r\n {/*{dialogChangeStateState.okText != null ?*/}\r\n \r\n {/* :*/}\r\n {/* null*/}\r\n {/*}*/}\r\n

\r\n {`¿Estás seguro de que deseas ${dialogChangeStateState.state == 1 ? \"aprobar\" : \"rechazar\"} el concesionario ${dialogChangeStateState.dealer?dialogChangeStateState.dealer.name:\"NO NAME\"}?`}\r\n

\r\n \r\n \r\n
\r\n )\r\n}\r\n","import { useState, useEffect, useCallback, useContext } from 'react';\r\nimport { SessionContext } from '../components/context/SessionContext';\r\n\r\n\r\nexport default function useUserConfig() {\r\n // save current window width in the state object\r\n\r\n\r\n //ATENCION USAR CONFIG QUE SE ENCUENTRA EN LA SESIÓN!!!!!!!!!!\r\n //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n\r\n const { session: sessionContext, setSession: setSessionContext } = useContext(SessionContext);\r\n const [configState, setConfigState] = useState({});\r\n\r\n const loadConfig = async () => {\r\n setSessionContext({ // object that we want to update\r\n ...sessionContext, // keep all other key-value pairs\r\n config: [] // update the value of specific key\r\n });\r\n setReturnHook({\r\n get: getConfig,\r\n set: setConfig\r\n });\r\n fetch(`${process.env.PUBLIC_URL}/api/config/Get`)\r\n .then(response => response.json())\r\n .then(result => {\r\n // You can process the response here\r\n console.log(result.response)\r\n if (result.response != null) {\r\n let finalResult = {};\r\n result.response.map((e) => {\r\n finalResult[e.name] = e.value;\r\n });\r\n setSessionContext({ // object that we want to update\r\n ...sessionContext, // keep all other key-value pairs\r\n config: finalResult // update the value of specific key\r\n });\r\n setReturnHook({\r\n get: getConfig,\r\n set: setConfig\r\n });\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n })\r\n .catch((er) => {\r\n throw 'Network error'\r\n return false;\r\n });\r\n }\r\n const setConfig = async (configName, configValue) => {\r\n let finalResult = sessionContext.config;\r\n finalResult[configName] = configValue;\r\n setSessionContext({ // object that we want to update\r\n ...sessionContext, // keep all other key-value pairs\r\n config: finalResult // update the value of specific key\r\n });\r\n fetch(`${process.env.PUBLIC_URL}/api/config/Put?name=${configName}&value=${configValue}`,\r\n {\r\n method: 'PUT',\r\n body: '',\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n }\r\n })\r\n .then(response => response.json())\r\n .then(result => {\r\n // You can process the response here\r\n console.log(result.response)\r\n if (result.response != null) {\r\n let finalResult = {};\r\n result.response.map((e) => {\r\n finalResult[e.name] = e.value;\r\n });\r\n setSessionContext({ // object that we want to update\r\n ...sessionContext, // keep all other key-value pairs\r\n config: finalResult // update the value of specific key\r\n });\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n })\r\n .catch((er) => {\r\n throw 'Network error'\r\n return false;\r\n });\r\n }\r\n const getConfig = (configName, configDefaultValue) => {\r\n if (sessionContext.config[configName] == undefined || sessionContext.config[configName] == null) {\r\n setConfig(configName, configDefaultValue);\r\n return configDefaultValue;\r\n } else {\r\n return sessionContext.config[configName];\r\n }\r\n }\r\n useEffect(() => {\r\n loadConfig();\r\n }, []);\r\n let [returnHook, setReturnHook] = useState({\r\n get: getConfig,\r\n set: setConfig\r\n });\r\n\r\n return returnHook;\r\n}","import { Button, ColorBox, DataGrid, LoadPanel, Popup, SelectBox, TagBox, TextBox } from 'devextreme-react'\r\nimport React, { useCallback, useContext, useEffect, useRef, useState } from 'react'\r\nimport useWindowSize from '../../hooks/useWindowSizze'\r\nimport useUserConfig from '../../hooks/useUserConfig'\r\nimport CustomStore from 'devextreme/data/custom_store';\r\nimport { Column, Button as DGButton, Editing, SearchPanel, Toolbar, Item, Scrolling, Selection, Paging, Pager, Export, LoadPanel as DGLoadPanel } from 'devextreme-react/data-grid';\r\nimport \"./Registries.css\";\r\nimport imgDelete from '../../img/delete.png';\r\nimport imgEdit from '../../img/edit.png';\r\nimport imgGoBack from '../../img/go_back.png';\r\nimport check_rounded_big from '../../img/check_rounded_big.png';\r\nimport imgSpinner from '../../img/spinner.gif';\r\nimport { Link, useHistory, useParams } from 'react-router-dom';\r\nimport { Position, ToolbarItem } from 'devextreme-react/popover';\r\nimport { Field, Form, Formik } from 'formik';\r\nimport { SessionContext } from '../context/SessionContext';\r\nimport { Workbook } from 'exceljs';\r\nimport saveAs from 'file-saver';\r\nimport { exportDataGrid } from 'devextreme/excel_exporter';\r\nimport { BackButton } from '../common/BackButton';\r\n\r\nexport const Registries = () => {\r\n\r\n let { id } = useParams();\r\n const history = useHistory();\r\n\r\n const windowSize = useWindowSize();\r\n const userConfig = useUserConfig();\r\n\r\n\r\n const { session: sessionContext, setSession: setSessionContext } = useContext(SessionContext);\r\n\r\n const changeStateFormRef = useRef()\r\n const gridRef = useRef()\r\n\r\n const [changeStateState, setChangeStateState] = useState({ loading: false, ids: null, state: null, error: false, result: null });\r\n const [registryCountState, setRegistryCountState] = useState(0);\r\n const [statesState, setStatesState] = useState({ loading: true, results: [] });\r\n const [byProcedureStatesState, setByProcedureStatesState] = useState({ loading: true, results: [] });\r\n const [procedureState, setProcedureState] = useState({ loading: true, results: [] });\r\n const [usersState, setUsersState] = useState({ loading: true, results: [] });\r\n const [dealerState, setDealerState] = useState({ loading: true, result: null });\r\n \r\n\r\n const [changeStateButtonState, setChangeStateButtonState] = useState(false);\r\n const [exportSigaButtonState, setExportSigaButtonState] = useState(false);\r\n //If the user can assign registries to users the filter should include unassigned, only theirs otherwhise\r\n const [tagBoxValueState, setTagBoxValueState] = useState([]); //useState(sessionContext.user.userType >= 1 ? [0, sessionContext.user.id] : [sessionContext.user.id]);\r\n const [procedureTagBoxValueState, setProcedureTagBoxValueState] = useState([]);\r\n\r\n\r\n const [gridPaginationState, setGridPaginationState] = useState({});\r\n\r\n const [selectedGridState, setSelectedGridState] = useState([]);\r\n\r\n const onRowSelectionChanged = (e) => {\r\n e.component.getSelectedRowsData().then((selectedData) => {\r\n if (selectedData.length == 0) {\r\n setChangeStateButtonState(false);\r\n setExportSigaButtonState(false);\r\n } else {\r\n if (selectedData.length == 1) {\r\n setExportSigaButtonState(true);\r\n } else {\r\n setExportSigaButtonState(false);\r\n }\r\n let procedure = 0;\r\n let allStatesValid = true;\r\n let allRegistriesAvailable = true;\r\n selectedData.map((data) => {\r\n if (sessionContext.user.userType == 0) {\r\n //If the user can't assign registries only those the user has assigned can be changed\r\n if (data.assigned != sessionContext.user.id) {\r\n allRegistriesAvailable = false;\r\n }\r\n }\r\n if (data.stateId == 6) {\r\n allStatesValid = false;\r\n }\r\n if (procedure != 0) {\r\n if (procedure != data.procedureId) {\r\n procedure = -1;\r\n return;\r\n }\r\n } else {\r\n procedure = data.procedureId;\r\n }\r\n })\r\n setChangeStateButtonState(procedure > 0 && allStatesValid && allRegistriesAvailable);\r\n }\r\n setSelectedGridState(selectedData);\r\n });\r\n \r\n }\r\n\r\n const [changeStateDialogState, setChangeStateDialogState] = useState({\r\n ids: [],\r\n procedureId: 0,\r\n currentState: 0,\r\n position: { my: 'center', at: 'center', of: window },\r\n popupVisible: false,\r\n });\r\n const showChangeStateDialog = (ids, procedureId, currentState) => {\r\n setChangeStateDialogState({\r\n ids: ids,\r\n procedureId: procedureId,\r\n currentState: currentState,\r\n position: { my: 'center', at: 'center', of: window },\r\n popupVisible: true,\r\n });\r\n if (changeStateFormRef != undefined && changeStateFormRef != null && changeStateFormRef.current != undefined && changeStateFormRef.current != null) {\r\n changeStateFormRef.current.setFieldValue(\"ids\", ids, false);\r\n if (currentState > 0) {\r\n changeStateFormRef.current.setFieldValue(\"state\", currentState, false);\r\n }\r\n }\r\n }\r\n const hideChangeStateDialog = () => {\r\n setChangeStateDialogState({\r\n ids: [],\r\n procedureId: 0,\r\n currentState: 0,\r\n position: { my: 'center', at: 'center', of: window },\r\n popupVisible: false,\r\n });\r\n }\r\n\r\n\r\n // A custom validation function. This must return an object\r\n // which keys are symmetrical to our values/initialValues\r\n const validateChangeState = values => {\r\n const errors = {};\r\n if (!values.state) {\r\n errors.state = 'Requerido';\r\n } else if (values.state <=0 ) {\r\n errors.state = 'Requerido';\r\n }\r\n\r\n return errors;\r\n };\r\n const changeStateFormOptions = {\r\n initialValues: {\r\n ids: [],\r\n state: 0\r\n },\r\n validate: validateChangeState,\r\n onSubmit: async values => {\r\n setChangeStateState({\r\n loading: true, ids: values.ids, state: values.state, error: false, result: null\r\n });\r\n //alert(JSON.stringify(values, null, 2));\r\n const response = await fetch(`${process.env.PUBLIC_URL}/api/registries/PutState?ids=${JSON.stringify(values.ids)}&state=${values.state}`, {\r\n method: 'PUT',\r\n body: JSON.stringify(values),\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n const data = await response.json();\r\n setChangeStateState({\r\n loading: false, ids: values.ids, state: values.state, error: (data.response == null), result: (data.response != null ? data.response : data.message)\r\n });\r\n if (data.response != null) {\r\n hideChangeStateDialog();\r\n }\r\n }\r\n };\r\n\r\n\r\n const resizeGridPagination = () => {\r\n try {\r\n var expGridShowRowCount = Math.floor(((windowSize.height - (156 + 50) - (54 * 2) - 30) / 55));\r\n setGridPaginationState({\r\n pageSize: expGridShowRowCount,\r\n infoText: \"Mostrando {2} trámites\"\r\n });\r\n } catch (ee) {\r\n\r\n }\r\n }\r\n function handleErrors(response) {\r\n if (!response.ok) {\r\n throw Error(response.statusText);\r\n }\r\n return response;\r\n }\r\n\r\n const jsonDataSource = new CustomStore({\r\n key: [\"id\", \"procedureId\"],\r\n loadMode: 'raw', \r\n load: () => {\r\n return fetch(`${process.env.PUBLIC_URL}/api/registries/Get?dealer=${id}`)\r\n .then(handleErrors)\r\n .then(response => response.json())\r\n .then(result => {\r\n // You can process the response here\r\n setRegistryCountState(result.response.length);\r\n return result.response;\r\n })\r\n .catch(() => { throw 'Network error' });\r\n }\r\n });\r\n const loadDealer = async () => {\r\n fetch(`${process.env.PUBLIC_URL}/api/dealers/GetId?id=${id}`)\r\n .then(handleErrors)\r\n .then(response => response.json())\r\n .then(result => {\r\n // You can process the response here\r\n setDealerState({ loading: false, result: result.response });\r\n return result.response;\r\n })\r\n .catch(() => { throw 'Network error' });\r\n }\r\n const loadStates = async () => {\r\n fetch(`${process.env.PUBLIC_URL}/api/states`)\r\n .then(handleErrors)\r\n .then(response => response.json())\r\n .then(result => {\r\n // You can process the response here\r\n setStatesState({ loading: false, results: result.response });\r\n return result.response;\r\n })\r\n .catch(() => { throw 'Network error' });\r\n }\r\n const loadByProcedureStates = async () => {\r\n fetch(`${process.env.PUBLIC_URL}/api/procedures/GetAllProcedureStates`)\r\n .then(handleErrors)\r\n .then(response => response.json())\r\n .then(result => {\r\n // You can process the response here\r\n setByProcedureStatesState({ loading: false, results: result.response });\r\n return result.response;\r\n })\r\n .catch(() => { throw 'Network error' });\r\n }\r\n const loadProcedures = async () => {\r\n fetch(`${process.env.PUBLIC_URL}/api/procedures/Get`)\r\n .then(handleErrors)\r\n .then(response => response.json())\r\n .then(result => {\r\n // You can process the response here\r\n setProcedureState({ loading: false, results: result.response });\r\n return result.response;\r\n })\r\n .catch(() => { throw 'Network error' });\r\n }\r\n const loadUsers = async () => {\r\n fetch(`${process.env.PUBLIC_URL}/api/users`)\r\n .then(handleErrors)\r\n .then(response => response.json())\r\n .then(result => {\r\n // You can process the response here\r\n setUsersState({ loading: false, results: result.response });\r\n return result.response;\r\n })\r\n .catch(() => { throw 'Network error' });\r\n }\r\n const loadAll = async () => {\r\n Promise.all([loadStates(), loadProcedures(), loadUsers(), loadByProcedureStates(), loadDealer()]).then(() => {\r\n //setLoadingState(false);\r\n });\r\n }\r\n\r\n\r\n const DXTextInput = ({ fieldName, fieldType, fieldPlaceholder, ...rest }) => (\r\n \r\n {({ field, form }) => (\r\n { form.setFieldValue(field.name, event.component.option(\"value\"), true) }}\r\n onFocusOut={event => { form.setFieldTouched(field.name) }}\r\n value={field.value}\r\n />\r\n )}\r\n \r\n );\r\n const DXComboInput = ({ fieldName, fieldType, fieldPlaceholder, ...rest }) => (\r\n \r\n {({ field, form }) => (\r\n {\r\n form.setFieldValue(field.name, event.component.option(\"value\"), true)\r\n }}\r\n onFocusOut={event => { form.setFieldTouched(field.name) }}\r\n value={field.value}\r\n />\r\n )}\r\n \r\n );\r\n\r\n const exportRegistrySIGA = async () => {\r\n var idRegistry = selectedGridState.map((e) => e.id)[0];\r\n if (Number(idRegistry) > 0) {\r\n fetch(`${process.env.PUBLIC_URL}/api/registries/ExportRegistrySIGA?id=${idRegistry}`)\r\n .then(response => response.json())\r\n .then(result => {\r\n // You can process the response here\r\n console.log(result.response)\r\n if (result.response != null) {\r\n downloadB64(result.response, idRegistry, \".xml\");\r\n return true;\r\n } else {\r\n\r\n return false;\r\n }\r\n })\r\n .catch((er) => {\r\n throw 'Network error'\r\n return false;\r\n });\r\n }\r\n };\r\n\r\n const downloadB64 = (fileB64, fileName, extension) => {\r\n const linkSource = `data:application/zip;base64,${fileB64}`;\r\n const downloadLink = document.createElement(\"a\");\r\n const fname = fileName + extension;\r\n downloadLink.href = linkSource;\r\n downloadLink.download = fname;\r\n downloadLink.click();\r\n }\r\n\r\n const onExporting = (e) => {\r\n const workbook = new Workbook();\r\n const worksheet = workbook.addWorksheet('Trámites');\r\n e.component.beginUpdate();\r\n e.component.columnOption('state', 'visible', false);\r\n e.component.columnOption('exportState', 'visible', true);\r\n e.component.columnOption('exported', 'visible', false);\r\n e.component.columnOption('exportExported', 'visible', true);\r\n e.component.columnOption('downloaded', 'visible', false);\r\n e.component.columnOption('exportDownloaded', 'visible', true);\r\n exportDataGrid({\r\n //component: dGrid.getInstance(document.querySelector(\".dx-datagrid\")),\r\n component: e.component,\r\n worksheet: worksheet,\r\n customizeCell: function (options) {\r\n const excelCell = options;\r\n excelCell.font = { name: 'Arial', size: 12 };\r\n excelCell.alignment = { horizontal: 'left' };\r\n }\r\n }).then(function () {\r\n workbook.xlsx.writeBuffer()\r\n .then(function (buffer) {\r\n saveAs(new Blob([buffer], { type: 'application/octet-stream' }), 'Trámites.xlsx');\r\n });\r\n e.component.columnOption('state', 'visible', true);\r\n e.component.columnOption('exportState', 'visible', false);\r\n e.component.columnOption('exported', 'visible', true);\r\n e.component.columnOption('exportExported', 'visible', false);\r\n e.component.columnOption('downloaded', 'visible', true);\r\n e.component.columnOption('exportDownloaded', 'visible', false);\r\n e.component.endUpdate();\r\n });\r\n e.cancel = true;\r\n }\r\n\r\n const onRowClick = (e) => {\r\n if (e.rowType === \"data\") {\r\n //e.component.editRow(e.rowIndex);\r\n console.log(e);\r\n let currentUrl = history.location.pathname;\r\n let backlog = [];\r\n if (history.location.state != undefined && history.location.state.comesFrom != undefined && history.location.state.comesFrom != \"\") {\r\n backlog = history.location.state.comesFrom;\r\n }\r\n backlog.push(currentUrl);\r\n history.replace(`/registry/${id}/${e.key.procedureId}/${e.key.id}`, { comesFrom: backlog });\r\n }\r\n }\r\n //const getFilterValue = useCallback(() => {\r\n // let elFiltro = [];\r\n // if (tagBoxValueState.length > 0) {\r\n // elFiltro.push(['assigned', 'anyof', tagBoxValueState]);\r\n // }\r\n // if (procedureTagBoxValueState.length > 0) {\r\n // if (elFiltro.length > 0) {\r\n // elFiltro.push(\"or\")\r\n // }\r\n // elFiltro.push(['procedureId', 'anyof', procedureTagBoxValueState]);\r\n // }\r\n // return elFiltro;\r\n //}, [procedureTagBoxValueState, tagBoxValueState]);\r\n \r\n useEffect(loadAll, []);\r\n useEffect(resizeGridPagination, [windowSize]);\r\n useEffect(async () => {\r\n const userFilter=userConfig.get(\"_USER_FILTER\", JSON.stringify(sessionContext.user.userType >= 1 ? [0, sessionContext.user.id] : [sessionContext.user.id]))\r\n if (tagBoxValueState != JSON.parse(userFilter)) {\r\n setTagBoxValueState(JSON.parse(userFilter));\r\n }\r\n //const procedureFilter = userConfig.get(\"_PROC_FILTER\", JSON.stringify([]))\r\n //if (procedureTagBoxValueState != JSON.parse(procedureFilter)) {\r\n // setProcedureTagBoxValueState(JSON.parse(procedureFilter));\r\n //}\r\n },[])\r\n useEffect(() => {\r\n if (gridRef != undefined && gridRef != null && gridRef.current != undefined && gridRef.current != null) {\r\n\r\n gridRef.current.instance.filter((itemData) => {\r\n return (tagBoxValueState.length == 0 ? true : tagBoxValueState.indexOf(itemData.assigned) > -1) && (procedureTagBoxValueState.length == 0 ? true : procedureTagBoxValueState.indexOf(itemData.procedureId) > -1);\r\n });\r\n }\r\n }, [procedureTagBoxValueState, tagBoxValueState])\r\n\r\n const filterCallback = (itemData) => {\r\n return (tagBoxValueState.length == 0 ? true : tagBoxValueState.indexOf(itemData.assigned) > -1) && (procedureTagBoxValueState.length == 0 ? true : procedureTagBoxValueState.indexOf(itemData.procedureId) > -1);\r\n //let matchesUser = false;\r\n //let matchesProcedure = false;\r\n //if (tagBoxValueState.length == 0) matchesUser = true;\r\n //if (procedureTagBoxValueState.length == 0) matchesProcedure = true;\r\n //if (tagBoxValueState.length > 0) {\r\n // matchesUser = tagBoxValueState.indexOf(itemData.assigned) > -1;\r\n //}\r\n //if (procedureTagBoxValueState.length > 0) {\r\n // matchesProcedure = procedureTagBoxValueState.indexOf(itemData.procedureId) > -1;\r\n //}\r\n\r\n //return matchesUser && matchesProcedure;\r\n }\r\n\r\n return (\r\n
\r\n
\r\n\r\n
{selectedGridState.length > 0 ? `${selectedGridState.length} trámites seleccionados`:\"\" }
\r\n
\r\n
\r\n \r\n
\r\n
\r\n {!dealerState.loading ? dealerState.result.name : \"\"}\r\n {!dealerState.loading ? dealerState.result.clienteDF : \"\"}\r\n
\r\n
\r\n
\r\n

Trámites 

\r\n

({registryCountState} trámites)

\r\n
\r\n \r\n
\r\n {\r\n statesState.loading || procedureState.loading || usersState.loading ?\r\n \r\n :\r\n {\r\n if (e.component != undefined && e.component != null) {\r\n\r\n e.component.filter((itemData) => {\r\n return (tagBoxValueState.length == 0 ? true : tagBoxValueState.indexOf(itemData.assigned) > -1) && (procedureTagBoxValueState.length == 0 ? true : procedureTagBoxValueState.indexOf(itemData.procedureId) > -1);\r\n });\r\n }\r\n }\r\n }\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n event.element.classList.remove(\"dx-registry-active\");\r\n event.element.classList.remove(\"dx-registry-focused\");\r\n showChangeStateDialog(selectedGridState.map((e) => e.id), selectedGridState[0].procedureId, 0);\r\n }\r\n }\r\n />\r\n \r\n \r\n \r\n {\r\n event.element.classList.remove(\"dx-registry-active\");\r\n event.element.classList.remove(\"dx-registry-focused\");\r\n exportRegistrySIGA();\r\n }\r\n }\r\n />\r\n \r\n \r\n {\r\n if (e.component.option(\"value\") != procedureTagBoxValueState) {\r\n if (e.component.option(\"value\").length > 0) {\r\n //userConfig.set(\"_PROC_FILTER\", JSON.stringify(e.component.option(\"value\")));\r\n setProcedureTagBoxValueState(e.component.option(\"value\"));\r\n } else {\r\n //userConfig.set(\"_PROC_FILTER\", JSON.stringify([]));\r\n setProcedureTagBoxValueState([]);\r\n }\r\n }\r\n }}\r\n />\r\n \r\n \r\n {\r\n if (e.component.option(\"value\") != tagBoxValueState) {\r\n if (e.component.option(\"value\").length > 0) {\r\n userConfig.set(\"_USER_FILTER\", JSON.stringify(e.component.option(\"value\")));\r\n setTagBoxValueState(e.component.option(\"value\"));\r\n } else {\r\n userConfig.set(\"_USER_FILTER\", JSON.stringify([]));\r\n setTagBoxValueState([]);\r\n }\r\n }\r\n }}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/**/}\r\n {\r\n let stateName = \"Cargando...\";\r\n let stateBGColor = \"#FFFFFF\";\r\n const state = statesState.results.find((e) => {\r\n return e.id == data.data.stateId;\r\n });\r\n if (state != undefined && state != null) {\r\n stateName = state.name;\r\n stateBGColor = state.bgColor;\r\n }\r\n //{ { backgroundColor: data.value, width: 50, height: 20, borderColor: \"#000000\", borderStyle: \"solid\", borderWidth: 0.2, borderRadius: 5 }}\r\n return
{stateName}
\r\n }\r\n }\r\n />\r\n {/*This is the column that gets exported*/}\r\n {\r\n const state = statesState.results.find((e) => {\r\n return e.id == rowData.stateId;\r\n });\r\n if (state != undefined && state != null) {\r\n return state.name;\r\n } else {\r\n return rowData.stateId;\r\n }\r\n }}\r\n />\r\n \r\n \r\n {\r\n return `${String(rowData.gestoria).padStart(3, \"0\")}${String(rowData.procedureId).padStart(4, \"0\")}${String(rowData.id).padStart(6, \"0\")}`;\r\n }\r\n }\r\n />\r\n {\r\n const procedure = procedureState.results.find((e) => {\r\n return e.id == rowData.procedureId;\r\n });\r\n if (procedure != undefined && procedure != null) {\r\n return procedure.name;\r\n } else {\r\n return rowData.procedureId;\r\n }\r\n }}\r\n />\r\n \r\n \r\n {\r\n let stateBGColor = \"var(--azul-df)\";\r\n if (data.data.aboutToGetDeleted) {\r\n stateBGColor = \"var(--rojo-ko)\";\r\n }\r\n //{ { backgroundColor: data.value, width: 50, height: 20, borderColor: \"#000000\", borderStyle: \"solid\", borderWidth: 0.2, borderRadius: 5 }}\r\n return
{data.data.closeDate}
\r\n }\r\n }\r\n />\r\n {/**/}\r\n rowData.exported ? \"Si\" : \"No\"}\r\n />\r\n {\r\n if (cellInfo.value <= 0) {\r\n return \"-\";\r\n }\r\n const user = usersState.results.find((e) => {\r\n return e.id == cellInfo.value;\r\n });\r\n if (user != undefined && user != null) {\r\n return user.name;\r\n } else {\r\n return `- Usuario eliminado (${String(cellInfo.value)}) -`;\r\n }\r\n }}\r\n />\r\n {/**/}\r\n rowData.downloaded ? \"Si\" : \"No\"}\r\n />\r\n \r\n }\r\n
\r\n
\r\n\r\n {\r\n e.component.repaint();\r\n }}\r\n visible={changeStateDialogState.popupVisible}\r\n onHiding={hideChangeStateDialog}\r\n\r\n dragEnabled={false}\r\n closeOnOutsideClick={false}\r\n showCloseButton={false}\r\n showTitle={true}\r\n title=\"Cambiar estado de los trámites seleccionados\"\r\n container=\".dx-viewport\"\r\n height=\"auto\"\r\n width=\"auto\"\r\n >\r\n \r\n
\r\n \r\n {\r\n ({ isSubmitting, handleReset, setFieldTouched, ...props }) => {\r\n const hasInputError = (props.touched.state && props.errors.state);\r\n const hasFetchError = (!changeStateState.loading && changeStateState.state == props.values.state && (changeStateState.result == null || changeStateState.error));\r\n const hasError = (hasInputError || hasFetchError);\r\n\r\n const statesDataSource = (byProcedureStatesState.results[changeStateDialogState.procedureId] || []).filter((e) => e.shown && e.state!=null && e.state.id!=1).sort((a, b) => parseFloat(a.order) - parseFloat(b.order));\r\n\r\n return
\r\n

Al pulsar el botón guardar, los trámites seleccionados cambiaran al estado que selecciones.

\r\n

Los estados de 'Incidencia' y 'Finalizado' no pueden ser establecidos desde aquí porque requieren comprobaciones adicionales.

\r\n \r\n {/*States 4 (\"incidencia\") and 6 (\"finalizado\") aren't available because to set them there are some checks required that can't be done from here.*/}\r\n e.state.id != 4 && e.state.id!=6)}\r\n valueExpr=\"state.id\"\r\n displayExpr=\"state.name\" />\r\n\r\n {hasError ?\r\n
\r\n {props.touched.state && props.errors.state && props.errors.state == \"Requerido\" ?\r\n \"Todos los campos son obligatorios\"\r\n :\r\n changeStateState.error ? changeStateState.result : \"Se han proporcionado datos inválidos\"\r\n }\r\n
:\r\n null\r\n }\r\n
\r\n
\r\n
\r\n \r\n }\r\n }\r\n \r\n \r\n
\r\n )\r\n}\r\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAAGXcA1uAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAGKADAAQAAAABAAAAGAAAAADiNXWtAAACC0lEQVRIDb1UzS8DQRSf6c4GCYmDoBJdH0eJC9EiEgeRODo4k6hKuLi79OIorlLl6sSxf0GjJXHiQpC0QhAhlEqj2/GmDDO7M1qfm+y+937v9z7m7cwgpH2sQHBe60SWPzjLvJ4ihaJFF5UzPligAbjBAMs/uc4k8vmD2aLy5Y+YnwW/dqJIU3QAO858IHddHF/PJOWgdtnf75Sn5pJ17uye+6RVdIVCJndw2do3a3GdSSwaTIfR3gF8hCjyUkSf0jur7RLnKwthXIIoHS87CLhStf8zxL/orCqN1elU2b8b0DI4V+usIlVgvYfD4SLWMThTXchmbj8NIIbRuRY7tRkpk81lTGI2uALEvXySiOx5PGiCkQg2Bo63lq94wDtP9ZdVm5DzpDXwbLuRyDPXnZJgig54tNMp2own2n+mu86PrlJb/3R3/jm/iTAeTW9H3beIJlA5IxXXztt+wJuho4DKr8PKLqBLUAr/8wJE14GvJ7gP47huMmpGEomlJyfPGgh5Ua6QhFuwIrUdbXT6ua1dQZVZOUwxaj+z77OwLZd4AGAGXKQxmrPPQb+oq/e0cZ9KltxFvsDUEC7QGNzIH1c6xjfExL0n8ZVDVVIJgxvigb0SqDDYWYaxPQJ3TOGWIDEngX2tHZMYlUpGF8Bmb+lHyElgRhlKaX05x7905jcGpVUY48uy+T8hvgAQC5ihjA953gAAAABJRU5ErkJggg==\"","export default __webpack_public_path__ + \"static/media/NO_DOC.37f601e4.pdf\";","import { Button, Popup, TextBox } from 'devextreme-react';\r\nimport React, { useEffect, useRef, useState } from 'react'\r\nimport noDoc from '../../NO_DOC.pdf';\r\nimport imgEdit from '../../img/edit.png';\r\nimport imgDelete from '../../img/delete.png';\r\nimport imgUpload from '../../img/upload.png';\r\nimport imgDownload from '../../img/download.png';\r\nimport \"./DocumentViewer.css\";\r\nimport { Field, Form, Formik } from 'formik';\r\nimport { Position, ToolbarItem } from 'devextreme-react/popup';\r\nimport { Document, Page, pdfjs } from 'react-pdf';\r\nimport useWindowSize from '../../hooks/useWindowSizze';\r\n\r\nexport const DocumentViewer = ({ elmId, selectedDocB64, viewerWidth }) => {\r\n\r\n \r\n\r\n useEffect(() => {\r\n pdfjs.GlobalWorkerOptions.workerSrc = `https://cdnjs.cloudflare.com/ajax/libs/pdf.js/${pdfjs.version}/pdf.worker.js`;\r\n });\r\n\r\n const [selectedDocumentNumPages, setSelectedDocumentNumPages] = useState(null);\r\n const [selectedDocumentPageNumber, setSelectedDocumentPageNumber] = useState(1);\r\n const [calculatedWidth, setCalculatedWidth] = useState(0);\r\n const [calculatedHeight, setCalculatedHeight] = useState(0);\r\n const windowSize = useWindowSize();\r\n\r\n function onSelectedDocumentLoadSuccess({ numPages }) {\r\n setSelectedDocumentNumPages(numPages);\r\n setSelectedDocumentPageNumber(1);\r\n }\r\n\r\n function selectedDocumentChangePage(offset) {\r\n setSelectedDocumentPageNumber(selectedDocumentPrevPageNumber => selectedDocumentPrevPageNumber + offset);\r\n }\r\n\r\n function selectedDocumentPreviousPage() {\r\n selectedDocumentChangePage(-1);\r\n }\r\n\r\n function selectedDocumentNextPage() {\r\n selectedDocumentChangePage(1);\r\n }\r\n\r\n useEffect(() => {\r\n const theMatches = viewerWidth.match(/(\\d+)([\\D\\w]*)/);\r\n const theNumber = theMatches[1];\r\n const theUnit = theMatches[2];\r\n let theWidth = theNumber;\r\n if (theUnit == \"%\") {\r\n if ((document.getElementById(`${elmId}`) == undefined) || (document.getElementById(`${elmId}`) == null)) {\r\n setCalculatedWidth(0);\r\n setCalculatedHeight(0);\r\n return 0;\r\n }\r\n theWidth = (document.getElementById(`${elmId}`).getBoundingClientRect().width * (theNumber / 100))\r\n setCalculatedHeight(document.getElementById(`${elmId}`).getBoundingClientRect().height * (1))\r\n } else {\r\n\r\n }\r\n console.log(\"setCalculatedWidth \" + theWidth);\r\n setCalculatedWidth(theWidth);\r\n }, [viewerWidth, windowSize]); \r\n\r\n return (\r\n\r\n
\r\n {selectedDocB64 == null || selectedDocB64 == \"\"\r\n ?\r\n
Sin documento seleccionado
\r\n :\r\n (\r\n selectedDocB64.startsWith(\"data:application/pdf;base64,\") ?\r\n
\r\n \r\n \r\n \r\n
\r\n

\r\n Página {selectedDocumentPageNumber || (selectedDocumentNumPages ? 1 : '--')} de {selectedDocumentNumPages || '--'}\r\n

\r\n
\r\n \r\n = selectedDocumentNumPages}\r\n onClick={selectedDocumentNextPage}\r\n text=\"Siguiente\"\r\n />\r\n
\r\n
\r\n
\r\n //\r\n :\r\n
El documento seleccionado no puede visualizarse. Descarga el documento para verlo.
\r\n )\r\n }\r\n
\r\n )\r\n}\r\n","import { Button, Popup, TextBox } from 'devextreme-react';\r\nimport React, { useEffect, useRef, useState } from 'react'\r\nimport noDoc from '../../NO_DOC.pdf';\r\nimport imgEdit from '../../img/edit.png';\r\nimport imgDelete from '../../img/delete.png';\r\nimport imgUpload from '../../img/upload.png';\r\nimport imgDownload from '../../img/download.png';\r\nimport \"./RemoteDocuments.css\";\r\nimport { Field, Form, Formik } from 'formik';\r\nimport { Position, ToolbarItem } from 'devextreme-react/popup';\r\nimport { Document, Page, pdfjs } from 'react-pdf';\r\nimport { DocumentViewer } from './DocumentViewer';\r\n\r\nexport const RemoteDocuments = ({ idRegistry, reload, enabled, remoteProcedureDocuments, freeDocuments }) => {\r\n\r\n //ESTO ESTÄ AQUI PARA SOLUCIONAR UN PROBLEMA QUE DA LIVE RELOAD CUANDO SE TIENE UN IFRAME EN LA PÁGINA!!!\r\n //QUITAR ANTES DEL DEPLOY!!!!\r\n useEffect(() => {\r\n window.process = {\r\n env: {\r\n NODE_ENV: 'development'\r\n }\r\n }\r\n }, []);\r\n //HASTA AQUI\r\n\r\n\r\n const addFormRef = useRef()\r\n const editFormRef = useRef()\r\n\r\n const [selectedDocState, setSelectedDocState] = useState({ free: false, id: 0 });\r\n const [selectedDocB64State, setSelectedDocB64State] = useState(\"\");\r\n\r\n const [remoteProcedureDocumentsState, setRemoteProcedureDocumentsState] = useState({ loading: true, result: [] });\r\n const [freeDocumentsState, setFreeDocumentsState] = useState({ loading: true, result: [] });\r\n\r\n const [addExtraState, setAddExtraState] = useState({ loading: false, name: null, error: false, result: null });\r\n\r\n const [selectedDocumentNumPages, setSelectedDocumentNumPages] = useState(null);\r\n const [selectedDocumentPageNumber, setSelectedDocumentPageNumber] = useState(1);\r\n\r\n function onSelectedDocumentLoadSuccess({ numPages }) {\r\n setSelectedDocumentNumPages(numPages);\r\n setSelectedDocumentPageNumber(1);\r\n }\r\n\r\n function selectedDocumentChangePage(offset) {\r\n setSelectedDocumentPageNumber(selectedDocumentPrevPageNumber => selectedDocumentPrevPageNumber + offset);\r\n }\r\n\r\n function selectedDocumentPreviousPage() {\r\n selectedDocumentChangePage(-1);\r\n }\r\n\r\n function selectedDocumentNextPage() {\r\n selectedDocumentChangePage(1);\r\n }\r\n\r\n\r\n const [addExtraDialogState, setAddExtraDialogState] = useState({\r\n popupVisible: false,\r\n });\r\n const showAddExtraDialog = () => {\r\n if (!enabled) return;\r\n setAddExtraDialogState({\r\n popupVisible: true,\r\n });\r\n if (addFormRef != undefined && addFormRef != null && addFormRef.current != undefined && addFormRef.current != null) {\r\n addFormRef.current.setFieldValue(\"name\", \"\", false);\r\n }\r\n }\r\n const hideAddExtraDialog = () => {\r\n setAddExtraDialogState({\r\n popupVisible: false,\r\n });\r\n }\r\n\r\n\r\n const [editExtraState, setEditExtraState] = useState({ loading: false, idDoc: 0, name: null, error: false, result: null });\r\n\r\n\r\n const [editExtraDialogState, setEditExtraDialogState] = useState({\r\n popupVisible: false,\r\n });\r\n const showEditExtraDialog = (idDoc, oldName) => {\r\n if (!enabled) return;\r\n setEditExtraDialogState({\r\n idDoc: idDoc,\r\n popupVisible: true,\r\n });\r\n if (editFormRef != undefined && editFormRef != null && editFormRef.current != undefined && editFormRef.current != null) {\r\n editFormRef.current.setFieldValue(\"name\", oldName, false);\r\n }\r\n }\r\n const hideEditExtraDialog = () => {\r\n setEditExtraDialogState({\r\n idDoc: 0,\r\n popupVisible: false,\r\n });\r\n }\r\n\r\n const [confirmDeleteDialogState, setConfirmDeleteDialogState] = useState({\r\n idDoc: 0,\r\n popupVisible: false,\r\n });\r\n const showConfirmDeleteDialog = (idDoc) => {\r\n setConfirmDeleteDialogState({\r\n idDoc: idDoc,\r\n popupVisible: true,\r\n });\r\n }\r\n const hideConfirmDeleteDialog = () => {\r\n setConfirmDeleteDialogState({\r\n idDoc: 0,\r\n popupVisible: false,\r\n });\r\n }\r\n\r\n const loadRemoteProcedureDocuments = async () => {\r\n setRemoteProcedureDocumentsState({ loading: true, result: [] });\r\n if (Number(idRegistry) > 0) {\r\n fetch(`${process.env.PUBLIC_URL}/api/registries/GetRegistryDocs?id=${idRegistry}&remote=1&extra=0`)\r\n .then(response => response.json())\r\n .then(result => {\r\n // You can process the response here\r\n console.log(result.response)\r\n if (result.response != null) {\r\n setRemoteProcedureDocumentsState({ loading: false, result: result.response });\r\n\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n })\r\n .catch((er) => {\r\n throw 'Network error'\r\n return false;\r\n });\r\n }\r\n };\r\n const loadExtraDocuments = async () => {\r\n setFreeDocumentsState({ loading: true, result: [] });\r\n if (Number(idRegistry) > 0) {\r\n fetch(`${process.env.PUBLIC_URL}/api/registries/GetRegistryDocs?id=${idRegistry}&remote=1&extra=1`)\r\n .then(response => response.json())\r\n .then(result => {\r\n // You can process the response here\r\n console.log(result.response)\r\n if (result.response != null) {\r\n setFreeDocumentsState({ loading: false, result: result.response });\r\n\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n })\r\n .catch((er) => {\r\n throw 'Network error'\r\n return false;\r\n });\r\n }\r\n };\r\n\r\n\r\n\r\n const DXTextInput = ({ fieldName, fieldType, fieldPlaceholder, ...rest }) => (\r\n \r\n {({ field, form }) => (\r\n { form.setFieldValue(field.name, event.component.option(\"value\"), true) }}\r\n onFocusOut={event => { form.setFieldTouched(field.name) }}\r\n value={field.value}\r\n />\r\n )}\r\n \r\n );\r\n\r\n const validateAddExtra = values => {\r\n const errors = {};\r\n\r\n if (!values.name) {\r\n errors.name = 'Requerido';\r\n } else if (values.name.length > 150) {\r\n errors.name = 'Must be 150 characters or less';\r\n }\r\n return errors;\r\n };\r\n const validateEditExtra = values => {\r\n const errors = {};\r\n\r\n if (!values.name) {\r\n errors.name = 'Requerido';\r\n } else if (values.name.length > 150) {\r\n errors.name = 'Must be 150 characters or less';\r\n }\r\n return errors;\r\n };\r\n\r\n const addExtraFormOptions = {\r\n initialValues: {\r\n name: '',\r\n remote: 1\r\n },\r\n validate: validateAddExtra,\r\n onSubmit: async values => {\r\n setAddExtraState({\r\n loading: true, name: values.name, error: false, result: null\r\n });\r\n //alert(JSON.stringify(values, null, 2));\r\n //PostRegistryExtraDoc(int idRegistry, string name, int isRemote)\r\n const response = await fetch(`${process.env.PUBLIC_URL}/api/registries/PostRegistryExtraDoc?idRegistry=${idRegistry}&name=${values.name}&isRemote=1`, {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n const data = await response.json();\r\n setAddExtraState({\r\n loading: false, name: values.name, error: (data.response == null), result: (data.response != null ? data.response : data.message)\r\n });\r\n if (data.response != null) {\r\n hideAddExtraDialog();\r\n reload();\r\n loadAll();\r\n }\r\n }\r\n };\r\n const editExtraFormOptions = {\r\n initialValues: {\r\n name: '',\r\n id: 0\r\n },\r\n validate: validateEditExtra,\r\n onSubmit: async values => {\r\n setEditExtraState({\r\n loading: true, idDoc: editExtraDialogState.idDoc, name: values.name, error: false, result: null\r\n });\r\n //alert(JSON.stringify(values, null, 2));\r\n //PostRegistryExtraDoc(int idRegistry, string name, int isRemote)\r\n const response = await fetch(`${process.env.PUBLIC_URL}/api/registries/PutRenameRegistryExtraDoc?idRegistry=${idRegistry}&newName=${values.name}&idDoc=${editExtraDialogState.idDoc}`, {\r\n method: 'PUT',\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n const data = await response.json();\r\n setEditExtraState({\r\n loading: false, idDoc: editExtraDialogState.idDoc, name: values.name, error: (data.response == null), result: (data.response != null ? data.response : data.message)\r\n });\r\n if (data.response != null) {\r\n hideEditExtraDialog();\r\n reload();\r\n loadAll();\r\n }\r\n }\r\n };\r\n\r\n\r\n useEffect(() => {\r\n let b64 = \"\";\r\n if (selectedDocState.id > 0) {\r\n if (selectedDocState.free) {\r\n if (!freeDocumentsState.loading) b64 = freeDocumentsState.result.find(e => e[\"item2\"].id == selectedDocState.id)[\"item3\"];\r\n } else {\r\n if (!remoteProcedureDocumentsState.loading) b64 = remoteProcedureDocumentsState.result.find(e => e[\"item2\"].id == selectedDocState.id)[\"item3\"];\r\n }\r\n setSelectedDocB64State(b64);\r\n }\r\n }, [selectedDocState]);\r\n const loadAll = async () => {\r\n Promise.all([loadRemoteProcedureDocuments(), loadExtraDocuments()]).then(() => {\r\n\r\n });\r\n }\r\n useEffect(loadAll, []);\r\n\r\n useEffect(() => {\r\n pdfjs.GlobalWorkerOptions.workerSrc = `https://cdnjs.cloudflare.com/ajax/libs/pdf.js/${pdfjs.version}/pdf.worker.js`;\r\n });\r\n\r\n return (\r\n
\r\n
\r\n {/**/}\r\n {/* */}\r\n {/**/}\r\n \r\n
\r\n

Documentos recibidos del concesionario

\r\n
\r\n
Nombre
\r\n
\r\n
\r\n {\r\n (\r\n (remoteProcedureDocumentsState.result || []).length > 0\r\n ?\r\n (remoteProcedureDocumentsState.result || []).map((d) => {\r\n const hasDocument = (d[\"item3\"] != null && d[\"item3\"] != \"\");\r\n const isSelected = (selectedDocState.free==false && selectedDocState.id > 0 && selectedDocState.id == d[\"item2\"].id)\r\n let classNames = \"doc-list-item\";\r\n if (hasDocument) {\r\n classNames += \" doc-list-item-filled\"\r\n }\r\n if (isSelected) {\r\n classNames += \" doc-list-item-selected\"\r\n }\r\n\r\n return (\r\n
\r\n
{\r\n setSelectedDocState({ free: false, id: d[\"item2\"].id });\r\n //d[\"item2\"]\r\n }} >\r\n
{d[\"item2\"].name}
\r\n
\r\n
\r\n {\r\n fetch(`${process.env.PUBLIC_URL}/api/registries/GetRegistryDocExtension?idRegistro=${idRegistry}&idProcedure=${d.item2.procedureId}&idDocumento=${d.item2.id}&remote=1&extra=0`)\r\n .then(response => response.json())\r\n .then(result => {\r\n // You can process the response here\r\n console.log(result.response)\r\n if (result.response != null) {\r\n var a = document.createElement(\"a\");\r\n a.href = `${d[\"item3\"]}`;\r\n a.download = `${d[\"item2\"].name}.${result.response}`;\r\n a.click();\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n })\r\n .catch((er) => {\r\n throw 'Network error'\r\n return false;\r\n });\r\n }\r\n }\r\n />\r\n {/**/}\r\n
\r\n
\r\n )\r\n })\r\n :\r\n
Sin documentos
\r\n )\r\n }\r\n
\r\n

Documentos adicionales

\r\n
\r\n Solicitar documento\r\n
\r\n
\r\n
Nombre
\r\n
\r\n
\r\n {\r\n (\r\n (freeDocumentsState.result || []).length > 0\r\n ?\r\n (\r\n (freeDocumentsState.result || []).map((d) => {\r\n const hasDocument = (d[\"item2\"] != null && d[\"item3\"] != \"\");\r\n const isSelected = (selectedDocState.free == true && selectedDocState.id > 0 && selectedDocState.id == d[\"item2\"].id)\r\n let classNames = \"doc-list-item\";\r\n if (hasDocument) {\r\n classNames += \" doc-list-item-filled\"\r\n }\r\n if (isSelected) {\r\n classNames += \" doc-list-item-selected\"\r\n }\r\n\r\n return (\r\n
\r\n
{\r\n setSelectedDocState({ free: true, id: d[\"item2\"].id });\r\n //d[\"item2\"]\r\n }} >\r\n
{d[\"item2\"].name}{d[\"item2\"].mandatory ? \" *\" : \"\"}
\r\n
\r\n
\r\n {hasDocument ?\r\n {\r\n fetch(`${process.env.PUBLIC_URL}/api/registries/GetRegistryDocExtension?idRegistro=${idRegistry}&idProcedure=${d.item2.procedureId}&idDocumento=${d.item2.id}&remote=1&extra=1`)\r\n .then(response => response.json())\r\n .then(result => {\r\n // You can process the response here\r\n console.log(result.response)\r\n if (result.response != null) {\r\n var a = document.createElement(\"a\");\r\n a.href = `${d[\"item3\"]}`;\r\n a.download = `${d[\"item2\"].name}.${result.response}`;\r\n a.click();\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n })\r\n .catch((er) => {\r\n throw 'Network error'\r\n return false;\r\n });\r\n }\r\n }\r\n />\r\n :\r\n <>\r\n { showEditExtraDialog(d[\"item2\"].id, d[\"item2\"].name) }}\r\n />\r\n { showConfirmDeleteDialog(d[\"item2\"].id) }}\r\n />\r\n \r\n }\r\n \r\n {/**/}\r\n
\r\n
\r\n )\r\n }\r\n )\r\n )\r\n :\r\n
Sin documentos
\r\n )\r\n }\r\n
\r\n
\r\n {\r\n e.component.repaint();\r\n }}\r\n visible={addExtraDialogState.popupVisible}\r\n onHiding={hideAddExtraDialog}\r\n\r\n dragEnabled={false}\r\n closeOnOutsideClick={false}\r\n showCloseButton={false}\r\n showTitle={true}\r\n title={`Solicitud de documento`}\r\n container=\".dx-viewport\"\r\n height=\"auto\"\r\n width=\"auto\"\r\n >\r\n \r\n
\r\n \r\n {\r\n ({ isSubmitting, handleReset, setFieldTouched, ...props }) => {\r\n const hasInputError = (props.touched.name && props.errors.name);\r\n const hasFetchError = false; //(!addExtraState.loading && addExtraState.email == props.values.email && addExtraState.name == props.values.name && addExtraState.type == props.values.type && (addExtraState.result == null || addExtraState.error));\r\n const hasError = (hasInputError || hasFetchError);\r\n return
\r\n

Introduce el nombre del documento que quieres solicitar al concesionario.

\r\n \r\n \r\n {hasError ?\r\n
\r\n {props.touched.name && props.errors.name && props.errors.name == \"Requerido\" ?\r\n \"Todos los campos son obligatorios\"\r\n :\r\n addExtraState.error ? addExtraState.result : \"Se han proporcionado datos inválidos\"\r\n }\r\n
:\r\n null\r\n }\r\n\r\n \r\n
\r\n
\r\n
\r\n \r\n }\r\n }\r\n \r\n \r\n {\r\n e.component.repaint();\r\n }}\r\n visible={editExtraDialogState.popupVisible}\r\n onHiding={hideEditExtraDialog}\r\n\r\n dragEnabled={false}\r\n closeOnOutsideClick={false}\r\n showCloseButton={false}\r\n showTitle={true}\r\n title={`Editar solicitud de documento`}\r\n container=\".dx-viewport\"\r\n height=\"auto\"\r\n width=\"auto\"\r\n >\r\n \r\n
\r\n \r\n {\r\n ({ isSubmitting, handleReset, setFieldTouched, ...props }) => {\r\n const hasInputError = (props.touched.name && props.errors.name);\r\n const hasFetchError = false; //(!editExtraState.loading && editExtraState.email == props.values.email && editExtraState.name == props.values.name && editExtraState.type == props.values.type && (editExtraState.result == null || editExtraState.error));\r\n const hasError = (hasInputError || hasFetchError);\r\n return
\r\n

Introduce el nuevo nombre del documento. Este nombre será visto tanto por ti como por el concesionario.

\r\n \r\n \r\n {hasError ?\r\n
\r\n {props.touched.name && props.errors.name && props.errors.name == \"Requerido\" ?\r\n \"Todos los campos son obligatorios\"\r\n :\r\n addExtraState.error ? addExtraState.result : \"Se han proporcionado datos inválidos\"\r\n }\r\n
:\r\n null\r\n }\r\n\r\n\r\n
\r\n
\r\n
\r\n \r\n }\r\n }\r\n \r\n \r\n {\r\n e.component.repaint();\r\n }}\r\n visible={confirmDeleteDialogState.popupVisible}\r\n onHiding={hideConfirmDeleteDialog}\r\n dragEnabled={false}\r\n closeOnOutsideClick={false}\r\n showCloseButton={false}\r\n showTitle={true}\r\n title={`Eliminando documento adicional`}\r\n container=\".dx-viewport\"\r\n height=\"auto\"\r\n width=\"auto\"\r\n >\r\n \r\n {\r\n event.element.classList.remove(\"dx-state-active\");\r\n event.element.classList.remove(\"dx-state-focused\");\r\n hideConfirmDeleteDialog();\r\n },\r\n }}\r\n />\r\n {\r\n event.element.classList.remove(\"dx-state-active\");\r\n event.element.classList.remove(\"dx-state-focused\");\r\n const response = await fetch(`${process.env.PUBLIC_URL}/api/registries/DeleteRegistryExtraDoc?idRegistry=${idRegistry}&idDoc=${confirmDeleteDialogState.idDoc}`, {\r\n method: 'DELETE',\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n const data = await response.json();\r\n if (data.response != null) {\r\n reload();\r\n loadAll();\r\n }\r\n hideConfirmDeleteDialog();\r\n }\r\n }}\r\n />\r\n {/*
*/}\r\n

\r\n ¿Estás seguro de que deseas eliminar permanentemente este documento adicional?\r\n

\r\n \r\n
\r\n )\r\n}\r\n","import { Button, Popup, TextBox } from 'devextreme-react';\r\nimport React, { useEffect, useRef, useState } from 'react'\r\nimport noDoc from '../../NO_DOC.pdf';\r\nimport imgEdit from '../../img/edit.png';\r\nimport imgDelete from '../../img/delete.png';\r\nimport imgUpload from '../../img/upload.png';\r\nimport imgDownload from '../../img/download.png';\r\nimport \"./LocalDocuments.css\";\r\nimport { Field, Form, Formik } from 'formik';\r\nimport { Position, ToolbarItem } from 'devextreme-react/popup';\r\nimport { Document, Page, pdfjs } from 'react-pdf';\r\nimport { DocumentViewer } from './DocumentViewer';\r\n\r\nexport const LocalDocuments = ({ idRegistry, reload, enabled, localProcedureDocuments, freeDocuments }) => {\r\n\r\n //ESTO ESTÄ AQUI PARA SOLUCIONAR UN PROBLEMA QUE DA LIVE RELOAD CUANDO SE TIENE UN IFRAME EN LA PÁGINA!!!\r\n //QUITAR ANTES DEL DEPLOY!!!!\r\n useEffect(() => {\r\n window.process = {\r\n env: {\r\n NODE_ENV: 'development'\r\n }\r\n }\r\n }, []);\r\n //HASTA AQUI\r\n\r\n\r\n const addFormRef = useRef();\r\n const uploadFormRef = useRef();\r\n\r\n const [selectedDocState, setSelectedDocState] = useState({ free: false, id: 0 });\r\n const [selectedDocB64State, setSelectedDocB64State] = useState(\"\");\r\n\r\n const [localProcedureDocumentsState, setLocalProcedureDocumentsState] = useState({ loading: true, result: [] });\r\n const [freeDocumentsState, setFreeDocumentsState] = useState({ loading: true, result: [] });\r\n\r\n const [addExtraState, setAddExtraState] = useState({ loading: false, name: null, error: false, result: null });\r\n\r\n\r\n\r\n const [addExtraDialogState, setAddExtraDialogState] = useState({\r\n popupVisible: false,\r\n });\r\n const showAddExtraDialog = () => {\r\n if (!enabled) return;\r\n setAddExtraDialogState({\r\n popupVisible: true,\r\n });\r\n if (addFormRef != undefined && addFormRef != null && addFormRef.current != undefined && addFormRef.current != null) {\r\n addFormRef.current.setFieldValue(\"name\", \"\", false);\r\n addFormRef.current.setFieldValue(\"file\", null, false);\r\n }\r\n }\r\n const hideAddExtraDialog = () => {\r\n setAddExtraDialogState({\r\n popupVisible: false,\r\n });\r\n }\r\n\r\n\r\n const [uploadExtraState, setUploadExtraState] = useState({ loading: false, idDoc: 0, name: null, error: false, result: null });\r\n\r\n\r\n const [uploadExtraDialogState, setuploadExtraDialogState] = useState({\r\n popupVisible: false,\r\n });\r\n const showUploadExtraDialog = (idDoc, alreadyHasDoc) => {\r\n setuploadExtraDialogState({\r\n idDoc: idDoc,\r\n popupVisible: true,\r\n });\r\n if (uploadFormRef != undefined && uploadFormRef != null && uploadFormRef.current != undefined && uploadFormRef.current != null) {\r\n uploadFormRef.current.setFieldValue(\"file\", null, false);\r\n }\r\n }\r\n const hideUploadExtraDialog = () => {\r\n setuploadExtraDialogState({\r\n idDoc: 0,\r\n popupVisible: false,\r\n });\r\n }\r\n\r\n const [confirmDeleteDialogState, setConfirmDeleteDialogState] = useState({\r\n idDoc: 0,\r\n popupVisible: false,\r\n });\r\n const showConfirmDeleteDialog = (idDoc) => {\r\n setConfirmDeleteDialogState({\r\n idDoc: idDoc,\r\n popupVisible: true,\r\n });\r\n }\r\n const hideConfirmDeleteDialog = () => {\r\n setConfirmDeleteDialogState({\r\n idDoc: 0,\r\n popupVisible: false,\r\n });\r\n }\r\n\r\n const loadLocalProcedureDocuments = async () => {\r\n setLocalProcedureDocumentsState({ loading: true, result: [] });\r\n if (Number(idRegistry) > 0) {\r\n fetch(`${process.env.PUBLIC_URL}/api/registries/GetRegistryDocs?id=${idRegistry}&remote=0&extra=0`)\r\n .then(response => response.json())\r\n .then(result => {\r\n // You can process the response here\r\n console.log(result.response)\r\n if (result.response != null) {\r\n setLocalProcedureDocumentsState({ loading: false, result: result.response });\r\n\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n })\r\n .catch((er) => {\r\n throw 'Network error'\r\n return false;\r\n });\r\n }\r\n };\r\n const loadExtraDocuments = async () => {\r\n setFreeDocumentsState({ loading: true, result: [] });\r\n if (Number(idRegistry) > 0) {\r\n fetch(`${process.env.PUBLIC_URL}/api/registries/GetRegistryDocs?id=${idRegistry}&remote=0&extra=1`)\r\n .then(response => response.json())\r\n .then(result => {\r\n // You can process the response here\r\n console.log(result.response)\r\n if (result.response != null) {\r\n setFreeDocumentsState({ loading: false, result: result.response });\r\n\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n })\r\n .catch((er) => {\r\n throw 'Network error'\r\n return false;\r\n });\r\n }\r\n };\r\n\r\n\r\n const DXTextInput = ({ fieldName, fieldType, fieldPlaceholder, ...rest }) => (\r\n \r\n {({ field, form }) => (\r\n { form.setFieldValue(field.name, event.component.option(\"value\"), true) }}\r\n onFocusOut={event => { form.setFieldTouched(field.name) }}\r\n value={field.value}\r\n />\r\n )}\r\n \r\n );\r\n\r\n const validateAddExtra = values => {\r\n const errors = {};\r\n\r\n if (!values.name) {\r\n errors.name = 'Requerido';\r\n } else if (values.name.length > 150) {\r\n errors.name = 'Must be 150 characters or less';\r\n }\r\n if (!values.file) {\r\n errors.name = 'Requerido';\r\n } \r\n return errors;\r\n };\r\n const validateuploadExtra = values => {\r\n const errors = {};\r\n\r\n\r\n if (!values.file) {\r\n errors.name = 'Requerido';\r\n }\r\n return errors;\r\n };\r\n\r\n const addExtraFormOptions = {\r\n initialValues: {\r\n name: '',\r\n file: null,\r\n remote: 0\r\n },\r\n validate: validateAddExtra,\r\n onSubmit: async values => {\r\n setAddExtraState({\r\n loading: true, name: values.name, error: false, result: null\r\n });\r\n //alert(JSON.stringify(values, null, 2));\r\n //PostRegistryExtraDoc(int idRegistry, string name, int isRemote)\r\n\r\n\r\n let formData = new FormData();\r\n formData.append('file', values.file);\r\n\r\n const response = await fetch(`${process.env.PUBLIC_URL}/api/registries/PostRegistryExtraDoc?idRegistry=${idRegistry}&name=${values.name}&isRemote=0`, {\r\n method: 'POST',\r\n body: formData,\r\n //headers: {\r\n // 'Content-Type': 'multipart/form-data'\r\n //}\r\n });\r\n const data = await response.json();\r\n setAddExtraState({\r\n loading: false, name: values.name, error: (data.response == null), result: (data.response != null ? data.response : data.message)\r\n });\r\n if (data.response != null) {\r\n hideAddExtraDialog();\r\n reload();\r\n loadAll();\r\n }\r\n }\r\n };\r\n const uploadExtraFormOptions = {\r\n initialValues: {\r\n file: null,\r\n id: 0\r\n },\r\n validate: validateuploadExtra,\r\n onSubmit: async values => {\r\n\r\n setSelectedDocState({ free: false, id: 0 });\r\n setUploadExtraState({\r\n loading: true, idDoc: uploadExtraDialogState.idDoc, error: false, result: null\r\n });\r\n //alert(JSON.stringify(values, null, 2));\r\n //PostRegistryExtraDoc(int idRegistry, string name, int isRemote)\r\n\r\n let formData = new FormData();\r\n formData.append('file', values.file);\r\n const response = await fetch(`${process.env.PUBLIC_URL}/api/registries/PostRegistryDoc?idRegistry=${idRegistry}&idDoc=${uploadExtraDialogState.idDoc}&isRemote=0`, {\r\n method: 'POST',\r\n body: formData,\r\n });\r\n const data = await response.json();\r\n setUploadExtraState({\r\n loading: false, idDoc: uploadExtraDialogState.idDoc, error: (data.response == null), result: (data.response != null ? data.response : data.message)\r\n });\r\n if (data.response != null) {\r\n hideUploadExtraDialog();\r\n reload();\r\n loadAll();\r\n }\r\n }\r\n };\r\n\r\n\r\n useEffect(() => {\r\n let b64 = \"\";\r\n if (selectedDocState.id > 0) {\r\n if (selectedDocState.free) {\r\n if (!freeDocumentsState.loading) b64 = freeDocumentsState.result.find(e => e[\"item2\"].id == selectedDocState.id)[\"item3\"];\r\n } else {\r\n if (!localProcedureDocumentsState.loading) b64 = localProcedureDocumentsState.result.find(e => e[\"item2\"].id == selectedDocState.id)[\"item3\"];\r\n }\r\n setSelectedDocB64State(b64);\r\n } else {\r\n setSelectedDocB64State(\"\");\r\n }\r\n }, [selectedDocState]);\r\n\r\n const loadAll = async () => {\r\n Promise.all([loadLocalProcedureDocuments(), loadExtraDocuments()]).then(() => {\r\n \r\n });\r\n }\r\n useEffect(loadAll, []);\r\n\r\n useEffect(() => {\r\n pdfjs.GlobalWorkerOptions.workerSrc = `https://cdnjs.cloudflare.com/ajax/libs/pdf.js/${pdfjs.version}/pdf.worker.js`;\r\n });\r\n\r\n return (\r\n
\r\n
\r\n {/**/}\r\n {/* */}\r\n {/**/}\r\n \r\n
\r\n

Documentos a aportar por la gestoría

\r\n
\r\n
Nombre
\r\n
\r\n
\r\n {\r\n (\r\n (localProcedureDocumentsState.result || []).length > 0\r\n ?\r\n (localProcedureDocumentsState.result || []).map((d) => {\r\n const hasDocument = (d[\"item3\"] != null && d[\"item3\"] != \"\");\r\n const isSelected = (selectedDocState.free==false && selectedDocState.id > 0 && selectedDocState.id == d[\"item2\"].id)\r\n let classNames = \"doc-list-item\";\r\n if (hasDocument) {\r\n classNames += \" doc-list-item-filled\"\r\n }\r\n if (isSelected) {\r\n classNames += \" doc-list-item-selected\"\r\n }\r\n\r\n return (\r\n
\r\n
{\r\n setSelectedDocState({ free: false, id: d[\"item2\"].id });\r\n //d[\"item2\"]\r\n }} >\r\n
{d[\"item2\"].name}{d[\"item2\"].mandatory?\" *\":\"\"}
\r\n
\r\n
\r\n {\r\n showUploadExtraDialog(d[\"item2\"].id, hasDocument)\r\n }\r\n }\r\n />\r\n {!hasDocument ?\r\n null\r\n :\r\n <>\r\n {\r\n fetch(`${process.env.PUBLIC_URL}/api/registries/GetRegistryDocExtension?idRegistro=${idRegistry}&idProcedure=${d.item2.procedureId}&idDocumento=${d.item2.id}&remote=0&extra=0`)\r\n .then(response => response.json())\r\n .then(result => {\r\n // You can process the response here\r\n console.log(result.response)\r\n if (result.response != null) {\r\n var a = document.createElement(\"a\");\r\n a.href = `${d[\"item3\"]}`;\r\n a.download = `${d[\"item2\"].name}.${result.response}`;\r\n a.click();\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n })\r\n .catch((er) => {\r\n throw 'Network error'\r\n return false;\r\n });\r\n }\r\n }\r\n />\r\n \r\n }\r\n \r\n {/**/}\r\n
\r\n
\r\n )\r\n })\r\n :\r\n
Sin documentos
\r\n )\r\n }\r\n
\r\n

Documentos adicionales

\r\n
\r\n Añadir nuevo documento\r\n
\r\n
\r\n
Nombre
\r\n
\r\n
\r\n {\r\n (\r\n (freeDocumentsState.result || []).length > 0\r\n ?\r\n (\r\n (freeDocumentsState.result || []).map((d) => {\r\n const hasDocument = (d[\"item3\"] != null && d[\"item3\"] != \"\");\r\n const isSelected = (selectedDocState.free == true && selectedDocState.id > 0 && selectedDocState.id == d[\"item2\"].id)\r\n let classNames = \"doc-list-item\";\r\n if (hasDocument) {\r\n classNames += \" doc-list-item-filled\"\r\n }\r\n if (isSelected) {\r\n classNames += \" doc-list-item-selected\"\r\n }\r\n\r\n return (\r\n
\r\n
{\r\n setSelectedDocState({ free: true, id: d[\"item2\"].id });\r\n //d[\"item2\"]\r\n }} >\r\n
{d[\"item2\"].name}
\r\n
\r\n
\r\n {hasDocument ?\r\n <>\r\n {\r\n fetch(`${process.env.PUBLIC_URL}/api/registries/GetRegistryDocExtension?idRegistro=${idRegistry}&idProcedure=${d.item2.procedureId}&idDocumento=${d.item2.id}&remote=0&extra=1`)\r\n .then(response => response.json())\r\n .then(result => {\r\n // You can process the response here\r\n console.log(result.response)\r\n if (result.response != null) {\r\n var a = document.createElement(\"a\");\r\n a.href = `${d[\"item3\"]}`;\r\n a.download = `${d[\"item2\"].name}.${result.response}`;\r\n a.click();\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n })\r\n .catch((er) => {\r\n throw 'Network error'\r\n return false;\r\n });\r\n }\r\n }\r\n />\r\n { showConfirmDeleteDialog(d[\"item2\"].id) }}\r\n />\r\n \r\n :\r\n <>\r\n { showConfirmDeleteDialog(d[\"item2\"].id) }}\r\n />\r\n \r\n }\r\n \r\n {/**/}\r\n
\r\n
\r\n )\r\n }\r\n )\r\n )\r\n :\r\n
Sin documentos
\r\n )\r\n }\r\n
\r\n
\r\n {\r\n e.component.repaint();\r\n }}\r\n visible={addExtraDialogState.popupVisible}\r\n onHiding={hideAddExtraDialog}\r\n\r\n dragEnabled={false}\r\n closeOnOutsideClick={false}\r\n showCloseButton={false}\r\n showTitle={true}\r\n title={`Añadir nuevo documento`}\r\n container=\".dx-viewport\"\r\n height=\"auto\"\r\n width=\"auto\"\r\n >\r\n \r\n
\r\n \r\n {\r\n ({ isSubmitting, handleReset, setFieldTouched, setFieldValue, ...props }) => {\r\n const hasInputError = (props.touched.name && props.errors.name);\r\n const hasFetchError = false; //(!addExtraState.loading && addExtraState.email == props.values.email && addExtraState.name == props.values.name && addExtraState.type == props.values.type && (addExtraState.result == null || addExtraState.error));\r\n const hasError = (hasInputError || hasFetchError);\r\n return
\r\n

Introduce el nombre del nuevo documento que quieres añadir al trámite

\r\n \r\n \r\n
\r\n Pulsa el botón para seleccionar el archivo o arrástralo al área de abajo\r\n {\r\n setFieldValue(\"file\", event.currentTarget.files[0]);\r\n }} />\r\n {hasError ?\r\n
\r\n {props.touched.name && props.errors.name && props.errors.name == \"Requerido\" ?\r\n \"Todos los campos son obligatorios\"\r\n :\r\n addExtraState.error ? addExtraState.result : \"Se han proporcionado datos inválidos\"\r\n }\r\n
:\r\n null\r\n }\r\n\r\n \r\n
\r\n
\r\n
\r\n \r\n }\r\n }\r\n \r\n \r\n {\r\n e.component.repaint();\r\n }}\r\n visible={uploadExtraDialogState.popupVisible}\r\n onHiding={hideUploadExtraDialog}\r\n\r\n dragEnabled={false}\r\n closeOnOutsideClick={false}\r\n showCloseButton={false}\r\n showTitle={true}\r\n title={`Añadir documento`}\r\n container=\".dx-viewport\"\r\n height=\"auto\"\r\n width=\"auto\"\r\n >\r\n \r\n
\r\n \r\n {\r\n ({ isSubmitting, handleReset, setFieldTouched, setFieldValue, ...props }) => {\r\n const hasInputError = (props.touched.name && props.errors.name);\r\n const hasFetchError = false; //(!uploadExtraState.loading && uploadExtraState.email == props.values.email && uploadExtraState.name == props.values.name && uploadExtraState.type == props.values.type && (uploadExtraState.result == null || uploadExtraState.error));\r\n const hasError = (hasInputError || hasFetchError);\r\n return
\r\n
\r\n Pulsa el botón para seleccionar el archivo o arrástralo al área de abajo\r\n {\r\n setFieldValue(\"file\", event.currentTarget.files[0]);\r\n }} />\r\n {hasError ?\r\n
\r\n {props.touched.name && props.errors.name && props.errors.name == \"Requerido\" ?\r\n \"Todos los campos son obligatorios\"\r\n :\r\n addExtraState.error ? addExtraState.result : \"Se han proporcionado datos inválidos\"\r\n }\r\n
:\r\n null\r\n }\r\n\r\n\r\n
\r\n
\r\n
\r\n \r\n }\r\n }\r\n \r\n \r\n {\r\n e.component.repaint();\r\n }}\r\n visible={confirmDeleteDialogState.popupVisible}\r\n onHiding={hideConfirmDeleteDialog}\r\n dragEnabled={false}\r\n closeOnOutsideClick={false}\r\n showCloseButton={false}\r\n showTitle={true}\r\n title={`Eliminando documento adicional`}\r\n container=\".dx-viewport\"\r\n height=\"auto\"\r\n width=\"auto\"\r\n >\r\n \r\n {\r\n event.element.classList.remove(\"dx-state-active\");\r\n event.element.classList.remove(\"dx-state-focused\");\r\n hideConfirmDeleteDialog();\r\n },\r\n }}\r\n />\r\n {\r\n event.element.classList.remove(\"dx-state-active\");\r\n event.element.classList.remove(\"dx-state-focused\");\r\n const response = await fetch(`${process.env.PUBLIC_URL}/api/registries/DeleteRegistryExtraDoc?idRegistry=${idRegistry}&idDoc=${confirmDeleteDialogState.idDoc}`, {\r\n method: 'DELETE',\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n const data = await response.json();\r\n if (data.response != null) {\r\n reload();\r\n loadAll();\r\n }\r\n hideConfirmDeleteDialog();\r\n }\r\n }}\r\n />\r\n {/*
*/}\r\n

\r\n ¿Estás seguro de que deseas eliminar permanentemente este documento adicional?\r\n

\r\n \r\n
\r\n )\r\n}\r\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAAGXcA1uAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAGKADAAQAAAABAAAAGAAAAADiNXWtAAACS0lEQVRIDbVUz2sTQRSe2d1oDSxGsKKF7FZEeiloVZrUHAx48I9Q8JBFhSp68tJL7156UhviXyDevBtEJC2kKiJihDaJOVioaLVmIZE839s4OrPZMVtrF5J57/u+92Nm3yxj0sPJdjLeezRqzM16cxIZMt2MN0uQEcL/uE6m8EN4ioozflMQVK7929mW4U57X+SAoAaCdxlnc9jeE5kMbNGzIJSuBKjd9j91GhypSE2rmym8ZMBc4HwDSbuxVDos84rtZq+c6gd5s6L58fytlCxSNtGoFFdkkux6eUE5p20dOW3aYgCXY+8eteEO/r9vhlMeO3tt0j5yYn2/c6a62VqphXnlPUzkbtt+99NXITKMxNF65X5d+LQqx0rikaQ5SoTtpvf2et01suVHCTCtkfFaubhBgjcP5zsUJIu1tjNdAB2pVNCJZNzQzrKsQlvoDAA2cOdHT5p7QnociL4usqVqsdgNBwjf4sDexZkl0omgXV0HRklXzZm5ej41NlVOpae2NlsvBu6ZLk4ZvSjRRO76mN/1K8ilJf474/xcc6lUlbBIU1sgn5+3Vtutx4zBBc45FuCPAHp3MOAG2llgcBHxt5BI5JrP7n2OzI5g5Fsm8Wr7w0dcTidMdhw/ZDNYyCccO4fGcumSkbQP4Kj0WKfzKsA1f5YGZ83lBwd1HOG/vm2Tf9MQp93BsMC4/O4XwC/DFv2GdWSY5ms8fz9Yh4jlnBYGxdrF2vPFp5g3OSR3n5ZyWjh23wDgUJzrHys5iQD24Qivx9bvRPgTo1+r2XRoL+sAAAAASUVORK5CYII=\"","import { useEffect, useState } from \"react\"\r\nimport { Column, Editing, Export, Item, Pager, Paging, Scrolling, SearchPanel, Selection, Toolbar, LoadPanel as DGLoadPanel } from 'devextreme-react/data-grid';\r\nimport CustomStore from 'devextreme/data/custom_store';\r\nimport \"./RegistryEvents.css\";\r\nimport imgSpinner from '../../img/spinner.gif';\r\nimport parse from 'date-fns/parse'\r\nimport { DataGrid, LoadPanel } from \"devextreme-react\";\r\n\r\nexport const RegistryEvents = ({ idRegistry }) => {\r\n const [loadingState, setLoadingState] = useState(false);\r\n const [registryEventsState, setRegistryEventsState] = useState({ loading: true, result: null });\r\n const [filterState, setFilterState] = useState(null);\r\n //const loadRegistryEvents = async () => {\r\n // if (Number(idRegistry) > 0) {\r\n // fetch(`/api/registries/GetRegistryEvents?id=${idRegistry}`)\r\n // .then(response => response.json())\r\n // .then(result => {\r\n // // You can process the response here\r\n // console.log(result.response)\r\n // if (result.response != null) {\r\n // setRegistryEventsState({ loading: false, result: result.response });\r\n // return true;\r\n // } else {\r\n // return false;\r\n // }\r\n // })\r\n // .catch((er) => {\r\n // throw 'Network error'\r\n // return false;\r\n // });\r\n // } else {\r\n // return false;\r\n // }\r\n //};\r\n function handleErrors(response) {\r\n if (!response.ok) {\r\n throw Error(response.statusText);\r\n }\r\n return response;\r\n }\r\n const registryDataSource = new CustomStore({\r\n key: 'id',\r\n loadMode: 'raw',\r\n filter: filterState,\r\n load: () => {\r\n return fetch(`${process.env.PUBLIC_URL}/api/registries/GetRegistryEvents?id=${idRegistry}`)\r\n .then(handleErrors)\r\n .then(response => response.json())\r\n .then(result => {\r\n // You can process the response here\r\n var res = result.response;\r\n //setRegistryEventsState({ loading: false, result: result.response });\r\n return res;\r\n })\r\n .catch(() => { throw 'Network error' });\r\n }\r\n });\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n let datePart = rowData.date.split(\" \")[0];\r\n let timePart = rowData.date.split(\" \")[1];\r\n let formated = datePart.split(\"/\")[0].padStart(2, \"0\") + \"/\" + datePart.split(\"/\")[1].padStart(2, \"0\") + \"/\" + datePart.split(\"/\")[2].padStart(4, \"0\") + \" \" + timePart.split(\":\")[0].padStart(2, \"0\") + \":\" + timePart.split(\":\")[1].padStart(2, \"0\") + \":\" + timePart.split(\":\")[2].padStart(2, \"0\");\r\n return parse(formated, \"dd/MM/yyyy HH:mm:ss\", new Date());\r\n }}\r\n />\r\n {\r\n let datePart = rowData.date.split(\" \")[0];\r\n let timePart = rowData.date.split(\" \")[1];\r\n return datePart.split(\"/\")[0].padStart(2, \"0\") + \"/\" + datePart.split(\"/\")[1].padStart(2, \"0\") + \"/\" + datePart.split(\"/\")[2].padStart(4, \"0\") + \" \" + timePart.split(\":\")[0].padStart(2, \"0\") + \":\" + timePart.split(\":\")[1].padStart(2, \"0\") + \":\" + timePart.split(\":\")[2].padStart(2, \"0\");\r\n }}\r\n />\r\n \r\n \r\n
\r\n );\r\n}","import React, { useCallback, useContext, useEffect, useMemo, useState } from 'react'\r\nimport { useHistory, useParams } from 'react-router';\r\nimport { Link } from 'react-router-dom';\r\nimport \"./Registry.css\";\r\nimport imgGoBack from '../../img/go_back.png';\r\nimport { Button, CheckBox, LoadPanel, Popup } from 'devextreme-react';\r\nimport SelectBox from \"devextreme-react/select-box\";\r\nimport TextBox from 'devextreme-react/text-box';\r\nimport { Position, ToolbarItem } from 'devextreme-react/popup';\r\nimport { RemoteDocuments } from './RemoteDocuments';\r\nimport { LocalDocuments } from './LocalDocuments';\r\nimport { SessionContext } from '../context/SessionContext';\r\nimport imgSpinner from '../../img/spinner.gif';\r\nimport { RegistryEvents } from './RegistryEvents';\r\n\r\n\r\n//const renderStateField = (data) => {\r\n// return (\r\n//
\r\n// {\r\n// if (data != undefined && data != null) {\r\n// let listItem = e.component.element().querySelector(\".dx-texteditor-input\");\r\n// listItem.style.color = data.state.foreColor;\r\n// listItem.style.fontFamily = \"roboto-bold\";\r\n// }\r\n// }}\r\n// />\r\n//
\r\n// );\r\n//}\r\n\r\nexport const Registry = () => {\r\n const { idRegistry, idDealer, idProcedure } = useParams();\r\n\r\n const { session: sessionContext, setSession: setSessionContext } = useContext(SessionContext);\r\n\r\n let history = useHistory();\r\n\r\n const [loadingState, setLoadingState] = useState(true);\r\n const [editionState, setEditionState] = useState(false);\r\n\r\n const [nameInputState, setNameInputState] = useState(\"\");\r\n const [errorState, setErrorState] = useState(\"\");\r\n\r\n const [registryState, setRegistryState] = useState({ loading: true, result: null });\r\n const [usersState, setUsersState] = useState({ loading: true, result: null });\r\n const [stateState, setStateState] = useState({ loading: true, result: null });\r\n\r\n const [dealerState, setDealerState] = useState({ loading: true, result: null });\r\n\r\n const [stateComboState, setStateComboState] = useState(null);\r\n const [userComboState, setUserComboState] = useState(null);\r\n\r\n\r\n const [exportedSigaChkState, setExportedSigaChkState] = useState(false);\r\n\r\n const [dataState, setDataState] = useState([]);\r\n const [remoteDataState, setRemoteDataState] = useState([]);\r\n const [docsState, setDocsState] = useState([]);\r\n const [remoteDocsState, setRemoteDocsState] = useState([]);\r\n const [extraDocsState, setExtraDocsState] = useState([]);\r\n const [extraRemoteDocsState, setExtraRemoteDocsState] = useState([]);\r\n const [incidenceState, setIncidenceState] = useState(\"\");\r\n const [notifyToStringState, setNotifyToStringState] = useState(\"\");\r\n\r\n\r\n const [dataFormState, setDataFormState] = useState([]);\r\n const [remoteDataFormState, setRemoteDataFormState] = useState([]);\r\n\r\n\r\n const renderStateField = useCallback((data) => {\r\n return (\r\n
\r\n {\r\n if (data != undefined && data != null) {\r\n let listItem = e.component.element().querySelector(\".dx-texteditor-input\");\r\n listItem.style.color = data.state.foreColor;\r\n listItem.style.fontFamily = \"roboto-bold\";\r\n }\r\n }}\r\n />\r\n
\r\n );\r\n }, []);\r\n\r\n\r\n\r\n const loadRegistry = async () => {\r\n\r\n if (Number(idRegistry) > 0) {\r\n return fetch(`${process.env.PUBLIC_URL}/api/registries/GetRegistry?id=${idRegistry}`)\r\n .then(response => response.json())\r\n .then(result => {\r\n // You can process the response here\r\n console.log(result.response)\r\n if (result.response != null) {\r\n setRegistryState({ loading: false, result: result.response });\r\n setStateComboState(result.response.registry.stateId);\r\n setUserComboState(result.response.registry.assigned);\r\n setExportedSigaChkState(result.response.registry.exported);\r\n //setNameInputState(result.response.name);\r\n\r\n return true;\r\n } else {\r\n let currentUrl = history.location.pathname;\r\n let backlog = [];\r\n if (history.location.state != undefined && history.location.state.comesFrom != undefined && history.location.state.comesFrom != \"\") {\r\n backlog = history.location.state.comesFrom;\r\n }\r\n backlog.push(currentUrl);\r\n history.replace(`/registries/${idDealer}`, { comesFrom: backlog });\r\n return false;\r\n }\r\n })\r\n .catch((er) => {\r\n throw 'Network error'\r\n return false;\r\n });\r\n } else {\r\n let currentUrl = history.location.pathname;\r\n let backlog = [];\r\n if (history.location.state != undefined && history.location.state.comesFrom != undefined && history.location.state.comesFrom != \"\") {\r\n backlog = history.location.state.comesFrom;\r\n }\r\n backlog.push(currentUrl);\r\n history.replace(`/registries/${idDealer}`, { comesFrom: backlog });\r\n return false;\r\n }\r\n };\r\n\r\n const downloadRegistry = async () => {\r\n\r\n if (Number(idRegistry) > 0) {\r\n fetch(`${process.env.PUBLIC_URL}/api/registries/DownloadRegistry?id=${idRegistry}`)\r\n .then(response => response.json())\r\n .then(result => {\r\n // You can process the response here\r\n console.log(result.response)\r\n if (result.response != null) {\r\n downloadB64(result.response, registryState.result.registry.fullId, \".zip\");\r\n return true;\r\n } else {\r\n\r\n return false;\r\n }\r\n })\r\n .catch((er) => {\r\n throw 'Network error'\r\n return false;\r\n });\r\n }\r\n };\r\n const exportRegistrySIGA = async () => {\r\n\r\n if (Number(idRegistry) > 0) {\r\n fetch(`${process.env.PUBLIC_URL}/api/registries/ExportRegistrySIGA?id=${idRegistry}`)\r\n .then(response => response.json())\r\n .then(result => {\r\n // You can process the response here\r\n console.log(result.response)\r\n if (result.response != null) {\r\n downloadB64(result.response, registryState.result.registry.fullId, \".xml\");\r\n return true;\r\n } else {\r\n\r\n return false;\r\n }\r\n })\r\n .catch((er) => {\r\n throw 'Network error'\r\n return false;\r\n });\r\n }\r\n };\r\n\r\n\r\n\r\n const downloadB64 = (fileB64, fileName, extension) => {\r\n const linkSource = `data:application/zip;base64,${fileB64}`;\r\n const downloadLink = document.createElement(\"a\");\r\n const fname = fileName + extension;\r\n downloadLink.href = linkSource;\r\n downloadLink.download = fname;\r\n downloadLink.click();\r\n }\r\n\r\n const loadDealer = async () => {\r\n return fetch(`${process.env.PUBLIC_URL}/api/dealers/GetId?id=${idDealer}`)\r\n .then(response => response.json())\r\n .then(result => {\r\n // You can process the response here\r\n console.log(result.response)\r\n setDealerState({ loading: false, result: result.response });\r\n return result.response;\r\n })\r\n .catch((err) => {\r\n throw 'Network error'\r\n return false;\r\n });\r\n }\r\n const loadStates = async () => {\r\n return fetch(`${process.env.PUBLIC_URL}/api/procedures/GetStates?idProcedure=${idProcedure}`)\r\n .then(response => response.json())\r\n .then(result => {\r\n // You can process the response here\r\n console.log(result.response)\r\n setStateState({ loading: false, result: result.response })\r\n return true;\r\n })\r\n .catch((err) => {\r\n throw 'Network error'\r\n return false;\r\n });\r\n };\r\n const loadStates_depr = async () => {\r\n return fetch(`${process.env.PUBLIC_URL}/api/procedures/GetAllProcedureStates`)\r\n .then(response => response.json())\r\n .then(result => {\r\n // You can process the response here\r\n console.log(result.response)\r\n setStateState({ loading: false, result: result.response })\r\n return true;\r\n })\r\n .catch((err) => {\r\n throw 'Network error'\r\n return false;\r\n });\r\n };\r\n\r\n\r\n\r\n const loadUsers = async () => {\r\n return fetch(`${process.env.PUBLIC_URL}/api/users`)\r\n .then(response => response.json())\r\n .then(result => {\r\n // You can process the response here\r\n setUsersState({ loading: false, result: result.response });\r\n\r\n return result.response;\r\n })\r\n .catch((err) => {\r\n throw 'Network error'\r\n return false;\r\n });\r\n }\r\n\r\n const validateRegistry = async () => {\r\n let error = \"\";\r\n if (userComboState == null || userComboState <= 0) {\r\n error = \"No se ha asignado el trámite a un usuario.\";\r\n }\r\n if (stateComboState == null || stateComboState <= 1) {\r\n error = \"No se ha asignado un estado al trámite.\";\r\n }\r\n //if the state that is set is 4 (incidencia) incidenceState can't be empty.\r\n if (stateComboState == 4 && incidenceState.trim() == \"\") {\r\n error = \"Debe establecerse un texto de incidencia si el estado es 'Incidencia'.\";\r\n } else if (stateComboState == 6) {\r\n //if the state that is set is 6 (finalizado) we should check all mandatory local data and docs is available.\r\n let isAnyDocMissing = false;\r\n docsState.forEach((d) => {\r\n if (d[0].mandatory && (d[1] == null || d[1] == \"\")) {\r\n isAnyDocMissing = true;\r\n }\r\n });\r\n let isAnyDataMissing = false;\r\n dataState.forEach((d) => {\r\n if (d[0].mandatory) {\r\n const valorEnCampo = dataFormState.find(e => e[0] == String(d[0].id))[1];\r\n if (valorEnCampo == undefined || valorEnCampo.trim() == \"\") {\r\n isAnyDataMissing = true;\r\n }\r\n }\r\n });\r\n\r\n if (isAnyDocMissing || isAnyDataMissing) {\r\n error = \"No ha sido posible finalizar el trámite porque deben rellenarse todos los datos y documentos obligatorios a aportar por la gestoría (marcados con '*') para poder establecer el estado a 'Finalizado'. Revísalo de nuevo.\";\r\n }\r\n }\r\n return error;\r\n }\r\n const reload = () => {\r\n loadAll();\r\n }\r\n\r\n //const loadDatas = async () => {\r\n // fetch(`./api/registrys/GetData?idRegistry=${id}&remote=0`)\r\n // .then(response => response.json())\r\n // .then(result => {\r\n // // You can process the response here\r\n // console.log(result.response)\r\n // setDataState(result.response)\r\n // })\r\n // .catch(() => { throw 'Network error' });\r\n // fetch(`./api/registrys/GetData?idRegistry=${id}&remote=1`)\r\n // .then(response => response.json())\r\n // .then(result => {\r\n // // You can process the response here\r\n // console.log(result.response)\r\n // setRemoteDataState(result.response)\r\n // })\r\n // .catch(() => { throw 'Network error' });\r\n //};\r\n //const loadDocs = async () => {\r\n // fetch(`./api/registrys/GetDocs?idRegistry=${id}&remote=0`)\r\n // .then(response => response.json())\r\n // .then(result => {\r\n // // You can process the response here\r\n // console.log(result.response)\r\n // setDocsState(result.response)\r\n // })\r\n // .catch(() => { throw 'Network error' });\r\n // fetch(`./api/registrys/GetDocs?idRegistry=${id}&remote=1`)\r\n // .then(response => response.json())\r\n // .then(result => {\r\n // // You can process the response here\r\n // console.log(result.response)\r\n // setRemoteDocsState(result.response)\r\n // })\r\n // .catch(() => { throw 'Network error' });\r\n //};\r\n\r\n const loadAll = async () => {\r\n setLoadingState(true);\r\n Promise.all([loadRegistry(), loadUsers(), loadStates(), loadDealer()]).then(() => {\r\n setLoadingState(false);\r\n });\r\n }\r\n\r\n\r\n const saveEdit = async (exitAfterSuccess) => {\r\n validateRegistry().then((res) => {\r\n if (res != \"\") {\r\n console.log(res);\r\n\r\n showGenericDialog(stateComboState == 6 ? \"No ha sido posible finalizar el trámite\" : \"No guardado\", [\"No ha sido posible guardar el trámite porque se ha detectado el siguiente problema: \", <>
{res}], \"Ok\", null, () => { hideGenericDialog() }, () => { })\r\n } else {\r\n setLoadingState(true);\r\n let dataJson = JSON.stringify([...dataFormState, ...remoteDataFormState]);\r\n fetch(`${process.env.PUBLIC_URL}/api/registries/PutRegistry?idProcedure=${idProcedure}&idRegistry=${idRegistry}&state=${stateComboState}&user=${userComboState}&data=${encodeURIComponent(dataJson)}&incidence=${encodeURIComponent(incidenceState)}&exported=${exportedSigaChkState ? \"1\" : \"0\"}`,\r\n {\r\n method: 'PUT',\r\n body: '',\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n }\r\n })\r\n .then(response => response.json())\r\n .then(result => {\r\n // You can process the response here\r\n console.log(result.response)\r\n setLoadingState(false);\r\n if (result.response != null) {\r\n reload();\r\n if (exitAfterSuccess) {\r\n let currentUrl = history.location.pathname;\r\n let backlog = [];\r\n if (history.location.state != undefined && history.location.state.comesFrom != undefined && history.location.state.comesFrom != \"\") {\r\n backlog = history.location.state.comesFrom;\r\n }\r\n backlog.push(currentUrl);\r\n history.replace(`/registries/${idDealer}`, { comesFrom: backlog });\r\n } else {\r\n if (stateComboState == 6) {\r\n //If the state of the registry after saving is 'finalizado' we should not be able to continue editing it.\r\n setEditionState(false);\r\n }\r\n }\r\n }\r\n })\r\n .catch(() => {\r\n throw 'Network error'\r\n setLoadingState(false);\r\n });\r\n\r\n }\r\n })\r\n }\r\n\r\n\r\n const [genericDialogState, setGenericDialogState] = useState({\r\n title: \"\",\r\n body: \"\",\r\n okText: \"\",\r\n koText: \"\",\r\n okCallback: () => {\r\n\r\n },\r\n koCallback: () => {\r\n\r\n },\r\n position: { my: 'center', at: 'center', of: window },\r\n popupVisible: false,\r\n });\r\n const showGenericDialog = (title, body, okText, koText, okCallback, koCallback) => {\r\n setGenericDialogState({\r\n title: title,\r\n body: body,\r\n okText: okText,\r\n koText: koText,\r\n okCallback: okCallback,\r\n koCallback: koCallback,\r\n position: { my: 'center', at: 'center', of: window },\r\n popupVisible: true,\r\n });\r\n }\r\n const hideGenericDialog = () => {\r\n setGenericDialogState({\r\n title: \"\",\r\n body: \"\",\r\n okText: \"\",\r\n koText: \"\",\r\n okCallback: () => {\r\n\r\n },\r\n koCallback: () => {\r\n\r\n },\r\n position: { my: 'center', at: 'center', of: window },\r\n popupVisible: false,\r\n });\r\n }\r\n\r\n const renderStateItem = (data) => {\r\n return (\r\n
\r\n
{(data != undefined && data != null) ? data.state.name : \"\"}
\r\n
\r\n );\r\n }\r\n\r\n const stateDataSource = useMemo(() => {\r\n const retVal = stateState.loading || stateState.result == undefined || stateState.result == null || registryState.result == undefined || registryState.result == null ? [] : stateState.result.filter((e) => e.shown && e.state != null && e.state.id != null && e.state.id != 1).sort((a, b) => parseFloat(a.order) - parseFloat(b.order));\r\n\r\n return retVal;\r\n\r\n }, [stateState, registryState]);\r\n\r\n //const stateDataSource_DEPR = useMemo(() => {\r\n // const retVal = stateState.loading || stateState.result == undefined || stateState.result == null || registryState.result == undefined || registryState.result == null || registryState.result.registry == undefined || registryState.result.registry == null || stateState.result[String(registryState.result.registry.procedureId)] == undefined || stateState.result[String(registryState.result.registry.procedureId)] == null ? [] : stateState.result[String(registryState.result.registry.procedureId)].filter((e) => e.shown && e.state != null && e.state.id != null && e.state.id != 1).sort((a, b) => parseFloat(a.order) - parseFloat(b.order));\r\n\r\n // return retVal;\r\n\r\n //}, [stateState, registryState]);\r\n\r\n function handleErrors(response) {\r\n if (!response.ok) {\r\n throw Error(response.statusText);\r\n }\r\n return response;\r\n }\r\n useEffect(async () => {\r\n await fetch(`${process.env.PUBLIC_URL}/api/notifications/MarkAsSeen?idRegistry=${idRegistry}`)\r\n .then(handleErrors)\r\n .then(response => response.json())\r\n .then(result => {\r\n // You can process the response here\r\n //setNotificationsState(result.response);\r\n return result.response;\r\n })\r\n .catch(() => { throw 'Network error' });\r\n }, []);\r\n\r\n\r\n const prepareData = () => {\r\n if (!registryState.loading) {\r\n var remoteDataResult = [];\r\n var dataResult = [];\r\n var remoteDocsResult = [];\r\n var docsResult = [];\r\n var remoteExtraDocsResult = [];\r\n var extraDocsResult = [];\r\n for (const property in registryState.result.datas) {\r\n if (registryState.result.datas[property].item1.remote) {\r\n remoteDataResult.push([registryState.result.datas[property].item1, registryState.result.datas[property].item2]);\r\n } else {\r\n dataResult.push([registryState.result.datas[property].item1, registryState.result.datas[property].item2]);\r\n }\r\n }\r\n for (const property in registryState.result.docs) {\r\n if (registryState.result.docs[property].item1.remote) {\r\n remoteDocsResult.push([registryState.result.docs[property].item1, registryState.result.docs[property].item2]);\r\n } else {\r\n docsResult.push([registryState.result.docs[property].item1, registryState.result.docs[property].item2]);\r\n }\r\n }\r\n for (const property in registryState.result.extraDocs) {\r\n if (registryState.result.extraDocs[property].item1.remote) {\r\n remoteExtraDocsResult.push([registryState.result.extraDocs[property].item1, registryState.result.extraDocs[property].item2]);\r\n } else {\r\n extraDocsResult.push([registryState.result.extraDocs[property].item1, registryState.result.extraDocs[property].item2]);\r\n }\r\n }\r\n setRemoteDataState(remoteDataResult);\r\n setDataState(dataResult);\r\n setRemoteDocsState(remoteDocsResult);\r\n setDocsState(docsResult);\r\n setExtraRemoteDocsState(remoteExtraDocsResult);\r\n setExtraDocsState(extraDocsResult);\r\n var remoteDataForm = remoteDataResult.map((e) => {\r\n return [String(e[0].id), e[1]];\r\n });\r\n setRemoteDataFormState(remoteDataForm);\r\n var dataForm = dataResult.map((e) => {\r\n return [String(e[0].id), e[1]];\r\n });\r\n setIncidenceState(registryState.result.registry.incidence);\r\n let deserializedNotifyTo = JSON.parse(registryState.result.registry.notifyTo);\r\n let stringNotifyTo = deserializedNotifyTo.filter((each) => {\r\n return each.Type == \"email\";\r\n }).map((each) => {\r\n return each.Target;\r\n }).join(\"; \");\r\n setNotifyToStringState(stringNotifyTo)\r\n setDataFormState(dataForm);\r\n } else {\r\n setRemoteDataState([]);\r\n setDataState([]);\r\n setDocsState([]);\r\n setRemoteDocsState([]);\r\n setExtraDocsState([]);\r\n setExtraRemoteDocsState([]);\r\n setIncidenceState(\"\");\r\n setNotifyToStringState(\"\");\r\n\r\n setDataFormState([]);\r\n setRemoteDataFormState([]);\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n prepareData();\r\n }, [registryState]);\r\n\r\n useEffect(loadAll, [idRegistry, idDealer, idProcedure]);\r\n\r\n const [cmbFixState, setCmbFixState] = useState(false);\r\n\r\n return (\r\n
\r\n
\r\n\r\n
\r\n \r\n Ir atrás\r\n \r\n
\r\n
\r\n {!dealerState.loading ? dealerState.result.name : \"\"}\r\n {!dealerState.loading ? dealerState.result.clienteDF : \"\"}\r\n
\r\n
\r\n\r\n
\r\n

{registryState.loading ? \"Cargando...\" : `${String(registryState.result.registry.gestoria).padStart(3, \"0\")}${String(registryState.result.registry.procedureId).padStart(4, \"0\")}${String(registryState.result.registry.id).padStart(6, \"0\")}`}

\r\n Asignado: \r\n {\r\n setUserComboState(event.component.option(\"value\"))\r\n }}\r\n dataSource={usersState.loading ? [] : usersState.result}\r\n valueExpr=\"id\"\r\n displayExpr=\"name\"\r\n disabled={!editionState || Number(sessionContext.user.userType) <= 0}\r\n />\r\n Estado: \r\n {/*fieldRender={renderStateField}*/}\r\n {\r\n setStateComboState(event.component.option(\"value\"))\r\n }}\r\n value={stateComboState}\r\n dataSource={stateDataSource}\r\n valueExpr=\"state.id\"\r\n displayExpr=\"state.name\"\r\n //fieldRender={renderStateField}\r\n itemRender={renderStateItem}\r\n disabled={!editionState}\r\n onContentReady={(e) => {\r\n //e.component.open();\r\n //e.component.close();\r\n }}\r\n onClosed={(e) => {\r\n if (!cmbFixState) {\r\n setCmbFixState(true);\r\n e.component.open();\r\n }\r\n }}\r\n onOpened={(e) => {\r\n if (!cmbFixState) {\r\n e.component.close();\r\n }\r\n let listItems = e.component.content().querySelectorAll(\".dx-list-item-content\");\r\n listItems.forEach(function (listItem) {\r\n listItem.style.padding = '0px';\r\n });\r\n }}\r\n />\r\n
\r\n
\r\n Tipo: {registryState.loading || registryState.result == undefined || registryState.result == null || registryState.result.registry == undefined || registryState.result.registry == null ? \"Cargando...\" : registryState.result.registry.procedureName}\r\n F. Alta: {registryState.loading || registryState.result == undefined || registryState.result == null || registryState.result.registry == undefined || registryState.result.registry == null ? \"Cargando...\" : registryState.result.registry.createDate}\r\n F. Mod.: {registryState.loading || registryState.result == undefined || registryState.result == null || registryState.result.registry == undefined || registryState.result.registry == null ? \"Cargando...\" : registryState.result.registry.changeDate}\r\n F. Cierre: {registryState.loading || registryState.result == undefined || registryState.result == null || registryState.result.registry == undefined || registryState.result.registry == null || registryState.result.registry.closeDate == \"\" ? \"-\" : registryState.result.registry.closeDate}\r\n Exportado a SIGA: \r\n {registryState.loading || registryState.result == undefined || registryState.result == null || registryState.result.registry == undefined || registryState.result.registry == null ? : { setExportedSigaChkState(e.value) }} />}\r\n
\r\n {editionState\r\n ?\r\n
\r\n
{errorState}
\r\n
\r\n\r\n
\r\n :\r\n (!registryState.loading && registryState.result != undefined && registryState.result.registry != undefined && (Number(sessionContext.user.id) == Number(registryState.result.registry.assigned) || Number(sessionContext.user.userType) > 0)\r\n ?\r\n
\r\n
\r\n :\r\n
\r\n )\r\n }\r\n
\r\n
\r\n
\r\n

Datos

\r\n
\r\n
\r\n

Datos proporcionados por el concesionario

\r\n {\r\n registryState.loading\r\n ?\r\n \"Cargando...\"\r\n : (\r\n <>\r\n
\r\n \r\n \r\n
\r\n {(remoteDataState || []).map((d) => {\r\n return (\r\n
\r\n \r\n e[0] == String(d[0].id))[1]}\r\n valueChangeEvent=\"keyup\"\r\n onValueChanged={event => {\r\n setRemoteDataFormState(remoteDataFormState.map((e) => {\r\n if (e[0] != String(d[0].id)) {\r\n return e;\r\n } else {\r\n return [String(d[0].id), event.component.option(\"value\")];\r\n }\r\n })\r\n );\r\n }}\r\n />\r\n
\r\n )\r\n })}\r\n \r\n )\r\n }\r\n
\r\n
\r\n

Datos a cumplimentar por la gestoría

\r\n {\r\n registryState.loading\r\n ?\r\n \"Cargando...\"\r\n : (\r\n <>\r\n
\r\n \r\n {\r\n setIncidenceState(event.component.option(\"value\"));\r\n }}\r\n />\r\n
\r\n {(dataState || []).map((d) => {\r\n return (\r\n
\r\n \r\n e[0] == String(d[0].id))[1]}\r\n valueChangeEvent=\"keyup\"\r\n onValueChanged={event => {\r\n setDataFormState(dataFormState.map((e) => {\r\n if (e[0] != String(d[0].id)) {\r\n return e;\r\n } else {\r\n return [String(d[0].id), event.component.option(\"value\")];\r\n }\r\n })\r\n );\r\n }}\r\n />\r\n
\r\n )\r\n })}\r\n \r\n )\r\n }\r\n
\r\n
\r\n
\r\n
\r\n

Documentos a aportar por el concesionario

\r\n\r\n \r\n {/**/}\r\n\r\n {/**/}\r\n
\r\n
\r\n

Documentos a aportar por la gestoría

\r\n \r\n\r\n
\r\n
\r\n

Eventos ocurridos sobre el trámite

\r\n \r\n\r\n
\r\n
\r\n\r\n {\r\n e.component.repaint();\r\n }}\r\n visible={genericDialogState.popupVisible}\r\n onHiding={hideGenericDialog}\r\n dragEnabled={false}\r\n closeOnOutsideClick={false}\r\n showCloseButton={false}\r\n showTitle={true}\r\n title={genericDialogState.title}\r\n container=\".dx-viewport\"\r\n height=\"auto\"\r\n width=\"auto\"\r\n >\r\n \r\n {genericDialogState.koText != null ?\r\n \r\n :\r\n null\r\n }\r\n {genericDialogState.okText != null ?\r\n \r\n :\r\n null\r\n }\r\n

\r\n {genericDialogState.body}\r\n

\r\n \r\n \r\n
\r\n )\r\n}\r\n","import { DateBox, SelectBox, TextBox } from 'devextreme-react';\r\nimport React from 'react'\r\n\r\nimport \"./HistorySearch.css\";\r\n\r\nexport const HistorySearch = ({ searchState, setSearchState, userDataSource }) => {\r\n\r\n const disableStartDates = (args) => {\r\n return args.date > searchState.endDate\r\n }\r\n const disableEndDates = (args) => {\r\n return (args.date > new Date(new Date().setDate(new Date().getDate() +1)) || args.date < searchState.startDate);\r\n }\r\n return (\r\n
\r\n
\r\n {/*

Filtros

*/}\r\n

Filtros

\r\n
\r\n
\r\n \r\n {\r\n setSearchState((prevState => ({\r\n ...prevState,\r\n startDate: e.value\r\n })))\r\n }}\r\n displayFormat=\"dd/MM/yyyy\"\r\n disabledDates={disableStartDates} />\r\n \r\n {\r\n setSearchState((prevState => ({\r\n ...prevState,\r\n endDate: e.value\r\n })))\r\n }}\r\n disabledDates={disableEndDates} />\r\n \r\n {\r\n setSearchState((prevState => ({\r\n ...prevState,\r\n user: event.component.option(\"value\")\r\n })))\r\n }}\r\n value={searchState.user} />\r\n \r\n {\r\n setSearchState((prevState => ({\r\n ...prevState,\r\n event: event.component.option(\"value\")\r\n })))\r\n }}\r\n value={searchState.event} />\r\n \r\n {\r\n setSearchState((prevState => ({\r\n ...prevState,\r\n tramite: event.component.option(\"value\")\r\n })))\r\n }}\r\n value={searchState.tramite} />\r\n
\r\n
\r\n )\r\n}\r\n","import { Button, DataGrid } from 'devextreme-react'\r\nimport { Column, Editing, Export, Item, Pager, Paging, Scrolling, SearchPanel, Selection, Toolbar, LoadPanel as DGLoadPanel } from 'devextreme-react/data-grid';\r\nimport CustomStore from 'devextreme/data/custom_store';\r\nimport { Workbook } from 'exceljs';\r\nimport { saveAs } from 'file-saver';\r\nimport React, { useEffect, useState } from 'react'\r\nimport useWindowSize from '../../hooks/useWindowSizze';\r\nimport { exportDataGrid } from 'devextreme/excel_exporter';\r\nimport parse from 'date-fns/parse'\r\nimport imgSpinner from '../../img/spinner.gif';\r\n\r\nimport \"./HistoryGrid.css\";\r\n\r\nexport const HistoryGrid = ({ searchState }) => {\r\n\r\n //{ \"id\", \"Id\" },\r\n //{ \"event\", \"Event\" },\r\n //{ \"date\", \"Date\" },\r\n //{ \"gestoria\", \"GestoriaId\" },\r\n //{ \"user\", \"UserId\" },\r\n //{ \"state\", \"StateId\" },\r\n //{ \"procedure\", \"ProcedureId\" },\r\n //{ \"registry\", \"RegistryId\" },\r\n //{ \"doc\", \"DocId\" },\r\n //{ \"extra_doc\", \"ExtraDoc\" },\r\n //{ \"description\", \"Description\" }\r\n\r\n const [usersState, setUsersState] = useState({ loading: true, results: [] });\r\n const [procedureState, setProcedureState] = useState({ loading: true, results: [] });\r\n\r\n\r\n const windowSize = useWindowSize();\r\n\r\n const [gridPaginationState, setGridPaginationState] = useState({});\r\n\r\n const [filterState, setFilterState] = useState(null);\r\n\r\n const loadProcedures = async () => {\r\n fetch(`${process.env.PUBLIC_URL}/api/procedures/Get`)\r\n .then(handleErrors)\r\n .then(response => response.json())\r\n .then(result => {\r\n // You can process the response here\r\n setProcedureState({ loading: false, results: result.response });\r\n return result.response;\r\n })\r\n .catch(() => { throw 'Network error' });\r\n }\r\n const loadUsers = async () => {\r\n fetch(`${process.env.PUBLIC_URL}/api/users`)\r\n .then(handleErrors)\r\n .then(response => response.json())\r\n .then(result => {\r\n // You can process the response here\r\n setUsersState({ loading: false, results: result.response });\r\n if (searchState.user != null && searchState.user > 0) {\r\n return result.response.filter((e) => e.userId == searchState.user);\r\n } else {\r\n return result.response;\r\n }\r\n })\r\n .catch(() => { throw 'Network error' });\r\n }\r\n const loadAll = async () => {\r\n Promise.all([loadProcedures(), loadUsers()]).then(() => {\r\n //setLoadingState(false);\r\n });\r\n }\r\n const resizeGridPagination = () => {\r\n try {\r\n var expGridShowRowCount = Math.floor(((windowSize.height - (156 + 50) - (54 * 2) - 30) / 55));\r\n setGridPaginationState({\r\n pageSize: expGridShowRowCount,\r\n infoText: \"Mostrando {2} entradas\"\r\n });\r\n } catch (ee) {\r\n\r\n }\r\n }\r\n const eventId2Human = (eId) => {\r\n //LogIn,\r\n // LogOut,\r\n // AssignRegistry,\r\n // ChangeRegistryState,\r\n // ViewRegistry,\r\n // ViewFile,\r\n // ExportSiga,\r\n // DownloadRegistry\r\n if (eId == 0) {\r\n return \"Inicia sesión\"\r\n } else if (eId == 1) {\r\n return \"Cierra sesión\"\r\n } else if (eId == 2) {\r\n return \"Asigna trámite\"\r\n } else if (eId == 3) {\r\n return \"Cambia estado de trámite\"\r\n }else if (eId == 4) {\r\n return \"Abre trámite\"\r\n } else if (eId == 5) {\r\n return \"Abre archivo\"\r\n } else if (eId == 6) {\r\n return \"Exporta a SIGA\"\r\n } else if (eId == 7) {\r\n return \"Descarga trámite\"\r\n }\r\n }\r\n\r\n\r\n useEffect(loadAll, []);\r\n useEffect(resizeGridPagination, [windowSize]);\r\n\r\n function handleErrors(response) {\r\n if (!response.ok) {\r\n throw Error(response.statusText);\r\n }\r\n return response;\r\n }\r\n const historyDataSource = new CustomStore({\r\n key: 'uId',\r\n loadMode: 'raw',\r\n filter: filterState,\r\n load: () => {\r\n return fetch(`${process.env.PUBLIC_URL}/api/history?fromDate=${String(searchState.startDate.getDate()).padStart(2, '0')}-${String(searchState.startDate.getMonth() + 1).padStart(2, '0')}-${searchState.startDate.getFullYear()}&toDate=${String(searchState.endDate.getDate()).padStart(2, '0')}-${String(searchState.endDate.getMonth() + 1).padStart(2, '0')}-${searchState.endDate.getFullYear()}`)\r\n .then(handleErrors)\r\n .then(response => response.json())\r\n .then(result => {\r\n // You can process the response here\r\n var res = result.response;\r\n if (searchState.user != null && searchState.user > 0) {\r\n res = res.filter((e) => e.userId == searchState.user);\r\n }\r\n if (searchState.event != null && searchState.event > -1) {\r\n res = res.filter((e) => e.event == searchState.event);\r\n }\r\n if (searchState.tramite != null && searchState.tramite != \"\") {\r\n res = res.filter((e) => {\r\n return e.procedureId > 0 && (`${String(e.gestoriaId).padStart(3, \"0\")}${String(e.procedureId).padStart(4, \"0\")}${String(e.registryId).padStart(6, \"0\")}`.endsWith(searchState.tramite) || `${String(e.gestoriaId).padStart(3, \"0\")}${String(e.procedureId).padStart(4, \"0\")}${String(e.registryId).padStart(6, \"0\")}`.startsWith(searchState.tramite))\r\n });\r\n }\r\n return res;\r\n })\r\n .catch(() => { throw 'Network error' });\r\n }\r\n });\r\n\r\n const onExporting = (e) => {\r\n const workbook = new Workbook();\r\n const worksheet = workbook.addWorksheet('Trámites');\r\n exportDataGrid({\r\n //component: dGrid.getInstance(document.querySelector(\".dx-datagrid\")),\r\n component: e.component,\r\n worksheet: worksheet,\r\n selectedRowsOnly: true,\r\n customizeCell: function (options) {\r\n const excelCell = options;\r\n excelCell.font = { name: 'Arial', size: 12 };\r\n excelCell.alignment = { horizontal: 'left' };\r\n }\r\n }).then(function () {\r\n workbook.xlsx.writeBuffer()\r\n .then(function (buffer) {\r\n saveAs(new Blob([buffer], { type: 'application/octet-stream' }), 'Auditoria.xlsx');\r\n });\r\n });\r\n e.cancel = true;\r\n }\r\n\r\n\r\n const [exportButtonState, setExportButtonState] = useState(false);\r\n const onRowSelectionChanged = (e) => {\r\n e.component.getSelectedRowsData().then((selectedData) => {\r\n if (selectedData.length == 0) {\r\n setExportButtonState(false);\r\n } else {\r\n setExportButtonState(true);\r\n }\r\n });\r\n\r\n }\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/**/}\r\n \r\n \r\n {/**/}\r\n \r\n \r\n {\r\n return (usersState.results.find((e) => e.id == rowData.userId) || { name: \"Sin determinar\" }).name;\r\n }}\r\n />\r\n {\r\n let datePart = rowData.date.split(\" \")[0];\r\n let timePart = rowData.date.split(\" \")[1];\r\n let formated = datePart.split(\"/\")[0].padStart(2, \"0\") + \"/\" + datePart.split(\"/\")[1].padStart(2, \"0\") + \"/\" + datePart.split(\"/\")[2].padStart(4, \"0\") + \" \" + timePart.split(\":\")[0].padStart(2, \"0\") + \":\" + timePart.split(\":\")[1].padStart(2, \"0\") + \":\" + timePart.split(\":\")[2].padStart(2, \"0\");\r\n return parse(formated, \"dd/MM/yyyy HH:mm:ss\", new Date());\r\n }}\r\n />\r\n {\r\n let datePart = rowData.date.split(\" \")[0];\r\n let timePart = rowData.date.split(\" \")[1];\r\n return datePart.split(\"/\")[0].padStart(2, \"0\") + \"/\" + datePart.split(\"/\")[1].padStart(2, \"0\") + \"/\" + datePart.split(\"/\")[2].padStart(4, \"0\") + \" \" + timePart.split(\":\")[0].padStart(2, \"0\") + \":\" + timePart.split(\":\")[1].padStart(2, \"0\") + \":\" + timePart.split(\":\")[2].padStart(2, \"0\");\r\n }}\r\n />\r\n {\r\n return eventId2Human(rowData.event);\r\n }}\r\n />\r\n \r\n {\r\n return (procedureState.results.find((e) => e.id == rowData.procedureId) || { name: \"Sin determinar\" }).name;\r\n }}\r\n />\r\n {\r\n if (rowData.procedureId > 0) {\r\n return `${String(rowData.gestoriaId).padStart(3, \"0\")}${String(rowData.procedureId).padStart(4, \"0\")}${String(rowData.registryId).padStart(6, \"0\") }`\r\n } else {\r\n return \"Sin determinar\";\r\n }\r\n }}\r\n />\r\n \r\n
\r\n )\r\n}\r\n","import React, { useState } from 'react'\r\n\r\nimport imgGoBack from '../../img/go_back.png';\r\nimport { Link, useHistory } from 'react-router-dom';\r\nimport \"./History.css\";\r\nimport { HistorySearch } from './HistorySearch';\r\nimport { HistoryGrid } from './HistoryGrid';\r\nimport CustomStore from 'devextreme/data/custom_store';\r\nimport { BackButton } from '../common/BackButton';\r\nexport const History = () => {\r\n\r\n\r\n const [searchState, setSearchState] = useState({\r\n startDate: new Date(new Date().setDate(new Date().getDate() - 7)),\r\n endDate: new Date(new Date().setDate(new Date().getDate() + 1)),\r\n user: null,\r\n event: null,\r\n tramite: \"\",\r\n });\r\n function handleErrors(response) {\r\n if (!response.ok) {\r\n throw Error(response.statusText);\r\n }\r\n return response;\r\n }\r\n const userDataSource = new CustomStore({\r\n key: 'id',\r\n loadMode: 'raw',\r\n load: () => {\r\n return fetch(`${process.env.PUBLIC_URL}/api/users`)\r\n .then(handleErrors)\r\n .then(response => response.json())\r\n .then(result => {\r\n // You can process the response here\r\n return result.response;\r\n })\r\n .catch(() => { throw 'Network error' });\r\n }\r\n });\r\n\r\n let history = useHistory();\r\n\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n {/*

Auditoría 

*/}\r\n
\r\n
\r\n
\r\n

Auditoría 

\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n )\r\n}\r\n","import React, { useEffect, useState } from 'react';\r\nimport { Switch } from 'react-router';\r\nimport { Layout } from './components/Layout';\r\nimport { Login } from './components/login/Login';\r\nimport { SessionContext } from './components/context/SessionContext';\r\nimport { PrivateRoute } from './components/routes/PrivateRoute';\r\nimport { PublicRoute } from './components/routes/PublicRoute';\r\nimport { PasswordRecovery } from './components/login/PasswordRecovery';\r\n\r\nimport './custom.css'\r\nimport { ConditionalPrivateRoute } from './components/routes/ConditionalPrivateRoute';\r\nimport { Users } from './components/users/Users';\r\nimport { States } from './components/states/States';\r\nimport { Procedures } from './components/procedures/Procedures';\r\nimport { Procedure } from './components/procedures/Procedure';\r\nimport { Dealers } from './components/dealers/Dealers';\r\nimport { Registries } from './components/registries/Registries';\r\nimport { Registry } from './components/registries/Registry';\r\nimport { History } from './components/history/History';\r\n\r\n\r\nconst App = () => {\r\n const [session, setSession] = useState({});\r\n const [loadingSession, setLoadingSession] = useState(true);\r\n\r\n //First session load\r\n useEffect(() => {\r\n const doWork = async () => {\r\n const response = await fetch(`${process.env.PUBLIC_URL}/api/session`);\r\n const data = await response.json();\r\n if (data.response !== null) {\r\n if (session != undefined && session != null && session.shownInitialAlert != undefined) {\r\n data.response.shownInitialAlert = session.shownInitialAlert;\r\n }\r\n setSession(data.response);\r\n }\r\n setLoadingSession(false);\r\n }\r\n doWork();\r\n }, []);\r\n //Periodically check session\r\n useEffect(() => {\r\n const interval = setInterval(async () => {\r\n //if (session !== undefined && session !== null && session.isActive !== undefined) {\r\n const response = await fetch(`${process.env.PUBLIC_URL}/api/session`);\r\n const data = await response.json();\r\n if (data.response==null || (data.response !== undefined && data.response !== null && data.response.isActive !== undefined && data.response.isActive !== null && !data.response.isActive)) {\r\n setSession({ gestoria: null, user: null, isActive: false, shownInitialAlert: false });\r\n }\r\n\r\n // if (data.response !== null) {\r\n // setSession(data.response);\r\n // } else {\r\n // setSession({ gestoria: null, user:null, isActive: false});\r\n // }\r\n //}\r\n }, 20000);\r\n return () => clearInterval(interval);\r\n }, []);\r\n\r\n let sessionActive = false;\r\n if (session !== undefined && session !== null && session.isActive !== undefined) sessionActive = session.isActive;\r\n let isAdmin = false;\r\n let hasPerms = false;\r\n if (sessionActive && session.user.userType === 2) isAdmin = true;\r\n if (sessionActive && session.user.userType >= 1) hasPerms = true;\r\n return (\r\n
\r\n {(loadingSession ?\r\n
\r\n :\r\n \r\n {/**/}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/*

Hola amigo!

*/}\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n {/**/}\r\n {/**/}\r\n {/*Hola amigo!

} />*/}\r\n {/**/}\r\n {/**/}\r\n {/* */}\r\n {/*

Estado!

*/}\r\n {/*
*/}\r\n {/* */}\r\n {/*

Hola amigo!

*/}\r\n {/*
*/}\r\n {/*
*/}\r\n {/*

Hola amigo!

*/}\r\n {/*
*/}\r\n {/*
*/}\r\n {/**/}\r\n {/**/}\r\n {/**/}\r\n
\r\n {/*
*/}\r\n
\r\n )}\r\n
\r\n )\r\n}\r\nexport default App;\r\n\r\n","const reportWebVitals = (onPerfEntry) => {\r\n if (onPerfEntry && onPerfEntry instanceof Function) {\r\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\r\n getCLS(onPerfEntry);\r\n getFID(onPerfEntry);\r\n getFCP(onPerfEntry);\r\n getLCP(onPerfEntry);\r\n getTTFB(onPerfEntry);\r\n });\r\n }\r\n};\r\n\r\nexport default reportWebVitals;\r\n","//import 'bootstrap/dist/css/bootstrap.css';\r\nimport React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { BrowserRouter } from 'react-router-dom';\r\nimport App from './App';\r\n//import * as serviceWorkerRegistration from './serviceWorkerRegistration';\r\nimport reportWebVitals from './reportWebVitals';\r\n\r\n\r\nimport 'devextreme/dist/css/dx.light.css';\r\nimport \"./dx.generic.df-expedientes.css\";\r\nimport \"./index.css\";\r\n\r\n\r\nconst baseUrl = document.getElementsByTagName('base')[0].getAttribute('href');\r\nconst rootElement = document.getElementById('root');\r\n\r\nReactDOM.render(\r\n \r\n \r\n ,\r\n rootElement);\r\n\r\n// If you want your app to work offline and load faster, you can change\r\n// unregister() to register() below. Note this comes with some pitfalls.\r\n// Learn more about service workers: https://cra.link/PWA\r\n//serviceWorkerRegistration.unregister();\r\n\r\n// If you want to start measuring performance in your app, pass a function\r\n// to log results (for example: reportWebVitals(console.log))\r\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\r\nreportWebVitals();\r\n"],"sourceRoot":""}