{"version":3,"sources":["actions/types.js","components/global/currency/CurrencyIcon.js","helpers/auth-helper.js","userContext.js","components/global/confirmation-popup/index.js","components/global/loaders/ContentLoader.js","assets/images/header-logo.svg","assets/images/header-logo-white.png","assets/images/ssl.png","assets/flag-icons/icons8-india.png","assets/flag-icons/icons8-usa.png","assets/flag-icons/icons8-new_zealand.png","assets/flag-icons/icons8-germany.png","assets/flag-icons/icons8-israel.png","assets/flag-icons/icons8-france.png","actions/action.js","components/layouts/headers/HeaderMenu.js","components/layouts/headers/Cart.js","components/layouts/headers/Logout.js","components/layouts/sidebar/MenuListItem.js","components/layouts/sidebar/SideBarMenuFixedHeader.js","constants/AppConfig.js","components/layouts/headers/SearchBoxV2.js","components/layouts/headers/FixedHeader.js","components/layouts/sidebar/index.js","components/layouts/headers/HeaderTwo.js","routes/check-out/payment/mercadoPago.js","components/layouts/footers/FooterOne.js","components/api-authorization/ApiAuthorizationConstants.js","components/api-authorization/AuthorizeService.js","components/api-authorization/Login.js","components/api-authorization/AuthorizeRoute.js","components/api-authorization/Logout.js","components/api-authorization/ApiAuthorizationRoutes.js","util/AsyncRoutes.js","assets/data/footerData.js","components/ThemeOptions/ThemeOptions.js","App.js","registerServiceWorker.js","reducers/ecommerceReducer.js","assets/data/currencydata.js","themes/primaryTheme.js","themes/darkTheme.js","reducers/appSettings.js","assets/data/localeData.js","reducers/index.js","store/index.js","index.js","helpers/index.js","helpers/localStorage.js"],"names":["ADD_TO_CART","ADD_TO_CART_QUANTITY","ADD_TO_WISHLIST","REMOVE_FROM_WISHLIST","MOVE_WISHLISTITEM_TO_CART","FINAL_PAYMENT","HIDE_ALERT","SHOW_ALERT","REMOVE_FROM_CART","UPDATE_PRODUCT_QUANTITY","CHANGE_CURRENCY","SET_LANGUAGE","RTL_LAYOUT","COLLAPSED_SIDEBAR","DELETE_USER","ADD_NEW_USER","DARK_MODE","ORDER_CODE","INITIALIZE_CART","UPDATE_SHIPPING_COST","CLEAR_CART","SET_RETIRE_POINT","CurrencyIcon","this","props","selectedCurrency","currencyUnicode","unicode","React","Component","connect","appSettings","TOKEN_KEY","setToken","token","localStorage","setItem","getToken","a","getItem","deleteToken","e","preventDefault","removeItem","UserContext","createContext","user","UserProvider","Provider","Consumer","ConfirmationDialog","state","open","setState","isTrue","onConfirm","onClose","closeDialog","bind","aria-labelledby","className","onClick","autoFocus","ContentLoader","size","thickness","module","exports","addProductItem","data","alertMessage","dispatch","console","log","addProductData","productID","objectID","quantity","minimumAmount","price","discountLabelFirstText","discountLabelSecondText","haveDiscount","priceWithDiscount","fetch","method","body","JSON","stringify","headers","then","response","json","myJson","id","shoppingCartID","totalPrice","type","payload","showAlert","message","hideAlert","addToWishlist","removeProductItem","updateProductQuantity","newData","cartItem","newQuantity","rtlLayoutAction","isRtlLayout","darkModeAction","isDarkMode","initializeCart","clearCart","updateShippingCost","setRetirePoint","HeaderMenu","undefined","navLinks","map","navLink","index","categorias","key","classnames","mega","href","menu_title","Grid","container","style","padding","Masonry","columns","spacing","categoria","item","ListItem","to","path","fontSize","marginTop","marginBottom","fontWeight","List","subcategorias","subcategoria","color","target","rel","Cart","handleClick","event","anchorEl","currentTarget","handleClose","confirmationDialog","createRef","current","openDialog","popupResponse","url","split","Boolean","cart","IconButton","aria-owns","aria-haspopup","variant","aria-label","length","Badge","badgeContent","Popover","anchorOrigin","vertical","horizontal","transformOrigin","borderTop","getUrl","image","src","alt","name","toFixed","Button","onDeleteCartItem","title","float","shipping","getTotalPrice","component","Link","ref","res","deleteCartItem","ecommerce","Logout","result","isAuthenticated","menus","icon","handleMenu","handleCloseSignOut","logoutUser","context","history","push","Avatar","Menu","getContentAnchorEl","menu","MenuItem","isAuth","renderLogoutOptions","renderLoginOptions","contextType","withRouter","MenuListItem","menuOpen","subMenuOpen","child_routes","button","onToggleMenu","classNames","ListItemIcon","Collapse","in","timeout","unmountOnExit","subMenu","onToggleCollapseMenu","nestedMenu","nestedKey","closeDrawer","Object","keys","baseUrl","SideBarMenuFixedHeader","open2","toggleDrawer","SwipeableDrawer","onOpen","autoHide","autoHideDuration","width","height","NavLink","ListItemButton","ListItemText","primary","disablePadding","AppLogo","require","AppLogoWhite","rtlLayout","adminLayout","navCollapsed","algoliaConfig","appId","apiKey","indexName","locale","AboutUs","CopyrightText","SearchBoxV2","onChange","value","handleKeyDown","inputText","Input","fullWidth","placeholder","disableUnderline","onKeyDown","FixedHeader","xs","sm","md","lg","xl","AppConfig","SidebarMenu","HeaderTwo","hideBar","fixedHeader","scrollTop","window","pageYOffset","document","documentElement","getNavLinksData","addEventListener","removeEventListener","axios","get","AppBar","position","borderBottom","paddingLeft","paddingRight","TextMaskCustom","inputRef","other","mask","TextCVC","MercadoPago","mercadoPagoPayHandler","mpResponseHandler","onCreditCardNumberChange","setPaymentMethod","getInstallments","errors","fields","creditCardInfo","number","holderName","expiryDate","focused","cvc","mercadoPagoInfo","description","transaction_amount","card_token_id","installment","paymentMethodId","installments","docNumber","email","handleValidation","Mercadopago","setPublishableKey","securityCodeValue","getElementById","replace","$form","querySelector","createToken","status","error","ok","submitStepThree","cardnumber","bin","substring","getPaymentMethod","currentComponent","parseFloat","payer_costs","alert","guessPaymentMethod","month","year","onSubmit","onError","inputProps","label","onFocus","onFocusTextFields","validators","errorMessages","onCreditCardValueChange","FormControl","InputLabel","onCreditCardExpiryDateChange","inputComponent","autoComplete","Select","labelId","onMercadoInfoChange","recommended_message","expiry","action","data-checkout","class","stepOneData","disabled","confirmButtonDisabled","localVersion","FooterOne","social","about","useEffect","alignItems","aboutdata","border","QueryParameterNames","LogoutActions","LoginActions","prefix","ApplicationPaths","DefaultLoginRedirectPath","ApiAuthorizationClientConfigurationUrl","ApiAuthorizationPrefix","Login","LoginFailed","LoginCallback","Register","Profile","LogOut","LoggedOut","LogOutCallback","IdentityRegisterPath","IdentityManagePath","authService","_callbacks","_nextSubscriptionId","_user","_isAuthenticated","_popUpDisabled","getUser","profile","ensureUserManagerInitialized","userManager","access_token","signinSilent","createArguments","silentUser","updateState","success","Error","signinPopup","popUpUser","signinRedirect","redirect","signinCallback","signoutPopup","signoutRedirect","signoutCallback","notifySubscribers","callback","subscription","subscriptionId","subscriptionIndex","element","found","filter","splice","i","useReplaceToNavigate","AuthenticationResultStatus","Fail","Success","Redirect","settings","automaticSilentRenew","includeIdTokenInSilentRenew","userStore","WebStorageStateStore","UserManager","events","addUserSignedOut","removeUser","login","getReturnUrl","processLoginCallback","URLSearchParams","location","search","redirectToProfile","redirectToRegister","returnUrl","signIn","navigateToReturnUrl","completeSignIn","fromQuery","startsWith","origin","redirectToApiAuthorizationPath","encodeURI","apiAuthorizationPath","redirectUrl","isReady","authenticated","local","logout","processLogoutCallback","populateAuthenticationState","signOut","completeSignOut","ApiAuthorizationRoutes","render","loginAction","logoutAction","AsyncSanJoseSaludComponent","Loadable","loader","loading","AsyncHomePageTwoComponent","AsyncSearchProductsComponent","AsyncAccessoriesComponent","AsyncSubcategoriesComponent","AsyncBrandsComponent","AsyncOffersComponent","AsyncFlyerComponent","AsyncLaboratoriesComponent","AsyncReserveWithRecipeComponent","AsyncRrhhComponent","AsyncAboutUSComponent","AsyncCartComponent","AsyncCheckOutComponent","AsyncFolderDigitalComponent","AsyncPharmaciesComponent","AsyncFAQComponent","AsyncPageNotFoundComponent","AsyncPaymentOptionsComponent","AsyncPrivacyPolicyComponent","AsyncTermAndConditionComponent","AsyncProductDetail2Component","AsyncInvoiceComponent","AsyncProfileComponent","AsyncSignInPageComponent","AsyncSignUpComponent","AsyncForgetPasswordComponent","AsyncPasswordRecoveryComponent","SuccessComponent","FailureComponent","PendingsComponent","AsyncOrderStateComponent","footerData","ThemeOptions","classList","add","remove","darkMode","createBrowserHistory","listen","ReactGA","pageview","pathname","App","categories","deleteCacheAndReloadPage","initialize","serverVersion","reload","catch","rtlLayoutOption","darkModeHanlder","getCategories","caches","names","Promise","all","delete","prevProps","scrollTo","pathArray","alertType","selectedLocale","theme","userValue","loginUser","exact","confirmBtnText","confirmBtnBsStyle","show","onCancel","closeOnClickOutside","isLocalhost","hostname","match","registerValidSW","swUrl","navigator","serviceWorker","register","registration","onupdatefound","installingWorker","installing","onstatechange","controller","INITIAL_STATE","getCart","wishlist","tax","orderCode","receiptProducts","collaborationData","access","retirePoint","currencies","createMuiTheme","palette","main","secondary","overrides","MuiTableRow","root","MuiButton","textTransform","background","paper","MuiFormControl","borderColor","fill","MuiCheckbox","colorprimary","colorSecondary","MuiTableCell","head","typography","body1","languages","primaryTheme","reducers","combineReducers","product","newProductData","ID","returnState","saveCart","productQuantity","newproductQuantityData","productQuantityID","wishlistItem","newWishlistItem","newItem","deleteItem","newCartData","remainder","checkOutProducts","NewUserList","listItem","newUser","newUserInfo","cart2","shippingCost","isCollapsed","activeTheme","darkTheme","composeEnhancer","__REDUX_DEVTOOLS_EXTENSION_COMPOSE__","compose","store","createStore","applyMiddleware","thunk","ReactDOM","auto","URL","process","indexOf","ready","unregister","checkValidServiceWorker","registerServiceWorker","isProductExist","exists","getState","getCartItem","cartItemReturn","productExitsInWishlist","exist","getSubTotalPrice","subTotalPrice","parse","serializedState","removeCart"],"mappings":"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","file":"static/js/main.c9362039.chunk.js","sourcesContent":["/**\n * action types\n */\nexport const ADD_TO_CART = 'ADD_TO_CART';\nexport const ADD_TO_CART_QUANTITY = 'ADD_TO_CART_QUANTITY';\nexport const ADD_TO_WISHLIST = 'ADD_TO_WISHLIST';\nexport const REMOVE_FROM_WISHLIST = 'REMOVE_FROM_WISHLIST';\nexport const MOVE_WISHLISTITEM_TO_CART = 'MOVE_WISHLISTITEM_TO_CART';\nexport const FINAL_PAYMENT = 'FINAL_PAYMENT';\nexport const HIDE_ALERT = 'HIDE_ALERT';\nexport const SHOW_ALERT = 'SHOW_ALERT';\nexport const REMOVE_FROM_CART = 'REMOVE_FROM_CART';\nexport const UPDATE_PRODUCT_QUANTITY = 'UPDATE_PRODUCT_QUANTITY';\nexport const CHANGE_CURRENCY = 'CHANGE_CURRENCY';\nexport const SET_LANGUAGE = 'SET_LANGUAGE';\nexport const RTL_LAYOUT = \"RTL_LAYOUT\";\nexport const COLLAPSED_SIDEBAR = 'COLLAPSED_SIDEBAR';\nexport const DELETE_USER = 'DELETE_USER';\nexport const ADD_NEW_USER = 'ADD_NEW_USER';\nexport const DARK_MODE = 'DARK_MODE';\n\nexport const ORDER_CODE = 'ORDER_CODE';\n\n\n\nexport const INITIALIZE_CART = 'INITIALIZE_CART';\nexport const UPDATE_SHIPPING_COST = 'UPDATE_SHIPPING_COST';\nexport const LOGIN = 'LOGIN';\n\nexport const CLEAR_CART = 'CLEAR_CART';\nexport const SET_RETIRE_POINT = 'SET_RETIRE_POINT';\n","/**\n * currency component\n */\n/* eslint-disable */\nimport React from 'react';\n\n//connect to store\nimport { connect } from 'react-redux';\n\nclass CurrencyIcon extends React.Component {\n\n render() {\n const { selectedCurrency, currencyUnicode } = this.props;\n return (\n {currencyUnicode[selectedCurrency.unicode]}\n )\n }\n}\n\n// map state to props\nconst mapStateToProps = ({ appSettings }) => {\n const { selectedCurrency, currencyUnicode } = appSettings;\n return { selectedCurrency, currencyUnicode }\n}\n\nexport default connect(mapStateToProps)(CurrencyIcon);","import Axios from \"axios\";\r\n\r\nconst TOKEN_KEY = \"FARMANOBEL_TOKEN\";\r\n\r\nexport function setToken(token) {\r\n localStorage.setItem(TOKEN_KEY, token);\r\n}\r\n\r\n\r\nexport async function getToken() {\r\n return localStorage.getItem(TOKEN_KEY);\r\n\r\n \r\n\r\n //var result = {\r\n // isValid: null,\r\n // token: ''\r\n //}\r\n\r\n //if (token === '') {\r\n // result.isValid = false;\r\n //}\r\n //else {\r\n // var data = {\r\n // token: token,\r\n // }\r\n\r\n //let res = await Axios.post('/api/Auth/ValidateCurrentToken', data.token)\r\n // .then(response => {\r\n // console.log(\"0. auth-helper response: \", response.data);\r\n\r\n // result.isValid = response.data;\r\n // result.token = token;\r\n\r\n // })\r\n // .catch(() => {\r\n // result.isValid = false;\r\n // result.token = 'FALSE';\r\n\r\n // }).finally(() => {\r\n // });;\r\n\r\n //console.log(\"1. auth-helper result: \", result);\r\n //}\r\n\r\n //return result;\r\n}\r\n\r\nexport function deleteToken(e) {\r\n e.preventDefault();\r\n localStorage.removeItem(TOKEN_KEY);\r\n //window.location = \"/\";\r\n}\r\n\r\nexport async function getCurrentUser() {\r\n if (!getToken()) return false;\r\n try {\r\n let response = await Axios.get(\"/api/v1/auth/current\");\r\n return response.data;\r\n } catch (error) {\r\n return false;\r\n }\r\n}\r\n\r\nexport function initAxiosInterceptors() {\r\n Axios.interceptors.request.use(config => {\r\n const token = getToken();\r\n\r\n if (token) {\r\n config.headers.Authorization = `Bearer ${token}`;\r\n }\r\n\r\n return config;\r\n });\r\n\r\n Axios.interceptors.response.use(\r\n response => response,\r\n error => {\r\n if (error.response.status === 401) {\r\n deleteToken();\r\n window.location = \"/\";\r\n } else {\r\n return Promise.reject(error);\r\n }\r\n }\r\n );\r\n}","import React from 'react';\r\n\r\n\r\nconst UserContext = React.createContext({ user: {} }); // Create a context object\r\n\r\nexport const UserProvider = UserContext.Provider\r\nexport const UserConsumer = UserContext.Consumer\r\n\r\nexport default UserContext","/**\n * Confirmation dialog component\n*/\n/* eslint-disable */\nimport React from 'react';\nimport Button from '@material-ui/core/Button';\nimport Dialog from '@material-ui/core/Dialog';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport DialogTitle from '@material-ui/core/DialogTitle';\n\n\nclass ConfirmationDialog extends React.Component {\n state = {\n open: false,\n };\n\n //Define function for open confirmation dialog box\n openDialog() {\n this.setState({ open: true });\n };\n\n //Define function for close confirmation dialog box and callback for delete item \n closeDialog(isTrue) {\n this.setState({ open: false });\n this.props.onConfirm(isTrue)\n };\n\n render() {\n\n return (\n \n {\"¿Estás seguro de que deseas eliminar este producto?\"}\n {/* \n \n \n \n */}\n \n \n \n \n \n );\n }\n}\n\nexport default ConfirmationDialog;","/**\n * Content loader\n */\n/* eslint-disable */\nimport React from 'react';\nimport CircularProgress from '@material-ui/core/CircularProgress';\n\nconst ContentLoader = () => (\n
\n \n
\n);\n\nexport default ContentLoader;","module.exports = __webpack_public_path__ + \"static/media/header-logo.80b1d451.svg\";","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAeCAYAAABXNvynAAAABGdBTUEAALGPC/xhBQAAAStJREFUWAntlTFqAkEUhv8ZXNK5XkAstrJLEYiQnMRD2MlWVluJkMIqJ/AmFoEU6SzEwhu4whYizPjeBIJs/btkYB4M7OzAzsc3/5s1/hMeEZWNiDWgJuBHn1gynAy3DKRItITQp9EZNk3TRPWn6zHPrK4vWK9/cL268Nkss5jNnpHnT7RtaMAKW5ZbzOcvcM7BGMiw4d1y+UaDpkWiqr4wnY5xPJ5wOJzFqEdR5BiNBthsdlgsXimWaYY1Bt47ga2x3yuwKJYxHPb/IsIgpgErjA/tq6BennXiQzR0jVU0YG0wa63EoC9svxePRkJzrGusomX4vuk0GloKu1p94182nQJ2ca3RDCtwF2UmH+9R/el43dCFXtkjAT9adDKcDLcMpEi0hNCn0Rm+AR22ZkXgpR5GAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAeCAYAAABXNvynAAAABGdBTUEAALGPC/xhBQAAA6RJREFUWAntV1lPU0EU/rpRWhGwQKFV0QIWCYIbGsAFIwaiKBFFQSKRQNRofECNGhOXEOKjD/wBTHyRxGiiBh/kRUTQuhECbtQY2ZSlUJaytZQ6Z+q9CcTHex+aMA/3dmbOfPOdM985c6vIKqj3QaZWP14lObJSckSZAUXCJQVxC7bKyTIj0qAVx0L0auTnxIp9+lF8eOGao3lrERQkQi6wlaqjVikVqL62BZnbomGJXY47NW3I3bMSl85uwNiEG5U3bZh1e1FTnQ5jVDA0GiUe1f9C5elk5OfGIn1rFK5Wv0dRvgWnjq/DgexVuHjLhnGXB57LN6TiKeKovfM+fGhzIHZlCGytQ3zi1dt+VJRY8ePXOH4PTPGxr/ZRqNUGNNn6eb/lwyDSNkWitX0Ybvc8mt8PYv/e1ej47uRkycibkcVtpXwoKOmWseOenJqD8A5iUfSxVKTjpXFqNDcz4+URnpn1irbCGl2wCjSu1/mxaM2j2p30krSpCU0gZTLqWFQn4PbM800i/mmY5gUbi0nPbYS+sGaaOUPNGKlDV+8E5hmE6k0jH5PywQkT4JG8NTh5NAGPmT7rnvxEUkI4ypksXJMe1D6wY9AxjdLCBOzJNKG2rhMvXvZh324zyouteP1uAPcf2pGSZEDFCSs6f47hXp0dmrvXpeTKsUTCdNyGcC0/8rk5H9dvYnwYRsfc6O5zwev1ITwsCDHsFIZHZvhicsIco4dhhZY5NoeuHhcSLKFwTXkwNOy3kZox1zCBWuNCoVIpWGIp0f7VCaoeGduMULC5JtsA3zdtYyTXKTnR+2cS5mg9IhhZnU6Fd60O7lD8muXQalVoYUkox8UhEqZEE7RL7Bb3/ze22GZxX46k41U+JkqHqitbEBURzCNJl8SZ0kReYzUs4hT5lKQVqDyTjNAQDbehyN6+vBmrTMugYMdAcrl6IdV/Uux05GpKJaN8rmw9MtKMKCtax/dJTTag8KCFXx5EhBy4cj6FXQqr2QVj5DbHDlmwY3s0d4Icyt5pxr5dZm5HkpCrqan8vP04hBHnLNq+jPB9Pn9zoqGxDxOsQgjJ08wqQUeok+ubjD61OxDMiPX8ngQlKa191tDNEnIWU9P+2q25Wy05b1HDkiMzQDmSTt4vFRmiINZhGbDZt8RuyWEVDueYbB/wkrNlgAEniYAjrHBlb1+ShBzaFTADTxLO508DShJLZU3QmlxvtRz/u+QiS7hLZU3O6BJ2wJW1v9obXRoTwT/NAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAeCAYAAABXNvynAAAABGdBTUEAALGPC/xhBQAABQVJREFUWAnVmGtQlFUYx/97g10uolyMRVARogGhbBqIBBQtiyQkYZYCShKMqcQFLP1QJCiWglBojOPEzTFNJpy0DEFIk1QuNaOMEAkWTMBy37gKAov0nqV352V52V0LlzofOOc55znP8194zu+chTN8/ttJ0UsBuFkjR/qxWrS23wWzXfl6I9pWeyinbMp/gm/QBeYyuFwgZIM1JEOXMVFVjhDFtmnrc21wRy5fgnz7W3BbMITcDG9skTiCz+folMdpxQJkSYCgkn0QCA1g9cVpnfb9Gyd+mtVrkDp1Qh4XAyP/AERGbMWzPjbUb7sGt+p6WWOLhDy8E2ABr+p83C/twcKDqYC9I06ea2T1n8tJbvnPXYgo4KFM8hEUnV3o2hIGcVc9Did7Yvd2txm5fNytkPdcJzzyE2Ho7gHLrDw0TC7Gm+9dQ86XDTP8dZmwXizSxU3pwyc/R8fu4+iZVhTarsHuEG9w0lIgcHGF347YGYFi72SCN/AIzLLzcM/EHEdy6nC26A9MTs5w1WlCaMhDSoI7onZehUKhPQhnkmraIjMPnTZf9UOpzT/Qbynio13x8eFqlJS1aXMHR/aMu1bBWqMwHMKskxgW+9BWbIyYSGdYmgtha2MMRcEpcIPDIOsYRnfPCI5k16Gje4R1MwUl/TeCzguXWmEnFuFeyj4MHM3E+GeHYCs2wjcXm2cVS5TyCVu1tQcpCahxerbYP1Z2YLmdCUI9PAHqb2xI9TmnG1B1o3u2Lcp5Pl1zhL3hQQ4ID3YAr12GvtQDVBRDWKRnTAswMDgGU/4EBj8/htGqSgyEvo0DV/j4rWlgmp8uBhEs8n4RLY+uhpODGZaNN6u2EXJ0dM0sC2VJPOFijpxPfLA12B6jJ3Ih3xmLIR9/fCgIUQWgB6/HlKG4Qg5TaRwWJu6F2dk8pJqUQCoRw9BAc4Wp40sg4CLm/QpE77qO+MQqGImU0AJNDrYLjEtYm5H8NMSdt9EdEQ7Fn70o9E9E5Bke6hr6aJ2qvn9wHCmZtyBNqESraAksKbwZrnSB11d7cHzjTH96I5uIPak3UHt76nIiT4PkT6uV7i/4LsEyWxOs9xLT21U93+8pU/Tv3wtFYyPaX41HSvEoZBXa8VLzay+2vXsNkgB7vPGKBFbr1qM//RAVeJ0qOHPAFEHjiwlUdXIMnTyBuOgwSDatmEYOfk9UBLiBEmQtCMTF4+3MHFrHExOTyKeu4x+ut0EatRJeBynBjEOnqwiSiJCj8PsWJMQ+jhGKHMPFRTBuk8FWugvZp+pV5OCs3Vw4pxxW/5RrPK3xgdQNI6n7p0S8vBkGlIiktJusRCCPr9BFvysPtHCtL3KarFFwvkkVdqrKVebcD9jxdYdVLMlOalfkw04Osv7QBZMkNL6aKXw9poYvss5sBhRpCDnIYXzSzQIBG+yYy/oRTOOLiFjlao5Nzy+dJoJpEHLQh5GQo7pWzlzGQ69hko1DfR+gRbDZs10S05T+bWgmPduOfzDHFEu2M202PmtKoRfBmgQw+azJj17TS0nQyeie8HlHlDMsFrE8L+XU8zLrP/i8/K60hfV5ea5I8/OSt9w5PIn+5Prsm2V3qX8RcLHK0RhcoQhCL2/kXh1DaZlMowy9cHg2BYTPQi8/6MJnOsa8Chbwpy6JX+r7tPKZFjwvh06VXAufaT9mP69YY/KYiFK3mULp8bwKpkU8SP+/E/wXMIHwHkIWyA0AAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAeCAYAAABXNvynAAAABGdBTUEAALGPC/xhBQAAAHdJREFUWAntlbENgDAMBBMapqJkCeosymRGIArLtb946VI5zet1PsnzvFYMo7cZdf2qUli9MQhDuBBAiQKk/WtHeMYxuHTtHqRAOyUonLYnGSEswZpCIZxgSEY7wjPunUsnceEPtVOCwkod3mwIQ7gQQIkCpP37AAvyBz12zEeWAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAeCAYAAABXNvynAAAABGdBTUEAALGPC/xhBQAAAgBJREFUWAljfPP+43+GIQSYhpBbwU4dcg5mtA/cOpokaJnMhlySYDE1FKJlgFDdbEZaFGs/fv4FO5SDnZnqDqZJkli54REDCNMCUN3B9x5+YThy6jUYg9jUBlR18L9/DAwzFtxhiA9TZEgIVwSzQWLUBBSl4SVrHjA8ef4N7p4vX/4w3Lr3mcFITxAsdu7SewY1JV4GHh4WuBoZSS6GmBAFOJ9UBkUhbKQrxHDl+kcGTydJBmtTEYYHj78yVOVrMQR4yIAxiA0SA8mB1IDUgvRQAigKYZDF04FJgJODmeHpi28MeloCDL5u0iju2bzrKcOlax8YpCW4GL7/+MuQmaCCIk8qh6IQBlkWF6bAcOTkK4YPH38zeLugOhYkDxIDyYHUgNRSCih2MKUOIFU/xQ5etOoBg425GIMAPyvD1j1PMewHiYHkQGpAaikFFDn42s1PDEeBZa6hrgCDnYUouLK4cOU9w43bn8AYxAZVICA5kBqQWpAeSgBFmW4gijVEAUmGt9HLU1AlUdF8gcHWXJThP7CV/e7dL4amcj0GJoriEdVhFIUwqlEQHqg6bp90DcypzNNiUJLnwaaMbDGKQhibrSAH2piJgqWo7ViQoVQPYZChtGxesnRMhkQfyKKhAFhOn383FNwJdyMV8y/cTJoyhpyDaZLpaBnEQy6Eh5yDAVmuyB38wcMaAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAeCAYAAABXNvynAAAABGdBTUEAALGPC/xhBQAAAHxJREFUWAnt0rEJgDAYRGF1AQvXEdwg4IJuYOl8WgZel3CCwkuVgz9H+JJx26976FjnsXacqkeWMtfQsJsaZj8x6oXffgaFFYaAXwIg8ahwnBSFCgMkHhWOk6JQYYDEo8JxUhQqDJB4VDhOikKFARKPCsdJUagwQOLxd8IPs4YEd9mEPYkAAAAASUVORK5CYII=\"","import {\n COLLAPSED_SIDEBAR,\n RTL_LAYOUT,\n ADD_TO_CART,\n ADD_TO_CART_QUANTITY,\n ADD_TO_WISHLIST,\n SHOW_ALERT,\n HIDE_ALERT,\n REMOVE_FROM_CART,\n UPDATE_PRODUCT_QUANTITY,\n CHANGE_CURRENCY,\n SET_LANGUAGE,\n FINAL_PAYMENT,\n MOVE_WISHLISTITEM_TO_CART,\n REMOVE_FROM_WISHLIST,\n DELETE_USER,\n ADD_NEW_USER,\n DARK_MODE,\n INITIALIZE_CART,\n UPDATE_SHIPPING_COST,\n LOGIN,\n ORDER_CODE,\n CLEAR_CART,\n SET_RETIRE_POINT\n\n} from './types';\n\n\nexport const addProductItem = (data, alertMessage) => (dispatch) => {\n\n console.log(\"action.js 1 add product data: \", data);\n\n let addProductData = {\n productID: data.objectID,\n quantity: data.minimumAmount,\n price: data.price,\n\n minimumAmount: data.minimumAmount,\n discountLabelFirstText: data.discountLabelFirstText,\n discountLabelSecondText: data.discountLabelSecondText,\n haveDiscount: data.haveDiscount,\n priceWithDiscount: data.priceWithDiscount\n }\n\n\n\n const response = fetch('/api/ShoppingCart/AddProduct', {\n method: 'POST',\n body: JSON.stringify(addProductData),\n headers: {\n 'Accept': 'application/json',\n 'Content-Type': 'application/json'\n },\n }).then(function (response) {\n return response.json();\n })\n .then(function (myJson) {\n console.log(\"action.js 2 addProductItem data response: \", myJson);\n\n data.id = myJson.shoppingCartID;\n data.totalPrice = myJson.totalPrice;\n dispatch({\n type: ADD_TO_CART,\n payload: data\n })\n });\n\n\n}\n\nexport const addProductItemQuantity = (data, alertMessage) => (dispatch) => {\n\n console.log(\"action.js 1 addProductItemQuantity: \", data);\n\n let addProductData = {\n productID: data.objectID,\n quantity: data.quantity,\n price: data.price,\n\n minimumAmount: data.minimumAmount,\n discountLabelFirstText: data.discountLabelFirstText,\n discountLabelSecondText: data.discountLabelSecondText,\n haveDiscount: data.haveDiscount,\n priceWithDiscount: data.priceWithDiscount\n }\n\n\n\n const response = fetch('/api/ShoppingCart/AddProduct', {\n method: 'POST',\n body: JSON.stringify(addProductData),\n headers: {\n 'Accept': 'application/json',\n 'Content-Type': 'application/json'\n },\n }).then(function (response) {\n return response.json();\n })\n .then(function (myJson) {\n console.log(\"action.js 2 addProductItemQuantity data response: \", myJson);\n\n data.id = myJson.shoppingCartID;\n data.totalPrice = myJson.totalPrice;\n dispatch({\n type: ADD_TO_CART_QUANTITY,\n payload: data\n })\n });\n\n\n}\n\nexport const showAlert = (message, type) => ({\n type: SHOW_ALERT,\n payload: { message, type }\n})\n\nexport const hideAlert = () => ({\n type: HIDE_ALERT,\n})\n\nexport const addToWishlist = (data, alertMessage) => (dispatch) => {\n dispatch({\n type: ADD_TO_WISHLIST,\n payload: data\n })\n}\n\nexport const moveWishlistItemToCart = () => ({\n type: MOVE_WISHLISTITEM_TO_CART\n})\n\nexport const deleteItemFromWishlist = (data) => ({\n type: REMOVE_FROM_WISHLIST,\n payload: data\n})\n\nexport const removeProductItem = (data) => (dispatch) => {\n \n const response = fetch('/api/ShoppingCart/RemoveProduct', {\n method: 'POST',\n body: JSON.stringify(data),\n headers: {\n 'Accept': 'application/json',\n 'Content-Type': 'application/json'\n },\n });\n\n dispatch({\n type: REMOVE_FROM_CART,\n payload: data\n })\n}\n\nexport const updateProductQuantity = (data) => (dispatch) => {\n\n let newData = data.cartItem;\n newData.quantity = data.newQuantity;\n\n\n const responseupdateProductQuantity = fetch('/api/ShoppingCart/UpdateProductQuantity', {\n method: 'POST',\n body: JSON.stringify(newData),\n headers: {\n 'Accept': 'application/json',\n 'Content-Type': 'application/json'\n },\n });\n\n dispatch({\n type: UPDATE_PRODUCT_QUANTITY,\n payload: data\n })\n}\n\nexport const changeCurrency = (currency) => ({\n type: CHANGE_CURRENCY,\n payload: currency\n})\n\nexport const setLanguage = (locale) => ({\n type: SET_LANGUAGE,\n payload: locale\n})\n\nexport const finalPayment = (history) => (dispatch) => {\n history.push('/final-receipt');\n dispatch({ type: FINAL_PAYMENT });\n\n}\n\nexport const rtlLayoutAction = (isRtlLayout) => ({\n type: RTL_LAYOUT,\n payload: isRtlLayout\n});\n\n//Redux Action To Emit Collapse Sidebar\nexport const collapsedSidebarAction = (isCollapsed) => ({\n type: COLLAPSED_SIDEBAR,\n isCollapsed\n});\n\n//======== Admin-panel actions ========\n\n//add user\nexport const addNewUser = (data) => ({\n type: ADD_NEW_USER,\n payload: data\n})\n\n//delete user \nexport const deleteUser = (data) => ({\n type: DELETE_USER,\n payload: data\n})\n\n//======== Customiser ========\n/**\n * Redux Action To Emit Dark Mode\n * @param {*boolean} isDarkMode \n */\nexport const darkModeAction = (isDarkMode) => ({\n\ttype: DARK_MODE,\n\tpayload: isDarkMode\n});\n\n\n\nexport const initializeCart = (data) => ({\n type: INITIALIZE_CART\n , payload: data\n})\n\n\n\nexport const clearCart = (data) => ({\n type: CLEAR_CART\n , payload: data\n})\n\n\nexport const updateShippingCost = (data) => ({\n type: UPDATE_SHIPPING_COST\n , payload: data\n})\n\nexport const setOrderCode = (data) => ({\n type: ORDER_CODE\n , payload: data\n})\n\nexport const setRetirePoint = (data) => ({\n type: SET_RETIRE_POINT\n , payload: data\n})\n\n\n\n","/* eslint-disable */\n/**\n * Header menu component\n */\nimport React, { Fragment } from 'react';\nimport { Link } from 'react-router-dom';\nimport classnames from \"classnames\";\nimport Grid from \"@material-ui/core/Grid\";\nimport List from \"@material-ui/core/List\";\nimport ListItem from \"@material-ui/core/ListItem\";\n\nimport Masonry from \"@mui/lab/Masonry\";\n\nimport { FaWhatsapp } from 'react-icons/fa';\n\n\n\nclass HeaderMenu extends React.Component {\n\n constructor(props) {\n super(props); \n }\n\n \n\n\n render() {\n if (this.props.navLinks == undefined)\n return null;\n \n return (\n
\n \n
\n );\n }\n}\n\nexport default HeaderMenu;\n\n\n//","/**\n * cart list item\n */\n/* eslint-disable */\nimport React, { Fragment } from 'react';\nimport Button from '@material-ui/core/Button';\nimport Popover from '@material-ui/core/Popover';\nimport IconButton from \"@material-ui/core/IconButton\";\n\n\n\n\nimport Badge from '@material-ui/core/Badge';\nimport { Link } from 'react-router-dom';\n\n//connect to store\nimport { connect } from \"react-redux\";\n\n// global component\nimport CurrencyIcon from '../../global/currency/CurrencyIcon';\nimport ConfirmationDialog from '../../global/confirmation-popup';\n\nimport axios from 'axios';\nimport { getSubTotalPrice, getTotalPrice } from \"../../../helpers\";\n\n\n//action\nimport { removeProductItem, initializeCart } from '../../../actions/action';\n\nclass Cart extends React.Component {\n\n constructor(props) {\n super(props);\n this.confirmationDialog = React.createRef();\n this.state = {\n anchorEl: null,\n };\n }\n\n async componentDidMount() {\n //const shoppingCartResponse = await axios.get('/api/ShoppingCart/GetCart');\n //this.props.initializeCart(shoppingCartResponse.data);\n }\n\n //Define function for open dropdown\n handleClick = event => {\n this.setState({\n anchorEl: event.currentTarget,\n });\n };\n\n //Define function for close dropdown\n handleClose = () => {\n this.setState({\n anchorEl: null,\n });\n };\n\n //Function to delete product from cart\n onDeleteCartItem(cartItem) {\n this.cartItem = cartItem;\n this.confirmationDialog.current.openDialog();\n }\n\n //Function for delete cart product\n deleteCartItem(popupResponse) {\n if (popupResponse) {\n this.props.removeProductItem(this.cartItem);\n this.cartItem = \"\"\n }\n this.setState(\n {\n anchorEl: null,\n }\n )\n }\n\n //get url\n getUrl(url) {\n //console.log(\"url\", url.split('/')[0])\n return url.split('/')[0];\n }\n\n render() {\n\n const { anchorEl } = this.state;\n const open = Boolean(anchorEl);\n const { cart } = this.props;\n\n return (\n
\n \n {cart && cart.length > 0 ?\n (\n \n shopping_cart\n\n \n )\n :\n (\n shopping_cart\n )\n }\n \n \n
\n {(cart && cart.length > 0) ?\n (\n \n
    \n {cart && cart.map((cartItem, index) => {\n return (\n
  • \n
    \n
    \n\n\n {\n this.getUrl(cartItem.image) === 'https:' ?\n \n :\n \n }\n\n\n
    \n
    \n
    \n
    {cartItem.name}
    \n

    Cantidad: {cartItem.quantity}

    \n

    {cartItem.totalPrice.toFixed(2)}

    \n
    \n
    \n this.onDeleteCartItem(cartItem)\n }\n title=\"Eliminar producto\"\n >\n delete\n \n\n
    \n
    \n
    \n
  • \n )\n\n\n })\n }\n\n\n
  • \n\n\n
    \n Envío
    \n\n\n\n
    \n {this.props.shipping}\n
    \n\n
    \n
    \n\n\n
  • \n\n\n
  • \n\n\n
    \n Total
    \n\n\n\n
    \n {getTotalPrice()}\n
    \n\n
    \n
    \n\n\n
  • \n\n\n\n\n\n\n
\n
\n \n
\n
\n )\n :\n (\n
\n Carrito sin productos\n
\n )\n }\n
\n this.deleteCartItem(res)}\n />\n \n
\n );\n }\n}\n\n// map state to props\nconst mapStateToProps = ({ ecommerce }) => {\n const { cart, shipping } = ecommerce;\n return { cart, shipping };\n}\n\nexport default connect(mapStateToProps, {\n initializeCart,\n removeProductItem\n})(Cart);\n\n","import React from 'react';\nimport axios from 'axios';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport Menu from '@material-ui/core/Menu';\nimport Avatar from '@material-ui/core/Avatar';\nimport { Link, withRouter } from 'react-router-dom';\nimport Popover from '@material-ui/core/Popover';\n\nimport Person from '@material-ui/icons/Person';\n\nimport { deleteToken, getToken } from '../../../helpers/auth-helper';\n\n//connect to store\r\nimport UserContext from '../../../userContext';\n\nclass Logout extends React.Component {\n constructor(props) {\n super(props);\n }\n static contextType = UserContext \n\n state = {\n anchorEl: null,\n result: null,\n isAuthenticated: false,\n menus: [\n {\n id: 1,\n title: 'Mis datos',\n icon: 'account_circle',\n path: '/account/profile'\n }, \n \n //{\n // id: 4,\n // title: 'Salir',\n // icon: 'power_settings_new',\n // path: '/sign-in'\n //}\n ]\n };\n\n //define function for open dropdown\n handleMenu = event => {\n this.setState({ anchorEl: event.currentTarget });\n };\n\n //define function for close dropdown\n handleClose = (e) => {\n\n this.setState({ anchorEl: null });\n };\n\n handleCloseSignOut = (e) => {\n\n const { logoutUser } = this.context;\n\n this.setState({ anchorEl: null });\n deleteToken(e);\r\n logoutUser();\r\n\r\n this.props.history.push(\"/sign-in\");\r\n }\n\n async componentDidMount() {\n }\n\n renderLoginOptions() {\n\n const { anchorEl } = this.state;\n const open = Boolean(anchorEl);\n\n return (\n
\n \n \n\n\n
\n \n {this.state.menus.map((menu, index) => (\n \n {menu.icon}\n {menu.title}\n \n ))}\n\n \n {\"power_settings_new\"}\n Salir\n \n \n
\n\n\n\n
\n );\r\n }\n\n renderLogoutOptions() {\n return (\r\n \r\n \r\n \r\n );\r\n }\n\n\n render() {\n\n var { user } = this.context; \n\n console.log(\"Logout.js: \", user.isAuth);\n\n if (user.isAuth === false) {\n return (this.renderLogoutOptions())\n }\n else {\n return (this.renderLoginOptions())\n }\n }\n}\n\n\nexport default withRouter(Logout);\n\n\n","/**\n * Menu List Item\n */\nimport React, { Fragment, Component } from 'react';\nimport List from '@material-ui/core/List';\nimport ListItem from '@material-ui/core/ListItem';\nimport ListItemIcon from '@material-ui/core/ListItemIcon';\nimport Collapse from '@material-ui/core/Collapse';\nimport { Link } from 'react-router-dom';\nimport classNames from 'classnames';\nimport Button from '@material-ui/core/Button';\nimport { FaWhatsapp } from 'react-icons/fa';\n\n//Intl message\n//import IntlMessages from '../../../util/IntlMessages';\n\nclass MenuListItem extends Component {\n\n state = {\n menuOpen: false,\n subMenuOpen: ''\n }\n\n /**\n * On Toggle Menu\n */\n onToggleMenu() {\n this.setState({ menuOpen: !this.state.menuOpen });\n }\n\n /**\n * On Toggle Collapse Menu\n */\n onToggleCollapseMenu(key) {\n if (this.state.subMenuOpen === '') {\n this.setState({ subMenuOpen: key });\n } else {\n this.setState({ subMenuOpen: '' });\n }\n }\n\n render() {\n\n const { subMenuOpen, menuOpen } = this.state;\n const { menu } = this.props;\n if (menu.child_routes != null) {\n return (\n \n \n \n \n list\n \n {menu.menu_title} \n \n \n \n {(menu.type && menu.type === 'subMenu') ?\n \n {menu.child_routes.map((subMenu, index) => {\n return (\n \n {subMenu.child_routes !== null ?\n \n this.onToggleCollapseMenu(subMenu)}\n >\n \n \n {subMenu.icon}\n \n {subMenu.menu_title} \n \n \n \n \n {subMenu.child_routes.map((nestedMenu, nestedKey) => (\n \n \n \n {nestedMenu.icon}\n \n {nestedMenu.menu_title} \n \n \n ))}\n \n \n \n :\n \n \n \n {subMenu.menu_title}\n \n \n \n }\n \n )\n })}\n \n :\n \n {menu.child_routes && Object.keys(menu.child_routes).map((subMenu, index) => {\n return (\n \n this.onToggleCollapseMenu(subMenu)}\n >\n \n {subMenu}\n \n \n \n \n {menu.child_routes[subMenu].map((nestedMenu, nestedKey) => (\n \n \n \n {nestedMenu.icon}\n \n {nestedMenu.menu_title}\n \n \n ))}\n \n \n \n )\n })}\n \n }\n \n \n )\n }\n\n if (menu.menu_title === 'WhatsApp') {\n return (\n \n \n {menu.menu_title}\n
\n\n \n )\n }\n else {\n return (\n \n \n \n {menu.menu_title} \n \n\n \n );\r\n }\n\n \n }\n}\n\nexport default MenuListItem;\n","/**\n * Sidebar menu component\n */\nimport React from 'react';\nimport SwipeableDrawer from '@material-ui/core/SwipeableDrawer';\nimport IconButton from '@material-ui/core/IconButton';\nimport { Scrollbars } from 'react-custom-scrollbars';\nimport { List } from '@material-ui/core';\nimport ListItemButton from '@mui/material/ListItemButton';\nimport ListItemText from '@material-ui/core/ListItemText';\nimport Collapse from '@material-ui/core/Collapse';\n\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\nimport ExpandLessIcon from '@material-ui/icons/ExpandLess';\n\n//component\nimport MenuListItem from './MenuListItem';\n\nclass SideBarMenuFixedHeader extends React.Component {\n constructor(props) {\n super(props);\n }\n\n state = {\n open: false,\n open2: false,\n\n\n };\n\n /**\n * function for toggle sidebar drawer\n */\n toggleDrawer() {\n this.setState({\n open: !this.state.open\n });\n };\n\n /**\n * function for close sidebar drawer\n */\n closeDrawer() {\n this.setState({\n open: false\n });\n }\n\n handleClick = (open2) => {\n this.setState({\n open2: !open2,\n })\n };\n\n render() {\n\n if (this.props.navLinks == undefined)\n return null;\n\n return (\n
\n \n menu\n \n \n \n
\n\n \n\n \n {this.props.navLinks.map((NavLink, index) => (\n
\n\n { NavLink.categorias != null ?\n
\n this.handleClick(this.state.open2)} className={this.state.open2 ? \"selected\" : \"non-selected\"}>\n \n {this.state.open2 ? : }\n \n\n \n \n {\n NavLink.categorias.map((categoria, index) => (\n this.closeDrawer()}\n />\n ))\n }\n \n \n
\n :\n this.closeDrawer()}\n />\n }\n
\n ))}\n
\n
\n \n \n
\n );\n }\n}\n\nexport default SideBarMenuFixedHeader;\n\n\n","/**\n * App Constants\n*/\n\nexport default {\n AppLogo: require('../assets/images/header-logo.svg'),\n AppLogoWhite: require('../assets/images/header-logo-white.png'), // App logo\n // App logo\n rtlLayout: false, // RTL Layout\n adminLayout: false, // Admin Layout\n\tnavCollapsed: false, // Sidebar Nav Layout\n algoliaConfig: { // Algolia configuration\n appId: 'latency',\n apiKey: '3d9875e51fbd20c7754e65422f7ce5e1',\n indexName: 'bestbuy'\n },\n // Default locale\n locale: {\n locale: 'es',\n name: 'Spanish',\n icon: 'es',\n },\n // Footer about description\n AboutUs: 'Texto acerca de la empresa',\n // Copyright text\n CopyrightText: '© Todos los derechos reservados | Farmanobel.com '\n}","/**\n * header search widget\n */\nimport React from 'react';\nimport Input from '@material-ui/core/Input';\nimport { withRouter } from 'react-router-dom';\n\n\nclass SearchBoxV2 extends React.Component {\n\n constructor(props) {\n super(props);\n\n this.handleKeyDown = this.handleKeyDown.bind(this);\n\n this.state = {\n inputText: '',\n };\n\n }\n\n handleKeyDown(e) {\n if (e.key === 'Enter') {\n var inputText = this.state.inputText;\n\n \n\n this.setState({\n inputText: ''\n })\n\n this.props.history.push(\"/buscador/\" + inputText);\n\n\n }\n }\n\n\n onChange = (event) => {\n this.setState({\n [event.target.name]: event.target.value\n })\n }\n\n\n render() {\n return (\n
\n
\n \n
\n
\n )\n }\n}\n\nexport default withRouter(SearchBoxV2);\n","/**\n * Fixed header component\n */\n/* eslint-disable */\nimport React from 'react';\nimport Grid from \"@material-ui/core/Grid\";\nimport { Link } from 'react-router-dom';\n\n// components\nimport HeaderMenu from \"./HeaderMenu\";\nimport SideBarMenuFixedHeader from '../sidebar/SideBarMenuFixedHeader';\nimport AppConfig from '../../../constants/AppConfig';\nimport Cart from \"./Cart\";\nimport SearchBoxV2 from './SearchBoxV2';\nimport Logout from \"./Logout\";\n\n class FixedHeader extends React.Component {\n\n render() {\r\n\r\n var style = {\n color: '#fff'\r\n }\n\r\n\r\n return (\n
\n
\n\n \n\n \n \n
\n \n \"header-logo-farmanobel\" \n \n
\n
\n\n \n \n \n\n \n
\n \n \n
\n
\n\n {/*\n \n */}\n
\n
\n
\n );\n }\n}\n\nexport default FixedHeader;","/**\n * Sidebar menu component\n */\nimport React from 'react';\nimport SwipeableDrawer from '@material-ui/core/SwipeableDrawer';\nimport IconButton from '@material-ui/core/IconButton';\n\n\nimport { Scrollbars } from 'react-custom-scrollbars';\nimport { List, Hidden, ListItem } from '@material-ui/core';\nimport SearchV2 from '../headers/SearchBoxV2';\n\n\n\n\nimport Collapse from '@material-ui/core/Collapse';\n\n\nimport ListItemButton from '@mui/material/ListItemButton';\n\nimport ListItemIcon from '@material-ui/core/ListItemIcon';\nimport ListItemText from '@material-ui/core/ListItemText';\n\nimport InboxIcon from '@material-ui/icons/Inbox';\n\n\n\nimport SendIcon from '@material-ui/icons/Send';\n\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\nimport ExpandLessIcon from '@material-ui/icons/ExpandLess';\nimport StarBorder from '@material-ui/icons/StarBorder';\n\n\n//component\nimport MenuListItem from './MenuListItem';\n\nclass SidebarMenu extends React.Component {\n constructor(props) {\n super(props);\n }\n\n state = {\n open: false,\n open2: false,\n };\n\n /**\n * function for toggle sidebar drawer\n */\n toggleDrawer() {\n this.setState({\n open: !this.state.open\n });\n };\n\n /**\n * function for close sidebar drawer\n */\n closeDrawer() {\n this.setState({\n open: false\n });\n }\n\n handleClick = (open2) => {\n this.setState({\n open2: !open2,\r\n\t\t})\n };\n\n render() {\n\n if (this.props.navLinks == undefined)\n return null;\n\n return (\n
\n \n menu\n \n \n \n
\n\n \n\n \n {this.props.navLinks.map((NavLink, index) => (\n
\n\n { NavLink.categorias != null ?\n
\n this.handleClick(this.state.open2)} className={ this.state.open2 ? \"selected\" : \"non-selected\"}>\n \n {this.state.open2 ? : }\n \r\n\r\n \r\n \r\n {\r\n NavLink.categorias.map((categoria, index) => (\r\n this.closeDrawer()}\n />\r\n ))\r\n }\r\n \r\n \n
\n :\n this.closeDrawer()}\n /> \n } \n
\n ))}\n
\n
\n \n \n
\n );\n }\n}\n\nexport default SidebarMenu;\n\n\n","/**\n * site header two component\n */\n/* eslint-disable */\nimport React from 'react';\nimport AppBar from '@material-ui/core/AppBar';\nimport Grid from \"@material-ui/core/Grid\";\nimport IconButton from \"@material-ui/core/IconButton\";\nimport { Link } from 'react-router-dom';\n// components\nimport HeaderMenu from \"./HeaderMenu\";\nimport Cart from \"./Cart\";\nimport Logout from \"./Logout\";\nimport FixedHeader from '../headers/FixedHeader';\nimport SidebarMenu from '../sidebar';\nimport AppConfig from '../../../constants/AppConfig';\nimport SearchBoxV2 from './SearchBoxV2';\n\n\nimport axios from 'axios';\n\n\nclass HeaderTwo extends React.Component {\n\n constructor(props) {\n super(props);\n\n this.state = {\n fixedHeader: false,\n navLinks: [],\n }\n\n \n }\n\n componentDidMount() {\n }\n\n\n\n UNSAFE_componentWillMount() {\n this.getNavLinksData();\n\n window.addEventListener('scroll', this.hideBar);\n }\n\n componentWillUnmount() {\n window.removeEventListener('scroll', this.hideBar);\n }\n\n getNavLinksData() {\n axios.get('/api/Home/GetHeaderMenu/').then(\n response => {\n this.setState({\n navLinks: response.data,\n });\n });\r\n }\n \n\n //Function to show and hide fixed header\n hideBar = () => {\n const { fixedHeader } = this.state;\n this.scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;\n this.scrollTop >= 200 ?\n !fixedHeader && this.setState({ fixedHeader: true })\n :\n fixedHeader && this.setState({ fixedHeader: false });\n }\n\n\n render() {\n\n var style = {\n color: '#666'\r\n }\n \n\n\n if (!this.state.navLinks.length)\n return null;\n \n return (\n\n
\n \n
\n\n
\n\n \n\n \n\n \n\n
\n \n \"header-logo-farmanobel\"\n \n
\n
\n\n \n \n \n \n \n\n \n
\n\n \r\n \r\n store\r\n \r\n \n\n \n \n
\n
\n\n
\n\n
\n
\n\n\n\n\n
\n
\n \n \n
\n \n {/**/}\n {/**/}\n\n
\n
\n
\n
\n
\n \n
\n
\n );\n }\n}\n\n\n\nexport default HeaderTwo;\n\n","import React, { Fragment } from 'react';\n//connect to store\nimport { connect } from 'react-redux';\n\n//component\nimport { Grid, Button, Paper } from '@material-ui/core';\n\nimport FormControl from '@material-ui/core/FormControl';\nimport TextField from '@material-ui/core/TextField';\nimport Cards from 'react-credit-cards';\nimport MaskedInput from \"react-text-mask\";\nimport Input from '@material-ui/core/Input';\nimport InputLabel from '@material-ui/core/InputLabel';\n\nimport Select from '@material-ui/core/Select';\nimport MenuItem from '@material-ui/core/MenuItem';\n\n\nimport { getTotalPrice } from \"../../../helpers\";\nimport { withRouter } from 'react-router';\n\n\nimport { ValidatorForm, TextValidator } from 'react-material-ui-form-validator';\r\n\nconst TextMaskCustom = (props) => {\n const { inputRef, ...other } = props;\n return (\n \n );\n\n}\nconst TextCVC = (props) => {\n const { inputRef, ...other } = props;\n return (\n \n );\n}\n\n\n\nclass MercadoPago extends React.Component {\n\n constructor(props) {\n super(props);\r\n\r\n\r\n this.mercadoPagoPayHandler = this.mercadoPagoPayHandler.bind(this);\r\n this.mpResponseHandler = this.mpResponseHandler.bind(this);\r\n\r\n this.onCreditCardNumberChange = this.onCreditCardNumberChange.bind(this);\r\n this.setPaymentMethod = this.setPaymentMethod.bind(this);\r\n this.getInstallments = this.getInstallments.bind(this);\r\n\r\n \r\n this.state = {\r\n errors: {},\n fields: {},\r\n\r\n creditCardInfo: {\n number: '',\n holderName: '',\n expiryDate: '',\n focused: '',\n cvc: ''\n },\r\n\r\n mercadoPagoInfo: {\r\n description: '',\r\n transaction_amount: 0,\r\n card_token_id: '',\r\n installment: '',\r\n paymentMethodId: ''\r\n },\r\n\r\n installments: []\r\n }\r\n }\n\n\n componentDidMount() {\r\n this.setState({\r\n mercadoPagoInfo: {\r\n transaction_amount: getTotalPrice(),\r\n description: '',\r\n docNumber: '',\r\n email: '',\r\n\r\n }\r\n\r\n });\r\n }\n\n\n onMercadoInfoChange(key, e) {\n this.setState({\n mercadoPagoInfo: {\n ...this.state.mercadoPagoInfo,\n [key]: e.target.value\n }\n })\n }\n\n \n handleValidation() {\n let fields = this.state.fields;\n let errors = {};\n let formIsValid = true;\n\n\n\n }\n\n\n mercadoPagoPayHandler(event) {\n\n this.handleValidation();\n\n console.log(\"asd\");\n\n window.Mercadopago.setPublishableKey(\"APP_USR-309c3490-2032-48f0-8f1b-fadf957882bb\");\r\n\r\n var securityCodeValue = document.getElementById(\"securityCode\").value;\r\n\r\n securityCodeValue = securityCodeValue.replace(/_\\s*$/, \"\");\r\n\r\n document.getElementById(\"securityCode\").value = securityCodeValue;\r\n var $form = document.querySelector('#pay');\r\n\r\n window.Mercadopago.createToken($form, this.mpResponseHandler);\r\n event.preventDefault();\r\n }\n\n mpResponseHandler(status, response) {\r\n\r\n let currentComponent = this;\r\n\r\n var $form = document.querySelector('#pay');\r\n\r\n\r\n if (response.error) {\r\n\r\n var data = {\n ok: false,\n };\n\n\n this.props.submitStepThree(data);\r\n\r\n\r\n } else {\r\n var card_token_id = response.id;\r\n\r\n currentComponent.setState({\n mercadoPagoInfo: {\n ...this.state.mercadoPagoInfo,\n card_token_id: response.id\n }\n })\r\n\r\n const { creditCardInfo } = this.state\n const { mercadoPagoInfo } = this.state\r\n\r\n var data = {\n ok: true,\n description: mercadoPagoInfo.description,\n transaction_amount: mercadoPagoInfo.transaction_amount,\r\n card_token_id: mercadoPagoInfo.card_token_id,\r\n installment: mercadoPagoInfo.installment,\r\n docNumber: mercadoPagoInfo.docNumber,\r\n email: mercadoPagoInfo.email,\n creditCardInfo: creditCardInfo,\n paymentMethodId: mercadoPagoInfo.paymentMethodId\n };\n\n\n this.props.submitStepThree(data);\r\n\r\n }\r\n }\n\n guessPaymentMethod(event) {\r\n\r\n window.Mercadopago.setPublishableKey(\"APP_USR-309c3490-2032-48f0-8f1b-fadf957882bb\");\r\n\r\n let cardnumber = document.getElementById(\"cardNumber\").value;\r\n\r\n if (cardnumber.length >= 6) {\r\n\r\n\r\n let bin = cardnumber.substring(0, 6);\r\n\r\n window.Mercadopago.getPaymentMethod({\r\n \"bin\": bin\r\n }, this.setPaymentMethod);\r\n }\r\n };\r\n\r\n setPaymentMethod(status, response) {\r\n\r\n if (status === 200) {\r\n let paymentMethodId = response[0].id;\r\n let element = document.getElementById('payment_method_id');\r\n element.value = paymentMethodId;\r\n\r\n\r\n this.setState({\n mercadoPagoInfo: {\n ...this.state.mercadoPagoInfo,\n paymentMethodId: paymentMethodId\n }\n })\r\n\r\n\r\n this.getInstallments();\r\n }\r\n else {\r\n //alert(`payment method info error: ${response}`);\r\n }\r\n }\n\n getInstallments() {\r\n\r\n let currentComponent = this;\r\n\r\n window.Mercadopago.setPublishableKey(\"APP_USR-309c3490-2032-48f0-8f1b-fadf957882bb\");\r\n\r\n window.Mercadopago.getInstallments({\r\n \"payment_method_id\": document.getElementById('payment_method_id').value,\r\n \"amount\": parseFloat(document.getElementById('transaction_amount').value)\r\n\r\n }, function (status, response) {\r\n if (status === 200) {\r\n\r\n //document.getElementById('installments').options.length = 0;\r\n\r\n\r\n //response[0].payer_costs.forEach(installment => {\r\n // let opt = document.createElement('option');\r\n // opt.text = installment.recommended_message;\r\n // opt.value = installment.installments;\r\n // document.getElementById('installments').appendChild(opt);\r\n //});\r\n\r\n\r\n currentComponent.setState({\r\n installments: response[0].payer_costs,\r\n });\r\n\r\n } else {\r\n alert(`installments method info error: ${response}`);\r\n }\r\n });\r\n }\n\n\n\n\n\n onCreditCardNumberChange(e) {\n this.setState({\n creditCardInfo: {\n ...this.state.creditCardInfo,\n number: e.target.value\n }\n })\n\n this.guessPaymentMethod(e);\n }\n\n\n onCreditCardExpiryDateChange(e) {\n this.setState({\n creditCardInfo: {\n ...this.state.creditCardInfo,\n expiryDate: e.target.value\n }\n })\r\n\r\n var expiryDate = e.target.value;\r\n\r\n if (expiryDate.length >= 2) {\r\n let month = expiryDate.substring(0, 2);\r\n document.getElementById(\"cardExpirationMonth\").value = month;\r\n }\r\n\r\n if (expiryDate.length >= 5) {\r\n let year = expiryDate.substring(3, 5);\r\n document.getElementById(\"cardExpirationYear\").value = year;\r\n }\r\n }\n\n onCreditCardValueChange(key, e) {\n this.setState({\n creditCardInfo: {\n ...this.state.creditCardInfo,\n [key]: e.target.value\n }\n })\n }\n\n onFocusTextFields(key) {\n this.setState({\n creditCardInfo: {\n ...this.state.creditCardInfo,\n focused: key\n }\n })\n }\n\n\n render() {\n\n const { creditCardInfo } = this.state\n const { mercadoPagoInfo } = this.state\n\n\n return (\n
\n console.log(errors)}\r\n >\n \n\n \n\n \n \n\n\n this.onCreditCardNumberChange(e)}\n variant=\"standard\"\n className=\"iron-form-input-wrap\"\n onFocus={() => this.onFocusTextFields('number')}\n validators={['required', 'matchRegexp:^[0-9]+$', 'minNumber:1', 'maxStringLength:20']}\r\n errorMessages={['El número de la tarjeta es requerido', 'Solo números', 'No puede ser 0', 'Máximo 20 carácteres']}\n />\n\n

Sin espacios

\n\n\n this.onCreditCardValueChange('holderName', e)}\n variant=\"standard\"\n className=\"iron-form-input-wrap\"\n onFocus={() => this.onFocusTextFields('name')}\n validators={['required', 'maxStringLength:20']}\r\n errorMessages={['El nombre y apellido es requerido', 'Máximo 20 carácteres']}\n />\r\n\r\n

Tal como aparece en la tarjeta

\n\r\n \n \n Fecha de expiración (MM/YY)\n \n this.onCreditCardExpiryDateChange(e)}\n onFocus={() => this.onFocusTextFields('expiry')}\n inputComponent={TextMaskCustom}\n />\n \r\n\r\n \n Código de seguridad\n this.onCreditCardValueChange('cvc', e)}\n onFocus={() => this.onFocusTextFields('cvc')}\n inputComponent={TextCVC}\n />\n \r\n\n \r\n Cuotas\r\n this.onMercadoInfoChange('installment', e)}\r\n onFocus={() => this.onFocusTextFields('number')}\r\n >\r\n\r\n {\r\n\r\n this.state.installments.map((installment, index) => {\n return (\r\n \r\n {installment.recommended_message}\r\n \r\n )\r\n })\r\n }\r\n\r\n \r\n \r\n\r\n \n\n
\r\n\r\n \n
\n \n
\n
\r\n\n
\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n\r\n
\r\n\n
\n\n \n Continuar\n \n\n
\n
\n
\n )\n }\n}\n\nconst mapStateToProps = ({ ecommerce }) => {\n const { cart } = ecommerce;\n return { cart };\n}\n\nexport default withRouter(connect(mapStateToProps)(MercadoPago));\n\n","/**\n * site footer one component\n */\n/* eslint-disable */\nimport React, { useEffect } from 'react';\nimport Grid from '@material-ui/core/Grid';\nimport List from '@material-ui/core/List';\nimport { Link } from 'react-router-dom';\n\n//App Config\nimport AppConfig from '../../../constants/AppConfig';\nimport mercadoPago from '../../../routes/check-out/payment/mercadoPago';\r\n\nconst localVersion = localStorage.getItem('FarmanobelVersion');\n\n\nexport default function FooterOne(props) {\n\n const { social, about } = props.data;\n\n useEffect(() => {\n\n \n\n //const script = document.createElement('script');\n\n //script.src = \"https://seal.godaddy.com/getSeal?sealID=6MsiDg52wXRb8FfYfoJITqzbMBfniUJeOHVtlXL607HNimkXxoICAyHzlI5L\";\n //script.async = true;\n\n //var elemento = document.getElementById(\"siteseal\");\n\n //elemento.appendChild(script);\n\n //return () => {\n // document.body.removeChild(script);\n //}\n }, []);\n\n\n return (\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n Sobre nosotros\n
\n \n {\n about.map((aboutdata, key) => {\n return (\n
  • \n \n {aboutdata.menu_title}\n \n
  • \n )\n })\n }\n
    \n
    \n
    \n \n
    \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n Redes sociales\n
    \n \n {\n social.map((social, key) => {\n return (\n
  • \n \n {social.menu_title}\n \n
  • \n )\n })\n\n \n }\n\n
    \n
    \n
    \n\n \n
    \n \n \"data-fiscal\"/\n \n
    \n
    \n \n
    \n
    \n
    \n\n\n
    \n
    \n \n \n
    \n\n \"Mercado\n
    \n
    \n \n sitio seguro\n \n \n
    \n

    {AppConfig.CopyrightText} {\"v 0.\" + localVersion + \".28\"}

    \n
    \n
    \n
    \n
    \n
    \n
    \n )\n}\n","export const ApplicationName = 'UI.React';\r\n\r\nexport const QueryParameterNames = {\r\n ReturnUrl: 'returnUrl',\r\n Message: 'message'\r\n};\r\n\r\nexport const LogoutActions = {\r\n LogoutCallback: 'logout-callback',\r\n Logout: 'logout',\r\n LoggedOut: 'logged-out'\r\n};\r\n\r\nexport const LoginActions = {\r\n Login: 'login',\r\n LoginCallback: 'login-callback',\r\n LoginFailed: 'login-failed',\r\n Profile: 'profile',\r\n Register: 'register'\r\n};\r\n\r\nconst prefix = '/authentication';\r\n\r\nexport const ApplicationPaths = {\r\n DefaultLoginRedirectPath: '/',\r\n ApiAuthorizationClientConfigurationUrl: `/_configuration/${ApplicationName}`,\r\n ApiAuthorizationPrefix: prefix,\r\n Login: `${prefix}/${LoginActions.Login}`,\r\n\r\n //Login: `/sign-in`,\r\n\r\n LoginFailed: `${prefix}/${LoginActions.LoginFailed}`,\r\n LoginCallback: `${prefix}/${LoginActions.LoginCallback}`,\r\n Register: `${prefix}/${LoginActions.Register}`,\r\n\r\n // Register: `/sign-up`,\r\n\r\n Profile: `${prefix}/${LoginActions.Profile}`,\r\n LogOut: `${prefix}/${LogoutActions.Logout}`,\r\n //LoggedOut: `${prefix}/${LogoutActions.LoggedOut}`,\r\n LoggedOut: `/`,\r\n LogOutCallback: `${prefix}/${LogoutActions.LogoutCallback}`,\r\n IdentityRegisterPath: '/Identity/Account/Register',\r\n IdentityManagePath: '/Identity/Account/Manage'\r\n};\r\n","import { UserManager, WebStorageStateStore } from 'oidc-client';\r\nimport { ApplicationPaths, ApplicationName } from './ApiAuthorizationConstants';\r\n\r\nexport class AuthorizeService {\r\n _callbacks = [];\r\n _nextSubscriptionId = 0;\r\n _user = null;\r\n _isAuthenticated = false;\r\n\r\n // By default pop ups are disabled because they don't work properly on Edge.\r\n // If you want to enable pop up authentication simply set this flag to false.\r\n _popUpDisabled = true;\r\n\r\n async isAuthenticated() {\r\n const user = await this.getUser();\r\n return !!user;\r\n }\r\n\r\n async getUser() {\r\n if (this._user && this._user.profile) {\r\n return this._user.profile;\r\n }\r\n\r\n await this.ensureUserManagerInitialized();\r\n const user = await this.userManager.getUser();\r\n return user && user.profile;\r\n }\r\n\r\n async getAccessToken() {\r\n await this.ensureUserManagerInitialized();\r\n const user = await this.userManager.getUser();\r\n return user && user.access_token;\r\n }\r\n\r\n // We try to authenticate the user in three different ways:\r\n // 1) We try to see if we can authenticate the user silently. This happens\r\n // when the user is already logged in on the IdP and is done using a hidden iframe\r\n // on the client.\r\n // 2) We try to authenticate the user using a PopUp Window. This might fail if there is a\r\n // Pop-Up blocker or the user has disabled PopUps.\r\n // 3) If the two methods above fail, we redirect the browser to the IdP to perform a traditional\r\n // redirect flow.\r\n async signIn(state) {\r\n await this.ensureUserManagerInitialized();\r\n try {\r\n const silentUser = await this.userManager.signinSilent(this.createArguments());\r\n this.updateState(silentUser);\r\n return this.success(state);\r\n } catch (silentError) {\r\n // User might not be authenticated, fallback to popup authentication\r\n console.log(\"Silent authentication error: \", silentError);\r\n\r\n try {\r\n if (this._popUpDisabled) {\r\n throw new Error('Popup disabled. Change \\'AuthorizeService.js:AuthorizeService._popupDisabled\\' to false to enable it.')\r\n }\r\n\r\n const popUpUser = await this.userManager.signinPopup(this.createArguments());\r\n this.updateState(popUpUser);\r\n return this.success(state);\r\n } catch (popUpError) {\r\n if (popUpError.message === \"Popup window closed\") {\r\n // The user explicitly cancelled the login action by closing an opened popup.\r\n return this.error(\"The user closed the window.\");\r\n } else if (!this._popUpDisabled) {\r\n console.log(\"Popup authentication error: \", popUpError);\r\n }\r\n\r\n // PopUps might be blocked by the user, fallback to redirect\r\n try {\r\n await this.userManager.signinRedirect(this.createArguments(state));\r\n return this.redirect();\r\n } catch (redirectError) {\r\n console.log(\"Redirect authentication error: \", redirectError);\r\n return this.error(redirectError);\r\n }\r\n }\r\n }\r\n }\r\n\r\n async completeSignIn(url) {\r\n try {\r\n await this.ensureUserManagerInitialized();\r\n const user = await this.userManager.signinCallback(url);\r\n this.updateState(user);\r\n return this.success(user && user.state);\r\n } catch (error) {\r\n console.log('There was an error signing in: ', error);\r\n return this.error('There was an error signing in.');\r\n }\r\n }\r\n\r\n // We try to sign out the user in two different ways:\r\n // 1) We try to do a sign-out using a PopUp Window. This might fail if there is a\r\n // Pop-Up blocker or the user has disabled PopUps.\r\n // 2) If the method above fails, we redirect the browser to the IdP to perform a traditional\r\n // post logout redirect flow.\r\n async signOut(state) {\r\n await this.ensureUserManagerInitialized();\r\n try {\r\n if (this._popUpDisabled) {\r\n throw new Error('Popup disabled. Change \\'AuthorizeService.js:AuthorizeService._popupDisabled\\' to false to enable it.')\r\n }\r\n\r\n await this.userManager.signoutPopup(this.createArguments());\r\n this.updateState(undefined);\r\n return this.success(state);\r\n } catch (popupSignOutError) {\r\n console.log(\"Popup signout error: \", popupSignOutError);\r\n try {\r\n await this.userManager.signoutRedirect(this.createArguments(state));\r\n return this.redirect();\r\n } catch (redirectSignOutError) {\r\n console.log(\"Redirect signout error: \", redirectSignOutError);\r\n return this.error(redirectSignOutError);\r\n }\r\n }\r\n }\r\n\r\n async completeSignOut(url) {\r\n await this.ensureUserManagerInitialized();\r\n try {\r\n const response = await this.userManager.signoutCallback(url);\r\n this.updateState(null);\r\n return this.success(response && response.data);\r\n } catch (error) {\r\n console.log(`There was an error trying to log out '${error}'.`);\r\n return this.error(error);\r\n }\r\n }\r\n\r\n updateState(user) {\r\n this._user = user;\r\n this._isAuthenticated = !!this._user;\r\n this.notifySubscribers();\r\n }\r\n\r\n subscribe(callback) {\r\n this._callbacks.push({ callback, subscription: this._nextSubscriptionId++ });\r\n return this._nextSubscriptionId - 1;\r\n }\r\n\r\n unsubscribe(subscriptionId) {\r\n const subscriptionIndex = this._callbacks\r\n .map((element, index) => element.subscription === subscriptionId ? { found: true, index } : { found: false })\r\n .filter(element => element.found === true);\r\n if (subscriptionIndex.length !== 1) {\r\n throw new Error(`Found an invalid number of subscriptions ${subscriptionIndex.length}`);\r\n }\r\n\r\n this._callbacks.splice(subscriptionIndex[0].index, 1);\r\n }\r\n\r\n notifySubscribers() {\r\n for (let i = 0; i < this._callbacks.length; i++) {\r\n const callback = this._callbacks[i].callback;\r\n callback();\r\n }\r\n }\r\n\r\n createArguments(state) {\r\n return { useReplaceToNavigate: true, data: state };\r\n }\r\n\r\n error(message) {\r\n return { status: AuthenticationResultStatus.Fail, message };\r\n }\r\n\r\n success(state) {\r\n return { status: AuthenticationResultStatus.Success, state };\r\n }\r\n\r\n redirect() {\r\n return { status: AuthenticationResultStatus.Redirect };\r\n }\r\n\r\n async ensureUserManagerInitialized() {\r\n if (this.userManager !== undefined) {\r\n return;\r\n }\r\n\r\n let response = await fetch(ApplicationPaths.ApiAuthorizationClientConfigurationUrl);\r\n if (!response.ok) {\r\n throw new Error(`Could not load settings for '${ApplicationName}'`);\r\n }\r\n\r\n let settings = await response.json();\r\n settings.automaticSilentRenew = true;\r\n settings.includeIdTokenInSilentRenew = true;\r\n settings.userStore = new WebStorageStateStore({\r\n prefix: ApplicationName\r\n });\r\n\r\n this.userManager = new UserManager(settings);\r\n\r\n this.userManager.events.addUserSignedOut(async () => {\r\n await this.userManager.removeUser();\r\n this.updateState(undefined);\r\n });\r\n }\r\n\r\n static get instance() { return authService }\r\n}\r\n\r\nconst authService = new AuthorizeService();\r\n\r\nexport default authService;\r\n\r\nexport const AuthenticationResultStatus = {\r\n Redirect: 'redirect',\r\n Success: 'success',\r\n Fail: 'fail'\r\n};\r\n","import React from 'react'\r\nimport { Component } from 'react';\r\nimport authService from './AuthorizeService';\r\nimport { AuthenticationResultStatus } from './AuthorizeService';\r\nimport { LoginActions, QueryParameterNames, ApplicationPaths } from './ApiAuthorizationConstants';\r\n\r\n// The main responsibility of this component is to handle the user's login process.\r\n// This is the starting point for the login process. Any component that needs to authenticate\r\n// a user can simply perform a redirect to this component with a returnUrl query parameter and\r\n// let the component perform the login and return back to the return url.\r\nexport class Login extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n message: undefined\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n const action = this.props.action;\r\n switch (action) {\r\n case LoginActions.Login:\r\n this.login(this.getReturnUrl());\r\n break;\r\n case LoginActions.LoginCallback:\r\n this.processLoginCallback();\r\n break;\r\n case LoginActions.LoginFailed:\r\n const params = new URLSearchParams(window.location.search);\r\n const error = params.get(QueryParameterNames.Message);\r\n this.setState({ message: error });\r\n break;\r\n case LoginActions.Profile:\r\n this.redirectToProfile();\r\n break;\r\n case LoginActions.Register:\r\n this.redirectToRegister();\r\n break;\r\n default:\r\n throw new Error(`Invalid action '${action}'`);\r\n }\r\n }\r\n\r\n render() {\r\n const action = this.props.action;\r\n const { message } = this.state;\r\n\r\n if (!!message) {\r\n return
    {message}
    \r\n } else {\r\n switch (action) {\r\n case LoginActions.Login:\r\n return (
    Processing login
    );\r\n case LoginActions.LoginCallback:\r\n return (
    Processing login callback
    );\r\n case LoginActions.Profile:\r\n case LoginActions.Register:\r\n return (
    );\r\n default:\r\n throw new Error(`Invalid action '${action}'`);\r\n }\r\n }\r\n }\r\n\r\n async login(returnUrl) {\r\n const state = { returnUrl };\r\n const result = await authService.signIn(state);\r\n switch (result.status) {\r\n case AuthenticationResultStatus.Redirect:\r\n break;\r\n case AuthenticationResultStatus.Success:\r\n await this.navigateToReturnUrl(returnUrl);\r\n break;\r\n case AuthenticationResultStatus.Fail:\r\n this.setState({ message: result.message });\r\n break;\r\n default:\r\n throw new Error(`Invalid status result ${result.status}.`);\r\n }\r\n }\r\n\r\n async processLoginCallback() {\r\n const url = window.location.href;\r\n const result = await authService.completeSignIn(url);\r\n switch (result.status) {\r\n case AuthenticationResultStatus.Redirect:\r\n // There should not be any redirects as the only time completeSignIn finishes\r\n // is when we are doing a redirect sign in flow.\r\n throw new Error('Should not redirect.');\r\n case AuthenticationResultStatus.Success:\r\n await this.navigateToReturnUrl(this.getReturnUrl(result.state));\r\n break;\r\n case AuthenticationResultStatus.Fail:\r\n this.setState({ message: result.message });\r\n break;\r\n default:\r\n throw new Error(`Invalid authentication result status '${result.status}'.`);\r\n }\r\n }\r\n\r\n getReturnUrl(state) {\r\n const params = new URLSearchParams(window.location.search);\r\n const fromQuery = params.get(QueryParameterNames.ReturnUrl);\r\n if (fromQuery && !fromQuery.startsWith(`${window.location.origin}/`)) {\r\n // This is an extra check to prevent open redirects.\r\n throw new Error(\"Invalid return url. The return url needs to have the same origin as the current page.\")\r\n }\r\n return (state && state.returnUrl) || fromQuery || `${window.location.origin}/`;\r\n }\r\n\r\n redirectToRegister() {\r\n this.redirectToApiAuthorizationPath(`${ApplicationPaths.IdentityRegisterPath}?${QueryParameterNames.ReturnUrl}=${encodeURI(ApplicationPaths.Login)}`);\r\n }\r\n\r\n redirectToProfile() {\r\n this.redirectToApiAuthorizationPath(ApplicationPaths.IdentityManagePath);\r\n }\r\n\r\n redirectToApiAuthorizationPath(apiAuthorizationPath) {\r\n const redirectUrl = `${window.location.origin}${apiAuthorizationPath}`;\r\n // It's important that we do a replace here so that when the user hits the back arrow on the\r\n // browser he gets sent back to where it was on the app instead of to an endpoint on this\r\n // component.\r\n window.location.replace(redirectUrl);\r\n }\r\n\r\n navigateToReturnUrl(returnUrl) {\r\n // It's important that we do a replace here so that we remove the callback uri with the\r\n // fragment containing the tokens from the browser history.\r\n window.location.replace(returnUrl);\r\n }\r\n}\r\n","import React from 'react'\r\nimport { Component } from 'react'\r\nimport { Route, Redirect } from 'react-router-dom'\r\nimport { ApplicationPaths, QueryParameterNames } from './ApiAuthorizationConstants'\r\nimport authService from './AuthorizeService'\r\n\r\nexport default class AuthorizeRoute extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n ready: false,\r\n authenticated: false\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this._subscription = authService.subscribe(() => this.authenticationChanged());\r\n this.populateAuthenticationState();\r\n }\r\n\r\n componentWillUnmount() {\r\n authService.unsubscribe(this._subscription);\r\n }\r\n\r\n render() {\r\n const { ready, authenticated } = this.state;\r\n const redirectUrl = `${ApplicationPaths.Login}?${QueryParameterNames.ReturnUrl}=${encodeURI(window.location.href)}`\r\n if (!ready) {\r\n return
    ;\r\n } else {\r\n const { component: Component, ...rest } = this.props;\r\n return {\r\n if (authenticated) {\r\n return \r\n } else {\r\n return \r\n }\r\n }} />\r\n }\r\n }\r\n\r\n async populateAuthenticationState() {\r\n const authenticated = await authService.isAuthenticated();\r\n this.setState({ ready: true, authenticated });\r\n }\r\n\r\n async authenticationChanged() {\r\n this.setState({ ready: false, authenticated: false });\r\n await this.populateAuthenticationState();\r\n }\r\n}\r\n","import React from 'react'\r\nimport { Component } from 'react';\r\nimport authService from './AuthorizeService';\r\nimport { AuthenticationResultStatus } from './AuthorizeService';\r\nimport { QueryParameterNames, LogoutActions, ApplicationPaths } from './ApiAuthorizationConstants';\r\n\r\n// The main responsibility of this component is to handle the user's logout process.\r\n// This is the starting point for the logout process, which is usually initiated when a\r\n// user clicks on the logout button on the LoginMenu component.\r\nexport class Logout extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n message: undefined,\r\n isReady: false,\r\n authenticated: false\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n const action = this.props.action;\r\n switch (action) {\r\n case LogoutActions.Logout:\r\n if (!!window.history.state.state.local) {\r\n this.logout(this.getReturnUrl());\r\n } else {\r\n // This prevents regular links to /authentication/logout from triggering a logout\r\n this.setState({ isReady: true, message: \"The logout was not initiated from within the page.\" });\r\n }\r\n break;\r\n case LogoutActions.LogoutCallback:\r\n this.processLogoutCallback();\r\n break;\r\n case LogoutActions.LoggedOut:\r\n this.setState({ isReady: true, message: \"You successfully logged out!\" });\r\n break;\r\n default:\r\n throw new Error(`Invalid action '${action}'`);\r\n }\r\n\r\n this.populateAuthenticationState();\r\n }\r\n\r\n render() {\r\n const { isReady, message } = this.state;\r\n if (!isReady) {\r\n return
    \r\n }\r\n if (!!message) {\r\n return (
    {message}
    );\r\n } else {\r\n const action = this.props.action;\r\n switch (action) {\r\n case LogoutActions.Logout:\r\n return (
    Processing logout
    );\r\n case LogoutActions.LogoutCallback:\r\n return (
    Processing logout callback
    );\r\n case LogoutActions.LoggedOut:\r\n return (


    {message}
    );\r\n default:\r\n throw new Error(`Invalid action '${action}'`);\r\n }\r\n }\r\n }\r\n\r\n async logout(returnUrl) {\r\n const state = { returnUrl };\r\n const isauthenticated = await authService.isAuthenticated();\r\n if (isauthenticated) {\r\n const result = await authService.signOut(state);\r\n switch (result.status) {\r\n case AuthenticationResultStatus.Redirect:\r\n break;\r\n case AuthenticationResultStatus.Success:\r\n await this.navigateToReturnUrl(returnUrl);\r\n break;\r\n case AuthenticationResultStatus.Fail:\r\n this.setState({ message: result.message });\r\n break;\r\n default:\r\n throw new Error(\"Invalid authentication result status.\");\r\n }\r\n } else {\r\n this.setState({ message: \"You successfully logged out!\" });\r\n }\r\n }\r\n\r\n async processLogoutCallback() {\r\n const url = window.location.href;\r\n const result = await authService.completeSignOut(url);\r\n switch (result.status) {\r\n case AuthenticationResultStatus.Redirect:\r\n // There should not be any redirects as the only time completeAuthentication finishes\r\n // is when we are doing a redirect sign in flow.\r\n throw new Error('Should not redirect.');\r\n case AuthenticationResultStatus.Success:\r\n await this.navigateToReturnUrl(this.getReturnUrl(result.state));\r\n break;\r\n case AuthenticationResultStatus.Fail:\r\n this.setState({ message: result.message });\r\n break;\r\n default:\r\n throw new Error(\"Invalid authentication result status.\");\r\n }\r\n }\r\n\r\n async populateAuthenticationState() {\r\n const authenticated = await authService.isAuthenticated();\r\n this.setState({ isReady: true, authenticated });\r\n }\r\n\r\n getReturnUrl(state) {\r\n const params = new URLSearchParams(window.location.search);\r\n const fromQuery = params.get(QueryParameterNames.ReturnUrl);\r\n if (fromQuery && !fromQuery.startsWith(`${window.location.origin}/`)) {\r\n // This is an extra check to prevent open redirects.\r\n throw new Error(\"Invalid return url. The return url needs to have the same origin as the current page.\")\r\n }\r\n return (state && state.returnUrl) ||\r\n fromQuery ||\r\n `${window.location.origin}${ApplicationPaths.LoggedOut}`;\r\n }\r\n\r\n navigateToReturnUrl(returnUrl) {\r\n return window.location.replace(returnUrl);\r\n }\r\n}\r\n","import React, { Component, Fragment } from 'react';\r\nimport { Route } from 'react-router';\r\nimport { Login } from './Login'\r\nimport { Logout } from './Logout'\r\nimport { ApplicationPaths, LoginActions, LogoutActions } from './ApiAuthorizationConstants';\r\n\r\nexport default class ApiAuthorizationRoutes extends Component {\r\n\r\n render () {\r\n return(\r\n \r\n loginAction(LoginActions.Login)} />\r\n loginAction(LoginActions.LoginFailed)} />\r\n loginAction(LoginActions.LoginCallback)} />\r\n loginAction(LoginActions.Profile)} />\r\n loginAction(LoginActions.Register)} />\r\n logoutAction(LogoutActions.Logout)} />\r\n logoutAction(LogoutActions.LogoutCallback)} />\r\n logoutAction(LogoutActions.LoggedOut)} />\r\n );\r\n }\r\n}\r\n\r\nfunction loginAction(name){\r\n return ();\r\n}\r\n\r\nfunction logoutAction(name) {\r\n return ();\r\n}\r\n","/**\n * AsyncRoutes\n * Code Splitting Component / Server Side Rendering\n */\nimport React from 'react';\nimport Loadable from 'react-loadable';\n\n//app loader\nimport ContentLoader from '../components/global/loaders/ContentLoader';\n\n\n// Home\nconst AsyncSanJoseSaludComponent = Loadable({\n loader: () => import('../routes/san-jose-salud'),\n loading: () => ,\n});\n\n\n// Home\nconst AsyncHomePageTwoComponent = Loadable({\n loader: () => import('../routes/home-two'),\n loading: () => ,\n});\n\n// Home\nconst AsyncSearchProductsComponent = Loadable({\n loader: () => import('../routes/shop-by-search'),\n loading: () => ,\n});\n\n\n\n// accessories\nconst AsyncAccessoriesComponent = Loadable({\n loader: () => import('../routes/shop-by-categories/'),\n loading: () => ,\n});\n\n// subcategories\nconst AsyncSubcategoriesComponent = Loadable({\n loader: () => import('../routes/shop-by-subcategories/'),\n loading: () => ,\n});\n\n// shop-by-brands\nconst AsyncBrandsComponent = Loadable({\n loader: () => import('../routes/shop-by-brands/'),\n loading: () => ,\n});\n\n// shop-by-offers\nconst AsyncOffersComponent = Loadable({\n loader: () => import('../routes/shop-by-offers/'),\n loading: () => ,\n});\n\n// shop-by-flyer\nconst AsyncFlyerComponent = Loadable({\n loader: () => import('../routes/shop-by-flyer/'),\n loading: () => ,\n});\n\n// shop-by-laboratories\nconst AsyncLaboratoriesComponent = Loadable({\n loader: () => import('../routes/shop-by-laboratories/'),\n loading: () => ,\n});\n\n\n// reserve-with-recipe\nconst AsyncReserveWithRecipeComponent = Loadable({\n loader: () => import('../routes/reserve-with-recipe/'),\n loading: () => ,\n});\n\n// offers\nconst AsyncRrhhComponent = Loadable({\n loader: () => import('../routes/rrhh/'),\n loading: () => ,\n});\n\n\n\n// about us\nconst AsyncAboutUSComponent = Loadable({\n loader: () => import('../routes/about-us'),\n loading: () => ,\n});\n\n// cart\nconst AsyncCartComponent = Loadable({\n loader: () => import('../routes/cart'),\n loading: () => ,\n});\n\n// checkout\nconst AsyncCheckOutComponent = Loadable({\n loader: () => import('../routes/check-out'),\n loading: () => ,\n});\n\n\n// offers\nconst AsyncFolderDigitalComponent = Loadable({\n loader: () => import('../routes/folder-digital/'),\n loading: () => ,\n});\n\n\n\n// Faq\nconst AsyncPharmaciesComponent = Loadable({\n loader: () => import('../routes/pharmacies'),\n loading: () => ,\n});\n\n\n\n\n// Faq\nconst AsyncFAQComponent = Loadable({\n loader: () => import('../routes/faq'),\n loading: () => ,\n});\n\n// page404\nconst AsyncPageNotFoundComponent = Loadable({\n loader: () => import('../routes/page-404'),\n loading: () => ,\n});\n\n// Payment\nconst AsyncPaymentOptionsComponent = Loadable({\n loader: () => import('../routes/check-out/payment'),\n loading: () => ,\n});\n\n// privacy policy\nconst AsyncPrivacyPolicyComponent = Loadable({\n loader: () => import('../routes/privacy-policy'),\n loading: () => ,\n});\n\n// Terms and Condition\nconst AsyncTermAndConditionComponent = Loadable({\n loader: () => import('../routes/term-and-condition'),\n loading: () => ,\n});\n\n// product detail\nconst AsyncProductDetailComponent = Loadable({\n loader: () => import('../routes/products'),\n loading: () => ,\n});\n\n\n// product detail2\nconst AsyncProductDetail2Component = Loadable({\n loader: () => import('../routes/product'),\n loading: () => ,\n});\n\n// invoice\nconst AsyncInvoiceComponent = Loadable({\n loader: () => import('../routes/check-out/final-receipt'),\n loading: () => ,\n});\n\n\n\nconst AsyncProfileComponent = Loadable({\n loader: () => import('../routes/profile'),\n loading: () => ,\n});\n\n\n// SignIn\nconst AsyncSignInPageComponent = Loadable({\n loader: () => import('../routes/session/sign-in'),\n loading: () => ,\n});\n\n// Register\nconst AsyncSignUpComponent = Loadable({\n loader: () => import('../routes/session/sign-up'),\n loading: () => ,\n});\n\n// ForgetPassword\nconst AsyncForgetPasswordComponent = Loadable({\n loader: () => import('../routes/session/forget-password'),\n loading: () => ,\n});\n\n\nconst AsyncPasswordRecoveryComponent = Loadable({\n loader: () => import('../routes/session/recuperar-usuario'),\n loading: () => ,\n});\n\n\n\nconst SuccessComponent = Loadable({\n loader: () => import('../routes/mp-success'),\n loading: () => ,\n});\n\nconst FailureComponent = Loadable({\n loader: () => import('../routes/mp-failure'),\n loading: () => ,\n});\n\n\nconst PendingsComponent = Loadable({\n loader: () => import('../routes/mp-pendings'),\n loading: () => ,\n});\n\n\n// product detail\nconst AsyncOrderStateComponent = Loadable({\n loader: () => import('../routes/order-state'),\n loading: () => ,\n});\n\n\n\nexport {\n\n\n AsyncHomePageTwoComponent,\n\n AsyncAccessoriesComponent,\n AsyncBrandsComponent,\n AsyncLaboratoriesComponent,\n AsyncOffersComponent,\n AsyncFlyerComponent,\n AsyncSearchProductsComponent,\n AsyncSubcategoriesComponent,\n\n\n\n\n AsyncCartComponent,\n AsyncCheckOutComponent,\n AsyncInvoiceComponent,\n\n AsyncReserveWithRecipeComponent,\n AsyncSanJoseSaludComponent,\n AsyncRrhhComponent,\n\n AsyncAboutUSComponent, \n AsyncFAQComponent,\n \n AsyncPaymentOptionsComponent,\n AsyncPrivacyPolicyComponent,\n AsyncTermAndConditionComponent,\n AsyncProductDetailComponent,\n AsyncProductDetail2Component,\n\n \n AsyncSignInPageComponent,\n AsyncSignUpComponent,\n AsyncForgetPasswordComponent,\n AsyncPasswordRecoveryComponent,\n\n AsyncPageNotFoundComponent,\n AsyncProfileComponent,\n SuccessComponent,\n FailureComponent,\n PendingsComponent,\n AsyncFolderDigitalComponent,\n\n\n AsyncPharmaciesComponent,\n AsyncOrderStateComponent\n}","const footerData = {\n about: [\n {\n \"path\": \"/sobre-nosotros\",\n \"menu_title\": \"Sobre nosotros\"\n },\n {\n \"path\": \"/terminos-y-condiciones\",\n \"menu_title\": \"Términos y condiciones\"\n },\n //{\n // \"path\": \"/terminos-y-condiciones\",\n // \"menu_title\": \"Política de privacidad\"\n //},\n {\n \"path\": \"/preguntas-frecuentes\",\n \"menu_title\": \"Preguntas frecuentes\"\n }, \n ],\n social: [\n {\n \"path\": \"https://www.facebook.com/farmanobelfarmacia\",\n \"menu_title\": \"Facebook\"\n },\n {\n \"path\": \"https://www.instagram.com/farmanobel/?igshid=q0otacvqh2k0\",\n \"menu_title\": \"Instagram\"\n },\n {\n \"path\": \"https://api.whatsapp.com/send?phone=5491144144111&text=Hola%2c%20me%20comunico%20desde%20www.farmanobel.com%20&source=&data=&app_absent=\",\n \"menu_title\": \"WhatsApp\"\r\n }\n ]\n}\nexport default footerData;\n","/**\n * Theme Options\n */\nimport React, { Component } from 'react';\nimport { connect } from 'react-redux';\nimport { Button,IconButton } from '@material-ui/core';\n// redux actions\nimport {\n\trtlLayoutAction,\n\tdarkModeAction\n} from '../../actions/action';\n\nclass ThemeOptions extends Component {\n\n\t/**\n\t * RTL Mode Event Hanlder\n\t*/\n rtlLayoutOption(value) {\n let body = document.body;\n if (value === true) {\n body.classList.add(\"rtl-layout\");\n }\n else {\n body.classList.remove(\"rtl-layout\");\n }\n this.props.rtlLayoutAction(value);\n\t}\n\t/**\n\t * Dark Mode Event Hanlder\n\t*/\n\tdarkModeHanlder(isTrue) {\n\t\tlet body = document.body;\n\t\tif (isTrue === true) {\n\t\t\tbody.classList.add(\"dark-mode\");\n\t\t}\n\t\telse {\n\t\t\tbody.classList.remove(\"dark-mode\");\n\t\t}\n\t\tthis.props.darkModeAction(isTrue);\n\t}\n\n render() {\n const { rtlLayout,darkMode } = this.props;\n return (\n
    \n\t\t\t
    \n\t\t\t\t {/*\n {rtlLayout === false ?\n \n :\n \n }*/}\n
    \n\t\t\t
    \n\t\t\t\t {/*\n\n {darkMode === false ?\n\t\t\t\t\t\t this.darkModeHanlder(true)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tbrightness_4\n\t\t\t\t\t\t\n :\n\t\t\t\t\t\t this.darkModeHanlder(false)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tbrightness_4\n\t\t\t\t\t\t\n\t\t\t\t }\n\t\t\t\t */}\n\n
    \n
    \n );\n }\n}\n\n// map state to props\nconst mapStateToProps = ({ appSettings }) => {\n const { rtlLayout,darkMode } = appSettings;\n return { rtlLayout,darkMode };\n};\n\nexport default connect(mapStateToProps, {\n\trtlLayoutAction,\n\tdarkModeAction\n})(ThemeOptions);\n","import React, { Fragment } from 'react';\nimport SweetAlert from 'react-bootstrap-sweetalert';\nimport { connect } from \"react-redux\";\nimport { MuiThemeProvider } from '@material-ui/core/styles';\nimport { IntlProvider } from 'react-intl';\n//import { Route, Switch, } from 'react-router-dom';\n//import { Router, withRouter } from 'react-router';\nimport { BrowserRouter as Router, Route, Switch, withRouter } from \"react-router-dom\";\nimport axios from 'axios';\n\n\n// css\nimport './lib/embryoCss.js';\n\nimport HeaderTwo from \"./components/layouts/headers/HeaderTwo\";\nimport FooterOne from \"./components/layouts/footers/FooterOne\";\n\n\nimport AuthorizeRoute from './components/api-authorization/AuthorizeRoute';\nimport ApiAuthorizationRoutes from './components/api-authorization/ApiAuthorizationRoutes';\nimport { ApplicationPaths } from './components/api-authorization/ApiAuthorizationConstants';\n\nimport { UserProvider } from './userContext';\n\nimport ReactGA from 'react-ga';\n\nimport {\n AsyncSanJoseSaludComponent,\n AsyncHomePageTwoComponent,\n AsyncAccessoriesComponent,\n AsyncBrandsComponent,\n AsyncOffersComponent,\n AsyncSubcategoriesComponent,\n AsyncAboutUSComponent,\n AsyncCartComponent,\n AsyncCheckOutComponent, \n AsyncFAQComponent,\n AsyncPaymentOptionsComponent,\n AsyncPrivacyPolicyComponent,\n AsyncTermAndConditionComponent,\n AsyncProductDetailComponent,\n AsyncProductDetail2Component,\n AsyncInvoiceComponent,\n AsyncShopComponent,\n AsyncSignInPageComponent,\n AsyncSignUpComponent,\n AsyncForgetPasswordComponent,\n AsyncUserAccountComponent,\n AsyncPageNotFoundComponent,\n AsyncRrhhComponent, \n AsyncProfileComponent,\n AsyncSearchProductsComponent,\n AsyncLaboratoriesComponent,\n AsyncPasswordRecoveryComponent,\n SuccessComponent,\n FailureComponent,\n PendingsComponent,\n AsyncFlyerComponent,\n AsyncFolderDigitalComponent,\n AsyncReserveWithRecipeComponent,\n AsyncPharmaciesComponent,\n AsyncOrderStateComponent\n} from './util/AsyncRoutes';\n\n\nimport { hideAlert } from \"./actions/action\";\n\n\nimport footerData from './assets/data/footerData';\nimport ThemeOptions from './components/ThemeOptions/ThemeOptions';\nimport { getToken } from './helpers/auth-helper';\n\nimport { createBrowserHistory } from \"history\";\n\nconst history = createBrowserHistory()\r\n\n\nhistory.listen((location, action) => {\r\n ReactGA.pageview(location.pathname + location.search);\r\n console.log(\"NAVEGA A : \" + location.pathname)\r\n});\n\n\n\n\nclass App extends React.Component {\n\n constructor(props) {\n super(props);\n this.state = {\n\n categories: [],\n user: '', \n };\n\n this.logout = this.logout.bind(this);\n this.login = this.login.bind(this);\n this.deleteCacheAndReloadPage = this.deleteCacheAndReloadPage.bind(this);\n }\n\n\n\n async componentDidMount() {\n\n ReactGA.initialize('UA-174987733-1');\r\n\n\n\n\n\n\r\n await axios.get('/api/auth/GetAppVersion')\r\n .then(response => {\r\n var serverVersion = response.data;\r\n\r\n var localVersion = localStorage.getItem('FarmanobelVersion');\r\n\r\n\r\n if (localVersion === null) {\r\n localStorage.setItem('FarmanobelVersion', serverVersion);\r\n console.log('empty cookie version');\r\n window.location.reload(true);\r\n }\r\n else {\r\n if (serverVersion > localVersion) {\r\n localStorage.setItem('FarmanobelVersion', serverVersion);\r\n this.deleteCacheAndReloadPage();\r\n }\r\n else {\r\n console.log('current version');\r\n }\r\n }\r\n\r\n\r\n\r\n })\r\n .catch(() => {\r\n console.log(\"Error getting version\");\r\n });\r\n\r\n\n\n\n\n\t\tconst { darkMode,rtlLayout } = this.props;\n\t\tthis.rtlLayoutOption(rtlLayout);\n this.darkModeHanlder(darkMode);\n\n this.getCategories();\n\n var token = await getToken();\n\n this.setState({\r\n user: {\r\n ...this.state.user,\r\n token: token,\r\n }\r\n });\n\n\n axios.get('/api/User/GetUserProfile', { headers: { \"Authorization\": `Bearer ${token}` } })\n .then(response => {\n\n console.log(\"app.js ON\");\n\n this.setState({\r\n user: {\r\n ...this.state.user,\r\n isAuth: true,\r\n }\r\n });\n })\n .catch(() => {\n\n console.log(\"app.js OFF\");\n\n this.setState({\r\n user: {\r\n ...this.state.user,\r\n isAuth: false,\r\n }\r\n });\n });\n\t}\n\n async deleteCacheAndReloadPage() {\n console.log('new version');\r\n\n if (caches) {\r\n\r\n const names = await caches.keys();\r\n console.log(names);\r\n\r\n await Promise.all(names.map(name => caches.delete(name)));\r\n }\r\n window.location.reload();\r\n\t}\n\n async getCategories() {\n\n await axios.get(`/api/Home/GetCategoriesForAppRoutes`)\r\n .then(response => {\r\n this.setState({ categories: response.data })\r\n }) \n }\n\n\trtlLayoutOption(rtlLayout) {\n if (rtlLayout === true) {\n document.body.classList.add(\"rtl-layout\");\n }\n else {\n document.body.classList.remove(\"rtl-layout\");\n }\n\t}\n\t\n\tdarkModeHanlder(darkMode) {\n\t\tif (darkMode === true) {\n\t\t\tdocument.body.classList.add(\"dark-mode\");\n\t\t}\n\t\telse {\n\t\t\tdocument.body.classList.remove(\"dark-mode\");\n\t\t}\n\t}\n \n componentDidUpdate(prevProps) {\n if (this.props.location !== prevProps.location) {\n window.scrollTo(0, 0);\n }\n }\n\n getUrl(pathname) {\n let pathArray = pathname.split('/');\n return `/${pathArray[1]}` === '/admin-panel' ? true : false;\n }\n\n\n logout() {\n \n this.props.history.push(\"/sign-in\");\r\n\n this.setState({\r\n user: {\r\n ...this.state.user,\r\n isAuth: false,\r\n token: '',\r\n }\r\n });\r\n }\n\n\n\n login(data) {\n\n this.setState({\r\n user: {\r\n ...this.state.user,\r\n isAuth: true,\r\n token: data.token,\r\n }\r\n });\r\n }\n\n\n\n render() {\n const { location } = this.props;\n const { selectedLocale, alertType,theme } = this.props;\n\n const userValue = {\r\n user: this.state.user,\r\n logoutUser: this.logout,\r\n loginUser: this.login,\r\n }\n \n\n return (\n \n \n \n \n
    \n \n \n \n\n \n {/*\n {\n this.state.categories.map((category, index) => {\n return ()\r\n })\r\n }\r\n {\r\n this.state.categories.map((category, index) => {\n return ()\r\n }) \r\n }\n */}\n\n \n \n\n {/* */}\n\n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {/**/}\n \n \n \n\n \r\n\n\n\n \n \n \n \n \n\n\n\n\n \n\n \n \n\n \n {this.props.alertMessage}\n \n\n
    \n \n \n
    \n
    \n
    \n )\n }\n}\n\n// map state to props\nconst mapStateToProps = ({ appSettings }) => {\n const { showAlert, alertMessage, selectedLocale, alertType,theme,darkMode,rtlLayout } = appSettings;\n return { showAlert, alertMessage, selectedLocale, alertType,theme,darkMode,rtlLayout };\n}\n\nexport default connect(mapStateToProps, {\n hideAlert\n})(App);","// In production, we register a service worker to serve assets from local cache.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on the \"N+1\" visit to a page, since previously\n// cached resources are updated in the background.\n\n// To learn more about the benefits of this model, read https://goo.gl/KwvDNy.\n// This link also includes instructions on opting out of this behavior.\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.1/8 is considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport default function register() {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebookincubator/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Lets check if a service worker still exists or not.\n checkValidServiceWorker(swUrl);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://goo.gl/SC7cgQ'\n );\n });\n } else {\n // Is not local host. Just register service worker\n registerValidSW(swUrl);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the old content will have been purged and\n // the fresh content will have been added to the cache.\n // It's the perfect time to display a \"New content is\n // available; please refresh.\" message in your web app.\n console.log('New content is available; please refresh.');\n\n\n window.location.reload();\n\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl)\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n if (\n response.status === 404 ||\n response.headers.get('content-type').indexOf('javascript') === -1\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister();\n });\n }\n}\n","\nimport {\n ADD_TO_CART,\n ADD_TO_CART_QUANTITY,\n ADD_TO_WISHLIST,\n REMOVE_FROM_CART,\n UPDATE_PRODUCT_QUANTITY,\n FINAL_PAYMENT,\n MOVE_WISHLISTITEM_TO_CART,\n REMOVE_FROM_WISHLIST,\n DELETE_USER,\n ADD_NEW_USER,\n INITIALIZE_CART,\n UPDATE_SHIPPING_COST,\n ORDER_CODE,\n CLEAR_CART,\n SET_RETIRE_POINT,\r\n\n} from '../actions/types';\n\nimport { getCart, saveCart } from '../helpers/localStorage'\r\n\n//initial data\r\nlet cartData = getCart();\n\nlet wishlistData = [\n {\n productID: 51,\n image: \"women/15-item-a.jpg\",\n name: 'long dress',\n price: 60,\n quantity: 1,\n totalPrice: 60\n }\n]\nlet collaborationData = [\n {\n id: 1,\n image: \"user-2.jpg\",\n name: \"Lissa Roy\",\n email: \"lissa@example.com\",\n access: \"Read\"\n },\n {\n id: 2,\n image: \"user-3.jpg\",\n name: \"Jaswinder Kaur\",\n email: \"jass@example.com\",\n access: \"Admin\"\n },\n {\n id: 3,\n image: \"user-2.jpg\",\n name: \"John Doe\",\n email: \"John@example.com\",\n access: \"Read\"\n },\n {\n id: 4,\n image: \"user-1.jpg\",\n name: \"Ritesh Bajaj\",\n email: \"ritesh@example.com\",\n access: \"Write\"\n },\n {\n id: 5,\n image: \"user-5.jpg\",\n name: \"Dimple Bhagtani\",\n email: \"dimple@example.com\",\n access: \"Admin\"\n },\n {\n id: 6,\n image: \"user-3.jpg\",\n name: \"Sam Akhtar\",\n email: \"akhtar@example.com\",\n access: \"Admin\"\n }\n]\nconst TAX = 0;\nconst SHIPPING = 0;\nconst ORDERCODE = 0;\n\nconst INITIAL_STATE = {\n cart: cartData,\n wishlist: wishlistData,\n tax: TAX,\n shipping: SHIPPING,\n orderCode: ORDERCODE,\n receiptProducts: null,\n collaborationData: collaborationData,\n retirePoint: null,\n}\n\nexport default (state = INITIAL_STATE, action) => {\n\n switch (action.type) {\n \n case ADD_TO_CART:\n \n let product = action.payload;\n\n let newProductData = {\n ID: product.id,\n productID: product.objectID,\n image: product.image,\n name: product.name,\n description: product.description,\n quantity: product.minimumAmount,\n price: product.price,\n totalPrice: product.totalPrice,\n discountLabelFirstText: product.discountLabelFirstText,\n discountLabelSecondText: product.discountLabelSecondText,\n haveDiscount: product.haveDiscount,\n minimumAmount: product.minimumAmount,\n priceWithDiscount: product.priceWithDiscount,\n }\n\n var returnState = {\n ...state,\n cart: [...state.cart, newProductData],\n totalPrice: state.totalPrice + newProductData.price\n }\n\n saveCart(returnState.cart);\r\n\r\n return returnState;\n\n\n case ADD_TO_CART_QUANTITY:\n\n let productQuantity = action.payload;\n\n console.log(\"ecommerceReducer.js ADD_TO_CART_QUANTITY: \", productQuantity);\n\n let newproductQuantityData = {\n ID: productQuantity.id,\n productQuantityID: productQuantity.objectID,\n image: productQuantity.image,\n name: productQuantity.name,\n description: productQuantity.description,\n quantity: productQuantity.quantity,\n price: productQuantity.price,\n totalPrice: productQuantity.totalPrice,\n discountLabelFirstText: productQuantity.discountLabelFirstText,\n discountLabelSecondText: productQuantity.discountLabelSecondText,\n haveDiscount: productQuantity.haveDiscount,\n minimumAmount: productQuantity.minimumAmount,\n priceWithDiscount: productQuantity.priceWithDiscount,\n }\n\n return {\n ...state,\n cart: [...state.cart, newproductQuantityData],\n totalPrice: state.totalPrice + newproductQuantityData.price\n }\n\n \n \n\n \n\n\n\n // add product to wishlist\n case ADD_TO_WISHLIST:\n let wishlistItem = action.payload;\n let newWishlistItem = {\n productID: wishlistItem.objectID,\n image: wishlistItem.image,\n name: wishlistItem.name,\n quantity: 1,\n price: wishlistItem.price,\n totalPrice: wishlistItem.price,\n }\n return {\n ...state,\n wishlist: [...state.wishlist, newWishlistItem],\n }\n\n\n // move wishlist product to cart\t\n case MOVE_WISHLISTITEM_TO_CART:\n let data = state.wishlist;\n for (const wishlistItem of data) {\n let newItem = {\n productID: wishlistItem.objectID,\n image: wishlistItem.image,\n name: wishlistItem.name,\n quantity: 1,\n price: wishlistItem.price,\n totalPrice: wishlistItem.totalPrice,\n }\n state.cart.push(newItem)\n }\n return {\n ...state,\n cart: [...state.cart],\n wishlist: []\n }\n\n\n\n // delete product from wishlist\n case REMOVE_FROM_WISHLIST:\n let deleteItem = action.payload;\n let wishlist = state.wishlist.filter((wishlistItem) => wishlistItem.productID !== deleteItem.productID)\n return {\n ...state,\n wishlist\n }\n\n\n\n\n // update product item quantity\n case UPDATE_PRODUCT_QUANTITY:\n\n let newData = action.payload.cartItem;\n\n let newCartData = [];\n for (const cartItem of state.cart) {\n if (cartItem.productID === newData.productID) {\n\n var totalPrice = 0;\n const newQuantity = action.payload.newQuantity;\n\n if (cartItem.haveDiscount) {\n\n if (cartItem.minimumAmount > 1) {\n\r\n\n const minimumAmount = cartItem.minimumAmount;\n\n const remainder = newQuantity % minimumAmount;\n const result = newQuantity / minimumAmount;\n\n console.log(\"newQuantity: \" + newQuantity + \" minimumAmount: \" + minimumAmount + \" remainder: \" + remainder\n + \" result: \" + result);\n\n totalPrice = cartItem.priceWithDiscount * (newQuantity-remainder);\n\n if (remainder > 0) {\n totalPrice += cartItem.price * remainder;\r\n }\r\n }\r\n else {\r\n //descuento normal\r\n console.log(\"newQuantity: \" + newQuantity + \" priceWithDiscount: \" + cartItem.priceWithDiscount );\r\n totalPrice = cartItem.priceWithDiscount * newQuantity;\r\n }\r\n \r\n }\n else {\n totalPrice = cartItem.priceWithDiscount * newQuantity;\r\n }\n\n \n\n cartItem.quantity = newQuantity;\n cartItem.totalPrice = totalPrice;\n }\n newCartData.push(cartItem)\n }\n\n\n var returnState = {\r\n ...state,\r\n cart: newCartData,\r\n totalPrice: state.totalPrice\r\n }\r\n\r\n saveCart(returnState.cart);\r\n\r\n\r\n return returnState;\n\n\n // remove product to cart\t\n case REMOVE_FROM_CART:\n let removeItem = action.payload;\n let cart = state.cart.filter((cartItem) => cartItem.productID !== removeItem.productID)\n\r\n var returnState = {\r\n\n ...state,\n cart,\n totalPrice: state.totalPrice - removeItem.price\n }\n\n\r\n saveCart(returnState.cart);\r\n\r\n\r\n return returnState;\n\n\n\n // final statement (invoice)\t\n case FINAL_PAYMENT:\n let checkOutProducts = state.cart;\n return {\n ...state,\n receiptProducts: checkOutProducts,\n cart: []\n }\n\n\n\n // delete user (admin-panel)\t\n case DELETE_USER:\n let removeUser = action.payload;\n let NewUserList = state.collaborationData.filter((listItem) => listItem.id !== removeUser.id)\n return {\n ...state,\n collaborationData: NewUserList\n }\n\n\n\n // add product to cart \n case ADD_NEW_USER:\n let newUser = action.payload;\n let newUserInfo = {\n name: newUser.name,\n email: newUser.email,\n access: newUser.access,\n image: \"user-edit.png\",\n }\n return {\n ...state,\n collaborationData: [...state.collaborationData, newUserInfo]\n }\n\n case INITIALIZE_CART:\n\n let cart2 = action.payload;\n\n return {\n ...state,\n cart: [...cart2], \n }\n\n case UPDATE_SHIPPING_COST:\n\n let shippingCost = action.payload;\n\n return {\n ...state,\n shipping: shippingCost,\n\n }\n\n case ORDER_CODE:\n\n let orderCode = action.payload;\n\n return {\n ...state,\n orderCode: orderCode,\n\n }\n\n\r\n case SET_RETIRE_POINT:\r\n let retirePoint = action.payload;\r\n return {\r\n ...state,\r\n retirePoint: retirePoint,\r\n };\n\n case CLEAR_CART:\n\n\n return {\n ...state,\n cart: [],\n }\n\n\n // default case\t\n default:\n return { ...state }\n }\n}","/**\n * currency data unicode\n */\nexport const currencies = [\n\t{\n\t\tname: 'INR',\n\t\ticon: require('../../assets/flag-icons/icons8-india.png'),\n\t\tunicode: 'INR'\n\t},\n\t{\n\t\tname: 'USD',\n\t\ticon: require('../../assets/flag-icons/icons8-usa.png'),\n\t\tunicode: 'USD'\n\t},\n\t{\n\t\tname: 'NZD',\n\t\ticon: require('../../assets/flag-icons/icons8-new_zealand.png'),\n\t\tunicode: 'NZD'\n\t},\n\t{\n\t\tname: 'GMD',\n\t\ticon: require('../../assets/flag-icons/icons8-germany.png'),\n\t\tunicode: 'GMD'\n\t},\n\t{\n\t\tname: 'ILR',\n\t\ticon: require('../../assets/flag-icons/icons8-israel.png'),\n\t\tunicode: 'ILR'\n\t},\n\t{\n\t\tname: 'EUR',\n\t\ticon: require('../../assets/flag-icons/icons8-france.png'),\n\t\tunicode: 'EUR'\n\t}\n]\n\nexport const currencyUnicode = {\n\t\"AED\": \"\\u062F\\u002E\\u0625\",\n\t\"AFN\": \"\\u060B\",\n\t\"ALL\": \"\\u004C\\u0065\\u006B\",\n\t\"AMD\": \"\\u058F\",\n\t\"AOA\": \"AOA\",\n\t\"ARS\": \"\\u0024\",\n\t\"AUD\": \"\\u0024\",\n\t\"AWG\": \"\\u0192\",\n\t\"AZN\": \"\\u20BC\",\n\t\"BAM\": \"\\u004B\\u004D\",\n\t\"BBD\": \"\\u0024\",\n\t\"BDT\": \"\\u09F3\",\n\t\"BGN\": \"\\u043B\\u0432\",\n\t\"BHD\": \"BHD\",\n\t\"BIF\": \"BIF\",\n\t\"BMD\": \"\\u0024\",\n\t\"BND\": \"\\u0024\",\n\t\"BOB\": \"\\u0024\\u0062\",\n\t\"BRL\": \"\\u0052\\u0024\",\n\t\"BSD\": \"\\u0024\",\n\t\"BTN\": \"BTN\",\n\t\"BWP\": \"\\u0050\",\n\t\"BYN\": \"\\u0042\\u0072\",\n\t\"BYR\": \"\\u0070\\u002E\",\n\t\"BZD\": \"\\u0024\",\n\t\"CAD\": \"\\u0024\",\n\t\"CDF\": \"CDF\",\n\t\"CHF\": \"\\u0043\\u0048\\u0046\",\n\t\"CLF\": \"CLF\",\n\t\"CLP\": \"\\u0024\",\n\t\"CNY\": \"\\u00A5\",\n\t\"COP\": \"\\u0024\",\n\t\"CRC\": \"\\u20A1\",\n\t\"CUC\": \"CUC\",\n\t\"CUP\": \"\\u20B1\",\n\t\"CVE\": \"CVE\",\n\t\"CZK\": \"\\u004b\\u010d\",\n\t\"DJF\": \"DJF\",\n\t\"DKK\": \"\\u006b\\u0072\",\n\t\"DOP\": \"\\u0052\\u0044\\u0024\",\n\t\"DZD\": \"DZD\",\n\t\"EGP\": \"\\u00A3\",\n\t\"ERN\": \"ERN\",\n\t\"ETB\": \"\\u0017\",\n\t\"EUR\": \"\\u20AC\",\n\t\"FJD\": \"\\u0024\",\n\t\"FKP\": \"\\u00A3\",\n\t\"GBP\": \"\\u00A3\",\n\t\"GEL\": \"\\u20BE\",\n\t\"GHS\": \"\\u00A2\",\n\t\"GIP\": \"\\u00A3\",\n\t\"GMD\": \"GMD\",\n\t\"GNF\": \"GNF\",\n\t\"GTQ\": \"\\u0051\",\n\t\"GYD\": \"\\u0024\",\n\t\"HKD\": \"\\u0024\",\n\t\"HNL\": \"\\u004C\",\n\t\"HRK\": \"\\u006B\\u006E\",\n\t\"HTG\": \"HTG\",\n\t\"HUF\": \"\\u0046\\u0074\",\n\t\"IDR\": \"\\u0052\\u0070\",\n\t\"ILR\": \"ILR\",\n\t\"ILS\": \"\\u20AA\",\n\t\"INR\": \"\\u20B9\",\n\t\"IQD\": \"IQD\",\n\t\"IRR\": \"\\uFDFC\",\n\t\"ISK\": \"\\u006B\\u0072\",\n\t\"JMD\": \"\\u004A\\u0024\",\n\t\"JOD\": \"JOD\",\n\t\"JPY\": \"\\u00A5\",\n\t\"KES\": \"KES\",\n\t\"KGS\": \"\\u0043B\\u00432\",\n\t\"KHR\": \"\\u17DB\",\n\t\"KMF\": \"KMF\",\n\t\"KPW\": \"\\u20A9\",\n\t\"KRW\": \"\\u20A9\",\n\t\"KWD\": \"KWD\",\n\t\"KYD\": \"\\u0024\",\n\t\"KZT\": \"\\u0043B\\u00432\",\n\t\"LAK\": \"\\u20AD\",\n\t\"LBP\": \"\\u00A3\",\n\t\"LKR\": \"\\u20A8\",\n\t\"LRD\": \"\\u0024\",\n\t\"LSL\": \"LSL\",\n\t\"LYD\": \"LYD\",\n\t\"MAD\": \"\\u002E\\u062F\\u002E\\u0645\",\n\t\"MDL\": \"MDL\",\n\t\"MGA\": \"MGA\",\n\t\"MKD\": \"\\u0434\\u0435\\u043D\",\n\t\"MMK\": \"\\u004B\",\n\t\"MNT\": \"\\u20AE\",\n\t\"MOP\": \"MOP\",\n\t\"MRO\": \"MRO\",\n\t\"MUR\": \"\\u20A8\",\n\t\"MVR\": \"MVR\",\n\t\"MWK\": \"MWK\",\n\t\"MXN\": \"\\u0024\",\n\t\"MXV\": \"MXV\",\n\t\"MYR\": \"\\u0052\\u004D\",\n\t\"MZN\": \"\\u004D\\u0054\",\n\t\"NAD\": \"\\u0024\",\n\t\"NGN\": \"\\u20A6\",\n\t\"NIO\": \"\\u0043\\u0024\",\n\t\"NOK\": \"\\u006b\\u0072\",\n\t\"NPR\": \"\\u20A8\",\n\t\"NZD\": \"\\u0024\",\n\t\"OMR\": \"\\uFDFC\",\n\t\"PAB\": \"\\u0042\\u002F\\u002E\",\n\t\"PEN\": \"\\u0053\\u002F\\u002E\",\n\t\"PGK\": \"PGK\",\n\t\"PHP\": \"\\u20B1\",\n\t\"PKR\": \"\\u20A8\",\n\t\"PLN\": \"\\u007A\\u0142\",\n\t\"PYG\": \"\\u0047\\u0073\",\n\t\"QAR\": \"\\uFDFC\",\n\t\"RON\": \"\\u006C\\u0065\\u0069\",\n\t\"RSD\": \"\\u0414\\u0438\\u043D\\u002E\",\n\t\"RUB\": \"\\u0440\\u0443\\u0431\",\n\t\"RWF\": \"RWF\",\n\t\"SAR\": \"\\uFDFC\",\n\t\"SBD\": \"\\u0024\",\n\t\"SCR\": \"\\u20A8\",\n\t\"SDG\": \"\\u00A3\",\n\t\"SEK\": \"\\u006B\\u0072\",\n\t\"SGD\": \"\\u0024\",\n\t\"SHP\": \"\\u00A3\",\n\t\"SLL\": \"SLL\",\n\t\"SOS\": \"\\u0053\",\n\t\"SRD\": \"\\u0024\",\n\t\"SSP\": \"\\u00A3\",\n\t\"STD\": \"STD\",\n\t\"SVC\": \"\\u0024\",\n\t\"SYP\": \"\\u00A3\",\n\t\"SZL\": \"SZL\",\n\t\"THB\": \"\\u0E3F\",\n\t\"TJS\": \"TJS\",\n\t\"TMT\": \"TMT\",\n\t\"TND\": \"\\u0044\\u0054\",\n\t\"TOP\": \"TOP\",\n\t\"TRY\": \"\\u0054\\u004C\",\n\t\"TTD\": \"\\u0024\",\n\t\"TWD\": \"\\u004E\\u0054\\u0024\",\n\t\"TZS\": \"TZS\",\n\t\"UAH\": \"\\u20B4\",\n\t\"UGX\": \"UGX\",\n\t\"USD\": '\\u0024',\n\t\"UYI\": \"UYI\",\n\t\"UYU\": \"\\u0024\\u0055\",\n\t\"UZS\": \"\\u0043B\\u00432\",\n\t\"VEF\": \"\\u0042\\u0073\",\n\t\"VND\": \"\\u20AB\",\n\t\"VUV\": \"VUV\",\n\t\"WST\": \"WST\",\n\t\"XAF\": \"\\u0046\\u0043\\u0046\\u0041\",\n\t\"XCD\": \"\\u0024\",\n\t\"XOF\": \"XOF\",\n\t\"XPF\": \"\\u0046\",\n\t\"XXX\": \"XXX\",\n\t\"YER\": \"\\uFDFC\",\n\t\"ZAR\": \"\\u0052\",\n\t\"ZMW\": \"ZMW\",\n\t\"ZWL\": \"\\u0024\"\n};","/**\n * App Light Theme\n */\nimport { createMuiTheme } from '@material-ui/core/styles';\n\nconst theme = createMuiTheme({\n palette: {\n\t\ttype: \"light\",\n primary: {\n main: '#0074bc'\n },\n secondary: {\n main: '#ff7f27'\n }\n\t}\n\t,overrides: {\n\t\tMuiTableRow:{\n\t\t\troot: {\n height: 48\n },\n MuiButton: {\n root: { \n textTransform: 'none'\n },\n },\n\t\t},\n\t},\n});\n\nexport default theme;","/**\n * App Dark Theme\n */\nimport { createMuiTheme } from '@material-ui/core/styles';\n\nconst theme = createMuiTheme({\n\tpalette: {\n\t\ttype: \"dark\",\n\t\tprimary: {\n\t\t\tmain: '#2a2a2c'\n\t\t},\n\t\tsecondary: {\n\t\t\tmain: '#FF5722'\n\t\t},\n\t\tbackground: {\n\t\t\tpaper: '#2a2a2c',\n\t\t}\n\t},\n\toverrides: {\n\t\tMuiFormControl: {\n\t\t\troot: {\n\t\t\t\t'& >div': {\n\t\t\t\t\t'&:hover': {\n\t\t\t\t\t\t'&:before': {\n\t\t\t\t\t\t\tborderColor: '#fff !important'\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t'&:before': {\n\t\t\t\t\t\tborderColor: '#fff'\n\t\t\t\t\t},\n\t\t\t\t\t'&:after': {\n\t\t\t\t\t\tborderColor: '#fff'\n\t\t\t\t\t},\n\t\t\t\t\t'& svg': {\n\t\t\t\t\t\tfill: '#fff'\n\t\t\t\t\t},\n\t\t\t\t\t'& >div': {\n\t\t\t\t\t\tcolor: '#fff'\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t'& label': {\n\t\t\t\t\tcolor: '#fff !important'\n\t\t\t\t},\n\t\t\t\t'& input': {\n\t\t\t\t\tcolor: '#fff',\n\t\t\t\t},\n\t\t\t\t'& textarea': {\n\t\t\t\t\tcolor: '#fff',\n\t\t\t\t},\n\t\t\t\t'& fieldset':{\n\t\t\t\t\tborderColor:'#fff !important'\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\t\n\t\tMuiCheckbox: {\n\t\t\troot: {\n\t\t\t\tcolor: '#fff !important'\n\t\t\t},\n\t\t\tcolorprimary: {\n\t\t\t\tcolor: '#fff'\n\t\t\t},\n\t\t\tcolorSecondary: {\n\t\t\t\tcolor: '#fff'\n\t\t\t}\n\t\t},\n\t\tMuiTableRow:{\n\t\t\troot: {\n\t\t\t\theight:48\n\t\t\t},\n\t\t},\n\t\tMuiTableCell:{\n\t\t\thead: {\n\t\t\t\tcolor:'#fff'\n\t\t\t},\n\t\t\tbody: {\n\t\t\t\tcolor:'#fff'\n\t\t\t},\n\t\t}\n\t},\n\ttypography: {\n\t\tbody1: {\n\t\t\tcolor: '#fff'\n\t\t}\n\t}\n\t// palette: {\n\t// type: 'dark',\n\t// types: {\n\t// dark: {\n\t// background: {\n\t// paper: darkBgColor,\n\t// default: darkBgColor,\n\t// appBar: darkBgColor,\n\t// contentFrame: darkBgColor,\n\t// chip: darkBgColor,\n\t// avatar: darkBgColor,\n\t// tabs: darkBgColor\n\t// }\n\t// }\n\t// },\n\t// primary: {\n\t// light: grey[400],\n\t// main: grey[700],\n\t// dark: grey[900],\n\t// contrastText: '#fff'\n\t// },\n\t// secondary: {\n\t// light: grey[700],\n\t// main: grey[700],\n\t// dark: grey[700],\n\t// contrastText: '#fff'\n\t// },\n\t// background: {\n\t// paper: darkBgColor,\n\t// default: darkBgColor,\n\t// appBar: darkBgColor,\n\t// contentFrame: darkBgColor,\n\t// chip: darkBgColor,\n\t// avatar: darkBgColor,\n\t// tabs: darkBgColor\n\t// }\n\t// },\n\t// status: {\n\t// danger: 'orange',\n\t// },\n\t// typography: {\n\t// button: {\n\t// fontWeight: 400,\n\t// textAlign: 'capitalize'\n\t// }\n\t// }\n});\n\nexport default theme;","/**\n * App Settings\n */\nimport { currencies, currencyUnicode } from \"../assets/data/currencydata\";\n\n//data\nimport { languages } from \"../assets/data/localeData\";\n\n// themes\nimport primaryTheme from '../themes/primaryTheme';\nimport darkTheme from '../themes/darkTheme';\n\n//action types\nimport {\n RTL_LAYOUT,\n CHANGE_CURRENCY,\n HIDE_ALERT,\n SET_LANGUAGE,\n SHOW_ALERT,\n\tCOLLAPSED_SIDEBAR,\n\tDARK_MODE\n} from \"../actions/types\";\n\n//app config\nimport AppConfig from \"../constants/AppConfig\";\n\nconst INITIAL_STATE = {\n currencies,\n selectedCurrency: currencies[1],\n currencyUnicode,\n languages,\n selectedLocale: AppConfig.locale,\n showAlert: false,\n alertType: 'success',\n alertMessage: 'Initial Message',\n rtlLayout: AppConfig.rtlLayout,\n\tnavCollapsed: AppConfig.navCollapsed,\n\tdarkMode: false,\n\ttheme:primaryTheme,\n}\n\nexport default (state = INITIAL_STATE, action) => {\n switch (action.type) {\n // collapse sidebar\n case COLLAPSED_SIDEBAR:\n return { ...state, navCollapsed: action.isCollapsed };\n\n case CHANGE_CURRENCY:\n return {\n ...state,\n selectedCurrency: action.payload\n }\n case SET_LANGUAGE: {\n return {\n ...state,\n selectedLocale: action.payload\n }\n }\n case SHOW_ALERT:\n return {\n ...state,\n showAlert: true,\n alertMessage: action.payload.message,\n alertType: action.payload.type\n }\n case HIDE_ALERT:\n return {\n ...state,\n showAlert: false\n }\n // Rtl layout\n case RTL_LAYOUT:\n\t\t\treturn { ...state, rtlLayout: action.payload };\n\n\t\t// Dark mode\n\t\tcase DARK_MODE:\n\t\t\tlet isTrue = action.payload;\n\t\t\tlet activeTheme = '';\n\t\t\tif (isTrue === true) {\n\t\t\t\tactiveTheme = darkTheme;\n\t\t\t}else{\n\t\t\t\tactiveTheme = primaryTheme;\n\t\t\t}\n\t\t\treturn { ...state, darkMode: action.payload,theme:activeTheme };\n\n\t\tdefault:\n\t\t\treturn { ...state };\n\t\t\t\n }\n}","/**\n * locales data\n */\nexport const languages = [\n {\n locale: 'en',\n name: 'English',\n icon: 'en',\n },\n {\n locale: 'fr',\n name: 'French',\n icon: 'fr',\n }\n ,\n {\n locale: 'es',\n name: 'Espa�ol',\n icon: 'es',\n }\n]","/**\n * reducer \n */\nimport { combineReducers } from \"redux\";\nimport ecommerceReducer from \"./ecommerceReducer\";\nimport appSettings from \"./appSettings\";\n\nconst reducers = combineReducers({\n ecommerce: ecommerceReducer,\n appSettings\n})\n\nexport default reducers;","/**\n * store\n */\nimport { createStore, compose, applyMiddleware } from 'redux';\nimport thunk from 'redux-thunk';\nimport reducers from '../reducers';\n\nconst composeEnhancer = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;\n\nexport function configureStore() {\n\tconst store = createStore(\n\t\treducers,\n\t\tcomposeEnhancer(applyMiddleware(thunk))\n\t)\n\treturn store;\n}\n\n","// import \"babel-polyfill\";\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport { Provider } from 'react-redux';\nimport App from './App';\nimport registerServiceWorker from './registerServiceWorker';\nimport { BrowserRouter, Switch, Route } from 'react-router-dom';\n\n// configureStore \nimport { configureStore } from './store/index';\n\nimport { ClearCacheProvider, useClearCacheCtx } from 'react-clear-cache';\n\n\n// store\nexport const store = configureStore();\n\n\nReactDOM.render(\n \n \n \n \n \n \n \n \n \n , document.getElementById('root'));\n\nregisterServiceWorker();\n","/**\n * Helpers Method\n */\nimport { store } from \"../index\";\n\n/**\n * function to check product is exits in cart or not\n */\nexport function isProductExist(ID) {\n\n let exists = false\n let cart = store.getState().ecommerce.cart; \n if (cart && cart.length > 0) {\n for (const cartItem of cart) { \n\n if (cartItem.productID === ID) {\n exists = true\n }\n }\n }\n return exists;\n}\n\nexport function getCartItem(ID) {\n\n let cartItemReturn = null;\n let cart = store.getState().ecommerce.cart;\n if (cart && cart.length > 0) {\n for (const cartItem of cart) {\n\n if (cartItem.productID === ID) {\n cartItemReturn = cartItem\n }\n }\n }\n return cartItemReturn;\n}\n\n/**\n * function to check product is exits in wishlist or not\n */\nexport function productExitsInWishlist(ID) {\n let exist = false\n let wishlist = store.getState().ecommerce.wishlist;\n if (wishlist && wishlist.length > 0) {\n for (const item of wishlist) {\n if (item.productID === ID) {\n exist = true\n }\n }\n }\n return exist;\n}\n\n/**\n * Get subTotal Price\n */\nexport function getSubTotalPrice() {\n let subTotalPrice = 0;\n let cart = store.getState().ecommerce.cart;\n if (cart && cart.length > 0) {\n for (const cartItem of cart) {\n subTotalPrice += cartItem.totalPrice;\n }\n return subTotalPrice;\n }\n}\n\n/**\n * get Total Price\n */\nexport function getTotalPrice() {\n const { tax, shipping } = store.getState().ecommerce;\n const totalPrice = getSubTotalPrice() + shipping + tax;\n return totalPrice.toFixed(2);\n}\n","\r\nconst localStorageCartKey = 'farmanobelCart';\r\n\r\nexport const getCart = () =>{\r\n try{\r\n \r\n return localStorage.getItem(localStorageCartKey) === null ? [] : JSON.parse(localStorage.getItem(localStorageCartKey))\r\n \r\n }catch(error){\r\n return [];\r\n }\r\n\r\n\r\n};\r\n\r\nexport const saveCart = (state) => {\r\n try { \r\n const serializedState = JSON.stringify(state);\r\n localStorage.setItem(localStorageCartKey, serializedState); \r\n } catch \r\n { \r\n // ignore write errors\r\n }\r\n}\r\n\r\nexport const removeCart = () => {\r\n try { \r\n localStorage.removeItem(localStorageCartKey); \r\n } catch \r\n { \r\n // ignore write errors\r\n }\r\n}"],"sourceRoot":""}