{"version":3,"sources":["components/grid/GridItem.js","components/grid/GridContainer.js","_actions/adminActions.js","components/common/loading.js","assets/jss/material-kit-react/components/paginationStyle.js","components/pagination/Pagination.js","img/sliderimages/slider4.jpg","img/logo.png","views/login.module.css","assets/img/faces/card-profile1-square.jpg","assets/jss/material-kit-react.js","assets/jss/material-kit-react/imagesStyles.js","assets/jss/material-kit-react/views/componentsSections/typographyStyle.js","assets/jss/material-kit-react/components/customInputStyle.js","components/CustomInput/CustomInput.js","assets/jss/material-kit-react/components/parallaxStyle.js","components/Parallax/Parallax.js","assets/jss/material-kit-react/components/buttonStyle.js","components/CustomButtons/Button.js","_services/contact.services.js","assets/jss/material-kit-react/views/landingPageSections/workStyle.js","views/home/sections/ContactUsSection.js","assets/jss/material-kit-react/components/infoStyle.js","components/InfoArea/InfoArea.js","assets/jss/material-kit-react/views/landingPageSections/productStyle.js","views/home/sections/ProductSection.js","assets/jss/material-kit-react/components/cardStyle.js","components/card/Card.js","assets/jss/material-kit-react/components/cardBodyStyle.js","components/card/CardBody.js","assets/jss/material-kit-react/components/cardFooterStyle.js","components/card/CardFooter.js","assets/jss/material-kit-react/views/components.js","views/home/home.js","assets/jss/material-kit-react/components/headerStyle.js","components/Header/Header.js","assets/jss/material-kit-react/tooltipsStyle.js","assets/jss/material-kit-react/components/headerLinksStyle.js","assets/jss/material-kit-react/views/componentsSections/navbarsStyle.js","components/common/headerLogo.js","_helpers/user.js","components/common/topBanner.js","components/products/productListItem.js","_actions/actions.js","assets/jss/material-kit-react/components/customDropdownStyle.js","components/CustomDropdown/CustomDropdown.js","components/products/productsListing.js","components/popups/infoCard.js","components/products/productsFilter.js","assets/jss/material-kit-react/customCheckboxRadioSwitch.js","assets/jss/material-kit-react/views/componentsSections/basicsStyle.js","components/products/productCategories.js","views/products/listing.js","assets/jss/material-kit-react/views/componentsSections/carouselStyle.js","components/sectionCarousel/sectionCarousel.js","assets/jss/material-kit-react/components/cardHeaderStyle.js","components/card/CardHeader.js","assets/jss/material-kit-react/components/customTabsStyle.js","components/CustomTabs/CustomTabs.js","_actions/purchaseActions.js","components/products/productPurchase.js","_actions/customizeActions.js","components/products/productCustomize.js","components/products/productOverview.js","components/products/productDetails.js","views/products/details.js","components/PrivateRoute.js","components/AdminRoute.js","_services/user.services.js","assets/jss/material-kit-react/views/loginPage.js","views/login.js","views/logout.js","views/register.js","assets/jss/material-kit-react/components/footerStyle.js","components/Footer/Footer.js","components/error/ErrorBoundary.js","views/pages/howItWorks.js","views/pages/terms-and-conditions.js","views/pages/privacy.js","views/pages/about.js","views/pages/shipping.js","views/pages/contact.js","App.js","serviceWorker.js","_reducers/productsReducer.js","_reducers/customizeReducer.js","_reducers/purchaseReducer.js","_reducers/adminReducer.js","_reducers/rootReducer.js","_stores/configureStore.js","index.js"],"names":["useStyles","makeStyles","grid","position","width","minHeight","paddingRight","paddingLeft","flexBasis","GridItem","props","classes","children","className","rest","item","defaultProps","marginRight","marginLeft","GridContainer","container","REQUEST_UPDATE_PRODUCT","RECEIVE_UPDATE_PRODUCT","REQUEST_PRODUCTS","RECEIVE_ALL_PRODUCTS","actionCreators","updateProduct","product","dispatch","getState","a","type","success","process","Swagger","url","BASEURL","requestInterceptor","req","localStorage","getItem","headers","JSON","parse","token","then","client","apis","Products","put_products__id_","id","Id","requestBody","ex","console","log","response","status","requestAllProducts","get_products_all_no_cache","text","products","product_count","length","Loading","loading","color","paginationStyle","pagination","display","margin","borderRadius","paginationItem","paginationLink","marginleft","letterSpacing","border","transition","padding","minWidth","height","lineHeight","fontWeight","fontSize","textTransform","background","float","textDecoration","boxSizing","grayColor","zIndex","backgroundColor","borderColor","cursor","primary","primaryColor","boxShadow","info","infoColor","successColor","warning","warningColor","danger","dangerColor","disabled","styles","Pagination","pages","map","prop","key","cx","active","undefined","onClick","Button","alert","module","exports","drawerWidth","maxWidth","defaultFont","fontFamily","roseColor","primaryBoxShadow","infoBoxShadow","successBoxShadow","warningBoxShadow","dangerBoxShadow","roseBoxShadow","warningCardHeader","successCardHeader","dangerCardHeader","infoCardHeader","primaryCardHeader","grayCardHeader","title","paddingTop","borderTop","marginTop","imagesStyles","imgFluid","imgRounded","imgRoundedCircle","imgRaised","imgGallery","marginBottom","imgCardTop","borderTopLeftRadius","borderTopRightRadius","imgCardBottom","borderBottomLeftRadius","borderBottomRightRadius","imgCard","imgCardOverlay","top","right","bottom","left","typographyStyle","section","space50","typo","note","customInputStyle","underline","borderWidth","underlineError","underlineSuccess","whiteUnderline","labelRoot","labelRootError","labelRootSuccess","formControl","input","opacity","whiteInput","CustomInput","formControlClasses","formControlProps","labelText","labelProps","inputProps","error","white","inputRootCustomClasses","labelClasses","classNames","underlineClasses","inputClasses","FormControl","InputLabel","htmlFor","Input","root","parallaxStyle","parallax","maxHeight","overflow","backgroundPosition","backgroundSize","alignItems","filter","content","small","Parallax","windowScrollTop","window","innerWidth","pageYOffset","React","useState","transform","setTransform","useEffect","addEventListener","resetTransform","removeEventListener","style","image","parallaxClasses","backgroundImage","buttonStyle","button","willChange","textAlign","whiteSpace","verticalAlign","touchAction","fullWidth","rose","twitter","facebook","google","github","simple","transparent","pointerEvents","lg","sm","round","block","link","justIcon","makeComponentStyles","RegularButton","forwardRef","ref","size","btnClasses","contact","name","email","message","requestOptions","method","body","stringify","fetch","handleResponse","data","ok","statusText","Promise","reject","workStyle","description","textCenter","textArea","WorkSection","setName","setEmail","setMessage","contactError","setContactError","contactMessage","setContactMessage","contactSuccess","setContactSuccess","justify","cs","md","xs","onChange","e","target","value","multiline","rows","match","infoStyle","infoArea","iconWrapper","gray","icon","descriptionWrapper","iconWrapperVertical","iconVertical","InfoArea","iconColor","vertical","iconClasses","productStyle","ProductSection","Chat","VerifiedUser","Image","cardStyle","card","flexDirection","wordWrap","cardPlain","cardCarousel","Card","plain","carousel","cardClasses","cardBodyStyle","cardBody","flex","CardBody","cardBodyClasses","cardFooterStyle","cardFooter","CardFooter","cardFooterClasses","componentsStyle","brand","textShadow","subtitle","main","mainRaised","Home","Image1","href","headerStyle","appBar","flexFlow","justifyContent","absolute","fixed","flexWrap","appResponsive","dark","drawerPaper","transitionProperty","transitionDuration","transitionTimingFunction","visibility","overflowY","Header","mobileOpen","setMobileOpen","changeColorOnScroll","headerColorChange","handleDrawerToggle","document","getElementsByTagName","classList","remove","add","rightLinks","leftLinks","appBarClasses","brandComponent","AppBar","Toolbar","Hidden","smDown","implementation","mdUp","IconButton","aria-label","Drawer","variant","anchor","open","paper","onClose","defaultProp","tooltipsStyle","tooltip","fontStyle","wordBreak","wordSpacing","lineBreak","headerLinksStyle","theme","list","listStyle","paddingBottom","listItem","breakpoints","down","listItemText","navLink","notificationNavLink","registerNavLink","navLinkActive","icons","socialIcons","dropdownLink","marginRight5","navbarsStyle","navbar","navigation","searchIcon","img","imageDropdownButton","HeaderLogo","to","src","logo","alt","user","TopBanner","List","ListItem","listsItem","isAdmin","loginLink","media","textOverflow","price","links","cardActions","ProductListItem","images","imageUrl","selectedImage","CardActionArea","CardMedia","CardContent","requestProducts","offset","page","sort","dir","get_products","sortby","categoryids","productsReducer","current_offset","current_pagesize","current_page","current_sort","current_sort_dir","productCount","updateProducts","categories","toString","current_size","current_sort_direction","join","get_products_all","requestProduct","x","get_products__url_","requestSearchResults","searchTerm","Search","get_search","searchResults","searchResultCount","oDataCount","requestCategories","get_products_categories","customDropdownStyle","popperClose","dropdown","backgroundClip","menuList","popperResponsive","dropdownItem","clear","blackHover","primaryHover","infoHover","successHover","warningHover","dangerHover","roseHover","dropdownItemRTL","dropdownDividerItem","buttonIcon","caret","borderRight","borderLeft","caretActive","caretRTL","dropdownHeader","noLiPadding","CustomDropdown","anchorEl","setAnchorEl","handleClose","param","handleCloseAway","event","contains","buttonText","dropdownList","buttonProps","dropup","hoverColor","rtlActive","caretClasses","Boolean","Icon","aria-owns","aria-haspopup","currentTarget","Popper","disablePortal","placement","Grow","in","transformOrigin","Paper","ClickAwayListener","onClickAway","MenuList","role","MenuItem","divider","Divider","selected","myStyles","header","connect","state","isProductsLoading","bindActionCreators","myClasses","setPages","count","_pages","push","changePage","totalPages","Math","ceil","pageRangeAdded","i","pagesize","searchResult","search","resultsText","InfoCard","expanded","setExpanded","closed","setClosed","closeCard","setItem","CardActions","setSearchTerm","TextField","label","onKeyDown","keyCode","InputProps","endAdornment","customCheckboxRadioSwitch","checkRoot","radioRoot","checkboxAndRadio","checkboxAndRadioHorizontal","checked","checkedIcon","uncheckedIcon","disabledCheckboxAndRadio","labelHorizontal","labelHorizontalRadioCheckbox","labelLeftHorizontal","labelError","radio","radioChecked","radioUnchecked","inlineChecks","iconCheckbox","borderStyle","iconCheckboxChecked","iconCheckboxIcon","switchBase","switchIcon","switchBar","switchChecked","switchRoot","basicsStyle","sections","space70","selectedCategories","setSelectedCategories","start","setStart","category","FormControlLabel","control","Checkbox","tabIndex","currentIndex","indexOf","newChecked","splice","handleToggle","categoryName","Listing","carouselStyle","marginAuto","SectionCarousel","settings","dots","infinite","speed","slidesToShow","slidesToScroll","autoplay","cardHeaderStyle","cardHeader","cardHeaderPlain","CardHeader","cardHeaderClasses","customTabsStyle","cardTitle","cardTitleRTL","displayNone","tabsRoot","tabRootButton","tabSelected","tabWrapper","CustomTabs","setValue","headerColor","plainTabs","tabs","Tabs","tabChanged","indicator","tabIcon","Tab","tabLabel","wrapper","tabName","tabContent","requestSession","productid","sessionid","get_generatesession","sessionID","stripePromise","loadStripe","purchaseReducer","selections","customizeReducer","redirectToStripe","stripe","redirectToCheckout","sessionId","eyeColor","hairColor","skinColor","eyeType","storeSelections","getSelections","popup","buttonPicker","additionalDetails","setEyeColor","setHairColor","setSkinColor","setEyeType","eyeTypeSelection","setEyeTypeSelection","eyeTypeColor","setEyeTypeColor","details","setAdditionalDetails","showEyeColors","setShowEyeColors","showHairColors","setShowHairColors","showSkinColors","setShowSkinColors","toggleEyeColors","toggleHairColors","toggleSkinColors","colors","triangle","onChangeComplete","hex","ProductOverview","dangerouslySetInnerHTML","__html","shortDescription","productName","location","pathname","split","setImages","currentTab","setCurrentTab","xl","openCustomize","openPurchase","formattedDescription","Details","PrivateRoute","Component","component","render","from","AdminRoute","login","password","loginFacebook","facebookName","facebookUserId","register","firstname","lastname","logout","removeItem","reload","signupPageStyle","cardHidden","pageHeader","form","socialLine","inputIconsColor","Login","cardAnimaton","setCardAnimation","setTimeout","setPassword","loginError","setLoginError","responseFacebook","replace","Container","appId","autoLoad","fields","cssClass","loginStyles","btnFacebook","callback","InputAdornment","autoComplete","Logout","Register","firstName","setFirstName","lastName","setLastName","emailError","setEmailError","firstNameError","setFirstNameError","lastNameError","setLastNameError","passwordError","setPasswordError","footerStyle","footer","footerWhiteFont","inlineBlock","Footer","whiteFont","footerClasses","Date","getYear","ErrorBoundary","hasError","errorInfo","this","HowItWorks","TermsConditions","Privacy","About","Shipping","Contact","Admin","lazy","ReactGA","initialize","path","exact","fallback","isLocalhost","hostname","registerValidSW","swUrl","config","navigator","serviceWorker","registration","onupdatefound","installingWorker","installing","onstatechange","controller","onUpdate","onSuccess","catch","initialState","isLoading","isError","action","adminReducer","createRootReducer","history","combineReducers","router","connectRouter","createBrowserHistory","persistConfig","storage","store","enhancers","persistedReducer","persistReducer","createStore","compose","applyMiddleware","routerMiddleware","thunk","configureStore","ReactDOM","getElementById","URL","origin","contentType","get","ready","unregister","checkValidServiceWorker"],"mappings":"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","file":"static/js/main.135e17b6.chunk.js","sourcesContent":["import React from \"react\";\n// nodejs library to set properties for components\nimport PropTypes from \"prop-types\";\n// @material-ui/core components\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport Grid from \"@material-ui/core/Grid\";\n\nconst styles = {\n grid: {\n position: \"relative\",\n width: \"100%\",\n minHeight: \"1px\",\n paddingRight: \"15px\",\n paddingLeft: \"15px\",\n flexBasis: \"auto\"\n }\n};\n\nconst useStyles = makeStyles(styles);\n\nexport default function GridItem(props) {\n const classes = useStyles();\n const { children, className, ...rest } = props;\n return (\n \n {children}\n \n );\n}\n\nGridItem.defaultProps = {\n className: \"\"\n};\n\nGridItem.propTypes = {\n children: PropTypes.node,\n className: PropTypes.string\n};\n","import React from \"react\";\n// nodejs library to set properties for components\nimport PropTypes from \"prop-types\";\n\n// @material-ui/core components\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport Grid from \"@material-ui/core/Grid\";\n\nconst styles = {\n grid: {\n marginRight: \"-15px\",\n marginLeft: \"-15px\",\n width: \"auto\"\n }\n};\n\nconst useStyles = makeStyles(styles);\n\nexport default function GridContainer(props) {\n const classes = useStyles();\n const { children, className, ...rest } = props;\n return (\n \n {children}\n \n );\n}\n\nGridContainer.defaultProps = {\n className: \"\"\n};\n\nGridContainer.propTypes = {\n children: PropTypes.node,\n className: PropTypes.string\n};\n","import Swagger from 'swagger-client';\n\nexport const REQUEST_UPDATE_PRODUCT = 'REQUEST_UPDATE_PRODUCT';\nexport const RECEIVE_UPDATE_PRODUCT = 'RECEIVE_UPDATE_PRODUCT';\nexport const REQUEST_PRODUCTS = 'REQUEST_PRODUCTS';\nexport const RECEIVE_ALL_PRODUCTS = 'RECEIVE_ALL_PRODUCTS';\n\nexport const actionCreators = {\n updateProduct: (product) => async (dispatch, getState) => {\n dispatch({type: REQUEST_UPDATE_PRODUCT, product: product, success: null });\n const BASEURL = process.env.REACT_APP_API_URL;\n Swagger({\n url: BASEURL + '/swagger/v1/swagger.json',\n requestInterceptor: (req) => {\n if (localStorage.getItem('user') != null)\n {\n req.headers[\"Authorization\"] = 'Bearer ' + JSON.parse(localStorage.getItem('user')).token;\n }\n return req;\n }\n })\n .then(client => {\n try{\n return client.apis.Products.put_products__id_({id: product.Id}, {requestBody: product});\n }catch(ex){\n console.log(ex);\n }\n })\n .then(response => {\n if (response.status === 200)\n {\n dispatch({type: RECEIVE_UPDATE_PRODUCT, success: response.success });\n }\n })\n },\n requestAllProducts: () => async (dispatch, getState) => {\n dispatch({ type: REQUEST_PRODUCTS });\n\n const BASEURL = process.env.REACT_APP_API_URL;\n\n Swagger(BASEURL + '/swagger/v1/swagger.json')\n .then(client => {\n return client.apis.Products.get_products_all_no_cache();\n })\n .then(response => {\n return JSON.parse(response.text);\n })\n .then(response => {\n dispatch({type: RECEIVE_ALL_PRODUCTS, products: response, product_count: response.length });\n });\n },\n\n}\n\n","import React from 'react';\nimport RingLoader from \"react-spinners/RingLoader\";\n\nexport default function Loading(props)\n{\n return (\n <>\n \n \n )\n}","import {\n grayColor,\n primaryColor,\n infoColor,\n successColor,\n warningColor,\n dangerColor\n} from \"assets/jss/material-kit-react.js\";\n\nconst paginationStyle = {\n pagination: {\n display: \"inline-block\",\n paddingLeft: \"0\",\n margin: \"0 0 20px 0\",\n borderRadius: \"4px\"\n },\n paginationItem: {\n display: \"inline\"\n },\n paginationLink: {\n \":first-of-type\": {\n marginleft: \"0\"\n },\n letterSpacing: \"unset\",\n border: \"0\",\n borderRadius: \"30px !important\",\n transition: \"all .3s\",\n padding: \"0px 11px\",\n margin: \"0 3px\",\n minWidth: \"30px\",\n height: \"30px\",\n minHeight: \"auto\",\n lineHeight: \"30px\",\n fontWeight: \"400\",\n fontSize: \"12px\",\n textTransform: \"uppercase\",\n background: \"transparent\",\n position: \"relative\",\n float: \"left\",\n textDecoration: \"none\",\n boxSizing: \"border-box\",\n \"&,&:hover,&:focus\": {\n color: grayColor\n },\n \"&:hover,&:focus\": {\n zIndex: \"3\",\n backgroundColor: \"#eee\",\n borderColor: \"#ddd\"\n },\n \"&:hover\": {\n cursor: \"pointer\"\n }\n },\n primary: {\n \"&,&:hover,&:focus\": {\n backgroundColor: primaryColor,\n borderColor: primaryColor,\n color: \"#FFFFFF\",\n boxShadow:\n \"0 4px 5px 0 rgba(156, 39, 176, 0.14), 0 1px 10px 0 rgba(156, 39, 176, 0.12), 0 2px 4px -1px rgba(156, 39, 176, 0.2)\"\n },\n \"&:hover,&:focus\": {\n zIndex: \"2\",\n cursor: \"default\"\n }\n },\n info: {\n \"&,&:hover,&:focus\": {\n backgroundColor: infoColor,\n borderColor: infoColor,\n color: \"#FFFFFF\",\n boxShadow:\n \"0 4px 5px 0 rgba(0, 188, 212, 0.14), 0 1px 10px 0 rgba(0, 188, 212, 0.12), 0 2px 4px -1px rgba(0, 188, 212, 0.2)\"\n },\n \"&:hover,&:focus\": {\n zIndex: \"2\",\n cursor: \"default\"\n }\n },\n success: {\n \"&,&:hover,&:focus\": {\n backgroundColor: successColor,\n borderColor: successColor,\n color: \"#FFFFFF\",\n boxShadow:\n \"0 4px 5px 0 rgba(76, 175, 80, 0.14), 0 1px 10px 0 rgba(76, 175, 80, 0.12), 0 2px 4px -1px rgba(76, 175, 80, 0.2)\"\n },\n \"&:hover,&:focus\": {\n zIndex: \"2\",\n cursor: \"default\"\n }\n },\n warning: {\n \"&,&:hover,&:focus\": {\n backgroundColor: warningColor,\n borderColor: warningColor,\n color: \"#FFFFFF\",\n boxShadow:\n \"0 4px 5px 0 rgba(255, 152, 0, 0.14), 0 1px 10px 0 rgba(255, 152, 0, 0.12), 0 2px 4px -1px rgba(255, 152, 0, 0.2)\"\n },\n \"&:hover,&:focus\": {\n zIndex: \"2\",\n cursor: \"default\"\n }\n },\n danger: {\n \"&,&:hover,&:focus\": {\n backgroundColor: dangerColor,\n borderColor: dangerColor,\n color: \"#FFFFFF\",\n boxShadow:\n \"0 4px 5px 0 rgba(244, 67, 54, 0.14), 0 1px 10px 0 rgba(244, 67, 54, 0.12), 0 2px 4px -1px rgba(244, 67, 54, 0.2)\"\n },\n \"&:hover,&:focus\": {\n zIndex: \"2\",\n cursor: \"default\"\n }\n },\n disabled: {\n \"&,&:hover,&:focus\": {\n color: \"#777\",\n cursor: \"not-allowed\",\n backgroundColor: \"#fff\",\n borderColor: \"#ddd\"\n }\n }\n};\n\nexport default paginationStyle;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport cx from \"classnames\";\n\n// @material-ui/core components\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport Button from \"@material-ui/core/Button\";\n\nimport styles from \"assets/jss/material-kit-react/components/paginationStyle.js\";\n\nconst useStyles = makeStyles(styles);\n\nexport default function Pagination(props) {\n const classes = useStyles();\n const { pages, color } = props;\n return (\n \n );\n}\n\nPagination.defaultProps = {\n color: \"primary\",\n pages: [\n {text: 'PREV'},\n {text: '1'},\n {text: '2'},\n {text: '3'},\n {text: '4'},\n {text: '5'},\n {text: 'NEXT'}\n ]\n};\n\nPagination.propTypes = {\n pages: PropTypes.arrayOf(\n PropTypes.shape({\n active: PropTypes.bool,\n disabled: PropTypes.bool,\n text: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.oneOf([\"PREV\", \"NEXT\", \"...\"])\n ]).isRequired,\n onClick: PropTypes.func\n })\n ).isRequired,\n color: PropTypes.oneOf([\"primary\", \"info\", \"success\", \"warning\", \"danger\"])\n};\n","module.exports = __webpack_public_path__ + \"static/media/slider4.4345cf26.jpg\";","module.exports = \"data:image/png;base64,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\"","// extracted by mini-css-extract-plugin\nmodule.exports = {\"btnFacebook\":\"login_btnFacebook__ADdNL\"};","module.exports = __webpack_public_path__ + \"static/media/card-profile1-square.3122abf4.jpg\";","/*!\n\n =========================================================\n * Material Kit React - v1.8.0 based on Material Kit - v2.0.2\n =========================================================\n\n * Product Page: https://www.creative-tim.com/product/material-kit-react\n * Copyright 2019 Creative Tim (https://www.creative-tim.com)\n * Licensed under MIT (https://github.com/creativetimofficial/material-kit-react/blob/master/LICENSE.md)\n\n =========================================================\n\n * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\n */\n\n// ##############################\n// // // Variables - Styles that are used on more than one component\n// #############################\n\nconst drawerWidth = 260;\n\nconst transition = {\n transition: \"all 0.33s cubic-bezier(0.685, 0.0473, 0.346, 1)\"\n};\n\nconst conatinerFluid = {\n paddingRight: \"15px\",\n paddingLeft: \"15px\",\n marginRight: \"auto\",\n marginLeft: \"auto\",\n width: \"100%\"\n};\nconst container = {\n ...conatinerFluid,\n \"@media (min-width: 576px)\": {\n maxWidth: \"540px\"\n },\n \"@media (min-width: 768px)\": {\n maxWidth: \"720px\"\n },\n \"@media (min-width: 992px)\": {\n maxWidth: \"960px\"\n },\n \"@media (min-width: 1200px)\": {\n maxWidth: \"1140px\"\n }\n};\n\nconst boxShadow = {\n boxShadow:\n \"0 10px 30px -12px rgba(0, 0, 0, 0.42), 0 4px 25px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(0, 0, 0, 0.2)\"\n};\n\nconst card = {\n display: \"inline-block\",\n position: \"relative\",\n width: \"100%\",\n margin: \"25px 0\",\n boxShadow: \"0 1px 4px 0 rgba(0, 0, 0, 0.14)\",\n borderRadius: \"3px\",\n color: \"rgba(0, 0, 0, 0.87)\",\n background: \"#fff\"\n};\n\nconst defaultFont = {\n fontFamily: '\"Roboto\", \"Helvetica\", \"Arial\", sans-serif',\n fontWeight: \"300\",\n lineHeight: \"1.5em\"\n};\n\nconst primaryColor = \"#9c27b0\";\nconst warningColor = \"#ff9800\";\nconst dangerColor = \"#f44336\";\nconst successColor = \"#4caf50\";\nconst infoColor = \"#00acc1\";\nconst roseColor = \"#e91e63\";\nconst grayColor = \"#999999\";\n\nconst primaryBoxShadow = {\n boxShadow:\n \"0 12px 20px -10px rgba(156, 39, 176, 0.28), 0 4px 20px 0px rgba(0, 0, 0, 0.12), 0 7px 8px -5px rgba(156, 39, 176, 0.2)\"\n};\nconst infoBoxShadow = {\n boxShadow:\n \"0 12px 20px -10px rgba(0, 188, 212, 0.28), 0 4px 20px 0px rgba(0, 0, 0, 0.12), 0 7px 8px -5px rgba(0, 188, 212, 0.2)\"\n};\nconst successBoxShadow = {\n boxShadow:\n \"0 12px 20px -10px rgba(76, 175, 80, 0.28), 0 4px 20px 0px rgba(0, 0, 0, 0.12), 0 7px 8px -5px rgba(76, 175, 80, 0.2)\"\n};\nconst warningBoxShadow = {\n boxShadow:\n \"0 12px 20px -10px rgba(255, 152, 0, 0.28), 0 4px 20px 0px rgba(0, 0, 0, 0.12), 0 7px 8px -5px rgba(255, 152, 0, 0.2)\"\n};\nconst dangerBoxShadow = {\n boxShadow:\n \"0 12px 20px -10px rgba(244, 67, 54, 0.28), 0 4px 20px 0px rgba(0, 0, 0, 0.12), 0 7px 8px -5px rgba(244, 67, 54, 0.2)\"\n};\nconst roseBoxShadow = {\n boxShadow:\n \"0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 10px -5px rgba(233, 30, 99, 0.4)\"\n};\nconst grayBoxShadow = {\n boxShadow:\n \"0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 10px -5px rgba(135, 135, 135, 0.4)\"\n};\n\nconst warningCardHeader = {\n color: \"#fff\",\n background: \"linear-gradient(60deg, #ffa726, #fb8c00)\",\n ...warningBoxShadow\n};\nconst successCardHeader = {\n color: \"#fff\",\n background: \"linear-gradient(60deg, #66bb6a, #43a047)\",\n ...successBoxShadow\n};\nconst dangerCardHeader = {\n color: \"#fff\",\n background: \"linear-gradient(60deg, #ef5350, #e53935)\",\n ...dangerBoxShadow\n};\nconst infoCardHeader = {\n color: \"#fff\",\n background: \"linear-gradient(60deg, #26c6da, #00acc1)\",\n ...infoBoxShadow\n};\nconst primaryCardHeader = {\n color: \"#fff\",\n background: \"linear-gradient(60deg, #ab47bc, #8e24aa)\",\n ...primaryBoxShadow\n};\nconst grayCardHeader = {\n color: \"#fff\",\n background: \"linear-gradient(60deg, #999, #999)\",\n ...grayBoxShadow\n};\nconst roseCardHeader = {\n color: \"#fff\",\n background: \"linear-gradient(60deg, #ec407a, #d81b60)\",\n ...roseBoxShadow\n};\nconst cardActions = {\n margin: \"0 20px 10px\",\n paddingTop: \"10px\",\n borderTop: \"1px solid #eeeeee\",\n height: \"auto\",\n ...defaultFont\n};\n\nconst cardHeader = {\n margin: \"-30px 15px 0\",\n borderRadius: \"3px\",\n padding: \"15px\"\n};\n\nconst defaultBoxShadow = {\n border: \"0\",\n borderRadius: \"3px\",\n boxShadow:\n \"0 10px 20px -12px rgba(0, 0, 0, 0.42), 0 3px 20px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(0, 0, 0, 0.2)\",\n padding: \"10px 0\",\n transition: \"all 150ms ease 0s\"\n};\n\nconst title = {\n color: \"#3C4858\",\n margin: \"1.75rem 0 0.875rem\",\n textDecoration: \"none\",\n fontWeight: \"700\",\n fontFamily: `\"Roboto Slab\", \"Times New Roman\", serif`\n};\n\nconst cardTitle = {\n ...title,\n marginTop: \".625rem\"\n};\n\nconst cardLink = {\n \"& + $cardLink\": {\n marginLeft: \"1.25rem\"\n }\n};\n\nconst cardSubtitle = {\n marginBottom: \"0\",\n marginTop: \"-.375rem\"\n};\n\nexport {\n //variables\n drawerWidth,\n transition,\n container,\n conatinerFluid,\n boxShadow,\n card,\n defaultFont,\n primaryColor,\n warningColor,\n dangerColor,\n successColor,\n infoColor,\n roseColor,\n grayColor,\n primaryBoxShadow,\n infoBoxShadow,\n successBoxShadow,\n warningBoxShadow,\n dangerBoxShadow,\n roseBoxShadow,\n warningCardHeader,\n successCardHeader,\n dangerCardHeader,\n infoCardHeader,\n primaryCardHeader,\n grayCardHeader,\n roseCardHeader,\n cardActions,\n cardHeader,\n defaultBoxShadow,\n title,\n cardTitle,\n cardLink,\n cardSubtitle\n};\n","const imagesStyles = {\n imgFluid: {\n maxWidth: \"100%\",\n height: \"auto\"\n },\n imgRounded: {\n borderRadius: \"6px !important\"\n },\n imgRoundedCircle: {\n borderRadius: \"50% !important\"\n },\n imgRaised: {\n boxShadow:\n \"0 5px 15px -8px rgba(0, 0, 0, 0.24), 0 8px 10px -5px rgba(0, 0, 0, 0.2)\"\n },\n imgGallery: {\n width: \"100%\",\n marginBottom: \"2.142rem\"\n },\n imgCardTop: {\n width: \"100%\",\n borderTopLeftRadius: \"calc(.25rem - 1px)\",\n borderTopRightRadius: \"calc(.25rem - 1px)\"\n },\n imgCardBottom: {\n width: \"100%\",\n borderBottomLeftRadius: \"calc(.25rem - 1px)\",\n borderBottomRightRadius: \"calc(.25rem - 1px)\"\n },\n imgCard: {\n width: \"100%\",\n borderRadius: \"calc(.25rem - 1px)\"\n },\n imgCardOverlay: {\n position: \"absolute\",\n top: \"0\",\n right: \"0\",\n bottom: \"0\",\n left: \"0\",\n padding: \"1.25rem\"\n }\n};\n\nexport default imagesStyles;\n","import { container, title } from \"assets/jss/material-kit-react.js\";\n\nimport imagesStyles from \"assets/jss/material-kit-react/imagesStyles.js\";\n\nconst typographyStyle = {\n section: {\n padding: \"70px 0\"\n },\n container,\n space50: {\n height: \"50px\",\n display: \"block\"\n },\n title: {\n ...title,\n marginTop: \"30px\",\n minHeight: \"32px\",\n textDecoration: \"none\"\n },\n typo: {\n paddingLeft: \"25%\",\n marginBottom: \"40px\",\n position: \"relative\",\n width: \"100%\"\n },\n note: {\n fontFamily: '\"Roboto\", \"Helvetica\", \"Arial\", sans-serif',\n bottom: \"10px\",\n color: \"#c0c1c2\",\n display: \"block\",\n fontWeight: \"400\",\n fontSize: \"13px\",\n lineHeight: \"13px\",\n left: \"0\",\n marginLeft: \"20px\",\n position: \"absolute\",\n width: \"260px\"\n },\n marginLeft: {\n marginLeft: \"auto !important\"\n },\n ...imagesStyles\n};\n\nexport default typographyStyle;\n","import {\n primaryColor,\n dangerColor,\n successColor,\n defaultFont\n} from \"assets/jss/material-kit-react.js\";\n\nconst customInputStyle = {\n disabled: {\n \"&:before\": {\n borderColor: \"transparent !important\"\n }\n },\n underline: {\n \"&:hover:not($disabled):before,&:before\": {\n borderColor: \"#D2D2D2 !important\",\n borderWidth: \"1px !important\"\n },\n \"&:after\": {\n borderColor: primaryColor\n }\n },\n underlineError: {\n \"&:after\": {\n borderColor: dangerColor\n }\n },\n underlineSuccess: {\n \"&:after\": {\n borderColor: successColor\n }\n },\n whiteUnderline: {\n \"&:hover:not($disabled):before,&:before\": {\n borderColor: \"#FFFFFF\"\n },\n \"&:after\": {\n borderColor: \"#FFFFFF\"\n }\n },\n labelRoot: {\n ...defaultFont,\n color: \"#AAAAAA !important\",\n fontWeight: \"400\",\n fontSize: \"14px\",\n lineHeight: \"1.42857\",\n top: \"10px\",\n letterSpacing: \"unset\",\n \"& + $underline\": {\n marginTop: \"0px\"\n }\n },\n labelRootError: {\n color: dangerColor + \" !important\"\n },\n labelRootSuccess: {\n color: successColor + \" !important\"\n },\n formControl: {\n margin: \"0 0 17px 0\",\n paddingTop: \"27px\",\n position: \"relative\",\n \"& svg,& .fab,& .far,& .fal,& .fas,& .material-icons\": {\n color: \"#495057\"\n }\n },\n input: {\n color: \"#495057\",\n height: \"unset\",\n \"&,&::placeholder\": {\n fontSize: \"14px\",\n fontFamily: '\"Roboto\", \"Helvetica\", \"Arial\", sans-serif',\n fontWeight: \"400\",\n lineHeight: \"1.42857\",\n opacity: \"1\"\n },\n \"&::placeholder\": {\n color: \"#AAAAAA\"\n }\n },\n whiteInput: {\n \"&,&::placeholder\": {\n color: \"#FFFFFF\",\n opacity: \"1\"\n }\n }\n};\n\nexport default customInputStyle;\n","import React from \"react\";\n// nodejs library to set properties for components\nimport PropTypes from \"prop-types\";\n// nodejs library that concatenates classes\nimport classNames from \"classnames\";\n// @material-ui/core components\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport FormControl from \"@material-ui/core/FormControl\";\nimport InputLabel from \"@material-ui/core/InputLabel\";\nimport Input from \"@material-ui/core/Input\";\n\nimport styles from \"assets/jss/material-kit-react/components/customInputStyle.js\";\n\nconst useStyles = makeStyles(styles);\n\nexport default function CustomInput(props) {\n const classes = useStyles();\n const {\n formControlProps,\n labelText,\n id,\n labelProps,\n inputProps,\n error,\n white,\n inputRootCustomClasses,\n success\n } = props;\n\n const labelClasses = classNames({\n [\" \" + classes.labelRootError]: error,\n [\" \" + classes.labelRootSuccess]: success && !error\n });\n const underlineClasses = classNames({\n [classes.underlineError]: error,\n [classes.underlineSuccess]: success && !error,\n [classes.underline]: true,\n [classes.whiteUnderline]: white\n });\n const marginTop = classNames({\n [inputRootCustomClasses]: inputRootCustomClasses !== undefined\n });\n const inputClasses = classNames({\n [classes.input]: true,\n [classes.whiteInput]: white\n });\n var formControlClasses;\n if (formControlProps !== undefined) {\n formControlClasses = classNames(\n formControlProps.className,\n classes.formControl\n );\n } else {\n formControlClasses = classes.formControl;\n }\n return (\n \n {labelText !== undefined ? (\n \n {labelText}\n \n ) : null}\n \n \n );\n}\n\nCustomInput.propTypes = {\n labelText: PropTypes.node,\n labelProps: PropTypes.object,\n id: PropTypes.string,\n inputProps: PropTypes.object,\n formControlProps: PropTypes.object,\n inputRootCustomClasses: PropTypes.string,\n error: PropTypes.bool,\n success: PropTypes.bool,\n white: PropTypes.bool\n};\n","const parallaxStyle = {\n parallax: {\n height: \"90vh\",\n maxHeight: \"1000px\",\n overflow: \"hidden\",\n position: \"relative\",\n backgroundPosition: \"top center\",\n backgroundSize: \"cover\",\n margin: \"0\",\n padding: \"0\",\n border: \"0\",\n display: \"flex\",\n alignItems: \"center\",\n },\n filter: {\n \"&:before\": {\n background: \"rgba(0, 0, 0, 0.5)\",\n },\n \"&:after,&:before\": {\n position: \"absolute\",\n zIndex: \"1\",\n width: \"100%\",\n height: \"50%\",\n display: \"block\",\n left: \"0\",\n top: \"0\",\n content: \"''\",\n },\n },\n small: {\n height: \"380px\",\n },\n};\n\nexport default parallaxStyle;\n","import React from \"react\";\n// nodejs library that concatenates classes\nimport classNames from \"classnames\";\n// nodejs library to set properties for components\nimport PropTypes from \"prop-types\";\n// @material-ui/core components\nimport { makeStyles } from \"@material-ui/core/styles\";\n\n// core components\nimport styles from \"assets/jss/material-kit-react/components/parallaxStyle.js\";\n\nconst useStyles = makeStyles(styles);\n\nexport default function Parallax(props) {\n let windowScrollTop;\n if (window.innerWidth >= 768) {\n windowScrollTop = window.pageYOffset / 3;\n } else {\n windowScrollTop = 0;\n }\n const [transform, setTransform] = React.useState(\n \"translate3d(0,\" + windowScrollTop + \"px,0)\"\n );\n React.useEffect(() => {\n if (window.innerWidth >= 768) {\n window.addEventListener(\"scroll\", resetTransform);\n }\n return function cleanup() {\n if (window.innerWidth >= 768) {\n window.removeEventListener(\"scroll\", resetTransform);\n }\n };\n });\n const resetTransform = () => {\n var windowScrollTop = window.pageYOffset / 3;\n setTransform(\"translate3d(0,\" + windowScrollTop + \"px,0)\");\n };\n const { filter, className, children, style, image, small } = props;\n const classes = useStyles();\n const parallaxClasses = classNames({\n [classes.parallax]: true,\n [classes.filter]: filter,\n [classes.small]: small,\n [className]: className !== undefined\n });\n return (\n \n {children}\n \n );\n}\n\nParallax.propTypes = {\n className: PropTypes.string,\n filter: PropTypes.bool,\n children: PropTypes.node,\n style: PropTypes.string,\n image: PropTypes.string,\n small: PropTypes.bool\n};\n","import {\n grayColor,\n roseColor,\n primaryColor,\n infoColor,\n successColor,\n warningColor,\n dangerColor\n} from \"assets/jss/material-kit-react.js\";\n\nconst buttonStyle = {\n button: {\n minHeight: \"auto\",\n minWidth: \"auto\",\n backgroundColor: grayColor,\n color: \"#FFFFFF\",\n boxShadow:\n \"0 2px 2px 0 rgba(153, 153, 153, 0.14), 0 3px 1px -2px rgba(153, 153, 153, 0.2), 0 1px 5px 0 rgba(153, 153, 153, 0.12)\",\n border: \"none\",\n borderRadius: \"3px\",\n position: \"relative\",\n padding: \"12px 30px\",\n margin: \".3125rem 1px\",\n fontSize: \"12px\",\n fontWeight: \"400\",\n textTransform: \"uppercase\",\n letterSpacing: \"0\",\n willChange: \"box-shadow, transform\",\n transition:\n \"box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1), background-color 0.2s cubic-bezier(0.4, 0, 0.2, 1)\",\n lineHeight: \"1.42857143\",\n textAlign: \"center\",\n whiteSpace: \"nowrap\",\n verticalAlign: \"middle\",\n touchAction: \"manipulation\",\n cursor: \"pointer\",\n \"&:hover,&:focus\": {\n color: \"#FFFFFF\",\n backgroundColor: grayColor,\n boxShadow:\n \"0 14px 26px -12px rgba(153, 153, 153, 0.42), 0 4px 23px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(153, 153, 153, 0.2)\"\n },\n \"& .fab,& .fas,& .far,& .fal,& .material-icons\": {\n position: \"relative\",\n display: \"inline-block\",\n top: \"0\",\n fontSize: \"1.1rem\",\n marginRight: \"4px\",\n verticalAlign: \"middle\"\n },\n \"& svg\": {\n position: \"relative\",\n display: \"inline-block\",\n top: \"0\",\n width: \"18px\",\n height: \"18px\",\n marginRight: \"4px\",\n verticalAlign: \"middle\"\n },\n \"&$justIcon\": {\n \"& .fab,& .fas,& .far,& .fal,& .material-icons\": {\n marginRight: \"0px\",\n position: \"absolute\",\n width: \"100%\",\n transform: \"none\",\n left: \"0px\",\n top: \"0px\",\n height: \"100%\",\n lineHeight: \"41px\",\n fontSize: \"20px\"\n }\n }\n },\n fullWidth: {\n width: \"100%\"\n },\n primary: {\n backgroundColor: primaryColor,\n boxShadow:\n \"0 2px 2px 0 rgba(156, 39, 176, 0.14), 0 3px 1px -2px rgba(156, 39, 176, 0.2), 0 1px 5px 0 rgba(156, 39, 176, 0.12)\",\n \"&:hover,&:focus\": {\n backgroundColor: primaryColor,\n boxShadow:\n \"0 14px 26px -12px rgba(156, 39, 176, 0.42), 0 4px 23px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(156, 39, 176, 0.2)\"\n }\n },\n info: {\n backgroundColor: infoColor,\n boxShadow:\n \"0 2px 2px 0 rgba(0, 188, 212, 0.14), 0 3px 1px -2px rgba(0, 188, 212, 0.2), 0 1px 5px 0 rgba(0, 188, 212, 0.12)\",\n \"&:hover,&:focus\": {\n backgroundColor: infoColor,\n boxShadow:\n \"0 14px 26px -12px rgba(0, 188, 212, 0.42), 0 4px 23px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(0, 188, 212, 0.2)\"\n }\n },\n success: {\n backgroundColor: successColor,\n boxShadow:\n \"0 2px 2px 0 rgba(76, 175, 80, 0.14), 0 3px 1px -2px rgba(76, 175, 80, 0.2), 0 1px 5px 0 rgba(76, 175, 80, 0.12)\",\n \"&:hover,&:focus\": {\n backgroundColor: successColor,\n boxShadow:\n \"0 14px 26px -12px rgba(76, 175, 80, 0.42), 0 4px 23px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(76, 175, 80, 0.2)\"\n }\n },\n warning: {\n backgroundColor: warningColor,\n boxShadow:\n \"0 2px 2px 0 rgba(255, 152, 0, 0.14), 0 3px 1px -2px rgba(255, 152, 0, 0.2), 0 1px 5px 0 rgba(255, 152, 0, 0.12)\",\n \"&:hover,&:focus\": {\n backgroundColor: warningColor,\n boxShadow:\n \"0 14px 26px -12px rgba(255, 152, 0, 0.42), 0 4px 23px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(255, 152, 0, 0.2)\"\n }\n },\n danger: {\n backgroundColor: dangerColor,\n boxShadow:\n \"0 2px 2px 0 rgba(244, 67, 54, 0.14), 0 3px 1px -2px rgba(244, 67, 54, 0.2), 0 1px 5px 0 rgba(244, 67, 54, 0.12)\",\n \"&:hover,&:focus\": {\n backgroundColor: dangerColor,\n boxShadow:\n \"0 14px 26px -12px rgba(244, 67, 54, 0.42), 0 4px 23px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(244, 67, 54, 0.2)\"\n }\n },\n rose: {\n backgroundColor: roseColor,\n boxShadow:\n \"0 2px 2px 0 rgba(233, 30, 99, 0.14), 0 3px 1px -2px rgba(233, 30, 99, 0.2), 0 1px 5px 0 rgba(233, 30, 99, 0.12)\",\n \"&:hover,&:focus\": {\n backgroundColor: roseColor,\n boxShadow:\n \"0 14px 26px -12px rgba(233, 30, 99, 0.42), 0 4px 23px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(233, 30, 99, 0.2)\"\n }\n },\n white: {\n \"&,&:focus,&:hover,&:visited\": {\n backgroundColor: \"#FFFFFF\",\n color: grayColor\n }\n },\n twitter: {\n backgroundColor: \"#55acee\",\n color: \"#fff\",\n boxShadow:\n \"0 2px 2px 0 rgba(85, 172, 238, 0.14), 0 3px 1px -2px rgba(85, 172, 238, 0.2), 0 1px 5px 0 rgba(85, 172, 238, 0.12)\",\n \"&:hover,&:focus,&:visited\": {\n backgroundColor: \"#55acee\",\n color: \"#fff\",\n boxShadow:\n \"0 14px 26px -12px rgba(85, 172, 238, 0.42), 0 4px 23px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(85, 172, 238, 0.2)\"\n }\n },\n facebook: {\n backgroundColor: \"#3b5998\",\n color: \"#fff\",\n boxShadow:\n \"0 2px 2px 0 rgba(59, 89, 152, 0.14), 0 3px 1px -2px rgba(59, 89, 152, 0.2), 0 1px 5px 0 rgba(59, 89, 152, 0.12)\",\n \"&:hover,&:focus\": {\n backgroundColor: \"#3b5998\",\n color: \"#fff\",\n boxShadow:\n \"0 14px 26px -12px rgba(59, 89, 152, 0.42), 0 4px 23px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(59, 89, 152, 0.2)\"\n }\n },\n google: {\n backgroundColor: \"#dd4b39\",\n color: \"#fff\",\n boxShadow:\n \"0 2px 2px 0 rgba(221, 75, 57, 0.14), 0 3px 1px -2px rgba(221, 75, 57, 0.2), 0 1px 5px 0 rgba(221, 75, 57, 0.12)\",\n \"&:hover,&:focus\": {\n backgroundColor: \"#dd4b39\",\n color: \"#fff\",\n boxShadow:\n \"0 14px 26px -12px rgba(221, 75, 57, 0.42), 0 4px 23px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(221, 75, 57, 0.2)\"\n }\n },\n github: {\n backgroundColor: \"#333333\",\n color: \"#fff\",\n boxShadow:\n \"0 2px 2px 0 rgba(51, 51, 51, 0.14), 0 3px 1px -2px rgba(51, 51, 51, 0.2), 0 1px 5px 0 rgba(51, 51, 51, 0.12)\",\n \"&:hover,&:focus\": {\n backgroundColor: \"#333333\",\n color: \"#fff\",\n boxShadow:\n \"0 14px 26px -12px rgba(51, 51, 51, 0.42), 0 4px 23px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(51, 51, 51, 0.2)\"\n }\n },\n simple: {\n \"&,&:focus,&:hover,&:visited\": {\n color: \"#FFFFFF\",\n background: \"transparent\",\n boxShadow: \"none\"\n },\n \"&$primary\": {\n \"&,&:focus,&:hover,&:visited\": {\n color: primaryColor\n }\n },\n \"&$info\": {\n \"&,&:focus,&:hover,&:visited\": {\n color: infoColor\n }\n },\n \"&$success\": {\n \"&,&:focus,&:hover,&:visited\": {\n color: successColor\n }\n },\n \"&$warning\": {\n \"&,&:focus,&:hover,&:visited\": {\n color: warningColor\n }\n },\n \"&$rose\": {\n \"&,&:focus,&:hover,&:visited\": {\n color: roseColor\n }\n },\n \"&$danger\": {\n \"&,&:focus,&:hover,&:visited\": {\n color: dangerColor\n }\n },\n \"&$twitter\": {\n \"&,&:focus,&:hover,&:visited\": {\n color: \"#55acee\"\n }\n },\n \"&$facebook\": {\n \"&,&:focus,&:hover,&:visited\": {\n color: \"#3b5998\"\n }\n },\n \"&$google\": {\n \"&,&:focus,&:hover,&:visited\": {\n color: \"#dd4b39\"\n }\n },\n \"&$github\": {\n \"&,&:focus,&:hover,&:visited\": {\n color: \"#333333\"\n }\n }\n },\n transparent: {\n \"&,&:focus,&:hover,&:visited\": {\n color: \"inherit\",\n background: \"transparent\",\n boxShadow: \"none\"\n }\n },\n disabled: {\n opacity: \"0.65\",\n pointerEvents: \"none\"\n },\n lg: {\n padding: \"1.125rem 2.25rem\",\n fontSize: \"0.875rem\",\n lineHeight: \"1.333333\",\n borderRadius: \"0.2rem\"\n },\n sm: {\n padding: \"0.40625rem 1.25rem\",\n fontSize: \"0.6875rem\",\n lineHeight: \"1.5\",\n borderRadius: \"0.2rem\"\n },\n round: {\n borderRadius: \"30px\"\n },\n block: {\n width: \"100% !important\"\n },\n link: {\n \"&,&:hover,&:focus\": {\n backgroundColor: \"transparent\",\n color: \"#999999\",\n boxShadow: \"none\"\n }\n },\n justIcon: {\n paddingLeft: \"12px\",\n paddingRight: \"12px\",\n fontSize: \"20px\",\n height: \"41px\",\n minWidth: \"41px\",\n width: \"41px\",\n \"& .fab,& .fas,& .far,& .fal,& svg,& .material-icons\": {\n marginRight: \"0px\"\n },\n \"&$lg\": {\n height: \"57px\",\n minWidth: \"57px\",\n width: \"57px\",\n lineHeight: \"56px\",\n \"& .fab,& .fas,& .far,& .fal,& .material-icons\": {\n fontSize: \"32px\",\n lineHeight: \"56px\"\n },\n \"& svg\": {\n width: \"32px\",\n height: \"32px\"\n }\n },\n \"&$sm\": {\n height: \"30px\",\n minWidth: \"30px\",\n width: \"30px\",\n \"& .fab,& .fas,& .far,& .fal,& .material-icons\": {\n fontSize: \"17px\",\n lineHeight: \"29px\"\n },\n \"& svg\": {\n width: \"17px\",\n height: \"17px\"\n }\n }\n }\n};\n\nexport default buttonStyle;\n","import React from \"react\";\n// nodejs library to set properties for components\nimport PropTypes from \"prop-types\";\n// nodejs library that concatenates classes\nimport classNames from \"classnames\";\n\n// @material-ui/core components\nimport makeStyles from \"@material-ui/core/styles/makeStyles\";\nimport Button from \"@material-ui/core/Button\";\n\n// core components\n\nimport buttonStyle from \"assets/jss/material-kit-react/components/buttonStyle.js\";\n\nconst makeComponentStyles = makeStyles(() => ({\n ...buttonStyle\n}));\n\nconst RegularButton = React.forwardRef((props, ref) => {\n const {\n color,\n round,\n children,\n fullWidth,\n disabled,\n simple,\n size,\n block,\n link,\n justIcon,\n className,\n ...rest\n } = props;\n\n const classes = makeComponentStyles();\n\n const btnClasses = classNames({\n [classes.button]: true,\n [classes[size]]: size,\n [classes[color]]: color,\n [classes.round]: round,\n [classes.fullWidth]: fullWidth,\n [classes.disabled]: disabled,\n [classes.simple]: simple,\n [classes.block]: block,\n [classes.link]: link,\n [classes.justIcon]: justIcon,\n [className]: className\n });\n return (\n \n );\n});\n\nRegularButton.propTypes = {\n color: PropTypes.oneOf([\n \"primary\",\n \"info\",\n \"success\",\n \"warning\",\n \"danger\",\n \"rose\",\n \"white\",\n \"facebook\",\n \"twitter\",\n \"google\",\n \"github\",\n \"transparent\"\n ]),\n size: PropTypes.oneOf([\"sm\", \"lg\"]),\n simple: PropTypes.bool,\n round: PropTypes.bool,\n fullWidth: PropTypes.bool,\n disabled: PropTypes.bool,\n block: PropTypes.bool,\n link: PropTypes.bool,\n justIcon: PropTypes.bool,\n children: PropTypes.node,\n className: PropTypes.string\n};\n\nexport default RegularButton;\n","export async function contact(name, email, message)\n{\n const requestOptions = {\n method: 'POST',\n headers: { 'Content-Type': 'application/json'},\n body: JSON.stringify({ name, email, message })\n }\n const BASEURL = process.env.REACT_APP_API_URL;\n\n return await fetch(BASEURL + '/contact', requestOptions)\n .then(handleResponse)\n .then(() => {\n return true;\n });\n}\n\nfunction handleResponse(response)\n{\n return response.text().then(text => {\n const data = text && JSON.parse(text);\n if(!response.ok)\n {\n const error = (data && data.message) || response.statusText;\n return Promise.reject(error);\n }\n return data;\n })\n}","import { title } from \"assets/jss/material-kit-react.js\";\n\nconst workStyle = {\n section: {\n padding: \"70px 0\"\n },\n title: {\n ...title,\n marginBottom: \"50px\",\n marginTop: \"30px\",\n minHeight: \"32px\",\n textDecoration: \"none\",\n textAlign: \"center\"\n },\n description: {\n color: \"#999\",\n textAlign: \"center\"\n },\n textCenter: {\n textAlign: \"center\"\n },\n textArea: {\n marginRight: \"15px\",\n marginLeft: \"15px\"\n }\n};\n\nexport default workStyle;\n","import React, {useState} from \"react\";\n// @material-ui/core components\nimport { makeStyles } from \"@material-ui/core/styles\";\n\nimport {contact} from '../../../_services/contact.services';\n\n// @material-ui/icons\n\n// core components\nimport GridContainer from \"components/grid/GridContainer.js\";\nimport GridItem from \"components/grid/GridItem.js\";\nimport CustomInput from \"components/CustomInput/CustomInput.js\";\nimport Button from \"components/CustomButtons/Button.js\";\n\nimport styles from \"assets/jss/material-kit-react/views/landingPageSections/workStyle.js\";\n\nconst useStyles = makeStyles(styles);\n\nexport default function WorkSection() {\n\n const classes = useStyles();\n\n const [name, setName] = useState();\n const [email, setEmail] = useState();\n const [message, setMessage] = useState();\n const [contactError, setContactError] = useState(false);\n const [contactMessage, setContactMessage] = useState();\n const [contactSuccess, setContactSuccess] = useState(false);\n \n function ValidateEmail(inputText)\n {\n var mailformat = /^\\w+([\\.-]?\\w+)*@\\w+([\\.-]?\\w+)*(\\.\\w{2,3})+$/;\n if(inputText.match(mailformat))\n {\n return true;\n }\n else\n {\n return false;\n }\n }\n\n const handleContact = () =>\n {\n if (name === '' || name === undefined)\n {\n setContactError(true);\n setContactMessage('Enter your name');\n return false;\n }\n if (email === '' || email === undefined || !ValidateEmail(email))\n {\n setContactError(true);\n setContactMessage('Enter a valid email address');\n return false;\n }\n if (message === '' || message === undefined)\n {\n setContactError(true);\n setContactMessage('Enter a message');\n return false;\n }\n\n setContactError(false)\n setContactMessage('');\n\n (async () => {\n try{\n var contactResult = await contact(name, email, message);\n if (contactResult)\n {\n setContactError(false);\n setContactSuccess(true);\n setContactMessage('We will respond to your message as soon as we can. Thanks!')\n setEmail('');\n setMessage('');\n setName('');\n }\n }catch{\n setContactError(true);\n setContactMessage('An error occured. Please contact asiaworldtopper@gmail.com');\n }\n })();\n }\n\n return (\n
\n \n \n

Contact Us

\n

\n If you have any questions or are unsure of how to proceed with your order, please feel free to contact us at anytime using the form below. We will respond within 24 hours of your inquiry.\n

\n
\n \n \n setName(e.target.value)\n }}\n formControlProps={{\n fullWidth: true\n }}\n />\n \n \n setEmail(e.target.value)\n }}\n formControlProps={{\n fullWidth: true\n }}\n />\n \n setMessage(e.target.value),\n multiline: true,\n rows: 5\n }}\n />\n {contactError &&\n \n
\n {contactMessage}\n
\n
\n }\n {contactSuccess &&\n \n
\n {contactMessage}\n
\n
\n } \n \n \n \n
\n
\n
\n
\n
\n );\n}\n","import {\n primaryColor,\n warningColor,\n dangerColor,\n successColor,\n infoColor,\n roseColor,\n grayColor,\n title\n} from \"assets/jss/material-kit-react.js\";\n\nconst infoStyle = {\n infoArea: {\n maxWidth: \"360px\",\n margin: \"0 auto\",\n padding: \"0px\"\n },\n iconWrapper: {\n float: \"left\",\n marginTop: \"24px\",\n marginRight: \"10px\"\n },\n primary: {\n color: primaryColor\n },\n warning: {\n color: warningColor\n },\n danger: {\n color: dangerColor\n },\n success: {\n color: successColor\n },\n info: {\n color: infoColor\n },\n rose: {\n color: roseColor\n },\n gray: {\n color: grayColor\n },\n icon: {\n width: \"36px\",\n height: \"36px\"\n },\n descriptionWrapper: {\n color: grayColor,\n overflow: \"hidden\"\n },\n title,\n description: {\n color: grayColor,\n overflow: \"hidden\",\n marginTop: \"0px\",\n fontSize: \"14px\"\n },\n iconWrapperVertical: {\n float: \"none\"\n },\n iconVertical: {\n width: \"61px\",\n height: \"61px\"\n }\n};\n\nexport default infoStyle;\n","import React from \"react\";\n// nodejs library to set properties for components\nimport PropTypes from \"prop-types\";\n// nodejs library that concatenates classes\nimport classNames from \"classnames\";\n// @material-ui/core components\nimport { makeStyles } from \"@material-ui/core/styles\";\n\nimport styles from \"assets/jss/material-kit-react/components/infoStyle.js\";\n\nconst useStyles = makeStyles(styles);\n\nexport default function InfoArea(props) {\n const classes = useStyles();\n const { title, description, iconColor, vertical } = props;\n const iconWrapper = classNames({\n [classes.iconWrapper]: true,\n [classes[iconColor]]: true,\n [classes.iconWrapperVertical]: vertical\n });\n const iconClasses = classNames({\n [classes.icon]: true,\n [classes.iconVertical]: vertical\n });\n return (\n
\n
\n \n
\n
\n

{title}

\n

{description}

\n
\n
\n );\n}\n\nInfoArea.defaultProps = {\n iconColor: \"gray\"\n};\n\nInfoArea.propTypes = {\n icon: PropTypes.object.isRequired,\n title: PropTypes.string.isRequired,\n description: PropTypes.string.isRequired,\n iconColor: PropTypes.oneOf([\n \"primary\",\n \"warning\",\n \"danger\",\n \"success\",\n \"info\",\n \"rose\",\n \"gray\"\n ]),\n vertical: PropTypes.bool\n};\n","import { title } from \"assets/jss/material-kit-react.js\";\n\nconst productStyle = {\n section: {\n padding: \"70px 0\",\n textAlign: \"center\"\n },\n title: {\n ...title,\n marginBottom: \"1rem\",\n marginTop: \"30px\",\n minHeight: \"32px\",\n textDecoration: \"none\"\n },\n description: {\n color: \"#999\"\n }\n};\n\nexport default productStyle;\n","import React from \"react\";\n// @material-ui/core components\nimport { makeStyles } from \"@material-ui/core/styles\";\n\n// @material-ui/icons\nimport Chat from \"@material-ui/icons/Chat\";\nimport VerifiedUser from \"@material-ui/icons/VerifiedUser\";\nimport Image from \"@material-ui/icons/Image\";\n// core components\nimport GridContainer from \"components/grid/GridContainer.js\";\nimport GridItem from \"components/grid/GridItem.js\";\nimport InfoArea from \"components/InfoArea/InfoArea.js\";\n\nimport styles from \"assets/jss/material-kit-react/views/landingPageSections/productStyle.js\";\n\nconst useStyles = makeStyles(styles);\n\nexport default function ProductSection() {\n const classes = useStyles();\n return (\n
\n \n \n

Let{\"'\"}s talk product

\n
\n This is the paragraph where you can write more details about your\n product. Keep you user engaged by providing meaningful information.\n Remember that by this time, the user is curious, otherwise he wouldn\n {\"'\"}t scroll to get here. Add a button if you want the user to see\n more.\n
\n
\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n
\n
\n );\n}\n","const cardStyle = {\n card: {\n border: \"0\",\n marginBottom: \"30px\",\n marginTop: \"30px\",\n borderRadius: \"6px\",\n color: \"rgba(0, 0, 0, 0.87)\",\n background: \"#fff\",\n width: \"100%\",\n boxShadow:\n \"0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12)\",\n position: \"relative\",\n display: \"flex\",\n flexDirection: \"column\",\n minWidth: \"0\",\n wordWrap: \"break-word\",\n fontSize: \".875rem\",\n transition: \"all 300ms linear\"\n },\n cardPlain: {\n background: \"transparent\",\n boxShadow: \"none\"\n },\n cardCarousel: {\n overflow: \"hidden\"\n }\n};\n\nexport default cardStyle;\n","import React from \"react\";\n// nodejs library that concatenates classes\nimport classNames from \"classnames\";\n// nodejs library to set properties for components\nimport PropTypes from \"prop-types\";\n// @material-ui/core components\nimport { makeStyles } from \"@material-ui/core/styles\";\n// @material-ui/icons\n\n// core components\nimport styles from \"assets/jss/material-kit-react/components/cardStyle.js\";\n\nconst useStyles = makeStyles(styles);\n\nexport default function Card(props) {\n const classes = useStyles();\n const { className, children, plain, carousel, ...rest } = props;\n const cardClasses = classNames({\n [classes.card]: true,\n [classes.cardPlain]: plain,\n [classes.cardCarousel]: carousel,\n [className]: className !== undefined\n });\n return (\n
\n {children}\n
\n );\n}\n\nCard.propTypes = {\n className: PropTypes.string,\n plain: PropTypes.bool,\n carousel: PropTypes.bool,\n children: PropTypes.node\n};\n","const cardBodyStyle = {\n cardBody: {\n padding: \"0.9375rem 1.875rem\",\n flex: \"1 1 auto\"\n }\n};\n\nexport default cardBodyStyle;\n","import React from \"react\";\n// nodejs library that concatenates classes\nimport classNames from \"classnames\";\n// nodejs library to set properties for components\nimport PropTypes from \"prop-types\";\n// @material-ui/core components\nimport { makeStyles } from \"@material-ui/core/styles\";\n// @material-ui/icons\n\n// core components\nimport styles from \"assets/jss/material-kit-react/components/cardBodyStyle.js\";\n\nconst useStyles = makeStyles(styles);\n\nexport default function CardBody(props) {\n const classes = useStyles();\n const { className, children, ...rest } = props;\n const cardBodyClasses = classNames({\n [classes.cardBody]: true,\n [className]: className !== undefined\n });\n return (\n
\n {children}\n
\n );\n}\n\nCardBody.propTypes = {\n className: PropTypes.string,\n children: PropTypes.node\n};\n","const cardFooterStyle = {\n cardFooter: {\n display: \"flex\",\n alignItems: \"center\",\n backgroundColor: \"transparent\",\n padding: \"0.9375rem 1.875rem\"\n }\n};\n\nexport default cardFooterStyle;\n","import React from \"react\";\n// nodejs library that concatenates classes\nimport classNames from \"classnames\";\n// nodejs library to set properties for components\nimport PropTypes from \"prop-types\";\n// @material-ui/core components\nimport { makeStyles } from \"@material-ui/core/styles\";\n// @material-ui/icons\n\n// core components\nimport styles from \"assets/jss/material-kit-react/components/cardFooterStyle.js\";\n\nconst useStyles = makeStyles(styles);\n\nexport default function CardFooter(props) {\n const classes = useStyles();\n const { className, children, ...rest } = props;\n const cardFooterClasses = classNames({\n [classes.cardFooter]: true,\n [className]: className !== undefined\n });\n return (\n
\n {children}\n
\n );\n}\n\nCardFooter.propTypes = {\n className: PropTypes.string,\n children: PropTypes.node\n};\n","import { container } from \"assets/jss/material-kit-react.js\";\n\nconst componentsStyle = {\n container,\n brand: {\n color: \"#fff\",\n textAlign: \"left\"\n },\n title: {\n fontSize: \"4.2rem\",\n fontWeight: \"600\",\n display: \"inline-block\",\n position: \"relative\",\n textShadow: \"3px 3px 0px #000\"\n },\n subtitle: {\n fontSize: \"1.313rem\",\n maxWidth: \"500px\",\n margin: \"10px 0 0\",\n textShadow: \"3px 3px 0px #000\"\n },\n main: {\n background: \"#FFFFFF\",\n position: \"relative\",\n zIndex: \"3\"\n },\n mainRaised: {\n margin: \"-60px 30px 0px\",\n borderRadius: \"6px\",\n boxShadow:\n \"0 16px 24px 2px rgba(0, 0, 0, 0.14), 0 6px 30px 5px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(0, 0, 0, 0.2)\"\n },\n link: {\n textDecoration: \"none\"\n },\n textCenter: {\n textAlign: \"center\"\n }\n};\n\nexport default componentsStyle;\n","import React from \"react\";\nimport Image1 from \"../../img/sliderimages/slider4.jpg\";\nimport GridContainer from \"../../components/grid/GridContainer\";\nimport GridItem from \"../../components/grid/GridItem\";\nimport Parallax from \"components/Parallax/Parallax.js\";\nimport Button from \"components/CustomButtons/Button.js\";\nimport classNames from \"classnames\";\nimport ContactUsSection from \"./sections/ContactUsSection\";\nimport ProductSection from \"./sections/ProductSection\";\nimport Card from \"../../components/card/Card\";\nimport CardBody from \"../../components/card/CardBody\";\nimport CardFooter from \"../../components/card/CardFooter\";\nimport FormatQuote from \"@material-ui/icons/FormatQuote\";\nimport image from \"assets/img/faces/card-profile1-square.jpg\";\nimport styles from \"assets/jss/material-kit-react/views/components.js\";\n\nimport { makeStyles } from \"@material-ui/core/styles\";\n\nconst useStyles = makeStyles(styles);\n\nexport default function Home(props) {\n const classes = useStyles();\n\n return (\n
\n \n
\n \n \n
\n

Asia World Topper

\n
\n \n
\n
\n
\n
\n
\n
\n\n
\n
\n
\n \n \n

Wedding Cake Toppers

\n

\n We make fantastic, customized wedding cake toppers for your\n special day. Visit our product section to browse the hundreds\n of pre-made wedding cake toppers that can be yours today.\n

\n
\n \n \n \n \n \n
\n
\n \n \n \n \n \n \n
\n
\n );\n}\n","import {\n container,\n defaultFont,\n primaryColor,\n grayColor,\n infoColor,\n successColor,\n warningColor,\n dangerColor,\n roseColor,\n transition,\n boxShadow,\n drawerWidth\n} from \"assets/jss/material-kit-react.js\";\n\nconst headerStyle = {\n appBar: {\n display: \"flex\",\n border: \"0\",\n borderRadius: \"3px\",\n padding: \"0.625rem 0\",\n color: \"#555\",\n width: \"100%\",\n marginBottom: \"20px\",\n backgroundColor: \"#fff\",\n boxShadow:\n \"0 4px 18px 0px rgba(0, 0, 0, 0.12), 0 7px 10px -5px rgba(0, 0, 0, 0.15)\",\n transition: \"all 150ms ease 0s\",\n alignItems: \"center\",\n flexFlow: \"row nowrap\",\n justifyContent: \"flex-start\",\n position: \"relative\",\n zIndex: \"unset\"\n \n },\n absolute: {\n position: \"absolute\",\n zIndex: \"1100\"\n },\n fixed: {\n position: \"fixed\",\n zIndex: \"1100\"\n },\n container: {\n ...container,\n minHeight: \"50px\",\n flex: \"1\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n display: \"flex\",\n flexWrap: \"nowrap\"\n },\n flex: {\n flex: 1\n },\n title: {\n ...defaultFont,\n lineHeight: \"30px\",\n fontSize: \"18px\",\n borderRadius: \"3px\",\n textTransform: \"none\",\n color: \"inherit\",\n padding: \"8px 16px\",\n letterSpacing: \"unset\",\n \"&:hover,&:focus\": {\n color: \"inherit\",\n background: \"transparent\"\n }\n },\n appResponsive: {\n margin: \"20px 10px\"\n },\n primary: {\n backgroundColor: primaryColor,\n color: \"#FFFFFF\",\n boxShadow:\n \"0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 12px -5px rgba(156, 39, 176, 0.46)\"\n },\n info: {\n backgroundColor: infoColor,\n color: \"#FFFFFF\",\n boxShadow:\n \"0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 12px -5px rgba(0, 188, 212, 0.46)\"\n },\n success: {\n backgroundColor: successColor,\n color: \"#FFFFFF\",\n boxShadow:\n \"0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 12px -5px rgba(76, 175, 80, 0.46)\"\n },\n warning: {\n backgroundColor: warningColor,\n color: \"#FFFFFF\",\n boxShadow:\n \"0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 12px -5px rgba(255, 152, 0, 0.46)\"\n },\n danger: {\n backgroundColor: dangerColor,\n color: \"#FFFFFF\",\n boxShadow:\n \"0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 12px -5px rgba(244, 67, 54, 0.46)\"\n },\n rose: {\n backgroundColor: roseColor,\n color: \"#FFFFFF\",\n boxShadow:\n \"0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 12px -5px rgba(233, 30, 99, 0.46)\"\n },\n gray: {\n backgroundColor: grayColor,\n color: \"#FFFFFF\",\n boxShadow:\n \"0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 12px -5px rgba(135, 135, 135 0.46)\"\n },\n transparent: {\n backgroundColor: \"transparent !important\",\n boxShadow: \"none\",\n paddingTop: \"25px\",\n color: \"#FFFFFF\"\n },\n dark: {\n color: \"#FFFFFF\",\n backgroundColor: \"#212121 !important\",\n boxShadow:\n \"0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 12px -5px rgba(33, 33, 33, 0.46)\"\n },\n white: {\n border: \"0\",\n padding: \"0.625rem 0\",\n marginBottom: \"20px\",\n color: \"#555\",\n backgroundColor: \"#fff !important\",\n boxShadow:\n \"0 4px 18px 0px rgba(0, 0, 0, 0.12), 0 7px 10px -5px rgba(0, 0, 0, 0.15)\"\n },\n drawerPaper: {\n border: \"none\",\n bottom: \"0\",\n transitionProperty: \"top, bottom, width\",\n transitionDuration: \".2s, .2s, .35s\",\n transitionTimingFunction: \"linear, linear, ease\",\n width: drawerWidth,\n ...boxShadow,\n position: \"fixed\",\n display: \"block\",\n top: \"0\",\n height: \"100vh\",\n right: \"0\",\n left: \"auto\",\n visibility: \"visible\",\n overflowY: \"visible\",\n borderTop: \"none\",\n textAlign: \"left\",\n paddingRight: \"0px\",\n paddingLeft: \"0\",\n ...transition\n }\n};\n\nexport default headerStyle;\n","import React from \"react\";\n// nodejs library that concatenates classes\nimport classNames from \"classnames\";\n// nodejs library to set properties for components\nimport PropTypes from \"prop-types\";\n// @material-ui/core components\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport AppBar from \"@material-ui/core/AppBar\";\nimport Toolbar from \"@material-ui/core/Toolbar\";\nimport IconButton from \"@material-ui/core/IconButton\";\nimport Button from \"@material-ui/core/Button\";\nimport Hidden from \"@material-ui/core/Hidden\";\nimport Drawer from \"@material-ui/core/Drawer\";\n// @material-ui/icons\nimport Menu from \"@material-ui/icons/Menu\";\n// core components\nimport styles from \"assets/jss/material-kit-react/components/headerStyle.js\";\n\nconst useStyles = makeStyles(styles);\n\nexport default function Header(props) {\n const classes = useStyles();\n const [mobileOpen, setMobileOpen] = React.useState(false);\n React.useEffect(() => {\n if (props.changeColorOnScroll) {\n window.addEventListener(\"scroll\", headerColorChange);\n }\n return function cleanup() {\n if (props.changeColorOnScroll) {\n window.removeEventListener(\"scroll\", headerColorChange);\n }\n };\n });\n const handleDrawerToggle = () => {\n setMobileOpen(!mobileOpen);\n };\n const headerColorChange = () => {\n const { color, changeColorOnScroll } = props;\n const windowsScrollTop = window.pageYOffset;\n if (windowsScrollTop > changeColorOnScroll.height) {\n document.body\n .getElementsByTagName(\"header\")[0]\n .classList.remove(classes[color]);\n document.body\n .getElementsByTagName(\"header\")[0]\n .classList.add(classes[changeColorOnScroll.color]);\n } else {\n document.body\n .getElementsByTagName(\"header\")[0]\n .classList.add(classes[color]);\n document.body\n .getElementsByTagName(\"header\")[0]\n .classList.remove(classes[changeColorOnScroll.color]);\n }\n };\n const { color, rightLinks, leftLinks, brand, fixed, absolute } = props;\n const appBarClasses = classNames({\n [classes.appBar]: true,\n [classes[color]]: color,\n [classes.absolute]: absolute,\n [classes.fixed]: fixed\n });\n const brandComponent = ;\n return (\n \n \n {leftLinks !== undefined ? brandComponent : null}\n
\n {leftLinks !== undefined ? (\n \n {leftLinks}\n \n ) : (\n brandComponent\n )}\n
\n \n {rightLinks}\n \n \n \n \n \n \n \n \n \n
\n {leftLinks}\n {rightLinks}\n
\n \n
\n \n );\n}\n\nHeader.defaultProp = {\n color: \"white\"\n};\n\nHeader.propTypes = {\n color: PropTypes.oneOf([\n \"primary\",\n \"info\",\n \"success\",\n \"warning\",\n \"danger\",\n \"transparent\",\n \"white\",\n \"rose\",\n \"dark\"\n ]),\n rightLinks: PropTypes.node,\n leftLinks: PropTypes.node,\n brand: PropTypes.string,\n fixed: PropTypes.bool,\n absolute: PropTypes.bool,\n // this will cause the sidebar to change the color from\n // props.color (see above) to changeColorOnScroll.color\n // when the window.pageYOffset is heigher or equal to\n // changeColorOnScroll.height and then when it is smaller than\n // changeColorOnScroll.height change it back to\n // props.color (see above)\n changeColorOnScroll: PropTypes.shape({\n height: PropTypes.number.isRequired,\n color: PropTypes.oneOf([\n \"primary\",\n \"info\",\n \"success\",\n \"warning\",\n \"danger\",\n \"transparent\",\n \"white\",\n \"rose\",\n \"dark\"\n ]).isRequired\n })\n};\n","const tooltipsStyle = {\n tooltip: {\n padding: \"10px 15px\",\n minWidth: \"130px\",\n color: \"#555555\",\n lineHeight: \"1.7em\",\n background: \"#FFFFFF\",\n border: \"none\",\n borderRadius: \"3px\",\n boxShadow:\n \"0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12), 0 5px 5px -3px rgba(0, 0, 0, 0.2)\",\n maxWidth: \"200px\",\n textAlign: \"center\",\n fontFamily: '\"Helvetica Neue\",Helvetica,Arial,sans-serif',\n fontSize: \"0.875em\",\n fontStyle: \"normal\",\n fontWeight: \"400\",\n textShadow: \"none\",\n textTransform: \"none\",\n letterSpacing: \"normal\",\n wordBreak: \"normal\",\n wordSpacing: \"normal\",\n wordWrap: \"normal\",\n whiteSpace: \"normal\",\n lineBreak: \"auto\"\n }\n};\n\nexport default tooltipsStyle;\n","import { defaultFont } from \"assets/jss/material-kit-react.js\";\n\nimport tooltip from \"assets/jss/material-kit-react/tooltipsStyle.js\";\n\nconst headerLinksStyle = theme => ({\n list: {\n ...defaultFont,\n fontSize: \"14px\",\n margin: 0,\n paddingLeft: \"0\",\n listStyle: \"none\",\n paddingTop: \"0\",\n paddingBottom: \"0\",\n color: \"inherit\"\n },\n listItem: {\n float: \"left\",\n color: \"inherit\",\n position: \"relative\",\n display: \"block\",\n width: \"auto\",\n margin: \"0\",\n padding: \"0\",\n [theme.breakpoints.down(\"sm\")]: {\n width: \"100%\",\n \"&:after\": {\n width: \"calc(100% - 30px)\",\n content: '\"\"',\n display: \"block\",\n height: \"1px\",\n marginLeft: \"15px\",\n backgroundColor: \"#e5e5e5\"\n }\n }\n },\n listItemText: {\n padding: \"0 !important\"\n },\n navLink: {\n color: \"#fff\",\n position: \"relative\",\n padding: \"0.9375rem\",\n fontWeight: \"400\",\n fontSize: \"12px\",\n textTransform: \"uppercase\",\n borderRadius: \"3px\",\n lineHeight: \"20px\",\n textDecoration: \"none\",\n margin: \"0px\",\n display: \"inline-flex\",\n \"&:hover,&:visited,&:focus\": {\n color: \"#fff\",\n background: \"rgba(200, 200, 200, 0.2)\"\n },\n [theme.breakpoints.down(\"sm\")]: {\n width: \"calc(100% - 30px)\",\n marginLeft: \"15px\",\n marginBottom: \"8px\",\n marginTop: \"8px\",\n textAlign: \"left\",\n \"& > span:first-child\": {\n justifyContent: \"flex-start\"\n }\n }\n },\n notificationNavLink: {\n color: \"inherit\",\n padding: \"0.9375rem\",\n fontWeight: \"400\",\n fontSize: \"12px\",\n textTransform: \"uppercase\",\n lineHeight: \"20px\",\n textDecoration: \"none\",\n margin: \"0px\",\n display: \"inline-flex\",\n top: \"4px\"\n },\n registerNavLink: {\n top: \"3px\",\n position: \"relative\",\n fontWeight: \"400\",\n fontSize: \"12px\",\n textTransform: \"uppercase\",\n lineHeight: \"20px\",\n textDecoration: \"none\",\n margin: \"0px\",\n display: \"inline-flex\"\n },\n navLinkActive: {\n color: \"#fff\",\n backgroundColor: \"rgba(255, 255, 255, 0.1)\"\n },\n icons: {\n width: \"20px\",\n height: \"20px\",\n marginRight: \"3px\"\n },\n socialIcons: {\n position: \"relative\",\n fontSize: \"20px !important\",\n marginRight: \"4px\"\n },\n dropdownLink: {\n \"&,&:hover,&:focus\": {\n color: \"inherit\",\n textDecoration: \"none\",\n display: \"block\",\n padding: \"10px 20px\"\n }\n },\n ...tooltip,\n marginRight5: {\n marginRight: \"5px\"\n }\n});\n\nexport default headerLinksStyle;\n","import { container, title } from \"assets/jss/material-kit-react.js\";\nimport headerLinksStyle from \"assets/jss/material-kit-react/components/headerLinksStyle.js\";\n\nconst navbarsStyle = theme => ({\n section: {\n padding: \"70px 0\",\n paddingTop: \"0\"\n },\n container,\n title: {\n ...title,\n marginTop: \"30px\",\n minHeight: \"32px\",\n textDecoration: \"none\"\n },\n navbar: {\n marginBottom: \"-20px\",\n zIndex: \"100\",\n position: \"relative\",\n overflow: \"hidden\",\n \"& header\": {\n borderRadius: \"0\"\n }\n },\n navigation: {\n backgroundPosition: \"center center\",\n backgroundSize: \"cover\",\n marginTop: \"0\",\n minHeight: \"740px\"\n },\n formControl: {\n margin: \"0 !important\",\n paddingTop: \"0\"\n },\n inputRootCustomClasses: {\n margin: \"0!important\"\n },\n searchIcon: {\n width: \"20px\",\n height: \"20px\",\n color: \"inherit\"\n },\n ...headerLinksStyle(theme),\n img: {\n width: \"40px\",\n height: \"40px\",\n borderRadius: \"50%\"\n },\n imageDropdownButton: {\n padding: \"0px\",\n top: \"4px\",\n borderRadius: \"50%\",\n marginLeft: \"5px\"\n }\n});\n\nexport default navbarsStyle;\n","import React from 'react';\nimport logo from '../../img/logo.png';\nimport { Link } from 'react-router-dom';\n\nexport default function HeaderLogo()\n{\n return(\n <>\n
\n \n \"logo\"\n \n
\n \n )\n}\n","let user = JSON.parse(localStorage.getItem('user'));\nexport default user;","import React from 'react';\nimport Header from \"components/Header/Header.js\";\nimport ListItem from \"@material-ui/core/ListItem\";\nimport List from \"@material-ui/core/List\";\nimport Button from \"components/CustomButtons/Button.js\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport { Link } from 'react-router-dom';\nimport styles from \"assets/jss/material-kit-react/views/componentsSections/navbarsStyle.js\";\nimport HeaderLogo from 'components/common/headerLogo';\nimport user from '../../_helpers/user.js';\n\nconst useStyles = makeStyles(styles);\n\nexport default function TopBanner(){\n const classes = useStyles();\n return(\n \n \n \n \n \n }\n rightLinks={\n \n \n \n Products\n \n \n \n {/* \n \n \n Customize\n \n \n */}\n \n \n \n How It Works\n \n \n \n {user !== null && user.isAdmin && \n \n \n \n Admin\n \n \n \n }\n \n {user === null && \n \n Login\n \n }\n {user !== null && \n \n Logout\n \n }\n \n \n }\n />\n )\n}\n","import React, { useState } from 'react';\nimport { Link } from 'react-router-dom';\nimport Card from '@material-ui/core/Card';\nimport CardActionArea from '@material-ui/core/CardActionArea';\nimport CardActions from '@material-ui/core/CardActions';\nimport CardContent from '@material-ui/core/CardContent';\nimport CardMedia from '@material-ui/core/CardMedia';\nimport Button from '@material-ui/core/Button';\nimport { makeStyles } from '@material-ui/core/styles';\n\nconst useStyles = makeStyles({\n root: {\n maxWidth: 300,\n },\n media: {\n height: 300,\n width: 300,\n },\n card: {\n margin: 15\n },\n title:\n {\n color: '#222000',\n fontSize: '1.3em',\n maxWidth: 260,\n textAlign: 'center',\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n lineHeight: '1.3em',\n height: '2.6em'\n },\n price: {\n color: 'orange',\n },\n links: {\n color: '#00acc1',\n fontWeight: 'bold',\n fontSize: '0.9em',\n \"&:hover\": {\n boxShadow:\n \"0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 10px -5px rgba(33, 33, 33, 0.4)\",\n backgroundColor: \"#00acc1\",\n color: \"#fff\",\n content: 'buy'\n }\n },\n cardActions:{\n float: 'right'\n }\n\n });\n\nexport default function ProductListItem(props)\n{\n const classes = useStyles();\n\n function customize(e)\n {\n return false;\n }\n const [selectedImage] = useState(props.product.images[0].imageUrl);\n\n return (\n <>\n\n \n \n \n \n \n
\n {props.product.name}\n
\n
\n
\n \n {/* \n \n \n \n \n */}\n
\n {/*
\n
\n {props.product.name}\n
\n
\n {props.product.images.map((image) => \n
\n \"{image.imageUrl}\" handleImageClick(image)} />\n
\n )}\n
\n
\n
${props.product.price}
\n
{props.product.name}
\n
\n
*/}\n\n \n )\n}","import Swagger from 'swagger-client';\n\nexport const REQUEST_PRODUCTS = 'REQUEST_PRODUCTS';\nexport const RECEIVE_PRODUCTS = 'RECEIVE_PRODUCTS';\nexport const REQUEST_PRODUCT = 'REQUEST_PRODUCT';\nexport const RECEIVE_PRODUCT = 'RECEIVE_PRODUCT';\nexport const REQUEST_ALL_PRODUCTS = 'REQUEST_ALL_PRODUCTS';\nexport const RECEIVE_ALL_PRODUCTS = 'RECEIVE_ALL_PRODUCTS';\nexport const RECEIVE_PRODUCT_COUNT = 'RECEIVE_PRODUCT_COUNT';\nexport const REQUEST_SEARCH_RESULTS = 'REQUEST_SEARCH_RESULTS';\nexport const RECEIVE_SEARCH_RESULTS = 'RECEIVE_SEARCH_RESULTS';\nexport const RECEIVE_CATEGORIES = 'RECEIVE_CATEGORIES';\nexport const REQUEST_CATEGORIES = 'REQUEST_CATEGORIES';\nexport const REQUEST_PRODUCT_UPDATE = 'REQUEST_PRODUCT_UPDATE';\nexport const RECEIVE_PRODUCT_UPDATE = 'RECEIEVE_PRODUCT_UPDATE';\n\nexport const actionCreators = {\n requestProducts: (offset, size, page, sort, dir) => async (dispatch, getState) => {\n dispatch({ type: REQUEST_PRODUCTS });\n const BASEURL = process.env.REACT_APP_API_URL;\n Swagger({\n url: BASEURL + '/swagger/v1/swagger.json',\n requestInterceptor: (req) => {\n if (localStorage.getItem('user') != null)\n {\n req.headers[\"Authorization\"] = 'Bearer ' + JSON.parse(localStorage.getItem('user')).token;\n }\n return req;\n }\n })\n .then(client => {\n console.log(client.apis);\n return client.apis.Products.get_products({offset: offset, size: size, sortby: sort, sort: dir, categoryids: getState().productsReducer.categoryids});\n })\n .then(response => {\n return JSON.parse(response.text);\n })\n .then(response => {\n dispatch({type: RECEIVE_PRODUCTS, products: response.products, current_offset: offset, current_pagesize: size, current_page: page, current_sort: sort, current_sort_dir: dir, product_count: response.productCount });\n });\n },\n updateProducts: (categories) => async (dispatch, getState) => {\n alert(categories.toString());\n dispatch({ type: REQUEST_PRODUCT_UPDATE });\n \n const BASEURL = process.env.REACT_APP_API_URL;\n\n Swagger(BASEURL + '/swagger/v1/swagger.json')\n .then(client => {\n return client.apis.Products.get_products({offset: getState().productsReducer.current_offset, size: getState().productsReducer.current_size, sortby: getState().productsReducer.current_sort, sort: getState().productsReducer.current_sort_direction, categoryids: categories.join() });\n })\n .then(response => {\n return JSON.parse(response.text);\n })\n .then(response => {\n dispatch({type: RECEIVE_PRODUCT_UPDATE, products: response.products, categoryids: categories, product_count: response.productCount });\n });\n },\n requestAllProducts: (offset, size) => async (dispatch, getState) => {\n dispatch({ type: REQUEST_PRODUCTS });\n\n const BASEURL = process.env.REACT_APP_API_URL;\n\n Swagger(BASEURL + '/swagger/v1/swagger.json')\n .then(client => {\n return client.apis.Products.get_products_all();\n })\n .then(response => {\n return JSON.parse(response.text);\n })\n .then(response => {\n dispatch({type: RECEIVE_ALL_PRODUCTS, products: response, product_count: response.length });\n });\n },\n requestProduct: (url) => async (dispatch, getState) => {\n dispatch({ type: REQUEST_PRODUCT });\n\n if (getState().productsReducer.products.filter(x => x.url === url).length > 0)\n {\n let product = getState().productsReducer.products.filter(x => x.url === url)[0];\n dispatch({type: RECEIVE_PRODUCT, product: product});\n }else{\n const BASEURL = process.env.REACT_APP_API_URL;\n\n Swagger(BASEURL + '/swagger/v1/swagger.json')\n .then(client => {\n return client.apis.Products.get_products__url_({url: url});\n })\n .then(response => {\n return JSON.parse(response.text);\n })\n .then(response => {\n dispatch({type: RECEIVE_PRODUCT, product: response });\n });\n }\n },\n requestSearchResults: (searchTerm, offset, size, page) => async (dispatch, getState) => {\n dispatch({ type: REQUEST_SEARCH_RESULTS, searchTerm: searchTerm });\n\n const BASEURL = process.env.REACT_APP_API_URL;\n\n Swagger(BASEURL + '/swagger/v1/swagger.json')\n .then(client => {\n return client.apis.Search.get_search({searchTerm: searchTerm, offset: offset, size: size});\n })\n .then(response => {\n return JSON.parse(response.text);\n })\n .then(response => {\n dispatch({type: RECEIVE_SEARCH_RESULTS, searchResults: response.products, searchResultCount: response.oDataCount, searchTerm: searchTerm, current_offset: offset, current_pagesize: size, current_page: page });\n });\n },\n requestCategories: () => async (dispatch, getState) => {\n dispatch({ type: REQUEST_CATEGORIES });\n\n const BASEURL = process.env.REACT_APP_API_URL;\n\n Swagger(BASEURL + '/swagger/v1/swagger.json')\n .then(client => {\n console.log(client.apis);\n return client.apis.Products.get_products_categories();\n })\n .then(response => {\n return JSON.parse(response.text);\n })\n .then(response => {\n dispatch({type: RECEIVE_CATEGORIES, categories: response });\n });\n }, \n}\n\n","import {\n defaultFont,\n primaryColor,\n primaryBoxShadow,\n infoColor,\n infoBoxShadow,\n successColor,\n successBoxShadow,\n warningColor,\n warningBoxShadow,\n dangerColor,\n dangerBoxShadow,\n roseColor,\n roseBoxShadow\n} from \"assets/jss/material-kit-react.js\";\n\nconst customDropdownStyle = theme => ({\n popperClose: {\n pointerEvents: \"none\"\n },\n dropdown: {\n borderRadius: \"3px\",\n border: \"0\",\n boxShadow: \"0 2px 5px 0 rgba(0, 0, 0, 0.26)\",\n top: \"100%\",\n zIndex: \"1000\",\n minWidth: \"160px\",\n padding: \"5px 0\",\n margin: \"2px 0 0\",\n fontSize: \"14px\",\n textAlign: \"left\",\n listStyle: \"none\",\n backgroundColor: \"#fff\",\n backgroundClip: \"padding-box\"\n },\n menuList: {\n padding: \"0\"\n },\n popperResponsive: {\n zIndex: \"1200\",\n [theme.breakpoints.down(\"sm\")]: {\n zIndex: \"1640\",\n position: \"static\",\n float: \"none\",\n width: \"auto\",\n marginTop: \"0\",\n backgroundColor: \"transparent\",\n border: \"0\",\n boxShadow: \"none\",\n color: \"black\"\n }\n },\n dropdownItem: {\n ...defaultFont,\n fontSize: \"13px\",\n padding: \"10px 20px\",\n margin: \"0 5px\",\n borderRadius: \"2px\",\n position: \"relative\",\n transition: \"all 150ms linear\",\n display: \"block\",\n clear: \"both\",\n fontWeight: \"400\",\n height: \"fit-content\",\n color: \"#333\",\n whiteSpace: \"nowrap\",\n minHeight: \"unset\"\n },\n blackHover: {\n \"&:hover\": {\n boxShadow:\n \"0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 10px -5px rgba(33, 33, 33, 0.4)\",\n backgroundColor: \"#212121\",\n color: \"#fff\"\n }\n },\n primaryHover: {\n \"&:hover\": {\n backgroundColor: primaryColor,\n color: \"#FFFFFF\",\n ...primaryBoxShadow\n }\n },\n infoHover: {\n \"&:hover\": {\n backgroundColor: infoColor,\n color: \"#FFFFFF\",\n ...infoBoxShadow\n }\n },\n successHover: {\n \"&:hover\": {\n backgroundColor: successColor,\n color: \"#FFFFFF\",\n ...successBoxShadow\n }\n },\n warningHover: {\n \"&:hover\": {\n backgroundColor: warningColor,\n color: \"#FFFFFF\",\n ...warningBoxShadow\n }\n },\n dangerHover: {\n \"&:hover\": {\n backgroundColor: dangerColor,\n color: \"#FFFFFF\",\n ...dangerBoxShadow\n }\n },\n roseHover: {\n \"&:hover\": {\n backgroundColor: roseColor,\n color: \"#FFFFFF\",\n ...roseBoxShadow\n }\n },\n dropdownItemRTL: {\n textAlign: \"right\"\n },\n dropdownDividerItem: {\n margin: \"5px 0\",\n backgroundColor: \"rgba(0, 0, 0, 0.12)\",\n height: \"1px\",\n overflow: \"hidden\"\n },\n buttonIcon: {\n width: \"20px\",\n height: \"20px\"\n },\n caret: {\n transition: \"all 150ms ease-in\",\n display: \"inline-block\",\n width: \"0\",\n height: \"0\",\n marginLeft: \"4px\",\n verticalAlign: \"middle\",\n borderTop: \"4px solid\",\n borderRight: \"4px solid transparent\",\n borderLeft: \"4px solid transparent\"\n },\n caretActive: {\n transform: \"rotate(180deg)\"\n },\n caretRTL: {\n marginRight: \"4px\"\n },\n dropdownHeader: {\n display: \"block\",\n padding: \"0.1875rem 1.25rem\",\n fontSize: \"0.75rem\",\n lineHeight: \"1.428571\",\n color: \"#777\",\n whiteSpace: \"nowrap\",\n fontWeight: \"inherit\",\n marginTop: \"10px\",\n minHeight: \"unset\",\n \"&:hover,&:focus\": {\n backgroundColor: \"transparent\",\n cursor: \"auto\"\n }\n },\n noLiPadding: {\n padding: \"0\"\n }\n});\n\nexport default customDropdownStyle;\n","import React, { useEffect, useState } from \"react\";\n// nodejs library that concatenates classes\nimport classNames from \"classnames\";\n// nodejs library to set properties for components\nimport PropTypes from \"prop-types\";\n\n// @material-ui/core components\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport MenuItem from \"@material-ui/core/MenuItem\";\nimport MenuList from \"@material-ui/core/MenuList\";\nimport ClickAwayListener from \"@material-ui/core/ClickAwayListener\";\nimport Paper from \"@material-ui/core/Paper\";\nimport Grow from \"@material-ui/core/Grow\";\nimport Divider from \"@material-ui/core/Divider\";\nimport Icon from \"@material-ui/core/Icon\";\nimport Popper from \"@material-ui/core/Popper\";\n\n// core components\nimport Button from \"components/CustomButtons/Button.js\";\n\nimport styles from \"assets/jss/material-kit-react/components/customDropdownStyle.js\";\n\nconst useStyles = makeStyles(styles);\n\nexport default function CustomDropdown(props) {\n const [anchorEl, setAnchorEl] = React.useState(null);\n const handleClick = event => {\n if (anchorEl && anchorEl.contains(event.target)) {\n setAnchorEl(null);\n } else {\n setAnchorEl(event.currentTarget);\n }\n };\n const handleClose = param => {\n setAnchorEl(null);\n if (props && props.onClick) {\n props.onClick(param);\n }\n };\n const handleCloseAway = event => {\n if (anchorEl.contains(event.target)) {\n return;\n }\n setAnchorEl(null);\n };\n const classes = useStyles();\n \n const {\n buttonText,\n buttonIcon,\n backgroundColor,\n dropdownList,\n buttonProps,\n dropup,\n dropdownHeader,\n caret,\n hoverColor,\n left,\n rtlActive,\n noLiPadding\n } = props;\n const caretClasses = classNames({\n [classes.caret]: true,\n [classes.caretActive]: Boolean(anchorEl),\n [classes.caretRTL]: rtlActive\n });\n const dropdownItem = classNames({\n [classes.dropdownItem]: true,\n [classes[hoverColor + \"Hover\"]]: true,\n [classes.noLiPadding]: noLiPadding,\n [classes.dropdownItemRTL]: rtlActive\n });\n let icon = null;\n switch (typeof buttonIcon) {\n case \"object\":\n icon = ;\n break;\n case \"string\":\n icon = {props.buttonIcon};\n break;\n default:\n icon = null;\n break;\n }\n return (\n
\n
\n \n {icon}\n {buttonText !== undefined ? buttonText : null}\n {caret ? : null}\n \n
\n \n {() => (\n \n \n \n \n {dropdownHeader !== undefined ? (\n handleClose(dropdownHeader)}\n className={classes.dropdownHeader}\n >\n {dropdownHeader}\n \n ) : null}\n {dropdownList.map((prop, key) => {\n if (prop.divider) {\n return (\n handleClose(\"divider\")}\n className={classes.dropdownDividerItem}\n />\n );\n }\n return (\n handleClose(prop.text)}\n className={dropdownItem}\n selected={prop.selected}\n >\n {prop.text}\n \n );\n })}\n \n \n \n \n )}\n \n
\n );\n}\n\nCustomDropdown.defaultProps = {\n caret: true,\n hoverColor: \"primary\"\n};\n\nCustomDropdown.propTypes = {\n hoverColor: PropTypes.oneOf([\n \"black\",\n \"primary\",\n \"info\",\n \"success\",\n \"warning\",\n \"danger\",\n \"rose\"\n ]),\n buttonText: PropTypes.node,\n buttonIcon: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),\n dropdownList: PropTypes.array,\n buttonProps: PropTypes.object,\n dropup: PropTypes.bool,\n dropdownHeader: PropTypes.node,\n rtlActive: PropTypes.bool,\n caret: PropTypes.bool,\n left: PropTypes.bool,\n noLiPadding: PropTypes.bool,\n // function that retuns the selected item\n onClick: PropTypes.func\n};\n","//@flow\nimport React, { useState, useEffect } from 'react';\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport ProductListItem from './productListItem';\nimport { connect } from 'react-redux';\nimport { bindActionCreators } from 'redux';\nimport { actionCreators } from '../../_actions/actions';\nimport Pagination from '../../components/pagination/Pagination';\nimport GridContainer from 'components/grid/GridContainer';\nimport Loading from 'components/common/loading';\nimport Header from \"components/Header/Header.js\";\nimport List from \"@material-ui/core/List\";\nimport ListItem from \"@material-ui/core/ListItem\";\nimport CustomDropdown from \"components/CustomDropdown/CustomDropdown.js\";\n\nimport styles from \"assets/jss/material-kit-react/views/componentsSections/navbarsStyle.js\";\n\nconst myStyles = makeStyles({\n header:\n {\n marginTop: 15,\n width: '100%',\n padding: 10,\n marginLeft: '0px !important'\n }\n})\nconst useStyles = makeStyles(styles);\n\nfunction ProductListing(props)\n{\n const classes = useStyles();\n const myClasses = myStyles();\n const [pages, setPages] = useState([]);\n\n useEffect(() => {\n props.requestProducts(props.current_offset, props.current_pagesize, props.current_page, props.current_sort, props.current_sort_dir);\n }, [])\n\n useEffect(() => {\n let count = 0;\n if (props.searchResultCount !== undefined)\n {\n count = props.searchResultCount;\n }else\n {\n count = props.product_count;\n }\n\n const _pages = [];\n _pages.push({text: 'PREV', onClick: () => changePage(props.current_page - 1)});\n let totalPages = Math.ceil(count/props.current_pagesize);\n let pageRangeAdded = false;\n if (props.current_page < 15){\n for (let i=1;i<=totalPages;i++)\n {\n if (((totalPages > 15 && (i <= 15 || i > totalPages - 3)) || (totalPages < 15)))\n {\n _pages.push({text: i, active: i === props.current_page ? true : false, onClick: () => changePage(i)}); \n }else if (!pageRangeAdded){\n _pages.push({text: '...', onClick: () => changePage(i)});\n pageRangeAdded = true;\n }\n }\n }else if (props.current_page >= 15)\n {\n _pages.push({text: 1, onClick: () => changePage(1)}); \n _pages.push({text: '...', onClick: () => changePage(2)});\n for (let i=14;i<=totalPages;i++)\n {\n _pages.push({text: i, active: i === props.current_page ? true : false, onClick: () => changePage(i)}); \n }\n }\n _pages.push({text: 'NEXT', onClick: () => changePage(props.current_page + 1)});\n setPages(_pages);\n }, [props.current_page, props.current_pagesize, props.current_offset, props.product_count, props.searchResultCount, props.categoryids]);\n\n const changePage = (page) =>\n {\n let count = 0;\n if (props.searchResultCount !== undefined)\n {\n count = props.searchResultCount;\n }else\n {\n count = props.product_count;\n }\n\n let totalPages = Math.ceil(count/props.current_pagesize);\n if (page > totalPages)\n {\n page = totalPages;\n if (props.searchResultCount !== undefined)\n {\n props.requestSearchResults(props.searchTerm, props.current_offset, props.current_pagesize, page);\n }else{\n props.requestProducts(props.current_offset, props.current_pagesize, page, props.current_sort, props.current_sort_dir);\n }\n }else if (page < 1)\n {\n page = 1;\n if (props.searchResultCount !== undefined)\n {\n props.requestSearchResults(props.searchTerm, 0, props.current_pagesize, page);\n }else{\n props.requestProducts(0, props.current_pagesize, page, props.current_sort, props.current_sort_dir); \n }\n }else{\n let offset = ((page * props.current_pagesize) - props.current_pagesize);\n if (props.searchResultCount !== undefined)\n {\n props.requestSearchResults(props.searchTerm, offset, props.current_pagesize, page);\n }else\n {\n props.requestProducts(offset, props.current_pagesize, page, props.current_sort, props.current_sort_dir); \n }\n }\n }\n\n const changeView = (pagesize) =>\n {\n if (props.searchResultCount !== undefined)\n {\n props.requestSearchResults(props.searchTerm, props.current_offset, pagesize);\n }else{\n props.requestProducts(props.current_offset, pagesize, props.current_page, props.current_sort, props.current_sort_dir);\n }\n \n }\n\n const changeSort = (sort) =>\n {\n if (sort === 'Price (Lowest to Highest)')\n {\n props.requestProducts(0, props.current_pagesize, 1, '1', 'asc');\n }else if (sort === 'Price (Highest to Lowest)')\n {\n props.requestProducts(0, props.current_pagesize, 1, '1', 'desc');\n }else if (sort === 'Name (Ascending)')\n {\n props.requestProducts(0, props.current_pagesize, 1, '2', 'asc');\n }else if (sort === 'Name (Descending)'){\n props.requestProducts(0, props.current_pagesize, 1, '2', 'desc');\n }\n\n }\n\n return (\n <>\n \n
\n \n {/* \n e.preventDefault()}\n color=\"transparent\"\n >\n Link\n \n */}\n \n \n \n \n \n \n \n }\n />\n
\n
\n \n \n {(props.products.length > 0 || props.searchResults.length > 0) && \n \n }\n \n {props.loading && \n <>\n \n \n \n \n }\n {!props.loading && \n \n \n {props.products !== undefined && props.products.map((product) => \n \n )}\n {props.products.length === 0 && props.searchResults.length === 0 && !props.isProductsLoading &&\n

No results

\n }\n
\n
\n }\n {!props.loading && \n
\n {props.searchResults !== undefined && props.searchResults.map((searchResult) => \n \n )}\n
\n } \n \n
\n {(props.products.length > 0 || props.searchResults.length > 0) && \n \n }\n
\n
\n
\n \n )\n}\n\nconst mapStateToProps = state => {\n return {\n products: state.productsReducer.products,\n searchResults: state.productsReducer.searchResults,\n searchResultCount: state.productsReducer.searchResultCount,\n categoryids: state.productsReducer.categoryids,\n searchTerm: state.productsReducer.searchTerm,\n loading: state.productsReducer.isProductsLoading,\n product_count: state.productsReducer.product_count,\n current_page: state.productsReducer.current_page === undefined ? 1 : state.productsReducer.current_page,\n current_pagesize: state.productsReducer.current_pagesize === undefined ? '20' : state.productsReducer.current_pagesize,\n current_offset: state.productsReducer.current_offset === undefined ? 0 : state.productsReducer.current_offset,\n current_sort: state.productsReducer.current_sort === undefined ? '3' : state.productsReducer.current_sort,\n current_sort_dir: state.productsReducer.current_sort_dir === undefined ? 'asc' : state.productsReducer.current_sort_dir\n }\n}\n\nconst mapDispatchToProps = (dispatch) => \n bindActionCreators({...actionCreators}, dispatch)\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ProductListing);","import React, { useState, useEffect } from 'react';\nimport Card from '@material-ui/core/Card';\nimport CardActionArea from '@material-ui/core/CardActionArea';\nimport CardActions from '@material-ui/core/CardActions';\nimport CardContent from '@material-ui/core/CardContent';\nimport Button from '@material-ui/core/Button';\nimport { makeStyles } from '@material-ui/core/styles';\n\nconst useStyles = makeStyles({\n search:\n {\n width: 300,\n marginTop: 20,\n color: '#00acc1'\n },\n searchIcon:\n {\n color: '#00acc1',\n fontSize: '2em'\n },\n root: {\n maxWidth: 300,\n },\n card: {\n margin: 15,\n backgroundColor: '#ffffff'\n },\n title:\n {\n fontSize: '1em',\n textAlign: 'center',\n color: '#000',\n fontWeight: 400,\n letterSpacing: '0.01071em',\n opacity: 0.54\n },\n price: {\n color: 'orange',\n },\n links: {\n color: '#00acc1',\n fontWeight: 'bold',\n fontSize: '0.9em',\n \"&:hover\": {\n boxShadow:\n \"0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 10px -5px rgba(33, 33, 33, 0.4)\",\n backgroundColor: \"#00acc1\",\n color: \"#fff\"\n }\n },\n cardActions:{\n float: 'right'\n },\n resultsText:{\n fontSize: '12px',\n color: '#9c27b0'\n }\n});\n\nexport default function InfoCard(props)\n{\n\n const classes = makeStyles(useStyles);\n\n const [expanded, setExpanded] = useState(false);\n const [closed, setClosed] = useState(false);\n\n useEffect(() => {\n if (localStorage.getItem(props.key) === 'true')\n {\n setClosed(true);\n }\n }, []);\n\n function closeCard(e)\n {\n setClosed(true);\n localStorage.setItem(props.key, true);\n }\n\n function showMore()\n {\n setExpanded(true);\n }\n\n return (\n <>\n {!closed && !expanded && \n \n \n \n
\n You are viewing products we have previously made. You can purchase these directly or customize them to your liking.\n
\n
\n
\n \n \n \n \n
\n }\n {expanded && !closed && \n \n \n \n
\n You are viewing products we have previously made. You can purchase these directly or customize them to your liking.\n
\n

This is how it works. This is how it works. This is how it works. This is how it works. This is how it works. This is how it works. \n This is how it works. This is how it works. This is how it works. This is how it works. This is how it works. This is how it works. \n

\n

This is how it works. This is how it works. This is how it works. This is how it works. This is how it works. This is how it works. \n This is how it works. This is how it works. This is how it works. This is how it works. This is how it works. This is how it works. \n

\n

This is how it works. This is how it works. This is how it works. This is how it works. This is how it works. This is how it works. \n This is how it works. This is how it works. This is how it works. This is how it works. This is how it works. This is how it works. \n

\n
\n
\n \n \n \n
\n }\n \n )\n}","import React, { useState, useEffect } from 'react';\nimport SearchIcon from '@material-ui/icons/Search';\nimport { makeStyles } from '@material-ui/core/styles';\nimport TextField from '@material-ui/core/TextField';\nimport { connect } from 'react-redux';\nimport { bindActionCreators } from 'redux';\nimport InfoCard from '../popups/infoCard';\nimport { actionCreators } from '../../_actions/actions';\n\nconst useStyles = makeStyles({\n search:\n {\n width: 300,\n marginTop: 20,\n color: '#00acc1'\n },\n searchIcon:\n {\n color: '#00acc1',\n fontSize: '2em'\n },\n root: {\n maxWidth: 300,\n },\n price: {\n color: 'orange',\n },\n resultsText:{\n fontSize: '12px',\n color: '#9c27b0'\n }\n});\n\nfunction ProductsFilter(props)\n{\n const [searchTerm, setSearchTerm] = useState();\n\n function search()\n {\n props.requestSearchResults(searchTerm);\n }\n\n const searchChange = (e) => {\n setSearchTerm(e.target.value);\n }\n \n const searchKeyPress = (e) => {\n if (e.keyCode === 13)\n {\n props.requestSearchResults(searchTerm);\n }\n }\n\n const classes = useStyles();\n return (\n <>\n \n )\n }} />\n\n {props.searchResults.length > 0 && \n
\n There {props.searchResultCount === '1' ? 'is' : 'are'} {props.searchResultCount} {props.searchResultCount === '1' ? 'result' : 'results'}\n
\n }\n\n
\n \n
\n \n )\n}\n\nconst mapStateToProps = state => {\n return {\n searchResults: state.productsReducer.searchResults,\n searchResultCount: state.productsReducer.searchResultCount,\n products: state.productsReducer.products\n }\n}\n\nconst mapDispatchToProps = (dispatch) => \n bindActionCreators({...actionCreators}, dispatch)\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ProductsFilter);","import {\n primaryColor,\n dangerColor,\n roseColor,\n grayColor\n} from \"assets/jss/material-kit-react.js\";\n\nconst customCheckboxRadioSwitch = {\n checkRoot: {\n padding: \"12px\",\n \"&:hover\": {\n backgroundColor: \"unset\"\n }\n },\n radioRoot: {\n padding: \"12px\",\n \"&:hover\": {\n backgroundColor: \"unset\"\n }\n },\n labelRoot: {\n marginLeft: \"-14px\"\n },\n checkboxAndRadio: {\n position: \"relative\",\n display: \"block\",\n marginTop: \"10px\",\n marginBottom: \"10px\"\n },\n checkboxAndRadioHorizontal: {\n position: \"relative\",\n display: \"block\",\n \"&:first-child\": {\n marginTop: \"10px\"\n },\n \"&:not(:first-child)\": {\n marginTop: \"-14px\"\n },\n marginTop: \"0\",\n marginBottom: \"0\"\n },\n checked: {\n color: primaryColor + \"!important\"\n },\n checkedIcon: {\n width: \"20px\",\n height: \"20px\",\n border: \"1px solid rgba(0, 0, 0, .54)\",\n borderRadius: \"3px\"\n },\n uncheckedIcon: {\n width: \"0px\",\n height: \"0px\",\n padding: \"9px\",\n border: \"1px solid rgba(0, 0, 0, .54)\",\n borderRadius: \"3px\"\n },\n disabledCheckboxAndRadio: {\n opacity: \"0.45\"\n },\n label: {\n cursor: \"pointer\",\n paddingLeft: \"0\",\n color: \"rgba(0, 0, 0, 0.26)\",\n fontSize: \"14px\",\n lineHeight: \"1.428571429\",\n fontWeight: \"400\",\n display: \"inline-flex\",\n transition: \"0.3s ease all\",\n letterSpacing: \"unset\"\n },\n labelHorizontal: {\n color: \"rgba(0, 0, 0, 0.26)\",\n cursor: \"pointer\",\n display: \"inline-flex\",\n fontSize: \"14px\",\n lineHeight: \"1.428571429\",\n fontWeight: \"400\",\n paddingTop: \"39px\",\n marginRight: \"0\",\n \"@media (min-width: 992px)\": {\n float: \"right\"\n }\n },\n labelHorizontalRadioCheckbox: {\n paddingTop: \"22px\"\n },\n labelLeftHorizontal: {\n color: \"rgba(0, 0, 0, 0.26)\",\n cursor: \"pointer\",\n display: \"inline-flex\",\n fontSize: \"14px\",\n lineHeight: \"1.428571429\",\n fontWeight: \"400\",\n paddingTop: \"22px\",\n marginRight: \"0\"\n },\n labelError: {\n color: dangerColor\n },\n radio: {\n color: primaryColor + \"!important\"\n },\n radioChecked: {\n width: \"16px\",\n height: \"16px\",\n border: \"1px solid \" + primaryColor,\n borderRadius: \"50%\"\n },\n radioUnchecked: {\n width: \"0px\",\n height: \"0px\",\n padding: \"7px\",\n border: \"1px solid rgba(0, 0, 0, .54)\",\n borderRadius: \"50%\"\n },\n inlineChecks: {\n marginTop: \"8px\"\n },\n iconCheckbox: {\n height: \"116px\",\n width: \"116px\",\n color: grayColor,\n \"& > span:first-child\": {\n borderWidth: \"4px\",\n borderStyle: \"solid\",\n borderColor: \"#CCCCCC\",\n textAlign: \"center\",\n verticalAlign: \"middle\",\n borderRadius: \"50%\",\n color: \"inherit\",\n margin: \"0 auto 20px\",\n transition: \"all 0.2s\"\n },\n \"&:hover\": {\n color: roseColor,\n \"& > span:first-child\": {\n borderColor: roseColor\n }\n }\n },\n iconCheckboxChecked: {\n color: roseColor,\n \"& > span:first-child\": {\n borderColor: roseColor\n }\n },\n iconCheckboxIcon: {\n fontSize: \"40px\",\n lineHeight: \"111px\"\n },\n switchBase: {\n color: primaryColor + \"!important\"\n },\n switchIcon: {\n boxShadow: \"0 1px 3px 1px rgba(0, 0, 0, 0.4)\",\n color: \"#FFFFFF !important\",\n border: \"1px solid rgba(0, 0, 0, .54)\"\n },\n switchBar: {\n width: \"30px\",\n height: \"15px\",\n backgroundColor: \"rgb(80, 80, 80)\",\n borderRadius: \"15px\",\n opacity: \"0.7!important\"\n },\n switchChecked: {\n \"& + $switchBar\": {\n backgroundColor: \"rgba(156, 39, 176, 1) !important\"\n },\n \"& $switchIcon\": {\n borderColor: \"#9c27b0\"\n }\n },\n switchRoot: {\n height: \"48px\"\n }\n};\n\nexport default customCheckboxRadioSwitch;\n","import { container, title } from \"assets/jss/material-kit-react.js\";\nimport customCheckboxRadioSwitch from \"assets/jss/material-kit-react/customCheckboxRadioSwitch.js\";\n\nconst basicsStyle = {\n sections: {\n padding: \"70px 0\"\n },\n container,\n title: {\n ...title,\n marginTop: \"30px\",\n minHeight: \"32px\",\n textDecoration: \"none\"\n },\n space50: {\n height: \"50px\",\n display: \"block\"\n },\n space70: {\n height: \"70px\",\n display: \"block\"\n },\n icons: {\n width: \"17px\",\n height: \"17px\",\n color: \"#FFFFFF\"\n },\n ...customCheckboxRadioSwitch\n};\n\nexport default basicsStyle;\n","import React, { useEffect, useState } from 'react';\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport { connect } from 'react-redux';\nimport { bindActionCreators } from 'redux';\nimport { actionCreators } from '../../_actions/actions';\nimport Checkbox from \"@material-ui/core/Checkbox\";\nimport FormControlLabel from \"@material-ui/core/FormControlLabel\";\nimport Check from \"@material-ui/icons/Check\";\nimport GridContainer from \"components/grid/GridContainer.js\";\nimport GridItem from \"components/grid/GridItem.js\";\n\nimport styles from \"assets/jss/material-kit-react/views/componentsSections/basicsStyle.js\";\n\nconst useStyles = makeStyles(styles);\n\nexport function ProductCategories(props)\n{\n const classes = useStyles();\n const [selectedCategories, setSelectedCategories] = useState([]);\n const [start, setStart] = useState(false);\n\n const handleToggle = (id) => {\n const currentIndex = selectedCategories.indexOf(id);\n const newChecked = [...selectedCategories];\n\n setStart(true);\n if (currentIndex === -1)\n {\n newChecked.push(id);\n }else{\n newChecked.splice(currentIndex, 1);\n }\n setSelectedCategories(newChecked);\n }\n\n useEffect(() => {\n if (start)\n {\n props.updateProducts(selectedCategories);\n }\n }, [selectedCategories]);\n\n useEffect(() => {\n props.requestCategories();\n }, []);\n\n return (\n \n \n
\n {props.categories !== undefined && \n
\n

Categories

\n {props.categories.map((category) => (\n \n handleToggle(category.id)}\n checkedIcon={}\n icon={}\n classes={{\n checked: classes.checked,\n root: classes.checkRoot\n }}\n />\n }\n classes={{ label: classes.label, root: classes.labelRoot }}\n label={category.categoryName}\n />\n
\n ))\n }\n
\n }\n \n
\n
\n )\n}\n\nconst mapStateToProps = state => {\n return {\n categories: state.productsReducer.categories\n }\n}\n\nconst mapDispatchToProps = (dispatch) => \n bindActionCreators({...actionCreators}, dispatch)\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ProductCategories);","import React from 'react';\nimport HeaderLogo from 'components/common/headerLogo';\nimport ProductsListing from 'components/products/productsListing';\nimport GridContainer from 'components/grid/GridContainer';\nimport GridItem from 'components/grid/GridItem';\nimport ProductsFilter from 'components/products/productsFilter';\nimport ProductCategories from 'components/products/productCategories';\n\nexport default function Listing()\n{\n return (\n
\n \n \n
\n \n
\n
\n \n
\n
\n {/* */}\n
\n
\n \n \n \n
\n
\n )\n \n}","import { container } from \"assets/jss/material-kit-react.js\";\n\nconst carouselStyle = {\n section: {\n padding: \"70px 0\"\n },\n container,\n marginAuto: {\n marginLeft: \"auto !important\",\n marginRight: \"auto !important\"\n }\n};\n\nexport default carouselStyle;\n","import React from \"react\";\n// react component for creating beautiful carousel\nimport Carousel from \"react-slick\";\n// @material-ui/core components\nimport { makeStyles } from \"@material-ui/core/styles\";\n// @material-ui/icons\n// core components\nimport GridContainer from '../grid/GridContainer';\nimport GridItem from \"components/grid/GridItem.js\";\nimport Card from \"components/card/Card.js\";\n\nimport styles from \"../../assets/jss/material-kit-react/views/componentsSections/carouselStyle.js\";\n\nconst useStyles = makeStyles(styles);\n\nexport default function SectionCarousel(props) {\n const classes = useStyles();\n const settings = {\n dots: true,\n infinite: true,\n speed: 500,\n slidesToShow: 1,\n slidesToScroll: 1,\n autoplay: false\n };\n\n return (\n
\n
\n \n \n \n \n {props.images.map(image => \n
\n \"First\n
\n )}\n
\n
\n
\n
\n
\n
\n );\n}\n","import {\n warningCardHeader,\n successCardHeader,\n dangerCardHeader,\n infoCardHeader,\n primaryCardHeader,\n grayCardHeader\n} from \"assets/jss/material-kit-react.js\";\nconst cardHeaderStyle = {\n cardHeader: {\n borderRadius: \"3px\",\n marginLeft: \"15px\",\n marginRight: \"15px\",\n marginTop: \"-30px\",\n border: \"0\",\n marginBottom: \"0\"\n },\n cardHeaderPlain: {\n marginLeft: \"0px\",\n marginRight: \"0px\"\n },\n warningCardHeader,\n successCardHeader,\n dangerCardHeader,\n infoCardHeader,\n primaryCardHeader,\n grayCardHeader\n};\n\nexport default cardHeaderStyle;\n","import React from \"react\";\n// nodejs library that concatenates classes\nimport classNames from \"classnames\";\n// nodejs library to set properties for components\nimport PropTypes from \"prop-types\";\n// @material-ui/core components\nimport { makeStyles } from \"@material-ui/core/styles\";\n// @material-ui/icons\n\n// core components\nimport styles from \"assets/jss/material-kit-react/components/cardHeaderStyle.js\";\n\nconst useStyles = makeStyles(styles);\n\nexport default function CardHeader(props) {\n const classes = useStyles();\n const { className, children, color, plain, ...rest } = props;\n const cardHeaderClasses = classNames({\n [classes.cardHeader]: true,\n [classes[color + \"CardHeader\"]]: color,\n [classes.cardHeaderPlain]: plain,\n [className]: className !== undefined\n });\n return (\n
\n {children}\n
\n );\n}\n\nCardHeader.propTypes = {\n className: PropTypes.string,\n color: PropTypes.oneOf([\"warning\", \"success\", \"danger\", \"info\", \"primary\", \"gray\"]),\n plain: PropTypes.bool,\n children: PropTypes.node\n};\n","const customTabsStyle = {\n cardTitle: {\n float: \"left\",\n padding: \"10px 10px 10px 0px\",\n lineHeight: \"24px\"\n },\n cardTitleRTL: {\n float: \"right\",\n padding: \"10px 0px 10px 10px !important\"\n },\n displayNone: {\n display: \"none !important\"\n },\n tabsRoot: {\n minHeight: \"unset !important\"\n },\n tabRootButton: {\n minHeight: \"unset !important\",\n minWidth: \"unset !important\",\n width: \"unset !important\",\n height: \"unset !important\",\n maxWidth: \"unset !important\",\n maxHeight: \"unset !important\",\n padding: \"10px 15px\",\n borderRadius: \"3px\",\n lineHeight: \"24px\",\n border: \"0 !important\",\n color: \"#fff !important\",\n marginLeft: \"4px\",\n fontWeight: \"500\",\n fontSize: \"12px\",\n \"&:last-child\": {\n marginLeft: \"0px\"\n }\n },\n tabSelected: {\n backgroundColor: \"rgba(255, 255, 255, 0.2)\",\n transition: \"0.2s background-color 0.1s\"\n },\n tabWrapper: {\n display: \"inline-block\",\n minHeight: \"unset !important\",\n minWidth: \"unset !important\",\n width: \"unset !important\",\n height: \"unset !important\",\n maxWidth: \"unset !important\",\n maxHeight: \"unset !important\",\n \"& > svg\": {\n verticalAlign: \"middle\",\n margin: \"-1.55px 5px 0 0 !important\"\n },\n \"&,& *\": {\n letterSpacing: \"normal !important\"\n }\n }\n};\n\nexport default customTabsStyle;\n","import React, { useEffect } from \"react\";\n// nodejs library that concatenates classes\nimport classNames from \"classnames\";\n// nodejs library to set properties for components\nimport PropTypes from \"prop-types\";\n\n// material-ui components\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport Tabs from \"@material-ui/core/Tabs\";\nimport Tab from \"@material-ui/core/Tab\";\nimport Icon from \"@material-ui/core/Icon\";\n// core components\nimport Card from \"components/card/Card.js\";\nimport CardBody from \"components/card/CardBody.js\";\nimport CardHeader from \"components/card/CardHeader.js\";\n\nimport styles from \"assets/jss/material-kit-react/components/customTabsStyle.js\";\n\nconst useStyles = makeStyles(styles);\n\nexport default function CustomTabs(props) {\n const [value, setValue] = React.useState(0);\n\n useEffect(() => {\n setValue(props.value);\n }, [props.value])\n \n const handleChange = (event, value) => {\n props.tabChanged(value);\n setValue(value);\n };\n const classes = useStyles();\n const { headerColor, plainTabs, tabs, title, rtlActive } = props;\n const cardTitle = classNames({\n [classes.cardTitle]: true,\n [classes.cardTitleRTL]: rtlActive\n });\n return (\n \n \n {title !== undefined ?
{title}
: null}\n \n {tabs.map((prop, key) => {\n var icon = {};\n if (prop.tabIcon) {\n icon = {\n icon:\n typeof prop.tabIcon === \"string\" ? (\n {prop.tabIcon}\n ) : (\n \n )\n };\n }\n return (\n \n );\n })}\n \n
\n \n {tabs.map((prop, key) => {\n if (key === value) {\n return
{prop.tabContent}
;\n }\n return null;\n })}\n
\n
\n );\n}\n\nCustomTabs.propTypes = {\n headerColor: PropTypes.oneOf([\n \"warning\",\n \"success\",\n \"danger\",\n \"info\",\n \"primary\",\n \"rose\",\n \"gray\"\n ]),\n title: PropTypes.string,\n tabs: PropTypes.arrayOf(\n PropTypes.shape({\n tabName: PropTypes.string.isRequired,\n tabIcon: PropTypes.object,\n tabContent: PropTypes.node.isRequired\n })\n ),\n rtlActive: PropTypes.bool,\n plainTabs: PropTypes.bool\n};\n","import Swagger from 'swagger-client';\n\nexport const REQUEST_SESSION = 'REQUEST_SESSION';\nexport const RECEIVE_SESSION = 'RECEIVE_SESSION';\n\nexport const actionCreators = {\n requestSession: (productid) => async (dispatch, getState) => {\n dispatch({type: REQUEST_SESSION, sessionid: {} });\n const BASEURL = process.env.REACT_APP_API_URL;\n Swagger({\n url: BASEURL + '/swagger/v1/swagger.json',\n requestInterceptor: (req) => {\n if (localStorage.getItem('user') != null)\n {\n req.headers[\"Authorization\"] = 'Bearer ' + JSON.parse(localStorage.getItem('user')).token;\n }\n return req;\n }\n })\n .then(client => {\n try{\n return client.apis.Products.get_generatesession({productid: productid});\n }catch{\n\n }\n \n })\n .then(response => {\n return JSON.parse(response.text);\n })\n .then(response => {\n dispatch({type: RECEIVE_SESSION, sessionid: response.sessionID });\n });\n }\n}\n\n","import React, { useEffect, useState } from 'react';\nimport { loadStripe } from '@stripe/stripe-js';\nimport { bindActionCreators } from 'redux';\nimport { connect } from 'react-redux';\nimport { actionCreators } from '../../_actions/purchaseActions';\nimport { Link } from 'react-router-dom';\nimport user from '../../_helpers/user.js';\nimport Button from '../CustomButtons/Button';\n\nconst STRIPE_ID = process.env.REACT_APP_STRIPE_ID;\nconst stripePromise = loadStripe(STRIPE_ID);\n\nfunction ProductPurchase(props)\n{\n const redirectToStripe = async (event) => {\n const stripe = await stripePromise;\n const { error } = await stripe.redirectToCheckout({sessionId: props.sessionid});\n }\n\n useEffect(() => {\n props.requestSession(props.product.id);\n }, [])\n\n useEffect(() => {\n // if (typeof props.sessionid == 'string')\n // {\n // redirectToStripe();\n // }\n }, [props.sessionid]);\n\n const handleClick = () => {\n props.requestSession(props.product.id);\n }\n\n return (\n <>\n {(props.selections.eyeColor !== null || props.selections.hairColor !== null || props.selections.skinColor !== null || props.selections.eyeType !== null) &&\n
\n Confirm your customizations
\n Eye Color: {props.selections.eyeColor}
\n Skin Color: {props.selections.skinColor}
\n Hair Color: {props.selections.hairColor}
\n Eye Type: {props.selections.eyeType}
\n
\n }\n {props.selections.length === 0 && \n
No customizations
\n }\n {user === null && \n
Please Login or create an account to purchase our products.
\n }\n {user !== null && \n \n }\n \n \n )\n}\n\nconst mapStateToProps = state => {\n return {\n sessionid: state.purchaseReducer.sessionid,\n selections: state.customizeReducer.selections,\n }\n}\n\nconst mapDispatchToProps = (dispatch) => \n bindActionCreators({...actionCreators}, dispatch)\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ProductPurchase);","export const STORE_SELECTIONS = 'STORE_SELECTIONS';\nexport const GET_SELECTIONS = 'GET_SELECTIONS';\n\nexport const actionCreators = {\n storeSelections: (selections) => async (dispatch, getState) => {\n dispatch({type: GET_SELECTIONS, selections: selections });\n },\n getSelections: () => async (dispatch, getState) => {\n dispatch({type: GET_SELECTIONS, selections: getState().customizeReducer.selections });\n }\n}\n\n","import React, { useState, useEffect } from 'react';\nimport GridContainer from 'components/grid/GridContainer';\nimport GridItem from 'components/grid/GridItem';\nimport { connect } from 'react-redux';\nimport { bindActionCreators } from 'redux';\nimport { actionCreators } from '../../_actions/customizeActions';\nimport { GithubPicker } from 'react-color';\nimport Button from '../CustomButtons/Button';\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport CustomDropdown from '../CustomDropdown/CustomDropdown';\n\nconst styles = makeStyles({\n popup: {\n marginTop: 0\n },\n buttonPicker: {\n marginRight: 20\n },\n title: {\n fontSize: 16\n },\n additionalDetails: {\n width: 300,\n height: 125\n }\n})\n\nfunction ProductCustomize(props)\n{\n\n const { getSelections } = props;\n const { storeSelections } = props;\n\n //selected states\n const [eyeColor, setEyeColor] = useState(props.selections.eyeColor);\n const [hairColor, setHairColor] = useState(props.selections.hairColor);\n const [skinColor, setSkinColor] = useState(props.selections.skinColor);\n const [eyeType, setEyeType] = useState(props.selections.eyeType);\n const [eyeTypeSelection, setEyeTypeSelection] = useState(props.selections.eyeType !== undefined ? props.selections.eyeType : 'Eye Style');\n const [eyeTypeColor, setEyeTypeColor] = useState(props.selections.eyeType !== undefined ? '#00acc1' : '');\n const [additionalDetails, setAdditionalDetails] = useState(props.selections.details);\n \n useEffect(() => {\n getSelections();\n }, []);\n\n useEffect(() => {\n storeSelections( {eyeColor: eyeColor, hairColor: hairColor, skinColor: skinColor, eyeType: eyeTypeSelection, details: additionalDetails})\n }, [eyeColor, hairColor, skinColor, eyeType, additionalDetails]);\n\n const classes = styles();\n \n //colors\n const eyeColors = ['#d3c59e', '#58483a', '#7099cb', '#82aac0', '#bdcfa7', '#af9c74', '#4e4655', '#b6b1ac', '#43423d'];\n const hairColors = ['#d5c4a2', '#dccca3', '#c67d36', '#502629', '#948786', '#c0b5af', '#956d4d', '#5d433d', '#59442d', '#383b34'];\n const skinColors = ['#f1e0c3','#fedcc1','#e7ba9b','#c19873','#7c6250','#69584b'];\n const eyeTypes = [\n {text: 'Cute Small Dots', selected: false},\n {text: 'Eyes Drawn', selected: false}\n ]\n\n //toggle state\n const [showEyeColors, setShowEyeColors] = useState(false);\n const [showHairColors, setShowHairColors] = useState(false);\n const [showSkinColors, setShowSkinColors] = useState(false);\n\n //Toggles\n const toggleEyeColors = () => {\n setShowEyeColors(!showEyeColors);\n }\n\n const toggleHairColors = () => {\n setShowHairColors(!showHairColors);\n }\n\n const toggleSkinColors = () => {\n setShowSkinColors(!showSkinColors);\n }\n\n //Selected Events\n const eyeColorChanged = (e) => {\n setEyeColor(e.hex);\n toggleEyeColors();\n }\n\n const hairColorChanged = (e) => {\n setHairColor(e.hex);\n toggleHairColors();\n }\n\n const skinColorChanged = (e) => {\n setSkinColor(e.hex);\n toggleSkinColors();\n }\n\n const eyeTypeClick = (e) => {\n setEyeType(e);\n setEyeTypeSelection(e);\n setEyeTypeColor('#00acc1');\n }\n\n const handleDetailsChange = (e) => {\n setAdditionalDetails(e.target.value);\n }\n\n return (\n <>\n \n \n
Eye Style
\n \n
\n
\n \n \n
Colors
\n
\n \n \n {showEyeColors && \n \n }\n \n \n \n {showHairColors && \n \n }\n \n \n \n {showSkinColors && \n \n }\n \n
\n \n \n
Additional Details
\n \n
\n \n {/* */}\n \n
\n \n )\n}\n\nconst mapStateToProps = state => {\n return {\n selections: state.customizeReducer.selections,\n }\n}\n\nconst mapDispatchToProps = (dispatch) => \n bindActionCreators({...actionCreators}, dispatch)\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ProductCustomize);","import React from 'react';\nimport Button from '../CustomButtons/Button';\nimport GridContainer from 'components/grid/GridContainer';\nimport GridItem from 'components/grid/GridItem';\n\nexport default function ProductOverview(props)\n{\n return (\n <>\n \n \n
\n
\n
\n \n
\n {/* \n */}\n
\n
\n
\n \n )\n}","import React, { useState, useEffect } from 'react';\nimport { connect } from 'react-redux';\nimport { bindActionCreators } from 'redux';\nimport { actionCreators } from '../../_actions/actions';\nimport SectionCarousel from '../sectionCarousel/sectionCarousel';\nimport GridContainer from '../grid/GridContainer';\nimport GridItem from '../grid/GridItem';\nimport CustomTabs from '../CustomTabs/CustomTabs';\nimport ProductPurchase from '../products/productPurchase';\nimport ProductCustomize from '../products/productCustomize';\nimport ProductOverview from '../products/productOverview';\n\nexport function ProductDetails(props){\n\n const productName = props.location.pathname.split(\"/\")[2];\n\n const [images, setImages] = useState([]);\n const [currentTab, setCurrentTab] = useState(0);\n\n const { requestProduct } = props;\n\n useEffect(() => {\n requestProduct(productName);\n },[requestProduct, productName]);\n\n useEffect(() => {\n if (props.product.images !== undefined)\n {\n setImages(props.product.images);\n }\n \n },[props.product]);\n\n const openCustomize = () => {\n setCurrentTab(2);\n }\n\n const openPurchase = () => {\n setCurrentTab(3);\n }\n\n const currentTabChanged = (value) => {\n setCurrentTab(value);\n }\n\n return (\n <>\n \n \n \n \n \n \n \n

\n {props.product.name}\n

\n
\n \n )\n },\n {\n tabName: \"Details\",\n tabContent: (\n
\n
\n )\n },\n // {\n // tabName: \"Customize\",\n // tabContent: (\n //

\n // \n //

\n // )\n // },\n // {\n // tabName: \"Purchase\",\n // tabContent: (\n //

\n // \n //

\n // )\n // },\n ]}\n />\n
\n
\n\n
\n
\n
\n \n \n )\n}\n\nconst mapStateToProps = state => {\n return {\n product: state.productsReducer.product,\n }\n}\n\nconst mapDispatchToProps = (dispatch) => \n bindActionCreators({...actionCreators}, dispatch)\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ProductDetails);","import React from 'react';\nimport GridContainer from 'components/grid/GridContainer';\nimport GridItem from 'components/grid/GridItem';\nimport ProductDetails from 'components/products/productDetails';\nimport HeaderLogo from '../../components/common/headerLogo';\nimport ProductsFilter from 'components/products/productsFilter';\nimport InfoCard from '../../components/popups/infoCard';\n\n\nexport default function Details(props)\n{\n return (\n
\n \n \n
\n \n
\n
\n \n
\n
\n \n \n \n
\n
\n )\n \n}","import React from 'react';\nimport { Route, Redirect } from 'react-router-dom';\n\nexport default function PrivateRoute({ component: Component, ...rest})\n{\n return (\n (\n localStorage.getItem('user')\n ? \n : \n )} />\n )\n}","import React from 'react';\nimport { Route, Redirect } from 'react-router-dom';\nimport user from '../_helpers/user';\n\nexport default function AdminRoute({ component: Component, ...rest})\n{\n return (\n (\n user.isAdmin\n ? \n : \n )} />\n )\n}","import Swagger from 'swagger-client';\n\nexport async function login(email, password)\n{\n const requestOptions = {\n method: 'POST',\n headers: { 'Content-Type': 'application/json'},\n body: JSON.stringify({ email, password })\n }\n const BASEURL = process.env.REACT_APP_API_URL;\n\n await fetch(BASEURL + '/account/authenticate', requestOptions)\n .then(handleResponse)\n .then(user => {\n localStorage.setItem('user', JSON.stringify(user));\n });\n}\n\nexport async function loginFacebook(email, facebookName, facebookUserId)\n{\n const requestOptions = {\n method: 'POST',\n headers: { 'Content-Type': 'application/json'},\n body: JSON.stringify({ email, facebookName, facebookUserId })\n }\n const BASEURL = process.env.REACT_APP_API_URL;\n\n await fetch(BASEURL + '/account/facebook', requestOptions)\n .then(handleResponse)\n .then(user => {\n localStorage.setItem('user', JSON.stringify(user));\n });\n}\n\nexport async function register(email, password, firstname, lastname)\n{\n\n const requestOptions = {\n method: 'POST',\n headers: { 'Content-Type': 'application/json'},\n body: JSON.stringify({ email, password, firstname, lastname })\n }\n const BASEURL = process.env.REACT_APP_API_URL;\n\n return fetch(BASEURL + '/account/register', requestOptions)\n .then(handleResponse)\n .then(user => {\n return true;\n });\n}\n\nexport function logout()\n{\n localStorage.removeItem('user');\n}\n\nfunction handleResponse(response)\n{\n return response.text().then(text => {\n const data = text && JSON.parse(text);\n if(!response.ok)\n {\n if (response.status === 401)\n {\n logout();\n window.location.reload(true);\n }\n\n const error = (data && data.message) || response.statusText;\n return Promise.reject(error);\n }\n return data;\n })\n}","import { container } from \"assets/jss/material-kit-react.js\";\n\nconst signupPageStyle = {\n container: {\n ...container,\n zIndex: \"2\",\n position: \"relative\",\n paddingTop: \"20vh\",\n color: \"#FFFFFF\",\n paddingBottom: \"200px\"\n },\n cardHidden: {\n opacity: \"0\",\n transform: \"translate3d(0, -60px, 0)\"\n },\n pageHeader: {\n minHeight: \"100vh\",\n height: \"auto\",\n display: \"inherit\",\n position: \"relative\",\n margin: \"0\",\n padding: \"0\",\n border: \"0\",\n alignItems: \"center\",\n \"&:before\": {\n background: \"rgba(0, 0, 0, 0.5)\"\n },\n \"&:before,&:after\": {\n position: \"absolute\",\n zIndex: \"1\",\n width: \"100%\",\n height: \"100%\",\n display: \"block\",\n left: \"0\",\n top: \"0\",\n content: '\"\"'\n },\n \"& footer li a,& footer li a:hover,& footer li a:active\": {\n color: \"#FFFFFF\"\n },\n \"& footer\": {\n position: \"absolute\",\n bottom: \"0\",\n width: \"100%\"\n }\n },\n form: {\n margin: \"0\"\n },\n cardHeader: {\n width: \"auto\",\n textAlign: \"center\",\n marginLeft: \"20px\",\n marginRight: \"20px\",\n marginTop: \"-40px\",\n padding: \"20px 0\",\n marginBottom: \"15px\"\n },\n socialIcons: {\n maxWidth: \"24px\",\n marginTop: \"0\",\n width: \"100%\",\n transform: \"none\",\n left: \"0\",\n top: \"0\",\n height: \"100%\",\n lineHeight: \"41px\",\n fontSize: \"20px\"\n },\n divider: {\n marginTop: \"30px\",\n marginBottom: \"0px\",\n textAlign: \"center\"\n },\n cardFooter: {\n paddingTop: \"0rem\",\n border: \"0\",\n borderRadius: \"6px\",\n justifyContent: \"center !important\"\n },\n socialLine: {\n marginTop: \"1rem\",\n textAlign: \"center\",\n padding: \"0\"\n },\n inputIconsColor: {\n color: \"#495057\"\n }\n};\n\nexport default signupPageStyle;\n","import React, { useEffect, useState } from 'react';\nimport {login, loginFacebook} from './../_services/user.services';\nimport Card from './../components/card/Card';\nimport CardHeader from './../components/card/CardHeader';\nimport CardFooter from './../components/card/CardFooter';\nimport Button from \"./../components/CustomButtons/Button.js\";\nimport CardBody from \"./../components/card/CardBody.js\";\nimport CustomInput from \"./../components/CustomInput/CustomInput.js\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport InputAdornment from \"@material-ui/core/InputAdornment\";\nimport Icon from \"@material-ui/core/Icon\";\n// @material-ui/icons\nimport Email from \"@material-ui/icons/Email\";\nimport styles from \"assets/jss/material-kit-react/views/loginPage.js\";\nimport loginStyles from './login.module.css';\nimport GridContainer from \"components/grid/GridContainer.js\";\nimport Container from '@material-ui/core/Container';\nimport { Link } from 'react-router-dom';\nimport GridItem from \"components/grid/GridItem.js\";\nimport FacebookLogin from 'react-facebook-login';\n\nconst useStyles = makeStyles(styles);\n\nexport default function Login(props)\n{\n const [cardAnimaton, setCardAnimation] = React.useState(\"cardHidden\");\n setTimeout(function() {\n setCardAnimation(\"\");\n }, 700);\n const classes = useStyles();\n \n const [email, setEmail] = useState();\n const [password, setPassword] = useState();\n const [loginError, setLoginError] = useState(false);\n\n const handleLogin = () =>\n {\n (async () => {\n try{\n await login(email, password);\n if (localStorage.getItem('user') !== undefined)\n {\n window.location.replace('/')\n } \n }catch{\n setLoginError(true);\n }\n })();\n }\n\n const responseFacebook = async (response) => {\n await loginFacebook(response.email, response.name, response.id);\n if (localStorage.getItem('user') !== undefined)\n {\n window.location.replace('/');\n }\n }\n\n const FACEBOOK_APP_ID = process.env.REACT_APP_FACEBOOK_ID;\n\n return (\n
\n \n \n \n \n
\n \n

Login

\n
\n \n
\n
\n \n setEmail(e.target.value),\n endAdornment: (\n \n \n \n )\n }}\n />\n setPassword(e.target.value),\n endAdornment: (\n \n \n lock_outline\n \n \n ),\n autoComplete: \"off\"\n }}\n />\n \n \n \n \n {loginError && \n \n Incorrect Login\n \n }\n
\n
\n
\n \n Don't have an account? Create one!\n \n
\n
\n
\n )\n}","import React, { useEffect } from 'react';\nimport {logout} from './../_services/user.services';\n\nexport default function Logout(props)\n{\n\n useEffect(() => {\n logout();\n window.location.replace('/')\n }, []);\n\n return (\n
\n Logging you out\n
\n )\n}","import React, { useEffect, useState } from 'react';\nimport {register, login} from '../_services/user.services';\nimport Card from '../components/card/Card';\nimport CardHeader from '../components/card/CardHeader';\nimport CardFooter from '../components/card/CardFooter';\nimport Button from \"../components/CustomButtons/Button.js\";\nimport CardBody from \"../components/card/CardBody.js\";\nimport CustomInput from \"../components/CustomInput/CustomInput.js\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport InputAdornment from \"@material-ui/core/InputAdornment\";\nimport Icon from \"@material-ui/core/Icon\";\n// @material-ui/icons\nimport Email from \"@material-ui/icons/Email\";\nimport styles from \"assets/jss/material-kit-react/views/loginPage.js\";\nimport GridContainer from \"components/grid/GridContainer.js\";\nimport Container from '@material-ui/core/Container';\nimport { Link } from 'react-router-dom';\nimport GridItem from \"components/grid/GridItem.js\";\n\nconst useStyles = makeStyles(styles);\n\nexport default function Register(props)\n{\n\n const [cardAnimaton, setCardAnimation] = React.useState(\"cardHidden\");\n setTimeout(function() {\n setCardAnimation(\"\");\n }, 700);\n const classes = useStyles();\n \n const [firstName, setFirstName] = useState();\n const [lastName, setLastName] = useState()\n const [email, setEmail] = useState();\n const [password, setPassword] = useState();\n const [emailError, setEmailError] = useState(false);\n const [firstNameError, setFirstNameError] = useState(false);\n const [lastNameError, setLastNameError] = useState(false);\n const [passwordError, setPasswordError] = useState(false);\n const [loginError, setLoginError] = useState(false);\n\n const handleRegister = () =>\n {\n setEmailError(false);\n setFirstNameError(false);\n setLastNameError(false);\n setPasswordError(false);\n let error = false;\n if (email === undefined)\n {\n setEmailError(true);\n error = true;\n }\n if (firstName === undefined)\n {\n setFirstNameError(true);\n error = true;\n }\n if (lastName === undefined)\n {\n setLastNameError(true);\n error = true;\n }\n if (password === undefined)\n {\n setPasswordError(true);\n error = true;\n }\n if (error)\n {\n return;\n }\n\n (async () => {\n try{\n var response = await register(email, password, firstName, lastName);\n if (response)\n {\n await login(email, password);\n window.location.replace('/')\n }\n }catch{\n setLoginError(true);\n }\n })();\n }\n\n return (\n
\n \n \n \n \n
\n \n

Register

\n
\n \n setFirstName(e.target.value),\n endAdornment: (\n \n \n text_format\n \n \n )\n }}\n />\n setLastName(e.target.value),\n endAdornment: (\n \n \n text_format\n \n \n )\n }}\n /> \n setEmail(e.target.value),\n endAdornment: (\n \n \n \n )\n }}\n />\n setPassword(e.target.value),\n endAdornment: (\n \n \n lock_outline\n \n \n ),\n autoComplete: \"off\"\n }}\n />\n \n \n \n \n {loginError && \n \n Something went wrong\n \n } \n
\n
\n
\n
\n
\n
\n )\n}","import { container, primaryColor } from \"assets/jss/material-kit-react.js\";\n\nconst footerStyle = {\n block: {\n color: \"inherit\",\n padding: \"0.9375rem\",\n fontWeight: \"500\",\n fontSize: \"12px\",\n textTransform: \"uppercase\",\n borderRadius: \"3px\",\n textDecoration: \"none\",\n position: \"relative\",\n display: \"block\"\n },\n left: {\n float: \"left!important\",\n display: \"block\"\n },\n right: {\n padding: \"15px 0\",\n margin: \"0\",\n float: \"right!important\"\n },\n footer: {\n padding: \"0.9375rem 0\",\n textAlign: \"center\",\n display: \"flex\",\n zIndex: \"2\",\n position: \"relative\",\n backgroundColor: '#eeeeee'\n },\n a: {\n color: primaryColor,\n textDecoration: \"none\",\n backgroundColor: \"transparent\"\n },\n footerWhiteFont: {\n \"&,&:hover,&:focus\": {\n color: \"#FFFFFF\"\n }\n },\n container,\n list: {\n marginBottom: \"0\",\n padding: \"0\",\n marginTop: \"0\"\n },\n inlineBlock: {\n display: \"inline-block\",\n padding: \"0px\",\n width: \"auto\"\n },\n icon: {\n width: \"18px\",\n height: \"18px\",\n position: \"relative\",\n top: \"3px\"\n }\n};\nexport default footerStyle;\n","/*eslint-disable*/\nimport React from \"react\";\n// nodejs library to set properties for components\nimport PropTypes from \"prop-types\";\n// nodejs library that concatenates classes\nimport classNames from \"classnames\";\n// material-ui core components\nimport { List, ListItem } from \"@material-ui/core\";\nimport { makeStyles } from \"@material-ui/core/styles\";\n\n// @material-ui/icons\nimport Favorite from \"@material-ui/icons/Favorite\";\n\nimport styles from \"assets/jss/material-kit-react/components/footerStyle.js\";\n\nconst useStyles = makeStyles(styles);\n\nexport default function Footer(props) {\n const classes = useStyles();\n const { whiteFont } = props;\n const footerClasses = classNames({\n [classes.footer]: true,\n [classes.footerWhiteFont]: whiteFont\n });\n const aClasses = classNames({\n [classes.a]: true,\n [classes.footerWhiteFont]: whiteFont\n });\n return (\n
\n
\n
\n \n \n \n Conditions of Use\n \n \n \n \n About us\n \n \n \n \n Shipping & Returns\n \n \n \n \n Privacy Notice\n \n \n \n
\n
\n © {1900 + new Date().getYear()} \n   Flipbits.com\n
\n
\n
\n );\n}\n\nFooter.propTypes = {\n whiteFont: PropTypes.bool\n};\n","import React from 'react';\n\nexport default class ErrorBoundary extends React.Component{\n constructor(props)\n {\n super(props);\n this.state = { hasError: false };\n }\n\n static getDerivedStateFromError(error)\n {\n return { hasError: true };\n }\n\n componentDidCatch(error, errorInfo)\n {\n //log error\n }\n\n render()\n {\n if (this.state.hasError)\n {\n return

Something went wrong

;\n }\n return this.props.children;\n }\n}\n\n","import React from 'react';\nimport GridContainer from '../../components/grid/GridContainer';\nimport GridItem from '../../components/grid/GridItem';\nimport styles from \"assets/jss/material-kit-react/views/componentsSections/typographyStyle.js\";\nimport { makeStyles } from \"@material-ui/core/styles\";\n\nconst useStyles = makeStyles(styles);\n\nexport default function HowItWorks(props)\n{\n\n const classes = useStyles();\n \n return (\n
\n \n
\n
\n

How It Works

\n
\n
\n

Animal Wedding Cake Topper

\n
\n

\n

    \n
  • \n Choose the topper you prefer\n
  • \n
  • \n Choose the colour you want for the figure and base (if any)\n
  • \n
  • \n Add a name/date plaque\n
  • \n
\n

\n\n
\n

Mini Wedding Cake Topper

\n
\n

\n

    \n
  • \n Choose the topper you prefer\n
  • \n
  • \n Choose the colours of skin, hair, eyes, outfit, and base for your topper (if any)\n
  • \n
  • \n You can swap the groom and bride from a different topper in the Mini Wedding Cake Topper collection (add your request into additional details)\n
  • \n
  • \n Add a name/date plaque\n
  • \n
\n

\n\n
\n

Customized Wedding Cake Topper

\n
\n
\n
Option 1 (Choose from our current toppers)
\n
\n

\n

    \n
  • \n Choose from our current toppers\n
  • \n
  • \n Choose the colours of skin, hair, eyes, outfit, and base for your topper (if any)\n
  • \n
  • \n Customize hairstyles, wedding outfit, bouquet as your uploaded photo (if any)\n
  • \n
  • \n Add a name/date plaque\n
  • \n
\n

\n
\n
Option 2 (Full Customization)
\n
\n

\n

    \n
  • \n Choose from our current toppers\n
  • \n
  • \n Choose the colours of skin, hair, eyes, outfit, and base for your topper (if any)\n
  • \n
  • \n Customize posture, hairstyles, wedding outfit, bouquet as your uploaded photo.\n
  • \n
  • \n Add a name/date plaque\n
  • \n
\n

\n\n
\n

Realistic Wedding Cake Topper (Detailed Face)

\n
\n
\n

\n

    \n
  • \n Upload your portrait photo (close up photo of the front face, not the side photo)\n
  • \n
  • \n Choose the colours of skin, hair, eyes, and outfit for your topper.\n
  • \n
  • \n Customize posture, hairstyles, wedding outfit, bouquet as your uploaded photo.\n
  • \n
  • \n Add a name/date plaque\n
  • \n
\n

\n
\n \n

\n *Note - Every colour has so many different shades, soFcu please send us colour shade pictures or be as specific as possible when ordering any custom colours. Listed price is for a couple only. If you want to add a pet, vehicle, or accessories please contat us for more information\n

\n
\n
\n
\n
\n )\n}","import React from 'react';\nimport GridContainer from '../../components/grid/GridContainer';\nimport GridItem from '../../components/grid/GridItem';\nimport styles from \"assets/jss/material-kit-react/views/componentsSections/typographyStyle.js\";\nimport { makeStyles } from \"@material-ui/core/styles\";\n\nconst useStyles = makeStyles(styles);\n\nexport default function TermsConditions(props)\n{\n\n const classes = useStyles();\n \n return (\n
\n \n
\n
\n

Terms & Conditions

\n
\n
\n

Legal Notices

\n
\n

\n We, the Operators of this Website, provide it as a public service to our users.\n

\n

\n Please carefully review the following basic rules that govern your use of the Website. Please note that your use of the Website constitutes your unconditional agreement to follow and be bound by these Terms and Conditions of Use. If you (the \"User\") do not agree to them, do not use the Website, provide any materials to the Website or download any materials from them.\n

\n

\n The Operators reserve the right to update or modify these Terms and Conditions at any time without prior notice to User. Your use of the Website following any such change constitutes your unconditional agreement to follow and be bound by these Terms and Conditions as changed. For this reason, we encourage you to review these Terms and Conditions of Use whenever you use the Website.\n

\n

\n These Terms and Conditions of Use apply to the use of the Website and do not extend to any linked third party sites. These Terms and Conditions and our Privacy Policy, which are hereby incorporated by reference, contain the entire agreement (the “Agreement”) between you and the Operators with respect to the Website. Any rights not expressly granted herein are reserved.\n

\n\n
\n

Permitted and Prohibited Uses

\n
\n

You may use the the Website for the sole purpose of sharing and exchanging ideas with other Users. You may not use the the Website to violate any applicable local, state, national, or international law, including without limitation any applicable laws relating to antitrust or other illegal trade or business practices, federal and state securities laws, regulations promulgated by the U.S. Securities and Exchange Commission, any rules of any national or other securities exchange, and any U.S. laws, rules, and regulations governing the export and re-export of commodities or technical data.

\n

You may not upload or transmit any material that infringes or misappropriates any person's copyright, patent, trademark, or trade secret, or disclose via the the Website any information the disclosure of which would constitute a violation of any confidentiality obligations you may have.

\n

You may not upload any viruses, worms, Trojan horses, or other forms of harmful computer code, nor subject the Website's network or servers to unreasonable traffic loads, or otherwise engage in conduct deemed disruptive to the ordinary operation of the Website.

\n

You are strictly prohibited from communicating on or through the Website any unlawful, harmful, offensive, threatening, abusive, libelous, harassing, defamatory, vulgar, obscene, profane, hateful, fraudulent, sexually explicit, racially, ethnically, or otherwise objectionable material of any sort, including, but not limited to, any material that encourages conduct that would constitute a criminal offense, give rise to civil liability, or otherwise violate any applicable local, state, national, or international law.

\n

You are expressly prohibited from compiling and using other Users' personal information, including addresses, telephone numbers, fax numbers, email addresses or other contact information that may appear on the Website, for the purpose of creating or compiling marketing and/or mailing lists and from sending other Users unsolicited marketing materials, whether by facsimile, email, or other technological means.

\n

You also are expressly prohibited from distributing Users' personal information to third-party parties for marketing purposes. The Operators shall deem the compiling of marketing and mailing lists using Users' personal information, the sending of unsolicited marketing materials to Users, or the distribution of Users' personal information to third parties for marketing purposes as a material breach of these Terms and Conditions of Use, and the Operators reserve the right to terminate or suspend your access to and use of the Website and to suspend or revoke your membership in the consortium without refund of any membership dues paid.

\n

The Operators note that unauthorized use of Users' personal information in connection with unsolicited marketing correspondence also may constitute violations of various state and federal anti-spam statutes. The Operators reserve the right to report the abuse of Users' personal information to the appropriate law enforcement and government authorities, and the Operators will fully cooperate with any authorities investigating violations of these laws.

\n\n
\n

User Submissions

\n
\n\n

The Operators do not want to receive confidential or proprietary information from you through the Website. Any material, information, or other communication you transmit or post (\"Contributions\") to the Website will be considered non-confidential.

\n

All contributions to this site are licensed by you under the MIT License to anyone who wishes to use them, including the Operators.

\n

If you work for a company or at a University, it's likely that you're not the copyright holder of anything you make, even in your free time. Before making contributions to this site, get written permission from your employer.

\n\n
\n

User Discussion Lists and Forums

\n
\n\n

The Operators may, but are not obligated to, monitor or review any areas on the Website where users transmit or post communications or communicate solely with each other, including but not limited to user forums and email lists, and the content of any such communications. The Operators, however, will have no liability related to the content of any such communications, whether or not arising under the laws of copyright, libel, privacy, obscenity, or otherwise. The Operators may edit or remove content on the the Website at their discretion at any time.

\n\n
\n

Use of Personally Identifiable Information

\n
\n\n

Information submitted to the Website is governed according to the Operators’s current Privacy Policy and the stated license of this website.

\n

You agree to provide true, accurate, current, and complete information when registering with the Website. It is your responsibility to maintain and promptly update this account information to keep it true, accurate, current, and complete. If you provides any information that is fraudulent, untrue, inaccurate, incomplete, or not current, or we have reasonable grounds to suspect that such information is fraudulent, untrue, inaccurate, incomplete, or not current, we reserve the right to suspend or terminate your account without notice and to refuse any and all current and future use of the Website.

\n

Although sections of the Website may be viewed simply by visiting the Website, in order to access some Content and/or additional features offered at the Website, you may need to sign on as a guest or register as a member. If you create an account on the Website, you may be asked to supply your name, address, a User ID and password. You are responsible for maintaining the confidentiality of the password and account and are fully responsible for all activities that occur in connection with your password or account. You agree to immediately notify us of any unauthorized use of either your password or account or any other breach of security. You further agree that you will not permit others, including those whose accounts have been terminated, to access the Website using your account or User ID. You grant the Operators and all other persons or entities involved in the operation of the Website the right to transmit, monitor, retrieve, store, and use your information in connection with the operation of the Website and in the provision of services to you. The Operators cannot and do not assume any responsibility or liability for any information you submit, or your or third parties’ use or misuse of information transmitted or received using website. To learn more about how we protect the privacy of the personal information in your account, please visit our Privacy Policy.

\n\n
\n

Indemnification

\n
\n\n

You agree to defend, indemnify and hold harmless the Operators, agents, vendors or suppliers from and against any and all claims, damages, costs and expenses, including reasonable attorneys' fees, arising from or related to your use or misuse of the Website, including, without limitation, your violation of these Terms and Conditions, the infringement by you, or any other subscriber or user of your account, of any intellectual property right or other right of any person or entity.

\n\n
\n

Termination

\n
\n\n

These Terms and Conditions of Use are effective until terminated by either party. If you no longer agree to be bound by these Terms and Conditions, you must cease use of the Website. If you are dissatisfied with the Website, their content, or any of these terms, conditions, and policies, your sole legal remedy is to discontinue using the Website. The Operators reserve the right to terminate or suspend your access to and use of the Website, or parts of the Website, without notice, if we believe, in our sole discretion, that such use (i) is in violation of any applicable law; (ii) is harmful to our interests or the interests, including intellectual property or other rights, of another person or entity; or (iii) where the Operators have reason to believe that you are in violation of these Terms and Conditions of Use.

\n\n
\n

WARRANTY DISCLAIMER

\n
\n\n\n

THE WEBSITE AND ASSOCIATED MATERIALS ARE PROVIDED ON AN \"AS IS\" AND \"AS AVAILABLE\" BASIS. TO THE FULL EXTENT PERMISSIBLE BY APPLICABLE LAW, THE OPERATORS DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENTOF INTELLECTUAL PROPERTY. THE OPERATORS MAKE NO REPRESENTATIONS OR WARRANTY THAT THE WEBSITE WILL MEET YOUR REQUIREMENTS, OR THAT YOUR USE OF THE WEBSITE WILL BE UNINTERRUPTED, TIMELY, SECURE, OR ERROR FREE; NOR DO THE OPERATORS MAKE ANY REPRESENTATION OR WARRANTY AS TO THE RESULTS THAT MAY BE OBTAINED FROM THE USE OF THE WEBSITE. THE OPERATORS MAKE NO REPRESENTATIONS OR WARRANTIES OF ANY KIND, EXPRESS OR IMPLIED, AS TO THE OPERATION OF THE WEBSITE OR THE INFORMATION, CONTENT, MATERIALS, OR PRODUCTS INCLUDED ON THE WEBSITE.

\n

IN NO EVENT SHALL THE OPERATORS OR ANY OF THEIR AGENTS, VENDORS OR SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER (INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF PROFITS, BUSINESS INTERRUPTION, LOSS OF INFORMATION) ARISING OUT OF THE USE, MISUSE OF OR INABILITY TO USE THE WEBSITE, EVEN IF THE OPERATORS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. THIS DISCLAIMER CONSTITUTES AN ESSENTIAL PART OF THIS AGREEMENT. BECAUSE SOME JURISDICTIONS PROHIBIT THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES, THE ABOVE LIMITATION MAY NOT APPLY TO YOU.

\n

YOU UNDERSTAND AND AGREE THAT ANY CONTENT DOWNLOADED OR OTHERWISE OBTAINED THROUGH THE USE OF THE WEBSITE IS AT YOUR OWN DISCRETION AND RISK AND THAT YOU WILL BE SOLELY RESPONSIBLE FOR ANY DAMAGE TO YOUR COMPUTER SYSTEM OR LOSS OF DATA OR BUSINESS INTERRUPTION THAT RESULTS FROM THE DOWNLOAD OF CONTENT. THE OPERATORS SHALL NOT BE RESPONSIBLE FOR ANY LOSS OR DAMAGE CAUSED, OR ALLEGED TO HAVE BEEN CAUSED, DIRECTLY OR INDIRECTLY, BY THE INFORMATION OR IDEAS CONTAINED, SUGGESTED OR REFERENCED IN OR APPEARING ON THE WEBSITE. YOUR PARTICIPATION IN THE WEBSITE IS SOLELY AT YOUR OWN RISK. NO ADVICE OR INFORMATION, WHETHER ORAL OR WRITTEN, OBTAINED BY YOU FROM THE OPERATORS OR THROUGH THE OPERATORS, THEIR EMPLOYEES, OR THIRD PARTIES SHALL CREATE ANY WARRANTY NOT EXPRESSLY MADE HEREIN. YOU ACKNOWLEDGE, BY YOUR USE OF THE THE WEBSITE, THAT YOUR USE OF THE WEBSITE IS AT YOUR SOLE RISK.

\n

LIABILITY LIMITATION. UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL OR EQUITABLE THEORY, WHETHER IN TORT, CONTRACT, NEGLIGENCE, STRICT LIABILITY OR OTHERWISE, SHALL THE OPERATORS OR ANY OF THEIR AGENTS, VENDORS OR SUPPLIERS BE LIABLE TO USER OR TO ANY OTHER PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL LOSSES OR DAMAGES OF ANY NATURE ARISING OUT OF OR IN CONNECTION WITH THE USE OF OR INABILITY TO USE THE THE WEBSITE OR FOR ANY BREACH OF SECURITY ASSOCIATED WITH THE TRANSMISSION OF SENSITIVE INFORMATION THROUGH THE WEBSITE OR FOR ANY INFORMATION OBTAINED THROUGH THE WEBSITE, INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOST PROFITS, LOSS OF GOODWILL, LOSS OR CORRUPTION OF DATA, WORK STOPPAGE, ACCURACY OF RESULTS, OR COMPUTER FAILURE OR MALFUNCTION, EVEN IF AN AUTHORIZED REPRESENTATIVE OF THE OPERATORS HAS BEEN ADVISED OF OR SHOULD HAVE KNOWN OF THE POSSIBILITY OF SUCH DAMAGES.

\n

THE OPERATORS'S TOTAL CUMULATIVE LIABILITY FOR ANY AND ALL CLAIMS IN CONNECTION WITH THE WEBSITE WILL NOT EXCEED FIVE U.S. DOLLARS ($5.00). USER AGREES AND ACKNOWLEDGES THAT THE FOREGOING LIMITATIONS ON LIABILITY ARE AN ESSENTIAL BASIS OF THE BARGAIN AND THAT THE OPERATORS WOULD NOT PROVIDE THE WEBSITE ABSENT SUCH LIMITATION.

\n\n
\n

Links to Other Materials

\n
\n\n

The Website may contain links to sites owned or operated by independent third parties. These links are provided for your convenience and reference only. We do not control such sites and, therefore, we are not responsible for any content posted on these sites. The fact that the Operators offer such links should not be construed in any way as an endorsement, authorization, or sponsorship of that site, its content or the companies or products referenced therein, and the Operators reserve the right to note its lack of affiliation, sponsorship, or endorsement on the Website. If you decide to access any of the third party sites linked to by the Website, you do this entirely at your own risk. Because some sites employ automated search results or otherwise link you to sites containing information that may be deemed inappropriate or offensive, the Operators cannot be held responsible for the accuracy, copyright compliance, legality, or decency of material contained in third party sites, and you hereby irrevocably waive any claim against us with respect to such sites.

\n\n
\n

Notification Of Possible Copyright Infringement

\n
\n\n

In the event you believe that material or content published on the Website may infringe on your copyright or that of another, please contact us.

\n
\n
\n
\n )\n}","import React from 'react';\nimport GridContainer from '../../components/grid/GridContainer';\nimport GridItem from '../../components/grid/GridItem';\nimport styles from \"assets/jss/material-kit-react/views/componentsSections/typographyStyle.js\";\nimport { makeStyles } from \"@material-ui/core/styles\";\n\nconst useStyles = makeStyles(styles);\n\nexport default function Privacy(props)\n{\n\n const classes = useStyles();\n \n return (\n
\n \n
\n
\n

Privacy Policy

\n
\n\n

We, the Operators of this Website, provide it as a public service to our users.

\n

Your privacy is important to the us. Our goal is to provide you with a personalized online experience that provides you with the information, resources, and services that are most relevant and helpful to you. This Privacy Policy has been written to describe the conditions under which this web site is being made available to you. The Privacy Policy discusses, among other things, how data obtained during your visit to this web site may be collected and used. We strongly recommend that you read the Privacy Policy carefully. By using this web site, you agree to be bound by the terms of this Privacy Policy. If you do not accept the terms of the Privacy Policy, you are directed to discontinue accessing or otherwise using the web site or any materials obtained from it. If you are dissatisfied with the web site, by all means contact us; otherwise, your only recourse is to disconnect from this site and refrain from visiting the site in the future.

\n

The process of maintaining a web site is an evolving one, and the Operators may decide at some point in the future, without advance notice, to modify the terms of this Privacy Policy. Your use of the web site, or materials obtained from the web site, indicates your assent to the Privacy Policy at the time of such use. The effective Privacy Policy will be posted on the web site, and you should check upon every visit for any changes.

\n\n
\n

Sites Covered by this Privacy Policy

\n
\n\n

This Privacy Policy applies to all the Operators-maintained web sites, domains, information portals, and registries.

\n\n
\n

Children’s Privacy

\n
\n\n

The Operators are committed to protecting the privacy needs of children, and we encourage parents and guardians to take an active role in their children’s online activities and interests. The Operators do not intentionally collect information from minors, and the Operators do not target its web site to children.

\n\n
\n

Links to Non-Operators Web Sites

\n
\n\n

The Operators’s web sites may provide links to third-party web sites for the convenience of our users. If you access those links, you will leave the Operators’s web site. the Operators do not control these third-party websites and cannot represent that their policies and practices will be consistent with this Privacy Policy. For example, other web sites may collect or use personal information about you in a manner different from that described in this document. Therefore, you should use other web sites with caution, and you do so at your own risk. We encourage you to review the privacy policy of any web site before submitting personal information.

\n\n
\n

Types of Information We Collect

\n
\n\n

Non-Personal Information

\n\n

Non-personal information is data about usage and service operation that is not directly associated with a specific personal identity. The Operators may collect and analyze non-personal information to evaluate how visitors use the Operators’s web sites.

\n\n

Aggregate Information

\n\n

The Operators may gather aggregate information, which refers to information your computer automatically provides to us and that cannot be tied back to you as a specific individual. Examples include referral data (the web sites you visited just before and just after our site), the pages viewed, time spent at our Web site, and Internet Protocol (IP) addresses. An IP address is a number that is automatically assigned to your computer whenever you access the Internet. For example, when you request a page from one of our sites, our servers log your IP address to create aggregate reports on user demographics and traffic patterns and for purposes of system administration.

\n\n

Log Files

\n\n

Every time you request or download a file from the web site, the Operators may store data about these events and your IP address in a log file. The Operators may use this information to analyze trends, administer the web site, track users’ movements, and gather broad demographic information for aggregate use or for other business purposes.

\n\n

Cookies

\n\n

Our site may use a feature of your browser to set a “cookie” on your computer. Cookies are small packets of information that a web site’s computer stores on your computer. The Operators’s web sites can then read the cookies whenever you visit our site. We may use cookies in a number of ways, such as to save your password so you don’t have to re-enter it each time you visit our site, to deliver content specific to your interests and to track the pages you’ve visited. These cookies allow us to use the information we collect to customize your experience so that your visit to our site is as relevant and as valuable to you as possible.

\n

Most browser software can be set up to deal with cookies. You may modify your browser preference to provide you with choices relating to cookies. You have the choice to accept all cookies, to be notified when a cookie is set or to reject all cookies. If you choose to reject cookies, certain of the functions and conveniences of our web site may not work properly, and you may be unable to use those of the Operators’s services that require registration in order to participate, or you will have to re-register each time you visit our site. Most browsers offer instructions on how to reset the browser to reject cookies in the “Help” section of the toolbar. We do not link non-personal information from cookies to personally identifiable information without your permission.

\n\n

Web Beacons

\n\n

The Operators’s web site also may use web beacons to collect non-personal information about your use of our web site and the web sites of selected sponsors or members, your use of special promotions or newsletters, and other activities. The information collected by web beacons allows us to statistically monitor how many people are using our web site and selected sponsors’ sites; how many people open our emails; and for what purposes these actions are being taken. Our web beacons are not used to track your activity outside of our web site or those of our sponsors. The Operators do not link non-personal information from web beacons to personally identifiable information without your permission.

\n\n

Personal Information

\n\n

Personal information is information that is associated with your name or personal identity. The Operators use personal information to better understand your needs and interests and to provide you with better service. On some of the Operators web pages, you may be able to request information, subscribe to mailing lists, participate in online discussions, collaborate on documents, provide feedback, submit information into registries, register for events, apply for membership, or join technical committees or working groups. The types of personal information you provide to us on these pages may include name, address, phone number, e-mail address, user IDs, passwords, billing information, or credit card information.

\n\n

Members-Only Web Sites

\n\n

Information you provide on Operators’s membership applications is used to create a member profile, and some information may be shared with other of the Operators’s individual member representatives and organizations. Member contact information may be provided to other members on a secure web site to encourage and facilitate collaboration, research, and the free exchange of information among the Operators’s members, but we expressly prohibit members from using member contact information to send unsolicited commercial correspondence. The Operators’s members may be automatically added to the Operators’s mailing lists. From time to time, member information may be shared with event organizers and/or other organizations that provide additional benefits to the Operators’s members. By providing us with your personal information on the membership application, you expressly consent to our storing, processing, and distributing your information for these purposes.

\n\n
\n

How We Use Your Information

\n
\n\n

The Operators may use non-personal data that is aggregated for reporting about the Operators’s web site usability, performance, and effectiveness. It may be used to improve the experience, usability, and content of the site.

\n

The Operators may use personal information to provide services that support the activities of the Operators’s members and their collaboration on the Operators’s standards and projects. When accessing the Operators’s members-only web pages, your personal user information may be tracked by the Operators in order to support collaboration, ensure authorized access, and enable communication between members.

\n

Credit card information may be collected to facilitate membership applications; or if you purchase a product or service from our website, such information will not be kept longer than necessary for providing the services requested. Credit card numbers are used only for processing payment and are not used for other purposes. Payment processing services may be provided by a third-party payment service, and a management company external to the Operators may provide support for the financial activities of the Operators. the Operators may share your personal information with its partners to facilitate these transactions.

\n\n
\n

Information Sharing

\n
\n\n

The Operators does not sell, rent, or lease any individual’s personal information or lists of email addresses to anyone for marketing purposes, and we take commercially reasonable steps to maintain the security of this information. However, the Operators reserve the right to supply any such information to any organization into which the Operators may merge in the future or to which it may make any transfer in order to enable a third party to continue part or all of its mission. We also reserve the right to release personal information to protect our systems or business, when we reasonably believe you to be in violation of our Terms of Use or if we reasonably believe you to have initiated or participated in any illegal activity. In addition, please be aware that in certain circumstances, the Operators may be obligated to release your personal information pursuant to judicial or other government subpoenas, warrants, or other orders.

\n

In keeping with our open process, the Operators may maintain publicly accessible archives for the majority of our activities. For example, posting an email to any of the Operators’s-hosted public mail lists or discussion forums, subscribing to one of our newsletters or registering for one of our public meetings may result in your email address becoming part of the publicly accessible archives.

\n

On some sites, anonymous users are allowed to post content and/or participate in forum discussions. In such a case, since no user name can be associated with such a user, the IP address number of a user is used as an identifier. When posting content or messages to a Operators site anonymously, your IP address may be revealed to the public.

\n

If you are a registered member of an Operators's website or email list, you should be aware that some items of your personal information may be visible to other members and to the public. The Operators’s member databases may retain information about your name, e-mail address, company affiliation (if an organizational member), and such other personal address and identifying data as you choose to supply. That data may be visible to other of the Operators’s members and to the public. Your name, e-mail address, and other information you may supply also may be associated in the Operators’s publicly accessible records with the Operators’s various committees, working groups, and similar activities that you join, in various places, including: (i) the permanently-posted attendance and membership records of those activities; (ii) documents generated by the activity, which may be permanently archived; and, (iii) along with message content, in the permanent archives of the Operators’s e-mail lists, which also may be public.

\n

Please remember that any information (including personal information) that you disclose in public areas of our web site, such as forums, message boards, and news groups, becomes public information that others may collect, circulate, and use. Because we cannot and do not control the acts of others, you should exercise caution when deciding to disclose information about yourself or others in public forums such as these.

\n

Given the international scope of the Operators websites, personal information may be visible to persons outside your country of residence, including to persons in countries that your own country’s privacy laws and regulations deem deficient in ensuring an adequate level of protection for such information. If you are unsure whether this Privacy Policy is in conflict with applicable local rules, you should not submit your information. If you are located within the European Union, you should note that your information will be transferred to the United States, which is deemed by the European Union to have inadequate data protection. Nevertheless, in accordance with local laws implementing European Union Directive 95/46/EC of 24 October 1995 (“EU Privacy Directive”) on the protection of individuals with regard to the processing of personal data and on the free movement of such data, individuals located in countries outside of the United States of America who submit personal information do thereby consent to the general use of such information as provided in this Privacy Policy and to its transfer to and/or storage in the United States of America.

\n

If you do not want your personal information collected and used by the Operators, please do not visit the Operators’s web site or apply for membership of any of the Operators' websites or email lists.

\n\n
\n

Access to and Accuracy of Member Information

\n
\n\n

The Operators are committed to keeping the personal information of our members accurate. All the information you have submitted to us can be verified and changed. In order to do this, please email us a request. We may provide members with online access to their own personal profiles, enabling them to update or delete information at any time. To protect our members’ privacy and security, we also may take reasonable steps to verify identity, such as a user ID and password, before granting access to modify personal profile data. Certain areas of the Operators’s web sites may limit access to specific individuals through the use of passwords or other personal identifiers; a password prompt is your indication that a members-only resource is being accessed.

\n\n
\n

Security

\n
\n\n

The Operators make every effort to protect personal information by users of the web site, including using firewalls and other security measures on its servers. No server, however, is 100% secure, and you should take this into account when submitting personal or confidential information about yourself on any web site, including this one. Much of the personal information is used in conjunction with member services such as collaboration and discussion, so some types of personal information such as your name, company affiliation, and email address will be visible to other the Operators’s members and to the public. The Operators assume no liability for the interception, alteration, or misuse of the information you provide. You alone are responsible for maintaining the secrecy of your personal information. Please use care when use access this web site and provide personal information.

\n\n
\n

Opting Out

\n
\n\n

From time to time the Operators may email you electronic newsletters, announcements, surveys or other information. If you prefer not to receive any or all of these communications, you may opt out by following the directions provided within the electronic newsletters and announcements.

\n

If you have questions regarding this privacy policy, please contact us.

\n\n
\n
\n
\n )\n}","import React from 'react';\nimport GridContainer from '../../components/grid/GridContainer';\nimport GridItem from '../../components/grid/GridItem';\nimport styles from \"assets/jss/material-kit-react/views/componentsSections/typographyStyle.js\";\nimport { makeStyles } from \"@material-ui/core/styles\";\n\nconst useStyles = makeStyles(styles);\n\nexport default function About(props)\n{\n\n const classes = useStyles();\n \n return (\n
\n \n
\n
\n

About Us

\n
\n\n

When you want a unique, creative and special cake topper, AsiaWorld is the great place for you. With passion, talent and over 10 year experience in handicraft, AsiaWorld designs the most unique and cutest wedding cake topper and miniature you have ever seen.

\n

AsiaWorld clay figurine is perfect wedding cake topper or birthday cake topper to display for years. It is also meaningful keepsake gift for any special occasion as wedding, birthday, engagement, anniversary, graduation, baby shower, propose, etc. AsiaWorld also creates clay miniature for your important business partner/customer/employee as VIP presents, awards or door gifts.

\n

These personalized wedding cake toppers and clay figurines are made from customer’s images and idea so each one is handmade carefully with love. Clay is combined with different elements as fabric, wood

\n

AsiaWorld topper would like to honor you just the way you are through these clay figurines – they are as unique as you are. AsiaWorld topper aslo want to help you express your love with your loved ones, your friends, family or your business image in an unforgettable way with these lovely and impressive clay miniatures.

\n \n
\n
\n
\n )\n}","import React from 'react';\nimport GridContainer from '../../components/grid/GridContainer';\nimport GridItem from '../../components/grid/GridItem';\nimport styles from \"assets/jss/material-kit-react/views/componentsSections/typographyStyle.js\";\nimport { makeStyles } from \"@material-ui/core/styles\";\n\nconst useStyles = makeStyles(styles);\n\nexport default function Shipping(props)\n{\n\n const classes = useStyles();\n \n return (\n
\n \n
\n
\n

Shipping Policy

\n
\n\n

Thank you for visiting and shopping at AsiaWorld Topper. Following are the terms and conditions that constitute our Shipping Policy.

\n\n
\n

Worldwide Shipping Policy

\n
\n\n
\n

Shipment processing time

\n
\n\n

All orders are processed within 1-2 business days. Custom orders will take additional time to process. If we are experiencing a high volume of orders, shipments may be delayed by a few days. Please allow additional days in transit for delivery. If there will be a significant delay in shipment of your order, we will contact you via email or telephone.

\n\n
\n

Shipping rates & delivery estimates

\n
\n\n

Shipping charges for your order will be calculated and displayed at checkout. Changing your shipping method after your order may result in new shipping charges.

\n\n
\n

Shipment method

\n
\n\n

We ship anywhere in the world. We ship with whichever carrier will get your order to you in the time that you need it. We will work with you to ensure your order arrives to you in time.

\n

Delivery delays can occasionally occur.

\n\n
\n

Shipment confirmation & Order tracking

\n
\n\n

You will receive a Shipment Confirmation email once your order has shipped containing your tracking number(s). The tracking number will be active within 24 hours.

\n\n
\n

Customs, Duties and Taxes

\n
\n\n

AsiaWorld Topper is not responsible for any customs and taxes applied to your order. All fees imposed during or after shipping are the responsibility of the customer (tariffs, taxes, etc.).

\n\n
\n

Damages

\n
\n\n

AsiaWorld Topper is not liable for any products damaged or lost during shipping. If you received your order damaged, please contact the shipment carrier to file a claim. Please save all packaging materials and damaged goods before filing a claim.

\n\n
\n

Returns Policy

\n
\n\n

Our ​Return & Refund Policy​ provides detailed information about options and procedures for returning your order.

\n \n
\n
\n
\n )\n}","import React from 'react';\nimport GridContainer from '../../components/grid/GridContainer';\nimport GridItem from '../../components/grid/GridItem';\nimport styles from \"assets/jss/material-kit-react/views/componentsSections/typographyStyle.js\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport ContactUsSection from '../home/sections/ContactUsSection';\n\nconst useStyles = makeStyles(styles);\n\nexport default function Contact(props)\n{\n\n const classes = useStyles();\n \n return (\n
\n \n \n \n
\n )\n}","import React, { Suspense, lazy, useEffect } from \"react\";\nimport { BrowserRouter, Switch, Route } from \"react-router-dom\";\nimport Home from \"./views/home/home.js\";\nimport TopBanner from \"./components/common/topBanner.js\";\nimport Listing from \"./views/products/listing.js\";\nimport Details from \"./views/products/details.js\";\nimport { hot } from \"react-hot-loader/root\";\nimport PrivateRoute from \"./components/PrivateRoute\";\nimport AdminRoute from \"./components/AdminRoute\";\nimport Login from \"./views/login\";\nimport Logout from \"./views/logout\";\nimport Register from \"./views/register\";\n//import Admin from './views/admin/admin';\nimport Footer from \"components/Footer/Footer.js\";\nimport Loading from \"./components/common/loading\";\nimport ReactGA from \"react-ga4\";\n\nimport \"../src/assets/css/material-kit-react.css\";\nimport ErrorBoundary from \"components/error/ErrorBoundary.js\";\nimport HowItWorks from \"views/pages/howItWorks.js\";\nimport TermsConditions from \"views/pages/terms-and-conditions.js\";\nimport Privacy from \"views/pages/privacy.js\";\nimport About from \"views/pages/about.js\";\nimport Shipping from \"views/pages/shipping.js\";\nimport Contact from \"views/pages/contact.js\";\n\nconst Admin = lazy(() => import(\"./views/admin/admin\"));\n\nfunction initializeReactGA() {\n ReactGA.initialize(process.env.REACT_APP_GOOGLE_ANALYTICS_KEY);\n // ReactGA.pageview(window.location.pathname + window.location.search);\n}\n\nfunction App() {\n useEffect(() => {\n initializeReactGA();\n }, []);\n\n return (\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 process.env.NODE_ENV === \"development\" ? hot(App) : App;\n","// This optional code is used to register a service worker.\n// register() is not called by default.\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 subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\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 function register(config) {\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.href);\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/facebook/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. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\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://bit.ly/CRA-PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\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 // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\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 const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.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, config);\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","import {\n RECEIVE_PRODUCTS, REQUEST_PRODUCTS, RECEIVE_PRODUCT_COUNT, RECEIVE_ALL_PRODUCTS, RECEIVE_PRODUCT, REQUEST_SEARCH_RESULTS, RECEIVE_SEARCH_RESULTS\n , RECEIVE_CATEGORIES, REQUEST_CATEGORIES, REQUEST_PRODUCT_UPDATE, RECEIVE_PRODUCT_UPDATE\n} from '../_actions/actions.js';\n\nconst initialState = {\n products: [], searchResults: [], categories: [], isLoading: true, isError: false, product: {}, current_page: 1, current_pagesize: '20', current_offset: 0, current_sort: '3', current_sort_dir: 'asc'\n}\n\nexport default function productsReducer(state, action)\n{\n state = state || initialState;\n\n switch (action.type)\n {\n case REQUEST_PRODUCTS:\n return {\n ...state,\n products: [],\n isProductsLoading: true,\n isError: false\n };\n case RECEIVE_PRODUCTS:\n return {\n ...state,\n products: action.products,\n current_offset: action.current_offset,\n current_pagesize: action.current_pagesize,\n current_page: action.current_page,\n current_sort_dir: action.current_sort_dir,\n current_sort: action.current_sort,\n product_count: action.product_count,\n isProductsLoading: false,\n isError: false\n };\n case RECEIVE_PRODUCT:\n return {\n ...state,\n isLoading: false,\n isError: false,\n product: action.product\n };\n case RECEIVE_ALL_PRODUCTS:\n return {\n ...state,\n products: action.products,\n isProductsLoading: false,\n isError: false\n }; \n case RECEIVE_PRODUCT_COUNT:\n return {\n ...state,\n product_count: action.product_count\n }; \n case REQUEST_SEARCH_RESULTS:\n return {\n ...state,\n isProductsLoading: true,\n isError: false,\n searchResults: [],\n products: [],\n searchTerm: action.searchTerm\n };\n case RECEIVE_SEARCH_RESULTS:\n return {\n ...state,\n isProductsLoading: false,\n isError: false,\n searchResults: action.searchResults,\n searchResultCount: action.searchResultCount,\n searchTerm: action.searchTerm,\n current_offset: action.current_offset,\n current_pagesize: action.current_pagesize,\n current_page: action.current_page\n }; \n case REQUEST_CATEGORIES:\n return {\n ...state,\n isLoading: true,\n isError: false\n };\n case RECEIVE_CATEGORIES:\n return {\n ...state,\n isLoading: false,\n isError: false,\n categories: action.categories\n }; \n case REQUEST_PRODUCT_UPDATE:\n return {\n ...state,\n products: [],\n isProductsLoading: true,\n isError: false\n }; \n case RECEIVE_PRODUCT_UPDATE:\n return {\n ...state,\n products: action.products,\n categoryids: action.categoryids,\n product_count: action.product_count,\n isProductsLoading: false,\n isError: false\n }; \n default:\n return state;\n }\n}\n","import {\n STORE_SELECTIONS, GET_SELECTIONS\n} from '../_actions/customizeActions.js';\n\nconst initialState = {\n selections: []\n}\n\nexport default function customizeReducer(state, action)\n{\n state = state || initialState;\n\n switch (action.type)\n {\n case STORE_SELECTIONS:\n return {\n ...state,\n selections: action.selections\n };\n case GET_SELECTIONS:\n return {\n ...state,\n selections: action.selections\n };\n default:\n return state;\n }\n}\n","import {\n REQUEST_SESSION, RECEIVE_SESSION\n} from '../_actions/purchaseActions.js';\n\nconst initialState = {\n sessionid: {}\n}\n\nexport default function productsReducer(state, action)\n{\n state = state || initialState;\n\n switch (action.type)\n {\n case REQUEST_SESSION:\n return {\n ...state,\n sessionid: {}\n };\n case RECEIVE_SESSION:\n return {\n ...state,\n sessionid: action.sessionid\n };\n default:\n return state;\n }\n}\n","import {\n REQUEST_UPDATE_PRODUCT, RECEIVE_UPDATE_PRODUCT, REQUEST_PRODUCTS, RECEIVE_ALL_PRODUCTS\n} from '../_actions/adminActions.js';\n\nconst initialState = {\n success: {}\n}\n\nexport default function adminReducer(state, action)\n{\n state = state || initialState;\n\n switch (action.type)\n {\n case REQUEST_UPDATE_PRODUCT:\n return {\n ...state,\n success: null\n };\n case RECEIVE_UPDATE_PRODUCT:\n return {\n ...state,\n sessionid: action.success\n };\n case REQUEST_PRODUCTS:\n return {\n ...state,\n products: [],\n isProductsLoading: true,\n isError: false\n }; \n case RECEIVE_ALL_PRODUCTS:\n return {\n ...state,\n products: action.products,\n isProductsLoading: false,\n isError: false\n }; \n default:\n return state;\n }\n}\n","import { combineReducers } from 'redux';\nimport { connectRouter } from 'connected-react-router';\nimport productsReducer from './productsReducer';\nimport customizeReducer from './customizeReducer';\nimport purchaseReducer from './purchaseReducer';\nimport adminReducer from './adminReducer';\n\n\nconst createRootReducer = (history) => combineReducers({\n router: connectRouter(history),\n productsReducer,\n customizeReducer,\n purchaseReducer,\n adminReducer\n})\n\nexport default createRootReducer;","import { createStore, applyMiddleware, compose } from 'redux';\nimport {createBrowserHistory} from 'history'\nimport {routerMiddleware} from 'connected-react-router';\nimport thunk from 'redux-thunk';\nimport createRootReducer from '../_reducers/rootReducer';\nimport { persistReducer } from 'redux-persist';\nimport storage from 'redux-persist/lib/storage';\n\nexport const history = createBrowserHistory();\n\nconst persistConfig = {\n key: 'primary',\n storage,\n}\nexport default function configureStore()\n{\n// In development, use the browser's Redux dev tools extension if installed\n\tconst enhancers = [];\n\tconst isDevelopment = process.env.NODE_ENV === 'development';\n\tif (isDevelopment && typeof window !== 'undefined' && window.devToolsExtension) {\n\t\tenhancers.push(window.devToolsExtension());\n\t}\n\n const persistedReducer = persistReducer(persistConfig, createRootReducer(history));\n\n const store = createStore(\n persistedReducer,\n compose(\n applyMiddleware(\n routerMiddleware(history),\n thunk\n ),\n ...enhancers\n )\n )\n\n return store;\n}","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport { Provider } from 'react-redux';\n//import { persistStore } from 'redux-persist';\n//import { PersistGate } from 'redux-persist/integration/react';\nimport './index.css';\nimport App from './App';\nimport * as serviceWorker from './serviceWorker';\nimport { history } from './_stores/configureStore';\nimport configureStore from './_stores/configureStore';\nimport { ConnectedRouter } from 'connected-react-router';\n\n// Get the application-wide store instance, prepopulating with state from the server where available.\n\nconst store = configureStore();\n//const persistor = persistStore(store);\n\nconst render = () => {\n ReactDOM.render(\n \n {/* */}\n \n \n \n {/* */}\n ,\n document.getElementById('root'));\n}\n\nrender();\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: https://bit.ly/CRA-PWA\nserviceWorker.register();"],"sourceRoot":""}