{"version":3,"sources":["../node_modules/pdfjs-dist/build sync","images/logos/ROMERELLI.png","images/image-asset.jpeg","images/icons/arrowDropDown.svg","images/icons/keyboardArrowRight.svg","images/hojaverde.png","images/icons/document.svg","theme/Romerelli/palette.js","theme/Romerelli/typography.js","theme/overrides.js","theme/index.js","theme/props.js","theme/shadows.js","theme/mixins.js","components/AuthPanel/AuthPanel.tsx","components/Form/TextField/TextField.tsx","components/Form/FormErrorText/FormErrorText.tsx","components/Form/FormTextField/FormTextField.tsx","pages/Auth/Login/LoginForm.tsx","gateway.tsx","api/authenticate.tsx","api/authentication.ts","api/portal.tsx","api/cuenta.ts","store/notifications/notificationsActions.tsx","store/user/company/companyActions.ts","store/user/authentication/authenticationActions.ts","components/Logo/Logo.tsx","routes/routes.ts","store/global/globalActions.tsx","utils/utils.ts","api/pesaje.tsx","api/documento.tsx","utils/utilsDescarga.ts","store/pesaje/pesajeActions.tsx","pages/Auth/Login/Login.tsx","components/ButtonGroup/ButtonGroup.jsx","pages/Auth/Register/RegistrationForm.jsx","pages/Auth/Register/Register.tsx","components/layout/Auth/AuthLayout.jsx","components/Paper.js","components/Alert/Alert.tsx","components/Typography/Bold.tsx","pages/Auth/ConfirmEmail/ConfirmEmailForm.tsx","pages/Auth/ConfirmEmail/ConfirmEmail.tsx","components/TextScroller/TextScroller.tsx","components/Form/Checkbox/Checkbox.js","components/Form/FormCheckbox/FormCheckbox.jsx","pages/Auth/TermsAndConditions/TermsAndConditionsForm.tsx","pages/Auth/TermsAndConditions/TermsAndConditions.tsx","components/FormStep/FormStep.tsx","pages/Auth/ElectronicCertificate/DigitalCertificateForm.tsx","pages/Auth/ElectronicCertificate/SiiCompanyAccountForm.tsx","pages/Auth/ElectronicCertificate/ElectronicCertificate.tsx","components/icons/SuccessCircleIcon.tsx","pages/Auth/RegistrationComplete/RegistrationComplete.tsx","pages/Auth/RecoverPassword/ForgotPasswordForm.tsx","pages/Auth/RecoverPassword/ForgotPassword.tsx","pages/Auth/RecoverPassword/ResetPasswordForm.tsx","pages/Auth/RecoverPassword/ResetPassword.tsx","pages/Auth/RecoverPassword/ResetPasswordSuccess.tsx","pages/Auth/Logout/Logout.tsx","routes/AuthRoutes.tsx","components/layout/Authenticated/Sidebar/styles.ts","components/layout/Authenticated/Sidebar/SidebarMenuBase.tsx","components/layout/Authenticated/Sidebar/Menus/NavbarMenu/MenuRoutes.tsx","components/layout/Authenticated/Sidebar/Menus/NavbarMenu/SubMenuContainer.tsx","components/icons/ArrowDropDown.js","components/icons/KeyboardArrowRight.js","store/documento/documentoActions.tsx","components/layout/Authenticated/Sidebar/Menus/NavbarMenu/MenuRightFloting.tsx","components/Logo/LogoChico.tsx","components/layout/Authenticated/Sidebar/Menus/NavbarMenu/SidebarHeaderMenu.tsx","components/layout/Authenticated/Sidebar/Sidebar.tsx","components/NotificationArea/Notification.tsx","components/NotificationArea/NotificationArea.tsx","components/layout/Authenticated/Layout.js","components/layout/PaddingContainer.js","components/Typography/Currency.tsx","components/Typography/Number.tsx","pages/Dashboard/LineItems.tsx","components/Table/DisabledTableRow.tsx","components/Table/TableRowLoading.tsx","components/Table/Table/styles.ts","components/Table/MobileTableRowHoverContent.tsx","components/Table/Table/TableRowStatusIndicator.tsx","components/Table/Table/MobileTableRow.tsx","components/Table/Table/MobileTable.tsx","components/Table/Table/Table.tsx","pages/Dashboard/LastMovementsMade.tsx","pages/Dashboard/ResumenHuellaCarbono.tsx","pages/Dashboard/Dashboard.tsx","pages/PageHeader.tsx","pages/Account/EditData/EditDataForm.tsx","pages/Account/EditData/EditData.tsx","components/Form/Radio/Radio.js","components/Switch/Switch.tsx","store/user/authentication/authenticationReducer.ts","store/user/company/companyReducer.ts","store/account/actions/accountSynchronizeTaxFolderActions.ts","store/account/accountReducer.ts","store/notifications/notificationsReducer.ts","store/global/globalReducer.ts","store/pesaje/pesajeReducer.ts","store/documento/documentoReducer.ts","store/rootReducer.ts","components/Typography/DangerText.tsx","components/Button/DangerButton/DangerButton.tsx","pages/BankAccounts/DeleteBankAccountDialog.tsx","components/Dialog/DialogTitle.tsx","components/Form/Select/Select.tsx","components/Form/FormSelect/FormSelect.tsx","pages/BankAccounts/AddBankAccountForm.tsx","pages/BankAccounts/AddBankAccountModal.tsx","pages/BankAccounts/BankAcounts.tsx","components/Table/TableActions.tsx","pages/Pesajes/PesajeTable/FolioFilterIndicator.tsx","pages/Pesajes/PesajeTable/ProductoFilterIndicator.tsx","theme/modalStyle.tsx","pages/Pesajes/PesajeTable/ProductoFilterModal.tsx","pages/Pesajes/PesajeTable/IngresoFilterModal.tsx","pages/Pesajes/PesajeTable/IngresoFilterIndicator.tsx","pages/Pesajes/PesajeTable/EstadoFilterModal.tsx","pages/Pesajes/PesajeTable/EstadoFilterIndicator.tsx","components/icons/DocumentIcon.js","pages/Pesajes/PesajeTable/IngresoRutCertificadoModal.tsx","pages/Pesajes/PesajeTable/DetallePesajeDialog.tsx","pages/Pesajes/SelectorListado.tsx","pages/Pesajes/PesajeTable/PesajeTable.tsx","pages/Pesajes/PesajeList.tsx","pages/Pesajes/DocumentoTable/FolioFilterIndicator.tsx","pages/Pesajes/DocumentoTable/IngresoFilterModal.tsx","pages/Pesajes/DocumentoTable/IngresoFilterIndicator.tsx","pages/Pesajes/DocumentoTable/EstadoFilterModal.tsx","pages/Pesajes/DocumentoTable/EstadoFilterIndicator.tsx","pages/Pesajes/DocumentoTable/FolioFilterModal.tsx","pages/Pesajes/DocumentoTable/DetalleDocumentoDialog.tsx","pages/Pesajes/DocumentoTable/DocumentoTable.tsx","pages/Pesajes/DocumentoList.tsx","pages/Pesajes/DocumentoPesaje/DocumentoPesaje.tsx","routes/AppRoutes.tsx","routes/ScrollToTop.tsx","routes/AllRoutes.tsx","App.jsx","serviceWorker.js","index.js"],"names":["webpackEmptyContext","req","e","Error","code","keys","resolve","module","exports","id","primary","main","dark","light","secondary","contrastText","error","text","important","background","default","authLayout","buttonContainedBackgroundColor","buttonContainedColor","fontFamily","h1","fontWeight","fontSize","lineHeight","h2","color","palette","h3","h4","h5","h6","body1","body2","require","breakpoints","createBreakpoints","MuiAppBar","colorDefault","backgroundColor","MuiSvgIcon","fontSizeLarge","MuiIconButton","root","MuiButton","textTransform","boxSizing","padding","borderRadius","width","up","sizeSmall","minWidth","sizeLarge","contained","boxShadow","containedPrimary","join","containedSecondary","outlined","borderWidth","outlinedPrimary","border","MuiCard","MuiFormControl","maxWidth","fullWidth","MuiFormLabel","MuiInputLabel","shrink","transform","MuiInput","formControl","marginTop","content","input","MuiTableRow","MuiTableCell","height","head","body","MuiTablePagination","caption","MuiPaper","rounded","overflow","elevation0","elevation2","MuiDialog","paperWidthSm","margin","down","values","sm","paperWidthXs","Math","max","xs","MuiDialogContent","paddingLeft","paddingRight","paddingBottom","MuiDialogActions","justifyContent","MuiFormControlLabel","label","MuiCheckbox","colorSecondary","MuiSwitch","switchBase","opacity","thumb","track","MuiPickersToolbarButton","toolbarBtn","MuiTabs","flexContainer","borderBottom","indicator","MuiTab","textColorPrimary","MuiLinearProgress","bar","MuiLink","MuiExpansionPanel","MuiExpansionPanelSummary","createMuiTheme","props","variant","scroll","typography","shadows","overrides","mixins","toolbar","minHeight","spacing","withStyles","theme","container","flexWrap","paper","area","flexShrink","titleArea","narrowTitleTitleArea","flexBasis","narrowTitleFormArea","flexGrow","title","position","display","marginBottom","bottom","left","mobileTitle","classes","children","narrowTitle","titleAreaClasses","formAreaClasses","push","Grid","direction","Hidden","mdUp","Box","textAlign","className","elevation","style","item","md","TextField","getClearButton","InputAdornment","IconButton","onClick","onClear","this","withclear","large","inputProps","disableUnderline","endAdornment","value","onChange","InputProps","InputLabelProps","autoComplete","React","FormErrorText","FormHelperText","connect","formik","Fragment","handleChange","onBlur","args","handleBlur","getIn","name","touched","errors","checkboxLabel","handleSubmit","estaCargando","my","placeholder","type","Button","disabled","CircularProgress","size","marginLeft","helper","anonymous","baseURL","process","token","sessionStorage","getItem","headers","axios","interceptors","response","use","status","console","log","removeItem","H","window","location","reload","Promise","reject","gateway","postAnon","url","modelo","axConf","post","then","r","data","get","catch","registerUser","payload","a","razonSocial","rutEmpresa","rut","nombreUsuario","contrasena","correoElectronico","respuesta","exito","authenticationApi","solicitudRecuperaContrasena","email","verificaRecuperaContrasena","codigoVerificacion","nuevaContrasena","password","confirmarCorreoElectronico","codigo","agregarCuentaCorriente","appState","tipo","numero","Number","predeterminada","habilitada","idBanco","banco","rutEmpresaUsuario","userCompany","empresaSeleccionada","actualizarCuentaCorriente","idCuentaCorriente","eliminarCuentaCorriente","accountId","AccountAPI","userData","save","nombre","telefono","movil","direccion","comuna","giro","ciudad","synchronizeTaxFolderDetails","fetch","syncData","rutNumber","isActive","setTimeout","createNotification","createActionCreator","notification","clearNotifications","iniUsuario","habilitado","esDeSistema","permisos","evaluar","puedeEjecutar","initialState","empresas","defecto","cuentasCorrientes","nombreComuna","usuario","convertorUsuario","p","reduce","c","indexOf","undefined","cambiarEmpresa","Object","assign","company","dispatch","getState","state","newUsr","success","user","empresa","setCompaniesBegin","setCompaniesSuccess","newState","setCompaniesFailure","obtenerUsuarioEmpresas","uc","idEmpresa","empSeleccionada","find","deleteCuentaCorriente","modificacionCuentasCorrientesSuccess","modificacionCuentasCorrientesFailure","fromAPI","mensaje","actualizarInformacionUsuario","request","result","message","failure","loginUserBegin","login","loginUserSuccess","loginUserFailure","registerUserBegin","registerUserSuccess","registerUserFailure","acceptTermsAndConditions","validateDigitalCertificate","credentials","validateSiiCompanyAccount","recuperarContrasena","Logo","logoUrl","alt","src","verticalAlign","routes","auth","register","confirmEmail","termsAndConditions","electronicCertificate","registrationComplete","forgot","reset","logout","resumen","digitalCertificates","listados","pesajes","documentos","documentoPesaje","idPesaje","cuenta","editar","synchronization","taxFolder","users","index","details","businesses","fetchGlobalBegin","fetchGlobalSuccess","fetchGlobalFailure","obtenerGlobal","bancos","tipoCuentas","comunas","productosPesajes","sucursales","newFormatter","fractionDigits","Intl","NumberFormat","currency","minimumFractionDigits","formatters","textoDoc","row","formatStringDate","stringDate","split","acc","part","convertToString","date","month","getMonth","toString","day","getDate","length","getFullYear","Permisos","cargarPesaje","descargarTicketPdf","descargarCertificadoPdf","rutReceptora","nombreSede","listarPesaje","page","isResettingPage","filtros","pesaje","fechaInicio","fechaEmision","start","fechaTermino","end","idProducto","idEstado","estado","paginaActual","paginaTamano","folio","hasMoreItems","obtenerEstadisticaUltimosDias","mesCurso","ultimoMes","cargarDocumento","idDocumento","descargarPdf","listarDocumento","documento","descargaArchivo","bytes64","archivo","base64","binaryString","atob","binaryLen","bytes","Uint8Array","i","ascii","charCodeAt","base64ToArrayBuffer","blob","Blob","fileName","navigator","msSaveBlob","link","document","createElement","download","URL","createObjectURL","setAttribute","visibility","appendChild","click","removeChild","fetchPesajeBegin","fetchPesajeSuccess","fetchPesajeFailure","obtenerEstadisticaUltimosDiasSuccess","obtenerPesajes","resetPage","localState","nextPage","pagina","updatePesajeFilters","filters","setPesajeFilterAction","resetPesajeFilterAction","setPesajeFilter","resetPesajeFilters","obtenerTicketPesaje","obtenerCertificadoPesaje","validationSchema","Yup","required","initialUser","remember","withRouter","authentication","estaIngresando","ingresoUsuarioCargaEmpresa","setItem","loginUser","resp","gutterBottom","validateOnBlur","validateOnChange","initialValues","onSubmit","history","render","propss","ButtonGroup","Children","map","Child","key","RegistrationForm","confirmaContrasena","oneOf","registration","retData","wrapper","alignItems","Background","Paper","small","paddingTop","borderColor","danger","icon","Icon","paperClass","wrap","justify","verification_code","CheckCircle","noDefaultStyles","contentProps","labelProps","checkbox","checkedIcon","FormControlLabel","control","mt","mb","accept_terms_and_conditions","formHeading","flexDirection","stepNumber","common","white","inactiveStepNumber","inactiveTitle","inactiveContent","pointerEvents","right","top","active","actualClasses","clsx","formContent","pb","px","DigitalCertificateForm","SiiCompanyAccountForm","electronicCertificateValidationSchema","siiCompanyAccountValidationSchema","digitalCertificateCredentials","siiCompanyAccountCredentials","formikProps","CheckCircleOutline","button","SuccessCircleIcon","ForgotPasswordForm","onCancel","existeCorreoElectronico","estaSolicitando","terminoSolicitudCorrectamente","doesEmailExist","recuperacionContrasena","renderProps","ResetPasswordForm","password_confirm","ResetPassword","prevProps","resetearContrasena","isPasswordReset","isTokenValid","logoutUser","AuthRoutes","path","component","Register","ConfirmEmail","TermsAndConditions","ElectronicCertificate","RegistrationComplete","Login","ForgotPassword","ResetPasswordSuccess","Logout","styles","sidebar","zIndex","drawer","sidebarLogo","sidebarOpen","transitions","create","easing","sharp","duration","enteringScreen","sidebarClosed","transition","leavingScreen","lightVariant","darkVariant","sidebarWrapper","containerOpen","menuIcon","openMenuIcon","backButtonContainer","backButton","openIconButton","underLineMenu","openIconButtonActive","menuItem","subMenuItem","menuItemIconWrapper","openMenuItemIconWrapper","marginRight","menuItemIcon","menuItemText","textOverflow","whiteSpace","backButtonText","sidebarContainer","headerMenuMobileContainer","hamburMenu","subMenuSidebarHeaderOpen","easeInOut","overflowY","borderRight","subMenuSidebarHeaderClose","cursor","boxMenu","listStyle","letterSpacing","boxMenuOpen","boxMenuTitle","fontStyle","circleMenu","SidebarMenuBase","onToggle","open","classContainer","mobileOpen","MenuRoutes","subMenu","items","requires","UsuarioPesajes","UsuarioPlataforma","SubMenuContainer","handleClickMenu","activate","activ","activeSubmenu","setState","submenu","stateSubmenu","onMouseLeave","filter","u","menu","only","m","k","onClickLink","circle","Component","ArrowDropDown","arrowDropDown","KeyboardArrowRight","keyboardArrowRight","fetchDocumentoBegin","fetchDocumentoSuccess","fetchDocumentoFailure","obtenerDocumentos","updateDocumentoFilters","setDocumentoFilterAction","resetDocumentoFilterAction","setDocumentoFilter","resetDocumentoFilters","obtenerPdfDocumento","MenuRightFloting","onToogle","openSubmenuUno","closeMenu","onToogleSubmenuUno","setEmpresa","setEmpresaSeleccionada","obtenerPesajesUltimos30Dias","clearFilters","resetPesaje","resetDocumento","getSiglas","stateDropDown","stateSubMenu1","companyItem","LogoChico","SidebarHeaderMenu","updateState","onMouseEnter","closeMenuWithClick","activeClickMenu","handleOpenMobileContainer","handleClickLink","onSubMouseLeave","mainMenus","0","1","Sidebar","handleToggle","handleOpenSubmenu","handleCloseSubmenu","SidebarMainMenu","onOpenSubmenu","styled","Indicator","div","NotificationArea","notifications","ScrollContainer","Scrollbar","Layout","handleToggleSidebar","grow","noShrink","formatter","Currency","number","formatToParts","string","trim","formatNumber","pt","LineItem","totalFacturado","totalKilogramos","cantidadPesajes","CTA","DisabledTableRow","ref","createRef","updateDimensions","addEventListener","bind","current","tableRow","previousElementSibling","offsetTop","offsetHeight","offsetWidth","paddedLeft","getStyle","TableRowLoading","thickness","checkboxTableCell","highlightedTableCell","sortableTableCell","tableRowTinted","mobileTableCard","mobileTableRow","mobileTableRowSelected","mobileTableCell","mobileTableHeader","mobileTableSelectAllContainer","bottonFilter","MobileTableRowHoverContent","selectRowHeight","positionStatic","parentElement","level","MobileTableRow","onSelectRow","selected","header","v","TableRow","hover","mobileNoLabel","TableCell","isLoading","event","hoverContent","MobileTable","onSelectAllRows","Card","CardContent","replaceDisabledContentOnMobile","disabledContent","onSortByField","smDown","TableHead","renderHeader","sortable","filterable","hasQuickFilters","filterModal","align","ArrowDownward","TableBody","CheckboxStatusContainer","checked","highlighted","hasStatusColumn","TableRowStatusIndicator","rowId","maestroProducto","peso","precioUnitario","montoNeto","pesajesUltimos30Dias","factores","rest","conversor","toneladas","indice","round","tco2","BackgroundPaper","HojaVerde","colSpan","pageHeader","pageHeaderBackLink","backLink","actions","EditDataForm","useState","setUserData","useEffect","handleUpdateUserData","field","ev","currentTarget","repeticionContrasena","onSave","EditData","handleSave","Wrapper","global","Radio","radio","Switch","ingresoCorrectamente","valid","authenticationReducer","createReducer","handleAction","update","$set","companyReducer","fetchSynchronizeTaxFolderDetails","synchronizeTaxFolder","saveSynchronizeTaxFolderDetails","newSynchronizeTaxFolder","accountReducer","notificationsReducer","$push","globalReducer","initialFilters","initEstadisticaResumen","pesajeReducer","pesajeVisualizando","cantidadDocumentos","totalPagado","documentosUltimos30Dias","documentoReducer","documentoVisualizando","rootReducer","combineReducers","account","middleware","thunk","middlewareEnhancer","applyMiddleware","store","createStore","composeWithDevTools","outerTheme","DangerButton","DeleteBankAccountDialog","close","Dialog","onClose","DialogContent","DialogActions","dialogActions","onConfirmDelete","closeButton","confirmationDialogTitle","confirmationContent","divider","titleClass","closeButtonClass","disableTypography","aria-label","Select","InputLabel","displayEmpty","renderValue","t","b","MenuItem","tipos","AddBankAccountModal","crearCuentaCorriente","states","isDefault","target","BankAccounts","stopPropagation","Refresh","FolioFilterIndicator","folioCount","ProductoFilterIndicator","productoPesaje","descripcion","styleModal","dialogTitle","dialogContent","dialogAction","paper450","ProductoFilterModal","applyFilter","tableFilter","clear","FilterButton","native","producto","setTableFilter","obtenerPesaje","IngresoFilterModal","Date","clearable","cancelLabel","clearLabel","okLabel","format","IngresoFilterIndicator","estadosFiltro","EstadoFilterModal","option","EstadoFilterIndicator","DocumentIcon","IconImage","IngresoRutCertificadoModal","rutReceptor","aceptar","pdfjs","GlobalWorkerOptions","workerSrc","version","DetallePesajeDialog","pdf","openRutCertificado","closeRutCertificado","onAceptarCertificado","descargarCertificado","isValidating","descargarFactura","headersPago","montoPago","pdfGenerado","precioNeto","fechaVencimiento","descargarTicket","pagos","PDFDocumentWrapper","file","pageNumber","PesajeTable","clearFilter","doc","TableActionsContainer","py","limpiarEstado","FolioFilterModal","multiline","rows","DetalleDocumentoDialog","DocumentoTable","precioTotal","formaPagoOrigen","tienePagos","DocumentoPesaje","tab","match","params","AppRoutes","exact","Dashboard","PesajeList","DocumentoList","to","ScrollToTop","pathname","scrollTo","AllRoutes","App","utils","DateFnsUtils","locale","esLocale","Boolean","hostname","ReactDOM","getElementById","serviceWorker","ready","unregister"],"mappings":"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","file":"static/js/main.32fb8eb9.chunk.js","sourcesContent":["function webpackEmptyContext(req) {\n\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\te.code = 'MODULE_NOT_FOUND';\n\tthrow e;\n}\nwebpackEmptyContext.keys = function() { return []; };\nwebpackEmptyContext.resolve = webpackEmptyContext;\nmodule.exports = webpackEmptyContext;\nwebpackEmptyContext.id = 162;","module.exports = __webpack_public_path__ + \"static/media/ROMERELLI.11faf129.png\";","module.exports = __webpack_public_path__ + \"static/media/image-asset.e7fac012.jpeg\";","module.exports = __webpack_public_path__ + \"static/media/arrowDropDown.12d07392.svg\";","module.exports = __webpack_public_path__ + \"static/media/keyboardArrowRight.0c587c2f.svg\";","module.exports = __webpack_public_path__ + \"static/media/hojaverde.fe872227.png\";","module.exports = __webpack_public_path__ + \"static/media/document.8a547486.svg\";","export default {\r\n primary: {\r\n main: '#c72e1a',\r\n dark: '#ab2816',\r\n light: '#d5311c'\r\n },\r\n secondary: {main: '#c72e1a', contrastText: '#ffffff'},\r\n error: {light: '#E9DAE7', main: '#CD2F2F'},\r\n text: {\r\n primary: '#3C3C3C',\r\n secondary: '#8C8C8C',\r\n important: '#c72e1a'\r\n },\r\n background: {\r\n default: '#FAFAFB',\r\n authLayout: '#c72e1a'\r\n },\r\n buttonContainedBackgroundColor: '#99AFBF',\r\n buttonContainedColor: '#fff'\r\n};\r\n","import palette from './palette';\r\n\r\nexport default {\r\n fontFamily: 'Proxima Nova, Helvetica, Arial, sans-serif',\r\n h1: {\r\n fontWeight: 500,\r\n fontSize: '28px',\r\n lineHeight: '34px'\r\n },\r\n h2: {\r\n fontWeight: 500,\r\n fontSize: 20,\r\n color: palette.text.primary\r\n },\r\n h3: {\r\n fontSize: 14,\r\n lineHeight: '18px',\r\n fontWeight: 500\r\n },\r\n h4: {\r\n fontWeight: 500\r\n },\r\n h5: {\r\n fontWeight: 500\r\n },\r\n h6: {\r\n fontWeight: 500\r\n },\r\n body1: {\r\n fontSize: 14,\r\n color: palette.text.primary\r\n },\r\n body2: {\r\n fontSize: 14,\r\n color: palette.text.secondary\r\n }\r\n};\r\n","import createBreakpoints from '@material-ui/core/styles/createBreakpoints';\r\nimport {palette} from './index';\r\n\r\nrequire('./muipicker-overrides');\r\n\r\nconst breakpoints = createBreakpoints({});\r\n\r\nexport default {\r\n MuiAppBar: {\r\n colorDefault: {\r\n backgroundColor: '#fff'\r\n }\r\n },\r\n MuiSvgIcon: {\r\n fontSizeLarge: {\r\n fontSize: 39\r\n }\r\n },\r\n MuiIconButton: {\r\n root: {\r\n color: palette.text.primary\r\n }\r\n },\r\n MuiButton: {\r\n root: {\r\n textTransform: 'none',\r\n boxSizing: 'border-box',\r\n padding: '10.5px 22px',\r\n '&$outlined': {\r\n padding: '8.5px 22px'\r\n },\r\n borderRadius: 5,\r\n fontWeight: 500,\r\n width: '100%',\r\n [breakpoints.up('sm')]: {\r\n width: 'auto'\r\n }\r\n },\r\n sizeSmall: {\r\n padding: '3px 12px',\r\n '&$outlined': {\r\n padding: '1px 22px'\r\n },\r\n width: 'auto',\r\n minWidth: 'none',\r\n fontSize: '0.875rem'\r\n },\r\n sizeLarge: {\r\n padding: '10.5px 22px',\r\n '&$outlined': {\r\n padding: '8.5px 22px'\r\n },\r\n fontSize: '0.875rem',\r\n [breakpoints.up('sm')]: {\r\n width: 'auto'\r\n }\r\n },\r\n contained: {\r\n backgroundColor: palette.buttonContainedBackgroundColor,\r\n color: palette.buttonContainedColor,\r\n boxShadow: 'none',\r\n '&:active': {\r\n boxShadow: 'none'\r\n }\r\n },\r\n containedPrimary: {\r\n boxShadow: '0 2px 15px 0 rgba(65,102,252,0.5)',\r\n '&:active': {\r\n boxShadow: [\r\n '0px 5px 5px -3px rgba(0,0,0,0.2)',\r\n '0px 8px 10px 1px rgba(0,0,0,0.14)',\r\n '0px 3px 14px 2px rgba(0,0,0,0.12)'\r\n ].join(',')\r\n }\r\n },\r\n containedSecondary: {\r\n boxShadow: '0 2px 15px 0 rgba(1,213,159,0.4)',\r\n '&:active': {\r\n boxShadow: [\r\n '0px 5px 5px -3px rgba(0,0,0,0.2)',\r\n '0px 8px 10px 1px rgba(0,0,0,0.14)',\r\n '0px 3px 14px 2px rgba(0,0,0,0.12)'\r\n ].join(',')\r\n }\r\n },\r\n outlined: {\r\n borderWidth: 2\r\n },\r\n outlinedPrimary: {\r\n '&, &:hover': {\r\n border: '2px solid'\r\n }\r\n }\r\n },\r\n MuiCard: {\r\n root: {\r\n borderRadius: 7\r\n }\r\n },\r\n MuiFormControl: {\r\n root: {\r\n maxWidth: 209\r\n },\r\n fullWidth: {\r\n maxWidth: 'none'\r\n }\r\n },\r\n MuiFormLabel: {\r\n root: {\r\n color: palette.text.primary,\r\n '&$error': {\r\n color: palette.text.primary\r\n }\r\n }\r\n },\r\n MuiInputLabel: {\r\n root: {\r\n fontSize: 14,\r\n fontWeight: 500\r\n },\r\n shrink: {\r\n transform: 'translate(0, 1.5px)'\r\n }\r\n },\r\n MuiInput: {\r\n formControl: {\r\n 'label + &': {\r\n marginTop: 26\r\n }\r\n },\r\n root: {\r\n border: '1px solid #E5E8EE',\r\n fontSize: 14,\r\n borderRadius: 5,\r\n marginTop: 10,\r\n '&:before': {\r\n content: 'none'\r\n },\r\n '&$error': {\r\n border: '1px solid #D75959'\r\n }\r\n },\r\n input: {\r\n padding: '13px 19px 14px'\r\n }\r\n },\r\n MuiTableRow: {\r\n root: {\r\n '&$selected, &$hover:hover': {\r\n '&, &:nth-of-type(odd), &:nth-of-type(even)': {\r\n backgroundColor: '#EDF1FF'\r\n }\r\n }\r\n }\r\n },\r\n MuiTableCell: {\r\n sizeSmall: {\r\n height: 'auto'\r\n },\r\n head: {\r\n fontSize: 14,\r\n color: palette.text.primary,\r\n fontWeight: 600\r\n },\r\n body: {\r\n height: 55,\r\n color: '#8C8C8C',\r\n lineHeight: '18px',\r\n fontWeight: 400,\r\n padding: '0px 10px 0px 10px'\r\n }\r\n },\r\n MuiTablePagination: {\r\n caption: {\r\n fontSize: 14\r\n }\r\n },\r\n MuiPaper: {\r\n rounded: {\r\n borderRadius: 7,\r\n overflow: 'hidden'\r\n },\r\n elevation0: {\r\n border: '1px solid #dbdbdb'\r\n },\r\n elevation2: {\r\n boxShadow: '0 2px 35px 0 rgba(0,0,0,0.4)'\r\n }\r\n },\r\n MuiDialog: {\r\n paperWidthSm: {\r\n margin: '40px auto 50px',\r\n '&$paperScrollBody': {\r\n [breakpoints.down(breakpoints.values.sm)]: {\r\n margin: '40px 10px 50px'\r\n }\r\n }\r\n },\r\n paperWidthXs: {\r\n maxWidth: Math.max(breakpoints.values.xs, 464),\r\n '&$paperScrollBody': {\r\n [breakpoints.down(Math.max(breakpoints.values.xs, 464) + 48 * 2)]: {\r\n maxWidth: 'calc(100% - 96px)'\r\n }\r\n }\r\n }\r\n },\r\n MuiDialogContent: {\r\n root: {\r\n paddingLeft: 45,\r\n paddingRight: 45,\r\n paddingBottom: 0,\r\n [breakpoints.down('xs')]: {\r\n paddingLeft: 20,\r\n paddingRight: 20\r\n }\r\n }\r\n },\r\n MuiDialogActions: {\r\n root: {\r\n paddingLeft: 45,\r\n paddingRight: 45,\r\n paddingBottom: 45,\r\n justifyContent: 'flex-start',\r\n margin: 0,\r\n marginTop: 17,\r\n [breakpoints.down('xs')]: {\r\n paddingLeft: 20,\r\n paddingRight: 20,\r\n paddingBottom: 25\r\n }\r\n }\r\n },\r\n MuiFormControlLabel: {\r\n label: {\r\n color: '#8C8C8C'\r\n }\r\n },\r\n MuiCheckbox: {\r\n root: {\r\n color: '#E5E8EE'\r\n },\r\n colorSecondary: {\r\n '&$disabled': {\r\n color: 'rgba(0,0,0,0.05)'\r\n }\r\n }\r\n },\r\n MuiSwitch: {\r\n root: {\r\n height: 31,\r\n width: 51,\r\n padding: 0,\r\n borderRadius: 15.5\r\n },\r\n switchBase: {\r\n padding: 1,\r\n '&$checked': {\r\n transform: 'translateX(20px)',\r\n '& + $track': {\r\n opacity: 1\r\n }\r\n }\r\n },\r\n thumb: {\r\n boxSizing: 'border-box',\r\n height: 29,\r\n width: 29,\r\n backgroundColor: 'white',\r\n border: '0.5px solid rgba(0,0,0,0.1)',\r\n boxShadow: '0 3px 1px 0 rgba(0,0,0,0.05), 0 2px 2px 0 rgba(0,0,0,0.1), 0 3px 3px 0 rgba(0,0,0,0.05)'\r\n },\r\n track: {\r\n backgroundColor: '#E0E2E7',\r\n opacity: 1\r\n }\r\n },\r\n MuiPickersToolbarButton: {\r\n toolbarBtn: {\r\n width: '100%'\r\n }\r\n },\r\n MuiTabs: {\r\n flexContainer: {\r\n borderBottom: '1px solid #DBDBDB'\r\n },\r\n indicator: {\r\n height: 4,\r\n borderRadius: 2\r\n }\r\n },\r\n MuiTab: {\r\n root: {\r\n textTransform: 'none'\r\n },\r\n textColorPrimary: {\r\n color: palette.text.primary,\r\n '&$selected': {\r\n color: palette.text.primary,\r\n fontWeight: 600\r\n }\r\n }\r\n },\r\n MuiLinearProgress: {\r\n root: {\r\n height: 5,\r\n borderRadius: 3\r\n },\r\n bar: {\r\n borderRadius: 3\r\n },\r\n colorSecondary: {\r\n backgroundColor: '#E4E4E4'\r\n }\r\n },\r\n MuiLink: {\r\n root: {\r\n fontSize: 14,\r\n color: palette.text.secondary\r\n }\r\n },\r\n MuiExpansionPanel: {\r\n root: {\r\n '&$expanded': {\r\n margin: '0'\r\n }\r\n }\r\n },\r\n MuiExpansionPanelSummary: {\r\n root: {\r\n background: '#E5E8EE',\r\n height: '58px !important'\r\n },\r\n content: {\r\n margin: '12px 0 !important'\r\n }\r\n }\r\n};\r\n","import createMuiTheme from '@material-ui/core/styles/createMuiTheme';\r\nimport {logoUrl, palette, typography} from './Romerelli';\r\nimport shadows from './shadows';\r\nimport overrides from './overrides';\r\nimport mixins from './mixins';\r\nimport props from './props';\r\n\r\nexport {palette};\r\n\r\nexport {logoUrl};\r\n\r\nexport default createMuiTheme({\r\n props,\r\n palette,\r\n typography,\r\n shadows,\r\n overrides,\r\n mixins,\r\n spacing: 10\r\n});\r\n","export default {\r\n MuiButton: {\r\n variant: 'contained'\r\n },\r\n MuiLink: {\r\n color: 'inherit'\r\n },\r\n MuiDialog: {\r\n scroll: 'body'\r\n }\r\n};\r\n","export default [\r\n 'none',\r\n '0 0 4px 0 rgba(0,0,0,0.12)',\r\n '0px 1px 5px 0px rgba(0,0,0,0.2),0px 2px 2px 0px rgba(0,0,0,0.14),0px 3px 1px -2px rgba(0,0,0,0.12)',\r\n '0 2px 34px 0 rgba(0,0,0,0.15)',\r\n '0px 2px 4px -1px rgba(0,0,0,0.2),0px 4px 5px 0px rgba(0,0,0,0.14),0px 1px 10px 0px rgba(0,0,0,0.12)',\r\n '0px 3px 5px -1px rgba(0,0,0,0.2),0px 5px 8px 0px rgba(0,0,0,0.14),0px 1px 14px 0px rgba(0,0,0,0.12)',\r\n '0px 3px 5px -1px rgba(0,0,0,0.2),0px 6px 10px 0px rgba(0,0,0,0.14),0px 1px 18px 0px rgba(0,0,0,0.12)',\r\n '0px 4px 5px -2px rgba(0,0,0,0.2),0px 7px 10px 1px rgba(0,0,0,0.14),0px 2px 16px 1px rgba(0,0,0,0.12)',\r\n '0px 5px 5px -3px rgba(0,0,0,0.2),0px 8px 10px 1px rgba(0,0,0,0.14),0px 3px 14px 2px rgba(0,0,0,0.12)',\r\n '0px 5px 6px -3px rgba(0,0,0,0.2),0px 9px 12px 1px rgba(0,0,0,0.14),0px 3px 16px 2px rgba(0,0,0,0.12)',\r\n '0px 6px 6px -3px rgba(0,0,0,0.2),0px 10px 14px 1px rgba(0,0,0,0.14),0px 4px 18px 3px rgba(0,0,0,0.12)',\r\n '0px 6px 7px -4px rgba(0,0,0,0.2),0px 11px 15px 1px rgba(0,0,0,0.14),0px 4px 20px 3px rgba(0,0,0,0.12)',\r\n '0px 7px 8px -4px rgba(0,0,0,0.2),0px 12px 17px 2px rgba(0,0,0,0.14),0px 5px 22px 4px rgba(0,0,0,0.12)',\r\n '0px 7px 8px -4px rgba(0,0,0,0.2),0px 13px 19px 2px rgba(0,0,0,0.14),0px 5px 24px 4px rgba(0,0,0,0.12)',\r\n '0px 7px 9px -4px rgba(0,0,0,0.2),0px 14px 21px 2px rgba(0,0,0,0.14),0px 5px 26px 4px rgba(0,0,0,0.12)',\r\n '0px 8px 9px -5px rgba(0,0,0,0.2),0px 15px 22px 2px rgba(0,0,0,0.14),0px 6px 28px 5px rgba(0,0,0,0.12)',\r\n '0px 8px 10px -5px rgba(0,0,0,0.2),0px 16px 24px 2px rgba(0,0,0,0.14),0px 6px 30px 5px rgba(0,0,0,0.12)',\r\n '0px 8px 11px -5px rgba(0,0,0,0.2),0px 17px 26px 2px rgba(0,0,0,0.14),0px 6px 32px 5px rgba(0,0,0,0.12)',\r\n '0px 9px 11px -5px rgba(0,0,0,0.2),0px 18px 28px 2px rgba(0,0,0,0.14),0px 7px 34px 6px rgba(0,0,0,0.12)',\r\n '0px 9px 12px -6px rgba(0,0,0,0.2),0px 19px 29px 2px rgba(0,0,0,0.14),0px 7px 36px 6px rgba(0,0,0,0.12)',\r\n '0px 10px 13px -6px rgba(0,0,0,0.2),0px 20px 31px 3px rgba(0,0,0,0.14),0px 8px 38px 7px rgba(0,0,0,0.12)',\r\n '0px 10px 13px -6px rgba(0,0,0,0.2),0px 21px 33px 3px rgba(0,0,0,0.14),0px 8px 40px 7px rgba(0,0,0,0.12)',\r\n '0px 10px 14px -6px rgba(0,0,0,0.2),0px 22px 35px 3px rgba(0,0,0,0.14),0px 8px 42px 7px rgba(0,0,0,0.12)',\r\n '0px 11px 14px -7px rgba(0,0,0,0.2),0px 23px 36px 3px rgba(0,0,0,0.14),0px 9px 44px 8px rgba(0,0,0,0.12)',\r\n '0px 11px 15px -7px rgba(0,0,0,0.2),0px 24px 38px 3px rgba(0,0,0,0.14),0px 9px 46px 8px rgba(0,0,0,0.12)'\r\n];\r\n","export default {\r\n toolbar: {\r\n minHeight: 92\r\n }\r\n};\r\n","import React from 'react';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport withStyles from '@material-ui/core/styles/withStyles';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport Hidden from '@material-ui/core/Hidden';\r\nimport Box from '@material-ui/core/Box';\r\nimport Typography from '@material-ui/core/Typography';\r\n\r\nconst styles = (theme: any) => {\r\n return {\r\n container: {\r\n [theme.breakpoints.up('md')]: {\r\n flexWrap: 'nowrap'\r\n }\r\n },\r\n paper: {\r\n width: 'auto',\r\n backgroundColor: 'rgba(255, 255, 255, 1)',\r\n maxWidth: '500px',\r\n margin: 'auto',\r\n boxShadow: '0px 0px 30px #000'\r\n },\r\n area: {\r\n padding: '30px 40px',\r\n flexShrink: 0,\r\n [theme.breakpoints.up('md')]: {\r\n padding: '72px 86px'\r\n }\r\n },\r\n titleArea: {\r\n backgroundColor: theme.palette.primary.main\r\n },\r\n narrowTitleTitleArea: {\r\n [theme.breakpoints.up('md')]: {\r\n flexBasis: 350\r\n }\r\n },\r\n narrowTitleFormArea: {\r\n [theme.breakpoints.up('md')]: {\r\n flexGrow: 1,\r\n maxWidth: 'none'\r\n }\r\n },\r\n title: {\r\n fontSize: 48,\r\n lineHeight: '58px',\r\n color: 'white',\r\n position: 'relative',\r\n display: 'inline-block',\r\n marginBottom: 66,\r\n '&:after': {\r\n content: '\"\"',\r\n position: 'absolute',\r\n display: 'block',\r\n height: 5,\r\n bottom: -22,\r\n left: 5,\r\n width: 79,\r\n backgroundColor: 'white'\r\n }\r\n },\r\n mobileTitle: {\r\n color: 'white',\r\n fontSize: 24,\r\n marginBottom: 20\r\n }\r\n };\r\n};\r\n\r\n\r\nconst AuthPanel = ({ classes, children, title, narrowTitle = false }: { classes: any, children: any, title: string, narrowTitle: boolean }) => {\r\n let titleAreaClasses = [\r\n classes.area,\r\n classes.titleArea\r\n ];\r\n let formAreaClasses = [\r\n classes.area\r\n ];\r\n if (narrowTitle) {\r\n titleAreaClasses.push(classes.narrowTitleTitleArea);\r\n formAreaClasses.push(classes.narrowTitleFormArea);\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n {title ? {title} : ''}\r\n \r\n \r\n \r\n \r\n \r\n {children}\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default withStyles(styles as any)(AuthPanel);\r\n","import * as React from 'react';\r\nimport InputAdornment from '@material-ui/core/InputAdornment';\r\nimport MuiTextField from '@material-ui/core/TextField';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport CloseIcon from '@material-ui/icons/Close';\r\nimport withStyles from '@material-ui/core/styles/withStyles';\r\n\r\nconst styles = {\r\n large: {\r\n width: '100%',\r\n maxWidth: 318\r\n }\r\n};\r\n\r\nclass TextField extends React.Component {\r\n getClearButton = () =>\r\n \r\n \r\n \r\n \r\n ;\r\n\r\n render() {\r\n const {\r\n withclear,\r\n classes,\r\n large,\r\n onClear,\r\n ...props\r\n } = this.props;\r\n const inputProps = {\r\n disableUnderline: true,\r\n endAdornment: this.props.value && withclear ? this.getClearButton() : null\r\n };\r\n return (\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default withStyles(styles)(TextField);\r\n","import FormHelperText from '@material-ui/core/FormHelperText';\r\nimport * as React from 'react';\r\nimport { FC } from 'react';\r\n\r\nconst FormErrorText: FC = ({ children }) => * {children};\r\n\r\nexport default FormErrorText;\r\n","import TextField from '../TextField/TextField';\r\nimport React from 'react';\r\nimport { connect, getIn } from 'formik';\r\nimport FormErrorText from '../FormErrorText/FormErrorText';\r\n\r\nconst FormTextField = (props: any) => {\r\n const { formik } = props;\r\n return (\r\n \r\n {\r\n props.onBlur && props.onBlur(args);\r\n return formik.handleBlur && formik.handleBlur(args);\r\n }}\r\n value={getIn(formik.values, props.name)}\r\n error={getIn(formik.touched, props.name) && !!getIn(formik.errors, props.name)}\r\n {...props}\r\n />\r\n {getIn(formik.touched, props.name) && getIn(formik.errors, props.name) ? (\r\n {getIn(formik.errors, props.name)}\r\n ) : ''}\r\n \r\n );\r\n};\r\n\r\nexport default connect(FormTextField);\r\n","import Box from '@material-ui/core/Box';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport { Form } from 'formik';\r\nimport * as React from 'react';\r\nimport { FC } from 'react';\r\nimport FormTextField from '../../../components/Form/FormTextField/FormTextField';\r\nimport Button from '@material-ui/core/Button';\r\nimport withStyles, { WithStyles } from '@material-ui/core/styles/withStyles';\r\nimport { CircularProgress, Theme } from '@material-ui/core';\r\n\r\nconst styles = (theme: Theme) => ({\r\n checkboxLabel: {\r\n color: theme.palette.text.secondary\r\n }\r\n});\r\n\r\ninterface LoginFormProps extends WithStyles {\r\n handleSubmit: any;\r\n estaCargando: boolean;\r\n}\r\n\r\nconst LoginForm: FC = ({ handleSubmit, estaCargando, classes }) => (\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n {/**/}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* ¿Olvidaste Contraseña?*/}\r\n {/* */}\r\n {/**/}\r\n {/**/}\r\n {/* ¿No tienes cuenta?*/}\r\n {/* Regístrate*/}\r\n {/**/}\r\n
\r\n);\r\nexport default withStyles(styles)(LoginForm);\r\n","import React from 'react';\r\nimport axios, { AxiosRequestConfig } from 'axios';\r\nimport * as H from 'history';\r\n\r\nconst helper = {\r\n config: (anonymous: boolean): AxiosRequestConfig => {\r\n if (anonymous) {\r\n return {\r\n baseURL: process.env.REACT_APP_API_URL\r\n };\r\n } else {\r\n let token = sessionStorage.getItem('token');\r\n return {\r\n headers: {\r\n 'accept': 'application/json',\r\n 'content-type': 'application/json',\r\n 'authorization': `Bearer ${token}`\r\n },\r\n baseURL: process.env.REACT_APP_API_URL\r\n };\r\n }\r\n }\r\n};\r\n\r\naxios.interceptors.response.use((response) => {\r\n return response;\r\n}, function (error) {\r\n if (error.response && error.response.status === 401) {\r\n console.log('unauthorized, logging out ...');\r\n sessionStorage.removeItem('token');\r\n const h = H.createBrowserHistory();\r\n h.push('/');\r\n window.location.reload();\r\n }\r\n return Promise.reject(error.response);\r\n});\r\n\r\nconst context = {\r\n\r\n postAnon: function (url: string, modelo: any): Promise {\r\n const axConf = helper.config(true);\r\n return axios.post(url, modelo, axConf)\r\n .then(r => r.data);\r\n },\r\n post: function (url: string, modelo: any): Promise {\r\n const axConf = helper.config(false);\r\n return axios.post(url, modelo, axConf)\r\n .then(r => r.data);\r\n },\r\n get: function (url: string): Promise {\r\n const axConf = helper.config(false);\r\n return axios.get(url, axConf)\r\n .then(r => r.data)\r\n .catch(e => console.log(e));\r\n }\r\n};\r\n\r\nexport const gateway = context;\r\n","import { gateway } from '../gateway';\r\nimport { UserLoginFormData, UserRegistrationFormData, UserRegistrationSuccessPayload } from '../store/user/authentication/types';\r\n\r\nexport const loginUser = (modelo: UserLoginFormData) => new Promise(async resolve => {\r\n\r\n const url = '/api/v1/Publico/Login';\r\n await gateway.postAnon(url, modelo)\r\n .then((respuesta) => {\r\n if (respuesta.exito) {\r\n sessionStorage.setItem('token', respuesta.token);\r\n }\r\n resolve(respuesta);\r\n });\r\n});\r\n\r\nexport const registerUser = (payload: UserRegistrationFormData) => new Promise(async resolve => {\r\n const modelo: Publico.Registro.RegistroPublico = {\r\n razonSocial: payload.razonSocial,\r\n rutEmpresa: payload.rut,\r\n nombreUsuario: payload.nombreUsuario,\r\n contrasena: payload.contrasena,\r\n correoElectronico: payload.correoElectronico\r\n };\r\n const url = '/api/v1/Publico/RegistroPublico';\r\n await gateway.postAnon(url, modelo)\r\n .then((respuesta) => {\r\n if (respuesta.exito) {\r\n resolve(\r\n );\r\n }\r\n });\r\n});\r\n","import { IResetPasswordPayload } from '../store/user/authentication/types';\r\nimport { gateway } from '../gateway';\r\n\r\nexport const authenticationApi = {\r\n solicitudRecuperaContrasena: (email: string) => new Promise(async resolve => {\r\n const url = '/api/v1/Publico/SolicitudRecuperarContrasena';\r\n let modelo: Publico.Usuario.RecuperarContrasena = {\r\n correoElectronico: email\r\n };\r\n await gateway.postAnon(url, modelo)\r\n .then(respuesta => {\r\n resolve(respuesta);\r\n });\r\n }),\r\n // checkPasswordResetToken: (token: string) => {\r\n // // Real api call goes here to check the token is authentic\r\n // return token === 'abc'\r\n // },\r\n verificaRecuperaContrasena: (payload: IResetPasswordPayload) => new Promise(async resolve => {\r\n const url = '/api/v1/Publico/VerificarRecuperaContrasena';\r\n let modelo: Publico.Usuario.VerificarRecuperaContrasena = {\r\n correoElectronico: payload.correoElectronico,\r\n codigoVerificacion: payload.token,\r\n nuevaContrasena: payload.password\r\n };\r\n await gateway.postAnon(url, modelo)\r\n .then(respuesta => {\r\n resolve(respuesta);\r\n });\r\n }),\r\n\r\n confirmarCorreoElectronico: (codigo: string, correoElectronico: string) => new Promise(async resolve => {\r\n var modelo: Publico.Usuario.ConfirmarCorreoElectronico = {\r\n codigoVerificacion: codigo,\r\n correoElectronico: correoElectronico\r\n };\r\n const url = '/api/v1/Publico/ConfirmarCorreoElectronico';\r\n await gateway.postAnon(url, modelo)\r\n .then(respuesta => {\r\n resolve(respuesta);\r\n\r\n });\r\n })\r\n};\r\n\r\nexport default authenticationApi;\r\n","import { gateway } from '../gateway';\r\nimport { CrearCuentaCorrientePayload } from '../store/user/company/types';\r\nimport { AppState } from '../store/rootReducer';\r\n\r\nexport const obtenerInformacionUsuario = () => new Promise(async resolve => {\r\n const url = '/api/v1/Portal/ObtenerUsuario';\r\n await gateway.post(url, {})\r\n .then((respuesta) => {\r\n resolve(respuesta);\r\n });\r\n});\r\n\r\nexport const agregarCuentaCorriente = (payload: CrearCuentaCorrientePayload, appState: AppState) => new Promise(async resolve => {\r\n const url = '/api/v1/CuentaCorriente/Agregar';\r\n const modelo: Publico.Empresa.AgregarCuentaCorriente = {\r\n tipo: payload.tipo,\r\n numero: Number(payload.numero),\r\n predeterminada: payload.predeterminada,\r\n habilitada: payload.habilitada,\r\n idBanco: Number(payload.banco),\r\n rutEmpresaUsuario: appState.userCompany.empresaSeleccionada.rut\r\n\r\n };\r\n await gateway.post(url, modelo)\r\n .then((respuesta) => {\r\n resolve(respuesta);\r\n });\r\n});\r\n\r\nexport const actualizarCuentaCorriente = (id: number, predeterminada: boolean, habilitada: boolean, appState: AppState) => new Promise(async resolve => {\r\n const url = '/api/v1/CuentaCorriente/Guardar';\r\n const modelo: Publico.Empresa.GuardarCuentaCorriente = {\r\n idCuentaCorriente: id,\r\n predeterminada: predeterminada,\r\n habilitada: habilitada,\r\n rutEmpresaUsuario: appState.userCompany.empresaSeleccionada.rut\r\n };\r\n\r\n await gateway.post(url, modelo)\r\n .then(respuesta => {\r\n resolve(respuesta);\r\n });\r\n});\r\n\r\nexport const eliminarCuentaCorriente = (accountId: number, appState: AppState) => new Promise(async resolve => {\r\n\r\n const url = '/api/v1/CuentaCorriente/Eliminar';\r\n const modelo: Publico.Empresa.EliminarCuentaCorriente = {\r\n idCuentaCorriente: accountId,\r\n rutEmpresaUsuario: appState.userCompany.empresaSeleccionada.rut\r\n };\r\n\r\n await gateway.post(url, modelo)\r\n .then(respuesta => {\r\n resolve(respuesta);\r\n });\r\n});\r\n\r\nexport const listarGlobal = () => new Promise(async resolve => {\r\n const url = '/api/v1/Portal/Global';\r\n await gateway.post(url, {})\r\n .then(respuesta => {\r\n\r\n resolve(respuesta);\r\n });\r\n});\r\n","import { ISynchronizeTaxFolderDetails } from '../store/account/types';\r\nimport { AppState } from '../store/rootReducer';\r\nimport { gateway } from '../gateway';\r\nimport { EdicionUsuarioEmpresaPayload } from '../store/user/company/types';\r\n\r\nconst AccountAPI = {\r\n userData: {\r\n save: async (userData: EdicionUsuarioEmpresaPayload, appState: AppState) => new Promise(async resolve => {\r\n const url = '/api/v1/Portal/GuardarUsuario';\r\n const modelo: Portal.Usuario.Guardar = {\r\n nombre: userData.nombre,\r\n telefono: userData.telefono,\r\n movil: userData.movil,\r\n direccion: userData.direccion,\r\n comuna: '',\r\n giro: userData.giro,\r\n ciudad: '',\r\n nuevaContrasena: userData.nuevaContrasena,\r\n rutEmpresaUsuario: appState.userCompany.empresaSeleccionada.rut\r\n };\r\n await gateway.post(url, modelo)\r\n .then(respuesta => {\r\n resolve(respuesta);\r\n });\r\n })\r\n },\r\n synchronizeTaxFolderDetails: {\r\n fetch: async () => new Promise(resolve => {\r\n const syncData = {\r\n rutNumber: '123123123',\r\n isActive: true\r\n };\r\n setTimeout(() => resolve(syncData), 50);\r\n }),\r\n save: async (syncData: ISynchronizeTaxFolderDetails) => new Promise(resolve => {\r\n setTimeout(() => resolve(syncData), 50);\r\n })\r\n }\r\n};\r\n\r\nexport default AccountAPI;\r\n","import { createActionCreator } from 'deox';\r\nimport { INotification } from './types';\r\n\r\nexport const createNotification = createActionCreator(\r\n 'CREATE_NOTIFICATION',\r\n resolve => (notification: INotification) => resolve(notification)\r\n);\r\n\r\nexport const clearNotifications = createActionCreator('CLEAR_NOTIFIACTIONS');\r\n","import { createActionCreator } from 'deox';\r\nimport { Dispatch } from 'redux';\r\nimport { AppState } from '../../rootReducer';\r\nimport * as fromAPI from '../../../api/portal';\r\nimport { CrearCuentaCorrientePayload, EdicionUsuarioEmpresaPayload, UserCompanyState, UsuarioPortal } from './types';\r\nimport AccountAPI from '../../../api/cuenta';\r\nimport { createNotification } from '../../notifications/notificationsActions';\r\nimport { Permisos } from '../../../utils/utils';\r\n\r\nexport const iniUsuario: UsuarioPortal = {\r\n correoElectronico: '', habilitado: false, id: 0, nombre: '', nuevaContrasena: '', rut: '', esDeSistema: false,\r\n permisos: [],\r\n evaluar: (permisos: Permisos[], req: Permisos[]) => false,\r\n puedeEjecutar: (r: Permisos[] | undefined) => false\r\n};\r\n\r\nexport const initialState: UserCompanyState = {\r\n empresas: [],\r\n empresaSeleccionada: {\r\n id: 0,\r\n razonSocial: '',\r\n rut: '',\r\n defecto: true,\r\n cuentasCorrientes: [],\r\n telefono: '',\r\n movil: '',\r\n direccion: '',\r\n comuna: '',\r\n giro: '',\r\n nombreComuna: '',\r\n permisos: []\r\n },\r\n usuario: iniUsuario\r\n};\r\n\r\nconst convertorUsuario = (usuario: Dto.Usuario, permisos: number[]) => {\r\n const evaluar = (p: Permisos[], r: Permisos[]) => r.reduce((r, c) => r || p.indexOf(c) !== -1, false);\r\n const newUsr = {\r\n ...usuario,\r\n permisos: permisos,\r\n evaluar: evaluar,\r\n puedeEjecutar: function (r: Permisos[] | undefined) {\r\n if (r === undefined) return true;\r\n // console.log(this.permisos, permisos, (new Error()).stack);\r\n return this.evaluar(this.permisos, r);\r\n }\r\n };\r\n return newUsr;\r\n};\r\n\r\nconst _setSelectedCompanyThunk = (company: Dto.Portal.Empresa) => async (dispatch: Dispatch, getState: () => AppState) => {\r\n const state = getState();\r\n const newUsr = convertorUsuario(state.userCompany.usuario, company.permisos);\r\n dispatch(cambiarEmpresa.success({ user: newUsr, empresa: company }));\r\n};\r\n\r\nexport const cambiarEmpresa = Object.assign(_setSelectedCompanyThunk, {\r\n success: createActionCreator(\r\n 'SET_SELECTED_COMPANY',\r\n resolve => (payload: { user: UsuarioPortal, empresa: Dto.Portal.Empresa }) => resolve(payload))\r\n\r\n});\r\n\r\nexport const setCompaniesBegin = createActionCreator('SET_COMPANIES_BEGIN');\r\nexport const setCompaniesSuccess = createActionCreator(\r\n 'SET_COMPANIES_SUCCESS',\r\n resolve => (newState: UserCompanyState) => resolve(newState)\r\n);\r\nexport const setCompaniesFailure = createActionCreator(\r\n 'SET_COMPANIES_FAILURE',\r\n resolve => (error: string) => resolve(error)\r\n);\r\n\r\nexport const obtenerUsuarioEmpresas = () => async (dispatch: Dispatch, getState: () => AppState) => {\r\n dispatch(setCompaniesBegin());\r\n try {\r\n const state = getState();\r\n const respuesta = await fromAPI.obtenerInformacionUsuario();\r\n const uc = state.userCompany;\r\n const idEmpresa = uc.empresaSeleccionada.id;\r\n if (respuesta.exito) {\r\n\r\n let empSeleccionada = (respuesta.empresas.find(p => p.id == idEmpresa)\r\n || respuesta.empresas.find(p => p.defecto))\r\n || respuesta.empresas[0];\r\n\r\n dispatch(setCompaniesSuccess({\r\n empresaSeleccionada: empSeleccionada,\r\n empresas: respuesta.empresas,\r\n usuario: convertorUsuario(respuesta.usuario, empSeleccionada.permisos)\r\n }));\r\n\r\n }\r\n } catch (error) {\r\n dispatch(setCompaniesFailure(error));\r\n }\r\n};\r\n\r\nexport const deleteCuentaCorriente = createActionCreator(\r\n 'DELETE_CUENTACORRIENTE',\r\n resolve => (id: number) => resolve(id)\r\n);\r\n\r\nexport const eliminarCuentaCorriente = (id: number) => async (dispatch: Dispatch, getState: () => AppState) => {\r\n const state = getState();\r\n let cta = state.userCompany.empresaSeleccionada.cuentasCorrientes.find(c => c.id == id);\r\n if (cta != undefined) {\r\n const respuesta = await fromAPI.eliminarCuentaCorriente(id, state);\r\n if (respuesta.exito) {\r\n dispatch(deleteCuentaCorriente(id));\r\n }\r\n }\r\n};\r\n\r\nexport const modificacionCuentasCorrientesSuccess = createActionCreator(\r\n 'CREAR_CUENTACORRIENTE_SUCCESS',\r\n resolve => (payload: Dto.CuentaCorriente[]) => resolve(payload)\r\n);\r\nconst modificacionCuentasCorrientesFailure = createActionCreator(\r\n 'CREAR_CUENTACORRIENTE_FAILURE',\r\n resolve => (error: string) => resolve(error)\r\n);\r\n\r\nexport const crearCuentaCorriente = (payload: CrearCuentaCorrientePayload) => async (dispatch: Dispatch, getState: () => AppState) => {\r\n const state = getState();\r\n // dispatch(modificacionCuentasCorrientesBegin(payload))\r\n try {\r\n const respuesta = await fromAPI.agregarCuentaCorriente(payload, state);\r\n if (respuesta.exito) {\r\n dispatch(modificacionCuentasCorrientesSuccess(respuesta.cuentasCorrientes));\r\n } else {\r\n dispatch(modificacionCuentasCorrientesFailure(respuesta.mensaje));\r\n }\r\n } catch (error) {\r\n dispatch(modificacionCuentasCorrientesFailure(error));\r\n }\r\n};\r\n\r\n\r\nexport const actualizarCuentaCorriente = (id: number, predeterminada: boolean, habilitada: boolean) => async (dispatch: Dispatch, getState: () => AppState) => {\r\n const state = getState();\r\n // dispatch(modificacionCuentasCorrientesBegin(payload))\r\n try {\r\n const respuesta = await fromAPI.actualizarCuentaCorriente(id, predeterminada, habilitada, state);\r\n if (respuesta.exito) {\r\n dispatch(modificacionCuentasCorrientesSuccess(respuesta.cuentasCorrientes));\r\n } else {\r\n dispatch(modificacionCuentasCorrientesFailure(respuesta.mensaje));\r\n }\r\n } catch (error) {\r\n dispatch(modificacionCuentasCorrientesFailure(error));\r\n }\r\n};\r\n\r\n\r\nconst _actualizarInformacionUsuarioThunk = (userData: EdicionUsuarioEmpresaPayload) => async (dispatch: any, getState: () => AppState) => {\r\n const state = getState();\r\n dispatch(actualizarInformacionUsuario.request());\r\n try {\r\n const result = await AccountAPI.userData.save(userData, state);\r\n if (result.exito) {\r\n dispatch(actualizarInformacionUsuario.success(userData));\r\n dispatch(createNotification({ message: 'la información fue actualizada', type: 'success' }));\r\n } else {\r\n dispatch(createNotification({ message: result.mensaje, type: 'error' }));\r\n\r\n }\r\n } catch (error) {\r\n dispatch(actualizarInformacionUsuario.failure());\r\n }\r\n};\r\n\r\nexport const actualizarInformacionUsuario = Object.assign(_actualizarInformacionUsuarioThunk, {\r\n request: createActionCreator('SAVE_USER_DATA_REQUEST'),\r\n success: createActionCreator(\r\n 'SAVE_USER_DATA_SUCCESS',\r\n resolve => (userData: EdicionUsuarioEmpresaPayload) => resolve(userData)\r\n ),\r\n failure: createActionCreator('SAVE_USER_DATA_FAILURE')\r\n});\r\n","import {\r\n DigitalCertificateCredentials,\r\n SiiCompanyAccountCredentials,\r\n UserLoginFormData,\r\n UserRegistrationFormData,\r\n UserRegistrationSuccessPayload\r\n} from './types';\r\nimport { createActionCreator } from 'deox';\r\nimport * as fromAPI from '../../../api/authenticate';\r\nimport { Dispatch } from 'redux';\r\nimport authenticationApi from '../../../api/authentication';\r\nimport { iniUsuario } from '../company/companyActions';\r\n\r\nexport const loginUserBegin = createActionCreator(\r\n 'LOGIN_USER_BEGIN',\r\n resolve => (login: UserLoginFormData) => resolve(login)\r\n);\r\nexport const loginUserSuccess = createActionCreator(\r\n 'LOGIN_USER_SUCCESS',\r\n resolve => (payload: Mensaje.IngresoPublicoRespuesta) => resolve(payload)\r\n);\r\nexport const loginUserFailure = createActionCreator(\r\n 'LOGIN_USER_FAILURE',\r\n resolve => (error: string) => resolve(error)\r\n);\r\n\r\n\r\nexport const loginUser = (payload: UserLoginFormData) => async (dispatch: any) => {\r\n return new Promise(function (resolve, reject) {\r\n dispatch(loginUserBegin(payload));\r\n try {\r\n fromAPI.loginUser(payload)\r\n .then(respuesta => {\r\n if (respuesta.exito) {\r\n dispatch(loginUserSuccess(respuesta));\r\n resolve(respuesta);\r\n } else {\r\n dispatch(loginUserFailure(respuesta.mensaje));\r\n }\r\n });\r\n } catch (error) {\r\n dispatch(loginUserFailure(error));\r\n }\r\n });\r\n};\r\n\r\n\r\nexport const logoutUser = () => async (dispatch: any) => {\r\n dispatch(loginUserSuccess({\r\n exito: true,\r\n mensaje: '',\r\n token: '',\r\n usuario: iniUsuario\r\n }));\r\n};\r\n\r\nexport const registerUser = (payload: UserRegistrationFormData) => async (dispatch: any) => {\r\n dispatch(registerUserBegin(payload));\r\n try {\r\n const retData = await fromAPI.registerUser(payload);\r\n dispatch(registerUserSuccess(retData));\r\n } catch (error) {\r\n dispatch(registerUserFailure(error));\r\n }\r\n};\r\n\r\nexport const registerUserBegin = createActionCreator(\r\n 'REGISTER_USER_BEGIN',\r\n resolve => (payload: UserRegistrationFormData) => resolve(payload)\r\n);\r\n\r\nexport const registerUserSuccess = createActionCreator(\r\n 'REGISTER_USER_SUCCESS',\r\n resolve => (payload: UserRegistrationSuccessPayload) => resolve(payload)\r\n);\r\n\r\nexport const registerUserFailure = createActionCreator(\r\n 'REGISTER_USER_FAILURE',\r\n resolve => (payload: string) => resolve(payload)\r\n);\r\n\r\nexport const acceptTermsAndConditions = createActionCreator('ACCEPT_TERMS_AND_CONDITIONS');\r\n\r\nexport const validateDigitalCertificate = createActionCreator(\r\n 'VALIDATE_DIGITAL_CERTIFICATE',\r\n resolve => (credentials: DigitalCertificateCredentials) => resolve(credentials)\r\n);\r\n\r\nexport const validateSiiCompanyAccount = createActionCreator(\r\n 'VALIDATE_SII_COMPANY_ACCOUNT',\r\n resolve => (credentials: SiiCompanyAccountCredentials) => resolve(credentials)\r\n);\r\n\r\n\r\nconst _recuperarContrasenaThunk = (email: string) => async (dispatch: Dispatch) => {\r\n dispatch(recuperarContrasena.request(email));\r\n try {\r\n let result = await authenticationApi.solicitudRecuperaContrasena(email);\r\n if (result.exito) {\r\n dispatch(recuperarContrasena.success(result.exito));\r\n } else {\r\n dispatch(recuperarContrasena.failure(result.mensaje));\r\n }\r\n } catch (error) {\r\n dispatch(recuperarContrasena.failure(error));\r\n }\r\n};\r\n\r\nexport const recuperarContrasena = Object.assign(_recuperarContrasenaThunk, {\r\n request: createActionCreator(\r\n 'REQUEST_RESET_PASSWORD_REQUEST',\r\n resolve => (email: string) => resolve(email)\r\n ),\r\n success: createActionCreator(\r\n 'REQUEST_RESET_PASSWORD_SUCCESS',\r\n resolve => (payload: boolean) => resolve(payload)\r\n ),\r\n failure: createActionCreator(\r\n 'REQUEST_RESET_PASSWORD_FAILURE',\r\n resolve => (error: string) => resolve(error)\r\n )\r\n});\r\n\r\n","import { logoUrl } from '../../theme';\r\nimport * as React from 'react';\r\n\r\nconst Logo = () => {\r\n return (\r\n logoUrl ? (\r\n \r\n ) : LOGO\r\n );\r\n};\r\n\r\nexport default Logo;\r\n","const routes = {\r\n auth: {\r\n register: '/auth/registro',\r\n confirmEmail: '/auth/confirm-email',\r\n termsAndConditions: '/auth/terms-and-conditions',\r\n electronicCertificate: '/auth/electronic-certificate',\r\n registrationComplete: '/auth/registration-complete',\r\n login: '/ingreso',\r\n recuperarContrasena: {\r\n forgot: '/auth/recuperar',\r\n reset: '/auth/resetear',\r\n // reset: (token = ':token') => '/auth/resetear/' + token,\r\n success: '/auth/resetearExito'\r\n },\r\n logout: '/auth/logout'\r\n },\r\n resumen: '/resumen',\r\n digitalCertificates: '/certificados',\r\n listados: {\r\n pesajes: '/pesajes',\r\n documentos: '/documentos',\r\n documentoPesaje: (idPesaje = ':idPesaje') => '/pesaje/documento/' + idPesaje\r\n },\r\n cuenta: {\r\n editar: '/cuenta/editar',\r\n synchronization: {\r\n taxFolder: '/cuenta/synchronization/tax-folder'\r\n }\r\n },\r\n cuentasCorrientes: '/cuentasCorrientes',\r\n users: {\r\n index: '/users',\r\n details: (id = ':id') => '/users/' + id\r\n },\r\n businesses: '/businesses'\r\n};\r\n\r\nexport default routes;\r\n","import { GlobalState } from './types';\r\nimport { Dispatch } from 'redux';\r\nimport * as fromAPI from '../../api/portal';\r\nimport { createActionCreator } from 'deox';\r\n\r\nexport const fetchGlobalBegin = createActionCreator('FETCH_GLOBAL_BEGIN');\r\nexport const fetchGlobalSuccess = createActionCreator(\r\n 'FETCH_GLOBAL_SUCCESS',\r\n resolve => (payload: GlobalState) => resolve(payload)\r\n);\r\nexport const fetchGlobalFailure = createActionCreator(\r\n 'FETCH_GLOBAL_FAILURE',\r\n resolve => (error: string) => resolve(error)\r\n);\r\n\r\nexport const obtenerGlobal = () => async (dispatch: Dispatch) => {\r\n dispatch(fetchGlobalBegin());\r\n try {\r\n const payload = await fromAPI.listarGlobal();\r\n dispatch(fetchGlobalSuccess({\r\n bancos: payload.bancos,\r\n tipoCuentas: payload.tipoCuentas,\r\n comunas: payload.comunas,\r\n productosPesajes: payload.productosPesajes,\r\n sucursales: payload.sucursales\r\n }));\r\n\r\n } catch (error) {\r\n dispatch(fetchGlobalFailure(error));\r\n }\r\n};\r\n","import { UsuarioPortal } from '../store/user/company/types';\r\n\r\nconst newFormatter = (fractionDigits: number) => {\r\n return new Intl.NumberFormat('en', {\r\n style: 'currency',\r\n currency: 'CLP',\r\n minimumFractionDigits: fractionDigits\r\n });\r\n};\r\n\r\nconst formatters: Intl.NumberFormat[] = [newFormatter(0), newFormatter(1), newFormatter(2), newFormatter(3)];\r\n\r\nexport const formatNumber = (number: number, fractionDigits?: number): string => {\r\n const fd = fractionDigits || 0;\r\n return formatters[fd].formatToParts(number)\r\n .map(({ type, value }) => {\r\n if (type === 'currency') {\r\n return '';\r\n }\r\n if (type === 'group') {\r\n return '.';\r\n }\r\n if (type === 'decimal') {\r\n return ',';\r\n }\r\n return value;\r\n })\r\n .reduce((string, part) => string + part, '')\r\n .trim();\r\n};\r\n\r\nexport const textoDoc = (row: Dto.Documento) => row.tipo === 'Factura Compra' ? 'factura' : (row.tipo === 'Nota de crédito' ? 'n. de c.' : row.tipo);\r\n\r\nexport const formatStringDate = (stringDate: string): string => {\r\n if (stringDate == null) return '';\r\n return stringDate.split('T')[0].split('-')\r\n .reduce((acc, part) => part + (acc != '' ? '-' : '') + acc, '');\r\n};\r\n\r\nexport const convertToDate = (date: string): Date | undefined => {\r\n if (date == '') return undefined;\r\n const dateParts = date.split('T')[0].split('-')\r\n .map(Number);\r\n const retValue = new Date();\r\n retValue.setFullYear(dateParts[0]);\r\n retValue.setMonth(dateParts[1] - 1);\r\n retValue.setDate(dateParts[2]);\r\n return retValue;\r\n};\r\n\r\n\r\nexport const convertToString = (date: Date): string => {\r\n let month = (date.getMonth() + 1).toString();\r\n let day = date.getDate()\r\n .toString();\r\n if (month.length === 1) month = '0' + month;\r\n if (day.length === 1) day = '0' + day;\r\n return date.getFullYear() + '-' + month + '-' + day + 'T00:00:00.0000000Z';\r\n};\r\n\r\nexport function hexToRgba(hex: string, alpha: number) {\r\n let result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\r\n return result ? `rgba(${parseInt(result[1], 16)},${parseInt(result[2], 16)},${parseInt(result[3], 16)},${alpha})` : null;\r\n}\r\n\r\nexport function downloadCSV(data: any[]) {\r\n const header = Object.keys(data[0]);\r\n let csv = data.map(row => header.map(field =>\r\n JSON.stringify(row[field])\r\n )\r\n .join(','));\r\n csv.unshift(header.join(','));\r\n const csvString = csv.join('\\r\\n');\r\n\r\n const link = document.createElement('a');\r\n link.setAttribute('href', encodeURI('data:text/csv;charset=utf-8,' + csvString));\r\n link.setAttribute('download', 'download.csv');\r\n document.body.appendChild(link); // Required for FF\r\n link.style.visibility = 'hidden';\r\n link.click();\r\n document.body.removeChild(link);\r\n}\r\n\r\nexport const getBase64 = (file: any, cb: any) => {\r\n let reader = new FileReader();\r\n reader.readAsDataURL(file);\r\n reader.onload = function () {\r\n cb(reader.result);\r\n };\r\n};\r\n\r\nexport function validarRut(rut: string): boolean {\r\n if (!rut || rut.trim().length < 3) return false;\r\n const rutLimpio = rut.replace(/[^0-9kK-]/g, '');\r\n\r\n if (rutLimpio.length < 3) return false;\r\n\r\n const split = rutLimpio.split('-');\r\n if (split.length !== 2) return false;\r\n\r\n const num = parseInt(split[0], 10);\r\n const dgv = split[1];\r\n\r\n const dvCalc = calculateDV(num);\r\n return dvCalc === dgv;\r\n}\r\n\r\nfunction calculateDV(rut: number) {\r\n const cuerpo = `${rut}`;\r\n // Calcular Dígito Verificador\r\n let suma = 0;\r\n let multiplo = 2;\r\n\r\n // Para cada dígito del Cuerpo\r\n for (let i = 1; i <= cuerpo.length; i++) {\r\n // Obtener su Producto con el Múltiplo Correspondiente\r\n const index = multiplo * Number(cuerpo.charAt(cuerpo.length - i));\r\n\r\n // Sumar al Contador General\r\n suma += index;\r\n\r\n // Consolidar Múltiplo dentro del rango [2,7]\r\n if (multiplo < 7) {\r\n multiplo += 1;\r\n } else {\r\n multiplo = 2;\r\n }\r\n }\r\n\r\n // Calcular Dígito Verificador en base al Módulo 11\r\n const dvEsperado = 11 - (suma % 11);\r\n if (dvEsperado === 10) return 'k';\r\n if (dvEsperado === 11) return '0';\r\n return `${dvEsperado}`;\r\n}\r\n\r\nexport function checkPermission(usuario: UsuarioPortal, permission?: Permisos[]) {\r\n const per = permission || [];\r\n return per.length > 0 ? per.reduce((p, c) => p || usuario.permisos.indexOf(c) !== -1, false) : true;\r\n}\r\n\r\n\r\nexport enum Permisos {\r\n Admin = 1,\r\n UsuarioPesajes = 3,\r\n UsuarioPlataforma = 4\r\n}\r\n\r\n","import { gateway } from '../gateway';\r\nimport { AppState } from '../store/rootReducer';\r\nimport { FetchEstadisticaUltimosDiasSuccessPayload, FetchPesajesSuccessPayload, PesajeFilters } from '../store/pesaje/type';\r\nimport { convertToString } from '../utils/utils';\r\n\r\nexport const cargarPesaje = (idPesaje: number, appState: AppState) => new Promise(async resolve => {\r\n const url = '/api/v1/Pesaje/Obtener';\r\n\r\n let modelo: Portal.Pesaje.Obtener = {\r\n idEmpresa: appState.userCompany.empresaSeleccionada.id,\r\n rutEmpresaUsuario: appState.userCompany.empresaSeleccionada.rut,\r\n idPesaje: idPesaje\r\n };\r\n await gateway.post(url, modelo)\r\n .then(respuesta => {\r\n resolve(respuesta);\r\n });\r\n});\r\n\r\nexport const descargarTicketPdf = (idPesaje: number, appState: AppState) => {\r\n const url = '/api/v1/Pesaje/ObtenerTicket';\r\n const modelo: Portal.Pesaje.ObtenerTicket = {\r\n idEmpresa: appState.userCompany.empresaSeleccionada.id,\r\n rutEmpresaUsuario: appState.userCompany.empresaSeleccionada.rut,\r\n idPesaje: idPesaje\r\n };\r\n return gateway.post(url, modelo);\r\n};\r\n\r\nexport const descargarCertificadoPdf = (idPesaje: number, rutReceptora: string, nombreSede: string, appState: AppState) => {\r\n const url = '/api/v1/Pesaje/ObtenerCertificado';\r\n const modelo: Portal.Pesaje.ObtenerCertificado = {\r\n idEmpresa: appState.userCompany.empresaSeleccionada.id,\r\n rutEmpresaUsuario: appState.userCompany.empresaSeleccionada.rut,\r\n idPesaje: idPesaje,\r\n rutReceptora: rutReceptora,\r\n nombreSede: nombreSede\r\n };\r\n return gateway.post(url, modelo);\r\n};\r\n\r\nexport const listarPesaje = (page: number, isResettingPage: Boolean, appState: AppState) => new Promise(async resolve => {\r\n const url = '/api/v1/Pesaje/Listar';\r\n const filtros: PesajeFilters = appState.pesaje.filtros;\r\n let modelo: Portal.Pesaje.Listar = {\r\n fechaInicio: filtros.fechaEmision && convertToString(filtros.fechaEmision.start) || '',\r\n fechaTermino: filtros.fechaEmision && convertToString(filtros.fechaEmision.end) || '',\r\n idEmpresa: appState.userCompany.empresaSeleccionada.id,\r\n rutEmpresaUsuario: appState.userCompany.empresaSeleccionada.rut,\r\n idProducto: filtros.idProducto,\r\n idEstado: filtros.estado,\r\n paginaActual: page,\r\n paginaTamano: 50,\r\n folio: filtros.folio\r\n };\r\n await gateway.post(url, modelo)\r\n .then(respuesta => {\r\n if (respuesta.exito) {\r\n resolve({\r\n pesajes: respuesta.pesajes,\r\n hasMoreItems: respuesta.pesajes.length == modelo.paginaTamano,\r\n isResettingPage: isResettingPage\r\n });\r\n }\r\n });\r\n});\r\nexport const obtenerEstadisticaUltimosDias = (appState: AppState) => new Promise(async resolve => {\r\n const url = '/api/v1/Pesaje/PesajesUltimos30Dias';\r\n let modelo: Portal.Pesaje.PesajesUltimos30Dias = {\r\n rutEmpresaUsuario: appState.userCompany.empresaSeleccionada.rut,\r\n idEmpresa: appState.userCompany.empresaSeleccionada.id\r\n };\r\n await gateway.post(url, modelo)\r\n .then(respuesta => {\r\n if (respuesta.exito) {\r\n resolve({\r\n pesajes: respuesta.pesajes,\r\n mesCurso: respuesta.mesCurso,\r\n ultimoMes: respuesta.ultimoMes\r\n });\r\n }\r\n });\r\n});\r\n\r\n","import { gateway } from '../gateway';\r\nimport { AppState } from '../store/rootReducer';\r\nimport { DocumentoFilters, FetchDocumentosSuccessPayload, FetchEstadisticaUltimosDiasSuccessPayload } from '../store/documento/type';\r\nimport { convertToString } from '../utils/utils';\r\n\r\nexport const cargarDocumento = (idDocumento: number, appState: AppState) => new Promise(async resolve => {\r\n const url = '/api/v1/Documento/Obtener';\r\n\r\n let modelo: Portal.Documento.Obtener = {\r\n idEmpresa: appState.userCompany.empresaSeleccionada.id,\r\n rutEmpresaUsuario: appState.userCompany.empresaSeleccionada.rut,\r\n idDocumento: idDocumento\r\n };\r\n await gateway.post(url, modelo)\r\n .then(respuesta => {\r\n resolve(respuesta);\r\n });\r\n});\r\n\r\nexport const descargarPdf = (idDocumento: number, appState: AppState) => {\r\n const url = '/api/v1/Documento/ObtenerPdf';\r\n const modelo: Portal.Documento.ObtenerPdf = {\r\n idEmpresa: appState.userCompany.empresaSeleccionada.id,\r\n rutEmpresaUsuario: appState.userCompany.empresaSeleccionada.rut,\r\n idDocumento: idDocumento\r\n };\r\n return gateway.post(url, modelo);\r\n};\r\n\r\nexport const listarDocumento = (page: number, isResettingPage: Boolean, appState: AppState) => new Promise(async resolve => {\r\n const url = '/api/v1/Documento/Listar';\r\n const filtros: DocumentoFilters = appState.documento.filtros;\r\n let modelo: Portal.Documento.Listar = {\r\n fechaInicio: filtros.fechaEmision && convertToString(filtros.fechaEmision.start) || '',\r\n fechaTermino: filtros.fechaEmision && convertToString(filtros.fechaEmision.end) || '',\r\n idEmpresa: appState.userCompany.empresaSeleccionada.id,\r\n rutEmpresaUsuario: appState.userCompany.empresaSeleccionada.rut,\r\n idEstado: filtros.estado,\r\n paginaActual: page,\r\n paginaTamano: 50,\r\n folio: filtros.folio\r\n };\r\n await gateway.post(url, modelo)\r\n .then(respuesta => {\r\n if (respuesta.exito) {\r\n resolve({\r\n documentos: respuesta.documentos,\r\n hasMoreItems: respuesta.documentos.length == modelo.paginaTamano,\r\n isResettingPage: isResettingPage\r\n });\r\n }\r\n });\r\n});\r\nexport const obtenerEstadisticaUltimosDias = (appState: AppState) => new Promise(async resolve => {\r\n const url = '/api/v1/Documento/DocumentosUltimos30Dias';\r\n const filtros: DocumentoFilters = appState.documento.filtros;\r\n let modelo: Portal.Documento.DocumentosUltimos30Dias = {\r\n rutEmpresaUsuario: appState.userCompany.empresaSeleccionada.rut,\r\n idEmpresa: appState.userCompany.empresaSeleccionada.id\r\n };\r\n await gateway.post(url, modelo)\r\n .then(respuesta => {\r\n if (respuesta.exito) {\r\n resolve({\r\n documentos: respuesta.documentos,\r\n mesCurso: respuesta.mesCurso,\r\n ultimoMes: respuesta.ultimoMes\r\n });\r\n }\r\n });\r\n});\r\n\r\n","import { AppState } from '../store/rootReducer';\r\nimport { descargarPdf } from '../api/documento';\r\n\r\n// import { descargaExcel as descargaExcelDocumentos } from \"../api/documents\";\r\n\r\nfunction base64ToArrayBuffer(base64: string) {\r\n const binaryString = window.atob(base64);\r\n const binaryLen = binaryString.length;\r\n const bytes = new Uint8Array(binaryLen);\r\n for (let i = 0; i < binaryLen; i++) {\r\n const ascii = binaryString.charCodeAt(i);\r\n bytes[i] = ascii;\r\n }\r\n return bytes;\r\n}\r\n\r\nexport function descargaArchivo(bytes64: string, nombre: string) {\r\n const archivo = base64ToArrayBuffer(bytes64);\r\n const blob = new Blob([archivo]);\r\n const fileName = nombre;\r\n if (navigator.msSaveBlob) {\r\n navigator.msSaveBlob(blob, fileName);\r\n } else {\r\n const link = document.createElement('a');\r\n if (link.download !== undefined) {\r\n const url = URL.createObjectURL(blob);\r\n link.setAttribute('href', url);\r\n link.setAttribute('download', fileName);\r\n link.style.visibility = 'hidden';\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n }\r\n }\r\n}\r\n\r\nexport async function descargarPdfDocumento(idDocumento: number, state: AppState) {\r\n const payload = await descargarPdf(idDocumento, state);\r\n descargaArchivo(payload.bytes, payload.nombre);\r\n}\r\n","import { createActionCreator } from 'deox';\r\nimport { FetchEstadisticaUltimosDiasSuccessPayload, FetchPesajesSuccessPayload, ISetFilterPayload, PesajeFilters } from './type';\r\nimport { Dispatch } from 'redux';\r\nimport * as fromAPI from '../../api/pesaje';\r\nimport { AppState } from '../rootReducer';\r\nimport { descargaArchivo } from '../../utils/utilsDescarga';\r\nimport { createNotification } from '../notifications/notificationsActions';\r\n\r\nexport const fetchPesajeBegin = createActionCreator('FETCH_PESAJE_BEGIN');\r\nexport const fetchPesajeSuccess = createActionCreator(\r\n 'FETCH_PESAJE_SUCCESS',\r\n resolve => (payload: FetchPesajesSuccessPayload) => resolve(payload)\r\n);\r\nexport const fetchPesajeFailure = createActionCreator(\r\n 'FETCH_PESAJE_FAILURE',\r\n resolve => (error: string) => resolve(error)\r\n);\r\nexport const obtenerEstadisticaUltimosDiasSuccess = createActionCreator(\r\n 'FETCH_PESAJE_ULTIMOS_DIAS_SUCCESS',\r\n resolve => (payload: FetchEstadisticaUltimosDiasSuccessPayload) => resolve(payload)\r\n);\r\n\r\nexport function obtenerPesajes(resetPage?: boolean) {\r\n\r\n return async (dispatch: Dispatch, getState: () => AppState) => {\r\n const isResettingPage = resetPage || false;\r\n const state = getState();\r\n\r\n if (state.userCompany.empresaSeleccionada.id == 0) return;\r\n\r\n if (isResettingPage) {\r\n dispatch(fetchPesajeSuccess({\r\n pesajes: [],\r\n hasMoreItems: true,\r\n isResettingPage: true\r\n }));\r\n }\r\n\r\n dispatch(fetchPesajeBegin());\r\n try {\r\n\r\n const localState = state.pesaje;\r\n console.log(localState);\r\n if (!isResettingPage && !localState.hasMoreItems) {\r\n dispatch(fetchPesajeFailure('No hay mas pesajes'));\r\n return;\r\n }\r\n const nextPage = (isResettingPage ? 0 : localState.pagina) + 1;\r\n\r\n const result = await fromAPI.listarPesaje(nextPage, isResettingPage, state);\r\n dispatch(fetchPesajeSuccess(result));\r\n } catch (error) {\r\n dispatch(fetchPesajeFailure(error));\r\n\r\n }\r\n };\r\n}\r\n\r\nexport const updatePesajeFilters = createActionCreator(\r\n 'UPDATE_TABLE_PESAJES_FILTERS',\r\n resolve => (filters: PesajeFilters) => resolve(filters)\r\n);\r\n\r\nexport const setPesajeFilterAction = createActionCreator(\r\n 'SET_TABLE_PESAJES_FILTER',\r\n resolve => (payload: ISetFilterPayload) => resolve(payload)\r\n);\r\n\r\nexport const resetPesajeFilterAction = createActionCreator(\r\n 'RESET_TABLE_PESAJES_FILTERS',\r\n resolve => () => resolve()\r\n);\r\n\r\nexport function setPesajeFilter(payload: ISetFilterPayload) {\r\n return async (dispatch: Dispatch, getState: () => AppState) => {\r\n dispatch(setPesajeFilterAction(payload));\r\n };\r\n}\r\n\r\nexport function resetPesajeFilters() {\r\n return async (dispatch: Dispatch, getState: () => AppState) => {\r\n const state = getState();\r\n dispatch(resetPesajeFilterAction());\r\n };\r\n}\r\n\r\n\r\nexport function obtenerEstadisticaUltimosDias() {\r\n return async (dispatch: Dispatch, getState: () => AppState) => {\r\n const state = getState();\r\n\r\n if (state.userCompany.empresaSeleccionada.id == 0) return;\r\n try {\r\n const result = await fromAPI.obtenerEstadisticaUltimosDias(state);\r\n dispatch(obtenerEstadisticaUltimosDiasSuccess(result));\r\n } catch (error) {\r\n\r\n }\r\n };\r\n}\r\n\r\nconst _cargarPesajeThunk = (idPesaje: number) => async (dispatch: Dispatch, getState: () => AppState) => {\r\n dispatch(cargarPesaje.request(idPesaje));\r\n const state = getState();\r\n try {\r\n let result = await fromAPI.cargarPesaje(idPesaje, state);\r\n if (result.exito) {\r\n dispatch(cargarPesaje.success(result.pesaje));\r\n } else {\r\n dispatch(cargarPesaje.failure(result.mensaje));\r\n }\r\n } catch (error) {\r\n dispatch(cargarPesaje.failure(error));\r\n }\r\n};\r\n\r\nexport const cargarPesaje = Object.assign(_cargarPesajeThunk, {\r\n request: createActionCreator(\r\n 'CARGAR_PESAJE_REQUEST',\r\n resolve => (idPesaje: number) => resolve(idPesaje)\r\n ),\r\n success: createActionCreator(\r\n 'CARGAR_PESAJE_SUCCESS',\r\n resolve => (pesaje: Dto.Pesaje) => resolve(pesaje)\r\n ),\r\n failure: createActionCreator(\r\n 'CARGAR_PESAJE_FAILURE',\r\n resolve => (error: string) => resolve(error)\r\n )\r\n});\r\n\r\n\r\nconst _obtenerTicketPesajeThunk = (idPesaje: number) => async (dispatch: Dispatch, getState: () => AppState) => {\r\n dispatch(obtenerTicketPesaje.request(idPesaje));\r\n const state = getState();\r\n try {\r\n const result = await fromAPI.descargarTicketPdf(idPesaje, state);\r\n if (result.exito) {\r\n descargaArchivo(result.bytes, result.nombre);\r\n } else {\r\n dispatch(obtenerTicketPesaje.failure(result.mensaje));\r\n dispatch(createNotification({ message: result.mensaje, type: 'error' }));\r\n }\r\n } catch (error) {\r\n dispatch(obtenerTicketPesaje.failure(error));\r\n }\r\n};\r\n\r\nexport const obtenerTicketPesaje = Object.assign(_obtenerTicketPesajeThunk, {\r\n request: createActionCreator(\r\n 'OBTENERPDF_TICKETPESAJE_REQUEST',\r\n resolve => (idPesaje: number) => resolve(idPesaje)\r\n ),\r\n failure: createActionCreator(\r\n 'OBTENERPDF_TICKETPESAJE_FAILURE',\r\n resolve => (error: string) => resolve(error)\r\n )\r\n});\r\n\r\nconst _obtenerCertificadoPesajeThunk = (idPesaje: number, rutReceptora: string, nombreSede: string) => async (dispatch: Dispatch, getState: () => AppState): Promise => {\r\n dispatch(obtenerCertificadoPesaje.request(idPesaje));\r\n const state = getState();\r\n try {\r\n const result = await fromAPI.descargarCertificadoPdf(idPesaje, rutReceptora, nombreSede, state);\r\n if (result.exito) {\r\n descargaArchivo(result.bytes, result.nombre);\r\n return true;\r\n } else {\r\n dispatch(createNotification({ message: result.mensaje, type: 'error' }));\r\n dispatch(obtenerCertificadoPesaje.failure(result.mensaje));\r\n }\r\n } catch (error) {\r\n dispatch(obtenerCertificadoPesaje.failure(error));\r\n }\r\n return false;\r\n};\r\n\r\nexport const obtenerCertificadoPesaje = Object.assign(_obtenerCertificadoPesajeThunk, {\r\n request: createActionCreator(\r\n 'OBTENERPDF_CERTIFICADOPESAJE_REQUEST',\r\n resolve => (idPesaje: number) => resolve(idPesaje)\r\n ),\r\n failure: createActionCreator(\r\n 'OBTENERPDF_CERTIFICADOPESAJE_FAILURE',\r\n resolve => (error: string) => resolve(error)\r\n )\r\n});\r\n","import * as React from 'react';\r\nimport { FC } from 'react';\r\nimport Typography from '@material-ui/core/Typography/Typography';\r\nimport AuthPanel from '../../../components/AuthPanel/AuthPanel';\r\nimport { Formik } from 'formik';\r\nimport * as Yup from 'yup';\r\nimport LoginForm from './LoginForm';\r\nimport { connect } from 'react-redux';\r\nimport { UserLoginFormData } from '../../../store/user/authentication/types';\r\nimport { loginUser } from '../../../store/user/authentication/authenticationActions';\r\nimport { RouteComponentProps, withRouter } from 'react-router';\r\nimport Logo from '../../../components/Logo/Logo';\r\nimport { ThunkDispatch } from 'redux-thunk';\r\nimport { AppState } from '../../../store/rootReducer';\r\nimport { AnyAction } from 'redux';\r\nimport routes from '../../../routes/routes';\r\nimport { obtenerUsuarioEmpresas } from '../../../store/user/company/companyActions';\r\nimport { obtenerGlobal } from '../../../store/global/globalActions';\r\nimport { obtenerEstadisticaUltimosDias } from '../../../store/pesaje/pesajeActions';\r\n\r\nexport const validationSchema = Yup.object({\r\n correoElectronico: Yup.string().email('Please enter a valid email').required('Email is required'),\r\n contrasena: Yup.string().required('Password is required')\r\n});\r\n\r\ninterface LoginProps extends RouteComponentProps {\r\n ingresoUsuarioCargaEmpresa: (payload: UserLoginFormData) => Promise;\r\n estaCargando: boolean;\r\n}\r\n\r\nconst initialUser: UserLoginFormData = {\r\n correoElectronico: '',\r\n contrasena: '',\r\n remember: false\r\n};\r\n\r\nexport const Login: FC = (props: LoginProps) => (\r\n \r\n \r\n \r\n \r\n
\r\n {\r\n props.ingresoUsuarioCargaEmpresa(user).then(() => {\r\n props.history.push(routes.resumen);\r\n });\r\n }}\r\n validationSchema={validationSchema}\r\n render={(propss) => }\r\n />\r\n
\r\n);\r\n\r\nconst mapDispatchToProps = (dispatch: ThunkDispatch) => ({\r\n ingresoUsuarioCargaEmpresa: (payload: UserLoginFormData) => {\r\n return dispatch(loginUser(payload)).then((resp) => {\r\n if (resp.exito) {\r\n return dispatch(obtenerUsuarioEmpresas()).then((r) => {\r\n return dispatch(obtenerEstadisticaUltimosDias()).then((r) => {\r\n return dispatch(obtenerGlobal());\r\n });\r\n });\r\n }\r\n });\r\n }\r\n});\r\n\r\nconst mapStateToProps = (state: AppState) => ({\r\n estaCargando: state.authentication.login.estaIngresando\r\n});\r\n\r\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(Login));\r\n\r\n/*\r\n\r\n\r\nexport default withRouter(connect(\r\n null,\r\n mapDispatchToProps\r\n)(Login))\r\n*/\r\n","import React from 'react';\r\nimport Grid from '@material-ui/core/Grid';\r\n\r\nconst ButtonGroup = ({children, ...props}) => {\r\n return (\r\n \r\n {React.Children.map(children, (Child, index) => {Child})}\r\n \r\n );\r\n};\r\n\r\nexport default ButtonGroup;\r\n","import Box from '@material-ui/core/Box';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport {Form} from 'formik';\r\nimport * as React from 'react';\r\nimport FormTextField from '../../../components/Form/FormTextField/FormTextField';\r\nimport ButtonGroup from '../../../components/ButtonGroup/ButtonGroup';\r\nimport Button from '@material-ui/core/Button';\r\n\r\nconst RegistrationForm = props => {\r\n const {handleSubmit} = props;\r\n\r\n return (\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\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 RegistrationForm;\r\n","import * as React from 'react';\r\nimport { FC } from 'react';\r\nimport Typography from '@material-ui/core/Typography/Typography';\r\nimport AuthPanel from '../../../components/AuthPanel/AuthPanel';\r\nimport { Formik } from 'formik';\r\nimport * as Yup from 'yup';\r\nimport RegistrationForm from './RegistrationForm';\r\nimport { AppState } from '../../../store/rootReducer';\r\nimport { connect } from 'react-redux';\r\nimport { UserRegistrationFormData } from '../../../store/user/authentication/types';\r\nimport { registerUser } from '../../../store/user/authentication/authenticationActions';\r\nimport { RouteComponentProps, withRouter } from 'react-router';\r\nimport routes from '../../../routes/routes';\r\nimport { ThunkDispatch } from 'redux-thunk';\r\nimport { AnyAction } from 'redux';\r\n\r\nexport const validationSchema = Yup.object({\r\n rut: Yup.string()\r\n .required('El rut de la empresa es requerido'),\r\n razonSocial: Yup.string()\r\n .required('La razón social de la empresa es requerida'),\r\n correoElectronico: Yup.string()\r\n .email('El correo electrónico ingresado no es correcto')\r\n .required('El correo electrónico es requerido'),\r\n nombreUsuario: Yup.string()\r\n .required('UserRegistration Name is required'),\r\n contrasena: Yup.string()\r\n .required('La contraseña es requerida'),\r\n confirmaContrasena: Yup.string()\r\n .required('La confirmación de contraseña es requerida')\r\n .oneOf([Yup.ref('contrasena')], 'Las contraseñas no coinciden')\r\n});\r\n\r\ninterface RegisterProps extends RouteComponentProps {\r\n user: UserRegistrationFormData,\r\n registerUser: (payload: UserRegistrationFormData) => Promise\r\n}\r\n\r\nexport const Register: FC = (props: RegisterProps) =>\r\n \r\n Crear una cuenta de usuario\r\n Finaliza la configuración de tu cuenta ingresando el password de tu cuenta de usuario\r\n {\r\n props.registerUser(user)\r\n .then(() => {\r\n props.history.push(routes.auth.confirmEmail);\r\n });\r\n }}\r\n validationSchema={validationSchema}\r\n render={props => }\r\n />\r\n ;\r\n\r\nconst mapStateToProps = (state: AppState) => {\r\n const formData: UserRegistrationFormData = {\r\n correoElectronico: state.authentication.registration.correoElectronico,\r\n nombreUsuario: state.authentication.registration.nombreUsuario,\r\n razonSocial: state.authentication.registration.razonSocial,\r\n rut: state.authentication.registration.rut,\r\n confirmaContrasena: state.authentication.registration.contrasena,\r\n contrasena: state.authentication.registration.confirmaContrasena\r\n };\r\n\r\n return {\r\n user: formData\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = (dispatch: ThunkDispatch) => ({\r\n registerUser: (payload: UserRegistrationFormData) => dispatch(registerUser(payload))\r\n});\r\nexport default withRouter(connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(Register));\r\n","import Box from '@material-ui/core/Box';\r\nimport React from 'react';\r\nimport withStyles from '@material-ui/core/styles/withStyles';\r\nimport Background from '../../../images/image-asset.jpeg';\r\n\r\nconst styles = theme => {\r\n return {\r\n wrapper: {\r\n padding: '10px 15px',\r\n minHeight: '100%',\r\n display: 'flex',\r\n alignItems: 'center',\r\n boxSizing: 'border-box',\r\n [theme.breakpoints.up('md')]: {\r\n padding: '97px 112px'\r\n },\r\n // backgroundColor: '#FFFFFF',\r\n backgroundBlendMode: 'lighten',\r\n backgroundSize: 'cover',\r\n backgroundPosition: 'center center',\r\n backgroundRepeat: 'no-repeat',\r\n backgroundImage: `url(${Background})!important`,\r\n '@media(min-width: 960px)': {\r\n padding: '0px'\r\n }\r\n // '&:nth-child(1)': {\r\n // display: 'none'\r\n // },\r\n }\r\n };\r\n};\r\n\r\nconst AuthLayout = ({classes, children}) =>\r\n \r\n {children}\r\n ;\r\n\r\nexport default withStyles(styles)(AuthLayout);\r\n","import React from 'react';\r\nimport MuiPaper from '@material-ui/core/Paper/Paper';\r\n\r\nconst Paper = ({children, ...props}) =>\r\n {children};\r\n\r\nexport default Paper;\r\n","import Paper from '../Paper';\r\nimport * as React from 'react';\r\nimport { FunctionComponent } from 'react';\r\nimport withStyles, { WithStyles } from '@material-ui/core/styles/withStyles';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport { Theme } from '@material-ui/core';\r\n\r\nconst styles = (theme: Theme) => {\r\n return {\r\n root: {\r\n borderWidth: 2,\r\n padding: 13,\r\n paddingLeft: 0,\r\n marginTop: 25,\r\n marginBottom: 30\r\n },\r\n small: {\r\n paddingTop: 6,\r\n paddingBottom: 6\r\n },\r\n secondary: {\r\n borderColor: theme.palette.secondary.main,\r\n '& $icon': {\r\n color: theme.palette.secondary.main\r\n }\r\n },\r\n danger: {\r\n borderColor: theme.palette.error.main,\r\n backgroundColor: '#FFF0F0',\r\n '& $icon': {\r\n color: theme.palette.error.main\r\n },\r\n '& .MuiTypography-body1': {\r\n color: theme.palette.error.main\r\n }\r\n },\r\n icon: {\r\n flexBasis: 43,\r\n flexShrink: 0\r\n },\r\n content: {\r\n flexGrow: 1\r\n }\r\n };\r\n};\r\n\r\ninterface AlertProps extends WithStyles {\r\n variant: 'secondary' | 'danger',\r\n size?: 'small'\r\n icon?: React.ComponentType\r\n}\r\n\r\nconst Alert: FunctionComponent = (props) => {\r\n const {\r\n children,\r\n variant,\r\n classes,\r\n icon: Icon = 'div',\r\n size\r\n } = props;\r\n\r\n const paperClass = [\r\n classes.root,\r\n classes[variant],\r\n (size && classes[size]) ? classes[size] : ''\r\n ].join(' ');\r\n\r\n return (\r\n \r\n \r\n \r\n {props.icon ? (\r\n \r\n ) : ''}\r\n \r\n \r\n {children}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default withStyles(styles)(Alert);\r\n","import withStyles, { WithStyles } from '@material-ui/core/styles/withStyles';\r\nimport { Theme } from '@material-ui/core';\r\nimport * as React from 'react';\r\nimport { FunctionComponent } from 'react';\r\n\r\nconst styles = (theme: Theme) => {\r\n return {\r\n root: {\r\n color: theme.palette.text.primary\r\n }\r\n };\r\n};\r\n\r\ninterface BoldProps extends WithStyles {\r\n}\r\n\r\nconst Bold: FunctionComponent = ({ classes, children }) => (\r\n {children}\r\n);\r\n\r\nexport default withStyles(styles)(Bold);\r\n","import { Box } from '@material-ui/core';\r\nimport { Form } from 'formik';\r\nimport * as React from 'react';\r\nimport { FC } from 'react';\r\nimport FormTextField from '../../../components/Form/FormTextField/FormTextField';\r\nimport ButtonGroup from '../../../components/ButtonGroup/ButtonGroup';\r\nimport Button from '@material-ui/core/Button';\r\nimport { RouteComponentProps, withRouter } from 'react-router';\r\nimport routes from '../../../routes/routes';\r\n\r\ninterface ConfirmFormProps extends RouteComponentProps {\r\n handleSubmit: any;\r\n}\r\n\r\nexport const ConfirmEmailForm: FC = (props: ConfirmFormProps) => {\r\n const { handleSubmit } = props;\r\n const goBack = () => {\r\n props.history.push(routes.auth.register);\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\nexport default withRouter(ConfirmEmailForm);\r\n","import * as React from 'react';\r\nimport { FC } from 'react';\r\nimport AuthPanel from '../../../components/AuthPanel/AuthPanel';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Alert from '../../../components/Alert/Alert';\r\nimport CheckCircle from '@material-ui/icons/CheckCircle';\r\nimport Bold from '../../../components/Typography/Bold';\r\nimport ConfirmEmailForm from './ConfirmEmailForm';\r\nimport { Formik } from 'formik';\r\nimport * as Yup from 'yup';\r\nimport { AppState } from '../../../store/rootReducer';\r\nimport { connect } from 'react-redux';\r\nimport { authenticationApi } from '../../../api/authentication';\r\nimport { RouteComponentProps, withRouter } from 'react-router';\r\nimport routes from '../../../routes/routes';\r\n\r\nconst validationSchema = Yup.object({\r\n verification_code: Yup.string()\r\n .required('Verification code is required')\r\n});\r\n\r\ninterface ConfirmEmailProps extends RouteComponentProps {\r\n email: string,\r\n verification_code: string,\r\n confirmarCorreoElectronico: (codigo: string, email: string) => Promise\r\n}\r\n\r\nexport const ConfirmEmail: FC = (props: ConfirmEmailProps) => (\r\n \r\n Ingresar código\r\n \r\n Te hemos enviado un código al correo {props.email}\r\n \r\n Por favor, ingresa el código en el siguiente campo:\r\n {\r\n props.confirmarCorreoElectronico(values.verification_code, '')\r\n .then(() => {\r\n props.history.push(routes.auth.termsAndConditions);\r\n });\r\n\r\n }}\r\n validationSchema={validationSchema}\r\n render={props => }\r\n />\r\n \r\n);\r\n\r\nconst mapStateToProps = (state: AppState) => ({\r\n correoElectronico: state.authentication.registration.correoElectronico,\r\n verification_code: state.authentication.verification_code\r\n});\r\nconst mapDispatchToProps = (dispatch: any) => ({\r\n confirmarCorreoElectronico: (codigo: string, email: string) => dispatch(authenticationApi.confirmarCorreoElectronico(codigo, email))\r\n});\r\n\r\nexport default withRouter(connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(ConfirmEmail));\r\n","import * as React from 'react';\r\nimport { FunctionComponent } from 'react';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport withStyles, { WithStyles } from '@material-ui/core/styles/withStyles';\r\nimport { Scrollbar } from 'react-scrollbars-custom';\r\nimport './TextScroller.css';\r\n\r\nconst styles = {\r\n paper: {\r\n padding: '17px 10px',\r\n fontSize: 12,\r\n border: '1px solid #D3D5D8',\r\n color: '#8C8C8C'\r\n }\r\n};\r\n\r\nconst TextScroller: FunctionComponent> = ({ classes, children }) => (\r\n \r\n \r\n {children}\r\n \r\n \r\n);\r\n\r\nexport default withStyles(styles)(TextScroller);\r\n","import React from 'react';\r\nimport CheckBoxOutlineBlankIcon from '@material-ui/icons/CheckBoxOutlineBlank';\r\nimport CheckBoxIcon from '@material-ui/icons/CheckBox';\r\nimport {withStyles} from '@material-ui/core';\r\nimport MuiCheckbox from '@material-ui/core/Checkbox';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\n\r\nconst styles = {\r\n icon: {\r\n fontSize: 29\r\n }\r\n};\r\n\r\nconst Checkbox = ({classes, labelProps = {}, ...props}) => {\r\n const checkbox = }\r\n checkedIcon={}\r\n {...props}\r\n />;\r\n return props.label ? (\r\n \r\n ) : checkbox;\r\n};\r\n\r\nexport default withStyles(styles)(Checkbox);\r\n","import React from 'react';\r\nimport {connect, getIn} from 'formik';\r\nimport FormHelperText from '@material-ui/core/FormHelperText';\r\nimport Checkbox from '../Checkbox/Checkbox';\r\n\r\nconst FormCheckbox = (props) => {\r\n const {formik} = props;\r\n return (\r\n \r\n \r\n {getIn(formik.errors, props.name) ? (\r\n {getIn(formik.errors, props.name)}\r\n ) : ''}\r\n \r\n );\r\n};\r\n\r\nexport default connect(FormCheckbox);\r\n","import Box from '@material-ui/core/Box';\r\nimport { Form } from 'formik';\r\nimport * as React from 'react';\r\nimport { FC } from 'react';\r\nimport ButtonGroup from '../../../components/ButtonGroup/ButtonGroup';\r\nimport Button from '@material-ui/core/Button';\r\nimport TextScroller from '../../../components/TextScroller/TextScroller';\r\nimport { RouteComponentProps, withRouter } from 'react-router';\r\nimport FormCheckbox from '../../../components/Form/FormCheckbox/FormCheckbox';\r\nimport routes from '../../../routes/routes';\r\n\r\ninterface TermsAndConditionsFormProps extends RouteComponentProps {\r\n handleSubmit: any;\r\n}\r\n\r\nconst TermsAndConditionsForm: FC = (props: TermsAndConditionsFormProps) => {\r\n const { handleSubmit } = props;\r\n\r\n const goBack = () => props.history.push(routes.auth.confirmEmail);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum\r\n suspendisse ultrices gravida dictum fusce ut. Amet aliquam id diam maecenas ultricies mi eget. Tortor at auctor urna nunc. Urna nec tincidunt\r\n praesent semper feugiat nibh sed pulvinar. Adipiscing at in tellus integer feugiat scelerisque varius morbi. Duis ut diam quam nulla porttitor\r\n massa id neque aliquam. Nulla facilisi morbi tempus iaculis urna id volutpat. Duis ut diam quam nulla porttitor. Enim eu turpis egestas pretium\r\n aenean pharetra. Ullamcorper malesuada proin libero nunc consequat. Adipiscing tristique risus nec feugiat in fermentum posuere urna. Nulla at\r\n volutpat diam ut venenatis tellus in. Risus pretium quam vulputate dignissim suspendisse in est. Sed pulvinar proin gravida hendrerit lectus. Elit\r\n ullamcorper dignissim cras tincidunt. Dui faucibus in ornare quam viverra orci. Egestas erat imperdiet sed euismod nisi. Pharetra convallis\r\n posuere morbi leo urna molestie at.

\r\n

Est ultricies integer quis auctor. Nullam ac tortor vitae purus faucibus ornare suspendisse sed nisi. Sodales ut etiam sit amet nisl purus in\r\n mollis. Eget nunc scelerisque viverra mauris in aliquam sem fringilla. Interdum consectetur libero id faucibus nisl tincidunt eget nullam. Lectus\r\n magna fringilla urna porttitor. Diam vel quam elementum pulvinar etiam non quam lacus suspendisse. Blandit aliquam etiam erat velit scelerisque in\r\n dictum non consectetur. Augue interdum velit euismod in pellentesque massa placerat duis ultricies. Accumsan in nisl nisi scelerisque eu ultrices\r\n vitae auctor. Blandit volutpat maecenas volutpat blandit aliquam etiam erat velit. Tortor at risus viverra adipiscing at in tellus integer\r\n feugiat. Id donec ultrices tincidunt arcu non sodales. Vitae auctor eu augue ut lectus arcu bibendum. Egestas sed tempus urna et. Eu mi bibendum\r\n neque egestas congue quisque egestas diam in.

\r\n

Vel facilisis volutpat est velit egestas dui id. Justo eget magna fermentum iaculis eu non. Aliquet eget sit amet tellus cras adipiscing enim.\r\n Varius quam quisque id diam vel quam elementum pulvinar. Quis vel eros donec ac odio tempor orci dapibus ultrices. Habitasse platea dictumst\r\n vestibulum rhoncus est pellentesque elit ullamcorper dignissim. Consequat nisl vel pretium lectus quam id leo in vitae. Amet dictum sit amet justo\r\n donec. Placerat duis ultricies lacus sed turpis tincidunt id aliquet. Aliquam ut porttitor leo a diam sollicitudin tempor.

\r\n

Vulputate enim nulla aliquet porttitor lacus luctus accumsan. Et leo duis ut diam quam nulla porttitor. Ante metus dictum at tempor. Aenean sed\r\n adipiscing diam donec. Elementum integer enim neque volutpat ac tincidunt vitae semper quis. Eleifend donec pretium vulputate sapien nec sagittis\r\n aliquam malesuada. Lobortis scelerisque fermentum dui faucibus. Amet risus nullam eget felis eget nunc lobortis. Hendrerit gravida rutrum quisque\r\n non tellus. Nunc sed id semper risus in hendrerit. Nisi porta lorem mollis aliquam ut porttitor. Tempor nec feugiat nisl pretium fusce id. Ipsum\r\n faucibus vitae aliquet nec ullamcorper sit amet risus nullam.

\r\n

Urna nunc id cursus metus aliquam eleifend mi. Ut diam quam nulla porttitor massa id. Vel elit scelerisque mauris pellentesque pulvinar\r\n pellentesque habitant morbi. Elit ullamcorper dignissim cras tincidunt lobortis feugiat. Placerat vestibulum lectus mauris ultrices eros in cursus\r\n turpis. Odio facilisis mauris sit amet massa vitae tortor. Nec feugiat nisl pretium fusce id. Risus quis varius quam quisque. Orci ac auctor augue\r\n mauris augue neque gravida in. Pretium quam vulputate dignissim suspendisse in est ante in nibh. Auctor elit sed vulputate mi. Molestie at\r\n elementum eu facilisis sed odio morbi quis. Tristique sollicitudin nibh sit amet commodo nulla facilisi. Condimentum mattis pellentesque id nibh.\r\n Amet venenatis urna cursus eget nunc scelerisque viverra mauris in. Arcu odio ut sem nulla.

\r\n
\r\n
\r\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 withRouter(TermsAndConditionsForm);\r\n","import * as React from 'react';\r\nimport { FC } from 'react';\r\nimport AuthPanel from '../../../components/AuthPanel/AuthPanel';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport { Formik } from 'formik';\r\nimport TermsAndConditionsForm from './TermsAndConditionsForm';\r\nimport * as Yup from 'yup';\r\nimport { connect } from 'react-redux';\r\nimport { AppState } from '../../../store/rootReducer';\r\nimport { acceptTermsAndConditions } from '../../../store/user/authentication/authenticationActions';\r\nimport { RouteComponentProps, withRouter } from 'react-router';\r\nimport routes from '../../../routes/routes';\r\n\r\nconst validationSchema = Yup.object({\r\n accept_terms_and_conditions: Yup.boolean()\r\n .oneOf([true], 'You must accept the terms and conditions')\r\n});\r\n\r\ninterface TermsAndConditionsProps extends RouteComponentProps {\r\n accept_terms_and_conditions: boolean,\r\n acceptTermsAndConditions: typeof acceptTermsAndConditions\r\n}\r\n\r\nexport const TermsAndConditions: FC = (props: TermsAndConditionsProps) => (\r\n \r\n Acelerando el proceso de financiamiento\r\n Con esta información mejoraremos la experiencia de financiamiento de tu empresa. Carga el Certificado Electrónico,\r\n con lo cual se sincronizarán automáticamente tus DTE y cargará tu Carpeta Tributaria\r\n {\r\n if (values.accept_terms_and_conditions) {\r\n props.acceptTermsAndConditions();\r\n props.history.push(routes.auth.electronicCertificate);\r\n }\r\n }}\r\n validationSchema={validationSchema}\r\n render={props => }\r\n />\r\n \r\n);\r\n\r\nconst mapStateToProps = (state: AppState) => ({\r\n accept_terms_and_conditions: state.authentication.accept_terms_and_conditions\r\n});\r\n\r\nexport default withRouter(connect(\r\n mapStateToProps,\r\n { acceptTermsAndConditions }\r\n)(TermsAndConditions));\r\n","import { Theme, WithStyles } from '@material-ui/core';\r\nimport Box from '@material-ui/core/Box';\r\nimport * as React from 'react';\r\nimport { FC } from 'react';\r\nimport Paper from '../Paper';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport withStyles from '@material-ui/core/styles/withStyles';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport clsx from 'clsx';\r\n\r\nconst styles = (theme: Theme) => {\r\n return {\r\n formHeading: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n flexDirection: 'column' as 'column',\r\n marginTop: 40,\r\n marginBottom: 28\r\n },\r\n stepNumber: {\r\n height: 64,\r\n width: 64,\r\n backgroundColor: theme.palette.primary.main,\r\n color: theme.palette.common.white,\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n borderRadius: '50%',\r\n marginBottom: 30,\r\n fontSize: 24,\r\n fontWeight: 500\r\n },\r\n inactiveStepNumber: {\r\n color: theme.palette.text.primary,\r\n backgroundColor: '#E5E8EE'\r\n },\r\n inactiveTitle: {\r\n color: '#C5C5C5'\r\n },\r\n inactiveContent: {\r\n position: 'relative' as 'relative',\r\n pointerEvents: 'none' as 'none',\r\n '&:after': {\r\n position: 'absolute' as 'absolute',\r\n left: 0,\r\n right: 0,\r\n top: 0,\r\n bottom: 0,\r\n content: '\"\"',\r\n background: 'rgba(255,255,255,0.7)'\r\n }\r\n }\r\n };\r\n};\r\n\r\ninterface FormStepProps extends WithStyles {\r\n stepNumber?: number,\r\n title: string,\r\n active?: boolean\r\n}\r\n\r\nconst FormStep: FC = ({ title, stepNumber, active, classes, children }) => {\r\n const actualClasses = {\r\n formHeading: classes.formHeading,\r\n stepNumber: clsx([\r\n classes.stepNumber,\r\n {\r\n [classes.inactiveStepNumber]: !active\r\n }\r\n ]),\r\n title: clsx({\r\n [classes.inactiveTitle]: !active\r\n }),\r\n formContent: clsx({\r\n [classes.inactiveContent]: !active\r\n })\r\n };\r\n return (\r\n \r\n \r\n {stepNumber ?
{stepNumber}
: undefined}\r\n {title}\r\n
\r\n \r\n \r\n {children}\r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default withStyles(styles)(FormStep);\r\n","import { Box, Grid } from '@material-ui/core';\r\nimport { Form } from 'formik';\r\nimport * as React from 'react';\r\nimport { FC } from 'react';\r\nimport FormTextField from '../../../components/Form/FormTextField/FormTextField';\r\nimport ButtonGroup from '../../../components/ButtonGroup/ButtonGroup';\r\nimport Button from '@material-ui/core/Button';\r\nimport FormStep from '../../../components/FormStep/FormStep';\r\n\r\ninterface DigitalCertificateFormProps {\r\n handleSubmit: any;\r\n}\r\n\r\nconst DigitalCertificateForm: FC = (props: DigitalCertificateFormProps) => {\r\n const { handleSubmit } = props;\r\n\r\n return (\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default DigitalCertificateForm;\r\n","import { Box, Grid } from '@material-ui/core';\r\nimport { Form } from 'formik';\r\nimport * as React from 'react';\r\nimport { FC } from 'react';\r\nimport FormTextField from '../../../components/Form/FormTextField/FormTextField';\r\nimport ButtonGroup from '../../../components/ButtonGroup/ButtonGroup';\r\nimport Button from '@material-ui/core/Button';\r\nimport FormStep from '../../../components/FormStep/FormStep';\r\n\r\ninterface SiiCompanyAccountFormProps {\r\n handleSubmit: any,\r\n}\r\n\r\nconst SiiCompanyAccountForm: FC = (props: SiiCompanyAccountFormProps) => {\r\n const { handleSubmit } = props;\r\n\r\n return (\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default SiiCompanyAccountForm;\r\n","import * as React from 'react';\r\nimport { FC } from 'react';\r\nimport AuthPanel from '../../../components/AuthPanel/AuthPanel';\r\nimport { Typography } from '@material-ui/core';\r\nimport { Formik } from 'formik';\r\nimport * as Yup from 'yup';\r\nimport { connect } from 'react-redux';\r\nimport { validateDigitalCertificate, validateSiiCompanyAccount } from '../../../store/user/authentication/authenticationActions';\r\nimport { RouteComponentProps, withRouter } from 'react-router';\r\nimport { DigitalCertificateCredentials, SiiCompanyAccountCredentials } from '../../../store/user/authentication/types';\r\nimport { AppState } from '../../../store/rootReducer';\r\nimport DigitalCertificateForm from './DigitalCertificateForm';\r\nimport SiiCompanyAccountForm from './SiiCompanyAccountForm';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport ButtonGroup from '../../../components/ButtonGroup/ButtonGroup';\r\nimport Button from '@material-ui/core/Button';\r\nimport Box from '@material-ui/core/Box';\r\nimport routes from '../../../routes/routes';\r\n\r\nconst electronicCertificateValidationSchema = Yup.object({\r\n rut: Yup.string()\r\n .required('RUT is required'),\r\n password: Yup.string()\r\n .required('Password is required')\r\n});\r\nconst siiCompanyAccountValidationSchema = electronicCertificateValidationSchema;\r\n\r\ninterface ElectronicCertificateProps extends RouteComponentProps {\r\n digitalCertificateCredentials: DigitalCertificateCredentials,\r\n siiCompanyAccountCredentials: SiiCompanyAccountCredentials,\r\n validateDigitalCertificate: typeof validateDigitalCertificate,\r\n validateSiiCompanyAccount: typeof validateSiiCompanyAccount\r\n}\r\n\r\nexport const ElectronicCertificate: FC = (props: ElectronicCertificateProps) => {\r\n const goBack = () => props.history.push(routes.auth.termsAndConditions);\r\n const accept = () => props.history.push(routes.auth.registrationComplete);\r\n\r\n return (\r\n \r\n Acelerando el proceso de financiamiento\r\n Con esta información mejoraremos la experiencia de financiamiento de tu empresa. Carga el\r\n Certificado Electrónico, con lo cual se sincronizarán automáticamente tus DTE y cargará tu Carpeta Tributaria\r\n \r\n \r\n {\r\n props.validateDigitalCertificate(credentials);\r\n }}\r\n validationSchema={electronicCertificateValidationSchema}\r\n render={props => }\r\n />\r\n \r\n \r\n {\r\n props.validateSiiCompanyAccount(credentials);\r\n }}\r\n validationSchema={siiCompanyAccountValidationSchema}\r\n render={formikProps => (\r\n \r\n )}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst mapStateToProps = (state: AppState) => ({\r\n digitalCertificateCredentials: state.authentication.digitalCertificateCredentials,\r\n siiCompanyAccountCredentials: state.authentication.siiCompanyAccountCredentials\r\n});\r\n\r\nexport default withRouter(connect(\r\n mapStateToProps,\r\n {\r\n validateDigitalCertificate,\r\n validateSiiCompanyAccount\r\n }\r\n)(ElectronicCertificate));\r\n","import React from 'react';\r\nimport { CheckCircleOutline } from '@material-ui/icons';\r\nimport { Theme } from '@material-ui/core';\r\nimport withStyles from '@material-ui/core/styles/withStyles';\r\nimport clsx from 'clsx';\r\n\r\n\r\nconst styles = (theme: Theme) => ({\r\n icon: {\r\n fontSize: 140,\r\n [theme.breakpoints.up('md')]: {\r\n marginTop: 200,\r\n marginBottom: 56\r\n }\r\n }\r\n});\r\n\r\nfunction SuccessIcon(props: any) {\r\n return (\r\n \r\n );\r\n}\r\n\r\nexport default withStyles(styles)(SuccessIcon);\r\n","import * as React from 'react';\r\nimport { FC } from 'react';\r\nimport Typography from '@material-ui/core/Typography/Typography';\r\nimport AuthPanel from '../../../components/AuthPanel/AuthPanel';\r\nimport { RouteComponentProps, withRouter } from 'react-router';\r\nimport Button from '@material-ui/core/Button';\r\nimport withStyles, { WithStyles } from '@material-ui/core/styles/withStyles';\r\nimport { Grid, Theme } from '@material-ui/core';\r\nimport SuccessCircleIcon from '../../../components/icons/SuccessCircleIcon';\r\n\r\n\r\nconst styles = (theme: Theme) => ({\r\n container: {\r\n height: '100%'\r\n },\r\n title: {\r\n marginBottom: 20\r\n },\r\n button: {\r\n marginTop: 20,\r\n [theme.breakpoints.up('md')]: {\r\n marginTop: 'auto'\r\n }\r\n }\r\n});\r\n\r\ninterface RegisterProps extends RouteComponentProps, WithStyles {\r\n}\r\n\r\nexport const RegistrationComplete: FC = (props: RegisterProps) => {\r\n const enter = () => props.history.push('/');\r\n const { classes } = props;\r\n\r\n return (\r\n \r\n \r\n \r\n ¡Felicidades!\r\n Tu cuenta ha sido creada con éxito\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default withRouter(withStyles(styles)(RegistrationComplete));\r\n","import Box from '@material-ui/core/Box';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport { Form } from 'formik';\r\nimport * as React from 'react';\r\nimport { FC } from 'react';\r\nimport FormTextField from '../../../components/Form/FormTextField/FormTextField';\r\nimport Button from '@material-ui/core/Button';\r\nimport ButtonGroup from '../../../components/ButtonGroup/ButtonGroup';\r\nimport FormErrorText from '../../../components/Form/FormErrorText/FormErrorText';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\n\r\ninterface IProps {\r\n handleSubmit: any\r\n onCancel: any\r\n existeCorreoElectronico?: boolean\r\n terminoSolicitudCorrectamente: boolean,\r\n estaSolicitando: boolean\r\n}\r\n\r\nconst ForgotPasswordForm: FC = ({\r\n handleSubmit,\r\n onCancel,\r\n existeCorreoElectronico,\r\n estaSolicitando,\r\n terminoSolicitudCorrectamente\r\n }) => (\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n {existeCorreoElectronico === false ? (\r\n Email no registrado\r\n ) : (existeCorreoElectronico === true ? (\r\n Se ha enviado un correo electrónico con instrucciones para restablecer su contraseña\r\n ) : null)}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n {!terminoSolicitudCorrectamente ? (\r\n \r\n ) : (terminoSolicitudCorrectamente ? (\r\n \r\n ) : null)}\r\n \r\n
\r\n);\r\n\r\nexport default ForgotPasswordForm;\r\n","import * as React from 'react';\r\nimport { FC } from 'react';\r\nimport Typography from '@material-ui/core/Typography/Typography';\r\nimport AuthPanel from '../../../components/AuthPanel/AuthPanel';\r\nimport { Formik } from 'formik';\r\nimport * as Yup from 'yup';\r\nimport { connect } from 'react-redux';\r\nimport { recuperarContrasena } from '../../../store/user/authentication/authenticationActions';\r\nimport { RouteComponentProps, withRouter } from 'react-router';\r\nimport ForgotPasswordForm from './ForgotPasswordForm';\r\nimport routes from '../../../routes/routes';\r\nimport { AppState } from '../../../store/rootReducer';\r\n\r\nexport const validationSchema = Yup.object({\r\n email: Yup.string()\r\n .email('Email no valido')\r\n .required('El correo electrónico es requerido')\r\n});\r\n\r\ninterface IProps extends RouteComponentProps {\r\n recuperarContrasena: (email: string) => any\r\n existeCorreoElectronico?: boolean\r\n terminoSolicitudCorrectamente: boolean,\r\n estaSolicitando: boolean\r\n}\r\n\r\nconst ForgotPassword: FC = (props: IProps) =>\r\n \r\n Escribe tu correo electrónico\r\n Te enviaremos un correo a tu email de contacto para que puedas recuperar tu contraseña\r\n {\r\n if (props.terminoSolicitudCorrectamente) {\r\n props.history.push(routes.auth.recuperarContrasena.reset);\r\n } else {\r\n props.recuperarContrasena(data.email);\r\n }\r\n }}\r\n validationSchema={validationSchema}\r\n render={renderProps => (\r\n props.history.push(routes.auth.login)}\r\n terminoSolicitudCorrectamente={props.terminoSolicitudCorrectamente}\r\n existeCorreoElectronico={props.existeCorreoElectronico}\r\n estaSolicitando={props.estaSolicitando}\r\n />\r\n )}\r\n />\r\n ;\r\n\r\nconst mapStateToProps = (state: AppState) => ({\r\n doesEmailExist: state.authentication.recuperacionContrasena.existeCorreoElectronico,\r\n terminoSolicitudCorrectamente: state.authentication.recuperacionContrasena.terminoSolicitudCorrectamente,\r\n estaSolicitando: state.authentication.recuperacionContrasena.estaSolicitando\r\n});\r\n\r\nconst mapDispatchToProps = (dispatch: any) => ({\r\n recuperarContrasena: (email: string) => dispatch(recuperarContrasena(email))\r\n});\r\n\r\nexport default withRouter(connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(ForgotPassword));\r\n","import Box from '@material-ui/core/Box';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport { Form } from 'formik';\r\nimport * as React from 'react';\r\nimport { FC } from 'react';\r\nimport FormTextField from '../../../components/Form/FormTextField/FormTextField';\r\nimport Button from '@material-ui/core/Button';\r\n\r\ninterface IProps {\r\n handleSubmit: any;\r\n}\r\n\r\nconst ResetPasswordForm: FC = ({\r\n handleSubmit\r\n }) => (\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\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 ResetPasswordForm;\r\n","import * as React from 'react';\r\nimport Typography from '@material-ui/core/Typography/Typography';\r\nimport AuthPanel from '../../../components/AuthPanel/AuthPanel';\r\nimport { Formik } from 'formik';\r\nimport * as Yup from 'yup';\r\nimport { connect } from 'react-redux';\r\nimport { IResetPasswordPayload } from '../../../store/user/authentication/types';\r\nimport { RouteComponentProps, withRouter } from 'react-router';\r\nimport routes from '../../../routes/routes';\r\nimport { AppState } from '../../../store/rootReducer';\r\nimport ResetPasswordForm from './ResetPasswordForm';\r\nimport { authenticationApi } from '../../../api/authentication';\r\n\r\nexport const validationSchema = Yup.object({\r\n token: Yup.string()\r\n .required('El identificador enviado por correo es requerido'),\r\n password: Yup.string()\r\n .required('La contraseña es requerida'),\r\n password_confirm: Yup.string()\r\n .required('La repetición de contraseña es requerida')\r\n .oneOf([Yup.ref('password')], 'Las contraseñas ingresadas no son iguales')\r\n});\r\n\r\ninterface IProps extends RouteComponentProps<{ token: string }> {\r\n resetearContrasena: (payload: IResetPasswordPayload) => Promise;\r\n // checkPasswordResetToken: (token: string) => any\r\n isTokenValid?: boolean;\r\n isPasswordReset?: boolean;\r\n terminoSolicitudCorrectamente: boolean;\r\n correoElectronico: string;\r\n}\r\n\r\nclass ResetPassword extends React.Component {\r\n componentDidMount(): void {\r\n // this.props.checkPasswordResetToken(this.props.match.params.token)\r\n // if (!this.props.terminoSolicitudCorrectamente) {\r\n // this.props.history.push(routes.auth.recuperarContrasena.forgot)\r\n // }\r\n }\r\n\r\n componentDidUpdate(prevProps: IProps): void {\r\n // if (prevProps.isTokenValid === undefined && this.props.isTokenValid === false) {\r\n // this.props.history.push(routes.auth.login)\r\n // }\r\n // if (this.props.isPasswordReset) {\r\n // this.props.history.push(routes.auth.recuperarContrasena.success)\r\n // }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n Crea una nueva contraseña\r\n {/* Hemos validado tu identidad, ahora puedes crear una nueva contraseña. */}\r\n {\r\n this.props.resetearContrasena(data)\r\n .then((result) => {\r\n if (result.exito) {\r\n this.props.history.push(routes.auth.recuperarContrasena.success);\r\n }\r\n });\r\n }}\r\n validationSchema={validationSchema}\r\n render={renderProps => (\r\n \r\n )}\r\n />\r\n \r\n );\r\n }\r\n}\r\n\r\nconst mapsStateToProps = (state: AppState) => ({\r\n isPasswordReset: state.authentication.recuperacionContrasena.isPasswordReset,\r\n isTokenValid: state.authentication.recuperacionContrasena.isTokenValid,\r\n terminoSolicitudCorrectamente: state.authentication.recuperacionContrasena.terminoSolicitudCorrectamente,\r\n correoElectronico: state.authentication.recuperacionContrasena.correoElectronico\r\n});\r\n\r\nconst mapDispatchToProps = (dispatch: any) => ({\r\n resetearContrasena: (payload: IResetPasswordPayload) => authenticationApi.verificaRecuperaContrasena(payload)\r\n // checkPasswordResetToken: (token: string) => dispatch(checkPasswordResetToken(token))\r\n});\r\n\r\nexport default withRouter(connect(\r\n mapsStateToProps,\r\n mapDispatchToProps\r\n)(ResetPassword));\r\n","import * as React from 'react';\r\nimport { FC } from 'react';\r\nimport Typography from '@material-ui/core/Typography/Typography';\r\nimport AuthPanel from '../../../components/AuthPanel/AuthPanel';\r\nimport { RouteComponentProps, withRouter } from 'react-router';\r\nimport Button from '@material-ui/core/Button';\r\nimport withStyles, { WithStyles } from '@material-ui/core/styles/withStyles';\r\nimport { Grid, Theme } from '@material-ui/core';\r\nimport SuccessCircleIcon from '../../../components/icons/SuccessCircleIcon';\r\n\r\n\r\nconst styles = (theme: Theme) => ({\r\n container: {\r\n height: '100%'\r\n },\r\n title: {\r\n marginBottom: 20\r\n },\r\n button: {\r\n marginTop: 20,\r\n [theme.breakpoints.up('lg')]: {\r\n marginTop: 'auto'\r\n }\r\n }\r\n});\r\n\r\ninterface RegisterProps extends RouteComponentProps, WithStyles {\r\n}\r\n\r\nexport const RegistrationComplete: FC = (props: RegisterProps) => {\r\n const enter = () => props.history.push('/');\r\n const { classes } = props;\r\n\r\n return (\r\n \r\n \r\n \r\n ¡Felicidades!\r\n Tu contraseña ha sido restablecida con éxito\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default withRouter(withStyles(styles)(RegistrationComplete));\r\n","import * as React from 'react';\r\nimport { FC } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { logoutUser } from '../../../store/user/authentication/authenticationActions';\r\nimport { RouteComponentProps, withRouter } from 'react-router';\r\nimport { ThunkDispatch } from 'redux-thunk';\r\nimport { AppState } from '../../../store/rootReducer';\r\nimport { AnyAction } from 'redux';\r\nimport routes from '../../../routes/routes';\r\n\r\n\r\ninterface LogoutProps extends RouteComponentProps {\r\n logoutUser: () => Promise;\r\n}\r\n\r\nexport const Logout: FC = (props: LogoutProps) => {\r\n props.logoutUser()\r\n .then((r) => {\r\n props.history.push(routes.auth.login);\r\n });\r\n return (
);\r\n\r\n};\r\n\r\nconst mapDispatchToProps = (dispatch: ThunkDispatch) => ({\r\n logoutUser: () => {\r\n sessionStorage.removeItem('token');\r\n return dispatch(logoutUser())\r\n .then((r) => {\r\n });\r\n }\r\n});\r\n\r\nexport default withRouter(connect(\r\n null,\r\n mapDispatchToProps\r\n)(Logout));\r\n","import * as React from 'react';\r\nimport { FC } from 'react';\r\nimport { Route } from 'react-router';\r\nimport Login from '../pages/Auth/Login/Login';\r\nimport Register from '../pages/Auth/Register/Register';\r\nimport AuthLayout from '../components/layout/Auth/AuthLayout';\r\nimport ConfirmEmail from '../pages/Auth/ConfirmEmail/ConfirmEmail';\r\nimport TermsAndConditions from '../pages/Auth/TermsAndConditions/TermsAndConditions';\r\nimport ElectronicCertificate from '../pages/Auth/ElectronicCertificate/ElectronicCertificate';\r\nimport RegistrationComplete from '../pages/Auth/RegistrationComplete/RegistrationComplete';\r\nimport routes from './routes';\r\nimport ForgotPassword from '../pages/Auth/RecoverPassword/ForgotPassword';\r\nimport ResetPassword from '../pages/Auth/RecoverPassword/ResetPassword';\r\nimport ResetPasswordSuccess from '../pages/Auth/RecoverPassword/ResetPasswordSuccess';\r\nimport Logout from '../pages/Auth/Logout/Logout';\r\n\r\nconst AuthRoutes: FC = () =>\r\n \r\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 AuthRoutes;\r\n","import { Theme } from '@material-ui/core';\r\n\r\nconst styles = (theme: Theme) => (\r\n {\r\n sidebar: {\r\n width: '100%',\r\n display: 'none' as 'none',\r\n position: 'fixed !important' as 'fixed',\r\n top: 0,\r\n height: '64px',\r\n zIndex: theme.zIndex.drawer,\r\n [theme.breakpoints.up('sm')]: {\r\n display: 'flex' as 'flex',\r\n width: '100%',\r\n height: '64px'\r\n },\r\n background: theme.palette.primary.main\r\n },\r\n sidebarLogo: {\r\n width: '112px',\r\n height: '35px'\r\n },\r\n sidebarOpen: {\r\n display: 'flex' as 'flex',\r\n width: '100vw',\r\n [theme.breakpoints.up('sm')]: {\r\n width: '100%'\r\n },\r\n transition: theme.transitions.create('width', {\r\n easing: theme.transitions.easing.sharp,\r\n duration: theme.transitions.duration.enteringScreen\r\n })\r\n },\r\n sidebarClosed: {\r\n transition: theme.transitions.create('width', {\r\n easing: theme.transitions.easing.sharp,\r\n duration: theme.transitions.duration.leavingScreen\r\n })\r\n },\r\n lightVariant: {\r\n backgroundColor: theme.palette.primary.light,\r\n '& [class*=openIconButton] [class*=menuItemText]': {\r\n color: '#fff',\r\n opacity: 0.7\r\n },\r\n '& [class*=openIconButton]:hover [class*=menuItemText]': {\r\n opacity: 1\r\n },\r\n '& [class*=openIconButtonActive] [class*=menuItemText]': {\r\n '& [class*=underLineMenu]': {\r\n width: '100%',\r\n height: '4px',\r\n backgroundColor: '#fff',\r\n marginTop: '3px',\r\n display: 'block',\r\n transition: 'all .5 linear ease-in-out'\r\n }\r\n }\r\n },\r\n darkVariant: {\r\n backgroundColor: theme.palette.primary.dark\r\n },\r\n sidebarWrapper: {\r\n paddingBottom: 5,\r\n width: '100%',\r\n height: '64px'\r\n },\r\n containerOpen: {\r\n width: '100%',\r\n height: '64px',\r\n paddingLeft: 20,\r\n paddingRight: 20\r\n },\r\n menuIcon: {\r\n color: '#fff',\r\n height: 92,\r\n display: 'flex' as 'flex',\r\n alignItems: 'center' as 'center',\r\n justifyContent: 'center' as 'center',\r\n '& .MuiIconButton-root': {\r\n width: 60,\r\n height: 60\r\n }\r\n },\r\n openMenuIcon: {\r\n justifyContent: 'flex-start' as 'flex-start'\r\n },\r\n backButtonContainer: {\r\n marginBottom: 12\r\n },\r\n backButton: {\r\n color: '#fff',\r\n display: 'flex' as 'flex',\r\n alignItems: 'center' as 'center',\r\n justifyContent: 'center' as 'center',\r\n padding: 0,\r\n width: 38,\r\n height: 38,\r\n backgroundColor: 'rgba(0,0,0,0.19)',\r\n '&:hover': {\r\n backgroundColor: 'transpanret'\r\n }\r\n },\r\n openIconButton: {\r\n borderRadius: 5,\r\n width: '100%',\r\n justifyContent: 'flex-start' as 'flex-start',\r\n '&:hover [class*=menuItemText]': {\r\n color: '#fff'\r\n },\r\n '&:hover [class*=menuItemIcon]': {\r\n opacity: 1\r\n },\r\n '&:hover': {\r\n backgroundColor: 'transparent'\r\n },\r\n '&:hover [class*=underLineMenu]': {\r\n width: '100%',\r\n height: '4px',\r\n backgroundColor: '#fff',\r\n marginTop: '3px',\r\n display: 'block',\r\n transition: 'all .5 linear ease-in-out'\r\n }\r\n },\r\n underLineMenu: {\r\n width: '100%',\r\n height: '4px',\r\n backgroundColor: '#fff',\r\n marginTop: '3px'\r\n },\r\n openIconButtonActive: {\r\n backgroundColor: 'transparent',\r\n fontWeight: 600,\r\n color: '#fff',\r\n transition: 'all .3 ease-in-out',\r\n '& [class*=menuItemIcon]': {\r\n opacity: 1\r\n },\r\n '& [class*=menuItemText]': {\r\n color: '#fff'\r\n },\r\n '& [class*=underLineMenu]': {\r\n width: '100%',\r\n height: '4px',\r\n backgroundColor: '#fff',\r\n marginTop: '3px',\r\n display: 'block',\r\n transition: 'all .3 linear ease-in-out'\r\n }\r\n },\r\n menuItem: {\r\n height: 65,\r\n display: 'flex' as 'flex',\r\n alignItems: 'center' as 'center',\r\n justifyContent: 'center',\r\n width: 'initial',\r\n padding: '10px'\r\n\r\n },\r\n subMenuItem: {\r\n display: 'flex' as 'flex',\r\n alignItems: 'center' as 'center',\r\n justifyContent: 'center' as 'center'\r\n },\r\n menuItemIconWrapper: {\r\n width: 36,\r\n height: 36,\r\n display: 'flex' as 'flex',\r\n alignItems: 'center' as 'center',\r\n justifyContent: 'center' as 'center'\r\n },\r\n openMenuItemIconWrapper: {\r\n marginRight: 12\r\n },\r\n menuItemIcon: {\r\n opacity: .5,\r\n width: 24\r\n },\r\n menuItemText: {\r\n fontWeight: 500,\r\n color: '#fff',\r\n paddingLeft: 7,\r\n overflow: 'hidden' as 'hidden',\r\n textOverflow: 'ellipsis' as 'ellipsis',\r\n whiteSpace: 'nowrap' as 'nowrap',\r\n textAlign: 'left' as 'left'\r\n },\r\n backButtonText: {\r\n fontWeight: 500,\r\n color: '#fff',\r\n paddingLeft: 19\r\n },\r\n sidebarContainer: {\r\n width: '100vw',\r\n height: '64px',\r\n position: 'fixed' as 'fixed',\r\n zIndex: 1201\r\n },\r\n headerMenuMobileContainer: {\r\n height: '100%',\r\n width: '100%',\r\n position: 'relative' as 'relative',\r\n zIndex: 1201,\r\n display: 'flex' as 'flex',\r\n alignItems: 'center' as 'center'\r\n },\r\n hamburMenu: {\r\n width: '60px',\r\n height: '35px',\r\n color: '#fff'\r\n },\r\n subMenuSidebarHeaderOpen: {\r\n width: '100%',\r\n position: 'absolute' as 'absolute',\r\n top: '64px',\r\n backgroundColor: '#fff',\r\n zIndex: 1201,\r\n display: 'flex' as 'flex',\r\n alignItems: 'flex-start' as 'flex-start',\r\n padding: '16px 16px 16px 18.5%',\r\n boxSizing: 'border-box' as 'border-box',\r\n opacity: 1,\r\n boxShadow: '0px 3px 14px rgba(0, 0, 0, 0.12), 0px 4px 4px rgba(0, 0, 0, 0.25)',\r\n transition: theme.transitions.create('all', {\r\n easing: theme.transitions.easing.easeInOut,\r\n duration: theme.transitions.duration.leavingScreen\r\n }),\r\n [theme.breakpoints.down('xs')]: {\r\n zIndex: 1202,\r\n padding: '16px',\r\n display: 'flex' as 'flex',\r\n flexDirection: 'column' as 'column',\r\n minHeight: '92vh',\r\n overflowY: 'auto' as 'auto',\r\n borderBottom: '1px solid rgba(0,0,0,.5)',\r\n background: 'rgb(255,255,255)',\r\n transition: theme.transitions.create('all', {\r\n easing: theme.transitions.easing.easeInOut,\r\n duration: theme.transitions.duration.leavingScreen\r\n }),\r\n '& [class*=boxMenu]': {\r\n width: '100%',\r\n maxWidth: 'inherit' as 'inherit',\r\n paddingTop: '13px',\r\n boxSizing: 'border-box' as 'border-box',\r\n borderRight: 'none',\r\n transition: theme.transitions.create('all', {\r\n easing: theme.transitions.easing.easeInOut,\r\n duration: theme.transitions.duration.leavingScreen\r\n })\r\n }\r\n }\r\n\r\n },\r\n subMenuSidebarHeaderClose: {\r\n width: '100%',\r\n position: 'absolute' as 'absolute',\r\n top: '64px',\r\n backgroundColor: '#fff',\r\n zIndex: 0,\r\n display: 'flex' as 'flex',\r\n alignItems: 'flex-start' as 'flex-start',\r\n padding: '16px 16px 16px 18.5%',\r\n boxSizing: 'border-box' as 'border-box',\r\n pointerEvents: 'none' as 'none',\r\n transition: theme.transitions.create('all', {\r\n easing: theme.transitions.easing.easeInOut,\r\n duration: theme.transitions.duration.leavingScreen\r\n }),\r\n opacity: 0,\r\n cursor: 'none' as 'none',\r\n [theme.breakpoints.down('xs')]: {\r\n zIndex: 0,\r\n padding: '16px',\r\n pointerEvents: 'none' as 'none',\r\n '& [class*=boxMenu]': {\r\n borderRight: 'none'\r\n }\r\n }\r\n },\r\n boxMenu: {\r\n width: '25%',\r\n maxWidth: '220px',\r\n marginRight: '30px',\r\n '& ul': {\r\n listStyle: 'none' as 'none',\r\n padding: '0px',\r\n margin: '0px',\r\n borderRight: '1px solid rgba(0, 0, 0, 0.1)',\r\n transition: theme.transitions.create('all', {\r\n easing: theme.transitions.easing.easeInOut,\r\n duration: '.4s'\r\n }),\r\n '& li': {\r\n fontWeight: 500,\r\n fontSize: '14px',\r\n lineHeight: '20px',\r\n letterSpacing: '0.25px',\r\n color: 'rgba(0, 0, 0, 0.84)',\r\n padding: '18px 0px',\r\n cursor: 'pointer',\r\n transition: theme.transitions.create('all', {\r\n easing: theme.transitions.easing.easeInOut,\r\n duration: '.4s'\r\n }),\r\n display: 'flex' as 'flex',\r\n alignItems: 'center' as 'center',\r\n justifyContent: 'flex-start' as 'flex-start',\r\n position: 'relative' as 'relative'\r\n },\r\n '& li:hover': {\r\n color: '#c72e1a',\r\n transition: theme.transitions.create('all', {\r\n easing: theme.transitions.easing.easeInOut,\r\n duration: '.4s'\r\n })\r\n }\r\n },\r\n '&:last-child ul': {\r\n borderRight: 'none'\r\n },\r\n [theme.breakpoints.down('xs')]: {\r\n '& ul': {\r\n borderRight: 'none',\r\n display: 'none' as 'none'\r\n }\r\n }\r\n },\r\n boxMenuOpen: {\r\n transition: theme.transitions.create('all', {\r\n easing: theme.transitions.easing.easeInOut,\r\n duration: '.4s'\r\n }),\r\n [theme.breakpoints.down('xs')]: {\r\n '& ul': {\r\n visibility: 'visible' as 'visible',\r\n borderRight: 'none',\r\n opacity: 1,\r\n listStyle: 'none' as 'none',\r\n padding: '0px',\r\n margin: '0px'\r\n },\r\n '& li': {\r\n fontWeight: 500,\r\n fontSize: '14px',\r\n lineHeight: '20px',\r\n letterSpacing: '0.25px',\r\n color: '#c72e1a',\r\n padding: '18px 0px',\r\n cursor: 'pointer',\r\n transition: theme.transitions.create('all', {\r\n easing: theme.transitions.easing.easeInOut,\r\n duration: '.4s'\r\n }),\r\n display: 'flex' as 'flex',\r\n alignItems: 'center' as 'center',\r\n justifyContent: 'flex-start',\r\n position: 'relative' as 'relative'\r\n }\r\n }\r\n },\r\n boxMenuTitle: {\r\n fontStyle: 'normal' as 'normal',\r\n fontWeight: 500,\r\n fontSize: '14px',\r\n lineHeight: '20px',\r\n letterSpacing: '0.25px',\r\n textTransform: 'uppercase' as 'uppercase',\r\n color: '#000',\r\n [theme.breakpoints.down('xs')]: {\r\n display: 'flex' as 'flex',\r\n justifyContent: 'space-between' as 'space-between',\r\n color: '#fff'\r\n }\r\n },\r\n circleMenu: {\r\n width: '7px',\r\n height: '7px',\r\n borderRadius: '7px',\r\n marginLeft: '7px'\r\n }\r\n }\r\n);\r\n\r\nexport default styles;\r\n","import * as React from 'react';\r\nimport clsx from 'clsx';\r\nimport { Grid, WithStyles } from '@material-ui/core';\r\nimport withStyles from '@material-ui/core/styles/withStyles';\r\nimport styles from './styles';\r\n\r\nexport interface SidebarMenuBaseProps extends WithStyles {\r\n onToggle: () => void,\r\n open: boolean,\r\n variant?: 'dark' | 'light',\r\n mobileOpen?: boolean\r\n}\r\n\r\nclass SidebarMenuBase extends React.Component {\r\n render() {\r\n const {\r\n classes,\r\n onToggle,\r\n children,\r\n open,\r\n variant,\r\n mobileOpen\r\n } = this.props;\r\n const classContainer = (mobileOpen) ? 'containerItemsMenu open' : 'containerItemsMenu close';\r\n\r\n return (\r\n \r\n \r\n \r\n
\r\n {children}\r\n
\r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default withStyles(styles)(SidebarMenuBase);\r\n","import React from 'react';\r\nimport routes from '../../../../../../routes/routes';\r\nimport { Permisos } from '../../../../../../utils/utils';\r\nimport { IHeaderMenu } from '../../types';\r\n\r\n\r\nexport const MenuRoutes: IHeaderMenu[] = [\r\n {\r\n label: 'Resumen',\r\n link: routes.resumen\r\n },\r\n {\r\n label: 'Pesajes',\r\n subMenu: [\r\n {\r\n title: 'Pesajes',\r\n items: [\r\n {\r\n label: 'Por pesaje',\r\n link: routes.listados.pesajes,\r\n requires: [Permisos.UsuarioPesajes]\r\n },\r\n {\r\n label: 'Por documento',\r\n link: routes.listados.documentos,\r\n requires: [Permisos.UsuarioPesajes]\r\n }]\r\n }\r\n\r\n\r\n ],\r\n requires: [Permisos.UsuarioPesajes, Permisos.UsuarioPlataforma]\r\n },\r\n // {\r\n // label: 'Consultar',\r\n // subMenu: [\r\n // {\r\n // title: 'Cartera',\r\n // items: [\r\n // {\r\n // label: 'Facturas en Cartera',\r\n // link: '',\r\n // }\r\n // ]\r\n // },\r\n // {\r\n // title: 'Excedentes',\r\n // items: [\r\n // {\r\n // label: 'Disponibles',\r\n // link: '',\r\n // },\r\n // {\r\n // label: 'liquidaciones',\r\n // link: '',\r\n // }\r\n // ]\r\n // },\r\n // {\r\n // title: 'Cobranza',\r\n // items: [\r\n // {\r\n // label: 'Detalle de Cobranza',\r\n // link: '',\r\n // }\r\n // ]\r\n // },\r\n // {\r\n // title: 'Línea',\r\n // items: [\r\n // {\r\n // label: 'Detalle de Línea',\r\n // link: '',\r\n // }\r\n // ]\r\n // },\r\n // {\r\n // title: 'Cartola',\r\n // items: [\r\n // {\r\n // label: 'Cartola por Periodo',\r\n // link: '',\r\n // }\r\n // ]\r\n // }\r\n // ]\r\n // // requires: [Permisos.FactoringRealizarCesiones]\r\n // },\r\n {\r\n label: 'Configurar',\r\n subMenu: [\r\n {\r\n title: 'Banco',\r\n items: [\r\n {\r\n label: 'Cuentas Bancarias',\r\n link: routes.cuentasCorrientes,\r\n requires: [Permisos.UsuarioPlataforma]\r\n }\r\n ]\r\n }\r\n ],\r\n requires: [999999]\r\n }\r\n];\r\n","import React from 'react';\r\nimport { Hidden, WithStyles } from '@material-ui/core';\r\nimport { RouteComponentProps, withRouter } from 'react-router';\r\nimport styles from '../../styles';\r\nimport { UsuarioPortal } from '../../../../../../store/user/company/types';\r\nimport { IHeaderSubMenu, IHeaderSubMenuItem } from '../../types';\r\nimport { connect } from 'react-redux';\r\nimport withStyles from '@material-ui/core/styles/withStyles';\r\n\r\ninterface ISubMenuContainerProps extends RouteComponentProps, WithStyles {\r\n open: string,\r\n title: string,\r\n submenu: IHeaderSubMenu[],\r\n usuario: UsuarioPortal,\r\n onClickLink: any,\r\n onMouseLeave: any\r\n}\r\n\r\nclass SubMenuContainer extends React.Component {\r\n\r\n constructor(props: any) {\r\n super(props);\r\n this.state = {\r\n activeSubmenu: ''\r\n };\r\n }\r\n\r\n handleClickMenu = (activate: string) => {\r\n const activ = activate === this.state.activeSubmenu ? '' : activate;\r\n this.setState({\r\n activeSubmenu: activ\r\n });\r\n };\r\n\r\n render() {\r\n const { open, title, submenu, classes } = this.props;\r\n let stateSubmenu = (open === title) ? classes.subMenuSidebarHeaderOpen : classes.subMenuSidebarHeaderClose;\r\n\r\n return (\r\n
this.props.onMouseLeave(open)}>\r\n {submenu.filter(u => this.props.usuario.puedeEjecutar(u.requires))\r\n .map((menu: IHeaderSubMenu, i: any) => (\r\n
\r\n \r\n
\r\n {menu.title}\r\n
\r\n
\r\n \r\n
this.handleClickMenu(menu.title)}>\r\n {menu.title}\r\n
\r\n
\r\n
    \r\n {menu.items.filter(u => this.props.usuario.puedeEjecutar(u.requires))\r\n .map((m: IHeaderSubMenuItem, k: any) => (\r\n
  • this.props.onClickLink(m)}>\r\n {m.label}\r\n {m.circle !== undefined &&\r\n
    \r\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 withRouter(connect(\r\n null,\r\n null\r\n)(withStyles(styles)(SubMenuContainer)));\r\n","import React from 'react';\r\nimport arrowDropDown from './../../images/icons/arrowDropDown.svg';\r\n\r\nfunction ArrowDropDown(props) {\r\n return (\r\n \r\n );\r\n}\r\n\r\nexport default ArrowDropDown;\r\n","import React from 'react';\r\nimport keyboardArrowRight from './../../images/icons/keyboardArrowRight.svg';\r\n\r\nfunction KeyboardArrowRight(props) {\r\n return (\r\n \r\n );\r\n}\r\n\r\nexport default KeyboardArrowRight;\r\n","import { createActionCreator } from 'deox';\r\nimport { DocumentoFilters, FetchDocumentosSuccessPayload, FetchEstadisticaUltimosDiasSuccessPayload, ISetFilterPayload } from './type';\r\nimport { Dispatch } from 'redux';\r\nimport * as fromAPI from '../../api/documento';\r\nimport { AppState } from '../rootReducer';\r\nimport { createNotification } from '../notifications/notificationsActions';\r\nimport { descargaArchivo } from '../../utils/utilsDescarga';\r\n\r\nexport const fetchDocumentoBegin = createActionCreator('FETCH_DOCUMENTO_BEGIN');\r\nexport const fetchDocumentoSuccess = createActionCreator(\r\n 'FETCH_DOCUMENTO_SUCCESS',\r\n resolve => (payload: FetchDocumentosSuccessPayload) => resolve(payload)\r\n);\r\nexport const fetchDocumentoFailure = createActionCreator(\r\n 'FETCH_DOCUMENTO_FAILURE',\r\n resolve => (error: string) => resolve(error)\r\n);\r\nexport const obtenerEstadisticaUltimosDiasSuccess = createActionCreator(\r\n 'FETCH_DOCUMENTO_ULTIMOS_DIAS_SUCCESS',\r\n resolve => (payload: FetchEstadisticaUltimosDiasSuccessPayload) => resolve(payload)\r\n);\r\n\r\nexport function obtenerDocumentos(resetPage?: boolean) {\r\n\r\n return async (dispatch: Dispatch, getState: () => AppState) => {\r\n const isResettingPage = resetPage || false;\r\n const state = getState();\r\n\r\n if (state.userCompany.empresaSeleccionada.id == 0) return;\r\n\r\n if (isResettingPage) {\r\n dispatch(fetchDocumentoSuccess({\r\n documentos: [],\r\n hasMoreItems: true,\r\n isResettingPage: true\r\n }));\r\n }\r\n\r\n dispatch(fetchDocumentoBegin());\r\n try {\r\n\r\n const localState = state.documento;\r\n console.log(localState);\r\n if (!isResettingPage && !localState.hasMoreItems) {\r\n dispatch(fetchDocumentoFailure('No hay mas documentos'));\r\n return;\r\n }\r\n const nextPage = (isResettingPage ? 0 : localState.pagina) + 1;\r\n\r\n const result = await fromAPI.listarDocumento(nextPage, isResettingPage, state);\r\n dispatch(fetchDocumentoSuccess(result));\r\n } catch (error) {\r\n dispatch(fetchDocumentoFailure(error));\r\n\r\n }\r\n };\r\n}\r\n\r\nexport const updateDocumentoFilters = createActionCreator(\r\n 'UPDATE_TABLE_DOCUMENTOS_FILTERS',\r\n resolve => (filters: DocumentoFilters) => resolve(filters)\r\n);\r\n\r\nexport const setDocumentoFilterAction = createActionCreator(\r\n 'SET_TABLE_DOCUMENTOS_FILTER',\r\n resolve => (payload: ISetFilterPayload) => resolve(payload)\r\n);\r\n\r\nexport const resetDocumentoFilterAction = createActionCreator(\r\n 'RESET_TABLE_DOCUMENTOS_FILTERS',\r\n resolve => () => resolve()\r\n);\r\n\r\nexport function setDocumentoFilter(payload: ISetFilterPayload) {\r\n return async (dispatch: Dispatch, getState: () => AppState) => {\r\n dispatch(setDocumentoFilterAction(payload));\r\n };\r\n}\r\n\r\nexport function resetDocumentoFilters() {\r\n return async (dispatch: Dispatch, getState: () => AppState) => {\r\n const state = getState();\r\n dispatch(resetDocumentoFilterAction());\r\n };\r\n}\r\n\r\n\r\nexport function obtenerEstadisticaUltimosDias() {\r\n return async (dispatch: Dispatch, getState: () => AppState) => {\r\n const state = getState();\r\n\r\n if (state.userCompany.empresaSeleccionada.id == 0) return;\r\n try {\r\n const result = await fromAPI.obtenerEstadisticaUltimosDias(state);\r\n dispatch(obtenerEstadisticaUltimosDiasSuccess(result));\r\n } catch (error) {\r\n\r\n }\r\n };\r\n}\r\n\r\nconst _cargarDocumentoThunk = (idDocumento: number) => async (dispatch: Dispatch, getState: () => AppState) => {\r\n dispatch(cargarDocumento.request(idDocumento));\r\n const state = getState();\r\n try {\r\n let result = await fromAPI.cargarDocumento(idDocumento, state);\r\n if (result.exito) {\r\n dispatch(cargarDocumento.success(result.documento));\r\n } else {\r\n dispatch(cargarDocumento.failure(result.mensaje));\r\n }\r\n } catch (error) {\r\n dispatch(cargarDocumento.failure(error));\r\n }\r\n};\r\n\r\nexport const cargarDocumento = Object.assign(_cargarDocumentoThunk, {\r\n request: createActionCreator(\r\n 'CARGAR_DOCUMENTO_REQUEST',\r\n resolve => (idDocumento: number) => resolve(idDocumento)\r\n ),\r\n success: createActionCreator(\r\n 'CARGAR_DOCUMENTO_SUCCESS',\r\n resolve => (documento: Dto.Documento) => resolve(documento)\r\n ),\r\n failure: createActionCreator(\r\n 'CARGAR_DOCUMENTO_FAILURE',\r\n resolve => (error: string) => resolve(error)\r\n )\r\n});\r\n\r\n\r\nconst _obtenerPdfDocumentoThunk = (idDocumento: number) => async (dispatch: Dispatch, getState: () => AppState) => {\r\n dispatch(obtenerPdfDocumento.request(idDocumento));\r\n const state = getState();\r\n try {\r\n fromAPI.descargarPdf(idDocumento, state)\r\n .then(result => {\r\n if (result.exito) {\r\n descargaArchivo(result.bytes, result.nombre);\r\n } else {\r\n dispatch(obtenerPdfDocumento.failure(result.mensaje));\r\n dispatch(createNotification({ message: 'El documento aún no está disponible para descargar.', type: 'error' }));\r\n }\r\n });\r\n } catch (error) {\r\n dispatch(obtenerPdfDocumento.failure(error));\r\n }\r\n};\r\n\r\nexport const obtenerPdfDocumento = Object.assign(_obtenerPdfDocumentoThunk, {\r\n request: createActionCreator(\r\n 'OBTENERPDF_DOCUMENTO_REQUEST',\r\n resolve => (idDocumento: number) => resolve(idDocumento)\r\n ),\r\n success: createActionCreator(\r\n 'OBTENERPDF_DOCUMENTO_SUCCESS',\r\n resolve => (documento: Dto.Documento) => resolve(documento)\r\n ),\r\n failure: createActionCreator(\r\n 'OBTENERPDF_DOCUMENTO_FAILURE',\r\n resolve => (error: string) => resolve(error)\r\n )\r\n});\r\n","import React from 'react';\r\nimport ArrowDropDown from '../../../../../icons/ArrowDropDown';\r\nimport KeyboardArrowRight from '../../../../../icons/KeyboardArrowRight';\r\nimport routes from '../../../../../../routes/routes';\r\nimport { AppState } from '../../../../../../store/rootReducer';\r\nimport { ThunkDispatch } from 'redux-thunk';\r\nimport { AnyAction } from 'redux';\r\nimport { cambiarEmpresa } from '../../../../../../store/user/company/companyActions';\r\nimport { RouteComponentProps, withRouter } from 'react-router';\r\nimport { connect } from 'react-redux';\r\nimport withStyles from '@material-ui/styles/withStyles/withStyles';\r\nimport styles from '../../styles';\r\nimport { WithStyles } from '@material-ui/core';\r\nimport { UsuarioPortal } from '../../../../../../store/user/company/types';\r\nimport { obtenerEstadisticaUltimosDias, obtenerPesajes, resetPesajeFilters } from '../../../../../../store/pesaje/pesajeActions';\r\nimport { obtenerDocumentos } from '../../../../../../store/documento/documentoActions';\r\n\r\ninterface MenuRightFlotingProps extends RouteComponentProps, WithStyles {\r\n empresaSeleccionada: Dto.Portal.Empresa,\r\n usuario: UsuarioPortal,\r\n empresas: Dto.Portal.Empresa[],\r\n setEmpresaSeleccionada: (company: Dto.Portal.Empresa) => void,\r\n // actualizarUsuarioEmpresas : (company : Dto.Portal.Empresa) => void,\r\n resetPesaje: () => void,\r\n resetDocumento: () => void,\r\n obtenerPesajesUltimos30Dias: () => void,\r\n clearFilters: () => Promise,\r\n}\r\n\r\n// menu a la derecha\r\nclass MenuRightFloting extends React.Component {\r\n\r\n constructor(props: any) {\r\n super(props);\r\n this.state = {\r\n open: false,\r\n openSubmenuUno: false\r\n };\r\n }\r\n\r\n onToogle = () => {\r\n this.setState({\r\n open: !this.state.open,\r\n openSubmenuUno: false\r\n });\r\n };\r\n\r\n closeMenu = () => {\r\n this.setState({\r\n open: false,\r\n openSubmenuUno: false\r\n });\r\n };\r\n\r\n onToogleSubmenuUno = () => {\r\n this.setState({\r\n openSubmenuUno: !this.state.openSubmenuUno\r\n });\r\n };\r\n\r\n // setEmpresa = (company : Dto.Portal.Empresa) => {\r\n // this.props.setEmpresaSeleccionada(company)\r\n // .then(r => {\r\n // if (this.props.usuario.evaluar(company.permisos, [Permisos.UsuarioPesajes])) {\r\n // this.props.history.push(routes.listados.pesajes);\r\n // } else {\r\n // this.props.history.push(routes.resumen);\r\n // }\r\n // });\r\n //\r\n // };\r\n\r\n setEmpresa = (company: Dto.Portal.Empresa) => {\r\n this.props.setEmpresaSeleccionada(company);\r\n this.props.obtenerPesajesUltimos30Dias();\r\n this.props.clearFilters();\r\n this.props.resetPesaje();\r\n this.props.resetDocumento();\r\n this.props.history.push(routes.resumen);\r\n // this.props.onToggle()\r\n };\r\n\r\n getSiglas = (nombre: string): string => {\r\n let p = (nombre || '').split(' ');\r\n return p[0][0] + (p.length > 1 ? p[1][0] : '');\r\n };\r\n\r\n\r\n render() {\r\n const { open, openSubmenuUno } = this.state;\r\n const { empresas, empresaSeleccionada, usuario, history } = this.props;\r\n const stateDropDown = (open) ? 'dropdownSeccion open' : 'dropdownSeccion close';\r\n const stateSubMenu1 = (openSubmenuUno) ? 'subMenu open' : 'subMenu close';\r\n\r\n return (\r\n
this.closeMenu()}>\r\n
\r\n
{this.getSiglas(usuario.nombre)}
\r\n
\r\n
Empresa
\r\n
{empresaSeleccionada.razonSocial}
\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • history.push(routes.cuenta.editar)}>Mi Cuenta
  • \r\n {/*
  • Medios de Pago
  • */}\r\n {/*
  • Usuarios
  • */}\r\n
\r\n
    \r\n {/*
  • Cambiar Producto */}\r\n {/*
    */}\r\n {/*
      */}\r\n {/*
    • Factoring
    • */}\r\n {/*
    • Confirming
    • */}\r\n {/*
    */}\r\n {/*
    */}\r\n {/*
  • */}\r\n
  • Cambiar Empresa \r\n
    \r\n
      \r\n {empresas.map(companyItem => (\r\n
    • this.setEmpresa(companyItem)} key={companyItem.rut}>{companyItem.razonSocial}
    • \r\n ))}\r\n
    \r\n
    \r\n
  • \r\n
\r\n
    \r\n
  • history.push(routes.auth.logout)}>Salir\r\n
  • \r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state: AppState) => {\r\n return {\r\n empresaSeleccionada: state.userCompany.empresaSeleccionada,\r\n empresas: state.userCompany.empresas,\r\n usuario: state.userCompany.usuario\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = (dispatch: ThunkDispatch) => ({\r\n setEmpresaSeleccionada: (company: Dto.Portal.Empresa) => {\r\n dispatch(cambiarEmpresa(company));\r\n },\r\n resetPesaje: () => dispatch(obtenerPesajes(true)),\r\n resetDocumento: () => dispatch(obtenerDocumentos(true)),\r\n obtenerPesajesUltimos30Dias: () => dispatch(obtenerEstadisticaUltimosDias()),\r\n clearFilters: () => dispatch(resetPesajeFilters())\r\n});\r\n\r\nexport default withRouter(connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(withStyles(styles)(MenuRightFloting)));\r\n","import { logoUrl } from '../../theme';\r\nimport * as React from 'react';\r\n\r\nconst LogoChico = () => {\r\n return (\r\n logoUrl ? (\r\n \r\n ) : LOGO\r\n );\r\n};\r\n\r\nexport default LogoChico;\r\n","import React from 'react';\r\nimport { Grid, IconButton, WithStyles } from '@material-ui/core';\r\nimport styles from '../../styles';\r\nimport withStyles from '@material-ui/core/styles/withStyles';\r\nimport SidebarMenuBase from '../../SidebarMenuBase';\r\nimport Hidden from '@material-ui/core/Hidden';\r\nimport { AppState } from '../../../../../../store/rootReducer';\r\nimport { connect } from 'react-redux';\r\nimport { UsuarioPortal } from '../../../../../../store/user/company/types';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport clsx from 'clsx';\r\nimport MenuIcon from '@material-ui/icons/Menu';\r\n\r\n// new menu\r\nimport { MenuRoutes } from './MenuRoutes';\r\nimport SubMenuContainer from './SubMenuContainer';\r\nimport MenuRightFloting from './MenuRightFloting';\r\nimport { RouteComponentProps, withRouter } from 'react-router';\r\nimport { IHeaderMenu, IHeaderSubMenuItem } from '../../types';\r\nimport LogoChico from '../../../../../Logo/LogoChico';\r\n\r\ninterface ISidebarHeaderMenuProps extends RouteComponentProps, WithStyles {\r\n open: boolean,\r\n onToggle: () => void,\r\n usuario: UsuarioPortal\r\n}\r\n\r\nclass SidebarHeaderMenu extends React.Component {\r\n\r\n constructor(props: any) {\r\n super(props);\r\n this.state = {\r\n activeSubmenu: '',\r\n active: '',\r\n mobileOpen: false,\r\n activeClickMenu: ''\r\n };\r\n }\r\n\r\n updateState(active: string) {\r\n this.setState(() => ({\r\n activeSubmenu: active,\r\n active: active\r\n }));\r\n }\r\n\r\n handleClickMenu = (item: IHeaderMenu | IHeaderSubMenuItem) => {\r\n const activ = item.label === this.state.activeSubmenu ? '' : item.label;\r\n this.updateState(activ);\r\n if (item.link) {\r\n this.props.history.push(item.link);\r\n return;\r\n }\r\n };\r\n\r\n onMouseEnter = (item: IHeaderMenu | IHeaderSubMenuItem) => {\r\n /*\r\n if(this.state.activeSubmenu === '' || item.label !== this.state.active){\r\n this.updateState(item.label);\r\n }\r\n */\r\n };\r\n\r\n closeMenu = () => {\r\n this.setState({\r\n activeSubmenu: '',\r\n active: '',\r\n mobileOpen: false\r\n });\r\n };\r\n\r\n closeMenuWithClick = (active: string) => {\r\n this.setState({\r\n activeSubmenu: '',\r\n activeClickMenu: active,\r\n mobileOpen: false\r\n });\r\n };\r\n\r\n handleOpenMobileContainer = () => {\r\n if (this.state.mobileOpen) {\r\n this.closeMenu();\r\n }\r\n this.setState({\r\n mobileOpen: !this.state.mobileOpen\r\n });\r\n };\r\n\r\n handleClickLink = (item: IHeaderSubMenuItem) => {\r\n if (item.link) {\r\n this.closeMenuWithClick(this.state.active);\r\n this.props.history.push(item.link);\r\n return;\r\n }\r\n };\r\n\r\n onSubMouseLeave = (active: string) => {\r\n this.closeMenu();\r\n };\r\n\r\n render() {\r\n const {\r\n open,\r\n onToggle,\r\n // onOpenSubmenu,\r\n classes\r\n } = this.props;\r\n const { active, mobileOpen, activeClickMenu } = this.state;\r\n\r\n const menu = (\r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n {MenuRoutes.filter(u => this.props.usuario.puedeEjecutar(u.requires))\r\n .map((item, i) => (\r\n this.onMouseEnter(item)}>\r\n this.handleClickMenu(item)}\r\n className={clsx({\r\n [classes.openIconButton]: open,\r\n [classes.openIconButtonActive]: activeClickMenu === item.label\r\n })}>\r\n {console.log('active: ', active, 'item: ', item.label)}\r\n \r\n {item.label}\r\n \r\n \r\n \r\n ))}\r\n
\r\n\r\n \r\n \r\n \r\n
\r\n
\r\n );\r\n\r\n const subMenu = (\r\n \r\n {MenuRoutes\r\n .filter(u => this.props.usuario.puedeEjecutar(u.requires))\r\n .map((item) => {\r\n return (\r\n (item.subMenu != undefined) ?\r\n \r\n : ''\r\n );\r\n })}\r\n \r\n );\r\n\r\n return (\r\n \r\n
\r\n {menu}\r\n {subMenu}\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state: AppState) => ({\r\n usuario: state.userCompany.usuario\r\n});\r\n\r\nexport default withRouter(connect(\r\n mapStateToProps,\r\n null\r\n)(withStyles(styles)(SidebarHeaderMenu)));\r\n\r\n// export default withStyles(styles)(SidebarFactoringMainMenu)\r\n","import React from 'react';\r\nimport SidebarHeaderMenu from './Menus/NavbarMenu/SidebarHeaderMenu';\r\nimport { connect } from 'react-redux';\r\nimport { AppState } from '../../../../store/rootReducer';\r\nimport { IHeaderSubMenu } from './types';\r\n\r\ninterface SidebarProps {\r\n open: boolean,\r\n onToggle: () => void,\r\n}\r\n\r\ninterface SidebarState {\r\n subMenu?: IHeaderSubMenu;\r\n}\r\n\r\nconst mainMenus: { [index: number]: React.ElementType } = {\r\n 0: SidebarHeaderMenu,\r\n 1: SidebarHeaderMenu\r\n // 2: SidebarConfirmingMainMenu,\r\n};\r\n\r\nclass Sidebar extends React.Component {\r\n constructor(props: any) {\r\n super(props);\r\n this.state = {\r\n subMenu: undefined\r\n };\r\n }\r\n\r\n handleToggle = () => {\r\n this.props.onToggle();\r\n this.setState({\r\n subMenu: undefined\r\n });\r\n };\r\n\r\n handleOpenSubmenu = (subMenu: IHeaderSubMenu) => {\r\n if (!this.props.open) {\r\n this.props.onToggle();\r\n }\r\n this.setState({\r\n subMenu\r\n });\r\n };\r\n\r\n handleCloseSubmenu = () => {\r\n this.setState({\r\n subMenu: undefined\r\n });\r\n };\r\n\r\n render() {\r\n const {\r\n subMenu: SubMenu\r\n } = this.state;\r\n\r\n const { open } = this.props;\r\n const SidebarMainMenu = mainMenus[0];\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state: AppState) => ({});\r\n\r\nexport default connect(\r\n mapStateToProps\r\n)(Sidebar);\r\n","import * as React from 'react';\r\nimport { FC } from 'react';\r\nimport styled from 'styled-components';\r\nimport { INotification } from '../../store/notifications/types';\r\nimport { Typography } from '@material-ui/core';\r\n\r\ninterface IProps extends INotification, React.HTMLAttributes {\r\n}\r\n\r\nconst Notification: FC = (props) => (\r\n
\r\n \r\n {props.message}\r\n
\r\n);\r\n\r\nexport default styled(Notification)`\r\n display: flex;\r\n align-items: flex-start;\r\n min-height: 30px;\r\n`;\r\n\r\nconst Indicator = styled.div<{ type: INotification['type'] }>`\r\n background: ${props => props.type === 'success' ? '#01D59F' : (props.type === 'error' ? 'rgba(205, 47, 47, 0.5)' : '#C6CBD4')}\r\n border-radius: 50%;\r\n height: 9px;\r\n width: 9px;\r\n margin-right: 18px;\r\n margin-top: 6px;\r\n flex-shrink: 0;\r\n`;\r\n","import * as React from 'react';\r\nimport styled from 'styled-components';\r\nimport { AppState } from '../../store/rootReducer';\r\nimport { connect } from 'react-redux';\r\nimport { INotification } from '../../store/notifications/types';\r\nimport Paper from '../Paper';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport { Close } from '@material-ui/icons';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport Notification from './Notification';\r\nimport { clearNotifications } from '../../store/notifications/notificationsActions';\r\nimport Scrollbar from 'react-scrollbars-custom';\r\n\r\ninterface IProps extends React.HTMLAttributes {\r\n notifications: INotification[];\r\n clearNotifications: () => void;\r\n}\r\n\r\nclass NotificationArea extends React.Component {\r\n render() {\r\n return (\r\n this.props.notifications.length ? (\r\n \r\n Notificación ({this.props.notifications.length})\r\n this.props.clearNotifications()}>\r\n \r\n \r\n
\r\n \r\n {this.props.notifications.map((notification, index) => (\r\n \r\n ))}\r\n \r\n\r\n
\r\n ) : null\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state: AppState) => ({\r\n notifications: state.notifications.items\r\n});\r\n\r\nconst mapDispatchToProps = (dispatch: any) => ({\r\n clearNotifications: () => dispatch(clearNotifications())\r\n});\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(styled(NotificationArea)`\r\n border: none;\r\n border-top: 7px solid #01D59F;\r\n padding: 13px 22px;\r\n min-height: 160px;\r\n width: 390px;\r\n position: fixed;\r\n right: 10px;\r\n bottom: 10px;\r\n \r\n [class*=MuiIconButton-root] {\r\n position: absolute;\r\n right: 15px;\r\n top: 5px;\r\n padding: 4px;\r\n }\r\n`);\r\n\r\n\r\nconst ScrollContainer = styled(Scrollbar)`\r\n .ScrollbarsCustom-TrackY {\r\n background: #e4e4e4;\r\n }\r\n \r\n .ScrollbarsCustom-ThumbY {\r\n background: #8c8c8c\r\n }\r\n`;\r\n","import React from 'react';\r\nimport Sidebar from './Sidebar/Sidebar';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport withStyles from '@material-ui/core/styles/withStyles';\r\nimport NotificationArea from '../../NotificationArea/NotificationArea';\r\n\r\nconst styles = theme => {\r\n return {\r\n container: {\r\n height: '100%'\r\n },\r\n grow: {\r\n flexGrow: 1\r\n },\r\n content: {\r\n paddingTop: 92,\r\n width: '100%',\r\n backgroundColor: '#f1f1f1',\r\n boxSizing: 'border-box',\r\n paddingBottom: 30,\r\n [theme.breakpoints.up('sm')]: {\r\n maxWidth: '100%',\r\n paddingLeft: 0,\r\n marginLeft: 0\r\n }\r\n }\r\n };\r\n};\r\n\r\nclass Layout extends React.Component {\r\n state = {\r\n sidebarOpen: true\r\n };\r\n\r\n handleToggleSidebar = () => {\r\n this.setState({\r\n sidebarOpen: !this.state.sidebarOpen\r\n });\r\n };\r\n\r\n render() {\r\n return (\r\n \r\n \r\n \r\n {this.props.children}\r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default withStyles(styles)(Layout);\r\n","import Grid from '@material-ui/core/Grid';\r\nimport React from 'react';\r\nimport withStyles from '@material-ui/core/styles/withStyles';\r\n\r\nconst styles = theme => {\r\n return {\r\n wrapper: {\r\n paddingLeft: 10,\r\n paddingRight: 10,\r\n [theme.breakpoints.up('sm')]: {\r\n paddingLeft: 0,\r\n paddingRight: 93\r\n }\r\n },\r\n grow: {\r\n flexGrow: 1\r\n },\r\n noShrink: {\r\n flexShrink: 0\r\n }\r\n };\r\n};\r\n\r\nconst PaddingContainer = ({classes, children, className = ''}) =>\r\n \r\n \r\n \r\n {children}\r\n \r\n ;\r\n\r\nexport default withStyles(styles)(PaddingContainer);\r\n","import * as React from 'react';\r\nimport { FC } from 'react';\r\n\r\nconst formatter = new Intl.NumberFormat('en', {\r\n style: 'currency',\r\n currency: 'CLP',\r\n minimumFractionDigits: 0\r\n});\r\n\r\ninterface CurrencyProps {\r\n number: number,\r\n style?: any\r\n}\r\n\r\nconst Currency: FC = ({ number, style = {} }) => {\r\n const currency = formatter.formatToParts(number)\r\n .map(({ type, value }) => {\r\n if (type === 'currency') {\r\n return '';\r\n }\r\n if (type === 'group') {\r\n return '.';\r\n }\r\n if (type === 'decimal') {\r\n return ',';\r\n }\r\n return value;\r\n })\r\n .reduce((string, part) => string + part, '')\r\n .trim();\r\n return $ {currency};\r\n};\r\n\r\nexport default Currency;\r\n","import * as React from 'react';\r\nimport { FC } from 'react';\r\nimport { formatNumber } from '../../utils/utils';\r\n\r\ninterface NumberProps {\r\n number: number,\r\n fractionDigits?: number,\r\n style?: any\r\n}\r\n\r\nconst Number: FC = ({ number, fractionDigits, style = {} }) => {\r\n return {formatNumber(number, fractionDigits || 0)};\r\n};\r\n\r\nexport default Number;\r\n","import { default as React } from 'react';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Box from '@material-ui/core/Box';\r\nimport Paper from '../../components/Paper';\r\nimport Currency from '../../components/Typography/Currency';\r\nimport Number from '../../components/Typography/Number';\r\nimport { Grid } from '@material-ui/core';\r\nimport styled from 'styled-components';\r\nimport { palette } from '../../theme';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport { KeyboardArrowRight } from '@material-ui/icons';\r\nimport { AppState } from '../../store/rootReducer';\r\nimport routes from '../../routes/routes';\r\nimport { History } from 'history';\r\n\r\ninterface IProps {\r\n state: AppState;\r\n history: History;\r\n}\r\n\r\nconst LineItems: React.FC = ({ state, history }) => {\r\n const ultimoMes = state.pesaje.ultimoMes;\r\n const mesCurso = state.pesaje.mesCurso;\r\n return (\r\n
\r\n Resumen últimos períodos\r\n \r\n \r\n \r\n }\r\n />\r\n }\r\n />\r\n }\r\n />\r\n
\r\n }\r\n />\r\n }\r\n />\r\n }\r\n />\r\n
\r\n \r\n \r\n Ir a pesajes\r\n \r\n history.push(routes.listados.pesajes)}>\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default styled(LineItems)`\r\n display: flex;\r\n flex-direction: column;\r\n height: 100%;\r\n\r\n [class*='MuiBox'] {\r\n flex-grow: 1;\r\n }\r\n [class*='MuiPaper'] {\r\n height: 100%;\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: space-between;\r\n }\r\n`;\r\n\r\nexport const LineItem = styled(({ label, value, ...props }) => (\r\n \r\n {label}\r\n {value}\r\n \r\n))`\r\n p {\r\n line-height: 30px;\r\n }\r\n .strong {\r\n font-weight: bold\r\n }\r\n`;\r\n\r\nexport const CTA = styled.div`\r\n padding: 18px 30px 19px;\r\n background: ${palette.secondary.main};\r\n color: #fff;\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n button {\r\n padding: 4px !important;\r\n }\r\n`;\r\n","import * as React from 'react';\r\nimport { createRef } from 'react';\r\nimport Grid from '@material-ui/core/Grid';\r\n\r\ninterface DisabledTableRowProps {\r\n content: any,\r\n paddedLeft?: boolean\r\n paddingLeft?: number\r\n index: number\r\n}\r\n\r\ninterface IState {\r\n top: number;\r\n left: number;\r\n width: number;\r\n height: number;\r\n}\r\n\r\nclass DisabledTableRow extends React.Component {\r\n private ref = createRef();\r\n private paddingLeft: number;\r\n\r\n constructor(props: DisabledTableRowProps) {\r\n super(props);\r\n this.paddingLeft = this.props.paddingLeft || 90;\r\n this.state = {\r\n top: 0,\r\n left: 0,\r\n width: 0,\r\n height: 0\r\n };\r\n }\r\n\r\n componentDidMount(): void {\r\n this.updateDimensions();\r\n window.addEventListener('resize', this.updateDimensions.bind(this));\r\n }\r\n\r\n componentDidUpdate(prevProps: DisabledTableRowProps): void {\r\n if (this.props.index !== prevProps.index) {\r\n this.updateDimensions();\r\n }\r\n }\r\n\r\n updateDimensions(): void {\r\n if (this.ref.current) {\r\n let tableRow = this.ref.current.previousElementSibling as HTMLTableRowElement;\r\n this.setState({\r\n top: tableRow.offsetTop,\r\n height: tableRow.offsetHeight - 1,\r\n width: tableRow.offsetWidth - (this.props.paddedLeft ? this.paddingLeft : 0) - 270 //los 130 son para poder seleccionar\r\n });\r\n }\r\n }\r\n\r\n\r\n getStyle() {\r\n return {\r\n position: 'absolute' as 'absolute',\r\n top: this.state.top,\r\n left: this.props.paddedLeft ? this.paddingLeft : 0,\r\n height: this.state.height,\r\n width: this.state.width,\r\n backgroundColor: 'rgba(255,255,255,.9)'\r\n };\r\n }\r\n\r\n render() {\r\n return
\r\n \r\n {this.props.content}\r\n \r\n
;\r\n }\r\n}\r\n\r\nexport default DisabledTableRow;\r\n","import React, { FC } from 'react';\r\nimport CircularProgress, { CircularProgressProps } from '@material-ui/core/CircularProgress';\r\n\r\nconst TableRowLoading: FC = (props) => (\r\n \r\n);\r\n\r\nexport default TableRowLoading;\r\n","import { Theme } from '@material-ui/core';\r\n\r\nconst styles = (theme: Theme) => {\r\n return {\r\n container: {\r\n overflow: 'auto',\r\n position: 'relative' as 'relative'\r\n },\r\n checkboxTableCell: {\r\n padding: 0,\r\n paddingLeft: 23\r\n },\r\n highlightedTableCell: {\r\n fontWeight: 500,\r\n color: '#414141'\r\n },\r\n sortableTableCell: {\r\n padding: '8px 32px 8px 8px'\r\n },\r\n tableRowTinted: {\r\n backgroundColor: 'rgba(229,232,238,0.2)'\r\n },\r\n tableRow: {\r\n '& + .hover-content': {\r\n opacity: 0,\r\n pointerEvents: 'none' as 'none',\r\n transition: theme.transitions.create('opacity')\r\n },\r\n '&:hover + .hover-content, & + .hover-content:hover, &:active + .hover-content, & + .hover-content:active': {\r\n pointerEvents: 'auto' as 'auto',\r\n opacity: 1\r\n }\r\n },\r\n mobileTableCard: {\r\n marginBottom: 20\r\n },\r\n mobileTableRow: {\r\n '&:nth-of-type(even)': {\r\n backgroundColor: theme.palette.background.default\r\n },\r\n height: 'auto',\r\n display: 'flex' as 'flex',\r\n flexDirection: 'column' as 'column',\r\n padding: '11px 20px'\r\n },\r\n mobileTableRowSelected: {\r\n position: 'relative' as 'relative',\r\n '&:after': {\r\n content: '\"\"',\r\n display: 'block' as 'block',\r\n position: 'absolute' as 'absolute',\r\n top: 0,\r\n bottom: 0,\r\n left: 0,\r\n right: 0,\r\n background: 'rgba(65, 102, 252, 0.1)',\r\n pointerEvents: 'none' as 'none'\r\n }\r\n },\r\n mobileTableCell: {\r\n border: 0,\r\n padding: 0,\r\n fontSize: 14,\r\n color: '#8C8C8C'\r\n },\r\n mobileTableHeader: {\r\n fontWeight: 500,\r\n color: '#3C3C3C',\r\n marginBottom: 2\r\n },\r\n mobileTableSelectAllContainer: {\r\n padding: '4px 20px',\r\n marginBottom: 20\r\n },\r\n bottonFilter: {\r\n '&:hover': {\r\n backgroundColor: 'transparent'\r\n }\r\n }\r\n };\r\n};\r\n\r\nexport default styles;\r\n","import * as React from 'react';\r\nimport { createRef } from 'react';\r\nimport Grid from '@material-ui/core/Grid';\r\n\r\ninterface MobileTableRowHoverContentProps {\r\n content: any,\r\n positionStatic?: boolean\r\n}\r\n\r\nclass MobileTableRowHoverContent extends React.Component {\r\n state = {\r\n width: 0,\r\n height: 0\r\n };\r\n private ref = createRef();\r\n private selectRowHeight = 85;\r\n\r\n componentDidMount(): void {\r\n this.updateDimensions();\r\n window.addEventListener('resize', this.updateDimensions.bind(this));\r\n }\r\n\r\n updateDimensions(): void {\r\n if (!this.props.positionStatic && this.ref.current) {\r\n let tableRow = this.ref.current.parentElement as HTMLDivElement;\r\n this.setState({\r\n height: tableRow.offsetHeight - 1 - this.selectRowHeight,\r\n width: tableRow.offsetWidth\r\n });\r\n }\r\n }\r\n\r\n\r\n getStyle() {\r\n return this.props.positionStatic ?\r\n {} :\r\n {\r\n position: 'absolute' as 'absolute',\r\n top: 0,\r\n left: 0,\r\n width: this.state.width,\r\n height: this.state.height,\r\n backgroundColor: 'rgba(255,255,255,.9)'\r\n };\r\n }\r\n\r\n render() {\r\n return
\r\n \r\n {this.props.content}\r\n \r\n
;\r\n }\r\n}\r\n\r\nexport default MobileTableRowHoverContent;\r\n","import * as React from 'react';\r\nimport { FC } from 'react';\r\nimport styled from 'styled-components';\r\nimport { Status } from '../../../store/types';\r\n\r\ninterface IProps extends React.HTMLAttributes {\r\n status: Status;\r\n}\r\n\r\nconst TableRowStatusIndicator: FC = ({ className }) => (\r\n
\r\n);\r\n\r\nexport default styled(TableRowStatusIndicator)`\r\n width: 12px;\r\n height: 12px;\r\n border-radius: 50%;\r\n background: ${props => props.status.level === 'success' ? '#01D59F' : (props.status.level === 'error' ? 'rgba(205, 47, 47, 0.5)' : '#C6CBD4')}\r\n`;\r\n","import React from 'react';\r\nimport clsx from 'clsx';\r\nimport { TableHeader } from './types';\r\nimport { Button, TableCell, WithStyles } from '@material-ui/core';\r\nimport styles from './styles';\r\nimport withStyles from '@material-ui/core/styles/withStyles';\r\nimport TableRow from '@material-ui/core/TableRow';\r\nimport Box from '@material-ui/core/Box';\r\nimport TableRowLoading from '../TableRowLoading';\r\nimport MobileTableRowHoverContent from '../MobileTableRowHoverContent';\r\nimport TableRowStatusIndicator from './TableRowStatusIndicator';\r\n\r\ninterface MobileTableRowProps extends WithStyles {\r\n headers: TableHeader[],\r\n row: any,\r\n onSelectRow?: (event: any, rowId: string) => void,\r\n}\r\n\r\nclass MobileTableRow extends React.Component {\r\n render() {\r\n const {\r\n headers,\r\n classes,\r\n row,\r\n onSelectRow\r\n } = this.props;\r\n\r\n return (\r\n
\r\n \r\n {headers.map((header: TableHeader) => {\r\n let Component = header.component ? header.component : 'span';\r\n let render = header.render ? header.render : (v: string) => v;\r\n return (\r\n \r\n {!header.mobileNoLabel ? (\r\n \r\n {header.label}\r\n \r\n ) : ''}\r\n \r\n \r\n {render(row[header.id], row.id, row)}\r\n \r\n \r\n \r\n );\r\n })}\r\n {onSelectRow ? (\r\n \r\n row.isLoading ? null : onSelectRow(event, row.id)!}\r\n >\r\n {row.isLoading ? (\r\n \r\n \r\n \r\n ) : (\r\n row.selected ? 'Seleccionado' : 'Seleccionar'\r\n )}\r\n \r\n {row.status && row.status.status && }\r\n \r\n ) : null}\r\n
\r\n {row.hoverContent ? (\r\n \r\n ) : ''}\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withStyles(styles)(MobileTableRow);\r\n","import { TableProps } from './types';\r\nimport React from 'react';\r\nimport { Card } from '@material-ui/core';\r\nimport CardContent from '@material-ui/core/CardContent';\r\nimport Paper from '../../Paper';\r\nimport Checkbox from '../../Form/Checkbox/Checkbox';\r\nimport MobileTableRowHoverContent from '../MobileTableRowHoverContent';\r\nimport MobileTableRow from './MobileTableRow';\r\n\r\nconst MobileTable = (props: TableProps) => {\r\n const {\r\n data,\r\n classes,\r\n headers,\r\n onSelectRow,\r\n onSelectAllRows\r\n } = props;\r\n return (\r\n \r\n {onSelectAllRows ? (\r\n \r\n \r\n \r\n ) : ''}\r\n {data.map((row: any, index: number) => (\r\n \r\n \r\n \r\n {row.disabled && props.replaceDisabledContentOnMobile ? (\r\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 MobileTable;\r\n","import React from 'react';\r\nimport MuiTable from '@material-ui/core/Table';\r\nimport TableBody from '@material-ui/core/TableBody';\r\nimport TableHead from '@material-ui/core/TableHead';\r\nimport TableRow from '@material-ui/core/TableRow';\r\nimport TableCell from '@material-ui/core/TableCell';\r\nimport withStyles from '@material-ui/core/styles/withStyles';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport Hidden from '@material-ui/core/Hidden';\r\nimport Paper from '../../Paper';\r\nimport DisabledTableRow from '../DisabledTableRow';\r\nimport TableRowLoading from '../TableRowLoading';\r\nimport { TableHeader, TableProps } from './types';\r\nimport styles from './styles';\r\nimport MobileTable from './MobileTable';\r\nimport clsx from 'clsx';\r\nimport { ArrowDownward } from '@material-ui/icons';\r\nimport { Button } from '@material-ui/core';\r\nimport TableRowStatusIndicator from './TableRowStatusIndicator';\r\nimport styled from 'styled-components';\r\n\r\nexport const Table = (props: TableProps) => {\r\n const {\r\n classes,\r\n headers,\r\n data,\r\n onSelectAllRows,\r\n onSelectRow,\r\n onSortByField\r\n } = props;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {onSelectAllRows ? (\r\n \r\n \r\n \r\n ) : null}\r\n {headers.map(\r\n (header: TableHeader) => {\r\n const content = header.renderHeader ? header.renderHeader(header) : header.label;\r\n const sortable = onSortByField && header.sortable;\r\n const filterable = props.hasQuickFilters && header.filterModal;\r\n return (\r\n \r\n {filterable ? (\r\n header.filterModal\r\n ) : (header.sortable && onSortByField ? (\r\n \r\n ) : content)}\r\n\r\n \r\n );\r\n }\r\n )}\r\n \r\n \r\n \r\n {data.map(\r\n (row: any, index: number) => {\r\n return (\r\n \r\n \r\n {onSelectRow ? (\r\n \r\n {row.isLoading ? (\r\n \r\n ) : (\r\n \r\n onSelectRow(event, row.id)!}\r\n checked={row.selected}\r\n disabled={row.disabled}\r\n />\r\n {row.status && }\r\n \r\n )}\r\n \r\n ) : null}\r\n {headers.map(\r\n (header: TableHeader) => {\r\n let Component = header.component ? header.component : 'span';\r\n let render = header.render ? header.render : (v: string) => v;\r\n return (\r\n \r\n \r\n {render(row[header.id], row.id, row)}\r\n \r\n \r\n );\r\n }\r\n )}\r\n \r\n {row.hoverContent ? (\r\n \r\n ) : ''}\r\n \r\n );\r\n }\r\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 withStyles(styles)(Table);\r\n\r\n\r\nconst CheckboxStatusContainer = styled.div`\r\n display: flex;\r\n flex-wrap: nowrap;\r\n align-items: center;\r\n \r\n ${TableRowStatusIndicator} {\r\n margin-left: 5px;\r\n }\r\n`;\r\n","import * as React from 'react';\r\nimport Table from '../../components/Table/Table/Table';\r\nimport { TableHeader } from '../../components/Table/Table/types';\r\nimport Currency from '../../components/Typography/Currency';\r\nimport Number from '../../components/Typography/Number';\r\nimport styled from 'styled-components';\r\nimport { palette } from '../../theme';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport { AppState } from '../../store/rootReducer';\r\nimport Box from '@material-ui/core/Box';\r\nimport { formatStringDate } from '../../utils/utils';\r\n\r\nconst headers: TableHeader[] = [\r\n {\r\n id: 'fechaIngreso',\r\n align: 'center',\r\n label: 'Fecha de Ingreso',\r\n render: formatStringDate\r\n },\r\n {\r\n id: 'idProducto',\r\n label: 'Producto',\r\n render: (data, rowId, row: Dto.PesajeListado) => row.maestroProducto\r\n },\r\n {\r\n id: 'peso',\r\n label: 'Peso (Kgs)',\r\n render: (data, rowId, row: Dto.PesajeListado) => \r\n },\r\n {\r\n id: 'precioUnitario',\r\n label: 'Precio unitario',\r\n render: (data, rowId, row: Dto.PesajeListado) => \r\n },\r\n {\r\n id: 'montoNeto',\r\n label: 'Monto pesaje',\r\n render: (data, rowId, row: Dto.PesajeListado) => \r\n },\r\n {\r\n id: 'sucursal',\r\n label: 'Sucursal'\r\n }\r\n // {\r\n // id: 'tipo',\r\n // label: 'Tipo',\r\n // },\r\n];\r\n\r\ninterface Props {\r\n state: AppState;\r\n}\r\n\r\nconst LastMovementsMade: React.FC = ({ state }) => {\r\n return (\r\n
\r\n Pesajes en los últimos 30 días\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default styled(LastMovementsMade)`\r\n h2 {\r\n margin-bottom: 35px;\r\n }\r\n`;\r\n\r\nconst Status = styled.div`\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n height: 30px;\r\n padding: 0 16px;\r\n border-radius: 4px;\r\n color: #fff;\r\n background: ${palette.secondary.main};\r\n`;\r\n","import { default as React, FC } from 'react';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Box from '@material-ui/core/Box';\r\nimport Paper from '../../components/Paper';\r\nimport styled from 'styled-components';\r\nimport HojaVerde from '../../images/hojaverde.png';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport { AppState } from '../../store/rootReducer';\r\nimport { History } from 'history';\r\nimport Number from '../../components/Typography/Number';\r\n\r\ninterface IProps {\r\n state: AppState;\r\n history: History;\r\n}\r\n\r\nconst factores: number[] = [1.817, 0.389078498, 0.779863481, 0.196245734, 4.206484642, 4.709897611];\r\n\r\nconst ResumenHuellaCarbono: FC = (props: IProps) => {\r\n const { state, history, ...rest } = props;\r\n const ultimoMes = state.pesaje.ultimoMes;\r\n const mesCurso = state.pesaje.mesCurso;\r\n\r\n const conversor = (toneladas: number, indice: number) =>\r\n Math.round((toneladas * factores[indice]) / 10) / 100;\r\n const tco2 = conversor(mesCurso.totalKilogramos, 0) + conversor(ultimoMes.totalKilogramos, 0);\r\n return (\r\n
\r\n Impacto en la huella de carbono en últimos períodos\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Haz ayudado reduciendo{' '}\r\n {} tco2\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Mes anteriorMes curso
Kilogramos reciclados\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n Vehículos conducidos al año\r\n \r\n \r\n \r\n \r\n
\r\n Kilogramos de carbón quemado\r\n \r\n \r\n \r\n \r\n
\r\n Casas que han utilizado energía por un año\r\n \r\n \r\n \r\n \r\n
\r\n Barriles de petróleo consumidos\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n Carbono almacenado por estos árboles en el período de un año\r\n \r\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 styled(ResumenHuellaCarbono)`\r\n height: 100%;\r\n display: flex;\r\n flex-direction: column;\r\n .table {\r\n width: 100%;\r\n padding: 5px;\r\n text-align: right;\r\n font-size: 14px;\r\n tr {\r\n height: 30px;\r\n }\r\n }\r\n .hoja {\r\n max-width: 30px;\r\n position: absolute;\r\n top: 24px;\r\n right: 36px;\r\n }\r\n`;\r\n\r\nconst BackgroundPaper = styled(Paper)`\r\n flex-grow: 1;\r\n margin-top: 35px;\r\n position : relative;\r\n box-shadow: 0 2px 34px 0 rgb(0 0 0 / 15%);\r\n //background: linear-gradient(149.14deg, #5C3EFF -28.73%, #01C8F5 110.93%, #00C9F5 120.49%);\r\n //border: 1px solid #4A972A !important;\r\n color: #107b10 !important;\r\n`;\r\n","import * as React from 'react';\r\nimport PaddingContainer from '../../components/layout/PaddingContainer';\r\nimport { Grid } from '@material-ui/core';\r\nimport Box from '@material-ui/core/Box';\r\nimport LineItems from './LineItems';\r\nimport LastMovementsMade from './LastMovementsMade';\r\nimport { AppState } from '../../store/rootReducer';\r\nimport { connect } from 'react-redux';\r\nimport { RouteComponentProps } from 'react-router';\r\nimport ResumenHuellaCarbono from './ResumenHuellaCarbono';\r\n\r\ninterface IProps extends RouteComponentProps {\r\n state: AppState;\r\n}\r\n\r\nconst Dashboard: React.FC = ({ state, history }) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst mapStateToProps = (state: AppState) => {\r\n return {\r\n state: state\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps, null)(Dashboard);\r\n","import React, { FC, ReactElement } from 'react';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport withStyles, { WithStyles } from '@material-ui/core/styles/withStyles';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport PaddingContainer from '../components/layout/PaddingContainer';\r\nimport { Theme } from '@material-ui/core';\r\nimport clsx from 'clsx';\r\n\r\nconst styles = (theme: Theme) => {\r\n return {\r\n pageHeader: {\r\n // paddingTop: 10,\r\n paddingLeft: 10,\r\n paddingRight: 10,\r\n [theme.breakpoints.up('sm')]: {\r\n // paddingTop: 30,\r\n paddingLeft: 0,\r\n paddingRight: 93\r\n },\r\n paddingBottom: 10,\r\n width: '100%'\r\n },\r\n pageHeaderBackLink: {\r\n paddingTop: 34\r\n },\r\n backLink: {\r\n marginBottom: 22\r\n },\r\n title: {\r\n color: '#B8B8B8',\r\n marginBottom: 30\r\n },\r\n content: {\r\n [theme.breakpoints.up('sm')]: {\r\n marginLeft: 'auto'\r\n }\r\n }\r\n };\r\n};\r\n\r\ninterface PageHeaderProps extends WithStyles {\r\n title: string | ReactElement,\r\n backLink?: ReactElement,\r\n actions?: ReactElement\r\n}\r\n\r\nconst PageHeader: FC = (props) => {\r\n const {\r\n classes,\r\n title,\r\n children,\r\n backLink,\r\n actions\r\n } = props;\r\n return (\r\n \r\n \r\n {backLink ? (\r\n \r\n {backLink}\r\n \r\n ) : ''}\r\n \r\n \r\n {title}\r\n \r\n \r\n \r\n {children}\r\n \r\n {actions ? actions : undefined}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default withStyles(styles)(PageHeader);\r\n","import { default as React, FC, useEffect, useState } from 'react';\r\nimport { Grid } from '@material-ui/core';\r\nimport TextField from '../../../components/Form/TextField/TextField';\r\nimport Button from '@material-ui/core/Button';\r\n// import {IUserData} from \"../../../store/account/types\"\r\nimport { ActionMeta } from 'react-select/src/types';\r\nimport { EdicionUsuarioEmpresaPayload } from '../../../store/user/company/types';\r\n\r\nexport interface OptionType {\r\n label: string;\r\n value: T;\r\n}\r\n\r\ninterface IProps {\r\n userData: EdicionUsuarioEmpresaPayload\r\n usuario: Dto.Usuario,\r\n empresa: Dto.Portal.Empresa,\r\n onSave: (userData: EdicionUsuarioEmpresaPayload) => void\r\n comunas: Dto.Comuna[]\r\n}\r\n\r\nconst EditDataForm: FC = props => {\r\n const [userData, setUserData] = useState(props.userData);\r\n\r\n useEffect(() => {\r\n setUserData(props.userData);\r\n }, [props.userData]);\r\n\r\n const handleUpdateUserData = (field: string) => (ev: React.ChangeEvent) => {\r\n let { value } = ev.currentTarget;\r\n if (field == 'passwordConfirm') {\r\n if (value == userData.nuevaContrasena) {\r\n setUserData({\r\n ...userData,\r\n ['nuevaContrasena']: value\r\n });\r\n }\r\n } else {\r\n setUserData({\r\n ...userData,\r\n [field]: value\r\n });\r\n }\r\n\r\n };\r\n\r\n const handleSelectChange = (selected: any, action: ActionMeta) => {\r\n if (selected) {\r\n if (selected.target.value > 0) {\r\n setUserData({\r\n ...userData,\r\n [selected.target.name]: selected.target.value.toString()\r\n });\r\n }\r\n }\r\n };\r\n\r\n const handleSave = () => {\r\n props.onSave(userData);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {userData.nuevaContrasena != userData.repeticionContrasena ? No son iguales : ''}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\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 EditDataForm;\r\n","import * as React from 'react';\r\nimport PageHeader from '../../PageHeader';\r\nimport Paper from '../../../components/Paper';\r\nimport PaddingContainer from '../../../components/layout/PaddingContainer';\r\nimport styled from 'styled-components';\r\nimport { AppState } from '../../../store/rootReducer';\r\nimport { connect } from 'react-redux';\r\n// import {IUserData} from \"../../../store/account/types\"\r\nimport EditDataForm from './EditDataForm';\r\nimport { EdicionUsuarioEmpresaPayload } from '../../../store/user/company/types';\r\nimport { actualizarInformacionUsuario } from '../../../store/user/company/companyActions';\r\n\r\ninterface IProps {\r\n userData?: EdicionUsuarioEmpresaPayload,\r\n actualizarInformacionUsuario: (userData: EdicionUsuarioEmpresaPayload) => void\r\n comunas: Dto.Comuna[],\r\n usuario: Dto.Usuario,\r\n empresa: Dto.Portal.Empresa,\r\n}\r\n\r\nclass EditData extends React.Component {\r\n componentDidMount(): void {\r\n }\r\n\r\n handleSave = (userData: EdicionUsuarioEmpresaPayload) => {\r\n this.props.actualizarInformacionUsuario(userData);\r\n };\r\n\r\n render() {\r\n const { userData, comunas, empresa, usuario } = this.props;\r\n return (\r\n \r\n \r\n \r\n \r\n {userData &&\r\n \r\n }\r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state: AppState) => {\r\n let userData: EdicionUsuarioEmpresaPayload = {\r\n direccion: state.userCompany.empresaSeleccionada.direccion || '',\r\n movil: state.userCompany.empresaSeleccionada.movil || '',\r\n giro: state.userCompany.empresaSeleccionada.giro || '',\r\n comuna: '',\r\n nombreComuna: state.userCompany.empresaSeleccionada.nombreComuna,\r\n telefono: state.userCompany.empresaSeleccionada.telefono || '',\r\n nombre: state.userCompany.usuario.nombre,\r\n nuevaContrasena: '',\r\n repeticionContrasena: ''\r\n };\r\n return {\r\n userData: userData,\r\n comunas: state.global.comunas,\r\n usuario: state.userCompany.usuario,\r\n empresa: state.userCompany.empresaSeleccionada\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = (dispatch: any) => ({\r\n actualizarInformacionUsuario: (userData: EdicionUsuarioEmpresaPayload) => dispatch(actualizarInformacionUsuario(userData))\r\n});\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(EditData);\r\n\r\nconst Wrapper = styled.div`\r\n text-align: center;\r\n \r\n [class*=PaddingContainer] > .MuiGrid-container{\r\n justify-content: center;\r\n }\r\n \r\n [class*=PageHeader-content]{\r\n display: none\r\n }\r\n \r\n [class*=MuiPaper]{ \r\n max-width: 560px;\r\n padding: 35px 60px; \r\n margin: 0 auto;\r\n }\r\n`;\r\n","import React from 'react';\r\nimport MuiRadio from '@material-ui/core/Radio';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\n\r\nconst Radio = ({labelProps = {}, ...props}) => {\r\n const radio = ;\r\n return props.label ? (\r\n \r\n ) : radio;\r\n};\r\n\r\nexport default Radio;\r\n","import * as React from 'react';\r\nimport { FC } from 'react';\r\nimport MuiSwitch, { SwitchProps } from '@material-ui/core/Switch/Switch';\r\n\r\nconst Switch: FC = (props: SwitchProps) => {\r\n return ;\r\n};\r\n\r\nexport default Switch;\r\n","import { AuthenticationState } from './types';\r\nimport { createReducer } from 'deox';\r\nimport {\r\n acceptTermsAndConditions,\r\n loginUserBegin,\r\n loginUserFailure,\r\n loginUserSuccess,\r\n recuperarContrasena,\r\n registerUserBegin,\r\n registerUserFailure,\r\n registerUserSuccess,\r\n validateDigitalCertificate,\r\n validateSiiCompanyAccount\r\n} from './authenticationActions';\r\nimport update from 'immutability-helper';\r\n\r\nconst initialState: AuthenticationState = {\r\n registration: {\r\n rut: '',\r\n razonSocial: '',\r\n correoElectronico: '',\r\n nombreUsuario: '',\r\n contrasena: '',\r\n confirmaContrasena: '',\r\n isLoading: false\r\n },\r\n login: {\r\n correoElectronico: '',\r\n estaIngresando: false,\r\n ingresoCorrectamente: undefined\r\n },\r\n verification_code: '',\r\n accept_terms_and_conditions: false,\r\n digitalCertificateCredentials: {\r\n rut: '',\r\n password: '',\r\n valid: false\r\n },\r\n siiCompanyAccountCredentials: {\r\n rut: '',\r\n password: '',\r\n valid: false\r\n },\r\n recuperacionContrasena: {\r\n terminoSolicitudCorrectamente: false,\r\n correoElectronico: '',\r\n estaSolicitando: false,\r\n existeCorreoElectronico: undefined\r\n }\r\n};\r\n\r\nconst authenticationReducer = createReducer(initialState, handleAction => [\r\n handleAction(registerUserBegin, (state, { payload }) => ({\r\n ...state,\r\n registration: {\r\n correoElectronico: payload.correoElectronico,\r\n nombreUsuario: payload.nombreUsuario,\r\n razonSocial: payload.razonSocial,\r\n rut: payload.rut,\r\n contrasena: payload.contrasena,\r\n confirmaContrasena: payload.confirmaContrasena,\r\n isLoading: false\r\n }\r\n })),\r\n handleAction(registerUserSuccess, (state, { payload }) => ({\r\n ...state,\r\n login: {\r\n correoElectronico: payload.usuario.correoElectronico,\r\n estaIngresando: false,\r\n ingresoCorrectamente: false\r\n }\r\n })),\r\n handleAction(registerUserFailure, (state, { payload }) => ({\r\n ...state\r\n })),\r\n handleAction(loginUserBegin, (state, { payload }) => ({\r\n ...state,\r\n login: {\r\n correoElectronico: payload.correoElectronico,\r\n estaIngresando: true,\r\n ingresoCorrectamente: undefined\r\n }\r\n })),\r\n handleAction(loginUserFailure, (state, { payload }) => ({\r\n ...state,\r\n login: {\r\n ...state.login,\r\n estaIngresando: false,\r\n ingresoCorrectamente: false\r\n }\r\n })),\r\n handleAction(loginUserSuccess, (state, { payload }) => ({\r\n ...state,\r\n login: {\r\n correoElectronico: payload.usuario.correoElectronico,\r\n estaIngresando: false,\r\n ingresoCorrectamente: true\r\n }\r\n })),\r\n // handleAction(confirmEmail, (state, { payload }) => ({\r\n // ...state,\r\n // verification_code: payload,\r\n // })),\r\n handleAction(acceptTermsAndConditions, state => ({\r\n ...state,\r\n accept_terms_and_conditions: true\r\n })),\r\n handleAction(validateDigitalCertificate, (state, { payload }) => ({\r\n ...state,\r\n digitalCertificateCredentials: {\r\n ...payload,\r\n valid: true\r\n }\r\n })),\r\n handleAction(validateSiiCompanyAccount, (state, { payload }) => ({\r\n ...state,\r\n siiCompanyAccountCredentials: {\r\n ...payload,\r\n valid: true\r\n }\r\n })),\r\n handleAction(recuperarContrasena.request, (state, { payload }) => update(state, {\r\n recuperacionContrasena: {\r\n terminoSolicitudCorrectamente: { $set: false },\r\n existeCorreoElectronico: { $set: undefined },\r\n estaSolicitando: { $set: true },\r\n correoElectronico: { $set: payload }\r\n }\r\n })),\r\n handleAction(recuperarContrasena.success, (state, { payload }) => update(state, {\r\n recuperacionContrasena: {\r\n terminoSolicitudCorrectamente: { $set: payload },\r\n estaSolicitando: { $set: false },\r\n existeCorreoElectronico: { $set: payload }\r\n }\r\n }))\r\n // handleAction(checkPasswordResetToken.success, (state, { payload }) => update(state, {\r\n // recuperacionContrasena: {\r\n // isTokenValid: {\r\n // $set: payload\r\n // }\r\n // }\r\n // })),\r\n // handleAction(resetearContrasena.success, state => update(state, {\r\n // recuperacionContrasena: {\r\n // isPasswordReset: {\r\n // $set: true\r\n // }\r\n // }\r\n // }))\r\n]);\r\n\r\nexport default authenticationReducer;\r\n","import {\r\n actualizarInformacionUsuario,\r\n cambiarEmpresa,\r\n deleteCuentaCorriente,\r\n initialState,\r\n modificacionCuentasCorrientesSuccess,\r\n setCompaniesBegin,\r\n setCompaniesFailure,\r\n setCompaniesSuccess\r\n} from './companyActions';\r\nimport { createReducer } from 'deox';\r\nimport update from 'immutability-helper';\r\n\r\n\r\nconst companyReducer = createReducer(initialState, handleAction => [\r\n handleAction(actualizarInformacionUsuario.success, (state, { payload }) => ({\r\n ...state\r\n // userData: payload\r\n })),\r\n handleAction(cambiarEmpresa.success, (state, { payload }) => ({\r\n ...state,\r\n usuario: payload.user,\r\n empresaSeleccionada: payload.empresa\r\n })),\r\n handleAction(setCompaniesSuccess, (state, { payload }) => ({\r\n ...state,\r\n empresaSeleccionada: payload.empresaSeleccionada,\r\n empresas: payload.empresas,\r\n usuario: payload.usuario\r\n })),\r\n handleAction(setCompaniesBegin, (state, {}) => ({\r\n ...state\r\n })),\r\n handleAction(setCompaniesFailure, (state, { payload }) => ({\r\n ...state\r\n })),\r\n handleAction(deleteCuentaCorriente, (state, { payload }) => ({\r\n ...state,\r\n empresaSeleccionada: {\r\n ...state.empresaSeleccionada,\r\n cuentasCorrientes: state.empresaSeleccionada.cuentasCorrientes.filter(i => i.id != payload)\r\n }\r\n })),\r\n\r\n handleAction(modificacionCuentasCorrientesSuccess, (state, { payload }) => update(state, {\r\n empresaSeleccionada: {\r\n cuentasCorrientes: { $set: payload || [] }\r\n }\r\n }))\r\n\r\n]);\r\n\r\nexport default companyReducer;\r\n","import { createActionCreator } from 'deox';\r\nimport AccountAPI from '../../../api/cuenta';\r\nimport { ISynchronizeTaxFolderDetails } from '../types';\r\n\r\nconst _fetchSynchronizeTaxFolderDetailsThunk = () => async (dispatch: any) => {\r\n dispatch(fetchSynchronizeTaxFolderDetails.request());\r\n try {\r\n const synchronizeTaxFolder = await AccountAPI.synchronizeTaxFolderDetails.fetch();\r\n dispatch(fetchSynchronizeTaxFolderDetails.success(synchronizeTaxFolder));\r\n } catch (error) {\r\n dispatch(fetchSynchronizeTaxFolderDetails.failure());\r\n }\r\n};\r\n\r\nexport const fetchSynchronizeTaxFolderDetails = Object.assign(_fetchSynchronizeTaxFolderDetailsThunk, {\r\n request: createActionCreator('FETCH_SYNCHRONIZE_TAX_FOLDER_REQUEST'),\r\n success: createActionCreator(\r\n 'FETCH_SYNCHRONIZE_TAX_FOLDER_SUCCESS',\r\n resolve => (synchronizeTaxFolder: ISynchronizeTaxFolderDetails) => resolve(synchronizeTaxFolder)\r\n ),\r\n failure: createActionCreator('FETCH_SYNCHRONIZE_TAX_FOLDER_FAILURE')\r\n});\r\n\r\nconst _saveSynchronizeTaxFolderDetailsThunk = (synchronizeTaxFolder: ISynchronizeTaxFolderDetails) => async (dispatch: any) => {\r\n dispatch(saveSynchronizeTaxFolderDetails.request());\r\n try {\r\n const newSynchronizeTaxFolder = await AccountAPI.synchronizeTaxFolderDetails.save(synchronizeTaxFolder);\r\n dispatch(saveSynchronizeTaxFolderDetails.success(newSynchronizeTaxFolder));\r\n } catch (error) {\r\n dispatch(saveSynchronizeTaxFolderDetails.failure());\r\n }\r\n};\r\n\r\nexport const saveSynchronizeTaxFolderDetails = Object.assign(_saveSynchronizeTaxFolderDetailsThunk, {\r\n request: createActionCreator('SAVE_SYNCHRONIZE_TAX_FOLDER_REQUEST'),\r\n success: createActionCreator(\r\n 'SAVE_SYNCHRONIZE_TAX_FOLDER_SUCCESS',\r\n resolve => (synchronizeTaxFolder: ISynchronizeTaxFolderDetails) => resolve(synchronizeTaxFolder)\r\n ),\r\n failure: createActionCreator('SAVE_SYNCHRONIZE_TAX_FOLDER_FAILURE')\r\n});\r\n","import { createReducer } from 'deox';\r\nimport { fetchSynchronizeTaxFolderDetails, saveSynchronizeTaxFolderDetails } from './actions/accountSynchronizeTaxFolderActions';\r\n\r\nconst accountReducer = createReducer({}, handleAction => [\r\n\r\n handleAction(fetchSynchronizeTaxFolderDetails.success, (state, { payload }) => ({\r\n ...state,\r\n synchronizeTaxFolderDetails: payload\r\n })),\r\n handleAction(saveSynchronizeTaxFolderDetails.success, (state, { payload }) => ({\r\n ...state,\r\n synchronizeTaxFolderDetails: payload\r\n }))\r\n]);\r\n\r\nexport default accountReducer;\r\n","import { clearNotifications, createNotification } from './notificationsActions';\r\nimport { createReducer } from 'deox';\r\nimport { INotificationsState } from './types';\r\nimport update from 'immutability-helper';\r\n\r\nconst initialState: INotificationsState = {\r\n items: []\r\n};\r\n\r\nconst notificationsReducer = createReducer(initialState, handleAction => [\r\n handleAction(createNotification, (state, { payload }) => update(state, {\r\n items: {\r\n $push: [payload]\r\n }\r\n })),\r\n handleAction(clearNotifications, () => ({\r\n items: []\r\n }))\r\n]);\r\n\r\nexport default notificationsReducer;\r\n","import { createReducer } from 'deox';\r\nimport { GlobalState } from './types';\r\nimport { fetchGlobalBegin, fetchGlobalFailure, fetchGlobalSuccess } from './globalActions';\r\n\r\nconst initialState: GlobalState = {\r\n bancos: [],\r\n tipoCuentas: [],\r\n comunas: [],\r\n productosPesajes: [],\r\n sucursales: []\r\n};\r\n\r\nconst globalReducer = createReducer(initialState, handleAction => [\r\n handleAction(fetchGlobalBegin, state => ({\r\n ...state\r\n\r\n })),\r\n handleAction(fetchGlobalSuccess, (state, { payload }) => ({\r\n ...state,\r\n bancos: payload.bancos,\r\n tipoCuentas: payload.tipoCuentas,\r\n comunas: payload.comunas,\r\n productosPesajes: payload.productosPesajes,\r\n sucursales: payload.sucursales\r\n })),\r\n handleAction(fetchGlobalFailure, (state, {}) => ({\r\n ...state\r\n }))\r\n]);\r\n\r\nexport default globalReducer;\r\n","import { PesajeFilters, PesajeState } from './type';\r\nimport { createReducer } from 'deox';\r\nimport update from 'immutability-helper';\r\nimport {\r\n cargarPesaje,\r\n fetchPesajeBegin,\r\n fetchPesajeFailure,\r\n fetchPesajeSuccess,\r\n obtenerEstadisticaUltimosDiasSuccess,\r\n resetPesajeFilterAction,\r\n setPesajeFilterAction,\r\n updatePesajeFilters\r\n} from './pesajeActions';\r\n\r\nconst initialFilters: PesajeFilters = { idProducto: 0, folio: '', estado: 0 };\r\nconst initEstadisticaResumen: Dto.EstadisticaResumenPesaje = { cantidadPesajes: 0, totalFacturado: 0, totalKilogramos: 0 };\r\nconst initialState: PesajeState = {\r\n pesajes: [],\r\n pesajesUltimos30Dias: [],\r\n pagina: 0,\r\n hasMoreItems: true,\r\n isLoading: false,\r\n filtros: initialFilters,\r\n error: null,\r\n mesCurso: initEstadisticaResumen,\r\n ultimoMes: initEstadisticaResumen\r\n};\r\n\r\nconst pesajeReducer = createReducer(initialState, handleAction => [\r\n handleAction(fetchPesajeBegin, state => ({\r\n ...state,\r\n isLoading: true,\r\n error: null\r\n })),\r\n handleAction(fetchPesajeSuccess, (state, { payload }) => {\r\n if (payload.isResettingPage) {\r\n return {\r\n ...state,\r\n isLoading: false,\r\n pesajes:\r\n payload.pesajes,\r\n pagina: 1,\r\n hasMoreItems: payload.hasMoreItems\r\n };\r\n } else {\r\n return {\r\n ...state,\r\n isLoading: false,\r\n pesajes: update(state.pesajes, {\r\n $push: payload.pesajes\r\n }),\r\n pagina: state.pagina + 1,\r\n hasMoreItems: payload.hasMoreItems\r\n };\r\n }\r\n }),\r\n handleAction(obtenerEstadisticaUltimosDiasSuccess, (state, { payload }) => {\r\n return {\r\n ...state,\r\n pesajesUltimos30Dias: payload.pesajes,\r\n mesCurso: payload.mesCurso,\r\n ultimoMes: payload.ultimoMes\r\n };\r\n }),\r\n handleAction(fetchPesajeFailure, (state, { payload }) => ({\r\n ...state,\r\n isLoading: false,\r\n error: payload\r\n })),\r\n handleAction(updatePesajeFilters, (state, { payload }) => ({\r\n ...state,\r\n pesajes: [],\r\n pagina: 0,\r\n filtros: payload,\r\n hasMoreItems: true,\r\n isLoading: false\r\n })),\r\n handleAction(resetPesajeFilterAction, (state, {}) => ({\r\n ...state,\r\n filtros: initialFilters\r\n })),\r\n handleAction(setPesajeFilterAction, (state, { payload }) => update(state, {\r\n filtros: {\r\n [payload.field]: {\r\n $set: payload.value\r\n }\r\n }\r\n })),\r\n handleAction(cargarPesaje.success, (state, { payload }) => ({\r\n ...state,\r\n pesajeVisualizando: payload\r\n }))\r\n]);\r\n\r\nexport default pesajeReducer;\r\n","import { DocumentoFilters, DocumentoState } from './type';\r\nimport { createReducer } from 'deox';\r\nimport update from 'immutability-helper';\r\nimport {\r\n cargarDocumento,\r\n fetchDocumentoBegin,\r\n fetchDocumentoFailure,\r\n fetchDocumentoSuccess,\r\n obtenerEstadisticaUltimosDiasSuccess,\r\n resetDocumentoFilterAction,\r\n setDocumentoFilterAction,\r\n updateDocumentoFilters\r\n} from './documentoActions';\r\n\r\n\r\nconst initialFilters: DocumentoFilters = { folio: '', estado: 0 };\r\nconst initEstadisticaResumen: Dto.EstadisticaResumenDocumento = { cantidadDocumentos: 0, totalFacturado: 0, totalPagado: 0 };\r\nconst initialState: DocumentoState = {\r\n documentos: [],\r\n documentosUltimos30Dias: [],\r\n pagina: 0,\r\n hasMoreItems: true,\r\n isLoading: false,\r\n filtros: initialFilters,\r\n error: null,\r\n mesCurso: initEstadisticaResumen,\r\n ultimoMes: initEstadisticaResumen\r\n};\r\n\r\nconst documentoReducer = createReducer(initialState, handleAction => [\r\n handleAction(fetchDocumentoBegin, state => ({\r\n ...state,\r\n isLoading: true,\r\n error: null\r\n })),\r\n handleAction(fetchDocumentoSuccess, (state, { payload }) => {\r\n if (payload.isResettingPage) {\r\n return {\r\n ...state,\r\n isLoading: false,\r\n documentos:\r\n payload.documentos,\r\n pagina: 1,\r\n hasMoreItems: payload.hasMoreItems\r\n };\r\n } else {\r\n return {\r\n ...state,\r\n isLoading: false,\r\n documentos: update(state.documentos, {\r\n $push: payload.documentos\r\n }),\r\n pagina: state.pagina + 1,\r\n hasMoreItems: payload.hasMoreItems\r\n };\r\n }\r\n }),\r\n handleAction(obtenerEstadisticaUltimosDiasSuccess, (state, { payload }) => {\r\n return {\r\n ...state,\r\n documentosUltimos30Dias: payload.documentos,\r\n mesCurso: payload.mesCurso,\r\n ultimoMes: payload.ultimoMes\r\n };\r\n }),\r\n handleAction(fetchDocumentoFailure, (state, { payload }) => ({\r\n ...state,\r\n isLoading: false,\r\n error: payload\r\n })),\r\n handleAction(updateDocumentoFilters, (state, { payload }) => ({\r\n ...state,\r\n documentos: [],\r\n pagina: 0,\r\n filtros: payload,\r\n hasMoreItems: true,\r\n isLoading: false\r\n })),\r\n handleAction(resetDocumentoFilterAction, (state, {}) => ({\r\n ...state,\r\n filtros: initialFilters\r\n })),\r\n handleAction(setDocumentoFilterAction, (state, { payload }) => update(state, {\r\n filtros: {\r\n [payload.field]: {\r\n $set: payload.value\r\n }\r\n }\r\n })),\r\n handleAction(cargarDocumento.success, (state, { payload }) => ({\r\n ...state,\r\n documentoVisualizando: payload\r\n }))\r\n]);\r\n\r\nexport default documentoReducer;\r\n","import { AnyAction, applyMiddleware, combineReducers, createStore } from 'redux';\r\nimport authentication from './user/authentication/authenticationReducer';\r\nimport companyReducer from './user/company/companyReducer';\r\nimport account from './account/accountReducer';\r\nimport notificationsReducer from './notifications/notificationsReducer';\r\nimport global from './global/globalReducer';\r\nimport thunk, { ThunkMiddleware } from 'redux-thunk';\r\nimport { composeWithDevTools } from 'redux-devtools-extension';\r\nimport { AuthenticationState } from './user/authentication/types';\r\nimport { UserCompanyState } from './user/company/types';\r\nimport { IAccountState } from './account/types';\r\nimport { INotificationsState } from './notifications/types';\r\nimport { GlobalState } from './global/types';\r\nimport { PesajeState } from './pesaje/type';\r\nimport { DocumentoState } from './documento/type';\r\nimport pesaje from './pesaje/pesajeReducer';\r\nimport documento from './documento/documentoReducer';\r\n\r\nconst rootReducer = combineReducers({\r\n authentication,\r\n userCompany: companyReducer,\r\n account,\r\n global,\r\n notifications: notificationsReducer,\r\n pesaje,\r\n documento\r\n});\r\n\r\nexport type AppState = {\r\n authentication: AuthenticationState,\r\n userCompany: UserCompanyState,\r\n account: IAccountState,\r\n global: GlobalState,\r\n notifications: INotificationsState\r\n pesaje: PesajeState,\r\n documento: DocumentoState\r\n}\r\n\r\nconst middleware = [thunk as ThunkMiddleware];\r\nconst middlewareEnhancer = applyMiddleware(...middleware);\r\nconst store = createStore(rootReducer, composeWithDevTools(middlewareEnhancer)\r\n);\r\n\r\nexport default store;\r\n","import withStyles, { WithStyles } from '@material-ui/core/styles/withStyles';\r\nimport * as React from 'react';\r\nimport { FunctionComponent } from 'react';\r\nimport { Theme } from '@material-ui/core';\r\n\r\nconst styles = (theme: Theme) => {\r\n return {\r\n root: {\r\n color: theme.palette.error.main\r\n }\r\n };\r\n};\r\n\r\nconst DangerText: FunctionComponent> = ({ classes, children }) => (\r\n {children}\r\n);\r\n\r\nexport default withStyles(styles)(DangerText);\r\n","import * as React from 'react';\r\nimport { ElementType, FC } from 'react';\r\nimport Button, { ButtonProps } from '@material-ui/core/Button';\r\nimport { Theme, ThemeProvider as MuiThemeProvider } from '@material-ui/core/styles';\r\n\r\nconst theme = (outerTheme: Theme) => ({\r\n ...outerTheme,\r\n palette: {\r\n ...outerTheme.palette,\r\n primary: {\r\n ...outerTheme.palette.primary,\r\n main: outerTheme.palette.error.main\r\n }\r\n }\r\n});\r\n\r\ninterface IProps extends ButtonProps {\r\n component?: ElementType;\r\n}\r\n\r\nconst DangerButton: FC = (props) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default withStyles(styles)(DeleteBankAccountDialog);\r\n","import React, { FC } from 'react';\r\nimport MuiDialogTitle from '@material-ui/core/DialogTitle';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport CloseIcon from '@material-ui/icons/Close';\r\nimport { Theme, WithStyles, withStyles } from '@material-ui/core';\r\nimport clsx from 'clsx';\r\n\r\nconst styles = (theme: Theme) => {\r\n return {\r\n root: {\r\n borderBottom: `1px solid ${theme.palette.divider}`,\r\n margin: '0 45px 0',\r\n padding: '18px 40px 18px 0',\r\n [theme.breakpoints.down('xs')]: {\r\n margin: '0 20px 28px',\r\n padding: '20px 35px 20px 0'\r\n }\r\n },\r\n closeButton: {\r\n position: 'absolute' as 'absolute',\r\n right: 33,\r\n top: 9,\r\n [theme.breakpoints.down('xs')]: {\r\n right: 5,\r\n top: 7\r\n },\r\n color: '#3c3c3c'\r\n },\r\n icon: {\r\n fontSize: 30\r\n }\r\n };\r\n};\r\n\r\ninterface DialogTitleProps extends WithStyles {\r\n onClose: () => void,\r\n titleClass?: string,\r\n closeButtonClass?: string\r\n}\r\n\r\nconst DialogTitle: FC = (props) => {\r\n const {\r\n classes,\r\n children,\r\n onClose,\r\n titleClass,\r\n closeButtonClass\r\n } = props;\r\n return (\r\n \r\n {children}\r\n {onClose ? (\r\n \r\n \r\n \r\n ) : null}\r\n \r\n );\r\n};\r\n\r\nexport default withStyles(styles)(DialogTitle);\r\n","import * as React from 'react';\r\nimport MuiSelect, { SelectProps } from '@material-ui/core/Select';\r\nimport styled from 'styled-components';\r\n\r\ninterface IProps extends SelectProps {\r\n large?: boolean;\r\n fullWidth?: boolean;\r\n}\r\n\r\nclass Select extends React.Component {\r\n render() {\r\n const {\r\n fullWidth,\r\n large,\r\n ...props\r\n } = this.props;\r\n return (\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default styled(Select)`\r\n ${props => props.large && `\r\n width: 100%;\r\n max-width: ${props.fullWidth ? 'none' : '318px'};\r\n `}\r\n &:before,\r\n &:after {\r\n content: none !important;\r\n }\r\n`;\r\n","import React from 'react';\r\nimport { connect, getIn } from 'formik';\r\nimport FormErrorText from '../FormErrorText/FormErrorText';\r\nimport Select from '../Select/Select';\r\nimport { InputLabel } from '@material-ui/core';\r\n\r\nconst FormSelect = ({ formik, children, ...props }: any) => {\r\n return (\r\n \r\n {props.label && {props.label}}\r\n \r\n {children}\r\n \r\n {getIn(formik.touched, props.name) && getIn(formik.errors, props.name) ? (\r\n {getIn(formik.errors, props.name)}\r\n ) : ''}\r\n \r\n );\r\n};\r\n\r\nexport default connect(FormSelect);\r\n","import { default as React, FC } from 'react';\r\nimport Box from '@material-ui/core/Box';\r\nimport { Form } from 'formik';\r\nimport Button from '@material-ui/core/Button';\r\nimport FormSelect from '../../components/Form/FormSelect/FormSelect';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport FormTextField from '../../components/Form/FormTextField/FormTextField';\r\nimport FormCheckbox from '../../components/Form/FormCheckbox/FormCheckbox';\r\nimport { InputLabel } from '@material-ui/core';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport { AppState } from '../../store/rootReducer';\r\nimport { connect } from 'react-redux';\r\n\r\ninterface IProps {\r\n handleSubmit: any\r\n banco: Dto.Banco[],\r\n tipo: Dto.Portal.TipoCuenta[]\r\n}\r\n\r\nconst AddBankAccountForm: FC = (props) => {\r\n const { banco, handleSubmit, tipo } = props;\r\n\r\n\r\n return (\r\n \r\n \r\n
\r\n \r\n \r\n {\r\n if (value > 0) {\r\n let t = banco.find(b => b.id == value);\r\n\r\n return {t ? t.razonSocial : ''};\r\n } else {\r\n return Selecciona un banco;\r\n }\r\n }}\r\n >{banco.map(bancos => {\r\n return {bancos.razonSocial};\r\n }\r\n )}\r\n\r\n \r\n \r\n \r\n {\r\n if (value > 0) {\r\n let t = tipo.find(cuenta => cuenta.id == value);\r\n return {t != undefined ? t.tipo : ''};\r\n } else {\r\n return Selecciona un tipo de cuenta;\r\n }\r\n }}\r\n >\r\n {tipo.map(tipos => {\r\n return {tipos.tipo};\r\n })}\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n Propiedades\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n );\r\n};\r\nconst mapStateToProps = (state: AppState) => ({\r\n banco: state.global.bancos,\r\n tipo: state.global.tipoCuentas\r\n});\r\n\r\nexport default connect(mapStateToProps)(AddBankAccountForm);\r\n","import React from 'react';\r\nimport Button from '@material-ui/core/Button';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogTitle from '../../components/Dialog/DialogTitle';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport { Formik } from 'formik';\r\nimport AddBankAccountForm from './AddBankAccountForm';\r\nimport * as Yup from 'yup';\r\nimport { connect } from 'react-redux';\r\nimport { AppState } from '../../store/rootReducer';\r\nimport { CrearCuentaCorrientePayload } from '../../store/user/company/types';\r\nimport { crearCuentaCorriente } from '../../store/user/company/companyActions';\r\n\r\nconst validationSchema = Yup.object({\r\n banco: Yup.number()\r\n .required(),\r\n tipo: Yup.number()\r\n .required(),\r\n numero: Yup.number()\r\n .required(),\r\n predeterminada: Yup.boolean()\r\n .required()\r\n});\r\n\r\ninterface IProps {\r\n crearCuentaCorriente: (payload: CrearCuentaCorrientePayload) => void;\r\n states: AppState;\r\n}\r\n\r\nclass AddBankAccountModal extends React.Component {\r\n state = {\r\n open: false\r\n };\r\n\r\n open = () => {\r\n this.setState({ open: true });\r\n };\r\n close = () => {\r\n this.setState({ open: false });\r\n };\r\n\r\n render() {\r\n return (\r\n
\r\n Agregar\r\n \r\n \r\n Creación de cuenta corriente\r\n \r\n \r\n {\r\n this.props.crearCuentaCorriente(account);\r\n this.close();\r\n }}\r\n initialValues={{\r\n banco: 0,\r\n tipo: 0,\r\n numero: '',\r\n predeterminada: false,\r\n habilitada: true\r\n }}\r\n validationSchema={validationSchema}\r\n render={props => }\r\n />\r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state: AppState) => ({\r\n states: state\r\n});\r\nconst mapDispatchToProps = (dispatch: any) => ({\r\n crearCuentaCorriente: (payload: CrearCuentaCorrientePayload) => dispatch(crearCuentaCorriente(payload))\r\n});\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(AddBankAccountModal);\r\n","import PageHeader from '../PageHeader';\r\nimport PaddingContainer from '../../components/layout/PaddingContainer';\r\nimport Paper from '../../components/Paper';\r\nimport * as React from 'react';\r\nimport Table from '../../components/Table/Table/Table';\r\nimport { TableHeader } from '../../components/Table/Table/types';\r\nimport Radio from '../../components/Form/Radio/Radio';\r\nimport Switch from '../../components/Switch/Switch';\r\nimport store, { AppState } from '../../store/rootReducer';\r\nimport { connect } from 'react-redux';\r\nimport DeleteBankAccountDialog from './DeleteBankAccountDialog';\r\nimport AddBankAccountModal from './AddBankAccountModal';\r\nimport { actualizarCuentaCorriente, eliminarCuentaCorriente } from '../../store/user/company/companyActions';\r\n\r\nconst headers: TableHeader[] = [\r\n {\r\n label: 'Banco',\r\n id: 'bancoNombre'\r\n },\r\n {\r\n label: 'Tipo',\r\n id: 'tipoDesc'\r\n },\r\n {\r\n label: 'Nro',\r\n id: 'numero'\r\n },\r\n {\r\n label: 'Predeterminada',\r\n id: 'predeterminada',\r\n render: (isDefault: boolean, rowId, row: Dto.CuentaCorriente) => (\r\n store.dispatch(actualizarCuentaCorriente(row.id, true, row.habilitada) as any)}\r\n />\r\n )\r\n },\r\n {\r\n label: 'Estado',\r\n id: 'habilitada',\r\n render: (active: boolean, rowId, row: Dto.CuentaCorriente) => (\r\n ) => {\r\n store.dispatch(actualizarCuentaCorriente(row.id, row.predeterminada, ev.target.checked) as any);\r\n }}\r\n />\r\n )\r\n },\r\n {\r\n label: 'Eliminar',\r\n id: 'delete',\r\n render: (data, rowId, row: Dto.CuentaCorriente) => (\r\n store.dispatch(eliminarCuentaCorriente(row.id) as any)}\r\n />\r\n )\r\n }\r\n];\r\n\r\ninterface IProps {\r\n cuentasCorrientes: Dto.CuentaCorriente[],\r\n // fetchBankAccounts: () => void,\r\n}\r\n\r\nclass BankAccounts extends React.Component {\r\n // componentWillMount(): void {\r\n // this.props.fetchBankAccounts()\r\n // }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {this.props.cuentasCorrientes && (\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state: AppState) => ({\r\n cuentasCorrientes: state.userCompany.empresaSeleccionada.cuentasCorrientes\r\n});\r\n\r\n// const mapDispatchToProps = (dispatch: any, state: AppState) => ({\r\n// fetchBankAccounts: () => dispatch(fetchBankAccounts()),\r\n// })\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n null//mapDispatchToProps\r\n)(BankAccounts);\r\n","import IconButton from '@material-ui/core/IconButton';\r\nimport { Refresh } from '@material-ui/icons';\r\nimport React, { FC } from 'react';\r\nimport { connect } from 'react-redux';\r\n\r\ninterface IProps {\r\n onDownloadClick?: () => void;\r\n fetch: () => void;\r\n}\r\n\r\nconst TableActions: FC = props => {\r\n const handleRefreshClick = (e: React.MouseEvent) => {\r\n e.stopPropagation();\r\n props.fetch();\r\n };\r\n\r\n const handleDownloadClick = (e: React.MouseEvent) => {\r\n e.stopPropagation();\r\n props.onDownloadClick && props.onDownloadClick();\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// const mapDispatchToProps = (dispatch: any) => ({\r\n// fetchDocuments: () => dispatch(fetchDocuments(true))\r\n// });\r\n\r\nexport default connect(\r\n null\r\n // mapDispatchToProps\r\n)(TableActions);\r\n","import React from 'react';\r\nimport { Button } from '@material-ui/core';\r\nimport styled from 'styled-components';\r\nimport { Close } from '@material-ui/icons';\r\n\r\ninterface IProps {\r\n onClick: () => void,\r\n value: string\r\n}\r\n\r\nclass FolioFilterIndicator extends React.Component {\r\n render() {\r\n const {\r\n value,\r\n ...props\r\n } = this.props;\r\n let folioCount = value.trim()\r\n .split(/[\\s\\n]+/).length;\r\n return (\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default styled(FolioFilterIndicator)`\r\n border-radius: 15px !important;\r\n height: 36px;\r\n padding: 5px 13px !important;\r\n border: 1px solid #B2B5BB !important;\r\n width: auto !important;\r\n font-weight: 400 !important;\r\n margin-right: 16px !important;\r\n \r\n .MuiSvgIcon-root {\r\n margin-left: 8px;\r\n }\r\n \r\n .MuiButton-label {\r\n display: inline-flex;\r\n justify-content: space-between;\r\n }\r\n`;\r\n","import React from 'react';\r\nimport styled from 'styled-components';\r\nimport { Button } from '@material-ui/core';\r\nimport { Close } from '@material-ui/icons';\r\n\r\ninterface IProps {\r\n onClick: () => void\r\n value: number,\r\n productoPesaje: Dto.Portal.ProductoPesaje[],\r\n}\r\n\r\nclass ProductoFilterIndicator extends React.Component {\r\n render() {\r\n const {\r\n value,\r\n productoPesaje,\r\n ...props\r\n } = this.props;\r\n return (\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default styled(ProductoFilterIndicator)`\r\n border-radius: 15px !important;\r\n height: 36px;\r\n padding: 5px 13px !important;\r\n border: 1px solid #B2B5BB !important;\r\n width: auto !important;\r\n font-weight: 400 !important;\r\n margin-right: 16px !important;\r\n \r\n .MuiSvgIcon-root {\r\n margin-left: 8px;\r\n }\r\n \r\n .MuiButton-label {\r\n display: inline-flex;\r\n justify-content: space-between;\r\n }\r\n`;\r\n","export const styleModal = () => ({\r\n dialogTitle: {\r\n padding: '24px 24px 16px',\r\n borderBottom: '1px solid rgba(0, 0, 0, 0.12)',\r\n display: 'flex' as 'flex',\r\n alignItems: 'center' as 'center',\r\n marginBottom: '8px',\r\n margin: 0\r\n },\r\n dialogContent: {\r\n overflow: 'initial',\r\n padding: '24px 24px 16px'\r\n },\r\n dialogAction: {\r\n padding: '24px 24px 32px'\r\n },\r\n paper450: {\r\n minWidth: 450\r\n }\r\n});\r\n","import React from 'react';\r\nimport { ISetFilterPayload } from '../../../store/pesaje/type';\r\nimport { FilterOutline } from 'mdi-material-ui';\r\nimport styled from 'styled-components';\r\nimport Button from '@material-ui/core/Button';\r\nimport { Dialog, DialogActions, WithStyles, withStyles } from '@material-ui/core';\r\nimport DialogTitle from '../../../components/Dialog/DialogTitle';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport Select from '../../../components/Form/Select/Select';\r\nimport { obtenerPesajes, setPesajeFilter } from '../../../store/pesaje/pesajeActions';\r\nimport { connect } from 'react-redux';\r\nimport ButtonGroup from '../../../components/ButtonGroup/ButtonGroup';\r\nimport { AppState } from '../../../store/rootReducer';\r\nimport { styleModal } from '../../../theme/modalStyle';\r\n\r\ninterface IProps extends WithStyles {\r\n setTableFilter: (payload: ISetFilterPayload) => void;\r\n fetch: () => void;\r\n idProducto: number;\r\n productoPesaje: Dto.Portal.ProductoPesaje[];\r\n}\r\n\r\ninterface IState {\r\n open: boolean;\r\n idProducto: number;\r\n productoPesaje: Dto.Portal.ProductoPesaje[];\r\n}\r\n\r\nclass ProductoFilterModal extends React.Component {\r\n constructor(props: IProps) {\r\n super(props);\r\n this.state = {\r\n open: false,\r\n idProducto: props.idProducto || 0,\r\n productoPesaje: props.productoPesaje\r\n };\r\n }\r\n\r\n componentDidUpdate(prevProps: Readonly): void {\r\n if (prevProps.idProducto !== this.props.idProducto) {\r\n this.setState({\r\n idProducto: this.props.idProducto || 0,\r\n productoPesaje: this.props.productoPesaje\r\n });\r\n }\r\n }\r\n\r\n applyFilter = (tableFilter: any, fetch: any) => {\r\n tableFilter({\r\n field: 'idProducto',\r\n value: this.state.idProducto\r\n });\r\n fetch();\r\n this.setState({\r\n open: false\r\n });\r\n };\r\n\r\n clear = (tableFilter: any, fetch: any) => {\r\n tableFilter({\r\n field: 'idProducto',\r\n value: undefined\r\n });\r\n fetch();\r\n this.setState({\r\n open: false,\r\n idProducto: 0\r\n });\r\n };\r\n\r\n render() {\r\n const { classes } = this.props;\r\n return (\r\n \r\n this.setState({ open: true })}>\r\n Producto\r\n \r\n \r\n \r\n this.setState({ open: false })} classes={{ root: classes.dialogTitle }}>\r\n Selección de Producto\r\n \r\n \r\n ) =>\r\n this.setState({\r\n idProducto: ev.target.value\r\n })\r\n }\r\n style={{\r\n marginBottom: '24px',\r\n marginTop: '16px'\r\n }}\r\n >\r\n \r\n {this.props.productoPesaje.map((producto) => (\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n this.applyFilter(this.props.setTableFilter, this.props.fetch)}\r\n >\r\n Seleccionar\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state: AppState) => ({\r\n productoPesaje: state.global.productosPesajes\r\n});\r\n\r\nconst mapDispatchToProps = (dispatch: any) => ({\r\n setTableFilter: (payload: ISetFilterPayload) => dispatch(setPesajeFilter(payload)),\r\n obtenerPesaje: () => dispatch(obtenerPesajes(true))\r\n});\r\n\r\nexport default withStyles(styleModal)(\r\n connect(mapStateToProps, mapDispatchToProps)(ProductoFilterModal)\r\n);\r\n\r\nconst FilterButton = styled(Button)`\r\n height: 57px;\r\n color: #3c3c3c !important;\r\n margin: -14px 0 !important;\r\n width: 75px !important;\r\n background-color: transparent !important;\r\n .MuiButton-label {\r\n font-weight: 600;\r\n }\r\n &:hover {\r\n background-color: transparent !important;\r\n border: none !important;\r\n box-shadow: none !important;\r\n }\r\n`;\r\n","import React from 'react';\r\nimport { ISetFilterPayload } from '../../../store/pesaje/type';\r\nimport { connect } from 'react-redux';\r\nimport styled from 'styled-components';\r\nimport { Button, Dialog, DialogActions, WithStyles, withStyles } from '@material-ui/core';\r\nimport { AppState } from '../../../store/rootReducer';\r\nimport { obtenerPesajes, setPesajeFilter } from '../../../store/pesaje/pesajeActions';\r\nimport { FilterOutline } from 'mdi-material-ui';\r\nimport DialogTitle from '../../../components/Dialog/DialogTitle';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport ButtonGroup from '../../../components/ButtonGroup/ButtonGroup';\r\nimport { KeyboardDatePicker } from '@material-ui/pickers';\r\nimport { styleModal } from '../../../theme/modalStyle';\r\n\r\ninterface IProps extends WithStyles {\r\n setTableFilter: (payload: ISetFilterPayload) => void;\r\n obtenerPesaje: () => void;\r\n fechaEmision?: {\r\n start: Date;\r\n end: Date;\r\n };\r\n}\r\n\r\ninterface IState {\r\n open: boolean;\r\n fechaEmision: {\r\n start: Date;\r\n end: Date;\r\n };\r\n}\r\n\r\nclass IngresoFilterModal extends React.Component {\r\n constructor(props: IProps) {\r\n super(props);\r\n this.state = {\r\n open: false,\r\n fechaEmision: props.fechaEmision || {\r\n start: new Date(),\r\n end: new Date()\r\n }\r\n };\r\n }\r\n\r\n componentDidUpdate(prevProps: Readonly): void {\r\n if (\r\n prevProps.fechaEmision !== this.props.fechaEmision &&\r\n this.props.fechaEmision === undefined\r\n ) {\r\n this.setState({\r\n fechaEmision: {\r\n start: new Date(),\r\n end: new Date()\r\n }\r\n });\r\n }\r\n }\r\n\r\n applyFilter = () => {\r\n this.props.setTableFilter({\r\n field: 'fechaEmision',\r\n value: this.state.fechaEmision\r\n });\r\n this.props.obtenerPesaje();\r\n this.setState({\r\n open: false\r\n });\r\n };\r\n\r\n clear = () => {\r\n this.props.setTableFilter({\r\n field: 'fechaEmision',\r\n value: undefined\r\n });\r\n this.props.obtenerPesaje();\r\n this.setState({\r\n fechaEmision: {\r\n start: new Date(),\r\n end: new Date()\r\n },\r\n open: false\r\n });\r\n };\r\n\r\n render() {\r\n const { classes } = this.props;\r\n return (\r\n \r\n this.setState({ open: true })}>\r\n Ingreso \r\n \r\n \r\n this.setState({ open: false })} classes={{ root: classes.dialogTitle }}>\r\n Selección Rango de Fecha\r\n \r\n \r\n {/**/}\r\n {/* Rango de Fecha de Emisión*/}\r\n \r\n \r\n {\r\n this.setState({\r\n fechaEmision: {\r\n ...this.state.fechaEmision,\r\n start: date as Date\r\n }\r\n });\r\n }}\r\n format='dd/MM/yyyy'\r\n value={this.state.fechaEmision.start}\r\n />\r\n \r\n \r\n {\r\n this.setState({\r\n fechaEmision: {\r\n ...this.state.fechaEmision,\r\n end: date as Date\r\n }\r\n });\r\n }}\r\n format='dd/MM/yyyy'\r\n value={this.state.fechaEmision.end}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state: AppState) => ({\r\n fechaEmision: state.pesaje.filtros.fechaEmision\r\n});\r\n\r\nconst mapDispatchToProps = (dispatch: any) => ({\r\n setTableFilter: (payload: ISetFilterPayload) => dispatch(setPesajeFilter(payload)),\r\n obtenerPesaje: () => dispatch(obtenerPesajes(true))\r\n});\r\n\r\nexport default withStyles(styleModal)(connect(mapStateToProps, mapDispatchToProps)(IngresoFilterModal));\r\n\r\nconst FilterButton = styled(Button)`\r\n height: 57px;\r\n color: #3c3c3c !important;\r\n margin: -14px 0 !important;\r\n width: 75px !important;\r\n background-color: transparent !important;\r\n .MuiButton-label {\r\n font-weight: 600;\r\n }\r\n &:hover {\r\n background-color: transparent !important;\r\n border: none !important;\r\n box-shadow: none !important;\r\n }\r\n`;\r\n","import React from 'react';\r\nimport { Button } from '@material-ui/core';\r\nimport styled from 'styled-components';\r\nimport { Close } from '@material-ui/icons';\r\nimport { format } from 'date-fns';\r\n\r\ninterface IProps {\r\n onClick: () => void,\r\n value: {\r\n start: Date,\r\n end: Date\r\n }\r\n}\r\n\r\nclass IngresoFilterIndicator extends React.Component {\r\n render() {\r\n const {\r\n value,\r\n ...props\r\n } = this.props;\r\n return (\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default styled(IngresoFilterIndicator)`\r\n border-radius: 15px !important;\r\n height: 36px;\r\n padding: 5px 13px !important;\r\n border: 1px solid #B2B5BB !important;\r\n width: auto !important;\r\n font-weight: 400 !important;\r\n margin-right: 16px !important;\r\n \r\n .MuiSvgIcon-root {\r\n margin-left: 8px;\r\n }\r\n \r\n .MuiButton-label {\r\n display: inline-flex;\r\n justify-content: space-between;\r\n }\r\n`;\r\n","import React from 'react';\r\nimport { ISetFilterPayload } from '../../../store/pesaje/type';\r\nimport { FilterOutline } from 'mdi-material-ui';\r\nimport styled from 'styled-components';\r\nimport Button from '@material-ui/core/Button';\r\nimport { Box, Dialog } from '@material-ui/core';\r\nimport DialogTitle from '../../../components/Dialog/DialogTitle';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport Select from '../../../components/Form/Select/Select';\r\nimport { obtenerPesajes, setPesajeFilter } from '../../../store/pesaje/pesajeActions';\r\nimport { connect } from 'react-redux';\r\nimport ButtonGroup from '../../../components/ButtonGroup/ButtonGroup';\r\n\r\n\r\nexport const estadosFiltro = [{ id: 2, descripcion: 'Factura asociada' }, { id: 3, descripcion: 'En Proceso' }, { id: 4, descripcion: 'Procesado' }];\r\n\r\ninterface IProps {\r\n setTableFilter: (payload: ISetFilterPayload) => void,\r\n fetch: () => void,\r\n estado: number,\r\n}\r\n\r\ninterface IState {\r\n open: boolean\r\n estado: number,\r\n}\r\n\r\nclass EstadoFilterModal extends React.Component {\r\n constructor(props: IProps) {\r\n super(props);\r\n this.state = {\r\n open: false,\r\n estado: props.estado || 0\r\n };\r\n }\r\n\r\n\r\n componentDidUpdate(prevProps: Readonly): void {\r\n if (prevProps.estado !== this.props.estado) {\r\n this.setState({\r\n estado: this.props.estado || 0\r\n });\r\n }\r\n }\r\n\r\n applyFilter = (tableFilter: any, fetch: any) => {\r\n tableFilter({\r\n field: 'estado',\r\n value: this.state.estado\r\n });\r\n fetch();\r\n this.setState({\r\n open: false\r\n });\r\n };\r\n\r\n clear = (tableFilter: any, fetch: any) => {\r\n tableFilter({\r\n field: 'estado',\r\n value: undefined\r\n });\r\n fetch();\r\n this.setState({\r\n open: false,\r\n estado: 0\r\n });\r\n };\r\n\r\n render() {\r\n return (\r\n \r\n this.setState({ open: true })}>\r\n Estado\r\n \r\n this.setState({ open: false })}>\r\n Selección de estado\r\n \r\n \r\n \r\n\r\n \r\n \r\n this.applyFilter(this.props.setTableFilter, this.props.fetch)}\r\n >\r\n Seleccionar\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch: any) => ({\r\n setTableFilter: (payload: ISetFilterPayload) => dispatch(setPesajeFilter(payload)),\r\n obtenerPesaje: () => dispatch(obtenerPesajes(true))\r\n});\r\n\r\nexport default connect(\r\n null,\r\n mapDispatchToProps\r\n)(EstadoFilterModal);\r\n\r\n\r\nconst FilterButton = styled(Button)`\r\n height: 57px;\r\n color: #3c3c3c !important;\r\n margin: -14px 0 !important;\r\n width: 50px !important;\r\n background-color: transparent !important;\r\n :hover {\r\n background-color: rgba(0,0,0,0.15) !important;\r\n }\r\n`;\r\n","import React from 'react';\r\nimport styled from 'styled-components';\r\nimport { Button } from '@material-ui/core';\r\nimport { Close } from '@material-ui/icons';\r\nimport { estadosFiltro } from './EstadoFilterModal';\r\n\r\ninterface IProps {\r\n onClick: () => void\r\n value: number,\r\n}\r\n\r\nclass EstadoFilterIndicator extends React.Component {\r\n render() {\r\n const {\r\n value,\r\n ...props\r\n } = this.props;\r\n return (\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default styled(EstadoFilterIndicator)`\r\n border-radius: 15px !important;\r\n height: 36px;\r\n padding: 5px 13px !important;\r\n border: 1px solid #B2B5BB !important;\r\n width: auto !important;\r\n font-weight: 400 !important;\r\n margin-right: 16px !important;\r\n \r\n .MuiSvgIcon-root {\r\n margin-left: 8px;\r\n }\r\n \r\n .MuiButton-label {\r\n display: inline-flex;\r\n justify-content: space-between;\r\n }\r\n`;\r\n","import React from 'react';\r\nimport IconImage from './../../images/icons/document.svg';\r\n\r\nfunction DocumentIcon(props) {\r\n return (\r\n \r\n );\r\n}\r\n\r\nexport default DocumentIcon;\r\n","import React from 'react';\r\nimport Button from '@material-ui/core/Button';\r\nimport { Box, Dialog, DialogContent, Grid } from '@material-ui/core';\r\nimport DialogTitle from '../../../components/Dialog/DialogTitle';\r\nimport TextField from '../../../components/Form/TextField/TextField';\r\nimport ButtonGroup from '../../../components/ButtonGroup/ButtonGroup';\r\n\r\ninterface IProps {\r\n aceptar: (rutReceptor: string, nombreSede: string) => void;\r\n open: boolean;\r\n onClose: () => void;\r\n}\r\n\r\ninterface IState {\r\n rutReceptor: string;\r\n nombreSede: string;\r\n}\r\n\r\nclass IngresoRutCertificadoModal extends React.Component {\r\n constructor(props: IProps) {\r\n super(props);\r\n this.state = {\r\n rutReceptor: '',\r\n nombreSede: ''\r\n };\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n \r\n Ingrese rut y sede para receptor de certificado (opcional)\r\n \r\n \r\n \r\n \r\n ) => this.setState({\r\n rutReceptor: ev.target.value\r\n })}\r\n InputLabelProps={{\r\n shrink: true\r\n }}\r\n placeholder='Sin receptor'\r\n />\r\n \r\n {this.state.rutReceptor.length > 0 &&\r\n \r\n ) => this.setState({\r\n nombreSede: ev.target.value\r\n })}\r\n InputLabelProps={{\r\n shrink: true\r\n }}\r\n placeholder='Sede (opcional)'\r\n />\r\n \r\n }\r\n \r\n \r\n \r\n this.props.aceptar(this.state.rutReceptor, this.state.nombreSede)}\r\n >\r\n Generar\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 IngresoRutCertificadoModal;\r\n\r\n","import React from 'react';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport Button from '@material-ui/core/Button';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport { connect } from 'react-redux';\r\nimport { ThunkDispatch } from 'redux-thunk';\r\nimport { AnyAction } from 'redux';\r\nimport { AppState } from '../../../store/rootReducer';\r\nimport DialogTitle from '../../../components/Dialog/DialogTitle';\r\nimport { Grid, Typography } from '@material-ui/core';\r\nimport Box from '@material-ui/core/Box';\r\nimport DocumentIcon from '../../../components/icons/DocumentIcon';\r\nimport Currency from '../../../components/Typography/Currency';\r\nimport { formatStringDate, textoDoc } from '../../../utils/utils';\r\nimport { cargarPesaje } from '../../../store/pesaje/pesajeActions';\r\nimport Table from '../../../components/Table/Table/Table';\r\nimport { TableHeader } from '../../../components/Table/Table/types';\r\nimport { Document, Page, pdfjs } from 'react-pdf';\r\nimport styled from 'styled-components';\r\nimport IngresoRutCertificadoModal from './IngresoRutCertificadoModal';\r\n\r\npdfjs.GlobalWorkerOptions.workerSrc = `//cdnjs.cloudflare.com/ajax/libs/pdf.js/${pdfjs.version}/pdf.worker.js`;\r\n\r\ninterface DetallePesajeDialogProps {\r\n cargarPesaje: (idPesaje: number) => Promise;\r\n buttonProps?: any;\r\n buttonText?: string;\r\n idPesaje: number;\r\n pesaje: Dto.Pesaje | undefined;\r\n documentos: Dto.Documento[] | undefined;\r\n descargarFactura: (doc: Dto.Documento) => void;\r\n descargarTicket: (idPesaje: number) => void;\r\n descargarCertificado: (idPesaje: number, rutReceptora: string, nombreSede: string) => Promise;\r\n}\r\n\r\ninterface IDetallePesajeDialogState {\r\n open: boolean;\r\n openRutCertificado: boolean;\r\n password: string;\r\n pdf?: any;\r\n}\r\n\r\nclass DetallePesajeDialog extends React.Component {\r\n state: IDetallePesajeDialogState = {\r\n open: false,\r\n password: '',\r\n pdf: undefined,\r\n openRutCertificado: false\r\n };\r\n\r\n open = () => {\r\n this.props.cargarPesaje(this.props.idPesaje)\r\n .then((v) => {\r\n this.setState({ open: true });\r\n });\r\n\r\n };\r\n\r\n close = () => {\r\n this.setState({ open: false });\r\n };\r\n\r\n openRutCertificado = () => {\r\n this.setState({ openRutCertificado: true });\r\n };\r\n\r\n closeRutCertificado = () => {\r\n this.setState({ openRutCertificado: false });\r\n };\r\n\r\n onAceptarCertificado = async (rutReceptor: string, nombreSede: string) => {\r\n const exito = await this.props.descargarCertificado(this.props.idPesaje, rutReceptor, nombreSede);\r\n if (exito) this.setState({ openRutCertificado: false });\r\n };\r\n\r\n handleSubmit = () => {\r\n if (this.props.pesaje) {\r\n this.setState({\r\n isValidating: true\r\n });\r\n\r\n }\r\n };\r\n\r\n descargarFactura = (documento: Dto.Documento) => {\r\n this.props.descargarFactura(documento);\r\n };\r\n\r\n render() {\r\n const headersPago: TableHeader[] = [\r\n {\r\n id: 'fechaPago',\r\n label: 'Fecha Pago',\r\n align: 'center',\r\n render: formatStringDate\r\n },\r\n {\r\n id: 'montoPago',\r\n label: 'Monto pago',\r\n align: 'right',\r\n render: (data, rowId, row: Dto.InformacionPago) => \r\n },\r\n {\r\n id: 'pdfGenerado',\r\n label: 'Comprobante',\r\n align: 'center',\r\n render: (data, rowId, row: Dto.InformacionPago) => {\r\n return row.pdfGenerado ? {\r\n this.setState({ pdf: 'data:application/pdf;base64,' + row.pdf });\r\n }} /> : null;\r\n }\r\n }\r\n ];\r\n return (\r\n
\r\n \r\n \r\n \r\n Detalle de pesaje\r\n \r\n {this.props.documentos && this.props.documentos.length && \r\n \r\n Detalles de los documentos\r\n {this.props.documentos.map(documento =>\r\n \r\n \r\n \r\n Folio\r\n Precio Neto\r\n Fecha Emisión\r\n Fecha Vencimiento\r\n \r\n \r\n {documento.folio}\r\n \r\n {formatStringDate(documento.fechaEmision)}\r\n {formatStringDate(documento.fechaVencimiento)}\r\n \r\n \r\n

\r\n

\r\n \r\n\r\n
\r\n \r\n \r\n Pagos asociados al documento\r\n \r\n \r\n \r\n\r\n\r\n \r\n {this.state.pdf &&\r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n \r\n
\r\n )}\r\n
\r\n \r\n \r\n Cerrar\r\n \r\n \r\n
}\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state: AppState) => ({\r\n pesaje: state.pesaje.pesajeVisualizando,\r\n documentos: state.pesaje.pesajeVisualizando ? state.pesaje.pesajeVisualizando.documentos : undefined\r\n});\r\n\r\n\r\nconst mapDispatchToProps = (dispatch: ThunkDispatch) => ({\r\n cargarPesaje: (payload: number) => dispatch(cargarPesaje(payload))\r\n});\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(DetallePesajeDialog);\r\n\r\nconst PDFDocumentWrapper = styled.div`\r\n canvas {\r\n width: auto !important;\r\n height: auto !important;\r\n }\r\n`;\r\n\r\n//https://github.com/wojtekmaj/react-pdf/issues/129\r\n","import React, { FC } from 'react';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport { RouteComponentProps, withRouter } from 'react-router';\r\nimport Select from '../../components/Form/Select/Select';\r\nimport routes from '../../routes/routes';\r\n\r\ninterface IProps extends RouteComponentProps {\r\n type: 'pesajes' | 'documentos';\r\n}\r\n\r\nconst SelectorListado: FC = props => {\r\n const handleChangeType = (event: React.ChangeEvent) => {\r\n let type = event.target.value as 'pesajes' | 'documentos';\r\n props.history.push(routes.listados[type]);\r\n };\r\n\r\n return (\r\n
\r\n \r\n Búsqueda por pesaje\r\n Búsqueda por documento\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default withRouter(SelectorListado);\r\n","import { ISetFilterPayload, PesajeFilters } from '../../../store/pesaje/type';\r\nimport { AppState } from '../../../store/rootReducer';\r\nimport * as React from 'react';\r\nimport { TableHeader } from '../../../components/Table/Table/types';\r\nimport { ThunkDispatch } from 'redux-thunk';\r\nimport { AnyAction } from 'redux';\r\nimport { obtenerCertificadoPesaje, obtenerPesajes, obtenerTicketPesaje, resetPesajeFilters, setPesajeFilter } from '../../../store/pesaje/pesajeActions';\r\nimport { connect } from 'react-redux';\r\nimport PaddingContainer from '../../../components/layout/PaddingContainer';\r\nimport styled from 'styled-components';\r\nimport TableActions from '../../../components/Table/TableActions';\r\nimport Table from '../../../components/Table/Table/Table';\r\nimport { formatStringDate } from '../../../utils/utils';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Button from '@material-ui/core/Button';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport { Box, Paper } from '@material-ui/core';\r\nimport FolioFilterIndicator from './FolioFilterIndicator';\r\nimport ProductoFilterIndicator from './ProductoFilterIndicator';\r\nimport ProductoFilterModal from './ProductoFilterModal';\r\nimport IngresoFilterModal from './IngresoFilterModal';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport IngresoFilterIndicator from './IngresoFilterIndicator';\r\nimport { FilterRemoveOutline } from 'mdi-material-ui';\r\nimport PageHeader from '../../PageHeader';\r\nimport Currency from '../../../components/Typography/Currency';\r\nimport Number from '../../../components/Typography/Number';\r\nimport EstadoFilterIndicator from './EstadoFilterIndicator';\r\nimport DetallePesajeDialog from './DetallePesajeDialog';\r\nimport SelectorListado from '../SelectorListado';\r\nimport { obtenerPdfDocumento } from '../../../store/documento/documentoActions';\r\n\r\ninterface PesajeTableProps {\r\n pesajes: Dto.PesajeListado[];\r\n hasMoreItems: boolean;\r\n isLoading: boolean;\r\n resetPesaje: () => void;\r\n obtenerPesaje: () => void;\r\n filtros: PesajeFilters;\r\n limpiarEstado: () => Promise;\r\n clearFilters: () => Promise;\r\n clearFilter: (field: string) => Promise;\r\n page: number;\r\n state: AppState;\r\n setTableFilter: (payload: ISetFilterPayload) => void;\r\n productoPesaje: Dto.Portal.ProductoPesaje[];\r\n sucursales: Dto.Portal.SucursalPesaje[];\r\n obtenerPdfDocumento: (idDocumento: number) => void;\r\n obtenerTicketPesaje: (idPesaje: number) => void;\r\n obtenerCertificadoPesaje: (idPesaje: number, rutReceptora: string, nombreSede: string) => Promise;\r\n}\r\n\r\nclass PesajeTable extends React.Component {\r\n componentDidMount() {\r\n this.props.obtenerPesaje();\r\n }\r\n\r\n clearFilters = () => {\r\n this.props.clearFilters().then(() => {\r\n this.props.resetPesaje();\r\n });\r\n };\r\n\r\n clearFilter = (field: string) => () => {\r\n this.props.clearFilter(field).then(() => {\r\n this.props.resetPesaje();\r\n });\r\n };\r\n\r\n descargarFactura = (doc: Dto.Documento) => {\r\n this.props.obtenerPdfDocumento(doc.id);\r\n };\r\n\r\n descargarTicket = (idPesaje: number) => {\r\n this.props.obtenerTicketPesaje(idPesaje);\r\n };\r\n\r\n descargarCertificado = (idPesaje: number, rutReceptora: string, nombreSede: string) => {\r\n return this.props.obtenerCertificadoPesaje(idPesaje, rutReceptora, nombreSede);\r\n };\r\n\r\n headers: TableHeader[] = [\r\n {\r\n id: 'fechaIngreso',\r\n label: 'Fecha Ingreso',\r\n align: 'center',\r\n render: formatStringDate,\r\n filterModal: \r\n },\r\n {\r\n id: 'idProducto',\r\n label: 'Producto',\r\n render: (data, rowId, row: Dto.Pesaje) => row.maestroProducto,\r\n filterModal: (\r\n \r\n )\r\n },\r\n {\r\n id: 'peso',\r\n label: 'Peso (Kgs)',\r\n render: (data, rowId, row: Dto.PesajeListado) => \r\n },\r\n {\r\n id: 'precioUnitario',\r\n label: 'Precio unitario',\r\n render: (data, rowId, row: Dto.Pesaje) => \r\n },\r\n {\r\n id: 'montoNeto',\r\n label: 'Monto pesaje',\r\n render: (data, rowId, row: Dto.Pesaje) => \r\n },\r\n {\r\n id: 'sucursal',\r\n label: 'Sucursal'\r\n },\r\n // {\r\n // id: 'tipo',\r\n // label: 'Tipo',\r\n // },\r\n {\r\n id: 'documento',\r\n label: 'Detalle',\r\n align: 'center',\r\n render: (data, rowId, row: Dto.Pesaje) => (\r\n \r\n )\r\n }\r\n ];\r\n\r\n render() {\r\n let pesajes = this.props.pesajes;\r\n let actions = (\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 \r\n \r\n \r\n \r\n {this.props.filtros.folio ? (\r\n \r\n ) : null}\r\n {this.props.filtros.idProducto ? (\r\n \r\n ) : null}\r\n {this.props.filtros.fechaEmision ? (\r\n \r\n ) : null}\r\n {this.props.filtros.estado ? (\r\n \r\n ) : null}\r\n \r\n \r\n \r\n \r\n {this.props.pesajes.length ? (\r\n \r\n \r\n Ver más\r\n {this.props.isLoading ? (\r\n \r\n ) : (\r\n ''\r\n )}\r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n \r\n {this.props.isLoading ? 'Buscando pesajes...' : 'No se encontraron resultados'}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state: AppState) => ({\r\n hasMoreItems: state.pesaje.hasMoreItems,\r\n isLoading: state.pesaje.isLoading,\r\n page: state.pesaje.pagina,\r\n state: state,\r\n filtros: state.pesaje.filtros,\r\n sucursales: state.global.sucursales,\r\n productoPesaje: state.global.productosPesajes,\r\n pesajes: state.pesaje.pesajes\r\n});\r\n\r\nconst mapDispatchToProps = (dispatch: ThunkDispatch) => ({\r\n clearFilter: (field: string) =>\r\n dispatch(\r\n setPesajeFilter({\r\n field,\r\n value: ''\r\n })\r\n ),\r\n clearFilters: () => dispatch(resetPesajeFilters()),\r\n obtenerPesaje: (resetPage?: boolean) => dispatch(obtenerPesajes()),\r\n resetPesaje: () => dispatch(obtenerPesajes(true)),\r\n setTableFilter: (payload: ISetFilterPayload) => dispatch(setPesajeFilter(payload)),\r\n obtenerPdfDocumento: (idDocumento: number) => dispatch(obtenerPdfDocumento(idDocumento)),\r\n obtenerTicketPesaje: (idPesaje: number) => dispatch(obtenerTicketPesaje(idPesaje)),\r\n obtenerCertificadoPesaje: (idPesaje: number, rutReceptora: string, nombreSede: string) => dispatch(obtenerCertificadoPesaje(idPesaje, rutReceptora, nombreSede))\r\n});\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(PesajeTable);\r\n\r\nconst TableActionsContainer = styled.div`\r\n display: flex;\r\n justify-content: flex-end;\r\n align-items: center;\r\n`;\r\n","import { AppState } from '../../store/rootReducer';\r\nimport { ThunkDispatch } from 'redux-thunk';\r\nimport { AnyAction } from 'redux';\r\nimport { resetPesajeFilters } from '../../store/pesaje/pesajeActions';\r\nimport * as React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport withStyles from '@material-ui/core/styles/withStyles';\r\nimport PesajeTable from './PesajeTable/PesajeTable';\r\n\r\n\r\ninterface PesajeListProps {\r\n // updateTableFilters : (filters : PesajeFilters) => void,\r\n limpiarEstado: () => Promise,\r\n // page:number,\r\n state: AppState\r\n}\r\n\r\nconst PesajeList: React.FC = ({\r\n limpiarEstado\r\n }) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst mapStateToProps = (state: AppState) => {\r\n return ({\r\n // page: state.pesaje.pagina,\r\n // pesajes: state.pesaje.pesajes\r\n });\r\n};\r\n\r\nconst mapDispatchToProps = (dispatch: ThunkDispatch) => ({\r\n // updateTableFilters: (filters : PesajeFilters) => {\r\n // dispatch(updatePesajeFilters(filters));\r\n // dispatch(obtenerPesajes(true));\r\n // },\r\n limpiarEstado: () => dispatch(resetPesajeFilters())\r\n});\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(withStyles({})(PesajeList));\r\n\r\n","import React from 'react';\r\nimport { Button } from '@material-ui/core';\r\nimport styled from 'styled-components';\r\nimport { Close } from '@material-ui/icons';\r\n\r\ninterface IProps {\r\n onClick: () => void,\r\n value: string\r\n}\r\n\r\nclass FolioFilterIndicator extends React.Component {\r\n render() {\r\n const {\r\n value,\r\n ...props\r\n } = this.props;\r\n let folioCount = value.trim()\r\n .split(/[\\s\\n]+/).length;\r\n return (\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default styled(FolioFilterIndicator)`\r\n border-radius: 15px !important;\r\n height: 36px;\r\n padding: 5px 13px !important;\r\n border: 1px solid #B2B5BB !important;\r\n width: auto !important;\r\n font-weight: 400 !important;\r\n margin-right: 16px !important;\r\n \r\n .MuiSvgIcon-root {\r\n margin-left: 8px;\r\n }\r\n \r\n .MuiButton-label {\r\n display: inline-flex;\r\n justify-content: space-between;\r\n }\r\n`;\r\n","import React from 'react';\r\nimport { ISetFilterPayload } from '../../../store/documento/type';\r\nimport { connect } from 'react-redux';\r\nimport styled from 'styled-components';\r\nimport { Button, Dialog, DialogActions, withStyles, WithStyles } from '@material-ui/core';\r\nimport { AppState } from '../../../store/rootReducer';\r\nimport { setDocumentoFilter } from '../../../store/documento/documentoActions';\r\nimport { FilterOutline } from 'mdi-material-ui';\r\nimport DialogTitle from '../../../components/Dialog/DialogTitle';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport ButtonGroup from '../../../components/ButtonGroup/ButtonGroup';\r\nimport { KeyboardDatePicker } from '@material-ui/pickers';\r\nimport { styleModal } from '../../../theme/modalStyle';\r\n\r\ninterface IProps extends WithStyles {\r\n setTableFilter: (payload: ISetFilterPayload) => void;\r\n fechaEmision?: {\r\n start: Date;\r\n end: Date;\r\n };\r\n fetch: () => void;\r\n}\r\n\r\ninterface IState {\r\n open: boolean;\r\n fechaEmision: {\r\n start: Date;\r\n end: Date;\r\n };\r\n}\r\n\r\nclass IngresoFilterModal extends React.Component {\r\n constructor(props: IProps) {\r\n super(props);\r\n this.state = {\r\n open: false,\r\n fechaEmision: props.fechaEmision || {\r\n start: new Date(),\r\n end: new Date()\r\n }\r\n };\r\n }\r\n\r\n componentDidUpdate(prevProps: Readonly): void {\r\n if (\r\n prevProps.fechaEmision !== this.props.fechaEmision &&\r\n this.props.fechaEmision === undefined\r\n ) {\r\n this.setState({\r\n fechaEmision: {\r\n start: new Date(),\r\n end: new Date()\r\n }\r\n });\r\n }\r\n }\r\n\r\n applyFilter = () => {\r\n this.props.setTableFilter({\r\n field: 'fechaEmision',\r\n value: this.state.fechaEmision\r\n });\r\n this.props.fetch();\r\n this.setState({\r\n open: false\r\n });\r\n };\r\n\r\n clear = () => {\r\n this.props.setTableFilter({\r\n field: 'fechaEmision',\r\n value: undefined\r\n });\r\n this.props.fetch();\r\n this.setState({\r\n fechaEmision: {\r\n start: new Date(),\r\n end: new Date()\r\n },\r\n open: false\r\n });\r\n };\r\n\r\n render() {\r\n const { classes } = this.props;\r\n return (\r\n \r\n this.setState({ open: true })}>\r\n Ingreso \r\n \r\n \r\n this.setState({ open: false })}\r\n classes={{ root: classes.dialogTitle }}\r\n >\r\n Selección Rango de Fecha\r\n \r\n \r\n {/**/}\r\n {/* Rango de Fecha de Emisión*/}\r\n \r\n \r\n {\r\n this.setState({\r\n fechaEmision: {\r\n ...this.state.fechaEmision,\r\n start: date as Date\r\n }\r\n });\r\n }}\r\n format='dd/MM/yyyy'\r\n value={this.state.fechaEmision.start}\r\n />\r\n \r\n \r\n {\r\n this.setState({\r\n fechaEmision: {\r\n ...this.state.fechaEmision,\r\n end: date as Date\r\n }\r\n });\r\n }}\r\n format='dd/MM/yyyy'\r\n value={this.state.fechaEmision.end}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state: AppState) => ({\r\n fechaEmision: state.documento.filtros.fechaEmision\r\n});\r\n\r\nconst mapDispatchToProps = (dispatch: any) => ({\r\n setTableFilter: (payload: ISetFilterPayload) => dispatch(setDocumentoFilter(payload))\r\n});\r\n\r\nexport default withStyles(styleModal)(\r\n connect(mapStateToProps, mapDispatchToProps)(IngresoFilterModal)\r\n);\r\n\r\nconst FilterButton = styled(Button)`\r\n height: 57px;\r\n color: #3c3c3c !important;\r\n margin: -14px 0 !important;\r\n width: 75px !important;\r\n background-color: transparent !important;\r\n .MuiButton-label {\r\n font-weight: 600;\r\n }\r\n &:hover {\r\n background-color: transparent !important;\r\n border: none !important;\r\n box-shadow: none !important;\r\n }\r\n`;\r\n","import React from 'react';\r\nimport { Button } from '@material-ui/core';\r\nimport styled from 'styled-components';\r\nimport { Close } from '@material-ui/icons';\r\nimport { format } from 'date-fns';\r\n\r\ninterface IProps {\r\n onClick: () => void,\r\n value: {\r\n start: Date,\r\n end: Date\r\n }\r\n}\r\n\r\nclass IngresoFilterIndicator extends React.Component {\r\n render() {\r\n const {\r\n value,\r\n ...props\r\n } = this.props;\r\n return (\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default styled(IngresoFilterIndicator)`\r\n border-radius: 15px !important;\r\n height: 36px;\r\n padding: 5px 13px !important;\r\n border: 1px solid #B2B5BB !important;\r\n width: auto !important;\r\n font-weight: 400 !important;\r\n margin-right: 16px !important;\r\n \r\n .MuiSvgIcon-root {\r\n margin-left: 8px;\r\n }\r\n \r\n .MuiButton-label {\r\n display: inline-flex;\r\n justify-content: space-between;\r\n }\r\n`;\r\n","import React from 'react';\r\nimport { ISetFilterPayload } from '../../../store/documento/type';\r\nimport { FilterOutline } from 'mdi-material-ui';\r\nimport styled from 'styled-components';\r\nimport Button from '@material-ui/core/Button';\r\nimport { Box, Dialog } from '@material-ui/core';\r\nimport DialogTitle from '../../../components/Dialog/DialogTitle';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport Select from '../../../components/Form/Select/Select';\r\nimport { setDocumentoFilter } from '../../../store/documento/documentoActions';\r\nimport { connect } from 'react-redux';\r\nimport ButtonGroup from '../../../components/ButtonGroup/ButtonGroup';\r\n\r\n\r\nexport const estadosFiltro = [{ id: 2, descripcion: 'Factura asociada' }, { id: 3, descripcion: 'En Proceso' }, { id: 4, descripcion: 'Procesado' }];\r\n\r\ninterface IProps {\r\n setTableFilter: (payload: ISetFilterPayload) => void,\r\n fetch: () => void,\r\n estado: number,\r\n}\r\n\r\ninterface IState {\r\n open: boolean\r\n estado: number,\r\n}\r\n\r\nclass EstadoFilterModal extends React.Component {\r\n constructor(props: IProps) {\r\n super(props);\r\n this.state = {\r\n open: false,\r\n estado: props.estado || 0\r\n };\r\n }\r\n\r\n\r\n componentDidUpdate(prevProps: Readonly): void {\r\n if (prevProps.estado !== this.props.estado) {\r\n this.setState({\r\n estado: this.props.estado || 0\r\n });\r\n }\r\n }\r\n\r\n applyFilter = (tableFilter: any, fetch: any) => {\r\n tableFilter({\r\n field: 'estado',\r\n value: this.state.estado\r\n });\r\n fetch();\r\n this.setState({\r\n open: false\r\n });\r\n };\r\n\r\n clear = (tableFilter: any, fetch: any) => {\r\n tableFilter({\r\n field: 'estado',\r\n value: undefined\r\n });\r\n fetch();\r\n this.setState({\r\n open: false,\r\n estado: 0\r\n });\r\n };\r\n\r\n render() {\r\n return (\r\n \r\n this.setState({ open: true })}>\r\n Estado\r\n \r\n this.setState({ open: false })}>\r\n Selección de estado\r\n \r\n \r\n \r\n\r\n \r\n \r\n this.applyFilter(this.props.setTableFilter, this.props.fetch)}\r\n >\r\n Seleccionar\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch: any) => ({\r\n setTableFilter: (payload: ISetFilterPayload) => dispatch(setDocumentoFilter(payload))\r\n});\r\n\r\nexport default connect(\r\n null,\r\n mapDispatchToProps\r\n)(EstadoFilterModal);\r\n\r\n\r\nconst FilterButton = styled(Button)`\r\n height: 57px;\r\n color: #3c3c3c !important;\r\n margin: -14px 0 !important;\r\n width: 50px !important;\r\n background-color: transparent !important;\r\n :hover {\r\n background-color: rgba(0,0,0,0.15) !important;\r\n }\r\n`;\r\n","import React from 'react';\r\nimport styled from 'styled-components';\r\nimport { Button } from '@material-ui/core';\r\nimport { Close } from '@material-ui/icons';\r\nimport { estadosFiltro } from './EstadoFilterModal';\r\n\r\ninterface IProps {\r\n onClick: () => void\r\n value: number,\r\n}\r\n\r\nclass EstadoFilterIndicator extends React.Component {\r\n render() {\r\n const {\r\n value,\r\n ...props\r\n } = this.props;\r\n return (\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default styled(EstadoFilterIndicator)`\r\n border-radius: 15px !important;\r\n height: 36px;\r\n padding: 5px 13px !important;\r\n border: 1px solid #B2B5BB !important;\r\n width: auto !important;\r\n font-weight: 400 !important;\r\n margin-right: 16px !important;\r\n \r\n .MuiSvgIcon-root {\r\n margin-left: 8px;\r\n }\r\n \r\n .MuiButton-label {\r\n display: inline-flex;\r\n justify-content: space-between;\r\n }\r\n`;\r\n","import React from 'react';\r\nimport { ISetFilterPayload } from '../../../store/documento/type';\r\nimport styled from 'styled-components';\r\nimport Button from '@material-ui/core/Button';\r\nimport { FilterOutline } from 'mdi-material-ui';\r\nimport { Box, Dialog, DialogActions, DialogContent, withStyles, WithStyles } from '@material-ui/core';\r\nimport DialogTitle from '../../../components/Dialog/DialogTitle';\r\nimport TextField from '../../../components/Form/TextField/TextField';\r\nimport ButtonGroup from '../../../components/ButtonGroup/ButtonGroup';\r\nimport { setDocumentoFilter } from '../../../store/documento/documentoActions';\r\nimport { connect } from 'react-redux';\r\nimport { styleModal } from '../../../theme/modalStyle';\r\n\r\ninterface IProps extends WithStyles {\r\n folio?: string;\r\n setTableFilter: (payload: ISetFilterPayload) => void;\r\n fetch: () => void;\r\n}\r\n\r\ninterface IState {\r\n open: boolean;\r\n folio: string;\r\n}\r\n\r\nclass FolioFilterModal extends React.Component {\r\n constructor(props: IProps) {\r\n super(props);\r\n this.state = {\r\n open: false,\r\n folio: props.folio || ''\r\n };\r\n }\r\n\r\n componentDidUpdate(prevProps: Readonly): void {\r\n if (prevProps.folio !== this.props.folio) {\r\n this.setState({\r\n folio: this.props.folio || ''\r\n });\r\n }\r\n }\r\n\r\n applyFilter = (tableFilter: any, fetch: any) => {\r\n tableFilter({\r\n field: 'folio',\r\n value: this.state.folio\r\n });\r\n fetch();\r\n this.setState({\r\n open: false\r\n });\r\n };\r\n\r\n clear = (tableFilter: any, fetch: any) => {\r\n tableFilter({\r\n field: 'folio',\r\n value: undefined\r\n });\r\n fetch();\r\n this.setState({\r\n open: false,\r\n folio: ''\r\n });\r\n };\r\n\r\n render() {\r\n const { classes } = this.props;\r\n return (\r\n \r\n this.setState({ open: true })}>\r\n Folio \r\n \r\n \r\n this.setState({ open: false })}\r\n classes={{ root: classes.dialogTitle }}\r\n >\r\n Selección masiva de folios\r\n \r\n \r\n \r\n ) =>\r\n this.setState({\r\n folio: ev.target.value\r\n })\r\n }\r\n InputLabelProps={{\r\n shrink: true\r\n }}\r\n placeholder='Ingrese sus folios (puede copiar y pegar).\r\n Ejemplo:\r\n101\r\n102\r\n103\r\n104'\r\n />\r\n \r\n \r\n \r\n \r\n this.applyFilter(this.props.setTableFilter, this.props.fetch)}\r\n >\r\n Seleccionar\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch: any) => ({\r\n setTableFilter: (payload: ISetFilterPayload) => dispatch(setDocumentoFilter(payload))\r\n});\r\n\r\nexport default withStyles(styleModal)(connect(null, mapDispatchToProps)(FolioFilterModal));\r\n\r\nconst FilterButton = styled(Button)`\r\n height: 57px;\r\n color: #3c3c3c !important;\r\n margin: -14px 0 !important;\r\n width: 75px !important;\r\n background-color: transparent !important;\r\n .MuiButton-label {\r\n font-weight: 600;\r\n }\r\n &:hover {\r\n background-color: transparent !important;\r\n border: none !important;\r\n box-shadow: none !important;\r\n }\r\n`;\r\n","import React from 'react';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport Button from '@material-ui/core/Button';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport { connect } from 'react-redux';\r\nimport { ThunkDispatch } from 'redux-thunk';\r\nimport { AnyAction } from 'redux';\r\nimport { AppState } from '../../../store/rootReducer';\r\nimport DialogTitle from '../../../components/Dialog/DialogTitle';\r\nimport { DialogActions, Grid, Typography, withStyles, WithStyles } from '@material-ui/core';\r\nimport Box from '@material-ui/core/Box';\r\nimport DocumentIcon from '../../../components/icons/DocumentIcon';\r\nimport Currency from '../../../components/Typography/Currency';\r\nimport { formatStringDate, textoDoc } from '../../../utils/utils';\r\nimport { cargarDocumento } from '../../../store/documento/documentoActions';\r\nimport Table from '../../../components/Table/Table/Table';\r\nimport { TableHeader } from '../../../components/Table/Table/types';\r\nimport { Document, Page, pdfjs } from 'react-pdf';\r\nimport styled from 'styled-components';\r\nimport { styleModal } from '../../../theme/modalStyle';\r\n\r\npdfjs.GlobalWorkerOptions.workerSrc = `//cdnjs.cloudflare.com/ajax/libs/pdf.js/${pdfjs.version}/pdf.worker.js`;\r\n\r\ninterface DetalleDocumentoDialogProps extends WithStyles {\r\n cargarDocumento: (idDocumento: number) => Promise;\r\n buttonProps?: any;\r\n buttonText?: string;\r\n idDocumento: number;\r\n documento: Dto.Documento | undefined;\r\n pagos: Dto.InformacionPago[] | undefined;\r\n descargarFactura: (doc: Dto.Documento) => void;\r\n}\r\n\r\ninterface IDetalleDocumentoDialogState {\r\n open: boolean;\r\n password: string;\r\n pdf?: any;\r\n}\r\n\r\nclass DetalleDocumentoDialog extends React.Component {\r\n state: IDetalleDocumentoDialogState = {\r\n open: false,\r\n password: '',\r\n pdf: undefined\r\n };\r\n\r\n open = () => {\r\n this.props.cargarDocumento(this.props.idDocumento).then((v) => {\r\n this.setState({ open: true });\r\n });\r\n };\r\n close = () => {\r\n this.setState({ open: false });\r\n };\r\n\r\n handleSubmit = () => {\r\n if (this.props.documento) {\r\n this.setState({\r\n isValidating: true\r\n });\r\n }\r\n };\r\n\r\n descargarFactura = (documento: Dto.Documento) => {\r\n this.props.descargarFactura(documento);\r\n };\r\n\r\n render() {\r\n const headersPago: TableHeader[] = [\r\n {\r\n id: 'fechaPago',\r\n label: 'Fecha Pago',\r\n align: 'center',\r\n render: formatStringDate\r\n },\r\n {\r\n id: 'montoPago',\r\n label: 'Monto pago',\r\n align: 'right',\r\n render: (data, rowId, row: Dto.InformacionPago) => \r\n },\r\n {\r\n id: 'pdfGenerado',\r\n label: 'Comprobante',\r\n align: 'center',\r\n render: (data, rowId, row: Dto.InformacionPago) => {\r\n return row.pdfGenerado ? (\r\n {\r\n this.setState({ pdf: 'data:application/pdf;base64,' + row.pdf });\r\n }}\r\n />\r\n ) : null;\r\n }\r\n }\r\n ];\r\n const documento = this.props.documento;\r\n const { classes } = this.props;\r\n return (\r\n
\r\n \r\n \r\n Detalle de documento\r\n \r\n {documento && (\r\n \r\n \r\n \r\n \r\n Folio\r\n \r\n \r\n Precio Neto\r\n \r\n \r\n Fecha Emisión\r\n \r\n \r\n Fecha Vencimiento\r\n \r\n \r\n \r\n \r\n {documento.folio}\r\n \r\n \r\n \r\n \r\n \r\n {formatStringDate(documento.fechaEmision)}\r\n \r\n \r\n {formatStringDate(documento.fechaVencimiento)}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Pagos asociados al documento\r\n \r\n \r\n
\r\n \r\n {this.state.pdf && (\r\n \r\n \r\n \r\n {' '}\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state: AppState) => ({\r\n documento: state.documento.documentoVisualizando,\r\n pagos: state.documento.documentoVisualizando\r\n ? state.documento.documentoVisualizando.pagos\r\n : undefined\r\n});\r\n\r\nconst mapDispatchToProps = (dispatch: ThunkDispatch) => ({\r\n cargarDocumento: (payload: number) => dispatch(cargarDocumento(payload))\r\n});\r\n\r\nexport default withStyles(styleModal)(connect(mapStateToProps, mapDispatchToProps)(DetalleDocumentoDialog));\r\n\r\nconst PDFDocumentWrapper = styled.div`\r\n canvas {\r\n width: auto !important;\r\n height: auto !important;\r\n }\r\n`;\r\n\r\n//https://github.com/wojtekmaj/react-pdf/issues/129\r\n","import { DocumentoFilters, ISetFilterPayload } from '../../../store/documento/type';\r\nimport { AppState } from '../../../store/rootReducer';\r\nimport * as React from 'react';\r\nimport { TableHeader } from '../../../components/Table/Table/types';\r\nimport { ThunkDispatch } from 'redux-thunk';\r\nimport { AnyAction } from 'redux';\r\nimport { obtenerDocumentos, obtenerPdfDocumento, resetDocumentoFilters, setDocumentoFilter } from '../../../store/documento/documentoActions';\r\nimport { connect } from 'react-redux';\r\nimport PaddingContainer from '../../../components/layout/PaddingContainer';\r\nimport styled from 'styled-components';\r\nimport TableActions from '../../../components/Table/TableActions';\r\nimport Table from '../../../components/Table/Table/Table';\r\nimport { formatStringDate, textoDoc } from '../../../utils/utils';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Button from '@material-ui/core/Button';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport { Box, Paper } from '@material-ui/core';\r\nimport FolioFilterIndicator from './FolioFilterIndicator';\r\nimport IngresoFilterModal from './IngresoFilterModal';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport IngresoFilterIndicator from './IngresoFilterIndicator';\r\nimport { FilterRemoveOutline } from 'mdi-material-ui';\r\nimport PageHeader from '../../PageHeader';\r\nimport Currency from '../../../components/Typography/Currency';\r\nimport Number from '../../../components/Typography/Number';\r\nimport EstadoFilterIndicator from './EstadoFilterIndicator';\r\nimport SelectorListado from '../SelectorListado';\r\nimport FolioFilterModal from './FolioFilterModal';\r\nimport DetalleDocumentoDialog from './DetalleDocumentoDialog';\r\n\r\ninterface DocumentoTableProps {\r\n documentos: Dto.DocumentoListado[],\r\n hasMoreItems: boolean,\r\n isLoading: boolean,\r\n resetDocumento: () => void,\r\n obtenerDocumentos: () => void,\r\n filtros: DocumentoFilters,\r\n limpiarEstado: () => Promise,\r\n clearFilters: () => Promise\r\n clearFilter: (field: string) => Promise,\r\n page: number,\r\n state: AppState,\r\n setTableFilter: (payload: ISetFilterPayload) => void\r\n sucursales: Dto.Portal.SucursalPesaje[],\r\n obtenerPdfDocumento: (idDocumento: number) => void\r\n}\r\n\r\nclass DocumentoTable extends React.Component {\r\n componentDidMount() {\r\n this.props.obtenerDocumentos();\r\n }\r\n\r\n clearFilters = () => {\r\n this.props.clearFilters()\r\n .then(() => {\r\n this.props.resetDocumento();\r\n });\r\n };\r\n\r\n\r\n clearFilter = (field: string) => () => {\r\n this.props.clearFilter(field)\r\n .then(() => {\r\n this.props.resetDocumento();\r\n });\r\n };\r\n\r\n descargarFactura = (doc: Dto.Documento) => {\r\n this.props.obtenerPdfDocumento(doc.id);\r\n };\r\n\r\n headers: TableHeader[] = [\r\n {\r\n id: 'fechaEmision',\r\n label: 'Fecha Emisión',\r\n align: 'center',\r\n render: formatStringDate,\r\n filterModal: \r\n },\r\n {\r\n id: 'folio',\r\n label: 'Folio',\r\n align: 'right',\r\n render: (data, rowId, row: Dto.DocumentoListado) => ,\r\n filterModal: \r\n },\r\n {\r\n id: 'tipo',\r\n label: 'Tipo Doc.',\r\n render: (data, rowId, row: Dto.DocumentoListado) => row.tipo\r\n },\r\n {\r\n id: 'precioNeto',\r\n align: 'right',\r\n label: 'Precio Neto',\r\n render: (data, rowId, row: Dto.DocumentoListado) => \r\n },\r\n {\r\n id: 'precioTotal',\r\n label: 'Precio Total',\r\n align: 'right',\r\n render: (data, rowId, row: Dto.DocumentoListado) => \r\n },\r\n {\r\n id: 'formaPagoOrigen',\r\n label: 'Forma Pago',\r\n align: 'right',\r\n render: (data, rowId, row: Dto.DocumentoListado) => row.formaPagoOrigen\r\n },\r\n // {\r\n // id: 'estadoPago',\r\n // label: 'Estado',\r\n // render: (data, rowId, row : Dto.DocumentoListado) => row.estadoPago + (row.estadoAnulacion && (\" \" + row.estadoAnulacion)),\r\n // filterModal: \r\n // },\r\n {\r\n id: 'documento',\r\n label: 'Detalle',\r\n align: 'center',\r\n render: (data, rowId, row: Dto.Documento) => row.tienePagos ?\r\n : undefined\r\n },\r\n {\r\n id: 'pdf',\r\n label: 'Pdf',\r\n align: 'center',\r\n render: (data, rowId, row: Dto.Documento) => {\r\n return ;\r\n }\r\n }\r\n ];\r\n\r\n\r\n render() {\r\n let documentos = this.props.documentos;\r\n let actions = ;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.props.filtros.folio ? (\r\n \r\n ) : null}\r\n {this.props.filtros.fechaEmision ? (\r\n \r\n ) : null}\r\n {this.props.filtros.estado ? (\r\n \r\n ) : null}\r\n \r\n\r\n \r\n \r\n \r\n {this.props.documentos.length ? (\r\n \r\n \r\n Ver más\r\n {this.props.isLoading ? (\r\n \r\n ) : ''}\r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n {this.props.isLoading ? 'Buscando documentos...' : 'No se encontraron resultados'}\r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n );\r\n }\r\n\r\n}\r\n\r\nconst mapStateToProps = (state: AppState) => ({\r\n hasMoreItems: state.documento.hasMoreItems,\r\n isLoading: state.documento.isLoading,\r\n page: state.documento.pagina,\r\n state: state,\r\n filtros: state.documento.filtros,\r\n sucursales: state.global.sucursales,\r\n documentos: state.documento.documentos\r\n});\r\n\r\nconst mapDispatchToProps = (dispatch: ThunkDispatch) => ({\r\n clearFilter: (field: string) => dispatch(setDocumentoFilter({\r\n field,\r\n value: ''\r\n })),\r\n clearFilters: () => dispatch(resetDocumentoFilters()),\r\n obtenerDocumentos: (resetPage?: boolean) => dispatch(obtenerDocumentos()),\r\n resetDocumento: () => dispatch(obtenerDocumentos(true)),\r\n setTableFilter: (payload: ISetFilterPayload) => dispatch(setDocumentoFilter(payload)),\r\n obtenerPdfDocumento: (idDocumento: number) => dispatch(obtenerPdfDocumento(idDocumento))\r\n});\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(DocumentoTable);\r\n\r\nconst TableActionsContainer = styled.div`\r\n display: flex;\r\n justify-content: flex-end;\r\n align-items: center;\r\n`;\r\n","import { AppState } from '../../store/rootReducer';\r\nimport { ThunkDispatch } from 'redux-thunk';\r\nimport { AnyAction } from 'redux';\r\nimport { resetDocumentoFilters } from '../../store/documento/documentoActions';\r\nimport * as React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport withStyles from '@material-ui/core/styles/withStyles';\r\nimport DocumentoTable from './DocumentoTable/DocumentoTable';\r\n\r\n\r\ninterface DocumentoListProps {\r\n limpiarEstado: () => Promise,\r\n state: AppState\r\n}\r\n\r\nconst DocumentoList: React.FC = ({\r\n limpiarEstado\r\n }) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst mapStateToProps = (state: AppState) => {\r\n return ({\r\n // page: state.pesaje.pagina,\r\n // pesajes: state.pesaje.pesajes\r\n });\r\n};\r\n\r\nconst mapDispatchToProps = (dispatch: ThunkDispatch) => ({\r\n limpiarEstado: () => dispatch(resetDocumentoFilters())\r\n});\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(withStyles({})(DocumentoList));\r\n\r\n","import React from 'react';\r\nimport { RouteComponentProps } from 'react-router';\r\nimport { AppState } from '../../../store/rootReducer';\r\nimport { connect } from 'react-redux';\r\n\r\ninterface RouteParams {\r\n idPesaje: string;\r\n}\r\n\r\ninterface DocumentoPesajeDetailsProps extends RouteComponentProps {\r\n pesaje?: Dto.PesajeListado,\r\n obtenerCesion: (idCesion: number) => void,\r\n}\r\n\r\n\r\nclass DocumentoPesaje extends React.Component {\r\n state = {\r\n tab: 0\r\n };\r\n\r\n componentDidMount() {\r\n }\r\n\r\n render() {\r\n const { pesaje } = this.props;\r\n if (pesaje) {\r\n const documentos = pesaje.documentos;\r\n return (\r\n \r\n {/*Documento {documento.folio}}>*/}\r\n\r\n {/**/}\r\n {/**/}\r\n {/* Detalles del documento*/}\r\n {/* */}\r\n {/* */}\r\n {/* Folio*/}\r\n {/* Precio Neto*/}\r\n {/* Precio Total*/}\r\n {/* Fecha Emisión*/}\r\n {/* Fecha Vencimiento*/}\r\n {/* */}\r\n {/* {documento && */}\r\n {/* {documento.folio}*/}\r\n {/* */}\r\n {/* */}\r\n {/* {formatStringDate(documento.fechaEmision)}*/}\r\n {/* {formatStringDate(documento.fechaVencimiento)}*/}\r\n {/* }*/}\r\n {/* */}\r\n {/**/}\r\n \r\n );\r\n } else {\r\n return (\r\n
El pesaje no tiene documento asociado
\r\n );\r\n }\r\n\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state: AppState, props: DocumentoPesajeDetailsProps) => (\r\n {\r\n pesaje: state.pesaje.pesajes.find(p => p.id == Number(props.match.params.idPesaje))\r\n });\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n null\r\n)(DocumentoPesaje);\r\n","import Layout from '../components/layout/Authenticated/Layout';\r\nimport { Redirect, Route, Switch } from 'react-router';\r\nimport * as React from 'react';\r\nimport { FC } from 'react';\r\nimport Dashboard from '../pages/Dashboard';\r\nimport EditData from '../pages/Account/EditData/EditData';\r\nimport routes from './routes';\r\nimport BankAccounts from '../pages/BankAccounts/BankAcounts';\r\nimport PesajeList from '../pages/Pesajes/PesajeList';\r\nimport DocumentoList from '../pages/Pesajes/DocumentoList';\r\nimport DocumentoPesaje from '../pages/Pesajes/DocumentoPesaje/DocumentoPesaje';\r\n\r\n\r\nconst AppRoutes: FC = () =>\r\n \r\n \r\n {/* */}\r\n \r\n\r\n \r\n\r\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 AppRoutes;\r\n","import { Component } from 'react';\r\nimport { RouteComponentProps, withRouter } from 'react-router-dom';\r\n\r\nclass ScrollToTop extends Component {\r\n componentDidUpdate(prevProps: RouteComponentProps) {\r\n if (this.props.location.pathname !== prevProps.location.pathname) {\r\n window.scrollTo(0, 0);\r\n }\r\n }\r\n\r\n render() {\r\n return this.props.children;\r\n }\r\n}\r\n\r\nexport default withRouter(ScrollToTop);\r\n","import * as React from 'react';\r\nimport { FC } from 'react';\r\nimport { BrowserRouter as Router, Switch } from 'react-router-dom';\r\nimport { Route } from 'react-router';\r\nimport AuthRoutes from './AuthRoutes';\r\nimport AppRoutes from './AppRoutes';\r\nimport ScrollToTop from './ScrollToTop';\r\n\r\nconst AllRoutes: FC = () => {\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\nexport default AllRoutes;\r\n","import React from 'react';\r\nimport theme from './theme';\r\nimport {ThemeProvider as MuiThemeProvider} from '@material-ui/core/styles';\r\nimport {MuiPickersUtilsProvider} from '@material-ui/pickers';\r\nimport './index.css';\r\nimport {Provider} from 'react-redux';\r\nimport AllRoutes from './routes/AllRoutes';\r\nimport store from './store/rootReducer';\r\nimport DateFnsUtils from '@date-io/date-fns';\r\nimport esLocale from 'date-fns/locale/es';\r\nimport {obtenerUsuarioEmpresas} from './store/user/company/companyActions';\r\nimport {obtenerGlobal} from './store/global/globalActions';\r\nimport {obtenerEstadisticaUltimosDias, obtenerPesajes} from './store/pesaje/pesajeActions';\r\n\r\nclass App extends React.Component {\r\n componentDidMount() {\r\n if (sessionStorage.getItem('token')) {\r\n store.dispatch(obtenerUsuarioEmpresas()).then((r) => {\r\n store.dispatch(obtenerEstadisticaUltimosDias());\r\n store.dispatch(obtenerPesajes(true));\r\n });\r\n store.dispatch(obtenerGlobal());\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default App;\r\n","// This optional code is used to register a service worker.\r\n// register() is not called by default.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on subsequent visits to a page, after all the\r\n// existing tabs open on the page have been closed, since previously cached\r\n// resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model and instructions on how to\r\n// opt-in, read https://bit.ly/CRA-PWA\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === 'localhost' ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === '[::1]' ||\r\n // 127.0.0.1/8 is considered localhost for IPv4.\r\n window.location.hostname.match(\r\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n )\r\n);\r\n\r\nexport function register(config) {\r\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Let's check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl, config);\r\n\r\n // Add some additional logging to localhost, pointing developers to the\r\n // service worker/PWA documentation.\r\n navigator.serviceWorker.ready.then(() => {\r\n console.log(\r\n 'This web app is being served cache-first by a service ' +\r\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\r\n );\r\n });\r\n } else {\r\n // Is not localhost. Just register service worker\r\n registerValidSW(swUrl, config);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW(swUrl, config) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then(registration => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n if (installingWorker == null) {\r\n return;\r\n }\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the updated precached content has been fetched,\r\n // but the previous service worker will still serve the older\r\n // content until all client tabs are closed.\r\n console.log(\r\n 'New content is available and will be used when all ' +\r\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\r\n );\r\n\r\n // Execute callback\r\n if (config && config.onUpdate) {\r\n config.onUpdate(registration);\r\n }\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log('Content is cached for offline use.');\r\n\r\n // Execute callback\r\n if (config && config.onSuccess) {\r\n config.onSuccess(registration);\r\n }\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch(error => {\r\n console.error('Error during service worker registration:', error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl, config) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl)\r\n .then(response => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n const contentType = response.headers.get('content-type');\r\n if (\r\n response.status === 404 ||\r\n (contentType != null && contentType.indexOf('javascript') === -1)\r\n ) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl, config);\r\n }\r\n })\r\n .catch(() => {\r\n console.log(\r\n 'No internet connection found. App is running in offline mode.'\r\n );\r\n });\r\n}\r\n\r\nexport function unregister() {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister();\r\n });\r\n }\r\n}\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport './index.css';\r\nimport App from './App';\r\nimport * as serviceWorker from './serviceWorker';\r\n\r\nReactDOM.render(, document.getElementById('root'));\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://bit.ly/CRA-PWA\r\nserviceWorker.unregister();\r\n"],"sourceRoot":""}