{"version":3,"sources":["theme/palette.ts","hooks/useLogin.tsx","utils/axios.ts","_apis_/mock.ts","utils/mock-data/role.ts","utils/mock-data/email.ts","utils/mock-data/boolean.ts","utils/mock-data/company.ts","utils/mock-data/phoneNumber.ts","utils/mock-data/address.ts","utils/mock-data/name.ts","utils/mock-data/text.ts","utils/mock-data/number.ts","utils/mock-data/index.ts","_apis_/chat.ts","_apis_/mail.ts","_apis_/blog.ts","_apis_/user.ts","utils/fakeRequest.ts","utils/jwt.ts","_apis_/account.ts","_apis_/calendar.ts","_apis_/products.ts","_apis_/kanban.ts","locales/i18n.ts","utils/highlight.ts","redux/slices/mail.ts","redux/slices/chat.ts","redux/slices/blog.ts","redux/slices/user.ts","redux/slices/product.ts","redux/slices/calendar.ts","redux/slices/kanban.ts","redux/rootReducer.ts","redux/store.ts","contexts/mui/CollapseDrawerContext.tsx","contexts/ModalServerErrorContext.tsx","components/Logo.tsx","components/LoadingScreen.tsx","contexts/mui/JWTContext.tsx","hooks/mui/useCollapseDrawer.ts","components/MenuPopover.tsx","layouts/dashboard/TokenDetail.tsx","layouts/dashboard/AccountBar.tsx","components/settings/MultiLanguageSelector.tsx","layouts/dashboard/DashboardNavbar.tsx","components/NavSection.tsx","layouts/dashboard/DashboardSidebar.tsx","layouts/dashboard/index.tsx","layouts/LogoOnlyLayout.tsx","utils/avatars.tsx","components/modals/AvatarsBody.tsx","components/CreateManagerForm.tsx","pages/CreateManager.tsx","routes/index.tsx","theme/shape.ts","theme/typography.ts","theme/breakpoints.ts","theme/overrides/Rating.tsx","theme/overrides/TreeView.tsx","theme/overrides/Checkbox.tsx","theme/overrides/index.ts","theme/overrides/Fab.ts","theme/overrides/Tabs.ts","theme/overrides/Chip.tsx","theme/overrides/Card.ts","theme/overrides/Menu.ts","theme/overrides/Grid.ts","theme/overrides/Link.ts","theme/overrides/Input.ts","theme/overrides/Radio.ts","theme/overrides/Badge.ts","theme/overrides/Lists.ts","theme/overrides/Table.ts","theme/overrides/Paper.ts","theme/overrides/Alert.tsx","theme/overrides/Switch.ts","theme/overrides/Select.ts","theme/overrides/Button.ts","theme/overrides/Dialog.ts","theme/overrides/Avatar.ts","theme/overrides/Slider.ts","theme/overrides/Drawer.ts","theme/overrides/Pickers.ts","theme/overrides/Stepper.ts","theme/overrides/Tooltip.ts","theme/overrides/Popover.ts","theme/overrides/SvgIcon.ts","theme/overrides/DataGrid.tsx","theme/overrides/Skeleton.ts","theme/overrides/Timeline.ts","theme/overrides/Backdrop.ts","theme/overrides/Snackbar.ts","theme/overrides/Progress.ts","theme/overrides/Container.ts","theme/overrides/Accordion.ts","theme/overrides/IconButton.ts","theme/overrides/Typography.ts","theme/overrides/Pagination.ts","theme/overrides/ButtonGroup.ts","theme/overrides/Breadcrumbs.ts","theme/overrides/Autocomplete.ts","theme/overrides/ControlLabel.ts","theme/overrides/ToggleButton.ts","theme/overrides/LoadingButton.ts","theme/shadows.ts","theme/index.tsx","theme/globalStyles.tsx","hooks/mui/useAuth.ts","components/ScrollToTop.ts","components/GoogleAnalytics.tsx","components/NotistackProvider.tsx","components/ThemePrimaryColor.tsx","components/ThemeLocalization.tsx","components/charts/BaseOptionChart.tsx","components/youtube/Youtube.tsx","components/youtube/youtubeStorage.ts","components/Music.tsx","components/modals/MetamaskInstallModal.tsx","App.tsx","serviceWorkerRegistration.ts","reportWebVitals.ts","index.tsx","components/@material-extend/MIconButton.tsx","components/@material-extend/MHidden.tsx","contexts/ManagerContext.tsx","contexts/TokenTVCContext.tsx","hooks/useTranslations.ts","components/modals/BaseModal.tsx","hooks/useModal.tsx","contexts/MaintenanceContext.tsx","contracts/config.tsx","components/Scrollbar.tsx","hooks/mui/useSettings.ts","hooks/useUser.tsx","config.ts","contexts/SettingsContext.tsx","hooks/mui/useLocalStorage.ts","locales/wordings/useWordings.ts","utils/analytics.ts","components/Page.tsx","components/modals/ServerErrorBody.tsx","pages/InvalidChain.tsx","hooks/useCheckChain.tsx","contexts/CharacterNFTContext.tsx","utils/addressShort.ts","components/modals/TransactionErrorBody.tsx","components/modals/TransactionInProcessBody.tsx","components/animate/variants/Wrap.ts","components/animate/variants/Actions.ts","components/animate/variants/background/BackgroundPan.ts","components/animate/variants/zoom/ZoomIn.ts","components/animate/variants/zoom/ZoomOut.ts","components/animate/variants/bounce/BounceIn.ts","components/animate/variants/bounce/BounceOut.ts","components/animate/MotionContainer.tsx","components/animate/ButtonAnimate.tsx","hooks/useMysteryBoxDetails.tsx","hooks/useAllMysteryBoxDetails.tsx"],"names":["createGradient","color1","color2","PRIMARY","lighter","light","main","dark","darker","INFO","SUCCESS","WARNING","ERROR","GREY","alpha","GRADIENTS","primary","info","success","warning","error","COMMON","common","black","white","contrastText","secondary","grey","gradients","chart","violet","blue","green","yellow","red","divider","action","hover","selected","disabled","disabledBackground","focus","hoverOpacity","disabledOpacity","palette","text","background","paper","default","neutral","active","useLogin","useMoralis","authenticate","logout","account","user","web3","isAuthenticated","isWeb3Enabled","isWeb3EnableLoading","web3EnableError","useChain","switchNetwork","chainId","listenToUpdate","useUser","sessionWordings","useWordings","deployChainId","process","checkChain","a","useEffect","init","Moralis","Web3","enableWeb3","attributes","ethAddress","onAccountsChanged","provider","givenProvider","initSession","signingMessage","signMessage","onError","onSuccess","endSession","get","axiosInstance","axios","create","interceptors","response","use","Promise","reject","data","axiosMockAdapter","AxiosMockAdapter","delayResponse","role","email","boolean","company","phoneNumber","fullAddress","country","fullName","firstName","lastName","title","sentence","description","price","rating","age","percent","mockData","id","index","time","sub","Date","days","hours","address","name","number","image","cover","feed","product","avatar","MY_CONTACT","username","contacts","Array","map","_","dotCase","phone","lastActivity","status","sample","position","conversations","participants","type","unreadCount","messages","uuidv4","body","contentType","attachments","createdAt","senderId","minutes","findContactByUsername","find","_contact","findConversationById","conversationId","_conversation","mock","onGet","reply","config","query","params","results","cleanQuery","toLowerCase","trim","filter","contact","includes","console","message","conversationKey","conversation","push","participantId","_participant","onPost","request","JSON","parse","recipientIds","participantIds","length","_participantIds","forEach","isEmpty","xor","findConversationByParticipantIds","recipientId","Error","createLabelIds","createAttachment","FOLDER","labels","color","mails","labelIds","folder","isImportant","isStarred","isUnread","subject","files","from","to","systemLabel","customLabel","label","_label","mail","filterMails","mailId","_mail","POST_BODY","users","avatarUrl","POST_COMMENTS","postedAt","replyComment","userId","tagUser","posts","view","random","comment","share","favorite","author","tags","favoritePerson","comments","step","maxLength","loadMore","sort","b","valueOf","slice","post","_post","paramCase","recentPosts","profile","follower","following","quote","school","facebookLink","instagramLink","linkedinLink","twitterLink","totalPost","state","city","zipCode","isVerified","followers","isFollowed","friends","gallery","postAt","imageUrl","cards","cardNumber","cardType","addressBook","street","invoices","notifications","activityComments","activityAnswers","activityFollows","applicationNews","applicationProduct","applicationBlog","isLiked","media","personLikes","fakeRequest","res","setTimeout","isValidToken","accessToken","decoded","jwtDecode","currentTime","now","exp","setSession","localStorage","setItem","defaults","headers","Authorization","removeItem","JWT_SECRET","JWT_EXPIRES_IN","displayName","password","photoURL","about","isPublic","_user","sign","expiresIn","split","verify","COLOR_OPTIONS","events","allDay","textColor","start","end","add","set","setColorAndTime","event","eventId","updateEvent","_event","assign","PRODUCT_NAME","PRODUCT_COLOR","PRODUCT_TAGS","PRODUCT_SIZE","products","images","code","sku","priceSale","totalRating","totalReview","ratings","starCount","reviewCount","reviews","isPurchased","helpful","colors","inventoryType","sizes","available","sold","category","gender","_product","columnIds","cardIds","memberIds","COMMENTS","messageType","board","assignee","due","addDays","getTime","completed","columns","columnOrder","column","columnId","updateColumn","columnIndex","findIndex","c","card","i18n","LanguageDetector","initReactI18next","resources","en","translations","enLocales","es","esLocales","lng","getItem","fallbackLng","debug","ns","defaultNS","interpolation","escapeValue","hljs","configure","languages","window","createSlice","initialState","isLoading","byId","allIds","reducers","startLoading","hasError","payload","getLabelsSuccess","getMailsSuccess","array","key","reduce","accumulator","current","objFromArray","Object","keys","getMailSuccess","activeConversationId","recipients","getContactsSuccess","getConversationsSuccess","getConversationSuccess","onSendMessage","newMessage","messageId","markConversationAsReadSuccess","getParticipantsSuccess","resetActiveConversation","addRecipients","actions","hasMore","getPostsSuccess","getPostsInitial","getMorePosts","setIndex","noHasMore","getPostSuccess","getRecentPostsSuccess","myProfile","userList","getProfileSuccess","getUsersSuccess","deleteUser","getFollowersSuccess","onToggleFollow","followerId","handleToggle","getFriendsSuccess","getGallerySuccess","getUserListSuccess","getCardsSuccess","getAddressBookSuccess","getInvoicesSuccess","getNotificationsSuccess","sortBy","filters","priceRange","checkout","activeStep","cart","subtotal","total","discount","shipping","billing","getProductsSuccess","getProductSuccess","sortByProducts","filterProducts","getCart","sum","cartItem","quantity","addCart","isEmptyCart","uniqBy","deleteCart","updateCart","item","resetCart","onBackStep","onNextStep","onGotoStep","goToStep","increaseQuantity","productId","decreaseQuantity","createBilling","applyDiscount","applyShipping","isOpenModal","selectedEventId","selectedRange","getEventsSuccess","createEventSuccess","newEvent","updateEventSuccess","deleteEventSuccess","deleteEvent","selectEvent","selectRange","openModal","closeModal","getBoardSuccess","createColumnSuccess","newColumn","persistCard","persistColumn","addTask","deleteTask","cardId","omit","updateColumnSuccess","deleteColumnSuccess","deletedColumn","rootPersistConfig","storage","keyPrefix","whitelist","productPersistConfig","rootReducer","combineReducers","mailReducer","chat","chatReducer","blog","blogReducer","userReducer","calendar","calendarReducer","kanban","kanbanReducer","persistReducer","productReducer","store","configureStore","reducer","middleware","getDefaultMiddleware","serializableCheck","immutableCheck","persistor","persistStore","dispatch","useReduxSelector","collapseClick","collapseHover","onToggleCollapse","onHoverEnter","onHoverLeave","CollapseDrawerContext","createContext","CollapseDrawerProvider","children","theme","useTheme","isMobile","useMediaQuery","breakpoints","down","useState","click","collapse","setCollapse","Provider","value","isCollapse","open","handleOpen","handleClose","ModalServerErrorContext","ModalServerErrorProvider","setOpen","Logo","url","sx","mode","Box","component","src","width","height","Types","RootStyle","styled","display","alignItems","justifyContent","backgroundColor","ProgressBarStyle","GlobalStyles","styles","pointerEvents","top","left","zIndex","snackbar","boxShadow","right","opacity","transform","ProgressBar","NProgress","showSpinner","useMemo","done","LoadingScreen","other","motion","div","initial","rotateY","animate","transition","duration","ease","repeatDelay","repeat","Infinity","scale","rotate","borderRadius","border","isInitialized","JWTReducer","AuthContext","AuthProvider","useReducer","Initial","initialize","login","Login","register","Register","Logout","method","resetPassword","log","updateProfile","useCollapseDrawer","useContext","ArrowStyle","up","content","borderRight","borderBottom","MenuPopover","Popover","anchorOrigin","vertical","horizontal","transformOrigin","PaperProps","mt","ml","overflow","customShadows","z20","TokenDetail","Grid","container","wrap","mr","padding","Avatar","alt","Typography","variant","withDecimals","decimals","substring","cutValue","contractConfig","characters","AccountBar","TVCBalance","TokenTVCContext","balance","getBalance","anchorRef","useRef","Stack","direction","maxWidth","Hidden","smDown","toString","p","bgcolor","IconButton","ref","onClick","shortAddress","onClose","anchorEl","my","px","smUp","mb","pt","Button","fullWidth","disconnect","MultiLanguageSelector","useTranslations","allLang","onChangeLang","currentLang","React","setAnchorEl","Boolean","e","newLang","currentTarget","icon","Menu","lang","MenuItem","AppBar","backdropFilter","WebkitBackdropFilter","DRAWER_WIDTH","ToolbarStyle","Toolbar","minHeight","spacing","DashboardNavbar","onOpenSidebar","accountChain","menu2Fill","flexGrow","connect","ListSubheaderStyle","props","ListSubheader","disableSticky","disableGutters","typography","overline","marginTop","marginBottom","paddingLeft","ListItemStyle","ListItemButton","body2","textTransform","paddingRight","bottom","borderTopLeftRadius","borderBottomLeftRadius","ListItemIconStyle","ListItemIcon","NavItem","isShow","pathname","useLocation","path","isActiveRoot","matchPath","activeRootStyle","fontWeight","selectedOpacity","activeSubStyle","ListItemText","disableTypography","Icon","arrowIosDownwardFill","arrowIosForwardFill","Collapse","in","timeout","unmountOnExit","List","disablePadding","isActiveSub","RouterLink","transitions","NavSection","navConfig","list","subheader","items","flexShrink","DashboardSidebar","isOpenSidebar","onCloseSidebar","offerWordings","menuWordings","navigate","useNavigate","basic","useAllMysteryBoxDetails","sidebarConfig","shop","myMysteryBox","myCollection","playGame","renderContent","Scrollbar","flexDirection","py","pb","textAlign","gutterBottom","mysteryBox","fromOnly","priceNative","buyNow","Drawer","MainStyle","paddingTop","APP_BAR_MOBILE","paddingBottom","APP_BAR_DESKTOP","DashboardLayout","complex","HeaderStyle","lineHeight","LogoOnlyLayout","avatars","AvatarsBody","setAvatar","purchaseErrorModalWordings","Container","fixed","xs","md","svg","style","cursor","validationSchema","Yup","required","min","max","speciality","star","currencies","CreateManagerForm","useMoralisCloudFunction","fetch","setTVCBalance","setError","collection","setCollection","ManagerContext","setManager","manager","setUpdate","getCredential","useModal","BaseModal","buying","setBuying","setName","setAge","managerAvatarId","especiality","setSpeciality","tokenId","setStar","hasCredential","editing","setEditing","credentialWording","managerImageId","autoFetch","createCredential","createData","credentialError","updateCredential","updateData","balanceMGER","formik","useFormik","enableReinitialize","initialValues","validateOnChange","validateOnBlur","onSubmit","values","Card","fontSize","handleSubmit","TextField","back","onChange","target","touched","errors","helperText","Number","select","option","marginRight","experience","talent","totalEnergy","moral","Divider","credential","update","obtain","TransactionErrorBody","TransactionInProcessBody","CreateManager","invalidChain","useCheckChain","Page","InvalidChain","Loadable","Component","isDashboard","fallback","Router","maintenanceGral","MaintenanceContext","useRoutes","element","replace","MaintenancePage","Shop","MyMysteryBox","MyCollection","MyManager","SharedManager","PlayGame","OvertimeGame","DuelsGame","NotFound","lazy","shape","borderRadiusSm","borderRadiusMd","pxToRem","responsiveFontSizes","sm","lg","fontFamily","fontWeightRegular","fontWeightMedium","fontWeightBold","h1","h2","h3","h4","h5","h6","subtitle1","subtitle2","body1","caption","letterSpacing","button","xl","ICON_SMALL","ICON_LARGE","ICON","SvgIcon","starFill","ICON_SIZE","d","CheckedIcon","IndeterminateIcon","ComponentsOverrides","merge","MuiFab","defaultProps","styleOverrides","root","z8","extended","Fab","MuiTab","borderTopRightRadius","minWidth","labelIcon","wrapper","whiteSpace","textColorInherit","MuiTabPanel","MuiTabScrollButton","Tabs","MuiChip","deleteIcon","closeCircleFill","colorDefault","outlined","borderColor","avatarColorInfo","avatarColorSuccess","avatarColorWarning","avatarColorError","Chip","MuiCard","z16","MuiCardHeader","titleTypographyProps","subheaderTypographyProps","MuiCardContent","MuiMenuItem","MuiGrid","MuiLink","underline","MuiInputBase","input","MuiInput","borderBottomColor","MuiFilledInput","MuiOutlinedInput","Input","MuiRadio","Radio","MuiBadge","dot","MuiListItemIcon","MuiListItemAvatar","MuiListItemText","multiline","Lists","MuiTableRow","MuiTableCell","head","borderBottomRightRadius","stickyHeader","backgroundImage","MuiTablePagination","borderTop","toolbar","selectIcon","Table","MuiPaper","elevation","isLight","standardStyle","filledStyle","outlinedStyle","MuiAlert","iconMapping","infoFill","alertCircleFill","checkmarkCircle2Fill","alertTriangleFill","marginLeft","standardInfo","standardSuccess","standardWarning","standardError","filledInfo","filledSuccess","filledWarning","filledError","outlinedInfo","outlinedSuccess","outlinedWarning","outlinedError","Alert","MuiSwitch","thumb","z1","track","switchBase","Switch","MuiSelect","IconComponent","ExpandMoreRoundedIcon","MuiButton","sizeLarge","containedInherit","containedPrimary","containedSecondary","containedInfo","containedSuccess","containedWarning","containedError","outlinedInherit","textInherit","MuiRating","emptyIcon","iconEmpty","sizeSmall","Rating","MuiDialog","z24","margin","paperFullWidth","MuiDialogTitle","MuiDialogContent","MuiDialogActions","Dialog","MuiAvatar","MuiAvatarGroup","MuiSlider","size","markLabel","valueLabel","Slider","MuiDrawer","modal","MuiStepConnector","line","Stepper","MuiTooltip","tooltip","arrow","Tooltip","MuiPopover","z12","MuiSvgIcon","fontSizeSmall","fontSizeLarge","MuiCheckbox","checkedIcon","indeterminateIcon","Checkbox","MuiDataGrid","MuiGridMenu","MuiGridFilterForm","MuiGridPanelFooter","DataGrid","MuiSkeleton","animation","Skeleton","MuiTimelineDot","MuiTimelineConnector","Timeline","MuiTreeView","defaultCollapseIcon","minusSquareOutline","defaultExpandIcon","plusSquareOutline","defaultEndIcon","closeSquareOutline","MuiTreeItem","iconContainer","TreeView","varLow","varHigh","MuiBackdrop","Backdrop","MuiSnackbarContent","MuiLinearProgress","bar","colorPrimary","buffer","Progress","MuiContainer","MuiAccordion","MuiAccordionSummary","expandIconWrapper","Accordion","MuiIconButton","MuiTypography","paragraph","MuiPaginationItem","textPrimary","outlinedPrimary","Pagination","styleContained","MuiButtonGroup","variants","ButtonGroup","MuiBreadcrumbs","separator","Breadcrumbs","MuiAutocomplete","Autocomplete","MuiFormControlLabel","MuiFormHelperText","MuiFormLabel","ControlLabel","MuiToggleButton","ToggleButton","MuiLoadingButton","LIGHT_MODE","DARK_MODE","createShadow","transparent1","transparent2","transparent3","createCustomShadow","transparent","shadows","ThemeConfig","useSettings","themeMode","themeDirection","themeOptions","createTheme","components","componentsOverride","StyledEngineProvider","injectFirst","ThemeProvider","CssBaseline","boxSizing","html","WebkitOverflowScrolling","MozAppearance","WebkitAppearance","textarea","img","WebkitFilter","useAuth","context","ScrollToTop","scrollTo","GA_MEASUREMENT_ID","googleAnalyticsConfig","GoogleAnalytics","async","SnackbarStyles","SnackbarIcon","NotistackProvider","dense","maxSnack","autoHideDuration","iconVariant","ThemePrimaryColor","defaultTheme","setColor","ThemeLocalization","systemValue","BaseOptionChartStyle","YoutubeStyle","YouTube","Youtube","youtubeFunctions","setYoutubeFunctions","getYoutubeUserData","playlist","currentSong","autoplay","volume","youtubeUserData","setYoutubeUserData","mainIconColor","lightIconColor","paused","setPaused","playerOptions","playerVars","enablejsapi","origin","listType","loop","rel","modestbranding","fs","controls","iv_load_policy","youtubeData","stringify","handleSong","nextVideo","previousVideo","opts","onReady","playVideoAt","stopVideo","setVolume","playVideo","onPlay","videoId","getPlaylistIndex","htmlColor","pauseVideo","unMute","Music","musicWordings","document","drawer","prev","closeFill","musicFill","pr","pl","InstallMetamaskModal","metamaskInstallModalWordings","descLine1","descLine2","href","buttonText","App","ServerErrorBody","location","hostname","match","reportWebVitals","onPerfEntry","Function","then","getCLS","getFID","getFCP","getLCP","getTTFB","moralisConfig","appId","serverUrl","ReactDOM","render","loading","LocalizationProvider","dateAdapter","AdapterDateFns","getElementById","navigator","serviceWorker","ready","registration","unregister","catch","MIconButton","forwardRef","MHidden","breakpoint","hiddenUp","hiddenDown","urlImageCharacter","urlImageManager","ManagerProvider","userAddress","getData","getTVCBalance","TokenTVCProvider","undefined","LANGS","enUS","esES","useTranslation","translate","t","langStorage","newlang","changeLanguage","_lang","closable","m","maintenanceMyCollection","maintenanceMyMysteryBox","maintenancePlayGame","maintenanceOvertime","maintenanceDuels","maintenanceShows","maintenanceSchool","maintenanceCreateManager","maintenanceGetManager","maintenanceUpdateManager","maintenanceGetBalance","MaintenanceProvider","setMaintenanceGral","setMaintenanceMyCollection","setMaintenanceMyMysteryBox","setMaintenancePlayGame","setMaintenanceOvertime","setMaintenanceDuels","setMaintenanceShows","setMaintenanceSchool","setMaintenanceCreateManager","setMaintenanceGetManager","setMaintenanceGetBalance","setMaintenanceUpdateManager","charactersContractAddress","charactersInterface","utils","Interface","Characters","abi","charactersContract","Contract","mysteryBoxContractAddress","mysteryBoxInterface","MysteryBox","mysteryBoxContract","promocodeContractAddress","promocodeInterface","Promocode","promocodeContract","contract","interface","functions","buyMysteryBoxNative","buyMysteryBoxTVC","mysteryBoxDetails","promocode","validateCode","SimpleBarStyle","SimpleBarReact","maxHeight","test","userAgent","overflowX","clickOnTrack","SettingsContext","providerURL","REACT_APP_PROVIDER_URL","providers","HttpProvider","setBalance","eth","err","result","formatEther","Query","subscribe","on","object","REACT_APP_FIREBASE_API_KEY","REACT_APP_FIREBASE_AUTH_DOMAIN","REACT_APP_FIREBASE_DATABASE_URL","REACT_APP_FIREBASE_PROJECT_ID","REACT_APP_FIREBASE_STORAGE_BUCKET","REACT_APP_FIREBASE_MESSAGING_SENDER_ID","REACT_APP_FIREBASE_APPID","REACT_APP_FIREBASE_MEASUREMENT_ID","REACT_APP_AWS_COGNITO_USER_POOL_ID","REACT_APP_AWS_COGNITO_CLIENT_ID","REACT_APP_AUTH0_CLIENT_ID","REACT_APP_AUTH0_DOMAIN","REACT_APP_MAP_MAPBOX","REACT_APP_GA_MEASUREMENT_ID","PRIMARY_COLOR","SetColor","themeColor","DEFAULT","PURPLE","CYAN","BLUE","ORANGE","RED","themeStretch","onChangeMode","onChangeDirection","onChangeColor","onToggleStretch","colorOption","SettingsProvider","defaultValue","storedValue","setValue","listener","storageArea","newValue","addEventListener","removeEventListener","currentValue","useLocalStorage","settings","setSettings","infoShop","boxesWordings","premium","lowCharacteristics","highCharacteristics","extremeCharacteristics","new","buy","nftWordings","singer","energy","silver","silverBrown","gold","goldRose","platinum","platinumFire","diamond","apprentice","amateur","professional","legend","managerWordings","desc1","desc2","discountOrderModalWordings","discountCodes","apply","subTotal","purchaseCongratsModalWordings","serverErrorModalWordings","descLine3","limitOvertimeModalWordings","announce","limitOvertimeByUserModalWordings","titleGetCred","metamaskModalWordings","metamaskMyCollectionModalWordings","openNFTModalWordings","emptyMysteryBoxWordings","emptyNFTWordings","maintenanceWordings","bannerWordings","invalidChainWordings","processingTranslationWording","availableStatusWordings","soldOut","page404Wordings","labelWordings","limitedEdition","comingSoon","boxPendingAlert","timeWordings","hour","minute","seconds","second","whiteListAnnounceWordings","description1","description2","date","listing","preSale","btn","cancelParticipation","acceptParticipation","acceptResponse","cancelResponse","rejected","accepted","base","acceptTitle","declineTitle","acceptDescription","declineDescription","pageview","targetId","gtag","setup","setupEvent","sendPageViewEvent","useCallback","page_path","animationData","disconnectAnimation","i","invalidChainAnimation","chain","chainName","setInvalidChain","fetchMyCollection","collectionError","CharacterNFTContext","CharacterNFTProvider","str","errorAnimation","wordings","blockChainAnimation","varWrapEnter","staggerChildren","varSmallClick","tap","varMediumClick","TRANSITION","gradient","deg","DISTANCE","IN","OUT","TRANSITION_ENTER","TRANSITION_EXIT","translateY","translateX","varBounceIn","exit","y","scaleY","x","scaleX","MotionContainer","ButtonAnimate","mediumClick","whileTap","whileHover","useMysteryBoxDetails","useWeb3ExecuteFunction","contractAddress","functionName","_mysteryBoxId","isFetching","box","setBox","dataBox","priceNativeDesc","priceTVC","priceTVCDesc","priceNativeBN","priceNativeDescBN","priceTVCBN","priceTVCDescBN","arrayFreqs","freq","stock","dataToBox","boxBasic","errorBasic","fetchBasic","isFetchingBasic","isLoadingBasic","boxCommon","errorCommon","fetchCommon","isFetchingCommon","isLoadingCommon","boxPremium","errorPremium","fetchPremium","isFetchingPremium","isLoadingPremium","setBasic","setCommon","setPremium","getAllBoxes"],"mappings":"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CA,iCACA,4BACA,yBACA,qBACA,4BACA,qBCxCWC,EAAU,EACrB,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GCxCWC,EAAU,CACrB,qBACA,+BACA,sBACA,6BACA,aACA,mBACA,mCACA,eACA,6BACA,mBACA,iCACA,iBACA,0BACA,iBACA,4BACA,gBACA,cACA,cACA,mBACA,cACA,iBACA,oBACA,oBACA,eACA,mBACA,aACA,0BACA,cACA,0BACA,8BACA,6BACA,iBACA,WACA,yBACA,mBACA,iBACA,kBACA,0BACA,kBACA,oBCxCWC,EAAc,CACzB,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,iBCxCWC,EAAc,CACzB,qDACA,sDACA,2DACA,sDACA,mDACA,8DACA,4DACA,6DACA,qDACA,2DACA,oDACA,mDACA,uDACA,kDACA,4DACA,wDACA,uDACA,oDACA,oDACA,oDACA,oDACA,uDACA,kDACA,sDACA,mDACA,sDACA,wDACA,oDACA,0DACA,qDACA,mDACA,wDACA,mDACA,sDACA,2DACA,sDACA,wDACA,uDACA,qDACA,+CAGWC,EAAU,CACrB,QACA,aACA,uBACA,aACA,QACA,UACA,eACA,UACA,QACA,OACA,UACA,QACA,WACA,0BACA,UACA,QACA,SACA,WACA,QACA,mCACA,YACA,WACA,UACA,SACA,SACA,WACA,UACA,yBACA,UACA,QACA,kBACA,2BACA,YACA,SACA,SACA,cACA,SACA,SACA,QACA,WCnFWC,EAAW,CACtB,gBACA,gBACA,aACA,iBACA,cACA,kBACA,sBACA,gBACA,YACA,gBACA,eACA,iBACA,iBACA,eACA,gBACA,iBACA,kBACA,eACA,cACA,cACA,eACA,iBACA,qBACA,gBACA,cACA,gBACA,cACA,kBACA,oBACA,gBACA,iBACA,cACA,cACA,eACA,iBACA,kBACA,cACA,YACA,oBACA,kBAGWC,EAAY,CACvB,SACA,QACA,OACA,UACA,OACA,QACA,OACA,QACA,OACA,YACA,WACA,WACA,MACA,SACA,QACA,QACA,WACA,QACA,QACA,QACA,OACA,OACA,MACA,UACA,QACA,OACA,QACA,QACA,SACA,QACA,SACA,QACA,QACA,YACA,SACA,UACA,SACA,UACA,QACA,YAGWC,EAAW,CACtB,UACA,UACA,OACA,OACA,WACA,YACA,SACA,SACA,QACA,QACA,OACA,WACA,UACA,UACA,QACA,QACA,UACA,SACA,SACA,UACA,YACA,YACA,cACA,WACA,OACA,SACA,SACA,UACA,SACA,SACA,QACA,cACA,YACA,WACA,SACA,UACA,QACA,UACA,YACA,YC9HWC,EAAQ,CACnB,mDACA,6DACA,uDACA,sDACA,yEACA,mDACA,iDACA,sDACA,4DACA,4CACA,mEACA,8CACA,oDACA,yEACA,gCACA,oDACA,kDACA,yDACA,yDACA,iCACA,0BACA,0CACA,yBACA,qCACA,qBACA,mDACA,8BACA,4BACA,yBACA,uDACA,iCACA,6BACA,qBACA,6DACA,iCACA,0CACA,6BACA,iCACA,2BACA,wCAGWC,EAAW,CACtB,qDACA,uCACA,0DACA,oCACA,yCACA,sCACA,uEACA,kDACA,iEACA,gCACA,sEACA,8FACA,iFACA,wFACA,+BACA,qCACA,sEACA,0CACA,gCACA,sDACA,cACA,sBACA,8DACA,mEACA,8DACA,8DACA,2BACA,yCACA,sEACA,uDACA,oCACA,gEACA,gEACA,mEACA,8CACA,0CACA,+CACA,iCACA,8CACA,kDAGWC,EAAc,CACzB,6NACA,8PACA,0NACA,qSACA,yIACA,8KACA,6HACA,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","file":"static/js/main.840b2c24.chunk.js","sourcesContent":["import { alpha } from '@mui/material/styles';\n\n// ----------------------------------------------------------------------\n\nfunction createGradient(color1: string, color2: string) {\n return `linear-gradient(to bottom, ${color1}, ${color2})`;\n}\n\ninterface GradientsPaletteOptions {\n primary: string;\n info: string;\n success: string;\n warning: string;\n error: string;\n}\n\ninterface ChartPaletteOptions {\n violet: string[];\n blue: string[];\n green: string[];\n yellow: string[];\n red: string[];\n}\n\ndeclare module '@mui/material/styles/createPalette' {\n interface TypeBackground {\n neutral: string;\n }\n interface SimplePaletteColorOptions {\n lighter: string;\n darker: string;\n }\n interface PaletteColor {\n lighter: string;\n darker: string;\n }\n interface Palette {\n gradients: GradientsPaletteOptions;\n chart: ChartPaletteOptions;\n }\n interface PaletteOptions {\n gradients: GradientsPaletteOptions;\n chart: ChartPaletteOptions;\n }\n}\n\ndeclare module '@mui/material' {\n interface Color {\n 0: string;\n 500_8: string;\n 500_12: string;\n 500_16: string;\n 500_24: string;\n 500_32: string;\n 500_48: string;\n 500_56: string;\n 500_80: string;\n }\n}\n\n// SETUP COLORS\nconst PRIMARY = {\n lighter: '#C8FACD',\n light: '#5BE584',\n main: '#00AB55',\n dark: '#007B55',\n darker: '#005249'\n};\nconst SECONDARY = {\n lighter: '#D6E4FF',\n light: '#84A9FF',\n main: '#3366FF',\n dark: '#1939B7',\n darker: '#091A7A'\n};\nconst INFO = {\n lighter: '#D0F2FF',\n light: '#74CAFF',\n main: '#1890FF',\n dark: '#0C53B7',\n darker: '#04297A'\n};\nconst SUCCESS = {\n lighter: '#E9FCD4',\n light: '#AAF27F',\n main: '#54D62C',\n dark: '#229A16',\n darker: '#08660D'\n};\nconst WARNING = {\n lighter: '#FFF7CD',\n light: '#FFE16A',\n main: '#FFC107',\n dark: '#B78103',\n darker: '#7A4F01'\n};\nconst ERROR = {\n lighter: '#FFE7D9',\n light: '#FFA48D',\n main: '#FF4842',\n dark: '#B72136',\n darker: '#7A0C2E'\n};\n\nconst GREY = {\n 0: '#FFFFFF',\n 100: '#F9FAFB',\n 200: '#F4F6F8',\n 300: '#DFE3E8',\n 400: '#C4CDD5',\n 500: '#919EAB',\n 600: '#637381',\n 700: '#454F5B',\n 800: '#212B36',\n 900: '#161C24',\n 500_8: alpha('#919EAB', 0.08),\n 500_12: alpha('#919EAB', 0.12),\n 500_16: alpha('#919EAB', 0.16),\n 500_24: alpha('#919EAB', 0.24),\n 500_32: alpha('#919EAB', 0.32),\n 500_48: alpha('#919EAB', 0.48),\n 500_56: alpha('#919EAB', 0.56),\n 500_80: alpha('#919EAB', 0.8)\n};\n\nconst GRADIENTS = {\n primary: createGradient(PRIMARY.light, PRIMARY.main),\n info: createGradient(INFO.light, INFO.main),\n success: createGradient(SUCCESS.light, SUCCESS.main),\n warning: createGradient(WARNING.light, WARNING.main),\n error: createGradient(ERROR.light, ERROR.main)\n};\n\nconst CHART_COLORS = {\n violet: ['#826AF9', '#9E86FF', '#D0AEFF', '#F7D2FF'],\n blue: ['#2D99FF', '#83CFFF', '#A5F3FF', '#CCFAFF'],\n green: ['#2CD9C5', '#60F1C8', '#A4F7CC', '#C0F2DC'],\n yellow: ['#FFE700', '#FFEF5A', '#FFF7AE', '#FFF3D6'],\n red: ['#FF6C40', '#FF8F6D', '#FFBD98', '#FFF2D4']\n};\n\nconst COMMON = {\n common: { black: '#000', white: '#fff' },\n primary: { ...PRIMARY, contrastText: '#fff' },\n secondary: { ...SECONDARY, contrastText: '#fff' },\n info: { ...INFO, contrastText: '#fff' },\n success: { ...SUCCESS, contrastText: GREY[800] },\n warning: { ...WARNING, contrastText: GREY[800] },\n error: { ...ERROR, contrastText: '#fff' },\n grey: GREY,\n gradients: GRADIENTS,\n chart: CHART_COLORS,\n divider: GREY[500_24],\n action: {\n hover: GREY[500_8],\n selected: GREY[500_16],\n disabled: GREY[500_80],\n disabledBackground: GREY[500_24],\n focus: GREY[500_24],\n hoverOpacity: 0.08,\n disabledOpacity: 0.48\n }\n};\n\nconst palette = {\n light: {\n ...COMMON,\n text: { primary: GREY[800], secondary: GREY[600], disabled: GREY[500] },\n background: { paper: '#fff', default: '#fff', neutral: GREY[200] },\n action: { active: GREY[600], ...COMMON.action }\n },\n dark: {\n ...COMMON,\n text: { primary: '#fff', secondary: GREY[500], disabled: GREY[600] },\n background: { paper: GREY[800], default: GREY[900], neutral: GREY[500_16] },\n action: { active: GREY[500], ...COMMON.action }\n }\n};\n\nexport default palette;\n","import { useMoralis, useChain } from 'react-moralis';\nimport { useEffect } from 'react';\nimport useUser from 'hooks/useUser';\nimport Moralis from 'moralis';\nimport useWordings from 'locales/wordings/useWordings';\n\nexport default function useLogin() {\n const {\n authenticate,\n logout,\n account,\n user,\n web3,\n isAuthenticated,\n isWeb3Enabled,\n isWeb3EnableLoading,\n web3EnableError\n } = useMoralis();\n const { switchNetwork, chainId } = useChain();\n const { listenToUpdate } = useUser();\n const { sessionWordings } = useWordings();\n const deployChainId = process.env.REACT_APP_CHAIN_ID!;\n\n const checkChain = async () => {\n if (chainId !== deployChainId) {\n await switchNetwork(deployChainId);\n }\n };\n\n useEffect(() => {\n if (isAuthenticated && isWeb3Enabled) {\n checkChain();\n }\n }, [chainId, isAuthenticated, isWeb3Enabled]);\n\n const init = async (user: Moralis.User) => {\n await Moralis.Web3.enableWeb3();\n await listenToUpdate(user.attributes.ethAddress);\n };\n\n useEffect(() => {\n if (user && isAuthenticated) {\n init(user);\n }\n }, [user, isAuthenticated]);\n\n useEffect(() => {\n Moralis.Web3.onAccountsChanged(() => {\n logout();\n });\n }, [user]);\n\n const provider = web3?.givenProvider;\n const chainIdDecimal = process.env.REACT_APP_CHAIN_ID_DECIMAL! as unknown as number;\n const initSession = async () => {\n if (!isAuthenticated) {\n await authenticate({\n provider: provider,\n chainId: chainIdDecimal, //no funciona, gracias moralis\n signingMessage: sessionWordings.signMessage,\n onError: (error) => {\n return;\n },\n onSuccess: () => Moralis.Web3.enableWeb3()\n });\n }\n };\n\n const endSession = () => {\n if (user) {\n const userName = user.get('username');\n if (userName) {\n logout();\n }\n }\n };\n\n return {\n user,\n provider,\n account,\n initSession,\n endSession,\n logout,\n isAuthenticated,\n isWeb3Enabled,\n isWeb3EnableLoading,\n web3EnableError\n };\n}\n","import axios from 'axios';\n\n// ----------------------------------------------------------------------\n\nconst axiosInstance = axios.create();\n\naxiosInstance.interceptors.response.use(\n (response) => response,\n (error) => Promise.reject((error.response && error.response.data) || 'Something went wrong')\n);\n\nexport default axiosInstance;\n","import AxiosMockAdapter from 'axios-mock-adapter';\nimport axios from '../utils/axios';\n\n// ----------------------------------------------------------------------\n\nconst axiosMockAdapter = new AxiosMockAdapter(axios, {\n delayResponse: 0\n});\n\nexport default axiosMockAdapter;\n","// ----------------------------------------------------------------------\n\nexport const role = [\n 'UX Designer',\n 'Full Stack Designer',\n 'Backend Developer',\n 'UX Designer',\n 'UX Designer',\n 'Project Manager',\n 'Leader',\n 'Backend Developer',\n 'Project Manager',\n 'UI Designer',\n 'UI/UX Designer',\n 'UI/UX Designer',\n 'UI Designer',\n 'Backend Developer',\n 'Backend Developer',\n 'Front End Developer',\n 'Backend Developer',\n 'Full Stack Designer',\n 'Full Stack Developer',\n 'Backend Developer',\n 'UX Designer',\n 'UI Designer',\n 'Project Manager',\n 'UI/UX Designer',\n 'UI Designer',\n 'Project Manager',\n 'Full Stack Developer',\n 'Hr Manager',\n 'Hr Manager',\n 'UI/UX Designer',\n 'Project Manager',\n 'Full Stack Designer',\n 'UI Designer',\n 'Leader',\n 'Front End Developer',\n 'UI/UX Designer',\n 'Project Manager',\n 'UI/UX Designer',\n 'UI Designer',\n 'Full Stack Designer'\n];\n","// ----------------------------------------------------------------------\n\nexport const email = [\n 'nannie_abernathy70@yahoo.com',\n 'ashlynn_ohara62@gmail.com',\n 'milo.farrell@hotmail.com',\n 'violet.ratke86@yahoo.com',\n 'letha_lubowitz24@yahoo.com',\n 'aditya_greenfelder31@gmail.com',\n 'lenna_bergnaum27@hotmail.com',\n 'luella.ryan33@gmail.com',\n 'joana.simonis84@gmail.com',\n 'marjolaine_white94@gmail.com',\n 'vergie_block82@hotmail.com',\n 'vito.hudson@hotmail.com',\n 'tyrel_greenholt@gmail.com',\n 'dwight.block85@yahoo.com',\n 'mireya13@hotmail.com',\n 'dasia_jenkins@hotmail.com',\n 'benny89@yahoo.com',\n 'dawn.goyette@gmail.com',\n 'zella_hickle4@yahoo.com',\n 'avery43@hotmail.com',\n 'olen_legros@gmail.com',\n 'jimmie.gerhold73@hotmail.com',\n 'genevieve.powlowski@hotmail.com',\n 'louie.kuphal39@gmail.com',\n 'enoch.cruickshank@gmail.com',\n 'arlo_mccullough@gmail.com',\n 'sadie18@yahoo.com',\n 'aric67@gmail.com',\n 'mack_deckow53@gmail.com',\n 'constantin91@yahoo.com',\n 'lonny84@hotmail.com',\n 'gus56@hotmail.com',\n 'brennon64@yahoo.com',\n 'hortense.streich@hotmail.com',\n 'kallie_powlowski57@hotmail.com',\n 'meghan.kemmer@hotmail.com',\n 'bella.mraz14@yahoo.com',\n 'barney88@gmail.com',\n 'diamond_johns@hotmail.com',\n 'gus80@hotmail.com'\n];\n","// ----------------------------------------------------------------------\n\nexport const boolean = [\n true,\n true,\n true,\n false,\n false,\n true,\n false,\n false,\n false,\n false,\n true,\n true,\n true,\n false,\n false,\n false,\n true,\n false,\n false,\n false,\n true,\n false,\n false,\n true,\n true,\n true,\n false,\n false,\n true,\n true,\n false,\n true,\n false,\n true,\n true,\n true,\n false,\n true,\n false,\n false\n];\n","// ----------------------------------------------------------------------\n\nexport const company = [\n 'Lueilwitz and Sons',\n 'Gleichner, Mueller and Tromp',\n 'Nikolaus - Leuschke',\n 'Hegmann, Kreiger and Bayer',\n 'Grimes Inc',\n 'Durgan - Murazik',\n 'Altenwerth, Medhurst and Roberts',\n 'Raynor Group',\n 'Mraz, Donnelly and Collins',\n 'Padberg - Bailey',\n 'Heidenreich, Stokes and Parker',\n 'Pagac and Sons',\n 'Rempel, Hand and Herzog',\n 'Dare - Treutel',\n 'Kihn, Marquardt and Crist',\n 'Nolan - Kunde',\n 'Wuckert Inc',\n 'Dibbert Inc',\n 'Goyette and Sons',\n 'Feest Group',\n 'Bosco and Sons',\n 'Bartell - Kovacek',\n 'Schimmel - Raynor',\n 'Tremblay LLC',\n 'Hills - Mitchell',\n 'Rogahn LLC',\n 'Kuhn, Osinski and Morar',\n 'Schmitt Inc',\n 'Breitenberg - Rosenbaum',\n \"O'Keefe, Schneider and Mraz\",\n 'Rohan, Langworth and Kling',\n 'Morar and Sons',\n 'Mraz LLC',\n 'Rowe, Parisian and Kub',\n 'Marquardt - Hane',\n 'Medhurst Group',\n 'Nikolaus - Lang',\n 'Effertz, Mohr and Olson',\n 'Anderson - Kris',\n 'Runolfsson Group'\n];\n","// ----------------------------------------------------------------------\n\nexport const phoneNumber = [\n '365-374-4961',\n '904-966-2836',\n '399-757-9909',\n '692-767-2903',\n '990-588-5716',\n '955-439-2578',\n '226-924-4058',\n '552-917-1454',\n '285-840-9338',\n '306-269-2446',\n '883-373-6253',\n '476-509-8866',\n '201-465-1954',\n '538-295-9408',\n '531-492-6028',\n '981-699-7588',\n '500-268-4826',\n '205-952-3828',\n '222-255-5190',\n '408-439-8033',\n '272-940-8266',\n '812-685-8057',\n '353-801-5212',\n '606-285-8928',\n '202-767-8621',\n '222-830-0731',\n '964-940-3166',\n '262-702-2396',\n '886-261-9789',\n '352-390-5069',\n '343-907-8334',\n '575-347-2399',\n '749-228-5604',\n '774-452-2071',\n '607-841-0447',\n '395-619-2157',\n '233-834-0373',\n '586-880-2602',\n '746-772-0722',\n '638-615-3365,'\n];\n","// ----------------------------------------------------------------------\n\nexport const fullAddress = [\n '19034 Verna Unions Apt. 164 - Honolulu, RI / 87535',\n '1147 Rohan Drive Suite 819 - Burlington, VT / 82021',\n '18605 Thompson Circle Apt. 086 - Idaho Falls, WV / 50337',\n '110 Lamar Station Apt. 730 - Hagerstown, OK / 49808',\n '36901 Elmer Spurs Apt. 762 - Miramar, DE / 92836',\n '2089 Runolfsson Harbors Suite 886 - Chapel Hill, TX / 32827',\n '279 Karolann Ports Apt. 774 - Prescott Valley, WV / 53905',\n '96607 Claire Square Suite 591 - St. Louis Park, HI / 40802',\n '9388 Auer Station Suite 573 - Honolulu, AK / 98024',\n '47665 Adaline Squares Suite 510 - Blacksburg, NE / 53515',\n '989 Vernice Flats Apt. 183 - Billings, NV / 04147',\n '91020 Wehner Locks Apt. 673 - Albany, WY / 68763',\n '585 Candelario Pass Suite 090 - Columbus, LA / 25376',\n '80988 Renner Crest Apt. 000 - Fargo, VA / 24266',\n '28307 Shayne Pike Suite 523 - North Las Vegas, AZ / 28550',\n '205 Farrell Highway Suite 333 - Rock Hill, OK / 63421',\n '253 Kara Motorway Suite 821 - Manchester, SD / 09331',\n '13663 Kiara Oval Suite 606 - Missoula, AR / 44478',\n '8110 Claire Port Apt. 703 - Anchorage, TN / 01753',\n '4642 Demetris Lane Suite 407 - Edmond, AZ / 60888',\n '74794 Asha Flat Suite 890 - Lancaster, OR / 13466',\n '8135 Keeling Pines Apt. 326 - Alexandria, MA / 89442',\n '441 Gibson Shores Suite 247 - Pasco, NM / 60678',\n '4373 Emelia Valley Suite 596 - Columbia, NM / 42586',\n '1946 Strosin Creek Apt. 279 - Casper, CO / 21335',\n '147 Rempel Center Apt. 305 - Centennial, TN / 09375',\n '78481 Floyd Mountains Apt. 184 - Glendale, SD / 18777',\n '129 Toy Pines Suite 339 - Idaho Falls, CT / 82070',\n '08945 Cremin Underpass Apt. 700 - Iowa City, GA / 33243',\n '20728 Dorcas Highway Suite 959 - Largo, ND / 99931',\n '492 Wilburn Park Apt. 746 - Bellevue, TN / 16077',\n '70530 Garfield Tunnel Suite 902 - Detroit, IA / 01664',\n '868 Kautzer Grove Suite 334 - Kearny, KS / 51368',\n '71189 Towne Forks Suite 519 - Anchorage, IL / 52636',\n '5070 Magdalena Neck Suite 096 - Cedar Rapids, PA / 01342',\n '6216 Jermain Walk Apt. 279 - Wilmington, MA / 55416',\n '1795 Kilback Stravenue Apt. 745 - Concord, MA / 96099',\n '831 Rolfson Expressway Apt. 878 - Norman, NY / 10239',\n '909 Nathaniel Lake Suite 769 - Sherman, NJ / 46523',\n '3690 Hans Ports Apt. 369 - Cary, KS / 48930'\n];\n\nexport const country = [\n 'Kenya',\n 'Madagascar',\n 'Netherlands Antilles',\n 'Azerbaijan',\n 'Aruba',\n 'Comoros',\n 'Sierra Leone',\n 'Bermuda',\n 'Italy',\n 'Iran',\n 'Denmark',\n 'Congo',\n 'Cambodia',\n 'Virgin Islands, British',\n 'Bahamas',\n 'Italy',\n 'France',\n 'Portugal',\n 'Nepal',\n 'Saint Vincent and the Grenadines',\n 'Greenland',\n 'Maldives',\n 'Comoros',\n 'Bhutan',\n 'Tuvalu',\n 'Ethiopia',\n 'Myanmar',\n 'Libyan Arab Jamahiriya',\n 'Senegal',\n 'Malta',\n 'Kyrgyz Republic',\n 'Turks and Caicos Islands',\n 'Gibraltar',\n 'Sweden',\n 'Zambia',\n 'Isle of Man',\n 'Canada',\n 'Turkey',\n 'Samoa',\n 'Vietnam'\n];\n","// ----------------------------------------------------------------------\n\nexport const fullName = [\n 'Jayvion Simon',\n 'Lucian Obrien',\n 'Deja Brady',\n 'Harrison Stein',\n 'Reece Chung',\n 'Lainey Davidson',\n 'Cristopher Cardenas',\n 'Melanie Noble',\n 'Chase Day',\n 'Shawn Manning',\n 'Soren Durham',\n 'Cortez Herring',\n 'Brycen Jimenez',\n 'Giana Brandt',\n 'Aspen Schmitt',\n 'Colten Aguilar',\n 'Angelique Morse',\n 'Selina Boyer',\n 'Lawson Bass',\n 'Ariana Lang',\n 'Amiah Pruitt',\n 'Harold Mcgrath',\n 'Esperanza Mcintyre',\n 'Mireya Conner',\n 'Jamie Kline',\n 'Laney Vazquez',\n 'Tiffany May',\n 'Dexter Shepherd',\n 'Jaqueline Spencer',\n 'Londyn Jarvis',\n 'Yesenia Butler',\n 'Jayvon Hull',\n 'Izayah Pope',\n 'Ayana Hunter',\n 'Isabell Bender',\n 'Desiree Schmidt',\n 'Aidan Stout',\n 'Jace Bush',\n 'Janiya Williamson',\n 'Hudson Alvarez'\n];\n\nexport const firstName = [\n 'Mossie',\n 'David',\n 'Ebba',\n 'Chester',\n 'Eula',\n 'Jaren',\n 'Boyd',\n 'Brady',\n 'Aida',\n 'Anastasia',\n 'Gregoria',\n 'Julianne',\n 'Ila',\n 'Elyssa',\n 'Lucio',\n 'Lewis',\n 'Jacinthe',\n 'Molly',\n 'Brown',\n 'Fritz',\n 'Keon',\n 'Ella',\n 'Ken',\n 'Whitney',\n 'Monte',\n 'Rose',\n 'Shana',\n 'Devon',\n 'Jaleel',\n 'Laury',\n 'Brooks',\n 'Bruce',\n 'Avery',\n 'Esperanza',\n 'Helene',\n 'Heloise',\n 'Elinor',\n 'Adeline',\n 'Haley',\n 'Anabelle'\n];\n\nexport const lastName = [\n 'Carroll',\n 'Simonis',\n 'Yost',\n 'Hand',\n 'Emmerich',\n 'Wilderman',\n 'Howell',\n 'Sporer',\n 'Boehm',\n 'Morar',\n 'Koch',\n 'Reynolds',\n 'Padberg',\n 'Watsica',\n 'Upton',\n 'Yundt',\n 'Pfeffer',\n 'Parker',\n 'Zulauf',\n 'Treutel',\n 'McDermott',\n 'McDermott',\n 'Cruickshank',\n 'Parisian',\n 'Auer',\n 'Turner',\n 'Dooley',\n 'Wiegand',\n 'Abbott',\n 'Wisoky',\n 'Fahey',\n 'Satterfield',\n 'Bahringer',\n 'Schulist',\n 'Durgan',\n 'Carroll',\n 'Jones',\n 'Leffler',\n 'Gutkowski',\n 'Homenick'\n];\n","// ----------------------------------------------------------------------\n\nexport const title = [\n 'Apply These 7 Secret Techniques To Improve Event',\n 'Believing These 7 Myths About Event Keeps You From Growing',\n \"Don't Waste Time! 7 Facts Until You Reach Your Event\",\n 'How 7 Things Will Change The Way You Approach Event',\n \"Event Awards: 7 Reasons Why They Don't Work & What You Can Do About It\",\n \"Event Doesn't Have To Be Hard. Read These 7 Tips\",\n 'Event Is Your Worst Enemy. 7 Ways To Defeat It',\n 'Event On A Budget: 7 Tips From The Great Depression',\n 'Knowing These 7 Secrets Will Make Your Event Look Amazing',\n 'Master The Art Of Event With These 7 Tips',\n 'My Life, My Job, My Career: How 7 Simple Event Helped Me Succeed',\n 'Take Advantage Of Event - Read These 7 Tips',\n 'The Next 7 Things You Should Do For Event Success',\n 'The Time Is Running Out! Think About These 7 Ways To Change Your Event',\n 'The 7 Best Things About Event',\n 'The 7 Biggest Event Mistakes You Can Easily Avoid',\n 'The 7 Most Successful Event Companies In Region',\n 'Think Your Event Is Safe? 7 Ways You Can Lose It Today',\n \"Thinking About Event? 7 Reasons Why It's Time To Stop!\",\n '7 Places To Get Deals On Event',\n 'Best Event Android Apps',\n 'Best Event Tips You Will Read This Year',\n 'Best 30 Tips For Event',\n 'Should Fixing Event Take 30 Steps?',\n 'The A - Z Of Event',\n 'The Next 30 Things To Immediately Do About Event',\n 'The Ultimate Guide To Event',\n 'Top 30 Funny Event Quotes',\n 'Top 30 Quotes On Event',\n 'Top 7 Lessons About Event To Learn Before You Hit 30',\n 'Top 7 Ways To Buy A Used Event',\n '30 Best Ways To Sell Event',\n '30 Ideas For Event',\n '30 Lessons About Event You Need To Learn Before You Hit 40',\n '30 Methods Of Event Domination',\n '30 Things To Do Immediately About Event',\n '30 Tips To Grow Your Event',\n '30 Ways To Avoid Event Burnout',\n '30 Ways To Improve Event',\n 'How To Make More Event By Doing Less'\n];\n\nexport const sentence = [\n 'Assumenda nam repudiandae rerum fugiat vel maxime.',\n 'Quis veniam aut saepe aliquid nulla.',\n 'Reprehenderit ut voluptas sapiente ratione nostrum est.',\n 'Error ut sit vel molestias velit.',\n 'Quo quia sit nihil nemo doloremque et.',\n 'Autem doloribus harum vero laborum.',\n 'Tempora officiis consequuntur architecto nostrum autem nam adipisci.',\n 'Voluptas sunt magni adipisci praesentium saepe.',\n 'Ea architecto quas voluptates voluptas earum illo est vel rem.',\n 'Ipsum expedita reiciendis ut.',\n 'Architecto vel voluptatibus alias a aut non maxime ipsa voluptates.',\n 'Reiciendis enim officiis cupiditate eaque distinctio laudantium modi similique consequatur.',\n 'Ab autem consequatur itaque mollitia ipsum cupiditate error repudiandae nobis.',\n 'Distinctio architecto debitis eligendi consequatur unde id modi accusantium possimus.',\n 'At ut voluptate accusantium.',\n 'Repudiandae ut qui veritatis sint.',\n 'Laboriosam blanditiis quo sed et qui esse ipsam necessitatibus sed.',\n 'Et molestiae et excepturi maxime omnis.',\n 'Sint dolorem quam eum magnam.',\n 'Rerum ut iusto iste quam voluptatem necessitatibus.',\n 'Et quam in.',\n 'Fugit esse tenetur.',\n 'Dolorem dolor porro nihil cupiditate molestiae deserunt ut.',\n 'Omnis beatae eos eius aut molestias laboriosam laborum et optio.',\n 'Ut veniam quam assumenda ut voluptatibus ducimus accusamus.',\n 'Quos dignissimos neque omnis reiciendis voluptatem ducimus.',\n 'Laboriosam quia ut esse.',\n 'Sit reiciendis nihil qui molestias et.',\n 'Facilis cupiditate minima ratione quaerat omnis velit non ex totam.',\n 'Provident sint esse voluptatem voluptas eveniet est.',\n 'Molestias consequatur ea facilis.',\n 'Tempora voluptatibus autem ut ut porro quae delectus dolorum.',\n 'Et consequatur amet nemo ducimus voluptatem placeat voluptas.',\n 'Modi iste atque hic voluptas sit quis deleniti quas consequatur.',\n 'Omnis est aliquid odio mollitia aliquid ex.',\n 'Officia possimus veniam quod molestias.',\n 'Mollitia inventore recusandae provident aut.',\n 'Numquam ullam beatae possimus.',\n 'Fuga velit cupiditate ex culpa odio aut ut.',\n 'Vero corrupti nam voluptatum excepturi est et.'\n];\n\nexport const description = [\n 'Occaecati est et illo quibusdam accusamus qui. Incidunt aut et molestiae ut facere aut. Est quidem iusto praesentium excepturi harum nihil tenetur facilis. Ut omnis voluptates nihil accusantium doloribus eaque debitis.',\n 'Atque eaque ducimus minima distinctio velit. Laborum et veniam officiis. Delectus ex saepe hic id laboriosam officia. Odit nostrum qui illum saepe debitis ullam. Laudantium beatae modi fugit ut. Dolores consequatur beatae nihil voluptates rem maiores.',\n 'Rerum eius velit dolores. Explicabo ad nemo quibusdam. Voluptatem eum suscipit et ipsum et consequatur aperiam quia. Rerum nulla sequi recusandae illum velit quia quas. Et error laborum maiores cupiditate occaecati.',\n 'Et non omnis qui. Qui sunt deserunt dolorem aut velit cumque adipisci aut enim. Nihil quis quisquam nesciunt dicta nobis ab aperiam dolorem repellat. Voluptates non blanditiis. Error et tenetur iste soluta cupiditate ratione perspiciatis et. Quibusdam aliquid nam sunt et quisquam non esse.',\n 'Nihil ea sunt facilis praesentium atque. Ab animi alias sequi molestias aut velit ea. Sed possimus eos. Et est aliquid est voluptatem.',\n 'Non rerum modi. Accusamus voluptatem odit nihil in. Quidem et iusto numquam veniam culpa aperiam odio aut enim. Quae vel dolores. Pariatur est culpa veritatis aut dolorem.',\n 'Est enim et sit non impedit aperiam cumque animi. Aut eius impedit saepe blanditiis. Totam molestias magnam minima fugiat.',\n 'Unde a inventore et. Sed esse ut. Atque ducimus quibusdam fuga quas id qui fuga.',\n 'Eaque natus adipisci soluta nostrum dolorem. Nesciunt ipsum molestias ut aliquid natus ut omnis qui fugiat. Dolor et rem. Ut neque voluptatem blanditiis quasi ullam deleniti.',\n 'Nam et error exercitationem qui voluptate optio. Officia omnis qui accusantium ipsam qui. Quia sequi nulla perspiciatis optio vero omnis maxime omnis ipsum. Perspiciatis consequuntur asperiores veniam dolores.',\n 'Perspiciatis nulla ut ut ut voluptates totam consectetur eligendi qui. Optio ut cum. Dolorum sapiente qui laborum. Impedit temporibus totam delectus nihil. Voluptatem corrupti rem.',\n 'Distinctio omnis similique omnis eos. Repellat cumque rerum nisi. Reiciendis soluta non ut veniam temporibus. Accusantium et dolorem voluptas harum. Nemo eius voluptate dicta et hic nemo. Dolorem assumenda et beatae molestias sit quo mollitia quis consequatur.',\n 'Sed ut mollitia tempore ipsam et illum doloribus ut. Occaecati ratione veritatis explicabo. Omnis nam omnis sunt placeat tempore accusantium placeat distinctio velit.',\n 'Eum illo dicta et perspiciatis ut blanditiis eos sequi. Ea veritatis aut et voluptas aut. Laborum eos quia tempore a culpa.',\n 'Aut quos quae dolores repudiandae similique perferendis perferendis earum laudantium. Facere placeat natus nobis. Eius vitae ullam dolorem.',\n 'Vero dolorem et voluptatem fugit tempore a quam iure. Fuga consequatur corrupti sunt asperiores vitae. Libero totam repellendus animi debitis illum et sunt officia.',\n 'Cupiditate illum officiis id molestiae. Numquam non molestiae aliquid et natus sed hic. Alias quia explicabo sed corrupti sint. Natus in et odio qui unde facilis quia. Est sit eius laboriosam aliquid non aperiam quia quo corporis.',\n 'Et a ab. Optio aspernatur minus tempora amet vitae consectetur inventore cumque. Sed et omnis. Aspernatur a magnam.',\n 'Ipsum omnis et. Quia ea et autem tempore consequuntur veniam dolorem officiis. Ipsa dicta et ut quidem quia doloremque. Sequi vitae doloremque temporibus. Deserunt incidunt id aperiam itaque natus. Earum sit eaque quas incidunt nihil.',\n 'Quae consequatur reiciendis. Consequatur non optio. Eaque id placeat. Commodi quo officia aut repudiandae reiciendis tempore voluptatem et. Ut accusamus qui itaque maxime aliquam. Fugit ut animi molestiae porro maiores.',\n 'Modi hic asperiores ab cumque quam est aut. Voluptas atque quos molestias. Ut excepturi distinctio ipsam aspernatur sit.',\n 'Sunt totam facilis. Quam commodi voluptatem veniam. Tempora deleniti itaque fugit nihil voluptas.',\n 'Ipsam aliquam velit nobis repellendus officiis aut deserunt id et. Nihil sunt aut dolores aut. Dolores est ipsa quia et laborum quidem laborum accusamus id. Facilis odit quod hic laudantium saepe omnis nisi in sint. Sed cupiditate possimus id.',\n 'Magnam non eveniet optio optio ut aliquid atque. Velit libero aspernatur quis laborum consequatur laudantium. Tempora facere optio fugit accusantium ut. Omnis aspernatur reprehenderit autem esse ut ut enim voluptatibus.',\n 'Ipsam vel molestiae dolorem iure molestiae. Ut qui cumque et sint recusandae modi nulla. Vel rerum tempore similique autem enim voluptatem dolores facilis. Qui delectus recusandae magnam.',\n 'Fugiat molestias distinctio enim nobis rerum. Perspiciatis adipisci corrupti quas sed ab sunt nostrum. Quibusdam reiciendis ratione dolores vitae fuga exercitationem asperiores maxime voluptate. Minus et ea delectus quia ullam est. Exercitationem iusto libero. Et aut dolore reprehenderit et saepe sint modi.',\n 'Ex neque aut voluptatem delectus eum deserunt voluptate. Ut quam placeat et. Et impedit tenetur illum aut consequatur quia. Autem sed dolorem non ad aspernatur illum dignissimos beatae. Earum iusto aut rem aut. Facere ea alias enim quo assumenda.',\n 'Quis sint recusandae quasi corporis et fugit. Omnis voluptatum id laborum qui. Assumenda animi quia eum et facere fuga. Ab et sint molestiae et voluptatum nostrum est.',\n 'Est quis numquam recusandae alias porro magni. Incidunt quis aut necessitatibus nam ea dolores cumque. Quis dolorum veniam.',\n 'Corporis magnam non. Ut voluptates pariatur et. Quis tenetur mollitia et necessitatibus et. Perferendis error velit aut.',\n 'Eos ex accusantium possimus aut quae. Omnis dolorum velit. Sapiente quia dolore ea assumenda voluptatem exercitationem sed consequuntur. Eveniet et molestiae ipsa harum quidem soluta quo. Consequatur ad sunt sed numquam odio eveniet.',\n 'Ut sit et provident vero vero voluptatem distinctio. Cumque sit error qui et. Ea architecto ipsum occaecati sed alias eum vel. Officia tempore architecto autem vel veniam. Minus modi commodi ad consequatur similique ut. Tenetur tempore eum.',\n 'Quibusdam in cum voluptatem consequatur rerum. Qui eum assumenda nemo maiores veniam quae. Ipsa occaecati et provident. Quas similique deserunt doloremque placeat natus.',\n 'Voluptates et earum fugiat molestiae distinctio. Aut sapiente quas dolores et. Quo et dolor velit et iure consequatur ut in amet. Repellendus aut sequi animi inventore nesciunt itaque.',\n 'Sit a tempore dicta provident molestiae. Necessitatibus blanditiis voluptatum. Magnam esse animi in qui veritatis quibusdam recusandae adipisci possimus. Tenetur dolores ipsum.',\n 'Neque id sunt amet modi expedita aut libero aut in. Minima dolore praesentium quia quas et pariatur numquam. In ut sequi nemo velit iste minima aliquam. Neque ut tenetur consequuntur sint nemo unde. Magni nesciunt omnis illo optio. Molestias eum exercitationem aut harum odit.',\n 'Modi quia laboriosam qui ad aut. Fugit quisquam earum distinctio officia est fugit quos. Iure repellat distinctio veritatis voluptate amet ratione repudiandae.',\n 'Impedit perferendis vel quis ratione. Id aut id officia. Illum fuga saepe provident voluptate eligendi provident. Et nostrum maxime magni. Nobis cumque id magni in iste earum.',\n 'Dolor numquam maiores praesentium dolorem nihil minus praesentium rem dolorem. Est rerum placeat. Numquam sed magni aliquam laborum enim facere ducimus.',\n 'In sint enim nam et itaque et qui. Molestiae a iusto quidem quia temporibus id quia eaque eius. Quis quia consectetur saepe vero et molestias. Rem minima accusamus vitae adipisci molestiae unde voluptate consequatur molestiae. Rerum exercitationem quisquam vitae.'\n];\n","// ----------------------------------------------------------------------\n\nexport const price = [\n 16.19, 35.71, 34.3, 93.1, 55.47, 89.09, 44.39, 26.92, 45.35, 26.96, 78.22, 35.54, 90.69, 63.61,\n 67.55, 94.75, 75.78, 39.6, 52.84, 72.8, 83.08, 85.02, 69.22, 60.96, 84.7, 16.68, 78.83, 58.07,\n 65.8, 55.69, 87.55, 44.74, 27.42, 84, 76.17, 43.83, 76.39, 17.42, 42.3, 12.45\n];\n\nexport const rating = [\n 2.5, 2, 4.9, 2, 4, 5, 4.9, 5, 3.7, 2.5, 2, 4.9, 4.8, 4, 2, 3.7, 1.4, 2.4, 1.8, 5, 2.9, 3.9, 3.9,\n 1.8, 5, 2.6, 3.1, 3.9, 1.2, 3.2, 4.1, 5, 4.5, 4.1, 2.3, 2.4, 5, 3.1, 4.9, 1.7\n];\n\nexport const age = [\n 52, 43, 56, 25, 22, 53, 38, 50, 55, 37, 16, 27, 55, 41, 52, 32, 34, 52, 31, 53, 23, 48, 43, 41,\n 19, 21, 17, 29, 32, 54, 38, 34, 49, 33, 55, 50, 24, 27, 23, 23\n];\n\nexport const percent = [\n 8.62, 86.36, 73.99, 79, 63.41, 58.79, 12.32, 88.44, 45.06, 91.64, 88.41, 73.08, 39.14, 89.34,\n 43.37, 34.45, 24.04, 80.96, 72.91, 47.59, 2.46, 3.33, 99.31, 47.6, 34.09, 50.61, 66.13, 46.69,\n 92.43, 31.41, 90.85, 36.32, 38.84, 25.6, 87.61, 1.31, 89.32, 41.23, 85.9, 62.63\n];\n","import { sub } from 'date-fns';\n//\nimport { role } from './role';\nimport { email } from './email';\nimport { boolean } from './boolean';\nimport { company } from './company';\nimport { phoneNumber } from './phoneNumber';\nimport { fullAddress, country } from './address';\nimport { firstName, lastName, fullName } from './name';\nimport { title, sentence, description } from './text';\nimport { price, rating, age, percent } from './number';\n\n// ----------------------------------------------------------------------\n\nconst mockData = {\n id: (index: number) => `e99f09a7-dd88-49d5-b1c8-1daf80c2d7b${index + 1}`,\n email: (index: number) => email[index],\n phoneNumber: (index: number) => phoneNumber[index],\n time: (index: number) => sub(new Date(), { days: index, hours: index }),\n boolean: (index: number) => boolean[index],\n role: (index: number) => role[index],\n company: (index: number) => company[index],\n address: {\n fullAddress: (index: number) => fullAddress[index],\n country: (index: number) => country[index]\n },\n name: {\n firstName: (index: number) => firstName[index],\n lastName: (index: number) => lastName[index],\n fullName: (index: number) => fullName[index]\n },\n text: {\n title: (index: number) => title[index],\n sentence: (index: number) => sentence[index],\n description: (index: number) => description[index]\n },\n number: {\n percent: (index: number) => percent[index],\n rating: (index: number) => rating[index],\n age: (index: number) => age[index],\n price: (index: number) => price[index]\n },\n image: {\n cover: (index: number) => `/static/mock-images/covers/cover_${index + 1}.jpg`,\n feed: (index: number) => `/static/mock-images/feeds/feed_${index + 1}.jpg`,\n product: (index: number) => `/static/mock-images/products/product_${index + 1}.jpg`,\n avatar: (index: number) => `/static/mock-images/avatars/avatar_${index + 1}.jpg`\n }\n};\n\nexport default mockData;\n","import { v4 as uuidv4 } from 'uuid';\nimport { sub } from 'date-fns';\nimport { dotCase } from 'change-case';\nimport { sample, isEmpty, xor } from 'lodash';\n// utils\nimport mock from './mock';\nimport mockData from '../utils/mock-data';\n// @types\nimport { Message } from '../@types/chat';\n\n// ----------------------------------------------------------------------\n\nconst MY_CONTACT = {\n id: '8864c717-587d-472a-929a-8e5f298024da-0',\n avatar: '/static/mock-images/avatars/avatar_15.jpg',\n name: 'Jaydon Frankie',\n username: 'jaydon.frankie'\n};\n\n// ----------------------------------------------------------------------\n\nconst contacts = [...Array(20)].map((_, index) => ({\n id: mockData.id(index),\n name: mockData.name.fullName(index),\n username: mockData.name.fullName(index) && dotCase(mockData.name.fullName(index)),\n avatar: mockData.image.avatar(index),\n address: mockData.address.fullAddress(index),\n phone: mockData.phoneNumber(index),\n email: mockData.email(index),\n lastActivity: mockData.time(index),\n status: sample(['online', 'offline', 'away', 'busy']) || 'online',\n position: mockData.role(index)\n}));\n\nconst conversations = [\n {\n id: mockData.id(1),\n participants: [MY_CONTACT, contacts[1]],\n type: 'ONE_TO_ONE',\n unreadCount: 0,\n messages: [\n {\n id: uuidv4(),\n body: mockData.text.sentence(1),\n contentType: 'text',\n attachments: [mockData.image.feed(1)],\n createdAt: sub(new Date(), { hours: 10 }),\n senderId: contacts[1].id\n },\n {\n id: uuidv4(),\n body: mockData.text.sentence(2),\n contentType: 'text',\n attachments: [mockData.image.feed(2)],\n createdAt: sub(new Date(), { hours: 2 }),\n senderId: MY_CONTACT.id\n },\n {\n id: uuidv4(),\n body: mockData.text.sentence(3),\n contentType: 'text',\n attachments: ['/static/mock-images/avatars/avatar_12.mp4'],\n createdAt: sub(new Date(), { minutes: 8 }),\n senderId: contacts[1].id\n },\n {\n id: uuidv4(),\n body: mockData.text.sentence(4),\n contentType: 'text',\n attachments: [\n 'https://mail.google.com/mail/u/file1.docx',\n 'https://mail.google.com/mail/u/file2.xlsx',\n 'https://mail.google.com/mail/u/file3.pptx'\n ],\n createdAt: sub(new Date(), { minutes: 6 }),\n senderId: MY_CONTACT.id\n },\n {\n id: uuidv4(),\n body: mockData.text.sentence(5),\n contentType: 'text',\n attachments: [\n 'https://mail.google.com/mail/u/file4.pdf',\n 'https://mail.google.com/mail/u/file5.psd',\n 'https://mail.google.com/mail/u/file6.esp',\n 'https://mail.google.com/mail/u/file7.sketch'\n ],\n createdAt: sub(new Date(), { minutes: 4 }),\n senderId: contacts[1].id\n },\n {\n id: uuidv4(),\n attachments: [],\n contentType: 'image',\n body: mockData.image.feed(4),\n createdAt: sub(new Date(), { minutes: 2 }),\n senderId: contacts[1].id\n },\n {\n id: uuidv4(),\n contentType: 'text',\n body: mockData.text.sentence(6),\n attachments: [],\n createdAt: sub(new Date(), { minutes: 2 }),\n senderId: MY_CONTACT.id\n },\n {\n id: uuidv4(),\n body: mockData.text.sentence(7),\n contentType: 'text',\n attachments: [],\n createdAt: sub(new Date(), { minutes: 2 }),\n senderId: MY_CONTACT.id\n }\n ]\n },\n {\n id: mockData.id(2),\n participants: [MY_CONTACT, contacts[2]],\n type: 'ONE_TO_ONE',\n unreadCount: 2,\n messages: [\n {\n id: uuidv4(),\n body: mockData.text.sentence(8),\n contentType: 'text',\n attachments: [],\n createdAt: sub(new Date(), { hours: 8 }),\n senderId: contacts[2].id\n },\n {\n id: uuidv4(),\n body: mockData.text.sentence(9),\n contentType: 'text',\n attachments: [],\n createdAt: sub(new Date(), { hours: 6 }),\n senderId: MY_CONTACT.id\n },\n {\n id: uuidv4(),\n body: mockData.text.sentence(10),\n contentType: 'text',\n attachments: [],\n createdAt: sub(new Date(), { hours: 4, minutes: 30 }),\n senderId: contacts[2].id\n },\n {\n id: uuidv4(),\n body: mockData.text.sentence(11),\n contentType: 'text',\n attachments: [],\n createdAt: sub(new Date(), { hours: 2, minutes: 15 }),\n senderId: MY_CONTACT.id\n },\n {\n id: uuidv4(),\n body: mockData.text.sentence(12),\n contentType: 'text',\n attachments: [],\n createdAt: sub(new Date(), { hours: 1, minutes: 15 }),\n senderId: contacts[2].id\n },\n {\n id: uuidv4(),\n body: mockData.image.feed(7),\n attachments: [],\n contentType: 'image',\n createdAt: sub(new Date(), { hours: 1 }),\n senderId: contacts[2].id\n },\n {\n id: uuidv4(),\n body: mockData.text.sentence(13),\n contentType: 'text',\n attachments: [],\n createdAt: sub(new Date(), { minutes: 45 }),\n senderId: MY_CONTACT.id\n }\n ]\n },\n {\n id: mockData.id(3),\n participants: [MY_CONTACT, contacts[3]],\n type: 'ONE_TO_ONE',\n unreadCount: 0,\n messages: [\n {\n id: uuidv4(),\n body: mockData.text.sentence(14),\n contentType: 'text',\n attachments: [],\n createdAt: sub(new Date(), { hours: 8 }),\n senderId: contacts[3].id\n },\n {\n id: uuidv4(),\n body: mockData.text.sentence(15),\n contentType: 'text',\n attachments: [],\n createdAt: sub(new Date(), { hours: 6 }),\n senderId: MY_CONTACT.id\n },\n {\n id: uuidv4(),\n body: mockData.text.sentence(16),\n contentType: 'text',\n attachments: [],\n createdAt: sub(new Date(), { hours: 4, minutes: 30 }),\n senderId: contacts[3].id\n },\n {\n id: uuidv4(),\n body: mockData.text.sentence(17),\n contentType: 'text',\n attachments: [],\n createdAt: sub(new Date(), { hours: 2, minutes: 15 }),\n senderId: MY_CONTACT.id\n },\n {\n id: uuidv4(),\n body: mockData.text.sentence(18),\n contentType: 'text',\n attachments: [],\n createdAt: sub(new Date(), { hours: 1, minutes: 15 }),\n senderId: contacts[3].id\n },\n {\n id: uuidv4(),\n body: mockData.image.feed(5),\n contentType: 'image',\n attachments: [],\n createdAt: sub(new Date(), { hours: 1 }),\n senderId: contacts[3].id\n },\n {\n id: uuidv4(),\n body: mockData.image.feed(6),\n contentType: 'image',\n attachments: [],\n createdAt: sub(new Date(), { hours: 1 }),\n senderId: contacts[3].id\n }\n ]\n },\n {\n id: mockData.id(4),\n participants: [MY_CONTACT, contacts[4]],\n type: 'ONE_TO_ONE',\n unreadCount: 2,\n messages: [\n {\n id: uuidv4(),\n body: mockData.text.sentence(19),\n contentType: 'text',\n attachments: [],\n createdAt: sub(new Date(), { hours: 10 }),\n senderId: contacts[4].id\n },\n {\n id: uuidv4(),\n body: mockData.text.sentence(20),\n contentType: 'text',\n attachments: [],\n createdAt: sub(new Date(), { hours: 2 }),\n senderId: MY_CONTACT.id\n },\n {\n id: uuidv4(),\n body: mockData.text.sentence(21),\n contentType: 'text',\n attachments: [],\n createdAt: sub(new Date(), { minutes: 5 }),\n senderId: contacts[4].id\n },\n {\n id: uuidv4(),\n body: mockData.text.sentence(22),\n contentType: 'text',\n attachments: [],\n createdAt: sub(new Date(), { minutes: 3 }),\n senderId: MY_CONTACT.id\n },\n {\n id: uuidv4(),\n body: mockData.text.sentence(23),\n contentType: 'text',\n attachments: [],\n createdAt: sub(new Date(), { minutes: 1 }),\n senderId: MY_CONTACT.id\n },\n {\n id: uuidv4(),\n body: mockData.text.sentence(24),\n contentType: 'text',\n attachments: [],\n createdAt: sub(new Date(), { minutes: 1 }),\n senderId: contacts[4].id\n }\n ]\n },\n {\n id: mockData.id(5),\n participants: [MY_CONTACT, contacts[5]],\n type: 'ONE_TO_ONE',\n unreadCount: 0,\n messages: [\n {\n id: uuidv4(),\n body: mockData.text.sentence(25),\n contentType: 'text',\n attachments: [],\n createdAt: sub(new Date(), { minutes: 1 }),\n senderId: MY_CONTACT.id\n },\n {\n id: uuidv4(),\n body: mockData.text.sentence(26),\n contentType: 'text',\n attachments: [],\n createdAt: sub(new Date(), { minutes: 1 }),\n senderId: contacts[5].id\n }\n ]\n },\n {\n id: mockData.id(6),\n participants: [MY_CONTACT, contacts[6]],\n type: 'ONE_TO_ONE',\n unreadCount: 2,\n messages: [\n {\n id: uuidv4(),\n body: mockData.text.sentence(27),\n contentType: 'text',\n attachments: [],\n createdAt: sub(new Date(), { minutes: 1 }),\n senderId: MY_CONTACT.id\n },\n {\n id: uuidv4(),\n body: mockData.text.sentence(28),\n contentType: 'text',\n attachments: [],\n createdAt: sub(new Date(), { minutes: 1 }),\n senderId: contacts[6].id\n }\n ]\n },\n {\n id: mockData.id(7),\n participants: [MY_CONTACT, contacts[1], contacts[2], contacts[4], contacts[3]],\n type: 'GROUP',\n unreadCount: 5,\n messages: [\n {\n id: uuidv4(),\n body: mockData.text.sentence(29),\n contentType: 'text',\n attachments: [\n mockData.image.feed(1),\n mockData.image.feed(2),\n mockData.image.feed(3),\n mockData.image.feed(4),\n 'https://mail.google.com/mail/u/file1.docx'\n ],\n createdAt: sub(new Date(), { days: 3, hours: 2, minutes: 30 }),\n senderId: MY_CONTACT.id\n },\n {\n id: uuidv4(),\n body: mockData.text.sentence(30),\n contentType: 'text',\n attachments: ['https://mail.google.com/mail/u/file2.xlsx'],\n createdAt: sub(new Date(), { days: 3, hours: 2, minutes: 29 }),\n senderId: contacts[1].id\n },\n {\n id: uuidv4(),\n body: mockData.text.sentence(31),\n contentType: 'text',\n attachments: ['https://mail.google.com/mail/u/file3.psd'],\n createdAt: sub(new Date(), { days: 3, hours: 2, minutes: 28 }),\n senderId: contacts[2].id\n },\n {\n id: uuidv4(),\n body: mockData.text.sentence(32),\n contentType: 'text',\n attachments: ['https://mail.google.com/mail/u/file3.pptx'],\n createdAt: sub(new Date(), { days: 3, hours: 2, minutes: 27 }),\n senderId: contacts[4].id\n },\n {\n id: uuidv4(),\n body: mockData.text.sentence(33),\n contentType: 'text',\n attachments: ['https://mail.google.com/mail/u/file3.ai'],\n createdAt: sub(new Date(), { days: 3, hours: 2, minutes: 26 }),\n senderId: MY_CONTACT.id\n },\n {\n id: uuidv4(),\n body: mockData.text.sentence(34),\n contentType: 'text',\n attachments: ['https://mail.google.com/mail/u/file3.mp4'],\n createdAt: sub(new Date(), { days: 3 }),\n senderId: contacts[3].id\n }\n ]\n },\n {\n id: mockData.id(8),\n participants: [MY_CONTACT, contacts[7]],\n type: 'ONE_TO_ONE',\n unreadCount: 0,\n messages: [\n {\n id: uuidv4(),\n body: mockData.text.sentence(35),\n contentType: 'text',\n attachments: [],\n createdAt: sub(new Date(), { minutes: 1 }),\n senderId: MY_CONTACT.id\n },\n {\n id: uuidv4(),\n body: mockData.text.sentence(1),\n contentType: 'text',\n attachments: [],\n createdAt: sub(new Date(), { minutes: 1 }),\n senderId: contacts[7].id\n }\n ]\n },\n {\n id: mockData.id(9),\n participants: [MY_CONTACT, contacts[8]],\n type: 'ONE_TO_ONE',\n unreadCount: 0,\n messages: [\n {\n id: uuidv4(),\n body: mockData.text.sentence(2),\n contentType: 'text',\n attachments: [],\n createdAt: sub(new Date(), { minutes: 1 }),\n senderId: MY_CONTACT.id\n },\n {\n id: uuidv4(),\n body: mockData.text.sentence(3),\n contentType: 'text',\n attachments: [],\n createdAt: sub(new Date(), { minutes: 1 }),\n senderId: contacts[8].id\n }\n ]\n },\n {\n id: mockData.id(10),\n participants: [MY_CONTACT, contacts[9]],\n type: 'ONE_TO_ONE',\n unreadCount: 0,\n messages: [\n {\n id: uuidv4(),\n body: mockData.text.sentence(4),\n contentType: 'text',\n attachments: [],\n createdAt: sub(new Date(), { minutes: 1 }),\n senderId: MY_CONTACT.id\n },\n {\n id: uuidv4(),\n body: mockData.text.sentence(5),\n contentType: 'text',\n attachments: [],\n createdAt: sub(new Date(), { minutes: 1 }),\n senderId: contacts[9].id\n }\n ]\n },\n {\n id: mockData.id(11),\n participants: [MY_CONTACT, contacts[6], contacts[7], contacts[8], contacts[9], contacts[10]],\n type: 'GROUP',\n unreadCount: 0,\n messages: [\n {\n id: uuidv4(),\n body: mockData.text.sentence(6),\n contentType: 'text',\n attachments: [],\n createdAt: sub(new Date(), { days: 3, hours: 2, minutes: 30 }),\n senderId: MY_CONTACT.id\n },\n {\n id: uuidv4(),\n body: mockData.text.sentence(7),\n contentType: 'text',\n attachments: [],\n createdAt: sub(new Date(), { days: 3, hours: 2, minutes: 29 }),\n senderId: contacts[9].id\n },\n {\n id: uuidv4(),\n body: mockData.text.sentence(8),\n contentType: 'text',\n attachments: [],\n createdAt: sub(new Date(), { days: 3, hours: 2, minutes: 28 }),\n senderId: contacts[10].id\n },\n {\n id: uuidv4(),\n body: mockData.text.sentence(9),\n contentType: 'text',\n attachments: [],\n createdAt: sub(new Date(), { days: 3, hours: 2, minutes: 27 }),\n senderId: contacts[8].id\n },\n {\n id: uuidv4(),\n attachments: [],\n body: mockData.text.sentence(10),\n contentType: 'text',\n createdAt: sub(new Date(), { days: 3, hours: 2, minutes: 26 }),\n senderId: MY_CONTACT.id\n },\n {\n id: uuidv4(),\n body: mockData.text.sentence(11),\n contentType: 'text',\n attachments: [],\n createdAt: sub(new Date(), { days: 3 }),\n senderId: contacts[6].id\n },\n {\n id: uuidv4(),\n body: mockData.text.sentence(12),\n contentType: 'text',\n attachments: [],\n createdAt: sub(new Date(), { days: 3 }),\n senderId: contacts[7].id\n }\n ]\n },\n {\n id: mockData.id(12),\n participants: [MY_CONTACT, contacts[10]],\n type: 'ONE_TO_ONE',\n unreadCount: 0,\n messages: [\n {\n id: uuidv4(),\n body: mockData.text.sentence(13),\n contentType: 'text',\n attachments: [],\n createdAt: sub(new Date(), { minutes: 1 }),\n senderId: MY_CONTACT.id\n },\n {\n id: uuidv4(),\n body: mockData.text.sentence(14),\n contentType: 'text',\n attachments: [],\n createdAt: sub(new Date(), { minutes: 1 }),\n senderId: contacts[10].id\n }\n ]\n }\n];\n\n// ----------------------------------------------------------------------\n\nconst findContactByUsername = (username: string) => {\n const contact = contacts.find((_contact) => _contact.username === username);\n return contact || null;\n};\n\nconst findConversationById = (conversationId: string) => {\n const conversation = conversations.find((_conversation) => _conversation.id === conversationId);\n return conversation || null;\n};\n\nconst findConversationByOtherParticipantId = (participantId: string) => {\n const conversation = conversations.find((_conversation) => {\n if (_conversation.type !== 'ONE_TO_ONE') {\n return false;\n }\n const participant = _conversation.participants.find(\n (_participant) => _participant.id === participantId\n );\n return !!participant;\n });\n return conversation || null;\n};\n\nconst findConversationByParticipantIds = (participantIds: string[]) => {\n const conversation = conversations.find((_conversation) => {\n if (_conversation.participants.length < participantIds.length) {\n return false;\n }\n const _participantIds: string[] = [];\n _conversation.participants.forEach((_participant) => {\n _participantIds.push(_participant.id);\n });\n\n return isEmpty(xor(participantIds, _participantIds));\n });\n return conversation || null;\n};\n\n// ----------------------------------------------------------------------\n\nmock.onGet('/api/chat/contacts').reply(200, { contacts });\n\n// ----------------------------------------------------------------------\n\nmock.onGet('/api/chat/search').reply((config) => {\n try {\n const { query } = config.params;\n let results = contacts;\n if (query) {\n const cleanQuery = query.toLowerCase().trim();\n results = results.filter((contact) => contact.name.toLowerCase().includes(cleanQuery));\n }\n return [200, { results }];\n } catch (error) {\n console.error(error);\n return [500, { message: 'Internal server error' }];\n }\n});\n\n// ----------------------------------------------------------------------\n\nmock.onGet('/api/chat/participants').reply((config) => {\n try {\n const { conversationKey } = config.params;\n const participants = [];\n const conversation = findConversationById(conversationKey);\n if (conversation) {\n participants.push(...conversation.participants);\n } else {\n const contact = findContactByUsername(conversationKey);\n if (contact) {\n participants.push({\n id: contact.id,\n avatar: contact.avatar,\n name: contact.name,\n username: contact.username,\n address: contact.address,\n phone: contact.phone,\n email: contact.email,\n position: contact.position,\n status: contact.status,\n lastActivity: contact.lastActivity\n });\n }\n }\n return [200, { participants }];\n } catch (error) {\n console.error(error);\n return [500, { message: 'Internal server error' }];\n }\n});\n\n// ----------------------------------------------------------------------\n\nmock.onGet('/api/chat/conversations').reply(200, { conversations });\n\n// ----------------------------------------------------------------------\n\nmock.onGet('/api/chat/conversation').reply((config) => {\n try {\n const { conversationKey } = config.params;\n let conversation = findConversationById(conversationKey);\n\n if (conversation) {\n return [200, { conversation }];\n }\n\n const contact = findContactByUsername(conversationKey);\n\n if (!contact) {\n return [404, { message: 'Unable to find the contact' }];\n }\n conversation = findConversationByOtherParticipantId(contact.id);\n\n return [200, { conversation }];\n } catch (error) {\n console.error(error);\n return [500, { message: 'Internal server error' }];\n }\n});\n\n// ----------------------------------------------------------------------\n\nmock.onGet('/api/chat/conversation/mark-as-seen').reply((config) => {\n try {\n const { conversationId } = config.params;\n const conversation = conversations.find((_conversation) => _conversation.id === conversationId);\n if (conversation) {\n conversation.unreadCount = 0;\n }\n return [200, true];\n } catch (error) {\n console.error(error);\n return [500, { message: 'Internal server error' }];\n }\n});\n\n// ----------------------------------------------------------------------\n\nmock.onPost('/api/chat/messages/new').reply((request) => {\n try {\n const {\n conversationId,\n recipientIds,\n body\n }: {\n conversationId: string;\n recipientIds: string[];\n body: any;\n } = JSON.parse(request.data);\n\n const user = MY_CONTACT;\n let conversation = null;\n\n if (conversationId) {\n conversation = findConversationById(conversationId);\n if (!conversation) {\n return [400, { message: 'Invalid conversation id' }];\n }\n }\n\n if (recipientIds) {\n const participantIds = [...recipientIds, user.id];\n conversation = findConversationByParticipantIds(participantIds);\n }\n\n const message: Message = {\n id: uuidv4(),\n attachments: [],\n body,\n contentType: 'text',\n createdAt: sub(new Date(), { minutes: 1 }),\n senderId: user.id\n };\n\n if (conversation) {\n conversation.messages = [...conversation.messages, message];\n } else {\n const participants = [user];\n\n recipientIds.forEach((recipientId) => {\n const contact = contacts.find((_contact) => _contact.id === recipientId);\n\n if (!contact) {\n throw new Error('Contact not found');\n }\n\n participants.push({\n id: contact.id,\n avatar: contact.avatar,\n name: contact.name,\n username: contact.username\n });\n });\n\n conversation = {\n id: uuidv4(),\n messages: [message],\n participants,\n type: participants.length === 2 ? 'ONE_TO_ONE' : 'GROUP',\n unreadCount: 0\n };\n }\n\n const responseData = {\n conversationId: conversation.id,\n message\n };\n\n return [200, responseData];\n } catch (error) {\n console.error(error);\n return [500, { message: 'Internal server error' }];\n }\n});\n","import { sample } from 'lodash';\n// utils\nimport mock from './mock';\nimport mockData from '../utils/mock-data';\n// @types\nimport { Mail, MailLabel } from '../@types/mail';\n\n// ----------------------------------------------------------------------\n\nconst createLabelIds = (index: number) => {\n if (index === 1) {\n return ['id_promotions', 'id_forums'];\n }\n if (index === 2) {\n return ['id_forums'];\n }\n if (index === 5) {\n return ['id_social'];\n }\n return [];\n};\n\nconst createAttachment = (index: number) => {\n if (index === 1) {\n return [mockData.image.feed(1), mockData.image.feed(2)];\n }\n if (index === 2) {\n return [\n 'https://mail.google.com/mail/u/file1.docx',\n 'https://mail.google.com/mail/u/file2.xlsx',\n 'https://mail.google.com/mail/u/file3.pptx',\n 'https://mail.google.com/mail/u/file7.sketch'\n ];\n }\n if (index === 5) {\n return [\n mockData.image.feed(1),\n mockData.image.feed(2),\n '/static/mock-images/avatars/avatar_12.mp4',\n 'https://mail.google.com/mail/u/file1.docx',\n 'https://mail.google.com/mail/u/file2.xlsx',\n 'https://mail.google.com/mail/u/file3.pptx',\n 'https://mail.google.com/mail/u/file4.pdf',\n 'https://mail.google.com/mail/u/file5.psd',\n 'https://mail.google.com/mail/u/file6.esp',\n 'https://mail.google.com/mail/u/file7.sketch'\n ];\n }\n return [];\n};\n\nconst FOLDER = ['promotions', 'spam', 'inbox', 'folder'];\n\n// ----------------------------------------------------------------------\n\nconst labels: MailLabel[] = [\n { id: 'all', type: 'system', name: 'all mail', unreadCount: 3 },\n { id: 'inbox', type: 'system', name: 'inbox', unreadCount: 1 },\n { id: 'sent', type: 'system', name: 'sent', unreadCount: 0 },\n { id: 'drafts', type: 'system', name: 'drafts', unreadCount: 0 },\n { id: 'trash', type: 'system', name: 'trash', unreadCount: 0 },\n { id: 'spam', type: 'system', name: 'spam', unreadCount: 1 },\n { id: 'important', type: 'system', name: 'important', unreadCount: 1 },\n { id: 'starred', type: 'system', name: 'starred', unreadCount: 1 },\n {\n id: 'id_social',\n type: 'custom',\n name: 'social',\n unreadCount: 0,\n color: '#00AB55'\n },\n {\n id: 'id_promotions',\n type: 'custom',\n name: 'promotions',\n unreadCount: 2,\n color: '#1890FF'\n },\n {\n id: 'id_forums',\n type: 'custom',\n name: 'forums',\n unreadCount: 1,\n color: '#FFC107'\n }\n];\n\nconst mails = [...Array(9)].map((_, index) => ({\n id: mockData.id(index),\n labelIds: createLabelIds(index + 1),\n folder: sample(FOLDER),\n isImportant: mockData.boolean(index),\n isStarred: mockData.boolean(index),\n isUnread: mockData.boolean(index),\n subject: mockData.text.title(index),\n message: mockData.text.sentence(index),\n createdAt: mockData.time(index),\n files: createAttachment(index),\n from: {\n name: mockData.name.fullName(index),\n email: mockData.email(index),\n avatar:\n index === 1 || index === 2 || index === 5 || index === 6 || index === 8\n ? null\n : mockData.image.avatar(index)\n },\n to: [\n {\n name: 'Jaydon Frankie',\n email: 'demo@minimals.cc',\n avatar: null\n }\n ]\n}));\n\n// ----------------------------------------------------------------------\n\nconst filterMails = (\n mails: Mail[],\n labels: MailLabel[],\n systemLabel: string,\n customLabel: string\n) => {\n if (customLabel) {\n const label = labels.find((_label) => _label.name === customLabel);\n if (!label) {\n return [];\n }\n return mails.filter((mail) => mail.labelIds.includes(label.id));\n }\n\n if (systemLabel === 'all') {\n return mails;\n }\n\n if (['starred', 'important'].includes(systemLabel)) {\n if (systemLabel === 'starred') {\n return mails.filter((mail) => mail.isStarred);\n }\n if (systemLabel === 'important') {\n return mails.filter((mail) => mail.isImportant);\n }\n }\n\n if (['inbox', 'sent', 'drafts', 'trash', 'spam', 'starred'].includes(systemLabel)) {\n return mails.filter((mail) => mail.folder === systemLabel);\n }\n\n return [];\n};\n\n// ----------------------------------------------------------------------\n\nmock.onGet('/api/mail/labels').reply(200, { labels });\n\n// ----------------------------------------------------------------------\n\nmock.onGet('/api/mail/mails').reply((config) => {\n try {\n const { systemLabel, customLabel } = config.params;\n const filteredMails = filterMails(mails, labels, systemLabel, customLabel);\n return [200, { mails: filteredMails }];\n } catch (error) {\n console.error(error);\n return [500, { message: 'Internal server error' }];\n }\n});\n\n// ----------------------------------------------------------------------\n\nmock.onGet('/api/mail/mail').reply((config) => {\n try {\n const { mailId } = config.params;\n const mail = mails.find((_mail) => _mail.id === mailId);\n if (!mail) {\n return [404, { message: 'Mail not found' }];\n }\n return [200, { mail }];\n } catch (error) {\n console.error(error);\n return [500, { message: 'Internal server error' }];\n }\n});\n","import { random } from 'lodash';\nimport { v4 as uuidv4 } from 'uuid';\nimport { paramCase } from 'change-case';\n// utils\nimport mock from './mock';\n// utils\nimport mockData from '../utils/mock-data';\n// @types\nimport { Post } from '../@types/blog';\n\n// ----------------------------------------------------------------------\n\n// Made with React Quill\nconst POST_BODY = `\n\n

Heading H1


\n

Heading H2


\n

Heading H3


\n

Heading H4


\n
Heading H5

\n
Heading H6

\n\n
\n

Paragraph


\n

What is MTAweb Directory?


So you have heard about this site or you have been to it, but you cannot figure out what it is or what it can do. MTA web directory is the simplest way in which one can bid on a link, or a few links if they wish to do so. The link directory on MTA displays all of the links it currently has, and does so in alphabetical order, which makes it much easier for someone to find what they are looking for if it is something specific and they do not want to go through all the other sites and links as well. It allows you to start your bid at the bottom and slowly work your way to the top of the list.


With a very low costing starting bid of just $1, you are guaranteed to have a spot in MTA’s successful directory list. When you would like to increase your bid to one of the top positions, you have to know that this would be a wise decision to make as it will not only get your link to be at a higher point in the directory but it will also give you a chance to have your site advertised with the rest of the top ten on the home page of the website. This means that when visitors come to MTAweb.com, your site will be one of the first things they see. In other words, you stand a great chance at getting a comeback to your site sooner than you thought.

\n
\n

This is strong text.

\n

This is italic text

\n${\n /* eslint-disable-next-line */\n `

This is underline text

`\n}\n\n
\n

Unordered list


\n${\n /* eslint-disable */\n `\n`\n}\n\n
\n

Ordered list


\n
    \n\t
  1. Analysis
  2. \n\t
  3. Design
  4. \n\t
  5. Implementation
  6. \n
\n\n
\n

Blockquote


\n
Life is short, Smile while you still have teeth! 
\n\n
\n

Block Code


\n${\n /* eslint-disable-next-line */\n `
cd project-folder\\nnpm install\\n
`\n}\n\n
\n
\n\n${\n /* eslint-disable-next-line */\n `
var React = require('react');\\nvar Markdown = require('react-markdown');\\n\\nReact.render(\\n  <Markdown1 source=\\\"# Your markdown here\\\" />,\\n  document.getElementById('content')\\n);\\n
`\n}\n\n
\n
\n\n${\n /* eslint-disable-next-line */\n `
function createStyleObject(classNames, style) {\\n  return classNames.reduce((styleObject, className) => {\\n   return {...styleObject, ...style[className]};\\n  }, {});\\n }\\n
`\n}\n\n
\n
\n\n

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.


Why do we use it?

It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed to using 'Content here, content here', making it look like readable English. Many desktop publishing packages and web page editors now use Lorem Ipsum as their default model text, and a search for 'lorem ipsum' will uncover many web sites still in their infancy. Various versions have evolved over the years, sometimes by accident, sometimes on purpose (injected humour and the like).

\n\n
\n
\n\n

\n\n

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

\nIt is important that you buy links because the links are what get you the results that you want. The popularity of the links that are listed in the MTA directory is in fact one of the most important factors in the performance of the search engine. Links are important and this is why you have to purchase a link in order to bid on something and the best part is that a link will only cost you $1, which is nothing compared to what you would pay if you decided to do it through any other company or website.\n

\n\n
\n
\n\n

\n\n

\n\n`;\n\nexport const users = [...Array(12)].map((_, index) => {\n return {\n id: mockData.id(index),\n name: mockData.name.fullName(index),\n avatarUrl: mockData.image.avatar(index)\n };\n});\n\nconst POST_COMMENTS = [\n {\n id: uuidv4(),\n name: users[0].name,\n avatarUrl: users[0].avatarUrl,\n message: mockData.text.sentence(1),\n postedAt: mockData.time(1),\n users: [users[0], users[1], users[2]],\n replyComment: [\n {\n id: uuidv4(),\n userId: users[1].id,\n message: mockData.text.sentence(2),\n postedAt: mockData.time(2)\n },\n {\n id: uuidv4(),\n userId: users[0].id,\n message: mockData.text.sentence(3),\n tagUser: users[1].name,\n postedAt: mockData.time(3)\n },\n {\n id: uuidv4(),\n userId: users[2].id,\n message: mockData.text.sentence(4),\n postedAt: mockData.time(4)\n }\n ]\n },\n {\n id: uuidv4(),\n name: users[4].name,\n avatarUrl: users[4].avatarUrl,\n message: mockData.text.sentence(5),\n postedAt: mockData.time(5),\n users: [users[5], users[6], users[7]],\n replyComment: [\n {\n id: uuidv4(),\n userId: users[5].id,\n message: mockData.text.sentence(6),\n postedAt: mockData.time(6)\n },\n {\n id: uuidv4(),\n userId: users[6].id,\n message: mockData.text.sentence(7),\n postedAt: mockData.time(7)\n },\n {\n id: uuidv4(),\n userId: users[7].id,\n message: mockData.text.sentence(8),\n postedAt: mockData.time(8)\n }\n ]\n },\n {\n id: uuidv4(),\n name: users[8].name,\n avatarUrl: users[8].avatarUrl,\n message: mockData.text.sentence(9),\n postedAt: mockData.time(9),\n users: [],\n replyComment: []\n },\n {\n id: uuidv4(),\n name: users[9].name,\n avatarUrl: users[9].avatarUrl,\n message: mockData.text.sentence(10),\n postedAt: mockData.time(10),\n users: [],\n replyComment: []\n }\n];\n\nexport const posts = [...Array(23)].map((_, index) => {\n return {\n id: mockData.id(index),\n cover: mockData.image.cover(index),\n title: mockData.text.title(index),\n description: mockData.text.sentence(index),\n createdAt: mockData.time(index),\n view: random(9999),\n comment: random(9999),\n share: random(9999),\n favorite: random(9999),\n author: {\n name: mockData.name.fullName(index),\n avatarUrl: mockData.image.avatar(index)\n },\n tags: ['Lamp', 'A man', 'Human', 'Lantern', 'Festival'],\n body: POST_BODY,\n favoritePerson: [...Array(40)].map((_, index) => {\n return {\n name: mockData.name.fullName(index),\n avatarUrl: mockData.image.avatar(index)\n };\n }),\n comments: POST_COMMENTS\n };\n});\n\n// ----------------------------------------------------------------------\n\nmock.onGet('/api/blog/posts/all').reply(200, { posts });\n\n// ----------------------------------------------------------------------\n\nmock.onGet('/api/blog/posts').reply((config) => {\n try {\n const { index, step } = config.params;\n const maxLength = posts.length;\n const loadMore = index + step;\n\n const sortPosts = [...posts].sort((a, b) => {\n return new Date(b.createdAt).valueOf() - new Date(a.createdAt).valueOf();\n });\n\n const results = sortPosts.slice(0, loadMore);\n\n return [200, { results, maxLength }];\n } catch (error) {\n return [500, { message: 'Internal server error' }];\n }\n});\n\n// ----------------------------------------------------------------------\n\nmock.onGet('/api/blog/post').reply((config) => {\n try {\n const { title } = config.params;\n const post = posts.find((_post) => paramCase(_post.title) === title);\n\n if (!post) {\n return [404, { message: 'Post not found' }];\n }\n\n return [200, { post }];\n } catch (error) {\n return [500, { message: 'Internal server error' }];\n }\n});\n\n// ----------------------------------------------------------------------\n\nmock.onGet('/api/blog/posts/recent').reply((config) => {\n try {\n const { title } = config.params;\n\n const recentPosts = posts\n .filter((_post) => paramCase(_post.title) !== title)\n .slice(posts.length - 5, posts.length);\n\n if (!recentPosts) {\n return [404, { message: 'Post not found' }];\n }\n\n return [200, { recentPosts }];\n } catch (error) {\n return [500, { message: 'Internal server error' }];\n }\n});\n\n// ----------------------------------------------------------------------\n\nmock.onGet('/api/blog/posts/search').reply((config) => {\n try {\n const { query } = config.params;\n const cleanQuery = query.toLowerCase().trim();\n const results: Post[] = [];\n\n posts.forEach((post) => {\n if (!query) {\n return results.push(post);\n }\n\n if (post.title.toLowerCase().includes(cleanQuery)) {\n return results.push(post);\n }\n });\n\n return [200, { results }];\n } catch (error) {\n return [500, { message: 'Internal server error' }];\n }\n});\n","import { random, sample } from 'lodash';\n// utils\nimport mock from './mock';\nimport mockData from '../utils/mock-data';\n\n// ----------------------------------------------------------------------\n\nmock.onGet('/api/user/profile').reply(() => {\n const profile = {\n id: mockData.id(1),\n cover: mockData.image.cover(1),\n position: 'UI Designer',\n follower: random(99999),\n following: random(99999),\n quote:\n 'Tart I love sugar plum I love oat cake. Sweet roll caramels I love jujubes. Topping cake wafer..',\n country: mockData.address.country(1),\n email: mockData.email(1),\n company: mockData.company(1),\n school: mockData.company(2),\n role: 'Manager',\n facebookLink: `https://www.facebook.com/caitlyn.kerluke`,\n instagramLink: `https://www.instagram.com/caitlyn.kerluke`,\n linkedinLink: `https://www.linkedin.com/in/caitlyn.kerluke`,\n twitterLink: `https://www.twitter.com/caitlyn.kerluke`\n };\n\n return [200, { profile }];\n});\n\n// ----------------------------------------------------------------------\n\nmock.onGet('/api/user/all').reply(() => {\n const users = [...Array(24)].map((_, index) => ({\n id: mockData.id(index),\n avatarUrl: mockData.image.avatar(index),\n cover: mockData.image.cover(index),\n name: mockData.name.fullName(index),\n follower: random(9999),\n following: random(9999),\n totalPost: random(9999),\n position: mockData.role(index)\n }));\n\n return [200, { users }];\n});\n\n// ----------------------------------------------------------------------\n\nmock.onGet('/api/user/manage-users').reply(() => {\n const users = [...Array(24)].map((_, index) => ({\n id: mockData.id(index),\n avatarUrl: mockData.image.avatar(index),\n name: mockData.name.fullName(index),\n email: mockData.email(index),\n phoneNumber: mockData.phoneNumber(index),\n address: '908 Jack Locks',\n country: mockData.address.country(index),\n state: 'Virginia',\n city: 'Rancho Cordova',\n zipCode: '85807',\n company: mockData.company(index),\n isVerified: mockData.boolean(index),\n status: sample(['active', 'banned']) || 'active',\n role: mockData.role(index)\n }));\n\n return [200, { users }];\n});\n\n// ----------------------------------------------------------------------\n\nmock.onGet('/api/user/social/followers').reply(() => {\n const followers = [...Array(18)].map((_, index) => ({\n id: mockData.id(index),\n avatarUrl: mockData.image.avatar(index),\n name: mockData.name.fullName(index),\n country: mockData.address.country(index),\n isFollowed: mockData.boolean(index)\n }));\n\n return [200, { followers }];\n});\n\n// ----------------------------------------------------------------------\n\nmock.onGet('/api/user/social/friends').reply(() => {\n const friends = [...Array(18)].map((_, index) => ({\n id: mockData.id(index),\n avatarUrl: mockData.image.avatar(index),\n name: mockData.name.fullName(index),\n role: mockData.role(index)\n }));\n\n return [200, { friends }];\n});\n\n// ----------------------------------------------------------------------\n\nmock.onGet('/api/user/social/gallery').reply(() => {\n const gallery = [...Array(18)].map((_, index) => ({\n id: mockData.id(index),\n title: mockData.text.title(index),\n postAt: mockData.time(index),\n imageUrl: mockData.image.cover(index)\n }));\n\n return [200, { gallery }];\n});\n\n// ----------------------------------------------------------------------\n\nmock.onGet('/api/user/account/cards').reply(() => {\n const cards = [...Array(2)].map((_, index) => ({\n id: mockData.id(index),\n cardNumber:\n (index === 0 && '**** **** **** 1234') ||\n (index === 1 && '**** **** **** 5678') ||\n '**** **** **** 5678',\n cardType: (index === 0 && 'master_card') || (index === 1 && 'visa') || 'master_card'\n }));\n\n return [200, { cards }];\n});\n\n// ----------------------------------------------------------------------\n\nmock.onGet('/api/user/account/address-book').reply(() => {\n const addressBook = [...Array(4)].map((_, index) => ({\n id: mockData.id(index),\n name: mockData.name.fullName(index),\n phone: mockData.phoneNumber(index),\n country: mockData.address.country(index),\n state: 'New Hampshire',\n city: 'East Sambury',\n street: '41256 Kamille Turnpike',\n zipCode: '85807'\n }));\n\n return [200, { addressBook }];\n});\n\n// ----------------------------------------------------------------------\n\nmock.onGet('/api/user/account/invoices').reply(() => {\n const invoices = [...Array(10)].map((_, index) => ({\n id: mockData.id(index),\n createdAt: mockData.time(index),\n price: mockData.number.price(index)\n }));\n\n return [200, { invoices }];\n});\n\n// ----------------------------------------------------------------------\n\nmock.onGet('/api/user/account/notifications-settings').reply(() => {\n const notifications = {\n activityComments: true,\n activityAnswers: true,\n activityFollows: false,\n applicationNews: true,\n applicationProduct: false,\n applicationBlog: false\n };\n\n return [200, { notifications }];\n});\n\n// ----------------------------------------------------------------------\n\nmock.onGet('/api/user/posts').reply(() => {\n const posts = [...Array(3)].map((_, index) => ({\n id: mockData.id(index),\n author: {\n id: mockData.id(8),\n avatarUrl: mockData.image.avatar(1),\n name: 'Caitlyn Kerluke'\n },\n isLiked: true,\n createdAt: mockData.time(index),\n media: mockData.image.feed(index),\n message: mockData.text.sentence(index),\n personLikes: [...Array(36)].map((_, index) => ({\n name: mockData.name.fullName(index),\n avatarUrl: mockData.image.avatar(index + 2)\n })),\n comments: (index === 2 && []) || [\n {\n id: mockData.id(7),\n author: {\n id: mockData.id(8),\n avatarUrl: mockData.image.avatar(sample([2, 3, 4, 5, 6]) || 2),\n name: mockData.name.fullName(index + 5)\n },\n createdAt: mockData.time(2),\n message: 'Praesent venenatis metus at'\n },\n {\n id: mockData.id(9),\n author: {\n id: mockData.id(10),\n avatarUrl: mockData.image.avatar(sample([7, 8, 9, 10, 11]) || 7),\n name: mockData.name.fullName(index + 6)\n },\n createdAt: mockData.time(3),\n message:\n 'Etiam rhoncus. Nullam vel sem. Pellentesque libero tortor, tincidunt et, tincidunt eget, semper nec, quam. Sed lectus.'\n }\n ]\n }));\n\n return [200, { posts }];\n});\n","// ----------------------------------------------------------------------\n\nexport default function fakeRequest(time: number) {\n return new Promise((res) => setTimeout(res, time));\n}\n","import jwtDecode from 'jwt-decode';\nimport { verify, sign } from 'jsonwebtoken';\n//\nimport axios from './axios';\n\n// ----------------------------------------------------------------------\n\nconst isValidToken = (accessToken: string) => {\n if (!accessToken) {\n return false;\n }\n const decoded = jwtDecode<{ exp: number }>(accessToken);\n const currentTime = Date.now() / 1000;\n\n return decoded.exp > currentTime;\n};\n\n// const handleTokenExpired = (exp) => {\n// let expiredTimer;\n\n// window.clearTimeout(expiredTimer);\n// const currentTime = Date.now();\n// const timeLeft = exp * 1000 - currentTime;\n// console.log(timeLeft);\n// expiredTimer = window.setTimeout(() => {\n// console.log('expired');\n// // You can do what ever you want here, like show a notification\n// }, timeLeft);\n// };\n\nconst setSession = (accessToken: string | null) => {\n if (accessToken) {\n localStorage.setItem('accessToken', accessToken);\n axios.defaults.headers.common.Authorization = `Bearer ${accessToken}`;\n // This function below will handle when token is expired\n // const { exp } = jwtDecode(accessToken);\n // handleTokenExpired(exp);\n } else {\n localStorage.removeItem('accessToken');\n delete axios.defaults.headers.common.Authorization;\n }\n};\n\nexport { isValidToken, setSession, verify, sign };\n","import { v4 as uuidv4 } from 'uuid';\n// utils\nimport fakeRequest from '../utils/fakeRequest';\nimport { verify, sign } from '../utils/jwt';\n// @types\nimport { User } from '../@types/account';\n//\nimport mock from './mock';\n\n// ----------------------------------------------------------------------\n\nconst JWT_SECRET = 'minimal-secret-key';\nconst JWT_EXPIRES_IN = '5 days';\n\nconst users: User[] = [\n {\n id: '8864c717-587d-472a-929a-8e5f298024da-0',\n displayName: 'Jaydon Frankie',\n email: 'demo@minimals.cc',\n password: 'demo1234',\n photoURL: '/static/mock-images/avatars/avatar_default.jpg',\n phoneNumber: '+40 777666555',\n country: 'United States',\n address: '90210 Broadway Blvd',\n state: 'California',\n city: 'San Francisco',\n zipCode: '94116',\n about: 'Praesent turpis. Phasellus viverra nulla ut metus varius laoreet. Phasellus tempus.',\n role: 'admin',\n isPublic: true\n }\n];\n\n// ----------------------------------------------------------------------\n\nmock.onPost('/api/account/login').reply(async (config) => {\n try {\n await fakeRequest(1000);\n\n const { email, password } = JSON.parse(config.data);\n const user = users.find((_user) => _user.email === email);\n\n if (!user) {\n return [400, { message: 'There is no user corresponding to the email address.' }];\n }\n\n if (user.password !== password) {\n return [400, { message: 'Wrong password' }];\n }\n\n const accessToken = sign({ userId: user.id }, JWT_SECRET, {\n expiresIn: JWT_EXPIRES_IN\n });\n\n return [200, { accessToken, user }];\n } catch (error) {\n return [500, { message: 'Internal server error' }];\n }\n});\n\n// ----------------------------------------------------------------------\n\nmock.onPost('/api/account/register').reply(async (config) => {\n try {\n await fakeRequest(1000);\n\n const { email, password, firstName, lastName } = JSON.parse(config.data);\n let user = users.find((_user) => _user.email === email);\n\n if (user) {\n return [400, { message: 'There already exists an account with the given email address.' }];\n }\n\n user = {\n id: uuidv4(),\n displayName: `${firstName} ${lastName}`,\n email,\n password,\n photoURL: null,\n phoneNumber: null,\n country: null,\n address: null,\n state: null,\n city: null,\n zipCode: null,\n about: null,\n role: 'user',\n isPublic: true\n };\n\n const accessToken = sign({ userId: user.id }, JWT_SECRET, {\n expiresIn: JWT_EXPIRES_IN\n });\n\n return [200, { accessToken, user }];\n } catch (error) {\n return [500, { message: 'Internal server error' }];\n }\n});\n\n// ----------------------------------------------------------------------\n\nmock.onGet('/api/account/my-account').reply((config) => {\n try {\n const { Authorization } = config.headers;\n\n if (!Authorization) {\n return [401, { message: 'Authorization token missing' }];\n }\n\n const accessToken = Authorization.split(' ')[1];\n const data: any = verify(accessToken, JWT_SECRET);\n const userId = typeof data === 'object' ? data?.userId : '';\n const user = users.find((_user) => _user.id === userId);\n\n if (!user) {\n return [401, { message: 'Invalid authorization token' }];\n }\n\n return [200, { user }];\n } catch (error) {\n return [500, { message: 'Internal server error' }];\n }\n});\n","import { v4 as uuidv4 } from 'uuid';\nimport { add, set, sub } from 'date-fns';\nimport { map, assign, reject } from 'lodash';\n// utils\n\nimport mockData from '../utils/mock-data';\n//\nimport mock from './mock';\n\n// ----------------------------------------------------------------------\n\nconst COLOR_OPTIONS = [\n '#00AB55', // theme.palette.primary.main,\n '#1890FF', // theme.palette.info.main,\n '#94D82D', // theme.palette.success.main,\n '#FFC107', // theme.palette.warning.main,\n '#FF4842', // theme.palette.error.main\n '#04297A', // theme.palette.info.darker\n '#7A0C2E' // theme.palette.error.darker\n];\n\nconst setColorAndTime = (index: number) => {\n if (index === 0)\n return {\n textColor: COLOR_OPTIONS[0],\n start: sub(new Date(), { days: 6, hours: 6, minutes: 30 }),\n end: sub(new Date(), { days: 6, hours: 4, minutes: 30 })\n };\n if (index === 1)\n return {\n textColor: COLOR_OPTIONS[1],\n start: add(new Date(), { days: 2, hours: 0, minutes: 0 }),\n end: add(new Date(), { days: 2, hours: 1, minutes: 0 })\n };\n if (index === 2)\n return {\n textColor: COLOR_OPTIONS[2],\n start: add(new Date(), { days: 6, hours: 0, minutes: 15 }),\n end: add(new Date(), { days: 6, hours: 0, minutes: 20 })\n };\n if (index === 3)\n return {\n textColor: COLOR_OPTIONS[5],\n start: sub(new Date(), { days: 12, hours: 0, minutes: 45 }),\n end: sub(new Date(), { days: 12, hours: 0, minutes: 30 })\n };\n if (index === 4)\n return {\n textColor: COLOR_OPTIONS[5],\n start: add(new Date(), { days: 2, hours: 2, minutes: 30 }),\n end: add(new Date(), { days: 2, hours: 3, minutes: 30 })\n };\n if (index === 5)\n return {\n textColor: COLOR_OPTIONS[4],\n start: sub(new Date(), { days: 3, hours: 3, minutes: 30 }),\n end: sub(new Date(), { days: 3, hours: 3, minutes: 20 })\n };\n if (index === 6)\n return {\n textColor: COLOR_OPTIONS[0],\n start: set(new Date(), { hours: 10, minutes: 30 }),\n end: set(new Date(), { hours: 13, minutes: 30 })\n };\n if (index === 7)\n return {\n textColor: COLOR_OPTIONS[3],\n start: add(new Date(), { days: 2, hours: 3, minutes: 30 }),\n end: add(new Date(), { days: 2, hours: 4, minutes: 30 })\n };\n return {\n textColor: COLOR_OPTIONS[2],\n start: add(new Date(), { days: 2, hours: 3, minutes: 45 }),\n end: add(new Date(), { days: 2, hours: 4, minutes: 50 })\n };\n};\n\nlet events = [...Array(9)].map((_, index) => ({\n id: uuidv4(),\n title: mockData.text.title(index),\n description: mockData.text.description(index),\n allDay: mockData.boolean(index),\n ...setColorAndTime(index)\n}));\n\n// ----------------------------------------------------------------------\n\nmock.onGet('/api/calendar/events').reply(200, { events });\n\n// ----------------------------------------------------------------------\n\nmock.onPost('/api/calendar/events/new').reply((request) => {\n try {\n const { title, description, textColor, allDay, end, start } = JSON.parse(request.data);\n const event = {\n id: uuidv4(),\n title,\n description,\n textColor,\n allDay,\n end,\n start\n };\n events = [...events, event];\n return [200, { event }];\n } catch (error) {\n return [500, { message: 'Internal server error' }];\n }\n});\n\n// ----------------------------------------------------------------------\n\nmock.onPost('/api/calendar/events/update').reply((request) => {\n try {\n const { eventId, updateEvent } = JSON.parse(request.data);\n let event = null;\n events = map(events, (_event) => {\n if (_event.id === eventId) {\n assign(_event, { ...updateEvent });\n event = _event;\n }\n return _event;\n });\n return [200, { event }];\n } catch (error) {\n return [500, { message: 'Internal server error' }];\n }\n});\n\n// ----------------------------------------------------------------------\n\nmock.onPost('/api/calendar/events/delete').reply((request) => {\n try {\n const { eventId } = JSON.parse(request.data);\n events = reject(events, { id: eventId });\n return [200, { eventId }];\n } catch (error) {\n return [500, { message: 'Internal server error' }];\n }\n});\n","import { random, sample } from 'lodash';\nimport { paramCase } from 'change-case';\n// utils\nimport mock from './mock';\nimport mockData from '../utils/mock-data';\n\n// ----------------------------------------------------------------------\n\nconst PRODUCT_NAME = [\n 'Nike Air Force 1 NDESTRUKT',\n 'Nike Space Hippie 04',\n 'Nike Air Zoom Pegasus 37 A.I.R. Chaz Bear',\n 'Nike Blazer Low 77 Vintage',\n 'Nike ZoomX SuperRep Surge',\n 'Zoom Freak 2',\n 'Nike Air Max Zephyr',\n 'Jordan Delta',\n 'Air Jordan XXXV PF',\n 'Nike Waffle Racer Crater',\n 'Kyrie 7 EP Sisterhood',\n 'Nike Air Zoom BB NXT',\n 'Nike Air Force 1 07 LX',\n 'Nike Air Force 1 Shadow SE',\n 'Nike Air Zoom Tempo NEXT%',\n 'Nike DBreak-Type',\n 'Nike Air Max Up',\n 'Nike Air Max 270 React ENG',\n 'NikeCourt Royale',\n 'Nike Air Zoom Pegasus 37 Premium',\n 'Nike Air Zoom SuperRep',\n 'NikeCourt Royale',\n 'Nike React Art3mis',\n 'Nike React Infinity Run Flyknit A.I.R. Chaz Bear'\n];\n\nconst PRODUCT_COLOR = [\n '#00AB55',\n '#000000',\n '#FFFFFF',\n '#FFC0CB',\n '#FF4842',\n '#1890FF',\n '#94D82D',\n '#FFC107'\n];\nconst PRODUCT_TAGS = ['Dangal', 'The Sting', '2001: A Space Odyssey', \"Singin' in the Rain\"];\n\nconst PRODUCT_DESCRIPTION = `\n

SPECIFICATION

\n

Leather panels. Laces. Rounded toe. Rubber sole.\n

\n

MATERIAL AND WASHING INSTRUCTIONS

\n

Shoeupper: 54% bovine leather,46% polyurethane. Lining: 65% polyester,35% cotton. Insole: 100% polyurethane. Sole: 100% thermoplastic. Fixing sole: 100% glued.

\n`;\nconst PRODUCT_SIZE = ['6', '7', '8', '8.5', '9', '9.5', '10', '10.5', '11', '11.5', '12', '13'];\n\n// ----------------------------------------------------------------------\n\nconst products = [...Array(24)].map((_, index) => ({\n id: mockData.id(index),\n cover: mockData.image.product(index),\n images: [...Array(8)].map((_, index) => mockData.image.product(index)),\n name: PRODUCT_NAME[index],\n code: `38BEE27${index}`,\n sku: `WW75K521${index}YW/SV`,\n tags: PRODUCT_TAGS,\n price: mockData.number.price(index),\n priceSale: index % 3 ? null : mockData.number.price(index),\n totalRating: mockData.number.rating(index),\n totalReview: random(9999),\n ratings: [...Array(5)].map((_, index) => ({\n name: `${index + 1} Star`,\n starCount: random(9999),\n reviewCount: random(9999)\n })),\n reviews: [...Array(8)].map((_, index) => ({\n id: mockData.id(index),\n name: mockData.name.fullName(index),\n avatarUrl: `/static/mock-images/avatars/avatar_${index + 1}.jpg`,\n comment: mockData.text.sentence(index),\n rating: mockData.number.rating(index),\n isPurchased: mockData.boolean(index),\n helpful: random(9999),\n postedAt: mockData.time(index)\n })),\n colors:\n (index === 1 && PRODUCT_COLOR.slice(0, 2)) ||\n (index === 2 && PRODUCT_COLOR.slice(1, 3)) ||\n (index === 3 && PRODUCT_COLOR.slice(2, 4)) ||\n (index === 4 && PRODUCT_COLOR.slice(3, 6)) ||\n (index === 23 && PRODUCT_COLOR.slice(4, 6)) ||\n (index === 24 && PRODUCT_COLOR.slice(5, 6)) ||\n PRODUCT_COLOR,\n status: index % 3 ? sample(['new', '', '', '', '', '']) : 'sale',\n inventoryType: sample(['in_stock', 'out_of_stock', 'low_stock']),\n sizes: PRODUCT_SIZE,\n available: index % 3 === 0 ? random(19, 100) : 2,\n description: PRODUCT_DESCRIPTION,\n sold: random(999),\n createdAt: mockData.time(index),\n category: sample(['Shose', 'Apparel', 'Accessories']),\n gender: sample(['Men', 'Women', 'Kids'])\n}));\n\n// ----------------------------------------------------------------------\n\nmock.onGet('/api/products').reply(200, { products });\n\n// ----------------------------------------------------------------------\n\nmock.onGet('/api/products/product').reply((config) => {\n try {\n const { name } = config.params;\n const product = products.find((_product) => paramCase(_product.name) === name);\n\n if (!product) {\n return [404, { message: 'product not found' }];\n }\n\n return [200, { product }];\n } catch (error) {\n console.error(error);\n return [500, { message: 'Internal server error' }];\n }\n});\n","import { v4 as uuidv4 } from 'uuid';\nimport { addDays } from 'date-fns';\n// utils\nimport mockData from '../utils/mock-data';\n//\nimport mock from './mock';\n\n// ----------------------------------------------------------------------\n\nconst now = new Date();\n\nconst columnIds = {\n column1: '8cd887ec-b3bc-11eb-8529-0242ac130003',\n column2: '23008a1f-ad94-4771-b85c-3566755afab7',\n column3: '37a9a747-f732-4587-a866-88d51c037641',\n column4: '4ac3cd37-b3e1-466a-8e3b-d7d88f6f5d4f'\n};\n\nconst cardIds = {\n card1: 'deb02f04-9cf8-4f1e-97e0-2fbda84cc6b3',\n card2: '98bf6e8b-becc-485b-9c3f-a7d09392c48d',\n card3: '99fbc02c-de89-4be3-9515-f8bd12227d38',\n card4: 'ab9cebca-6cb4-4847-aa17-3b261b3dd0fb',\n card5: 'ebf0d26a-78e5-414f-986f-003d8fcd3154',\n card6: '9d98ce30-3c51-4de3-8537-7a4b663ee3af',\n card7: '0f71fb1f-9fce-419c-a525-46aeeb9b3e83',\n card8: '534fac32-cae1-4d77-965a-062d2114bc29',\n card9: 'dc0fa705-1740-46a4-a3ec-5c6d67b6f402',\n card10: '5b323625-c53b-4d06-86df-b59e180657a0'\n};\n\nconst memberIds = {\n member1: '473d2720-341c-49bf-94ed-556999cf6ef7',\n member2: 'b8395203-887c-46f5-a85f-339b2d75c98b',\n member3: '048f6343-7a65-4873-a570-eb6ff4eb1ba3',\n member4: '18e23ac9-c874-43e4-8163-2d37f15f3367',\n member5: 'a3be5485-03bf-47a6-b553-a9cf9f070ed8'\n};\n\nconst COMMENTS = [...Array(8)].map((_, index) => ({\n id: uuidv4(),\n avatar: mockData.image.avatar(index),\n name: mockData.name.fullName(index),\n createdAt: mockData.time(index),\n messageType: index === 3 || index === 5 ? 'image' : 'text',\n message:\n (index === 3 && mockData.image.feed(6)) ||\n (index === 5 && mockData.image.feed(8)) ||\n mockData.text.sentence(index)\n}));\n\n// ----------------------------------------------------------------------\n\nconst cardList = [\n {\n id: cardIds.card1,\n name: 'Call with sales of HubSpot',\n description:\n 'Duis condimentum lacus finibus felis pellentesque, ac auctor nibh fermentum. Duis sed dui ante. Phasellus id eros tincidunt, dictum lorem vitae, pellentesque sem. Aenean eu enim sit amet mauris rhoncus mollis. Sed enim turpis, porta a felis et, luctus faucibus nisi. Phasellus et metus fermentum, ultrices arcu aliquam, facilisis justo. Cras nunc nunc, elementum sed euismod ut, maximus eget nibh. Phasellus condimentum lorem neque. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Fusce sagittis pharetra eleifend. Suspendisse potenti.',\n assignee: [\n { id: memberIds.member1, avatar: mockData.image.avatar(1), name: mockData.name.fullName(1) }\n ],\n due: [addDays(now, 6).getTime(), addDays(now, 7).getTime()],\n attachments: [],\n comments: COMMENTS,\n completed: true\n },\n {\n id: cardIds.card2,\n name: 'Interview for the Asis. Sales Manager',\n description: 'We are looking for vue experience and of course node js strong knowledge',\n assignee: [\n { id: memberIds.member1, avatar: mockData.image.avatar(1), name: mockData.name.fullName(2) },\n { id: memberIds.member2, avatar: mockData.image.avatar(2), name: mockData.name.fullName(3) },\n { id: memberIds.member4, avatar: mockData.image.avatar(3), name: mockData.name.fullName(4) },\n { id: memberIds.member5, avatar: mockData.image.avatar(4), name: mockData.name.fullName(5) },\n { id: memberIds.member3, avatar: mockData.image.avatar(5), name: mockData.name.fullName(6) }\n ],\n due: [addDays(now, 6).getTime(), addDays(now, 7).getTime()],\n attachments: [mockData.image.feed(1)],\n comments: [],\n completed: false\n },\n {\n id: cardIds.card3,\n name: 'Change the height of the top bar because it looks too chunky',\n description:\n 'We nede to make it aggressive with pricing because it’s in their interest to acquire us',\n assignee: [],\n due: [null, null],\n attachments: [],\n comments: [],\n completed: true\n },\n {\n id: cardIds.card4,\n name: 'Integrate Stripe API',\n description:\n 'We nede to make it aggresive with pricing because it’s in their interest to acquire us',\n assignee: [\n { id: memberIds.member2, avatar: mockData.image.avatar(2), name: mockData.name.fullName(7) },\n { id: memberIds.member5, avatar: mockData.image.avatar(5), name: mockData.name.fullName(8) }\n ],\n due: [null, null],\n attachments: [mockData.image.feed(3)],\n comments: [],\n completed: false\n },\n {\n id: cardIds.card5,\n name: 'Update the customer API for payments',\n description:\n 'We need to make it aggresive with pricing because it’s in their interest to acquire us',\n assignee: [\n { id: memberIds.member1, avatar: mockData.image.avatar(1), name: mockData.name.fullName(9) }\n ],\n due: [null, null],\n attachments: [],\n comments: [],\n completed: true\n },\n {\n id: cardIds.card6,\n name: 'Release minimals DS',\n description: 'Production',\n assignee: [\n { id: memberIds.member1, avatar: mockData.image.avatar(1), name: mockData.name.fullName(10) }\n ],\n due: [null, null],\n attachments: [],\n comments: [],\n completed: true\n }\n];\n\nconst columnList = [\n {\n id: columnIds.column1,\n name: 'Backlog',\n cardIds: [cardIds.card1, cardIds.card2, cardIds.card3]\n },\n {\n id: columnIds.column2,\n name: 'Progress',\n cardIds: [cardIds.card4, cardIds.card5]\n },\n {\n id: columnIds.column3,\n name: 'Q&A',\n cardIds: []\n },\n {\n id: columnIds.column4,\n name: 'Production',\n cardIds: [cardIds.card6]\n }\n];\n\nconst board = {\n cards: cardList,\n columns: columnList,\n columnOrder: [columnIds.column1, columnIds.column2, columnIds.column3, columnIds.column4]\n};\n\n// ----------------------------------------------------------------------\n\nmock.onGet('/api/kanban/board').reply(200, { board });\n\n// ----------------------------------------------------------------------\n\nmock.onPost('/api/kanban/columns/new').reply((request) => {\n try {\n const { name } = JSON.parse(request.data);\n const column = {\n id: uuidv4(),\n name,\n cardIds: []\n };\n board.columns.push(column);\n board.columnOrder.push(column.id);\n return [200, { column }];\n } catch (error) {\n console.error(error);\n return [500, { message: 'Internal server error' }];\n }\n});\n\n// ----------------------------------------------------------------------\n\nmock.onPost('/api/kanban/columns/update').reply((request) => {\n try {\n const { columnId, updateColumn } = JSON.parse(request.data);\n const columnIndex = board.columns.findIndex((column) => column.id === columnId);\n\n board.columns[columnIndex] = {\n ...board.columns[columnIndex],\n ...updateColumn\n };\n\n return [200, { column: board.columns[columnIndex] }];\n } catch (error) {\n console.error(error);\n return [500, { message: 'Internal server error' }];\n }\n});\n\n// ----------------------------------------------------------------------\n\nmock.onPost('/api/kanban/columns/delete').reply((request) => {\n try {\n const { columnId } = JSON.parse(request.data);\n\n const column = board.columns.find((c) => c.id === columnId);\n\n if (column) {\n board.cards = board.cards.filter((card) => !column.cardIds.includes(card.id));\n }\n\n board.columns = board.columns.filter((id) => id !== columnId);\n board.columnOrder = board.columnOrder.filter((id) => id !== columnId);\n\n return [200, { columnId }];\n } catch (error) {\n console.error(error);\n return [500, { message: 'Internal server error' }];\n }\n});\n","import i18n from 'i18next';\nimport LanguageDetector from 'i18next-browser-languagedetector';\nimport { initReactI18next } from 'react-i18next';\n//\nimport enLocales from './translations/en.json';\nimport esLocales from './translations/es.json';\n/* import brLocales from './translations/en.json'; */\n\n// ----------------------------------------------------------------------\n\ni18n\n .use(LanguageDetector)\n .use(initReactI18next)\n .init({\n resources: {\n en: { translations: enLocales },\n es: { translations: esLocales }\n /* br: { translations: brLocales } */\n },\n lng: localStorage.getItem('i18nextLng') || 'es',\n fallbackLng: 'es',\n debug: false,\n ns: ['translations'],\n defaultNS: 'translations',\n interpolation: {\n escapeValue: false\n }\n });\n\nexport default i18n;\n","import hljs from 'highlight.js';\nimport 'highlight.js/styles/atom-one-dark.css';\n\n// ----------------------------------------------------------------------\n\nhljs.configure({\n languages: ['javascript', 'jsx', 'sh', 'bash', 'html', 'scss', 'css', 'json']\n});\n\n// @ts-ignore\nwindow.hljs = hljs;\n","import { createSlice } from '@reduxjs/toolkit';\nimport { dispatch } from '../store';\n// utils\nimport axios from '../../utils/axios';\n// @types\nimport { Mail, MailLabel } from '../../@types/mail';\n\n// ----------------------------------------------------------------------\n\nfunction objFromArray(array: any[], key = 'id') {\n return array.reduce((accumulator, current) => {\n accumulator[current[key]] = current;\n return accumulator;\n }, {});\n}\n\ntype MailState = {\n isLoading: boolean;\n error: boolean;\n mails: {\n byId: Record;\n allIds: string[];\n };\n labels: MailLabel[];\n};\n\nconst initialState: MailState = {\n isLoading: false,\n error: false,\n mails: { byId: {}, allIds: [] },\n labels: []\n};\n\nconst slice = createSlice({\n name: 'mail',\n initialState,\n reducers: {\n // START LOADING\n startLoading(state) {\n state.isLoading = true;\n },\n\n // HAS ERROR\n hasError(state, action) {\n state.isLoading = false;\n state.error = action.payload;\n },\n\n // GET LABELS\n getLabelsSuccess(state, action) {\n state.isLoading = false;\n state.labels = action.payload;\n },\n\n // GET MAILS\n getMailsSuccess(state, action) {\n const mails = action.payload;\n\n state.isLoading = false;\n state.mails.byId = objFromArray(mails);\n state.mails.allIds = Object.keys(state.mails.byId);\n },\n\n // GET MAIL\n getMailSuccess(state, action) {\n const mail = action.payload;\n\n state.mails.byId[mail.id] = mail;\n if (!state.mails.allIds.includes(mail.id)) {\n state.mails.allIds.push(mail.id);\n }\n }\n }\n});\n\n// Reducer\nexport default slice.reducer;\n\n// ----------------------------------------------------------------------\n\nexport function getLabels() {\n return async () => {\n dispatch(slice.actions.startLoading());\n try {\n const response = await axios.get('/api/mail/labels');\n dispatch(slice.actions.getLabelsSuccess(response.data.labels));\n } catch (error) {\n dispatch(slice.actions.hasError(error));\n }\n };\n}\n\n// ----------------------------------------------------------------------\n\nexport function getMails(params: Record) {\n return async () => {\n dispatch(slice.actions.startLoading());\n try {\n const response = await axios.get('/api/mail/mails', { params });\n dispatch(slice.actions.getMailsSuccess(response.data.mails));\n } catch (error) {\n dispatch(slice.actions.hasError(error));\n }\n };\n}\n\n// ----------------------------------------------------------------------\n\nexport function getMail(mailId: string) {\n return async () => {\n dispatch(slice.actions.startLoading());\n try {\n const response = await axios.get('/api/mail/mail', {\n params: { mailId }\n });\n dispatch(slice.actions.getMailSuccess(response.data.mail));\n } catch (error) {\n dispatch(slice.actions.hasError(error));\n }\n };\n}\n","import { createSlice } from '@reduxjs/toolkit';\nimport { dispatch } from '../store';\n// utils\nimport axios from '../../utils/axios';\n// @types\nimport { Conversation, Participant } from '../../@types/chat';\n\n// ----------------------------------------------------------------------\n\nfunction objFromArray(array: any[], key = 'id') {\n return array.reduce((accumulator, current) => {\n accumulator[current[key]] = current;\n return accumulator;\n }, {});\n}\n\ntype ChatState = {\n isLoading: boolean;\n error: boolean;\n contacts: {\n byId: Record;\n allIds: string[];\n };\n conversations: {\n byId: Record;\n allIds: string[];\n };\n activeConversationId: null | string;\n participants: Participant[];\n recipients: any[];\n};\n\nconst initialState: ChatState = {\n isLoading: false,\n error: false,\n contacts: { byId: {}, allIds: [] },\n conversations: { byId: {}, allIds: [] },\n activeConversationId: null,\n participants: [],\n recipients: []\n};\n\nconst slice = createSlice({\n name: 'chat',\n initialState,\n reducers: {\n // START LOADING\n startLoading(state) {\n state.isLoading = true;\n },\n\n // HAS ERROR\n hasError(state, action) {\n state.isLoading = false;\n state.error = action.payload;\n },\n\n // GET CONTACT SSUCCESS\n getContactsSuccess(state, action) {\n const contacts = action.payload;\n\n state.contacts.byId = objFromArray(contacts);\n state.contacts.allIds = Object.keys(state.contacts.byId);\n },\n\n // GET CONVERSATIONS\n getConversationsSuccess(state, action) {\n const conversations = action.payload;\n\n state.conversations.byId = objFromArray(conversations);\n state.conversations.allIds = Object.keys(state.conversations.byId);\n },\n\n // GET CONVERSATION\n getConversationSuccess(state, action) {\n const conversation = action.payload;\n\n if (conversation) {\n state.conversations.byId[conversation.id] = conversation;\n state.activeConversationId = conversation.id;\n if (!state.conversations.allIds.includes(conversation.id)) {\n state.conversations.allIds.push(conversation.id);\n }\n } else {\n state.activeConversationId = null;\n }\n },\n\n // ON SEND MESSAGE\n onSendMessage(state, action) {\n const conversation = action.payload;\n const { conversationId, messageId, message, contentType, attachments, createdAt, senderId } =\n conversation;\n\n const newMessage = {\n id: messageId,\n body: message,\n contentType,\n attachments,\n createdAt,\n senderId\n };\n\n state.conversations.byId[conversationId].messages.push(newMessage);\n },\n\n markConversationAsReadSuccess(state, action) {\n const { conversationId } = action.payload;\n const conversation = state.conversations.byId[conversationId];\n if (conversation) {\n conversation.unreadCount = 0;\n }\n },\n\n // GET PARTICIPANTS\n getParticipantsSuccess(state, action) {\n const participants = action.payload;\n state.participants = participants;\n },\n\n // RESET ACTIVE CONVERSATION\n resetActiveConversation(state) {\n state.activeConversationId = null;\n },\n\n addRecipients(state, action) {\n const recipients = action.payload;\n state.recipients = recipients;\n }\n }\n});\n\n// Reducer\nexport default slice.reducer;\n\n// Actions\nexport const { addRecipients, onSendMessage, resetActiveConversation } = slice.actions;\n\n// ----------------------------------------------------------------------\n\nexport function getContacts() {\n return async () => {\n dispatch(slice.actions.startLoading());\n try {\n const response = await axios.get('/api/chat/contacts');\n dispatch(slice.actions.getContactsSuccess(response.data.contacts));\n } catch (error) {\n dispatch(slice.actions.hasError(error));\n }\n };\n}\n\n// ----------------------------------------------------------------------\n\nexport function getConversations() {\n return async () => {\n dispatch(slice.actions.startLoading());\n try {\n const response = await axios.get('/api/chat/conversations');\n dispatch(slice.actions.getConversationsSuccess(response.data.conversations));\n } catch (error) {\n dispatch(slice.actions.hasError(error));\n }\n };\n}\n\n// ----------------------------------------------------------------------\n\nexport function getConversation(conversationKey: string) {\n return async () => {\n dispatch(slice.actions.startLoading());\n try {\n const response = await axios.get('/api/chat/conversation', {\n params: { conversationKey }\n });\n dispatch(slice.actions.getConversationSuccess(response.data.conversation));\n } catch (error) {\n dispatch(slice.actions.hasError(error));\n }\n };\n}\n\n// ----------------------------------------------------------------------\n\nexport function markConversationAsRead(conversationId: string) {\n return async () => {\n dispatch(slice.actions.startLoading());\n try {\n await axios.get('/api/chat/conversation/mark-as-seen', {\n params: { conversationId }\n });\n dispatch(slice.actions.markConversationAsReadSuccess({ conversationId }));\n } catch (error) {\n dispatch(slice.actions.hasError(error));\n }\n };\n}\n\n// ----------------------------------------------------------------------\n\nexport function getParticipants(conversationKey: string) {\n return async () => {\n dispatch(slice.actions.startLoading());\n try {\n const response = await axios.get('/api/chat/participants', {\n params: { conversationKey }\n });\n dispatch(slice.actions.getParticipantsSuccess(response.data.participants));\n } catch (error) {\n dispatch(slice.actions.hasError(error));\n }\n };\n}\n","import { createSlice } from '@reduxjs/toolkit';\nimport { store } from '../store';\n// utils\nimport axios from '../../utils/axios';\n// @types\nimport { BlogState } from '../../@types/blog';\n\n// ----------------------------------------------------------------------\n\nconst initialState: BlogState = {\n isLoading: false,\n error: false,\n posts: [],\n post: null,\n recentPosts: [],\n hasMore: true,\n index: 0,\n step: 11\n};\n\nconst slice = createSlice({\n name: 'blog',\n initialState,\n reducers: {\n // START LOADING\n startLoading(state) {\n state.isLoading = true;\n },\n\n // HAS ERROR\n hasError(state, action) {\n state.isLoading = false;\n state.error = action.payload;\n },\n\n // GET POSTS\n getPostsSuccess(state, action) {\n state.isLoading = false;\n state.posts = action.payload;\n },\n\n // GET POST INFINITE\n getPostsInitial(state, action) {\n state.isLoading = false;\n state.posts = action.payload;\n },\n\n getMorePosts(state) {\n const setIndex = state.index + state.step;\n state.index = setIndex;\n },\n\n noHasMore(state) {\n state.hasMore = false;\n },\n\n // GET POST\n getPostSuccess(state, action) {\n state.isLoading = false;\n state.post = action.payload;\n },\n\n // GET RECENT POST\n getRecentPostsSuccess(state, action) {\n state.isLoading = false;\n state.recentPosts = action.payload;\n }\n }\n});\n\n// Reducer\nexport default slice.reducer;\n\n// Actions\nexport const { getMorePosts } = slice.actions;\n\n// ----------------------------------------------------------------------\n\nexport function getAllPosts() {\n return async () => {\n const { dispatch } = store;\n dispatch(slice.actions.startLoading());\n try {\n const response = await axios.get('/api/blog/posts/all');\n dispatch(slice.actions.getPostsSuccess(response.data.posts));\n } catch (error) {\n dispatch(slice.actions.hasError(error));\n }\n };\n}\n\n// ----------------------------------------------------------------------\n\nexport function getPostsInitial(index: number, step: number) {\n return async () => {\n const { dispatch } = store;\n dispatch(slice.actions.startLoading());\n try {\n const response = await axios.get('/api/blog/posts', {\n params: { index, step }\n });\n const results = response.data.results.length;\n const { maxLength } = response.data;\n\n dispatch(slice.actions.getPostsInitial(response.data.results));\n\n if (results >= maxLength) {\n dispatch(slice.actions.noHasMore());\n }\n } catch (error) {\n dispatch(slice.actions.hasError(error));\n }\n };\n}\n\n// ----------------------------------------------------------------------\n\nexport function getPost(title: string) {\n return async () => {\n const { dispatch } = store;\n dispatch(slice.actions.startLoading());\n try {\n const response = await axios.get('/api/blog/post', {\n params: { title }\n });\n dispatch(slice.actions.getPostSuccess(response.data.post));\n } catch (error) {\n console.error(error);\n dispatch(slice.actions.hasError(true));\n }\n };\n}\n\n// ----------------------------------------------------------------------\n\nexport function getRecentPosts(title: string) {\n return async () => {\n const { dispatch } = store;\n dispatch(slice.actions.startLoading());\n try {\n const response = await axios.get('/api/blog/posts/recent', {\n params: { title }\n });\n\n dispatch(slice.actions.getRecentPostsSuccess(response.data.recentPosts));\n } catch (error) {\n console.error(error);\n dispatch(slice.actions.hasError(true));\n }\n };\n}\n","import { map, filter } from 'lodash';\nimport { createSlice } from '@reduxjs/toolkit';\nimport { dispatch } from '../store';\n// utils\nimport axios from '../../utils/axios';\nimport {\n Friend,\n Gallery,\n Profile,\n UserPost,\n Follower,\n UserData,\n CreditCard,\n UserInvoice,\n UserManager,\n UserAddressBook,\n NotificationSettings\n} from '../../@types/user';\n\n// ----------------------------------------------------------------------\n\ntype UserState = {\n isLoading: boolean;\n error: boolean;\n myProfile: null | Profile;\n posts: UserPost[];\n users: UserData[];\n userList: UserManager[];\n followers: Follower[];\n friends: Friend[];\n gallery: Gallery[];\n cards: CreditCard[] | null;\n addressBook: UserAddressBook[];\n invoices: UserInvoice[];\n notifications: NotificationSettings | null;\n};\n\nconst initialState: UserState = {\n isLoading: false,\n error: false,\n myProfile: null,\n posts: [],\n users: [],\n userList: [],\n followers: [],\n friends: [],\n gallery: [],\n cards: null,\n addressBook: [],\n invoices: [],\n notifications: null\n};\n\nconst slice = createSlice({\n name: 'user',\n initialState,\n reducers: {\n // START LOADING\n startLoading(state) {\n state.isLoading = true;\n },\n\n // HAS ERROR\n hasError(state, action) {\n state.isLoading = false;\n state.error = action.payload;\n },\n\n // GET PROFILE\n getProfileSuccess(state, action) {\n state.isLoading = false;\n state.myProfile = action.payload;\n },\n\n // GET POSTS\n getPostsSuccess(state, action) {\n state.isLoading = false;\n state.posts = action.payload;\n },\n\n // GET USERS\n getUsersSuccess(state, action) {\n state.isLoading = false;\n state.users = action.payload;\n },\n\n // DELETE USERS\n deleteUser(state, action) {\n const deleteUser = filter(state.userList, (user) => user.id !== action.payload);\n state.userList = deleteUser;\n },\n\n // GET FOLLOWERS\n getFollowersSuccess(state, action) {\n state.isLoading = false;\n state.followers = action.payload;\n },\n\n // ON TOGGLE FOLLOW\n onToggleFollow(state, action) {\n const followerId = action.payload;\n\n const handleToggle = map(state.followers, (follower) => {\n if (follower.id === followerId) {\n return {\n ...follower,\n isFollowed: !follower.isFollowed\n };\n }\n return follower;\n });\n\n state.followers = handleToggle;\n },\n\n // GET FRIENDS\n getFriendsSuccess(state, action) {\n state.isLoading = false;\n state.friends = action.payload;\n },\n\n // GET GALLERY\n getGallerySuccess(state, action) {\n state.isLoading = false;\n state.gallery = action.payload;\n },\n\n // GET MANAGE USERS\n getUserListSuccess(state, action) {\n state.isLoading = false;\n state.userList = action.payload;\n },\n\n // GET CARDS\n getCardsSuccess(state, action) {\n state.isLoading = false;\n state.cards = action.payload;\n },\n\n // GET ADDRESS BOOK\n getAddressBookSuccess(state, action) {\n state.isLoading = false;\n state.addressBook = action.payload;\n },\n\n // GET INVOICES\n getInvoicesSuccess(state, action) {\n state.isLoading = false;\n state.invoices = action.payload;\n },\n\n // GET NOTIFICATIONS\n getNotificationsSuccess(state, action) {\n state.isLoading = false;\n state.notifications = action.payload;\n }\n }\n});\n\n// Reducer\nexport default slice.reducer;\n\n// Actions\nexport const { onToggleFollow, deleteUser } = slice.actions;\n\n// ----------------------------------------------------------------------\n\nexport function getProfile() {\n return async () => {\n dispatch(slice.actions.startLoading());\n try {\n const response = await axios.get('/api/user/profile');\n dispatch(slice.actions.getProfileSuccess(response.data.profile));\n } catch (error) {\n dispatch(slice.actions.hasError(error));\n }\n };\n}\n\n// ----------------------------------------------------------------------\n\nexport function getPosts() {\n return async () => {\n dispatch(slice.actions.startLoading());\n try {\n const response = await axios.get('/api/user/posts');\n dispatch(slice.actions.getPostsSuccess(response.data.posts));\n } catch (error) {\n dispatch(slice.actions.hasError(error));\n }\n };\n}\n\n// ----------------------------------------------------------------------\n\nexport function getFollowers() {\n return async () => {\n dispatch(slice.actions.startLoading());\n try {\n const response = await axios.get('/api/user/social/followers');\n dispatch(slice.actions.getFollowersSuccess(response.data.followers));\n } catch (error) {\n dispatch(slice.actions.hasError(error));\n }\n };\n}\n\n// ----------------------------------------------------------------------\n\nexport function getFriends() {\n return async () => {\n dispatch(slice.actions.startLoading());\n try {\n const response = await axios.get('/api/user/social/friends');\n dispatch(slice.actions.getFriendsSuccess(response.data.friends));\n } catch (error) {\n dispatch(slice.actions.hasError(error));\n }\n };\n}\n\n// ----------------------------------------------------------------------\n\nexport function getGallery() {\n return async () => {\n dispatch(slice.actions.startLoading());\n try {\n const response = await axios.get('/api/user/social/gallery');\n dispatch(slice.actions.getGallerySuccess(response.data.gallery));\n } catch (error) {\n dispatch(slice.actions.hasError(error));\n }\n };\n}\n\n// ----------------------------------------------------------------------\n\nexport function getUserList() {\n return async () => {\n dispatch(slice.actions.startLoading());\n try {\n const response = await axios.get('/api/user/manage-users');\n dispatch(slice.actions.getUserListSuccess(response.data.users));\n } catch (error) {\n dispatch(slice.actions.hasError(error));\n }\n };\n}\n\n// ----------------------------------------------------------------------\n\nexport function getCards() {\n return async () => {\n dispatch(slice.actions.startLoading());\n try {\n const response = await axios.get('/api/user/account/cards');\n dispatch(slice.actions.getCardsSuccess(response.data.cards));\n } catch (error) {\n dispatch(slice.actions.hasError(error));\n }\n };\n}\n\n// ----------------------------------------------------------------------\n\nexport function getAddressBook() {\n return async () => {\n dispatch(slice.actions.startLoading());\n try {\n const response = await axios.get('/api/user/account/address-book');\n dispatch(slice.actions.getAddressBookSuccess(response.data.addressBook));\n } catch (error) {\n dispatch(slice.actions.hasError(error));\n }\n };\n}\n\n// ----------------------------------------------------------------------\n\nexport function getInvoices() {\n return async () => {\n dispatch(slice.actions.startLoading());\n try {\n const response = await axios.get('/api/user/account/invoices');\n dispatch(slice.actions.getInvoicesSuccess(response.data.invoices));\n } catch (error) {\n dispatch(slice.actions.hasError(error));\n }\n };\n}\n\n// ----------------------------------------------------------------------\n\nexport function getNotifications() {\n return async () => {\n dispatch(slice.actions.startLoading());\n try {\n const response = await axios.get('/api/user/account/notifications-settings');\n dispatch(slice.actions.getNotificationsSuccess(response.data.notifications));\n } catch (error) {\n dispatch(slice.actions.hasError(error));\n }\n };\n}\n\n// ----------------------------------------------------------------------\n\nexport function getUsers() {\n return async () => {\n dispatch(slice.actions.startLoading());\n try {\n const response = await axios.get('/api/user/all');\n dispatch(slice.actions.getUsersSuccess(response.data.users));\n } catch (error) {\n dispatch(slice.actions.hasError(error));\n }\n };\n}\n","import { createSlice } from '@reduxjs/toolkit';\nimport { sum, map, filter, uniqBy } from 'lodash';\nimport { store } from '../store';\n// utils\nimport axios from '../../utils/axios';\nimport { CartItem, Product, ProductState } from '../../@types/products';\n\n// ----------------------------------------------------------------------\n\nconst initialState: ProductState = {\n isLoading: false,\n error: false,\n products: [],\n product: null,\n sortBy: null,\n filters: {\n gender: [],\n category: 'All',\n colors: [],\n priceRange: '',\n rating: ''\n },\n checkout: {\n activeStep: 0,\n cart: [],\n subtotal: 0,\n total: 0,\n discount: 0,\n shipping: 0,\n billing: null\n }\n};\n\nconst slice = createSlice({\n name: 'product',\n initialState,\n reducers: {\n // START LOADING\n startLoading(state) {\n state.isLoading = true;\n },\n\n // HAS ERROR\n hasError(state, action) {\n state.isLoading = false;\n state.error = action.payload;\n },\n\n // GET PRODUCTS\n getProductsSuccess(state, action) {\n state.isLoading = false;\n state.products = action.payload;\n },\n\n // GET PRODUCT\n getProductSuccess(state, action) {\n state.isLoading = false;\n state.product = action.payload;\n },\n\n // SORT & FILTER PRODUCTS\n sortByProducts(state, action) {\n state.sortBy = action.payload;\n },\n\n filterProducts(state, action) {\n state.filters.gender = action.payload.gender;\n state.filters.category = action.payload.category;\n state.filters.colors = action.payload.colors;\n state.filters.priceRange = action.payload.priceRange;\n state.filters.rating = action.payload.rating;\n },\n\n // CHECKOUT\n getCart(state, action) {\n const cart = action.payload;\n\n const subtotal = sum(cart.map((cartItem: CartItem) => cartItem.price * cartItem.quantity));\n const discount = cart.length === 0 ? 0 : state.checkout.discount;\n const shipping = cart.length === 0 ? 0 : state.checkout.shipping;\n const billing = cart.length === 0 ? null : state.checkout.billing;\n\n state.checkout.cart = cart;\n state.checkout.discount = discount;\n state.checkout.shipping = shipping;\n state.checkout.billing = billing;\n state.checkout.subtotal = subtotal;\n state.checkout.total = subtotal - discount;\n },\n\n addCart(state, action) {\n const product = action.payload;\n const isEmptyCart = state.checkout.cart.length === 0;\n\n if (isEmptyCart) {\n state.checkout.cart = [...state.checkout.cart, product];\n } else {\n state.checkout.cart = map(state.checkout.cart, (_product) => {\n const isExisted = _product.id === product.id;\n if (isExisted) {\n return {\n ..._product,\n quantity: _product.quantity + 1\n };\n }\n return _product;\n });\n }\n state.checkout.cart = uniqBy([...state.checkout.cart, product], 'id');\n },\n\n deleteCart(state, action) {\n const updateCart = filter(state.checkout.cart, (item) => item.id !== action.payload);\n\n state.checkout.cart = updateCart;\n },\n\n resetCart(state) {\n state.checkout.activeStep = 0;\n state.checkout.cart = [];\n state.checkout.total = 0;\n state.checkout.subtotal = 0;\n state.checkout.discount = 0;\n state.checkout.shipping = 0;\n state.checkout.billing = null;\n },\n\n onBackStep(state) {\n state.checkout.activeStep -= 1;\n },\n\n onNextStep(state) {\n state.checkout.activeStep += 1;\n },\n\n onGotoStep(state, action) {\n const goToStep = action.payload;\n state.checkout.activeStep = goToStep;\n },\n\n increaseQuantity(state, action) {\n const productId = action.payload;\n const updateCart = map(state.checkout.cart, (product) => {\n if (product.id === productId) {\n return {\n ...product,\n quantity: product.quantity + 1\n };\n }\n return product;\n });\n\n state.checkout.cart = updateCart;\n },\n\n decreaseQuantity(state, action) {\n const productId = action.payload;\n const updateCart = map(state.checkout.cart, (product) => {\n if (product.id === productId) {\n return {\n ...product,\n quantity: product.quantity - 1\n };\n }\n return product;\n });\n\n state.checkout.cart = updateCart;\n },\n\n createBilling(state, action) {\n state.checkout.billing = action.payload;\n },\n\n applyDiscount(state, action) {\n const discount = action.payload;\n state.checkout.discount = discount;\n state.checkout.total = state.checkout.subtotal - discount;\n },\n\n applyShipping(state, action) {\n const shipping = action.payload;\n state.checkout.shipping = shipping;\n state.checkout.total = state.checkout.subtotal - state.checkout.discount + shipping;\n }\n }\n});\n\n// Reducer\nexport default slice.reducer;\n\n// Actions\nexport const {\n getCart,\n addCart,\n resetCart,\n onGotoStep,\n onBackStep,\n onNextStep,\n deleteCart,\n createBilling,\n applyShipping,\n applyDiscount,\n increaseQuantity,\n decreaseQuantity,\n sortByProducts,\n filterProducts\n} = slice.actions;\n\n// ----------------------------------------------------------------------\n\nexport function getProducts() {\n return async () => {\n const { dispatch } = store;\n dispatch(slice.actions.startLoading());\n try {\n const response: { data: { products: Product[] } } = await axios.get('/api/products');\n dispatch(slice.actions.getProductsSuccess(response.data.products));\n } catch (error) {\n dispatch(slice.actions.hasError(error));\n }\n };\n}\n\n// ----------------------------------------------------------------------\n\nexport function getProduct(name: string) {\n return async () => {\n const { dispatch } = store;\n dispatch(slice.actions.startLoading());\n try {\n const response: { data: { product: Product } } = await axios.get('/api/products/product', {\n params: { name }\n });\n dispatch(slice.actions.getProductSuccess(response.data.product));\n } catch (error) {\n console.error(error);\n dispatch(slice.actions.hasError(error));\n }\n };\n}\n","import { map, filter } from 'lodash';\nimport { createSlice } from '@reduxjs/toolkit';\nimport { EventInput } from '@fullcalendar/common';\nimport { dispatch } from '../store';\n// utils\nimport axios from '../../utils/axios';\n//\nimport { CalendarState } from '../../@types/calendar';\n\n// ----------------------------------------------------------------------\n\nconst initialState: CalendarState = {\n isLoading: false,\n error: false,\n events: [],\n isOpenModal: false,\n selectedEventId: null,\n selectedRange: null\n};\n\nconst slice = createSlice({\n name: 'calendar',\n initialState,\n reducers: {\n // START LOADING\n startLoading(state) {\n state.isLoading = true;\n },\n\n // HAS ERROR\n hasError(state, action) {\n state.isLoading = false;\n state.error = action.payload;\n },\n\n // GET EVENTS\n getEventsSuccess(state, action) {\n state.isLoading = false;\n state.events = action.payload;\n },\n\n // CREATE EVENT\n createEventSuccess(state, action) {\n const newEvent = action.payload;\n state.isLoading = false;\n state.events = [...state.events, newEvent];\n },\n\n // UPDATE EVENT\n updateEventSuccess(state, action) {\n const event = action.payload;\n const updateEvent = map(state.events, (_event) => {\n if (_event.id === event.id) {\n return event;\n }\n return _event;\n });\n\n state.isLoading = false;\n state.events = updateEvent;\n },\n\n // DELETE EVENT\n deleteEventSuccess(state, action) {\n const { eventId } = action.payload;\n const deleteEvent = filter(state.events, (user) => user.id !== eventId);\n state.events = deleteEvent;\n },\n\n // SELECT EVENT\n selectEvent(state, action) {\n const eventId = action.payload;\n state.isOpenModal = true;\n state.selectedEventId = eventId;\n },\n\n // SELECT RANGE\n selectRange(state, action) {\n const { start, end } = action.payload;\n state.isOpenModal = true;\n state.selectedRange = { start, end };\n },\n\n // OPEN MODAL\n openModal(state) {\n state.isOpenModal = true;\n },\n\n // CLOSE MODAL\n closeModal(state) {\n state.isOpenModal = false;\n state.selectedEventId = null;\n state.selectedRange = null;\n }\n }\n});\n\n// Reducer\nexport default slice.reducer;\n\n// Actions\nexport const { openModal, closeModal, selectEvent } = slice.actions;\n\n// ----------------------------------------------------------------------\n\nexport function getEvents() {\n return async () => {\n dispatch(slice.actions.startLoading());\n try {\n const response = await axios.get('/api/calendar/events');\n dispatch(slice.actions.getEventsSuccess(response.data.events));\n } catch (error) {\n dispatch(slice.actions.hasError(error));\n }\n };\n}\n\n// ----------------------------------------------------------------------\n\nexport function createEvent(newEvent: Omit) {\n return async () => {\n dispatch(slice.actions.startLoading());\n try {\n const response = await axios.post('/api/calendar/events/new', newEvent);\n dispatch(slice.actions.createEventSuccess(response.data.event));\n } catch (error) {\n dispatch(slice.actions.hasError(error));\n }\n };\n}\n\n// ----------------------------------------------------------------------\n\nexport function updateEvent(\n eventId: string,\n updateEvent: Partial<{\n allDay: boolean;\n start: Date | null;\n end: Date | null;\n }>\n) {\n return async () => {\n dispatch(slice.actions.startLoading());\n try {\n const response = await axios.post('/api/calendar/events/update', {\n eventId,\n updateEvent\n });\n dispatch(slice.actions.updateEventSuccess(response.data.event));\n } catch (error) {\n dispatch(slice.actions.hasError(error));\n }\n };\n}\n\n// ----------------------------------------------------------------------\n\nexport function deleteEvent(eventId: string) {\n return async () => {\n dispatch(slice.actions.startLoading());\n try {\n await axios.post('/api/calendar/events/delete', { eventId });\n dispatch(slice.actions.deleteEventSuccess({ eventId }));\n } catch (error) {\n dispatch(slice.actions.hasError(error));\n }\n };\n}\n\n// ----------------------------------------------------------------------\n\nexport function selectRange(start: Date, end: Date) {\n return async () => {\n dispatch(\n slice.actions.selectRange({\n start: start.getTime(),\n end: end.getTime()\n })\n );\n };\n}\n","import { createSlice } from '@reduxjs/toolkit';\nimport { omit } from 'lodash';\n// utils\nimport axios from '../../utils/axios';\nimport { KanbanCard, KanbanColumn } from '../../@types/kanban';\nimport { dispatch } from '../store';\n// ----------------------------------------------------------------------\n\nfunction objFromArray>(array: Type[], key: string = 'id') {\n return array.reduce>((accumulator, current) => {\n accumulator[current[key]] = current;\n return accumulator;\n }, {});\n}\n\ntype InitialState = {\n isLoading: boolean;\n error: boolean;\n board: {\n cards: Record;\n columns: Record;\n columnOrder: string[];\n };\n};\n\nconst initialState: InitialState = {\n isLoading: false,\n error: false,\n board: {\n cards: {},\n columns: {},\n columnOrder: []\n }\n};\n\nconst slice = createSlice({\n name: 'kanban',\n initialState,\n reducers: {\n // START LOADING\n startLoading(state) {\n state.isLoading = true;\n },\n\n // HAS ERROR\n hasError(state, action) {\n state.isLoading = false;\n state.error = action.payload;\n },\n\n // GET BOARD\n getBoardSuccess(state, action) {\n state.isLoading = false;\n const board = action.payload;\n const cards = objFromArray(board.cards);\n const columns = objFromArray(board.columns);\n const { columnOrder } = board;\n state.board = {\n cards,\n columns,\n columnOrder\n };\n },\n\n // CREATE NEW COLUMN\n createColumnSuccess(state, action) {\n const newColumn = action.payload;\n state.isLoading = false;\n state.board.columns = {\n ...state.board.columns,\n [newColumn.id]: newColumn\n };\n state.board.columnOrder.push(newColumn.id);\n },\n\n persistCard(state, action) {\n const columns = action.payload;\n state.board.columns = columns;\n },\n\n persistColumn(state, action) {\n state.board.columnOrder = action.payload;\n },\n\n addTask(state, action) {\n const { card, columnId } = action.payload;\n\n state.board.cards[card.id] = card;\n state.board.columns[columnId].cardIds.push(card.id);\n },\n\n deleteTask(state, action) {\n const { cardId, columnId } = action.payload;\n\n state.board.columns[columnId].cardIds = state.board.columns[columnId].cardIds.filter(\n (id) => id !== cardId\n );\n state.board.cards = omit(state.board.cards, [cardId]);\n },\n\n // UPDATE COLUMN\n updateColumnSuccess(state, action) {\n const column = action.payload;\n\n state.isLoading = false;\n state.board.columns[column.id] = column;\n },\n\n // DELETE COLUMN\n deleteColumnSuccess(state, action) {\n const { columnId } = action.payload;\n const deletedColumn = state.board.columns[columnId];\n\n state.isLoading = false;\n state.board.columns = omit(state.board.columns, [columnId]);\n state.board.cards = omit(state.board.cards, [...deletedColumn.cardIds]);\n state.board.columnOrder = state.board.columnOrder.filter((c) => c !== columnId);\n }\n }\n});\n\n// Reducer\nexport default slice.reducer;\n\nexport const { actions } = slice;\n\n// ----------------------------------------------------------------------\n\nexport function getBoard() {\n return async () => {\n dispatch(slice.actions.startLoading());\n try {\n const response = await axios.get('/api/kanban/board');\n dispatch(slice.actions.getBoardSuccess(response.data.board));\n } catch (error) {\n dispatch(slice.actions.hasError(error));\n }\n };\n}\n\n// ----------------------------------------------------------------------\n\nexport function createColumn(newColumn: { name: string }) {\n return async () => {\n dispatch(slice.actions.startLoading());\n try {\n const response = await axios.post('/api/kanban/columns/new', newColumn);\n dispatch(slice.actions.createColumnSuccess(response.data.column));\n } catch (error) {\n dispatch(slice.actions.hasError(error));\n }\n };\n}\n\n// ----------------------------------------------------------------------\n\nexport function updateColumn(columnId: string, updateColumn: KanbanColumn) {\n return async () => {\n dispatch(slice.actions.startLoading());\n try {\n const response = await axios.post('/api/kanban/columns/update', {\n columnId,\n updateColumn\n });\n dispatch(slice.actions.updateColumnSuccess(response.data.column));\n } catch (error) {\n dispatch(slice.actions.hasError(error));\n }\n };\n}\n\n// ----------------------------------------------------------------------\n\nexport function deleteColumn(columnId: string) {\n return async () => {\n dispatch(slice.actions.startLoading());\n try {\n await axios.post('/api/kanban/columns/delete', { columnId });\n dispatch(slice.actions.deleteColumnSuccess({ columnId }));\n } catch (error) {\n dispatch(slice.actions.hasError(error));\n }\n };\n}\n\n// ----------------------------------------------------------------------\n\nexport function persistColumn(newColumnOrder: string[]) {\n return () => {\n dispatch(slice.actions.persistColumn(newColumnOrder));\n };\n}\n\n// ----------------------------------------------------------------------\n\nexport function persistCard(columns: Record) {\n return () => {\n dispatch(slice.actions.persistCard(columns));\n };\n}\n\n// ----------------------------------------------------------------------\n\nexport function addTask({ card, columnId }: { card: Partial; columnId: string }) {\n return () => {\n dispatch(slice.actions.addTask({ card, columnId }));\n };\n}\n\n// ----------------------------------------------------------------------\n\nexport function deleteTask({ cardId, columnId }: { cardId: string; columnId: string }) {\n return () => {\n dispatch(slice.actions.deleteTask({ cardId, columnId }));\n };\n}\n","import { combineReducers } from 'redux';\nimport { persistReducer } from 'redux-persist';\nimport storage from 'redux-persist/lib/storage';\n// slices\nimport mailReducer from './slices/mail';\nimport chatReducer from './slices/chat';\nimport blogReducer from './slices/blog';\nimport userReducer from './slices/user';\nimport productReducer from './slices/product';\nimport calendarReducer from './slices/calendar';\nimport kanbanReducer from './slices/kanban';\n\n// ----------------------------------------------------------------------\n\nconst rootPersistConfig = {\n key: 'root',\n storage,\n keyPrefix: 'redux-',\n whitelist: []\n};\n\nconst productPersistConfig = {\n key: 'product',\n storage,\n keyPrefix: 'redux-',\n whitelist: ['sortBy', 'checkout']\n};\n\nconst rootReducer = combineReducers({\n mail: mailReducer,\n chat: chatReducer,\n blog: blogReducer,\n user: userReducer,\n calendar: calendarReducer,\n kanban: kanbanReducer,\n product: persistReducer(productPersistConfig, productReducer)\n});\n\nexport { rootPersistConfig, rootReducer };\n","import { configureStore, getDefaultMiddleware } from '@reduxjs/toolkit';\nimport { useDispatch as useReduxDispatch, useSelector as useReduxSelector } from 'react-redux';\nimport { persistStore, persistReducer } from 'redux-persist';\nimport { rootPersistConfig, rootReducer } from './rootReducer';\n\n// ----------------------------------------------------------------------\n\nconst store = configureStore({\n reducer: persistReducer(rootPersistConfig, rootReducer),\n middleware: getDefaultMiddleware({\n serializableCheck: false,\n immutableCheck: false\n })\n});\n\nconst persistor = persistStore(store);\n\nexport type RootState = ReturnType;\nexport type AppDispatch = typeof store.dispatch;\n\nconst { dispatch } = store;\n\nconst useSelector = useReduxSelector;\nconst useDispatch = () => useReduxDispatch();\n\nexport { store, persistor, dispatch, useSelector, useDispatch };\n","import { ReactNode, createContext, useState, useEffect } from 'react';\n// material\nimport { useMediaQuery } from '@mui/material';\nimport { useTheme } from '@mui/material/styles';\n\n// ----------------------------------------------------------------------\n\nexport type CollapseDrawerContextProps = {\n isCollapse?: boolean;\n collapseClick: boolean;\n collapseHover: boolean;\n onToggleCollapse: VoidFunction;\n onHoverEnter: VoidFunction;\n onHoverLeave: VoidFunction;\n};\n\nconst initialState: CollapseDrawerContextProps = {\n collapseClick: false,\n collapseHover: false,\n onToggleCollapse: () => {},\n onHoverEnter: () => {},\n onHoverLeave: () => {}\n};\n\nconst CollapseDrawerContext = createContext(initialState);\n\ntype CollapseDrawerProviderProps = {\n children: ReactNode;\n};\n\nfunction CollapseDrawerProvider({ children }: CollapseDrawerProviderProps) {\n const theme = useTheme();\n const isMobile = useMediaQuery(theme.breakpoints.down('lg'));\n const [collapse, setCollapse] = useState({\n click: false,\n hover: false\n });\n\n useEffect(() => {\n if (isMobile) {\n setCollapse({\n click: false,\n hover: false\n });\n }\n }, [isMobile]);\n\n const handleToggleCollapse = () => {\n setCollapse({ ...collapse, click: !collapse.click });\n };\n\n const handleHoverEnter = () => {\n if (collapse.click) {\n setCollapse({ ...collapse, hover: true });\n }\n };\n\n const handleHoverLeave = () => {\n setCollapse({ ...collapse, hover: false });\n };\n\n return (\n \n {children}\n \n );\n}\n\nexport { CollapseDrawerProvider, CollapseDrawerContext };\n","import { ReactNode, createContext, useState } from 'react';\n// ----------------------------------------------------------------------\n\nexport type ModalServerErrorProps = {\n open: boolean;\n handleOpen: VoidFunction;\n handleClose: VoidFunction;\n};\n\nconst initialState: ModalServerErrorProps = {\n open: false,\n handleOpen: () => {},\n handleClose: () => {}\n};\n\nconst ModalServerErrorContext = createContext(initialState);\n\ntype ModalServerErrorProviderProps = {\n children: ReactNode;\n};\n\nfunction ModalServerErrorProvider({ children }: ModalServerErrorProviderProps) {\n const [open, setOpen] = useState(false);\n\n const handleOpen = () => {\n setOpen(true);\n };\n const handleClose = () => {\n setOpen(false);\n };\n\n return (\n \n {children}\n \n );\n}\n\nexport { ModalServerErrorProvider, ModalServerErrorContext };\n","// material\nimport { useTheme } from '@mui/material/styles';\nimport { Box, BoxProps } from '@mui/material';\n\n// ----------------------------------------------------------------------\n\nexport default function Logo({ sx }: BoxProps) {\n let url;\n const theme = useTheme();\n\n theme.palette.mode === 'light'\n ? (url = '/static/logo-light.svg')\n : (url = '/static/logo-dark.svg');\n\n return ;\n}\n","import NProgress from 'nprogress';\nimport { useEffect, useMemo } from 'react';\nimport { motion } from 'framer-motion';\n// material\nimport { alpha, styled, useTheme } from '@mui/material/styles';\nimport { Box, GlobalStyles } from '@mui/material';\n//\nimport Logo from './Logo';\n\n// ----------------------------------------------------------------------\n\nconst RootStyle = styled('div')(({ theme }) => ({\n height: '100%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n backgroundColor: theme.palette.background.default\n}));\n\n// ----------------------------------------------------------------------\n\nexport function ProgressBarStyle() {\n const theme = useTheme();\n\n return (\n \n );\n}\n\nfunction ProgressBar() {\n NProgress.configure({\n showSpinner: false\n });\n\n useMemo(() => {\n NProgress.start();\n }, []);\n\n useEffect(() => {\n NProgress.done();\n }, []);\n\n return null;\n}\n\nexport default function LoadingScreen({ ...other }) {\n return (\n <>\n \n\n \n \n \n \n\n `solid 3px ${alpha(theme.palette.primary.dark, 0.24)}`\n }}\n />\n\n `solid 8px ${alpha(theme.palette.primary.dark, 0.24)}`\n }}\n />\n \n \n );\n}\n","import { createContext, ReactNode, useEffect, useReducer } from 'react';\n// utils\nimport axios from '../../utils/axios';\nimport { isValidToken, setSession } from '../../utils/jwt';\n// @types\nimport { ActionMap, AuthState, AuthUser, JWTContextType } from '../../@types/authentication';\n\n// ----------------------------------------------------------------------\n\nenum Types {\n Initial = 'INITIALIZE',\n Login = 'LOGIN',\n Logout = 'LOGOUT',\n Register = 'REGISTER'\n}\n\ntype JWTAuthPayload = {\n [Types.Initial]: {\n isAuthenticated: boolean;\n user: AuthUser;\n };\n [Types.Login]: {\n user: AuthUser;\n };\n [Types.Logout]: undefined;\n [Types.Register]: {\n user: AuthUser;\n };\n};\n\nexport type JWTActions = ActionMap[keyof ActionMap];\n\nconst initialState: AuthState = {\n isAuthenticated: false,\n isInitialized: false,\n user: null\n};\n\nconst JWTReducer = (state: AuthState, action: JWTActions) => {\n switch (action.type) {\n case 'INITIALIZE':\n return {\n isAuthenticated: action.payload.isAuthenticated,\n isInitialized: true,\n user: action.payload.user\n };\n case 'LOGIN':\n return {\n ...state,\n isAuthenticated: true,\n user: action.payload.user\n };\n case 'LOGOUT':\n return {\n ...state,\n isAuthenticated: false,\n user: null\n };\n\n case 'REGISTER':\n return {\n ...state,\n isAuthenticated: true,\n user: action.payload.user\n };\n\n default:\n return state;\n }\n};\n\nconst AuthContext = createContext(null);\n\nfunction AuthProvider({ children }: { children: ReactNode }) {\n const [state, dispatch] = useReducer(JWTReducer, initialState);\n\n useEffect(() => {\n const initialize = async () => {\n try {\n const accessToken = window.localStorage.getItem('accessToken');\n\n if (accessToken && isValidToken(accessToken)) {\n setSession(accessToken);\n\n const response = await axios.get('/api/account/my-account');\n const { user } = response.data;\n\n dispatch({\n type: Types.Initial,\n payload: {\n isAuthenticated: true,\n user\n }\n });\n } else {\n dispatch({\n type: Types.Initial,\n payload: {\n isAuthenticated: false,\n user: null\n }\n });\n }\n } catch (err) {\n console.error(err);\n dispatch({\n type: Types.Initial,\n payload: {\n isAuthenticated: false,\n user: null\n }\n });\n }\n };\n\n initialize();\n }, []);\n\n const login = async (email: string, password: string) => {\n const response = await axios.post('/api/account/login', {\n email,\n password\n });\n const { accessToken, user } = response.data;\n\n setSession(accessToken);\n dispatch({\n type: Types.Login,\n payload: {\n user\n }\n });\n };\n\n const register = async (email: string, password: string, firstName: string, lastName: string) => {\n const response = await axios.post('/api/account/register', {\n email,\n password,\n firstName,\n lastName\n });\n const { accessToken, user } = response.data;\n\n window.localStorage.setItem('accessToken', accessToken);\n dispatch({\n type: Types.Register,\n payload: {\n user\n }\n });\n };\n\n const logout = async () => {\n setSession(null);\n dispatch({ type: Types.Logout });\n };\n\n const resetPassword = (email: string) => console.log(email);\n\n const updateProfile = () => {};\n\n return (\n \n {children}\n \n );\n}\n\nexport { AuthContext, AuthProvider };\n","import { useContext } from 'react';\nimport { CollapseDrawerContext } from '../../contexts/mui/CollapseDrawerContext';\n\n// ----------------------------------------------------------------------\n\nconst useCollapseDrawer = () => useContext(CollapseDrawerContext);\n\nexport default useCollapseDrawer;\n","// material\nimport { alpha, styled } from '@mui/material/styles';\nimport { Popover, PopoverProps } from '@mui/material';\n\n// ----------------------------------------------------------------------\n\nconst ArrowStyle = styled('span')(({ theme }) => ({\n [theme.breakpoints.up('sm')]: {\n top: -7,\n zIndex: 1,\n width: 12,\n right: 20,\n height: 12,\n content: \"''\",\n position: 'absolute',\n borderRadius: '0 0 4px 0',\n transform: 'rotate(-135deg)',\n background: theme.palette.background.paper,\n borderRight: `solid 1px ${alpha(theme.palette.grey[500], 0.12)}`,\n borderBottom: `solid 1px ${alpha(theme.palette.grey[500], 0.12)}`\n }\n}));\n\n// ----------------------------------------------------------------------\n\nexport default function MenuPopover({ children, sx, ...other }: PopoverProps) {\n return (\n theme.customShadows.z20,\n border: (theme) => `solid 1px ${theme.palette.grey[500_8]}`,\n width: 200,\n ...sx\n }\n }}\n {...other}\n >\n \n\n {children}\n \n );\n}\n","import { Avatar, Typography, Grid } from '@mui/material';\n\ninterface TokenDetailProps {\n image: string;\n value?: string;\n}\n\nconst TokenDetail = ({ image, value = '0.000000' }: TokenDetailProps) => {\n const cutValue = (withDecimals = '0.000000') => {\n const [number, decimals] = withDecimals.split('.');\n return `${number}.${decimals?.substring(0, 2) || '00'}`;\n };\n\n return (\n \n \n {cutValue(value)}\n \n );\n};\n\nexport default TokenDetail;\n","import { useRef, useState, useEffect, useContext } from 'react';\nimport { shortAddress } from 'utils/addressShort';\n// material\nimport { alpha } from '@mui/material/styles';\nimport { Button, Box, IconButton, Avatar, Stack, Typography, Hidden } from '@mui/material';\n// components\nimport MenuPopover from '../../components/MenuPopover';\nimport TokenDetail from './TokenDetail';\n// hooks\nimport useLogin from '../../hooks/useLogin';\nimport useUser from '../../hooks/useUser';\nimport useWordings from 'locales/wordings/useWordings';\n// context\nimport { TokenTVCContext } from 'contexts/TokenTVCContext';\n// config\nimport contractConfig from '../../contracts/config';\n// ----------------------------------------------------------------------\nconst TVC = contractConfig.characters.address; // aca tenemos que tomar la del ERC20\n\nexport default function AccountBar() {\n const { TVCBalance } = useContext(TokenTVCContext);\n const { sessionWordings } = useWordings();\n const { user, endSession, initSession } = useLogin();\n const { balance, getBalance } = useUser();\n const anchorRef = useRef(null);\n const [open, setOpen] = useState(false);\n\n useEffect(() => {\n if (!user) {\n initSession();\n } else {\n getBalance(user?.attributes.ethAddress);\n }\n }, [user]);\n\n const handleOpen = () => {\n setOpen(true);\n };\n const handleClose = () => {\n setOpen(false);\n };\n\n return (\n <>\n \n {user && (\n \n \n \n \n )}\n \n \n alpha(theme.palette.grey[600], 0.42)\n }\n })\n }}\n >\n \n {shortAddress(user?.attributes.ethAddress)}\n \n \n\n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n );\n}\n","import * as React from 'react';\nimport Button from '@mui/material/Button';\nimport Menu from '@mui/material/Menu';\nimport MenuItem from '@mui/material/MenuItem';\nimport Box from '@mui/material/Box';\n// hooks\nimport useTranslations from '../../hooks/useTranslations';\n\nexport default function MultiLanguageSelector() {\n const { allLang, onChangeLang, currentLang } = useTranslations();\n const [anchorEl, setAnchorEl] = React.useState(null);\n const open = Boolean(anchorEl);\n\n const handleClick = (event: React.MouseEvent) => {\n setAnchorEl(event.currentTarget);\n };\n\n const handleClose = (e: any, newLang: string) => {\n setAnchorEl(null);\n if (newLang !== 'backdropClick') {\n onChangeLang(newLang);\n }\n };\n\n return (\n
\n \n \n \n \n {allLang.map((lang) => (\n handleClose(e, lang.value)} key={lang.value}>\n \n \n ))}\n \n
\n );\n}\n","import { Icon } from '@iconify/react';\nimport menu2Fill from '@iconify/icons-eva/menu-2-fill';\n// material\nimport { alpha, styled } from '@mui/material/styles';\nimport { Button, Box, AppBar, Toolbar, IconButton } from '@mui/material';\n// components\nimport { MHidden } from '../../components/@material-extend';\nimport AccountBar from './AccountBar';\nimport SettingModeSwitch from '../../components/settings/SettingModeSwitch';\nimport MultiLanguageSelector from '../../components/settings/MultiLanguageSelector';\n// hooks\nimport useLogin from '../../hooks/useLogin';\nimport useWordings from 'locales/wordings/useWordings';\nimport { useChain, useMoralis } from 'react-moralis';\n// ----------------------------------------------------------------------\n\nconst DRAWER_WIDTH = 280;\nconst APPBAR_MOBILE = 64;\nconst APPBAR_DESKTOP = 82;\n\nconst RootStyle = styled(AppBar)(({ theme }) => ({\n boxShadow: 'none',\n backdropFilter: 'blur(6px)',\n WebkitBackdropFilter: 'blur(6px)', // Fix on Mobile\n backgroundColor: alpha(theme.palette.background.default, 0.72),\n [theme.breakpoints.up('lg')]: {\n width: `calc(100% - ${DRAWER_WIDTH + 1}px)`\n }\n}));\n\nconst ToolbarStyle = styled(Toolbar)(({ theme }) => ({\n minHeight: APPBAR_MOBILE,\n [theme.breakpoints.up('lg')]: {\n minHeight: APPBAR_DESKTOP,\n padding: theme.spacing(0, 5)\n }\n}));\n\n// ----------------------------------------------------------------------\n\ninterface DashboardNavBarProps {\n onOpenSidebar: VoidFunction;\n}\n\nexport default function DashboardNavbar({ onOpenSidebar }: DashboardNavBarProps) {\n const { initSession, isAuthenticated, user, isWeb3Enabled } = useLogin();\n const { account } = useMoralis();\n const { account: accountChain } = useChain();\n const { sessionWordings } = useWordings();\n\n return (\n \n \n \n \n \n \n \n\n \n {/**/}\n {!user ? (\n \n ) : (\n \n )}\n \n \n {/**/}\n \n \n \n );\n}\n","import { useState, ReactNode } from 'react';\nimport { Icon } from '@iconify/react';\nimport { NavLink as RouterLink, matchPath, useLocation } from 'react-router-dom';\nimport arrowIosForwardFill from '@iconify/icons-eva/arrow-ios-forward-fill';\nimport arrowIosDownwardFill from '@iconify/icons-eva/arrow-ios-downward-fill';\n// material\nimport { alpha, useTheme, styled } from '@mui/material/styles';\nimport {\n Box,\n List,\n BoxProps,\n Collapse,\n ListItemText,\n ListItemIcon,\n ListSubheader,\n ListItemButton,\n ListItemButtonProps\n} from '@mui/material';\n\n// ----------------------------------------------------------------------\n\nconst ListSubheaderStyle = styled((props) => (\n \n))(({ theme }) => ({\n ...theme.typography.overline,\n marginTop: theme.spacing(3),\n marginBottom: theme.spacing(2),\n paddingLeft: theme.spacing(5),\n color: theme.palette.text.primary\n}));\n\ninterface ListItemStyleProps extends ListItemButtonProps {\n component?: ReactNode;\n to?: string;\n}\n\nconst ListItemStyle = styled(ListItemButton)(({ theme }) => ({\n ...theme.typography.body2,\n height: 48,\n position: 'relative',\n textTransform: 'capitalize',\n paddingLeft: theme.spacing(5),\n paddingRight: theme.spacing(2.5),\n color: theme.palette.text.secondary,\n '&:before': {\n top: 0,\n right: 0,\n width: 3,\n bottom: 0,\n content: \"''\",\n display: 'none',\n position: 'absolute',\n borderTopLeftRadius: 4,\n borderBottomLeftRadius: 4,\n backgroundColor: theme.palette.primary.main\n }\n}));\n\nconst ListItemIconStyle = styled(ListItemIcon)({\n width: 22,\n height: 22,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center'\n});\n\n// ----------------------------------------------------------------------\n\ntype NavItemProps = {\n title: string;\n path: string;\n icon?: JSX.Element;\n info?: JSX.Element;\n children?: {\n title: string;\n path: string;\n }[];\n};\n\nfunction NavItem({ item, isShow }: { item: NavItemProps; isShow?: boolean | undefined }) {\n const theme = useTheme();\n const { pathname } = useLocation();\n const { title, path, icon, info, children } = item;\n const isActiveRoot = path ? !!matchPath({ path, end: false }, pathname) : false;\n\n const [open, setOpen] = useState(isActiveRoot);\n\n const handleOpen = () => {\n setOpen(!open);\n };\n\n const activeRootStyle = {\n color: 'primary.main',\n fontWeight: 'fontWeightMedium',\n bgcolor: alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity),\n '&:before': { display: 'block' }\n };\n\n const activeSubStyle = {\n color: 'text.primary',\n fontWeight: 'fontWeightMedium'\n };\n\n if (children) {\n return (\n <>\n \n {icon && icon}\n\n {isShow && (\n <>\n \n {info && info}\n \n \n )}\n \n\n {isShow && (\n \n \n {children.map((item) => {\n const { title, path } = item;\n const isActiveSub = path ? !!matchPath({ path, end: false }, pathname) : false;\n\n return (\n \n \n theme.transitions.create('transform'),\n ...(isActiveSub && {\n transform: 'scale(2)',\n bgcolor: 'primary.main'\n })\n }}\n />\n \n \n \n );\n })}\n \n \n )}\n \n );\n }\n\n return (\n \n {icon && icon}\n {isShow && (\n <>\n \n {info && info}\n \n )}\n \n );\n}\n\ninterface NavSectionProps extends BoxProps {\n isShow?: boolean | undefined;\n navConfig: {\n subheader: string;\n items: NavItemProps[];\n }[];\n}\n\nexport default function NavSection({ navConfig, isShow = true, ...other }: NavSectionProps) {\n return (\n \n {navConfig.map((list) => {\n const { subheader, items } = list;\n return (\n \n {isShow && {subheader}}\n {items.map((item: NavItemProps) => (\n \n ))}\n \n );\n })}\n \n );\n}\n","import { useEffect } from 'react';\nimport { Link as RouterLink, useLocation, useNavigate } from 'react-router-dom';\nimport { Icon } from '@iconify/react';\n// material\nimport { styled } from '@mui/material/styles';\nimport { Box, Button, Drawer, Typography, Stack } from '@mui/material';\n// components\nimport Logo from '../../components/Logo';\nimport Scrollbar from '../../components/Scrollbar';\nimport NavSection from '../../components/NavSection';\nimport { MHidden } from '../../components/@material-extend';\n// hooks\nimport useWordings from '../../locales/wordings/useWordings';\nimport useAllMysteryBoxDetails from 'hooks/useAllMysteryBoxDetails';\n// ----------------------------------------------------------------------\n\nconst DRAWER_WIDTH = 280;\n\nconst RootStyle = styled('div')(({ theme }) => ({\n [theme.breakpoints.up('lg')]: {\n flexShrink: 0,\n width: DRAWER_WIDTH\n }\n}));\n\n// ----------------------------------------------------------------------\n\ninterface DashboardSidebarProps {\n isOpenSidebar: boolean;\n onCloseSidebar: VoidFunction;\n}\n\nexport default function DashboardSidebar(props: DashboardSidebarProps) {\n const { isOpenSidebar, onCloseSidebar } = props;\n const { pathname } = useLocation();\n const { offerWordings, menuWordings } = useWordings();\n const navigate = useNavigate();\n const { basic } = useAllMysteryBoxDetails();\n\n const sidebarConfig = [\n {\n subheader: '',\n items: [\n {\n title: menuWordings.shop,\n path: '/shop',\n icon: \n },\n {\n title: menuWordings.myMysteryBox,\n path: '/my-mystery-box',\n icon: \n },\n {\n title: menuWordings.myCollection,\n path: '/my-collection',\n icon: \n },\n {\n title: menuWordings.playGame,\n path: '/play-game',\n icon: \n },\n {\n title: 'My Manager',\n path: '/my-manager',\n icon: \n }\n ]\n }\n ];\n\n useEffect(() => {\n if (isOpenSidebar) {\n onCloseSidebar();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [pathname]);\n\n const renderContent = (\n \n \n \n \n \n \n\n \n\n \n {pathname !== '/shop' ? (\n \n \n \n\n \n \n {offerWordings.mysteryBox}\n \n \n {offerWordings.fromOnly} {basic?.priceNative} BNB\n \n \n\n \n \n \n ) : (\n ''\n )}\n \n );\n\n return (\n \n \n \n {renderContent}\n \n \n\n \n \n {renderContent}\n \n \n \n );\n}\n","import { useState } from 'react';\nimport { Outlet } from 'react-router-dom';\n// material\nimport { styled, useTheme } from '@mui/material/styles';\n// hooks\nimport useCollapseDrawer from '../../hooks/mui/useCollapseDrawer';\n//\nimport DashboardNavbar from './DashboardNavbar';\nimport DashboardSidebar from './DashboardSidebar';\n\n// ----------------------------------------------------------------------\n\nconst APP_BAR_MOBILE = 64;\nconst APP_BAR_DESKTOP = 92;\n\nconst RootStyle = styled('div')({\n display: 'flex',\n minHeight: '100%',\n overflow: 'hidden'\n});\n\nconst MainStyle = styled('div')(({ theme }) => ({\n flexGrow: 1,\n overflow: 'auto',\n minHeight: '100%',\n paddingTop: APP_BAR_MOBILE + 24,\n paddingBottom: theme.spacing(10),\n [theme.breakpoints.up('lg')]: {\n paddingTop: APP_BAR_DESKTOP + 24,\n paddingLeft: theme.spacing(2),\n paddingRight: theme.spacing(2)\n }\n}));\n\n// ----------------------------------------------------------------------\n\nexport default function DashboardLayout() {\n const theme = useTheme();\n const { collapseClick } = useCollapseDrawer();\n const [open, setOpen] = useState(false);\n\n return (\n \n setOpen(true)} />\n setOpen(false)} />\n \n \n \n \n );\n}\n","import { Link as RouterLink, Outlet } from 'react-router-dom';\n// material\nimport { styled } from '@mui/material/styles';\n// components\nimport Logo from '../components/Logo';\n\n// ----------------------------------------------------------------------\n\nconst HeaderStyle = styled('header')(({ theme }) => ({\n top: 0,\n left: 0,\n lineHeight: 0,\n width: '100%',\n position: 'absolute',\n padding: theme.spacing(3, 3, 0),\n [theme.breakpoints.up('sm')]: {\n padding: theme.spacing(5, 5, 0)\n }\n}));\n\n// ----------------------------------------------------------------------\n\nexport default function LogoOnlyLayout() {\n return (\n <>\n \n \n \n \n \n \n \n );\n}\n","export const avatars = [\n { src: '/static/avatars/AVATAR-01AVATARS.svg', id: 1 },\n { src: '/static/avatars/AVATAR-02AVATARS.svg', id: 2 },\n { src: '/static/avatars/AVATAR-03AVATARS.svg', id: 3 },\n { src: '/static/avatars/AVATAR-04AVATARS.svg', id: 4 },\n { src: '/static/avatars/AVATAR-05AVATARS.svg', id: 5 },\n { src: '/static/avatars/AVATAR-06AVATARS.svg', id: 6 },\n { src: '/static/avatars/AVATAR-07AVATARS.svg', id: 7 },\n { src: '/static/avatars/AVATAR-08AVATARS.svg', id: 8 },\n { src: '/static/avatars/AVATAR-09AVATARS.svg', id: 9 },\n { src: '/static/avatars/AVATAR-10AVATARS.svg', id: 10 },\n { src: '/static/avatars/AVATAR-11AVATARS.svg', id: 11 },\n { src: '/static/avatars/AVATAR-12AVATARS.svg', id: 12 },\n { src: '/static/avatars/AVATAR-13AVATARS.svg', id: 13 },\n { src: '/static/avatars/AVATAR-14AVATARS.svg', id: 14 },\n { src: '/static/avatars/AVATAR-15AVATARS.svg', id: 15 },\n { src: '/static/avatars/AVATAR-16AVATARS.svg', id: 16 },\n { src: '/static/avatars/AVATAR-17AVATARS.svg', id: 17 },\n { src: '/static/avatars/AVATAR-18AVATARS.svg', id: 18 },\n { src: '/static/avatars/AVATAR-19AVATARS.svg', id: 19 },\n { src: '/static/avatars/AVATAR-20AVATARS.svg', id: 20 },\n { src: '/static/avatars/AVATAR-21AVATARS.svg', id: 21 }\n];\n\nexport const credentials = [\n { src: '/static/credentials/front/FRENTE-01.svg' },\n { src: '/static/credentials/front/FRENTE-02.svg' },\n { src: '/static/credentials/front/FRENTE-03.svg' },\n { src: '/static/credentials/front/FRENTE-04.svg' },\n { src: '/static/credentials/front/FRENTE-05.svg' },\n { src: '/static/credentials/front/FRENTE-06.svg' },\n { src: '/static/credentials/front/FRENTE-07.svg' },\n { src: '/static/credentials/front/FRENTE-08.svg' },\n { src: '/static/credentials/front/FRENTE-09.svg' },\n { src: '/static/credentials/front/FRENTE-10.svg' },\n { src: '/static/credentials/front/FRENTE-11.svg' },\n { src: '/static/credentials/front/FRENTE-12.svg' },\n { src: '/static/credentials/front/FRENTE-13.svg' },\n { src: '/static/credentials/front/FRENTE-14.svg' },\n { src: '/static/credentials/front/FRENTE-15.svg' },\n { src: '/static/credentials/front/FRENTE-16.svg' },\n { src: '/static/credentials/front/FRENTE-17.svg' },\n { src: '/static/credentials/front/FRENTE-18.svg' },\n { src: '/static/credentials/front/FRENTE-19.svg' },\n { src: '/static/credentials/front/FRENTE-20.svg' },\n { src: '/static/credentials/front/FRENTE-21.svg' }\n];\n","import { Button, Container, Typography } from '@mui/material';\nimport Lottie from 'lottie-react';\nimport errorAnimation from '../../assets/lotties/error.json';\nimport useWordings from '../../locales/wordings/useWordings';\nimport { avatars } from 'utils/avatars';\nimport { Grid } from '@mui/material';\nimport { useEffect } from 'react';\n\ninterface AvatarProps {\n avatar: AvatarObject;\n setAvatar: Function;\n handleClose: Function;\n}\n\ninterface AvatarObject {\n src: string;\n id: number;\n}\nconst AvatarsBody = ({ setAvatar, avatar, handleClose }: AvatarProps) => {\n const { purchaseErrorModalWordings } = useWordings();\n\n const handleSelect = (url: AvatarObject) => {\n setAvatar(url);\n handleClose();\n };\n\n return (\n \n \n Select your Avatar\n \n \n {avatars.map((svg) => {\n return (\n \n handleSelect(svg)}\n style={{ cursor: 'pointer' }}\n src={svg.src}\n alt={svg.src}\n key={svg.src}\n >\n \n );\n })}\n \n \n );\n};\n\nexport default AvatarsBody;\n","import { useState, useContext, useEffect } from 'react';\nimport { useNavigate } from 'react-router';\nimport { useFormik } from 'formik';\nimport * as Yup from 'yup';\n\nimport { Grid, Typography, Divider, Card, TextField, Button, MenuItem } from '@mui/material';\nimport useModal from '../hooks/useModal';\nimport AvatarsBody from './modals/AvatarsBody';\nimport { ManagerContext } from 'contexts/ManagerContext';\nimport { useMoralisCloudFunction } from 'react-moralis';\nimport { CharacterNFT } from '../types/nftTypes';\nimport TransactionErrorBody from 'components/modals/TransactionErrorBody';\nimport { avatars } from 'utils/avatars';\n\nimport useWordings from '../locales/wordings/useWordings';\nimport TransactionInProcessBody from './modals/TransactionInProcessBody';\nimport { TokenTVCContext } from 'contexts/TokenTVCContext';\n\ninterface ManagerResponse {\n age: number;\n balanceMGER: number;\n especiality: string;\n name: string;\n urlImageCharacter: string;\n urlImageManager: string;\n}\n\nconst validationSchema = Yup.object({\n name: Yup.string().required('Name is required'),\n age: Yup.number()\n .min(18, 'You are too young to be a Manager')\n .max(99, 'Have you found the inmortality potion?')\n .required('Age is required'),\n speciality: Yup.string().required('A speciality it is required'),\n star: Yup.number().required('A star is required.')\n});\n\nconst currencies = [\n {\n value: 'Rock',\n label: 'Rock'\n },\n {\n value: 'Pop',\n label: 'Pop'\n },\n {\n value: 'K-Pop',\n label: 'K-Pop'\n },\n {\n value: 'Punk',\n label: 'Punk'\n },\n {\n value: 'Trap',\n label: 'Trap'\n },\n {\n value: 'Reggae',\n label: 'Reggae'\n }\n];\n\nexport default function CreateManagerForm() {\n const { data, fetch, isLoading } = useMoralisCloudFunction('getMyCollection');\n const { setTVCBalance } = useContext(TokenTVCContext);\n const [error, setError] = useState(false);\n const [collection, setCollection] = useState>([]);\n const navigate = useNavigate();\n const { setManager, manager, setUpdate, getCredential } = useContext(ManagerContext);\n const { BaseModal, open, handleOpen, handleClose: closeModal } = useModal();\n\n const [buying, setBuying] = useState(false);\n const [name, setName] = useState(manager?.name ? manager?.name : '');\n const [age, setAge] = useState(manager?.age ? manager.age : null);\n const [avatar, setAvatar] = useState({\n src: manager?.managerAvatarId ? avatars[manager.managerAvatarId - 1].src : '',\n id: manager?.managerAvatarId ? manager.managerAvatarId : 0\n });\n\n const [speciality, setSpeciality] = useState(manager?.especiality ? manager.especiality : '');\n const [star, setStar] = useState(manager?.tokenId ? manager.tokenId : '');\n const [hasCredential, setHasCredential] = useState(\n manager?.hasCredential ? manager.hasCredential : false\n );\n\n const [editing, setEditing] = useState(false);\n const { credentialWording } = useWordings();\n\n const {\n fetch: createCredential,\n data: createData,\n error: credentialError,\n isLoading: createIsLoading\n } = useMoralisCloudFunction(\n 'createManager',\n {\n name: name,\n age: age,\n especiality: speciality,\n managerImageId: avatar.id,\n tokenId: star\n },\n { autoFetch: false }\n );\n\n const {\n fetch: updateCredential,\n data: updateData,\n error: updateError,\n isLoading: updateIsLoading\n } = useMoralisCloudFunction(\n 'updateManager',\n {\n name: name,\n age: age,\n especiality: speciality,\n managerImageId: avatar?.id,\n tokenId: star\n },\n { autoFetch: false }\n );\n\n useEffect(() => {\n if (createData) {\n const res = createData as ManagerResponse;\n setManager(res);\n setTVCBalance(res.balanceMGER);\n navigate('/my-manager');\n }\n if (updateData) {\n setManager(updateData);\n navigate('/my-manager');\n }\n }, [createData, updateData]);\n\n useEffect(() => {\n if (credentialError) setError(true);\n }, [credentialError]);\n\n const handleCreate = () => {\n setBuying(true);\n createCredential({ onSuccess: () => getCredential() });\n };\n\n const handleUpdate = () => {\n setEditing(true);\n updateCredential({ onSuccess: setUpdate(true) });\n };\n\n useEffect(() => {\n if (hasCredential && editing) handleUpdate();\n }, [manager, editing]);\n //Getting NFTS\n useEffect(() => {\n if (manager) {\n fetch();\n }\n }, []);\n\n useEffect(() => {\n if (data) {\n const characters = data as CharacterNFT[];\n setCollection(characters);\n }\n }, [data, isLoading]);\n ////\n\n const handleClose = () => {\n closeModal();\n setError(false);\n return true;\n };\n\n const formik = useFormik({\n enableReinitialize: true,\n initialValues: {\n name: name,\n age: age,\n speciality: speciality,\n star: star\n },\n\n validationSchema: validationSchema,\n validateOnChange: true,\n validateOnBlur: true,\n\n onSubmit: (values) => {\n if (avatar.id === 0) {\n console.log('error: select avatar please.');\n } else if (hasCredential) {\n setManager({ ...values, managerImageId: avatar.id });\n setEditing(true);\n handleOpen();\n } else {\n setManager({ ...values, managerImageId: avatar.id });\n handleCreate();\n handleOpen();\n }\n }\n });\n\n return (\n \n \n \n {avatar.id !== 0 ? (\n handleOpen()}\n src={avatar.src}\n >\n ) : (\n handleOpen()}\n >\n \n +\n \n \n )}\n \n \n
\n \n \n setName(e.target.value)}\n error={formik.touched.name && Boolean(formik.errors.name)}\n helperText={formik.touched.name && formik.errors.name}\n />\n \n \n setAge(Number(e.target.value))}\n error={formik.touched.age && Boolean(formik.errors.age)}\n helperText={formik.touched.age && formik.errors.age}\n />\n \n \n setSpeciality(e.target.value)}\n error={formik.touched.speciality && Boolean(formik.errors.speciality)}\n helperText={formik.touched.speciality && formik.errors.speciality}\n >\n {currencies.map((option) => (\n \n {option.label}\n \n ))}\n \n \n \n setStar(e.target.value)}\n error={formik.touched.star && Boolean(formik.errors.star)}\n helperText={formik.touched.star && formik.errors.star}\n >\n {collection.map((star) => {\n return (\n \n {' '}\n Id: {star.tokenId} | Exp: {star.experience} | Talent: {star.talent} |\n Energía: {star.totalEnergy} | Moral: {star.moral}\n \n );\n })}\n \n \n \n \n Total: {manager.hasCredential ? '0 TVC' : '2000 TVC'}\n \n \n \n \n \n navigate('/my-manager')}\n >\n Cancel\n \n \n \n \n
\n \n\n handleClose()}>\n {!error && !buying && !editing ? (\n handleClose()}\n >\n ) : error && buying ? (\n setError(false)} />\n ) : (\n \n )}\n \n \n );\n}\n","import { useState } from 'react';\n// material\nimport {\n Box,\n Grid,\n Container,\n Typography,\n Divider,\n Card,\n TextField,\n Button,\n MenuItem\n} from '@mui/material';\nimport { useTheme } from '@mui/material/styles';\n// components\nimport Page from '../components/Page';\nimport InvalidChain from './InvalidChain';\n\n// hooks\nimport useCheckChain from 'hooks/useCheckChain';\nimport useWordings from 'locales/wordings/useWordings';\nimport CreateManagerForm from '../components/CreateManagerForm';\n\n// ----------------------------------------------------------------------\n\nexport default function CreateManager() {\n const { credentialWording } = useWordings();\n const { invalidChain } = useCheckChain();\n\n //Form intialization\n\n return (\n \n \n \n \n Detalles de tu compra\n \n \n \n {invalidChain ? : }\n \n \n );\n}\n","import { Suspense, lazy, useContext } from 'react';\nimport { Navigate, useRoutes, useLocation } from 'react-router-dom';\n// layouts\nimport DashboardLayout from '../layouts/dashboard';\nimport LogoOnlyLayout from '../layouts/LogoOnlyLayout';\n// components\nimport LoadingScreen from '../components/LoadingScreen';\n// context\nimport { MaintenanceContext } from '../contexts/MaintenanceContext';\nimport { ManagerContext } from 'contexts/ManagerContext';\nimport CreateManager from 'pages/CreateManager';\n\n// ----------------------------------------------------------------------\n\nconst Loadable = (Component: React.ElementType) => (props: any) => {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const { pathname } = useLocation();\n const isDashboard = pathname.includes('/dashboard');\n\n return (\n \n }\n >\n \n \n );\n};\n\nexport default function Router() {\n const { maintenanceGral } = useContext(MaintenanceContext);\n const { manager } = useContext(ManagerContext);\n\n return useRoutes([\n {\n path: '/',\n element: maintenanceGral ? : ,\n children: [\n { element: },\n {\n path: 'shop',\n element: maintenanceGral ? : \n },\n {\n path: 'my-mystery-box',\n element: maintenanceGral ? : \n },\n {\n path: 'my-collection',\n element: maintenanceGral ? : \n }\n ]\n },\n {\n path: '/my-manager',\n element: maintenanceGral ? : ,\n children: [\n {\n path: '/my-manager',\n element: maintenanceGral ? : \n },\n {\n path: '/my-manager/create-manager',\n element: maintenanceGral ? : \n },\n {\n path: '/my-manager/share/:address',\n element: maintenanceGral ? : \n }\n ]\n },\n {\n path: '/play-game',\n element: maintenanceGral ? : ,\n children: [\n {\n path: '/play-game',\n element: maintenanceGral ? : \n },\n {\n path: '/play-game/overtime',\n element: maintenanceGral ? : \n },\n {\n path: '/play-game/duels',\n element: maintenanceGral ? : \n }\n ]\n },\n {\n path: '/',\n element: ,\n children: [\n { path: '404', element: },\n { path: '/', element: },\n { path: '*', element: }\n ]\n },\n { path: '*', element: }\n ]);\n}\n\n// IMPORT COMPONENTS\nconst Shop = Loadable(lazy(() => import('../pages/Shop')));\nconst MyMysteryBox = Loadable(lazy(() => import('../pages/MyMysteryBox')));\nconst MyCollection = Loadable(lazy(() => import('../pages/MyCollection')));\nconst PlayGame = Loadable(lazy(() => import('../pages/PlayGame')));\nconst MyManager = Loadable(lazy(() => import('../pages/MyManager')));\nconst SharedManager = Loadable(lazy(() => import('../pages/SharedManager')));\nconst OvertimeGame = Loadable(lazy(() => import('../pages/games/OvertimeGame')));\nconst DuelsGame = Loadable(lazy(() => import('../pages/games/DuelsGame')));\nconst NotFound = Loadable(lazy(() => import('../pages/Page404')));\nconst MaintenancePage = Loadable(lazy(() => import('../pages/MaintenancePage')));\n","// ----------------------------------------------------------------------\n\ndeclare module '@mui/system' {\n interface Shape {\n borderRadiusSm: number | string;\n borderRadiusMd: number | string;\n }\n}\n\nconst shape = {\n borderRadius: 8,\n borderRadiusSm: 12,\n borderRadiusMd: 16\n};\n\nexport default shape;\n","// ----------------------------------------------------------------------\n\nfunction pxToRem(value: number) {\n return `${value / 16}rem`;\n}\n\nfunction responsiveFontSizes({ sm, md, lg }: { sm: number; md: number; lg: number }) {\n return {\n '@media (min-width:600px)': {\n fontSize: pxToRem(sm)\n },\n '@media (min-width:900px)': {\n fontSize: pxToRem(md)\n },\n '@media (min-width:1200px)': {\n fontSize: pxToRem(lg)\n }\n };\n}\n\nconst FONT_PRIMARY = 'Public Sans, sans-serif'; // Google Font\n// const FONT_SECONDARY = 'CircularStd, sans-serif'; // Local Font\n\nconst typography = {\n fontFamily: FONT_PRIMARY,\n fontWeightRegular: 400,\n fontWeightMedium: 600,\n fontWeightBold: 700,\n h1: {\n fontWeight: 700,\n lineHeight: 80 / 64,\n fontSize: pxToRem(40),\n ...responsiveFontSizes({ sm: 52, md: 58, lg: 64 })\n },\n h2: {\n fontWeight: 700,\n lineHeight: 64 / 48,\n fontSize: pxToRem(32),\n ...responsiveFontSizes({ sm: 40, md: 44, lg: 48 })\n },\n h3: {\n fontWeight: 700,\n lineHeight: 1.5,\n fontSize: pxToRem(24),\n ...responsiveFontSizes({ sm: 26, md: 30, lg: 32 })\n },\n h4: {\n fontWeight: 700,\n lineHeight: 1.5,\n fontSize: pxToRem(20),\n ...responsiveFontSizes({ sm: 20, md: 24, lg: 24 })\n },\n h5: {\n fontWeight: 700,\n lineHeight: 1.5,\n fontSize: pxToRem(18),\n ...responsiveFontSizes({ sm: 19, md: 20, lg: 20 })\n },\n h6: {\n fontWeight: 700,\n lineHeight: 28 / 18,\n fontSize: pxToRem(17),\n ...responsiveFontSizes({ sm: 18, md: 18, lg: 18 })\n },\n subtitle1: {\n fontWeight: 600,\n lineHeight: 1.5,\n fontSize: pxToRem(16)\n },\n subtitle2: {\n fontWeight: 600,\n lineHeight: 22 / 14,\n fontSize: pxToRem(14)\n },\n body1: {\n lineHeight: 1.5,\n fontSize: pxToRem(16)\n },\n body2: {\n lineHeight: 22 / 14,\n fontSize: pxToRem(14)\n },\n caption: {\n lineHeight: 1.5,\n fontSize: pxToRem(12)\n },\n overline: {\n fontWeight: 700,\n lineHeight: 1.5,\n fontSize: pxToRem(12),\n letterSpacing: 1.1,\n textTransform: 'uppercase'\n },\n button: {\n fontWeight: 700,\n lineHeight: 24 / 14,\n fontSize: pxToRem(14),\n textTransform: 'capitalize'\n }\n} as const;\n\nexport default typography;\n","// ----------------------------------------------------------------------\n\nconst breakpoints = {\n values: {\n xs: 0,\n sm: 600,\n md: 900,\n lg: 1200,\n xl: 1536\n }\n};\n\nexport default breakpoints;\n","import { Icon } from '@iconify/react';\nimport starFill from '@iconify/icons-eva/star-fill';\nimport { Theme } from '@mui/material/styles';\nimport { SvgIcon } from '@mui/material';\n\n// ----------------------------------------------------------------------\n\nconst ICON_SMALL = { width: 20, height: 20 };\nconst ICON_LARGE = { width: 28, height: 28 };\n\nconst ICON = (\n \n \n \n);\n\nexport default function Rating(theme: Theme) {\n return {\n MuiRating: {\n defaultProps: {\n emptyIcon: ICON,\n icon: ICON\n },\n\n styleOverrides: {\n root: {\n '&.Mui-disabled': {\n opacity: 0.48\n }\n },\n iconEmpty: { color: theme.palette.grey[500_48] },\n sizeSmall: { '& svg': { ...ICON_SMALL } },\n sizeLarge: { '& svg': { ...ICON_LARGE } }\n }\n }\n };\n}\n","import { Icon } from '@iconify/react';\nimport plusSquareOutline from '@iconify/icons-eva/plus-square-outline';\nimport minusSquareOutline from '@iconify/icons-eva/minus-square-outline';\nimport closeSquareOutline from '@iconify/icons-eva/close-square-outline';\nimport { Theme } from '@mui/material/styles';\nimport { Box } from '@mui/material';\n\n// ----------------------------------------------------------------------\n\nconst ICON_SIZE = { width: 20, height: 20 };\n\nexport default function TreeView(theme: Theme) {\n return {\n MuiTreeView: {\n defaultProps: {\n defaultCollapseIcon: ,\n defaultExpandIcon: ,\n defaultEndIcon: (\n \n )\n }\n },\n MuiTreeItem: {\n styleOverrides: {\n label: { ...theme.typography.body2 },\n iconContainer: { width: 'auto' }\n }\n }\n };\n}\n","import { Theme } from '@mui/material/styles';\nimport { SvgIcon, SvgIconProps } from '@mui/material';\n\n// ----------------------------------------------------------------------\n\nfunction Icon(props: SvgIconProps) {\n return (\n \n \n \n );\n}\n\nfunction CheckedIcon(props: SvgIconProps) {\n return (\n \n \n \n );\n}\n\nfunction IndeterminateIcon(props: SvgIconProps) {\n return (\n \n \n \n );\n}\n\nexport default function Checkbox(theme: Theme) {\n return {\n MuiCheckbox: {\n defaultProps: {\n icon: ,\n checkedIcon: ,\n indeterminateIcon: \n },\n\n styleOverrides: {\n root: {\n padding: theme.spacing(1),\n '&.Mui-checked.Mui-disabled, &.Mui-disabled': {\n color: theme.palette.action.disabled\n },\n '& .MuiSvgIcon-fontSizeMedium': {\n width: 24,\n height: 24\n },\n '& .MuiSvgIcon-fontSizeSmall': {\n width: 20,\n height: 20\n },\n svg: {\n fontSize: 24,\n '&[font-size=small]': {\n fontSize: 20\n }\n }\n }\n }\n }\n };\n}\n","import { merge } from 'lodash';\nimport { Theme } from '@mui/material/styles';\nimport Fab from './Fab';\nimport Card from './Card';\nimport Chip from './Chip';\nimport Tabs from './Tabs';\nimport Menu from './Menu';\nimport Grid from './Grid';\nimport Link from './Link';\nimport Lists from './Lists';\nimport Table from './Table';\nimport Alert from './Alert';\nimport Badge from './Badge';\nimport Paper from './Paper';\nimport Input from './Input';\nimport Radio from './Radio';\nimport Drawer from './Drawer';\nimport Dialog from './Dialog';\nimport Avatar from './Avatar';\nimport Rating from './Rating';\nimport Slider from './Slider';\nimport Button from './Button';\nimport Switch from './Switch';\nimport Select from './Select';\nimport SvgIcon from './SvgIcon';\nimport Tooltip from './Tooltip';\nimport Popover from './Popover';\nimport Stepper from './Stepper';\nimport Pickers from './Pickers';\nimport DataGrid from './DataGrid';\nimport Skeleton from './Skeleton';\nimport Backdrop from './Backdrop';\nimport Snackbar from './Snackbar';\nimport Progress from './Progress';\nimport Timeline from './Timeline';\nimport TreeView from './TreeView';\nimport Checkbox from './Checkbox';\nimport Container from './Container';\nimport Accordion from './Accordion';\nimport Typography from './Typography';\nimport Pagination from './Pagination';\nimport IconButton from './IconButton';\nimport Breadcrumbs from './Breadcrumbs';\nimport ButtonGroup from './ButtonGroup';\nimport Autocomplete from './Autocomplete';\nimport ToggleButton from './ToggleButton';\nimport ControlLabel from './ControlLabel';\nimport LoadingButton from './LoadingButton';\n\n// ----------------------------------------------------------------------\n\nexport default function ComponentsOverrides(theme: Theme) {\n return merge(\n Fab(theme),\n Tabs(theme),\n Chip(theme),\n Card(theme),\n Menu(theme),\n Grid(theme),\n Link(theme),\n Input(theme),\n Radio(theme),\n Badge(theme),\n Lists(theme),\n Table(theme),\n Paper(theme),\n Alert(theme),\n Switch(theme),\n Select(theme),\n Button(theme),\n Rating(theme),\n Dialog(theme),\n Avatar(theme),\n Slider(theme),\n Drawer(theme),\n Pickers(theme),\n Stepper(theme),\n Tooltip(theme),\n Popover(theme),\n SvgIcon(theme),\n Checkbox(theme),\n DataGrid(theme),\n Skeleton(theme),\n Timeline(theme),\n TreeView(theme),\n Backdrop(theme),\n Snackbar(theme),\n Progress(theme),\n Container(theme),\n Accordion(theme),\n IconButton(theme),\n Typography(theme),\n Pagination(theme),\n ButtonGroup(theme),\n Breadcrumbs(theme),\n Autocomplete(theme),\n ControlLabel(theme),\n ToggleButton(theme),\n LoadingButton(theme)\n );\n}\n","import { Theme } from '@mui/material/styles';\n\n// ----------------------------------------------------------------------\n\nexport default function Fab(theme: Theme) {\n return {\n MuiFab: {\n defaultProps: {\n color: 'primary'\n },\n\n styleOverrides: {\n root: {\n boxShadow: theme.customShadows.z8,\n '&:hover': {\n boxShadow: 'none',\n backgroundColor: theme.palette.grey[400]\n }\n },\n primary: {\n boxShadow: theme.customShadows.primary,\n '&:hover': {\n backgroundColor: theme.palette.primary.dark\n }\n },\n secondary: {\n boxShadow: theme.customShadows.secondary,\n '&:hover': {\n backgroundColor: theme.palette.secondary.dark\n }\n },\n extended: {\n '& svg': {\n marginRight: theme.spacing(1)\n }\n }\n }\n }\n };\n}\n","import { Theme } from '@mui/material/styles';\n\n// ----------------------------------------------------------------------\n\nexport default function Tabs(theme: Theme) {\n return {\n MuiTab: {\n styleOverrides: {\n root: {\n padding: 0,\n fontWeight: theme.typography.fontWeightMedium,\n borderTopLeftRadius: theme.shape.borderRadius,\n borderTopRightRadius: theme.shape.borderRadius,\n '&.Mui-selected': {\n color: theme.palette.text.primary\n },\n '&:not(:last-of-type)': {\n marginRight: theme.spacing(5)\n },\n '@media (min-width: 600px)': {\n minWidth: 48\n }\n },\n labelIcon: {\n minHeight: 48,\n flexDirection: 'row',\n '& > *:first-of-type': {\n marginBottom: 0,\n marginRight: theme.spacing(1)\n }\n },\n wrapper: {\n flexDirection: 'row',\n whiteSpace: 'nowrap'\n },\n textColorInherit: {\n opacity: 1,\n color: theme.palette.text.secondary\n }\n }\n },\n MuiTabPanel: {\n styleOverrides: {\n root: {\n padding: 0\n }\n }\n },\n MuiTabScrollButton: {\n styleOverrides: {\n root: {\n width: 48,\n borderRadius: '50%'\n }\n }\n }\n };\n}\n","import { Icon } from '@iconify/react';\nimport closeCircleFill from '@iconify/icons-eva/close-circle-fill';\nimport { Theme } from '@mui/material/styles';\n\n// ----------------------------------------------------------------------\n\nexport default function Chip(theme: Theme) {\n return {\n MuiChip: {\n defaultProps: {\n deleteIcon: \n },\n\n styleOverrides: {\n colorDefault: {\n '& .MuiChip-avatarMedium, .MuiChip-avatarSmall': {\n color: theme.palette.text.secondary\n }\n },\n outlined: {\n borderColor: theme.palette.grey[500_32],\n '&.MuiChip-colorPrimary': {\n borderColor: theme.palette.primary.main\n },\n '&.MuiChip-colorSecondary': {\n borderColor: theme.palette.secondary.main\n }\n },\n //\n avatarColorInfo: {\n color: theme.palette.info.contrastText,\n backgroundColor: theme.palette.info.dark\n },\n avatarColorSuccess: {\n color: theme.palette.success.contrastText,\n backgroundColor: theme.palette.success.dark\n },\n avatarColorWarning: {\n color: theme.palette.warning.contrastText,\n backgroundColor: theme.palette.warning.dark\n },\n avatarColorError: {\n color: theme.palette.error.contrastText,\n backgroundColor: theme.palette.error.dark\n }\n }\n }\n };\n}\n","import { Theme } from '@mui/material/styles';\n\n// ----------------------------------------------------------------------\n\nexport default function Card(theme: Theme) {\n return {\n MuiCard: {\n styleOverrides: {\n root: {\n boxShadow: theme.customShadows.z16,\n borderRadius: theme.shape.borderRadiusMd,\n position: 'relative',\n zIndex: 0 // Fix Safari overflow: hidden with border radius\n }\n }\n },\n MuiCardHeader: {\n defaultProps: {\n titleTypographyProps: { variant: 'h6' },\n subheaderTypographyProps: { variant: 'body2', marginTop: theme.spacing(0.5) }\n },\n styleOverrides: {\n root: {\n padding: theme.spacing(3, 3, 0)\n }\n }\n },\n MuiCardContent: {\n styleOverrides: {\n root: {\n padding: theme.spacing(3)\n }\n }\n }\n };\n}\n","import { Theme } from '@mui/material/styles';\n\n// ----------------------------------------------------------------------\n\nexport default function Menu(theme: Theme) {\n return {\n MuiMenuItem: {\n styleOverrides: {\n root: {\n '&.Mui-selected': {\n backgroundColor: theme.palette.action.selected,\n '&:hover': {\n backgroundColor: theme.palette.action.hover\n }\n }\n }\n }\n }\n };\n}\n","import { Theme } from '@mui/material/styles';\n\n// ----------------------------------------------------------------------\n\nexport default function Grid(theme: Theme) {\n return {\n MuiGrid: {\n styleOverrides: {}\n }\n };\n}\n","import { Theme } from '@mui/material/styles';\n\n// ----------------------------------------------------------------------\n\nexport default function Link(theme: Theme) {\n return {\n MuiLink: {\n defaultProps: {\n underline: 'hover'\n },\n\n styleOverrides: {\n root: {}\n }\n }\n };\n}\n","import { Theme } from '@mui/material/styles';\n\n// ----------------------------------------------------------------------\n\nexport default function Input(theme: Theme) {\n return {\n MuiInputBase: {\n styleOverrides: {\n root: {\n '&.Mui-disabled': {\n '& svg': { color: theme.palette.text.disabled }\n }\n },\n input: {\n '&::placeholder': {\n opacity: 1,\n color: theme.palette.text.disabled\n }\n }\n }\n },\n MuiInput: {\n styleOverrides: {\n underline: {\n '&:before': {\n borderBottomColor: theme.palette.grey[500_56]\n }\n }\n }\n },\n MuiFilledInput: {\n styleOverrides: {\n root: {\n backgroundColor: theme.palette.grey[500_12],\n '&:hover': {\n backgroundColor: theme.palette.grey[500_16]\n },\n '&.Mui-focused': {\n backgroundColor: theme.palette.action.focus\n },\n '&.Mui-disabled': {\n backgroundColor: theme.palette.action.disabledBackground\n }\n },\n underline: {\n '&:before': {\n borderBottomColor: theme.palette.grey[500_56]\n }\n }\n }\n },\n MuiOutlinedInput: {\n styleOverrides: {\n root: {\n '& .MuiOutlinedInput-notchedOutline': {\n borderColor: theme.palette.grey[500_32]\n },\n '&.Mui-disabled': {\n '& .MuiOutlinedInput-notchedOutline': {\n borderColor: theme.palette.action.disabledBackground\n }\n }\n }\n }\n }\n };\n}\n","import { Theme } from '@mui/material/styles';\n\n// ----------------------------------------------------------------------\n\nexport default function Radio(theme: Theme) {\n return {\n MuiRadio: {\n styleOverrides: {\n root: {\n padding: theme.spacing(1),\n svg: {\n fontSize: 24,\n '&[font-size=small]': {\n fontSize: 20\n }\n }\n }\n }\n }\n };\n}\n","import { Theme } from '@mui/material/styles';\n\n// ----------------------------------------------------------------------\n\nexport default function Badge(theme: Theme) {\n return {\n MuiBadge: {\n styleOverrides: {\n dot: {\n width: 10,\n height: 10,\n borderRadius: '50%'\n }\n }\n }\n };\n}\n","import { Theme } from '@mui/material/styles';\n\n// ----------------------------------------------------------------------\n\nexport default function Lists(theme: Theme) {\n return {\n MuiListItemIcon: {\n styleOverrides: {\n root: {\n color: 'inherit',\n minWidth: 'auto',\n marginRight: theme.spacing(2)\n }\n }\n },\n MuiListItemAvatar: {\n styleOverrides: {\n root: {\n minWidth: 'auto',\n marginRight: theme.spacing(2)\n }\n }\n },\n MuiListItemText: {\n styleOverrides: {\n root: {\n marginTop: 0,\n marginBottom: 0\n },\n multiline: {\n marginTop: 0,\n marginBottom: 0\n }\n }\n }\n };\n}\n","import { Theme } from '@mui/material/styles';\n\n// ----------------------------------------------------------------------\n\nexport default function Table(theme: Theme) {\n return {\n MuiTableRow: {\n styleOverrides: {\n root: {\n '&.Mui-selected': {\n backgroundColor: theme.palette.action.selected,\n '&:hover': {\n backgroundColor: theme.palette.action.hover\n }\n }\n }\n }\n },\n MuiTableCell: {\n styleOverrides: {\n root: {\n borderBottom: 'none'\n },\n head: {\n color: theme.palette.text.secondary,\n backgroundColor: theme.palette.background.neutral,\n '&:first-of-type': {\n paddingLeft: theme.spacing(3),\n borderTopLeftRadius: theme.shape.borderRadius,\n borderBottomLeftRadius: theme.shape.borderRadius,\n boxShadow: `inset 8px 0 0 ${theme.palette.background.paper}`\n },\n '&:last-of-type': {\n paddingRight: theme.spacing(3),\n borderTopRightRadius: theme.shape.borderRadius,\n borderBottomRightRadius: theme.shape.borderRadius,\n boxShadow: `inset -8px 0 0 ${theme.palette.background.paper}`\n }\n },\n stickyHeader: {\n backgroundColor: theme.palette.background.paper,\n backgroundImage: `linear-gradient(to bottom, ${theme.palette.background.neutral} 0%, ${theme.palette.background.neutral} 100%)`\n },\n body: {\n '&:first-of-type': {\n paddingLeft: theme.spacing(3)\n },\n '&:last-of-type': {\n paddingRight: theme.spacing(3)\n }\n }\n }\n },\n MuiTablePagination: {\n styleOverrides: {\n root: {\n borderTop: `solid 1px ${theme.palette.divider}`\n },\n toolbar: {\n height: 64\n },\n select: {\n '&:focus': {\n borderRadius: theme.shape.borderRadius\n }\n },\n selectIcon: {\n width: 20,\n height: 20,\n marginTop: 2\n }\n }\n }\n };\n}\n","import { Theme } from '@mui/material/styles';\n\n// ----------------------------------------------------------------------\n\nexport default function Paper(theme: Theme) {\n return {\n MuiPaper: {\n defaultProps: {\n elevation: 0\n },\n\n styleOverrides: {\n root: {\n backgroundImage: 'none'\n }\n }\n }\n };\n}\n","import { Icon } from '@iconify/react';\nimport infoFill from '@iconify/icons-eva/info-fill';\nimport alertCircleFill from '@iconify/icons-eva/alert-circle-fill';\nimport alertTriangleFill from '@iconify/icons-eva/alert-triangle-fill';\nimport checkmarkCircle2Fill from '@iconify/icons-eva/checkmark-circle-2-fill';\n// material\nimport { Theme } from '@mui/material/styles';\n// @types\nimport { ColorSchema } from '../../@types/theme';\n\n// ----------------------------------------------------------------------\n\nexport default function Alert(theme: Theme) {\n const isLight = theme.palette.mode === 'light';\n\n const standardStyle = (color: ColorSchema) => ({\n color: theme.palette[color][isLight ? 'darker' : 'lighter'],\n backgroundColor: theme.palette[color][isLight ? 'lighter' : 'darker'],\n '& .MuiAlert-icon': {\n color: theme.palette[color][isLight ? 'main' : 'light']\n }\n });\n\n const filledStyle = (color: ColorSchema) => ({\n color: theme.palette[color].contrastText\n });\n\n const outlinedStyle = (color: ColorSchema) => ({\n color: theme.palette[color][isLight ? 'darker' : 'lighter'],\n border: `solid 1px ${theme.palette[color][isLight ? 'light' : 'dark']}`,\n backgroundColor: theme.palette[color][isLight ? 'lighter' : 'darker'],\n '& .MuiAlert-icon': {\n color: theme.palette[color][isLight ? 'main' : 'light']\n }\n });\n\n return {\n MuiAlert: {\n defaultProps: {\n iconMapping: {\n error: ,\n info: ,\n success: ,\n warning: \n }\n },\n\n styleOverrides: {\n message: {\n '& .MuiAlertTitle-root': {\n marginBottom: theme.spacing(0.5)\n }\n },\n action: {\n '& button:not(:first-of-type)': {\n marginLeft: theme.spacing(1)\n }\n },\n\n standardInfo: standardStyle('info'),\n standardSuccess: standardStyle('success'),\n standardWarning: standardStyle('warning'),\n standardError: standardStyle('error'),\n\n filledInfo: filledStyle('info'),\n filledSuccess: filledStyle('success'),\n filledWarning: filledStyle('warning'),\n filledError: filledStyle('error'),\n\n outlinedInfo: outlinedStyle('info'),\n outlinedSuccess: outlinedStyle('success'),\n outlinedWarning: outlinedStyle('warning'),\n outlinedError: outlinedStyle('error')\n }\n }\n };\n}\n","import { Theme } from '@mui/material/styles';\n\n// ----------------------------------------------------------------------\n\nexport default function Switch(theme: Theme) {\n const isLight = theme.palette.mode === 'light';\n\n return {\n MuiSwitch: {\n styleOverrides: {\n thumb: {\n boxShadow: theme.customShadows.z1\n },\n track: {\n opacity: 1,\n backgroundColor: theme.palette.grey[500]\n },\n switchBase: {\n left: 0,\n right: 'auto',\n '&:not(:.Mui-checked)': {\n color: theme.palette.grey[isLight ? 100 : 300]\n },\n '&.Mui-checked.Mui-disabled, &.Mui-disabled': {\n color: theme.palette.grey[isLight ? 400 : 600]\n },\n '&.Mui-disabled+.MuiSwitch-track': {\n opacity: 1,\n backgroundColor: `${theme.palette.action.disabledBackground} !important`\n }\n }\n }\n }\n };\n}\n","import ExpandMoreRoundedIcon from '@mui/icons-material/ExpandMoreRounded';\nimport { Theme } from '@mui/material/styles';\n\n// ----------------------------------------------------------------------\n\nexport default function Select(theme: Theme) {\n return {\n MuiSelect: {\n defaultProps: {\n IconComponent: ExpandMoreRoundedIcon\n },\n\n styleOverrides: {\n root: {}\n }\n }\n };\n}\n","import { ThemeContext } from '@emotion/react';\nimport { Theme } from '@mui/material/styles';\n\n// ----------------------------------------------------------------------\n\nexport default function Button(theme: Theme) {\n return {\n MuiButton: {\n styleOverrides: {\n root: {\n '&:hover': {\n boxShadow: 'none'\n }\n },\n sizeLarge: {\n height: 48\n },\n // contained\n containedInherit: {\n color: theme.palette.text.primary,\n boxShadow: theme.customShadows.z8,\n '&:hover': {\n backgroundColor: theme.palette.grey[300]\n }\n },\n containedPrimary: {\n color: theme.palette.mode === 'light' ? '#000' : '#FFF',\n fontWeight: 600,\n\n backgroundColor: '#1890FF',\n boxShadow: theme.customShadows.primary\n },\n containedSecondary: {\n boxShadow: theme.customShadows.secondary\n },\n containedInfo: {\n boxShadow: theme.customShadows.info\n },\n containedSuccess: {\n boxShadow: theme.customShadows.success\n },\n containedWarning: {\n boxShadow: theme.customShadows.warning\n },\n containedError: {\n boxShadow: theme.customShadows.error\n },\n // outlined\n outlinedInherit: {\n border: `1px solid ${theme.palette.grey[500_32]}`,\n '&:hover': {\n backgroundColor: theme.palette.action.hover\n }\n },\n textInherit: {\n '&:hover': {\n backgroundColor: theme.palette.action.hover\n }\n }\n }\n }\n };\n}\n","import { Theme } from '@mui/material/styles';\n\n// ----------------------------------------------------------------------\n\nexport default function Dialog(theme: Theme) {\n return {\n MuiDialog: {\n styleOverrides: {\n paper: {\n boxShadow: theme.customShadows.z24,\n '&.MuiPaper-rounded': {\n borderRadius: theme.shape.borderRadiusMd\n },\n '&.MuiDialog-paperFullScreen': {\n borderRadius: 0\n },\n '&.MuiDialog-paper .MuiDialogActions-root': {\n padding: theme.spacing(3)\n },\n '@media (max-width: 600px)': {\n margin: theme.spacing(2)\n },\n '@media (max-width: 663.95px)': {\n '&.MuiDialog-paperWidthSm.MuiDialog-paperScrollBody': {\n maxWidth: '100%'\n }\n }\n },\n paperFullWidth: {\n width: '100%'\n }\n }\n },\n MuiDialogTitle: {\n styleOverrides: {\n root: {\n padding: theme.spacing(3, 3, 0)\n }\n }\n },\n MuiDialogContent: {\n styleOverrides: {\n root: {\n borderTop: 0,\n borderBottom: 0,\n padding: theme.spacing(3)\n }\n }\n },\n MuiDialogActions: {\n styleOverrides: {\n root: {\n '& > :not(:first-of-type)': {\n marginLeft: theme.spacing(1.5)\n }\n }\n }\n }\n };\n}\n","import { Theme } from '@mui/material/styles';\n\n// ----------------------------------------------------------------------\n\nexport default function Avatar(theme: Theme) {\n return {\n MuiAvatar: {\n styleOverrides: {\n colorDefault: {\n color: theme.palette.text.secondary,\n backgroundColor: theme.palette.grey[400]\n }\n }\n },\n MuiAvatarGroup: {\n styleOverrides: {\n avatar: {\n fontSize: 16,\n fontWeight: theme.typography.fontWeightMedium,\n '&:first-of-type': {\n fontSize: 14,\n color: theme.palette.primary.main,\n backgroundColor: theme.palette.primary.lighter\n }\n }\n }\n }\n };\n}\n","import { Theme } from '@mui/material/styles';\n\n// ----------------------------------------------------------------------\n\nexport default function Slider(theme: Theme) {\n const isLight = theme.palette.mode === 'light';\n\n return {\n MuiSlider: {\n defaultProps: {\n size: 'small'\n },\n\n styleOverrides: {\n root: {\n '&.Mui-disabled': {\n color: theme.palette.action.disabled\n }\n },\n markLabel: {\n fontSize: 13,\n color: theme.palette.text.disabled\n },\n valueLabel: {\n borderRadius: 8,\n backgroundColor: theme.palette.grey[isLight ? 800 : 700]\n }\n }\n }\n };\n}\n","import { alpha, Theme } from '@mui/material';\n\n// ----------------------------------------------------------------------\n\nexport default function Drawer(theme: Theme) {\n const isLight = theme.palette.mode === 'light';\n\n return {\n MuiDrawer: {\n styleOverrides: {\n modal: {\n '&[role=\"presentation\"]': {\n '& .MuiDrawer-paperAnchorLeft': {\n boxShadow: `8px 24px 24px 12px ${alpha(\n theme.palette.grey[900],\n isLight ? 0.16 : 0.48\n )}`\n },\n '& .MuiDrawer-paperAnchorRight': {\n boxShadow: `-8px 24px 24px 12px ${alpha(\n theme.palette.grey[900],\n isLight ? 0.16 : 0.48\n )}`\n }\n }\n }\n }\n }\n };\n}\n","import { Theme } from '@mui/material/styles';\n\n// ----------------------------------------------------------------------\n\nexport default function Pickers(theme: Theme) {\n return {};\n}\n","import { Theme } from '@mui/material/styles';\n\n// ----------------------------------------------------------------------\n\nexport default function Stepper(theme: Theme) {\n return {\n MuiStepConnector: {\n styleOverrides: {\n line: {\n borderColor: theme.palette.divider\n }\n }\n }\n };\n}\n","import { Theme } from '@mui/material/styles';\n\n// ----------------------------------------------------------------------\n\nexport default function Tooltip(theme: Theme) {\n const isLight = theme.palette.mode === 'light';\n\n return {\n MuiTooltip: {\n styleOverrides: {\n tooltip: {\n backgroundColor: theme.palette.grey[isLight ? 800 : 700]\n },\n arrow: {\n color: theme.palette.grey[isLight ? 800 : 700]\n }\n }\n }\n };\n}\n","import { Theme } from '@mui/material/styles';\n\n// ----------------------------------------------------------------------\n\nexport default function Popover(theme: Theme) {\n return {\n MuiPopover: {\n styleOverrides: {\n paper: {\n boxShadow: theme.customShadows.z12\n }\n }\n }\n };\n}\n","import { Theme } from '@mui/material/styles';\n\n// ----------------------------------------------------------------------\n\nexport default function SvgIcon(theme: Theme) {\n return {\n MuiSvgIcon: {\n styleOverrides: {\n fontSizeSmall: {\n width: 20,\n height: 20,\n fontSize: 'inherit'\n },\n fontSizeLarge: {\n width: 32,\n height: 32,\n fontSize: 'inherit'\n }\n }\n }\n };\n}\n","import { Theme } from '@mui/material/styles';\n\n// ----------------------------------------------------------------------\n\nexport default function DataGrid(theme: Theme) {\n return {\n MuiDataGrid: {\n styleOverrides: {\n root: {\n borderRadius: 0,\n border: `1px solid transparent`,\n '& .MuiTablePagination-root': {\n borderTop: 0\n },\n '& .MuiDataGrid-toolbarContainer': {\n padding: theme.spacing(2),\n backgroundColor: theme.palette.background.neutral,\n '& .MuiButton-root': {\n marginRight: theme.spacing(1.5),\n color: theme.palette.text.primary,\n '&:hover': {\n backgroundColor: theme.palette.action.hover\n }\n }\n },\n '& .MuiDataGrid-cell, .MuiDataGrid-columnsContainer': {\n borderBottom: `1px solid ${theme.palette.divider}`\n },\n '& .MuiDataGrid-columnSeparator': {\n color: theme.palette.divider\n },\n '& .MuiDataGrid-columnHeader[data-field=\"__check__\"]': {\n padding: 0\n }\n }\n }\n },\n MuiGridMenu: {\n styleOverrides: {\n root: {\n '& .MuiDataGrid-gridMenuList': {\n boxShadow: theme.customShadows.z20,\n borderRadius: theme.shape.borderRadius\n },\n '& .MuiMenuItem-root': {\n ...theme.typography.body2\n }\n }\n }\n },\n MuiGridFilterForm: {\n styleOverrides: {\n root: {\n padding: theme.spacing(1.5, 0),\n '& .MuiFormControl-root': {\n margin: theme.spacing(0, 0.5)\n },\n '& .MuiInput-root': {\n marginTop: theme.spacing(3),\n '&::before, &::after': {\n display: 'none'\n },\n '& .MuiNativeSelect-select, .MuiInput-input': {\n ...theme.typography.body2,\n padding: theme.spacing(0.75, 1),\n borderRadius: theme.shape.borderRadius,\n backgroundColor: theme.palette.background.neutral\n },\n '& .MuiSvgIcon-root': {\n right: 4\n }\n }\n }\n }\n },\n MuiGridPanelFooter: {\n styleOverrides: {\n root: {\n padding: theme.spacing(2),\n justifyContent: 'flex-end',\n '& .MuiButton-root': {\n '&:first-of-type': {\n marginRight: theme.spacing(1.5),\n color: theme.palette.text.primary,\n '&:hover': {\n backgroundColor: theme.palette.action.hover\n }\n },\n '&:last-of-type': {\n color: theme.palette.common.white,\n backgroundColor: theme.palette.primary.main,\n '&:hover': {\n backgroundColor: theme.palette.primary.dark\n }\n }\n }\n }\n }\n }\n };\n}\n","import { Theme } from '@mui/material/styles';\n\n// ----------------------------------------------------------------------\n\nexport default function Skeleton(theme: Theme) {\n return {\n MuiSkeleton: {\n defaultProps: {\n animation: 'wave'\n },\n\n styleOverrides: {\n root: {\n backgroundColor: theme.palette.background.neutral\n }\n }\n }\n };\n}\n","import { Theme } from '@mui/material/styles';\n\n// ----------------------------------------------------------------------\n\nexport default function Timeline(theme: Theme) {\n return {\n MuiTimelineDot: {\n styleOverrides: {\n root: {\n boxShadow: 'none'\n }\n }\n },\n\n MuiTimelineConnector: {\n styleOverrides: {\n root: {\n backgroundColor: theme.palette.divider\n }\n }\n }\n };\n}\n","import { alpha, Theme } from '@mui/material/styles';\n\n// ----------------------------------------------------------------------\n\nexport default function Backdrop(theme: Theme) {\n const varLow = alpha(theme.palette.grey[900], 0.48);\n const varHigh = alpha(theme.palette.grey[900], 1);\n\n return {\n MuiBackdrop: {\n styleOverrides: {\n root: {\n background: [\n `rgb(22,28,36)`,\n `-moz-linear-gradient(75deg, ${varLow} 0%, ${varHigh} 100%)`,\n `-webkit-linear-gradient(75deg, ${varLow} 0%, ${varHigh} 100%)`,\n `linear-gradient(75deg, ${varLow} 0%, ${varHigh} 100%)`\n ],\n '&.MuiBackdrop-invisible': {\n background: 'transparent'\n }\n }\n }\n }\n };\n}\n","import { Theme } from '@mui/material/styles';\n\n// ----------------------------------------------------------------------\n\nexport default function Snackbar(theme: Theme) {\n return {\n MuiSnackbarContent: {\n styleOverrides: {\n root: {}\n }\n }\n };\n}\n","import { Theme } from '@mui/material/styles';\n\n// ----------------------------------------------------------------------\n\nexport default function Progress(theme: Theme) {\n const isLight = theme.palette.mode === 'light';\n\n return {\n MuiLinearProgress: {\n styleOverrides: {\n root: {\n borderRadius: 4,\n overflow: 'hidden'\n },\n bar: {\n borderRadius: 4\n },\n colorPrimary: {\n backgroundColor: theme.palette.primary[isLight ? 'lighter' : 'darker']\n },\n buffer: {\n backgroundColor: 'transparent'\n }\n }\n }\n };\n}\n","import { Theme } from '@mui/material/styles';\n\n// ----------------------------------------------------------------------\n\nexport default function Container(theme: Theme) {\n return {\n MuiContainer: {\n styleOverrides: {\n root: {}\n }\n }\n };\n}\n","import { Theme } from '@mui/material/styles';\n\n// ----------------------------------------------------------------------\n\nexport default function Accordion(theme: Theme) {\n return {\n MuiAccordion: {\n styleOverrides: {\n root: {\n '&.Mui-expanded': {\n boxShadow: theme.customShadows.z8,\n borderRadius: theme.shape.borderRadius\n },\n '&.Mui-disabled': {\n backgroundColor: 'transparent'\n }\n }\n }\n },\n MuiAccordionSummary: {\n styleOverrides: {\n root: {\n paddingLeft: theme.spacing(2),\n paddingRight: theme.spacing(1),\n '&.Mui-disabled': {\n opacity: 1,\n color: theme.palette.action.disabled,\n '& .MuiTypography-root': {\n color: 'inherit'\n }\n }\n },\n expandIconWrapper: {\n color: 'inherit'\n }\n }\n }\n };\n}\n","import { Theme } from '@mui/material/styles';\n\n// ----------------------------------------------------------------------\n\nexport default function IconButton(theme: Theme) {\n return {\n MuiIconButton: {\n styleOverrides: {\n root: {}\n }\n }\n };\n}\n","import { Theme } from '@mui/material/styles';\n\n// ----------------------------------------------------------------------\n\nexport default function Typography(theme: Theme) {\n return {\n MuiTypography: {\n styleOverrides: {\n paragraph: {\n marginBottom: theme.spacing(2)\n },\n gutterBottom: {\n marginBottom: theme.spacing(1)\n }\n }\n }\n };\n}\n","import { alpha, Theme } from '@mui/material/styles';\n\n// ----------------------------------------------------------------------\n\nexport default function Pagination(theme: Theme) {\n return {\n MuiPaginationItem: {\n styleOverrides: {\n root: {\n '&.Mui-selected': {\n fontWeight: theme.typography.fontWeightBold\n }\n },\n textPrimary: {\n '&.Mui-selected': {\n color: theme.palette.primary.main,\n backgroundColor: alpha(theme.palette.primary.main, 0.08),\n '&:hover, &.Mui-focusVisible': {\n backgroundColor: `${alpha(theme.palette.primary.main, 0.24)} !important`\n }\n }\n },\n outlined: {\n border: `1px solid ${theme.palette.grey[500_32]}`\n },\n outlinedPrimary: {\n '&.Mui-selected': {\n backgroundColor: alpha(theme.palette.primary.main, 0.08),\n border: `1px solid ${alpha(theme.palette.primary.main, 0.24)}`\n }\n }\n }\n }\n };\n}\n","import { Theme } from '@mui/material/styles';\n\n// ----------------------------------------------------------------------\n\nexport default function ButtonGroup(theme: Theme) {\n const styleContained = (\n color: 'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'error'\n ) => ({\n props: { variant: 'contained', color },\n style: { boxShadow: theme.customShadows[color] }\n });\n\n return {\n MuiButtonGroup: {\n variants: [\n {\n props: { variant: 'contained', color: 'inherit' },\n style: { boxShadow: theme.customShadows.z8 }\n },\n styleContained('primary'),\n styleContained('secondary'),\n styleContained('info'),\n styleContained('success'),\n styleContained('warning'),\n styleContained('error'),\n\n {\n props: { disabled: true },\n style: {\n boxShadow: 'none',\n '& .MuiButtonGroup-grouped.Mui-disabled': {\n color: theme.palette.action.disabled,\n borderColor: `${theme.palette.action.disabledBackground} !important`,\n '&.MuiButton-contained': {\n backgroundColor: theme.palette.action.disabledBackground\n }\n }\n }\n }\n ],\n\n styleOverrides: {\n root: {\n '&:hover': {\n boxShadow: 'none'\n }\n }\n }\n }\n };\n}\n","import { Theme } from '@mui/material/styles';\n\n// ----------------------------------------------------------------------\n\nexport default function Breadcrumbs(theme: Theme) {\n return {\n MuiBreadcrumbs: {\n styleOverrides: {\n separator: {\n marginLeft: theme.spacing(2),\n marginRight: theme.spacing(2)\n }\n }\n }\n };\n}\n","import { Theme } from '@mui/material/styles';\n\n// ----------------------------------------------------------------------\n\nexport default function Autocomplete(theme: Theme) {\n return {\n MuiAutocomplete: {\n styleOverrides: {\n paper: {\n boxShadow: theme.customShadows.z20\n }\n }\n }\n };\n}\n","import { Theme } from '@mui/material/styles';\n\n// ----------------------------------------------------------------------\n\nexport default function ControlLabel(theme: Theme) {\n return {\n MuiFormControlLabel: {\n styleOverrides: {\n label: {\n ...theme.typography.body2\n }\n }\n },\n MuiFormHelperText: {\n styleOverrides: {\n root: {\n marginTop: theme.spacing(1)\n }\n }\n },\n MuiFormLabel: {\n styleOverrides: {\n root: {\n color: theme.palette.text.disabled\n }\n }\n }\n };\n}\n","import { Theme } from '@mui/material/styles';\n\n// ----------------------------------------------------------------------\n\nexport default function ToggleButton(theme: Theme) {\n const isLight = theme.palette.mode === 'light';\n\n return {\n MuiToggleButton: {\n styleOverrides: {\n root: {\n color: theme.palette.grey[500],\n border: `solid 1px ${theme.palette.grey[500_32]}`,\n '&.Mui-selected': {\n color: theme.palette.grey[isLight ? 600 : 0],\n backgroundColor: theme.palette.action.selected\n },\n '&.Mui-disabled': {\n color: theme.palette.grey[500_48]\n }\n }\n }\n }\n };\n}\n","import { Theme } from '@mui/material/styles';\n\n// ----------------------------------------------------------------------\n\nexport default function LoadingButton(theme: Theme) {\n return {\n MuiLoadingButton: {\n styleOverrides: {\n root: {\n '&.MuiButton-text': {\n '& .MuiLoadingButton-startIconPendingStart': {\n marginLeft: 0\n },\n '& .MuiLoadingButton-endIconPendingEnd': {\n marginRight: 0\n }\n }\n }\n }\n }\n };\n}\n","// material\nimport { alpha } from '@mui/material/styles';\nimport { Shadows } from '@mui/material/styles/shadows';\n//\nimport palette from './palette';\n\n// ----------------------------------------------------------------------\n\ninterface CustomShadowOptions {\n z1: string;\n z8: string;\n z12: string;\n z16: string;\n z20: string;\n z24: string;\n primary: string;\n secondary: string;\n info: string;\n success: string;\n warning: string;\n error: string;\n}\n\ndeclare module '@mui/material/styles' {\n interface Theme {\n customShadows: CustomShadowOptions;\n }\n interface ThemeOptions {\n customShadows?: CustomShadowOptions;\n }\n}\n\nconst LIGHT_MODE = palette.light.grey[500];\nconst DARK_MODE = '#000000';\n\nconst createShadow = (color: string): Shadows => {\n const transparent1 = alpha(color, 0.2);\n const transparent2 = alpha(color, 0.14);\n const transparent3 = alpha(color, 0.12);\n return [\n 'none',\n `0px 2px 1px -1px ${transparent1},0px 1px 1px 0px ${transparent2},0px 1px 3px 0px ${transparent3}`,\n `0px 3px 1px -2px ${transparent1},0px 2px 2px 0px ${transparent2},0px 1px 5px 0px ${transparent3}`,\n `0px 3px 3px -2px ${transparent1},0px 3px 4px 0px ${transparent2},0px 1px 8px 0px ${transparent3}`,\n `0px 2px 4px -1px ${transparent1},0px 4px 5px 0px ${transparent2},0px 1px 10px 0px ${transparent3}`,\n `0px 3px 5px -1px ${transparent1},0px 5px 8px 0px ${transparent2},0px 1px 14px 0px ${transparent3}`,\n `0px 3px 5px -1px ${transparent1},0px 6px 10px 0px ${transparent2},0px 1px 18px 0px ${transparent3}`,\n `0px 4px 5px -2px ${transparent1},0px 7px 10px 1px ${transparent2},0px 2px 16px 1px ${transparent3}`,\n `0px 5px 5px -3px ${transparent1},0px 8px 10px 1px ${transparent2},0px 3px 14px 2px ${transparent3}`,\n `0px 5px 6px -3px ${transparent1},0px 9px 12px 1px ${transparent2},0px 3px 16px 2px ${transparent3}`,\n `0px 6px 6px -3px ${transparent1},0px 10px 14px 1px ${transparent2},0px 4px 18px 3px ${transparent3}`,\n `0px 6px 7px -4px ${transparent1},0px 11px 15px 1px ${transparent2},0px 4px 20px 3px ${transparent3}`,\n `0px 7px 8px -4px ${transparent1},0px 12px 17px 2px ${transparent2},0px 5px 22px 4px ${transparent3}`,\n `0px 7px 8px -4px ${transparent1},0px 13px 19px 2px ${transparent2},0px 5px 24px 4px ${transparent3}`,\n `0px 7px 9px -4px ${transparent1},0px 14px 21px 2px ${transparent2},0px 5px 26px 4px ${transparent3}`,\n `0px 8px 9px -5px ${transparent1},0px 15px 22px 2px ${transparent2},0px 6px 28px 5px ${transparent3}`,\n `0px 8px 10px -5px ${transparent1},0px 16px 24px 2px ${transparent2},0px 6px 30px 5px ${transparent3}`,\n `0px 8px 11px -5px ${transparent1},0px 17px 26px 2px ${transparent2},0px 6px 32px 5px ${transparent3}`,\n `0px 9px 11px -5px ${transparent1},0px 18px 28px 2px ${transparent2},0px 7px 34px 6px ${transparent3}`,\n `0px 9px 12px -6px ${transparent1},0px 19px 29px 2px ${transparent2},0px 7px 36px 6px ${transparent3}`,\n `0px 10px 13px -6px ${transparent1},0px 20px 31px 3px ${transparent2},0px 8px 38px 7px ${transparent3}`,\n `0px 10px 13px -6px ${transparent1},0px 21px 33px 3px ${transparent2},0px 8px 40px 7px ${transparent3}`,\n `0px 10px 14px -6px ${transparent1},0px 22px 35px 3px ${transparent2},0px 8px 42px 7px ${transparent3}`,\n `0px 11px 14px -7px ${transparent1},0px 23px 36px 3px ${transparent2},0px 9px 44px 8px ${transparent3}`,\n `0px 11px 15px -7px ${transparent1},0px 24px 38px 3px ${transparent2},0px 9px 46px 8px ${transparent3}`\n ];\n};\n\nconst createCustomShadow = (color: string) => {\n const transparent = alpha(color, 0.24);\n return {\n z1: `0 1px 2px 0 ${transparent}`,\n z8: `0 8px 16px 0 ${transparent}`,\n z12: `0 0 2px 0 ${transparent}, 0 12px 24px 0 ${transparent}`,\n z16: `0 0 2px 0 ${transparent}, 0 16px 32px -4px ${transparent}`,\n z20: `0 0 2px 0 ${transparent}, 0 20px 40px -4px ${transparent}`,\n z24: `0 0 4px 0 ${transparent}, 0 24px 48px 0 ${transparent}`,\n primary: `0 8px 16px 0 ${alpha(palette.light.primary.main, 0.24)}`,\n info: `0 8px 16px 0 ${alpha(palette.light.info.main, 0.24)}`,\n secondary: `0 8px 16px 0 ${alpha(palette.light.secondary.main, 0.24)}`,\n success: `0 8px 16px 0 ${alpha(palette.light.success.main, 0.24)}`,\n warning: `0 8px 16px 0 ${alpha(palette.light.warning.main, 0.24)}`,\n error: `0 8px 16px 0 ${alpha(palette.light.error.main, 0.24)}`\n };\n};\n\nexport const customShadows = {\n light: createCustomShadow(LIGHT_MODE),\n dark: createCustomShadow(DARK_MODE)\n};\n\nconst shadows: {\n light: Shadows;\n dark: Shadows;\n} = {\n light: createShadow(LIGHT_MODE),\n dark: createShadow(DARK_MODE)\n};\n\nexport default shadows;\n","import { useMemo, ReactNode } from 'react';\n// material\nimport { CssBaseline } from '@mui/material';\nimport {\n createTheme,\n ThemeOptions,\n ThemeProvider,\n StyledEngineProvider\n} from '@mui/material/styles';\n// hooks\nimport useSettings from '../hooks/mui/useSettings';\n//\nimport shape from './shape';\nimport palette from './palette';\nimport typography from './typography';\nimport breakpoints from './breakpoints';\nimport componentsOverride from './overrides';\nimport shadows, { customShadows } from './shadows';\n\n// ----------------------------------------------------------------------\n\ntype ThemeConfigProps = {\n children: ReactNode;\n};\n\nexport default function ThemeConfig({ children }: ThemeConfigProps) {\n const { themeMode, themeDirection } = useSettings();\n const isLight = themeMode === 'light';\n\n const themeOptions: ThemeOptions = useMemo(\n () => ({\n //palette: isLight ? { ...palette.light, mode: 'light' } : { ...palette.dark, mode: 'dark' },\n palette: { ...palette.dark, mode: 'dark' },\n shape,\n typography,\n breakpoints,\n direction: themeDirection,\n shadows: shadows.dark,\n //shadows: isLight ? shadows.light : shadows.dark,\n //customShadows: isLight ? customShadows.light : customShadows.dark\n customShadows: customShadows.dark\n }),\n [isLight, themeDirection]\n );\n\n const theme = createTheme(themeOptions);\n theme.components = componentsOverride(theme);\n\n return (\n \n \n \n {children}\n \n \n );\n}\n","// material\nimport { useTheme } from '@mui/material/styles';\nimport { GlobalStyles as GlobalThemeStyles } from '@mui/material';\n\n// ----------------------------------------------------------------------\n\nexport default function GlobalStyles() {\n const theme = useTheme();\n\n return (\n \n );\n}\n","import { useContext } from 'react';\nimport { AuthContext } from '../../contexts/mui/JWTContext';\n// import { AuthContext } from '../contexts/AwsCognitoContext';\n// import { AuthContext } from '../contexts/Auth0Context';\n// import { AuthContext } from '../contexts/FirebaseContext';\n\n// ----------------------------------------------------------------------\n\nconst useAuth = () => {\n const context = useContext(AuthContext);\n\n if (!context) throw new Error('Auth context must be use inside AuthProvider');\n\n return context;\n};\n\nexport default useAuth;\n","import { useEffect } from 'react';\nimport { useLocation } from 'react-router-dom';\n\n// ----------------------------------------------------------------------\n\nexport default function ScrollToTop() {\n const { pathname } = useLocation();\n\n useEffect(() => {\n window.scrollTo(0, 0);\n }, [pathname]);\n\n return null;\n}\n","import { Helmet } from 'react-helmet-async';\nimport { googleAnalyticsConfig } from '../config';\n\n// ----------------------------------------------------------------------\n\nconst GA_MEASUREMENT_ID = googleAnalyticsConfig;\n\nexport default function GoogleAnalytics() {\n return (\n \n \n \n );\n}\n","import { ReactNode } from 'react';\nimport { Icon, IconifyIcon } from '@iconify/react';\nimport { SnackbarProvider } from 'notistack';\nimport infoFill from '@iconify/icons-eva/info-fill';\nimport alertCircleFill from '@iconify/icons-eva/alert-circle-fill';\nimport alertTriangleFill from '@iconify/icons-eva/alert-triangle-fill';\nimport checkmarkCircle2Fill from '@iconify/icons-eva/checkmark-circle-2-fill';\n// material\nimport { alpha, useTheme } from '@mui/material/styles';\nimport { Box, GlobalStyles } from '@mui/material';\n// @types\nimport { ColorSchema } from '../@types/theme';\n\n// ----------------------------------------------------------------------\n\nfunction SnackbarStyles() {\n const theme = useTheme();\n const isLight = theme.palette.mode === 'light';\n\n return (\n \n );\n}\n\ntype SnackbarIconProps = {\n icon: IconifyIcon;\n color: ColorSchema;\n};\n\nfunction SnackbarIcon({ icon, color }: SnackbarIconProps) {\n return (\n alpha(theme.palette[color].main, 0.16)\n }}\n >\n \n
\n );\n}\n\ntype NotistackProviderProps = {\n children: ReactNode;\n};\n\nexport default function NotistackProvider({ children }: NotistackProviderProps) {\n return (\n <>\n \n\n ,\n error: ,\n warning: ,\n info: \n }}\n >\n {children}\n \n \n );\n}\n","import { ReactNode, useMemo } from 'react';\n// material\nimport { alpha, ThemeProvider, createTheme, useTheme } from '@mui/material/styles';\n// hooks\nimport useSettings from '../hooks/mui/useSettings';\n//\nimport componentsOverride from '../theme/overrides';\n\n// ----------------------------------------------------------------------\n\ntype ThemePrimaryColorProps = {\n children: ReactNode;\n};\n\nexport default function ThemePrimaryColor({ children }: ThemePrimaryColorProps) {\n const defaultTheme = useTheme();\n const { setColor } = useSettings();\n\n const themeOptions = useMemo(\n () => ({\n ...defaultTheme,\n palette: {\n ...defaultTheme.palette,\n primary: setColor\n },\n customShadows: {\n ...defaultTheme.customShadows,\n primary: `0 8px 16px 0 ${alpha(setColor.main, 0.24)}`\n }\n }),\n [setColor, defaultTheme]\n );\n\n const theme = createTheme(themeOptions);\n theme.components = componentsOverride(theme);\n\n return {children};\n}\n","import { ReactNode } from 'react';\n// material\nimport { ThemeProvider, createTheme, useTheme } from '@mui/material/styles';\n// hooks\nimport useTranslations from '../hooks/useTranslations';\n\n// ----------------------------------------------------------------------\n\ntype ThemeLocalizationProps = {\n children: ReactNode;\n};\n\nexport default function ThemeLocalization({ children }: ThemeLocalizationProps) {\n const defaultTheme = useTheme();\n const { currentLang } = useTranslations();\n\n const theme = createTheme(defaultTheme, currentLang.systemValue);\n\n return {children};\n}\n","import { ApexOptions } from 'apexcharts';\n// material\nimport { alpha, useTheme } from '@mui/material/styles';\nimport { GlobalStyles } from '@mui/material';\n\n// ----------------------------------------------------------------------\n\nexport function BaseOptionChartStyle() {\n const theme = useTheme();\n\n const background = {\n backdropFilter: 'blur(6px)',\n WebkitBackdropFilter: 'blur(6px)', // Fix on Mobile\n backgroundColor: alpha(theme.palette.background.default, 0.72)\n };\n\n return (\n \n );\n}\n\nexport default function BaseOptionChart(): ApexOptions {\n const theme = useTheme();\n\n const LABEL_TOTAL = {\n show: true,\n label: 'Total',\n color: theme.palette.text.secondary,\n fontSize: theme.typography.subtitle2.fontSize as string,\n fontWeight: theme.typography.subtitle2.fontWeight,\n lineHeight: theme.typography.subtitle2.lineHeight\n };\n\n const LABEL_VALUE = {\n offsetY: 8,\n color: theme.palette.text.primary,\n fontSize: theme.typography.h3.fontSize as string,\n fontWeight: theme.typography.h3.fontWeight,\n lineHeight: theme.typography.h3.lineHeight\n };\n\n return {\n // Colors\n colors: [\n theme.palette.primary.main,\n theme.palette.chart.yellow[0],\n theme.palette.chart.blue[0],\n theme.palette.chart.violet[0],\n theme.palette.chart.green[0],\n theme.palette.chart.red[0]\n ],\n\n // Chart\n chart: {\n toolbar: { show: false },\n zoom: { enabled: false },\n // animations: { enabled: false },\n foreColor: theme.palette.text.disabled,\n fontFamily: theme.typography.fontFamily\n },\n\n // States\n states: {\n hover: {\n filter: {\n type: 'lighten',\n value: 0.04\n }\n },\n active: {\n filter: {\n type: 'darken',\n value: 0.88\n }\n }\n },\n\n // Fill\n fill: {\n opacity: 1,\n gradient: {\n type: 'vertical',\n shadeIntensity: 0,\n opacityFrom: 0.4,\n opacityTo: 0,\n stops: [0, 100]\n }\n },\n\n // Datalabels\n dataLabels: { enabled: false },\n\n // Stroke\n stroke: {\n width: 3,\n curve: 'smooth',\n lineCap: 'round'\n },\n\n // Grid\n grid: {\n strokeDashArray: 3,\n borderColor: theme.palette.divider\n },\n\n // Xaxis\n xaxis: {\n axisBorder: { show: false },\n axisTicks: { show: false }\n },\n\n // Markers\n markers: {\n size: 0,\n strokeColors: theme.palette.background.paper\n },\n\n // Tooltip\n tooltip: {\n x: {\n show: false\n }\n },\n\n // Legend\n legend: {\n show: true,\n fontSize: String(13),\n position: 'top',\n horizontalAlign: 'right',\n markers: {\n radius: 12\n },\n fontWeight: 500,\n itemMargin: { horizontal: 12 },\n labels: {\n colors: theme.palette.text.primary\n }\n },\n\n // plotOptions\n plotOptions: {\n // Bar\n bar: {\n columnWidth: '28%',\n borderRadius: 4\n },\n // Pie + Donut\n pie: {\n donut: {\n labels: {\n show: true,\n value: LABEL_VALUE,\n total: LABEL_TOTAL\n }\n }\n },\n // Radialbar\n radialBar: {\n track: {\n strokeWidth: '100%',\n background: theme.palette.grey[500_16]\n },\n dataLabels: {\n value: LABEL_VALUE,\n total: LABEL_TOTAL\n }\n },\n // Radar\n radar: {\n polygons: {\n fill: { colors: ['transparent'] },\n strokeColors: theme.palette.divider,\n connectorColors: theme.palette.divider\n }\n },\n // polarArea\n polarArea: {\n rings: {\n strokeColor: theme.palette.divider\n },\n spokes: {\n connectorColors: theme.palette.divider\n }\n }\n },\n\n // Responsive\n responsive: [\n {\n // sm\n breakpoint: theme.breakpoints.values.sm,\n options: {\n plotOptions: { bar: { columnWidth: '40%' } }\n }\n },\n {\n // md\n breakpoint: theme.breakpoints.values.md,\n options: {\n plotOptions: { bar: { columnWidth: '32%' } }\n }\n }\n ]\n };\n}\n","import { useState, useEffect } from 'react';\nimport { Box, Stack, Grid, IconButton, Slider } from '@mui/material';\nimport { styled, useTheme } from '@mui/material/styles';\nimport YouTube, { Options } from 'react-youtube';\nimport type { YouTubePlayer } from 'youtube-player/dist/types';\nimport PauseRounded from '@mui/icons-material/PauseRounded';\nimport PlayArrowRounded from '@mui/icons-material/PlayArrowRounded';\nimport FastForwardRounded from '@mui/icons-material/FastForwardRounded';\nimport FastRewindRounded from '@mui/icons-material/FastRewindRounded';\nimport VolumeUpRounded from '@mui/icons-material/VolumeUpRounded';\nimport VolumeDownRounded from '@mui/icons-material/VolumeDownRounded';\nimport { getYoutubeUserData, saveYoutubeUserData, YoutubeData } from './youtubeStorage';\n// ----------------------------------------------------------------------\nconst YoutubeStyle = styled(YouTube)(() => ({\n borderRadius: '20px',\n height: 400\n}));\n\nexport default function Youtube() {\n const [youtubeFunctions, setYoutubeFunctions] = useState();\n const [youtubeUserData, setYoutubeUserData] = useState(\n getYoutubeUserData() || {\n playlist: 'PLx_r3rqb7_35T_t7J2ecdu0yJU70Dhb4s',\n currentSong: 0,\n autoplay: false,\n volume: 30\n }\n );\n\n const theme = useTheme();\n const mainIconColor = theme.palette.mode === 'dark' ? '#fff' : '#000';\n const lightIconColor =\n theme.palette.mode === 'dark' ? 'rgba(255,255,255,0.4)' : 'rgba(0,0,0,0.4)';\n const [paused, setPaused] = useState(true);\n\n // https://developers.google.com/youtube/player_parameters\n const playerOptions: Options = {\n width: '280',\n height: '540',\n playerVars: {\n enablejsapi: 1,\n origin: process.env.REACT_APP_ORIGIN!,\n list: youtubeUserData.playlist,\n listType: 'playlist',\n loop: 1, // repite la lista\n rel: 0, // recomendaciones de videos apagada\n modestbranding: 1, // quita logo de youtube de la barra\n fs: 1, // quita fullscreen\n controls: 2,\n iv_load_policy: 3 // quita anotaciones del video\n }\n };\n\n useEffect(() => {\n saveYoutubeUserData(youtubeUserData);\n }, [youtubeUserData]);\n\n const handleReady = (e: { target: YouTubePlayer }) => {\n e.target.playVideoAt(youtubeUserData.currentSong);\n e.target.stopVideo();\n e.target.setVolume(youtubeUserData.volume);\n setYoutubeFunctions(e.target);\n if (youtubeUserData.autoplay) {\n youtubeFunctions?.playVideo();\n }\n };\n\n const handleVolume = (event: Event, volume: number | number[]) => {\n youtubeFunctions?.unMute();\n youtubeFunctions?.setVolume(volume as number);\n setYoutubeUserData({\n ...youtubeUserData,\n volume: volume as number\n });\n };\n\n const handleReproduction = () => {\n if (paused) {\n youtubeFunctions?.playVideo();\n } else {\n youtubeFunctions?.pauseVideo();\n }\n setPaused((paused) => !paused);\n };\n\n const handleSong = (action: 'previous' | 'next') => {\n if (action === 'next') {\n youtubeFunctions?.nextVideo();\n } else {\n youtubeFunctions?.previousVideo();\n }\n };\n\n return (\n \n \n \n {\n setPaused(false);\n const videoId = e.target.getPlaylistIndex();\n if (videoId) {\n setYoutubeUserData({\n ...youtubeUserData,\n currentSong: videoId\n });\n }\n }}\n />\n \n \n \n \n handleSong('previous')}>\n \n \n \n {paused ? (\n \n ) : (\n \n )}\n \n handleSong('next')}>\n \n \n
\n \n \n \n \n \n \n \n );\n}\n","export type YoutubeData = {\n playlist: string;\n currentSong: number;\n autoplay: boolean;\n volume: number;\n};\n\nexport const getYoutubeUserData = () => {\n let data = localStorage.getItem('youtube');\n if (data) {\n const youtubeData = JSON.parse(data);\n return youtubeData as YoutubeData;\n }\n};\n\nexport const saveYoutubeUserData = (youtubeData: YoutubeData) => {\n localStorage.setItem('youtube', JSON.stringify(youtubeData));\n};\n","import { useState, useEffect } from 'react';\nimport { Icon } from '@iconify/react';\nimport closeFill from '@iconify/icons-eva/close-fill';\nimport musicFill from '@iconify/icons-eva/music-fill';\n// material\nimport { Box, Backdrop, Paper, Tooltip, Divider, Typography, Stack } from '@mui/material';\nimport { MIconButton } from './@material-extend';\nimport Scrollbar from './Scrollbar';\nimport Youtube from './youtube/Youtube';\nimport useWordings from 'locales/wordings/useWordings';\n\nconst DRAWER_WIDTH = 300;\n\nexport default function Music() {\n const [open, setOpen] = useState(false);\n const { musicWordings } = useWordings();\n\n useEffect(() => {\n if (open) {\n document.body.style.overflow = 'hidden';\n } else {\n document.body.style.overflow = 'unset';\n }\n }, [open]);\n\n const handleToggle = () => {\n setOpen((prev) => !prev);\n };\n\n const handleClose = () => {\n setOpen(false);\n };\n\n return (\n <>\n theme.zIndex.drawer + 1 }}\n open={open}\n onClick={handleClose}\n />\n\n \n theme.customShadows.z12\n }}\n >\n \n theme.transitions.create('all'),\n '&:hover': { color: 'primary.main', bgcolor: 'transparent' }\n }}\n >\n \n \n \n \n\n theme.customShadows.z24,\n transition: (theme) => theme.transitions.create('width'),\n ...(open && { width: DRAWER_WIDTH })\n }}\n >\n \n {musicWordings.title}\n \n \n \n \n \n\n \n \n \n \n \n \n );\n}\n","import { useEffect } from 'react';\nimport { Container, Typography, Button, Avatar } from '@mui/material';\nimport BaseModal from './BaseModal';\n// hooks\nimport useWordings from 'locales/wordings/useWordings';\nimport useModal from 'hooks/useModal';\nimport { useMoralis } from 'react-moralis';\n// ----------------------------------------------------------------------\n\nconst InstallMetamaskModal = () => {\n const { metamaskInstallModalWordings } = useWordings();\n const { open, handleClose, handleOpen } = useModal();\n const { web3 } = useMoralis();\n\n useEffect(() => {\n if (!web3?.givenProvider) {\n handleOpen();\n }\n }, []);\n\n return (\n handleClose()}>\n \n \n \n {metamaskInstallModalWordings.title}\n \n \n {metamaskInstallModalWordings.descLine1}\n \n \n {metamaskInstallModalWordings.descLine2}\n \n \n {metamaskInstallModalWordings.buttonText}\n \n \n \n );\n};\n\nexport default InstallMetamaskModal;\n","import { useContext } from 'react';\n// routes\nimport Router from './routes';\n// theme\nimport ThemeConfig from './theme';\nimport GlobalStyles from './theme/globalStyles';\n// hooks\nimport useAuth from './hooks/mui/useAuth';\n// components\nimport ScrollToTop from './components/ScrollToTop';\nimport GoogleAnalytics from './components/GoogleAnalytics';\nimport NotistackProvider from './components/NotistackProvider';\nimport ThemePrimaryColor from './components/ThemePrimaryColor';\nimport ThemeLocalization from './components/ThemeLocalization';\nimport { BaseOptionChartStyle } from './components/charts/BaseOptionChart';\nimport LoadingScreen, { ProgressBarStyle } from './components/LoadingScreen';\nimport ServerErrorBody from './components/modals/ServerErrorBody';\nimport BaseModal from './components/modals/BaseModal';\nimport Music from 'components/Music';\n// context\nimport { ModalServerErrorContext } from 'contexts/ModalServerErrorContext';\nimport InstallMetamaskModal from 'components/modals/MetamaskInstallModal';\n\n// ----------------------------------------------------------------------\n\nexport default function App() {\n const { isInitialized } = useAuth();\n const { handleClose, open } = useContext(ModalServerErrorContext);\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n handleClose()}>\n \n \n {isInitialized ? : }\n \n \n \n \n );\n}\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://cra.link/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.0/8 are considered localhost for IPv4.\n window.location.hostname.match(/^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/)\n);\n\ntype Config = {\n onSuccess?: (registration: ServiceWorkerRegistration) => void;\n onUpdate?: (registration: ServiceWorkerRegistration) => void;\n};\n\nexport function register(config?: 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://cra.link/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: string, config?: 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://cra.link/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: string, config?: Config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl, {\n headers: { 'Service-Worker': 'script' }\n })\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('No internet connection found. App is running in offline mode.');\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready\n .then((registration) => {\n registration.unregister();\n })\n .catch((error) => {\n console.error(error.message);\n });\n }\n}\n","import { ReportHandler } from 'web-vitals';\n\nconst reportWebVitals = (onPerfEntry?: ReportHandler) => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry);\n getFID(onPerfEntry);\n getFCP(onPerfEntry);\n getLCP(onPerfEntry);\n getTTFB(onPerfEntry);\n });\n }\n};\n\nexport default reportWebVitals;\n","// mock api\nimport './_apis_';\n\n// i18n\nimport './locales/i18n';\n\n// highlight\nimport './utils/highlight';\n\n// scroll bar\nimport 'simplebar/src/simplebar.css';\n\n// map\nimport 'mapbox-gl/dist/mapbox-gl.css';\n\n// lightbox\nimport 'react-image-lightbox/style.css';\n\n// editor\nimport 'react-quill/dist/quill.snow.css';\nimport 'react-draft-wysiwyg/dist/react-draft-wysiwyg.css';\n\n// slick-carousel\nimport 'slick-carousel/slick/slick.css';\nimport 'slick-carousel/slick/slick-theme.css';\n\n// lazy image\nimport 'lazysizes';\nimport 'lazysizes/plugins/attrchange/ls.attrchange';\nimport 'lazysizes/plugins/object-fit/ls.object-fit';\nimport 'lazysizes/plugins/parent-fit/ls.parent-fit';\n\nimport ReactDOM from 'react-dom';\nimport { BrowserRouter } from 'react-router-dom';\nimport { HelmetProvider } from 'react-helmet-async';\nimport { Provider as ReduxProvider } from 'react-redux';\nimport { PersistGate } from 'redux-persist/lib/integration/react';\n// material\nimport AdapterDateFns from '@mui/lab/AdapterDateFns';\nimport LocalizationProvider from '@mui/lab/LocalizationProvider';\n// redux\nimport { store, persistor } from './redux/store';\n// contexts\nimport { SettingsProvider } from './contexts/SettingsContext';\nimport { CollapseDrawerProvider } from './contexts/mui/CollapseDrawerContext';\nimport { ModalServerErrorProvider } from './contexts/ModalServerErrorContext';\nimport { MaintenanceProvider } from './contexts/MaintenanceContext';\n// components\nimport LoadingScreen from './components/LoadingScreen';\n\n// Check our docs\n// https://docs-minimals.vercel.app/authentication/ts-version\n\nimport { AuthProvider } from './contexts/mui/JWTContext';\n// import { AuthProvider } from './contexts/AwsCognitoContext';\n// import { AuthProvider } from './contexts/Auth0Context';\n// import { AuthProvider } from './contexts/FirebaseContext';\n\n//\n\n//Moralis Proveder\nimport { MoralisProvider } from 'react-moralis';\n// ----------------------------------------------------------------------\n\nimport App from './App';\nimport * as serviceWorkerRegistration from './serviceWorkerRegistration';\nimport reportWebVitals from './reportWebVitals';\nimport { ManagerProvider } from 'contexts/ManagerContext';\nimport { TokenTVCProvider } from 'contexts/TokenTVCContext';\nimport { CharacterNFTProvider } from 'contexts/CharacterNFTContext';\n\nconst moralisConfig = {\n appId: process.env.REACT_APP_APP_ID || '',\n serverUrl: process.env.REACT_APP_SERVER_URL || ''\n};\n\nReactDOM.render(\n \n \n } persistor={persistor}>\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 document.getElementById('root')\n);\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://cra.link/PWA\nserviceWorkerRegistration.unregister();\n\n// If you want to start measuring performance in your app, pass a function\n// to log results (for example: reportWebVitals(console.log))\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\nreportWebVitals();\n","import { forwardRef } from 'react';\n// material\nimport { IconButton, IconButtonProps } from '@mui/material';\n//\nimport { ButtonAnimate } from '../animate';\n\n// ----------------------------------------------------------------------\n\nconst MIconButton = forwardRef(\n ({ children, ...other }, ref) => (\n \n \n {children}\n \n \n )\n);\n\nexport default MIconButton;\n","import { ReactNode } from 'react';\n// material\nimport { Breakpoint, Theme, useMediaQuery } from '@mui/material';\n\n// ----------------------------------------------------------------------\n\ntype MHiddenProps = {\n children: ReactNode;\n width:\n | 'xsDown'\n | 'smDown'\n | 'mdDown'\n | 'lgDown'\n | 'xlDown'\n | 'xsUp'\n | 'smUp'\n | 'mdUp'\n | 'lgUp'\n | 'xlUp';\n};\n\nexport default function MHidden({ width, children }: MHiddenProps) {\n const breakpoint = width.substring(0, 2) as Breakpoint;\n const hiddenUp = useMediaQuery((theme) => theme.breakpoints.up(breakpoint));\n const hiddenDown = useMediaQuery((theme) => theme.breakpoints.down(breakpoint));\n\n if (width.includes('Down')) {\n return hiddenDown ? null : <>{children};\n }\n\n if (width.includes('Up')) {\n return hiddenUp ? null : <>{children};\n }\n\n return null;\n}\n","import { any } from 'prop-types';\nimport { ReactNode, createContext, useState, useEffect } from 'react';\nimport { useChain, useMoralis, useMoralisCloudFunction } from 'react-moralis';\nimport useLogin from 'hooks/useLogin';\n\n// ----------------------------------------------------------------------\n\ninterface Manager {\n name: string;\n age: number | unknown;\n especiality: string;\n tokenId: string;\n hasCredential: boolean;\n urlImageCharacter?: string;\n urlImageManager?: string;\n managerAvatarId?: number;\n}\n\nexport type ManagerProps = {\n manager: Manager;\n setManager: Function;\n update: Boolean;\n setUpdate: Function;\n getCredential: Function;\n};\n\nconst initialState: ManagerProps = {\n setManager: () => {},\n getCredential: () => {},\n update: false,\n setUpdate: () => {},\n manager: {\n name: '',\n age: null,\n especiality: '',\n tokenId: '',\n hasCredential: false,\n urlImageCharacter: '',\n urlImageManager: '',\n managerAvatarId: 0\n }\n};\n\nconst ManagerContext = createContext(initialState);\n\ntype ManagerProviderProps = {\n children: ReactNode;\n};\n\nfunction ManagerProvider({ children }: ManagerProviderProps) {\n const { user, endSession, initSession } = useLogin();\n const [update, setUpdate] = useState(initialState.update);\n const [manager, setManager] = useState(initialState.manager);\n\n const {\n fetch: getCredential,\n data: getData,\n error: getCredentialError,\n isLoading: getCredentialIsLoading\n } = useMoralisCloudFunction('getManager', {\n userAddress: user?.attributes.ethAddress\n });\n\n useEffect(() => {\n if (getData) {\n const res = getData as Manager;\n setManager(res);\n }\n }, [getData]);\n\n useEffect(() => {\n if (update) getCredential();\n setUpdate(false);\n }, [update]);\n\n return (\n \n {children}\n \n );\n}\n\nexport { ManagerProvider, ManagerContext };\n","import useLogin from 'hooks/useLogin';\nimport { ReactNode, createContext, useState, useEffect } from 'react';\nimport { useMoralisCloudFunction } from 'react-moralis';\n\n// ----------------------------------------------------------------------\n\nexport type TokenTVCProps = {\n TVCBalance: number;\n setTVCBalance: Function;\n getTVCBalance: Function;\n};\n\nconst initialState: TokenTVCProps = {\n TVCBalance: 0,\n setTVCBalance: Function,\n getTVCBalance: Function\n};\n\nconst TokenTVCContext = createContext(initialState);\n\ntype TokenTVCProviderProps = {\n children: ReactNode;\n};\n\nfunction TokenTVCProvider({ children }: TokenTVCProviderProps) {\n const { user, isAuthenticated } = useLogin();\n const { data, error, fetch } = useMoralisCloudFunction('getManagerBalance', undefined, {\n autoFetch: false\n });\n const [TVCBalance, setTVCBalance] = useState(0);\n\n const getTVCBalance = async () => {\n if (user && isAuthenticated) {\n await fetch();\n }\n };\n\n useEffect(() => {\n TVCBalance === 0 && getTVCBalance();\n }, [user, isAuthenticated]);\n\n useEffect(() => {\n if (data) {\n const res = data as { balance: number };\n setTVCBalance(res.balance);\n }\n }, [data]);\n\n useEffect(() => {\n if (error) console.log('errorTokenTVCContext', error);\n }, [error]);\n\n return (\n \n {children}\n \n );\n}\n\nexport { TokenTVCProvider, TokenTVCContext };\n","import { useTranslation } from 'react-i18next';\n// material\nimport { enUS, esES, ptBR } from '@mui/material/locale';\n\n// ----------------------------------------------------------------------\n\nconst LANGS = [\n {\n label: 'English',\n value: 'en',\n systemValue: enUS,\n icon: '/static/icons/ic_flag_en.svg'\n },\n {\n label: 'Español',\n value: 'es',\n systemValue: esES,\n icon: '/static/icons/ic_flag_es.svg'\n }\n /* {\n label: 'Português',\n value: 'br',\n systemValue: ptBR,\n icon: '/static/icons/ic_flag_br.svg'\n } */\n];\n\nexport default function useTranslations() {\n const { i18n, t: translate } = useTranslation();\n const langStorage = localStorage.getItem('i18nextLng');\n const currentLang = LANGS.find((_lang) => _lang.value === langStorage) || LANGS[1];\n\n const handleChangeLanguage = (newlang: string) => {\n i18n.changeLanguage(newlang);\n };\n\n return {\n onChangeLang: handleChangeLanguage,\n translate,\n currentLang,\n allLang: LANGS\n };\n}\n","import { ReactChild, ReactChildren } from 'react';\nimport Dialog from '@mui/material/Dialog';\nimport DialogContent from '@mui/material/DialogContent';\nimport DialogTitle from '@mui/material/DialogTitle';\nimport IconButton from '@mui/material/IconButton';\nimport { Icon } from '@iconify/react';\n\ninterface ModalProps {\n children: ReactChild | ReactChildren;\n open: boolean;\n handleClose: () => {};\n closable?: boolean;\n}\n\nconst BaseModal = ({ children, handleClose, open, closable = true }: ModalProps) =>\n closable ? (\n \n \n theme.palette.grey[500]\n }}\n >\n \n \n \n {children}\n \n ) : (\n \n \n {children}\n \n );\n\nexport default BaseModal;\n","import { useState } from 'react';\nimport BaseModal from '../components/modals/BaseModal';\n\nexport default function useModal() {\n const [open, setOpen] = useState(false);\n\n const handleOpen = () => {\n setOpen(true);\n };\n const handleClose = () => {\n setOpen(false);\n };\n\n return {\n open,\n handleOpen,\n handleClose,\n BaseModal\n };\n}\n","import { ReactNode, createContext, useState, useEffect } from 'react';\nimport { useMoralisCloudFunction } from 'react-moralis';\n\n// ----------------------------------------------------------------------\n\nexport type MaintenanceProps = {\n maintenanceGral: boolean;\n maintenanceMyCollection: boolean;\n maintenanceMyMysteryBox: boolean;\n maintenancePlayGame: boolean;\n maintenanceOvertime: boolean;\n maintenanceDuels: boolean;\n maintenanceShows: boolean;\n maintenanceSchool: boolean;\n maintenanceCreateManager: boolean;\n maintenanceGetManager: boolean;\n maintenanceUpdateManager: boolean;\n maintenanceGetBalance: boolean;\n};\n\nconst initialState: MaintenanceProps = {\n maintenanceGral: false,\n maintenanceMyCollection: false,\n maintenanceMyMysteryBox: false,\n maintenancePlayGame: false,\n maintenanceOvertime: false,\n maintenanceDuels: false,\n maintenanceShows: false,\n maintenanceSchool: false,\n maintenanceCreateManager: false,\n maintenanceGetManager: false,\n maintenanceUpdateManager: false,\n maintenanceGetBalance: false\n};\n\nconst MaintenanceContext = createContext(initialState);\n\ntype MaintenanceProviderProps = {\n children: ReactNode;\n};\n\nfunction MaintenanceProvider({ children }: MaintenanceProviderProps) {\n const { data, error } = useMoralisCloudFunction('getStatus');\n const [maintenanceGral, setMaintenanceGral] = useState(false);\n const [maintenanceMyCollection, setMaintenanceMyCollection] = useState(false);\n const [maintenanceMyMysteryBox, setMaintenanceMyMysteryBox] = useState(false);\n const [maintenancePlayGame, setMaintenancePlayGame] = useState(false);\n const [maintenanceOvertime, setMaintenanceOvertime] = useState(false);\n const [maintenanceDuels, setMaintenanceDuels] = useState(false);\n const [maintenanceShows, setMaintenanceShows] = useState(false);\n const [maintenanceSchool, setMaintenanceSchool] = useState(false);\n const [maintenanceCreateManager, setMaintenanceCreateManager] = useState(false);\n const [maintenanceGetManager, setMaintenanceGetManager] = useState(false);\n const [maintenanceGetBalance, setMaintenanceGetBalance] = useState(false);\n const [maintenanceUpdateManager, setMaintenanceUpdateManager] = useState(false);\n\n useEffect(() => {\n if (data) {\n const res = data as MaintenanceProps;\n setMaintenanceGral(res.maintenanceGral);\n setMaintenanceMyCollection(res.maintenanceMyCollection);\n setMaintenanceMyMysteryBox(res.maintenanceMyMysteryBox);\n setMaintenancePlayGame(res.maintenancePlayGame);\n setMaintenanceOvertime(res.maintenanceOvertime);\n setMaintenanceDuels(res.maintenanceDuels);\n setMaintenanceShows(res.maintenanceShows);\n setMaintenanceSchool(res.maintenanceSchool);\n setMaintenanceCreateManager(res.maintenanceCreateManager);\n setMaintenanceGetManager(res.maintenanceGetManager);\n setMaintenanceGetBalance(res.maintenanceGetBalance);\n setMaintenanceUpdateManager(res.maintenanceUpdateManager);\n }\n }, [data]);\n\n useEffect(() => {\n if (error) console.log('errorMaintenanceContext', error);\n }, [error]);\n\n return (\n \n {children}\n \n );\n}\n\nexport { MaintenanceProvider, MaintenanceContext };\n","import { utils } from 'ethers';\nimport { Contract } from '@ethersproject/contracts';\nimport Characters from './Characters.json';\nimport MysteryBox from './MysteryBox.json';\nimport Promocode from './Promocode.json';\n\nconst charactersContractAddress = process.env.REACT_APP_ADDRESS_CHARACTERS!;\nconst charactersInterface = new utils.Interface(Characters.abi);\nconst charactersContract = new Contract(charactersContractAddress, charactersInterface);\n\nconst mysteryBoxContractAddress = process.env.REACT_APP_ADDRESS_MYSTERYBOX!;\nconst mysteryBoxInterface = new utils.Interface(MysteryBox.abi);\nconst mysteryBoxContract = new Contract(mysteryBoxContractAddress, mysteryBoxInterface);\n\nconst promocodeContractAddress = process.env.REACT_APP_ADDRESS_PROMOCODES!;\nconst promocodeInterface = new utils.Interface(Promocode.abi);\nconst promocodeContract = new Contract(promocodeContractAddress, promocodeInterface);\n\nconst contractConfig = {\n characters: {\n contract: charactersContract,\n abi: Characters.abi,\n interface: charactersInterface,\n address: charactersContractAddress,\n functions: {\n buyMysteryBoxNative: 'buyMysteryBoxNative',\n buyMysteryBoxTVC: 'buyMysteryBoxTVC'\n }\n },\n mysteryBox: {\n contract: mysteryBoxContract,\n abi: MysteryBox.abi,\n interface: mysteryBoxInterface,\n address: mysteryBoxContractAddress,\n functions: {\n mysteryBoxDetails: 'mysteryBoxDetails'\n }\n },\n promocode: {\n contract: promocodeContract,\n abi: Promocode.abi,\n interface: promocodeInterface,\n address: promocodeContractAddress,\n functions: {\n validateCode: 'validateCode'\n }\n }\n};\n\nexport default contractConfig;\n","import SimpleBarReact, { Props } from 'simplebar-react';\n// material\nimport { alpha, styled } from '@mui/material/styles';\nimport { Box, BoxProps } from '@mui/material';\n\n// ----------------------------------------------------------------------\n\nconst RootStyle = styled('div')(({ theme }) => ({\n flexGrow: 1,\n height: '100%',\n overflow: 'hidden'\n}));\n\nconst SimpleBarStyle = styled(SimpleBarReact)(({ theme }) => ({\n maxHeight: '100%',\n '& .simplebar-scrollbar': {\n '&:before': {\n backgroundColor: alpha(theme.palette.grey[600], 0.48)\n },\n '&.simplebar-visible:before': {\n opacity: 1\n }\n },\n '& .simplebar-track.simplebar-vertical': {\n width: 10\n },\n '& .simplebar-track.simplebar-horizontal .simplebar-scrollbar': {\n height: 6\n },\n '& .simplebar-mask': {\n zIndex: 'inherit'\n }\n}));\n\n// ----------------------------------------------------------------------\n\nexport default function Scrollbar({ children, sx, ...other }: BoxProps & Props) {\n const isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(\n navigator.userAgent\n );\n\n if (isMobile) {\n return (\n \n {children}\n \n );\n }\n\n return (\n \n \n {children}\n \n \n );\n}\n","import { useContext } from 'react';\nimport { SettingsContext } from '../../contexts/SettingsContext';\n\n// ----------------------------------------------------------------------\n\nconst useSettings = () => useContext(SettingsContext);\n\nexport default useSettings;\n","import { useState } from 'react';\nimport { formatEther } from '@ethersproject/units';\nimport { Moralis } from 'moralis';\nimport Web3 from 'web3';\n\nconst providerURL = process.env.REACT_APP_PROVIDER_URL || 'http://localhost:7545';\nconst web3 = new Web3(Web3.givenProvider || new Web3.providers.HttpProvider(providerURL));\nexport default function useUser() {\n const [balance, setBalance] = useState();\n\n const getBalance = async (address: string) => {\n await web3.eth.getBalance(address, function (err: Error, result: any) {\n if (err) {\n console.log(err);\n } else {\n setBalance(result && formatEther(result));\n }\n });\n };\n\n const listenToUpdate = async (address: string) => {\n let query = new Moralis.Query('EthTransactions');\n let subscription = await query.subscribe();\n\n subscription.on('create', (object) => {\n getBalance(address);\n });\n };\n return {\n balance,\n listenToUpdate,\n getBalance\n };\n}\n","export const firebaseConfig = {\n apiKey: process.env.REACT_APP_FIREBASE_API_KEY,\n authDomain: process.env.REACT_APP_FIREBASE_AUTH_DOMAIN,\n databaseURL: process.env.REACT_APP_FIREBASE_DATABASE_URL,\n projectId: process.env.REACT_APP_FIREBASE_PROJECT_ID,\n storageBucket: process.env.REACT_APP_FIREBASE_STORAGE_BUCKET,\n messagingSenderId: process.env.REACT_APP_FIREBASE_MESSAGING_SENDER_ID,\n appId: process.env.REACT_APP_FIREBASE_APPID,\n measurementId: process.env.REACT_APP_FIREBASE_MEASUREMENT_ID\n};\n\nexport const cognitoConfig = {\n userPoolId: process.env.REACT_APP_AWS_COGNITO_USER_POOL_ID,\n clientId: process.env.REACT_APP_AWS_COGNITO_CLIENT_ID\n};\n\nexport const auth0Config = {\n clientId: process.env.REACT_APP_AUTH0_CLIENT_ID,\n domain: process.env.REACT_APP_AUTH0_DOMAIN\n};\n\nexport const mapConfig = process.env.REACT_APP_MAP_MAPBOX;\n\nexport const googleAnalyticsConfig = process.env.REACT_APP_GA_MEASUREMENT_ID;\n","import { ReactNode, createContext } from 'react';\n// hooks\nimport useLocalStorage from '../hooks/mui/useLocalStorage';\n// theme\nimport palette from '../theme/palette';\n// @type\nimport { ThemeMode, ThemeDirection, ThemeColor, SettingsContextProps } from '../@types/settings';\n\n// ----------------------------------------------------------------------\n\nconst PRIMARY_COLOR = [\n // DEFAULT\n {\n name: 'default',\n ...palette.light.primary\n },\n // PURPLE\n {\n name: 'purple',\n lighter: '#EBD6FD',\n light: '#B985F4',\n main: '#7635dc',\n dark: '#431A9E',\n darker: '#200A69',\n contrastText: '#fff'\n },\n // CYAN\n {\n name: 'cyan',\n lighter: '#D1FFFC',\n light: '#76F2FF',\n main: '#1CCAFF',\n dark: '#0E77B7',\n darker: '#053D7A',\n contrastText: palette.light.grey[800]\n },\n // BLUE\n {\n name: 'blue',\n lighter: '#CCDFFF',\n light: '#6697FF',\n main: '#0045FF',\n dark: '#0027B7',\n darker: '#00137A',\n contrastText: '#fff'\n },\n // ORANGE\n {\n name: 'orange',\n lighter: '#FEF4D4',\n light: '#FED680',\n main: '#fda92d',\n dark: '#B66816',\n darker: '#793908',\n contrastText: palette.light.grey[800]\n },\n // RED\n {\n name: 'red',\n lighter: '#FFE3D5',\n light: '#FFC1AC',\n main: '#FF3030',\n dark: '#B71833',\n darker: '#7A0930',\n contrastText: '#fff'\n }\n];\n\nfunction SetColor(themeColor: ThemeColor) {\n let color;\n const DEFAULT = PRIMARY_COLOR[0];\n const PURPLE = PRIMARY_COLOR[1];\n const CYAN = PRIMARY_COLOR[2];\n const BLUE = PRIMARY_COLOR[3];\n const ORANGE = PRIMARY_COLOR[4];\n const RED = PRIMARY_COLOR[5];\n\n switch (themeColor) {\n case 'purple':\n color = PURPLE;\n break;\n case 'cyan':\n color = CYAN;\n break;\n case 'blue':\n color = BLUE;\n break;\n case 'orange':\n color = ORANGE;\n break;\n case 'red':\n color = RED;\n break;\n default:\n color = DEFAULT;\n }\n return color;\n}\n\nconst initialState: SettingsContextProps = {\n themeMode: 'dark',\n themeDirection: 'ltr',\n themeColor: 'cyan',\n themeStretch: false,\n onChangeMode: () => {},\n onChangeDirection: () => {},\n onChangeColor: () => {},\n onToggleStretch: () => {},\n setColor: PRIMARY_COLOR[2],\n colorOption: []\n};\n\nconst SettingsContext = createContext(initialState);\n\ntype SettingsProviderProps = {\n children: ReactNode;\n};\n\nfunction SettingsProvider({ children }: SettingsProviderProps) {\n const [settings, setSettings] = useLocalStorage('settings', {\n themeMode: initialState.themeMode,\n themeDirection: initialState.themeDirection,\n themeColor: initialState.themeColor,\n themeStretch: initialState.themeStretch\n });\n\n const onChangeMode = (event: React.ChangeEvent) => {\n setSettings({\n ...settings,\n themeMode: (event.target as HTMLInputElement).value as ThemeMode\n });\n };\n\n const onChangeDirection = (event: React.ChangeEvent) => {\n setSettings({\n ...settings,\n themeDirection: (event.target as HTMLInputElement).value as ThemeDirection\n });\n };\n\n const onChangeColor = (event: React.ChangeEvent) => {\n setSettings({\n ...settings,\n themeColor: (event.target as HTMLInputElement).value as ThemeColor\n });\n };\n\n const onToggleStretch = () => {\n setSettings({\n ...settings,\n themeStretch: !settings.themeStretch\n });\n };\n\n return (\n ({\n name: color.name,\n value: color.main\n })),\n // Stretch\n onToggleStretch\n }}\n >\n {children}\n \n );\n}\n\nexport { SettingsProvider, SettingsContext };\n","import { useState, useEffect } from 'react';\n\n// ----------------------------------------------------------------------\n\nexport default function useLocalStorage(key: string, defaultValue: ValueType) {\n const [value, setValue] = useState(() => {\n const storedValue = localStorage.getItem(key);\n return storedValue === null ? defaultValue : JSON.parse(storedValue);\n });\n\n useEffect(() => {\n const listener = (e: StorageEvent) => {\n if (e.storageArea === localStorage && e.key === key) {\n setValue(e.newValue ? JSON.parse(e.newValue) : e.newValue);\n }\n };\n window.addEventListener('storage', listener);\n\n return () => {\n window.removeEventListener('storage', listener);\n };\n }, [key, defaultValue]);\n\n const setValueInLocalStorage = (newValue: ValueType) => {\n setValue((currentValue: any) => {\n const result = typeof newValue === 'function' ? newValue(currentValue) : newValue;\n localStorage.setItem(key, JSON.stringify(result));\n return result;\n });\n };\n\n return [value, setValueInLocalStorage];\n}\n","import useTranslations from '../../hooks/useTranslations';\n\nconst useWordings = () => {\n const { translate } = useTranslations();\n\n const menuWordings = {\n shop: translate('menu.shop'),\n infoShop: translate('menu.infoShop'),\n myMysteryBox: translate('menu.myMysteryBox'),\n myCollection: translate('menu.myCollection'),\n playGame: translate('menu.playGame')\n };\n\n const offerWordings = {\n mysteryBox: translate('offer.mysteryBox'),\n fromOnly: translate('offer.fromOnly'),\n buyNow: translate('offer.buyNow')\n };\n\n const boxesWordings = {\n basic: translate('boxes.basic'),\n common: translate('boxes.common'),\n premium: translate('boxes.premium'),\n lowCharacteristics: translate('boxes.lowCharacteristics'),\n highCharacteristics: translate('boxes.highCharacteristics'),\n extremeCharacteristics: translate('boxes.extremeCharacteristics'),\n available: translate('boxes.available'),\n new: translate('boxes.new'),\n buy: translate('boxes.buy'),\n open: translate('boxes.open')\n };\n\n const nftWordings = {\n singer: translate('nft.singer'),\n energy: translate('nft.energy'),\n talent: translate('nft.talent'),\n moral: translate('nft.moral'),\n silver: translate('nft.silver'),\n silverBrown: translate('nft.silverBrown'),\n gold: translate('nft.gold'),\n goldRose: translate('nft.goldRose'),\n platinum: translate('nft.platinum'),\n platinumFire: translate('nft.platinumFire'),\n diamond: translate('nft.diamond'),\n apprentice: translate('nft.apprentice'),\n amateur: translate('nft.amateur'),\n professional: translate('nft.professional'),\n legend: translate('nft.legend')\n };\n\n const managerWordings = {\n manager: translate('manager.manager'),\n title: translate('manager.title'),\n desc1: translate('manager.desc1'),\n desc2: translate('manager.desc2'),\n buttonText: translate('manager.buttonText')\n };\n\n const credentialWording = {\n back: {\n name: translate('credential.back.name'),\n age: translate('credential.back.age'),\n speciality: translate('credential.back.speciality')\n },\n credential: {\n obtain: translate('credential.credential.obtain'),\n update: translate('credential.credential.update')\n }\n };\n\n const discountOrderModalWordings = {\n title: translate('discountOrderModal.title'),\n descLine1: translate('discountOrderModal.descLine1'),\n discountCodes: translate('discountOrderModal.discountCodes'),\n apply: translate('discountOrderModal.apply'),\n subTotal: translate('discountOrderModal.subTotal'),\n total: translate('discountOrderModal.total'),\n discount: translate('discountOrderModal.discount'),\n buttonText: translate('discountOrderModal.buttonText')\n };\n\n const purchaseCongratsModalWordings = {\n title: translate('purchaseCongratsModal.title'),\n descLine1: translate('purchaseCongratsModal.descLine1'),\n descLine2: translate('purchaseCongratsModal.descLine2'),\n buttonText: translate('purchaseCongratsModal.buttonText')\n };\n\n const purchaseErrorModalWordings = {\n title: translate('purchaseErrorModal.title'),\n descLine1: translate('purchaseErrorModal.descLine1'),\n buttonText: translate('purchaseErrorModal.buttonText')\n };\n\n const serverErrorModalWordings = {\n title: translate('serverErrorModal.title'),\n descLine1: translate('serverErrorModal.descLine1'),\n descLine2: translate('serverErrorModal.descLine2'),\n descLine3: translate('serverErrorModal.descLine3')\n };\n\n const limitOvertimeModalWordings = {\n title: translate('limitOvertime.title'),\n announce: translate('limitOvertime.announce'),\n descLine1: translate('limitOvertime.descLine1'),\n button: translate('limitOvertime.button')\n };\n\n const limitOvertimeByUserModalWordings = {\n title: translate('limitOvertimeByUser.title'),\n titleGetCred: translate('limitOvertimeByUser.titleGetCred'),\n announce: translate('limitOvertimeByUser.announce'),\n descLine1: translate('limitOvertimeByUser.descLine1'),\n button: translate('limitOvertimeByUser.button')\n };\n\n const metamaskModalWordings = {\n title: translate('metamaskModal.title'),\n descLine1: translate('metamaskModal.descLine1'),\n descLine2: translate('metamaskModal.descLine2'),\n buttonText: translate('metamaskModal.buttonText')\n };\n\n const metamaskMyCollectionModalWordings = {\n title: translate('metamaskMyCollectionModal.title'),\n descLine1: translate('metamaskMyCollectionModal.descLine1'),\n descLine2: translate('metamaskMyCollectionModal.descLine2'),\n buttonText: translate('metamaskMyCollectionModal.buttonText')\n };\n\n const metamaskInstallModalWordings = {\n title: translate('metamaskInstallModal.title'),\n descLine1: translate('metamaskInstallModal.descLine1'),\n descLine2: translate('metamaskInstallModal.descLine2'),\n buttonText: translate('metamaskInstallModal.buttonText')\n };\n\n const openNFTModalWordings = {\n title: translate('openNFTModal.title'),\n descLine1: translate('openNFTModal.descLine1'),\n buttonText: translate('openNFTModal.buttonText')\n };\n\n const emptyMysteryBoxWordings = {\n title: translate('emptyMysteryBox.title'),\n descLine1: translate('emptyMysteryBox.descLine1'),\n descLine2: translate('emptyMysteryBox.descLine2')\n };\n\n const emptyNFTWordings = {\n title: translate('emptyNFT.title'),\n descLine1: translate('emptyNFT.descLine1'),\n descLine2: translate('emptyNFT.descLine2')\n };\n\n const maintenanceWordings = {\n title: translate('maintenance.title'),\n descLine1: translate('maintenance.descLine1'),\n descLine2: translate('maintenance.descLine2')\n };\n\n const sessionWordings = {\n login: translate('session.login'),\n disconnect: translate('session.disconnect'),\n connect: translate('session.connect'),\n signMessage: translate('session.signMessage')\n };\n\n const bannerWordings = {\n title: translate('banner.title'),\n content: translate('banner.content')\n };\n\n const invalidChainWordings = {\n title: translate('invalidChain.title'),\n descLine1: translate('invalidChain.descLine1')\n };\n\n const processingTranslationWording = {\n title: translate('processingTranslationModal.content')\n };\n\n const availableStatusWordings = {\n available: translate('availableStatus.available'),\n new: translate('availableStatus.new'),\n soldOut: translate('availableStatus.soldOut')\n };\n\n const page404Wordings = {\n title: translate('page404.title'),\n descLine1: translate('page404.descLine1'),\n descLine2: translate('page404.descLine2'),\n buttonText: translate('page404.buttonText')\n };\n\n const labelWordings = {\n limitedEdition: translate('labels.limitedEdition'),\n new: translate('labels.new'),\n comingSoon: translate('labels.comingSoon')\n };\n\n const boxPendingAlert = {\n title: translate('boxPendingAlert.title'),\n content: translate('boxPendingAlert.content')\n };\n\n const timeWordings = {\n hours: translate('time.hours'),\n hour: translate('time.hour'),\n minutes: translate('time.minutes'),\n minute: translate('time.minute'),\n seconds: translate('time.seconds'),\n second: translate('time.second')\n };\n\n const musicWordings = {\n title: translate('music.title')\n };\n\n const whiteListAnnounceWordings = {\n title: translate('announces.whiteList.title'),\n description1: translate('announces.whiteList.description1'),\n description2: translate('announces.whiteList.description2'),\n date: {\n title: translate('announces.whiteList.date.title'),\n value: translate('announces.whiteList.date.value')\n },\n listing: {\n title: translate('announces.whiteList.listing.title'),\n value: translate('announces.whiteList.listing.value')\n },\n preSale: {\n title: translate('announces.whiteList.preSale.title'),\n value: translate('announces.whiteList.preSale.value')\n },\n btn: {\n cancelParticipation: translate('announces.whiteList.btn.cancelParticipation'),\n acceptParticipation: translate('announces.whiteList.btn.acceptParticipation'),\n acceptResponse: translate('announces.whiteList.btn.acceptResponse'),\n cancelResponse: translate('announces.whiteList.btn.cancelResponse')\n },\n selected: {\n rejected: translate('announces.whiteList.selected.rejected'),\n accepted: translate('announces.whiteList.selected.accepted')\n },\n modal: {\n base: translate('announces.whiteList.modal.base'),\n title: {\n acceptTitle: translate('announces.whiteList.modal.title.acceptTitle'),\n declineTitle: translate('announces.whiteList.modal.title.declineTitle')\n },\n description: {\n acceptDescription: translate('announces.whiteList.modal.description.acceptDescription'),\n declineDescription: translate('announces.whiteList.modal.description.declineDescription')\n }\n }\n };\n\n const wordings = {\n menuWordings,\n offerWordings,\n boxesWordings,\n nftWordings,\n managerWordings,\n credentialWording,\n discountOrderModalWordings,\n purchaseCongratsModalWordings,\n purchaseErrorModalWordings,\n serverErrorModalWordings,\n limitOvertimeModalWordings,\n limitOvertimeByUserModalWordings,\n sessionWordings,\n metamaskModalWordings,\n metamaskMyCollectionModalWordings,\n metamaskInstallModalWordings,\n openNFTModalWordings,\n emptyMysteryBoxWordings,\n emptyNFTWordings,\n invalidChainWordings,\n processingTranslationWording,\n maintenanceWordings,\n bannerWordings,\n availableStatusWordings,\n page404Wordings,\n labelWordings,\n boxPendingAlert,\n timeWordings,\n musicWordings,\n whiteListAnnounceWordings\n };\n\n return wordings;\n};\n\nexport default useWordings;\n","import { googleAnalyticsConfig } from '../config';\n\n// ----------------------------------------------------------------------\n\nconst setup = (\n targetId: string,\n config?: Gtag.CustomParams | Gtag.ControlParams | Gtag.EventParams\n) => {\n if (process.env.NODE_ENV !== 'production') {\n return;\n }\n if (!window.gtag) {\n return;\n }\n window.gtag('config', targetId, config);\n};\n\nconst setupEvent = (\n targetId: string,\n config?: Gtag.CustomParams | Gtag.ControlParams | Gtag.EventParams\n) => {\n if (process.env.NODE_ENV !== 'production') {\n return;\n }\n if (!window.gtag) {\n return;\n }\n window.gtag('event', targetId, config);\n};\n\nconst track = {\n pageview: (props?: Gtag.CustomParams | Gtag.ControlParams | Gtag.EventParams) => {\n setup(googleAnalyticsConfig || '', props);\n },\n event: (type: string, props?: Gtag.CustomParams | Gtag.ControlParams | Gtag.EventParams) => {\n setupEvent(type, props);\n }\n};\n\nexport default track;\n","import { Helmet } from 'react-helmet-async';\nimport { useLocation } from 'react-router-dom';\nimport { forwardRef, useEffect, useCallback, ReactNode } from 'react';\n// material\nimport { Box, BoxProps } from '@mui/material';\n// utils\nimport track from '../utils/analytics';\n\n// ----------------------------------------------------------------------\n\ninterface PageProps extends BoxProps {\n children: ReactNode;\n title?: string;\n}\n\nconst Page = forwardRef(({ children, title = '', ...other }, ref) => {\n const { pathname } = useLocation();\n\n const sendPageViewEvent = useCallback(() => {\n track.pageview({\n page_path: pathname\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n sendPageViewEvent();\n }, [sendPageViewEvent]);\n\n return (\n \n \n {title}\n \n {children}\n \n );\n});\n\nexport default Page;\n","import { Container, Typography } from '@mui/material';\nimport useWordings from 'locales/wordings/useWordings';\nimport Lottie from 'lottie-react';\nimport disconnectAnimation from '../../assets/lotties/disconnect.json';\n\nconst ServerErrorBody = () => {\n const { serverErrorModalWordings } = useWordings();\n const description = [\n serverErrorModalWordings.descLine1,\n serverErrorModalWordings.descLine2,\n serverErrorModalWordings.descLine3\n ];\n\n return (\n \n \n \n {serverErrorModalWordings.title}\n \n \n {description.map((line, i) => (\n
\n {line}\n
\n
\n ))}\n
\n \n );\n};\n\nexport default ServerErrorBody;\n","import { Container, Typography, Box } from '@mui/material';\nimport useWordings from 'locales/wordings/useWordings';\nimport Lottie from 'lottie-react';\nimport invalidChainAnimation from '../assets/lotties/invalidChain.json';\n\nconst InvalidChain = () => {\n const { invalidChainWordings } = useWordings();\n\n return (\n \n \n \n \n \n {invalidChainWordings.title}\n \n \n {invalidChainWordings.descLine1}\n \n \n );\n};\n\nexport default InvalidChain;\n","import { useEffect, useState } from 'react';\nimport { useChain, useMoralis } from 'react-moralis';\n\nexport default function useCheckChain() {\n const { chainId, chain } = useChain();\n const { isAuthenticated } = useMoralis();\n\n const chainName = chain?.name;\n const deployChainId = process.env.REACT_APP_CHAIN_ID;\n const [invalidChain, setInvalidChain] = useState(false);\n\n useEffect(() => {\n setInvalidChain(chainId !== deployChainId);\n }, [chainId, isAuthenticated]);\n\n return {\n invalidChain,\n chainName\n };\n}\n","import useLogin from 'hooks/useLogin';\nimport { ReactNode, createContext, useState, useEffect } from 'react';\nimport { useMoralisCloudFunction } from 'react-moralis';\nimport { CharacterNFT } from 'types/nftTypes';\n\n// ----------------------------------------------------------------------\n\nexport type CharacterNFTProps = {\n collection: Array;\n setCollection: Function;\n fetchMyCollection: Function;\n collectionError: Error | null;\n};\n\nconst initialState: CharacterNFTProps = {\n collection: [],\n setCollection: Function,\n fetchMyCollection: Function,\n collectionError: null\n};\n\nconst CharacterNFTContext = createContext(initialState);\n\ntype CharacterNFTProviderProps = {\n children: ReactNode;\n};\n\nfunction CharacterNFTProvider({ children }: CharacterNFTProviderProps) {\n const { user } = useLogin();\n const {\n data,\n fetch,\n error: collectionError\n } = useMoralisCloudFunction('getMyCollection', undefined, { autoFetch: false });\n const [collection, setCollection] = useState>([]);\n\n const fetchMyCollection = async () => {\n if (user) {\n await fetch();\n }\n };\n\n useEffect(() => {\n collection.length === 0 && fetchMyCollection();\n }, [user]);\n\n useEffect(() => {\n if (data) {\n const res = data as Array;\n setCollection(res);\n }\n }, [data]);\n\n useEffect(() => {\n if (collectionError) console.log('error CharacterNFT Context', collectionError);\n }, [collectionError]);\n\n return (\n \n {children}\n \n );\n}\n\nexport { CharacterNFTProvider, CharacterNFTContext };\n","export function shortAddress(str: string) {\n return str.substring(0, 6) + '...' + str.substring(str.length - 4);\n}\n","import { Button, Container, Typography } from '@mui/material';\nimport Lottie from 'lottie-react';\nimport errorAnimation from '../../assets/lotties/error.json';\nimport useWordings from '../../locales/wordings/useWordings';\n\ninterface CongratsProps {\n handleClose: Function;\n}\n\nconst TransactionErrorBody = (props: CongratsProps) => {\n const { handleClose } = props;\n const { purchaseErrorModalWordings } = useWordings();\n\n return (\n \n \n \n {purchaseErrorModalWordings.title}\n \n \n {purchaseErrorModalWordings.descLine1}\n \n \n \n );\n};\n\nexport default TransactionErrorBody;\n","import { Container, Typography, Box } from '@mui/material';\nimport Lottie from 'lottie-react';\nimport blockChainAnimation from '../../assets/lotties/blockchainload.json';\nimport wordings from '../../locales/wordings/useWordings';\n\nconst TransactionInProcessBody = () => {\n const { processingTranslationWording } = wordings();\n\n return (\n \n \n \n {processingTranslationWording.title}\n \n \n );\n};\n\nexport default TransactionInProcessBody;\n","// ----------------------------------------------------------------------\n\nexport const varWrapEnter = {\n animate: {\n transition: { staggerChildren: 0.1 }\n }\n};\n\nexport const varWrapExit = {\n exit: {\n transition: { staggerChildren: 0.1 }\n }\n};\n\nexport const varWrapBoth = {\n animate: {\n transition: { staggerChildren: 0.07, delayChildren: 0.1 }\n },\n exit: {\n transition: { staggerChildren: 0.05, staggerDirection: -1 }\n }\n};\n","// ----------------------------------------------------------------------\n\nexport const varHover = {\n hover: { scale: 1.1 }\n};\n\nexport const varSmallClick = {\n hover: { scale: 1.04 },\n tap: { scale: 0.96 }\n};\n\nexport const varMediumClick = {\n hover: { scale: 1.1 },\n tap: { scale: 0.9 }\n};\n","// ----------------------------------------------------------------------\n\nconst TRANSITION = {\n duration: 4,\n ease: 'linear'\n};\n\nconst gradient = (deg: number) => `linear-gradient(${deg}deg, #ee7752, #e73c7e, #23a6d5, #23d5ab)`;\n\nexport const varPanTop = {\n animate: {\n backgroundImage: [gradient(0), gradient(0)],\n backgroundPosition: ['center 99%', 'center 1%'],\n backgroundSize: ['100% 600%', '100% 600%'],\n transition: TRANSITION\n }\n};\n\nexport const varPanBottom = {\n animate: {\n backgroundImage: [gradient(0), gradient(0)],\n backgroundPosition: ['center 1%', 'center 99%'],\n backgroundSize: ['100% 600%', '100% 600%'],\n transition: TRANSITION\n }\n};\n\nexport const varPanLeft = {\n animate: {\n backgroundPosition: ['99% center', '1% center'],\n backgroundImage: [gradient(270), gradient(270)],\n backgroundSize: ['600% 100%', '600% 100%'],\n transition: TRANSITION\n }\n};\n\nexport const varPanRight = {\n animate: {\n backgroundPosition: ['1% center', '99% center'],\n backgroundImage: [gradient(270), gradient(270)],\n backgroundSize: ['600% 100%', '600% 100%'],\n transition: TRANSITION\n }\n};\n","// ----------------------------------------------------------------------\n\nconst DISTANCE = 720;\nconst IN = { scale: 1, opacity: 1 };\nconst OUT = { scale: 0, opacity: 0 };\n\nconst TRANSITION_ENTER = {\n duration: 0.64,\n ease: [0.43, 0.13, 0.23, 0.96]\n};\n\nconst TRANSITION_EXIT = {\n duration: 0.48,\n ease: [0.43, 0.13, 0.23, 0.96]\n};\n\nexport const varZoomIn = {\n initial: OUT,\n animate: { ...IN, transition: TRANSITION_ENTER },\n exit: { ...OUT, transition: TRANSITION_EXIT }\n};\n\nexport const varZoomInUp = {\n initial: { ...OUT, translateY: DISTANCE },\n animate: { ...IN, translateY: 0, transition: TRANSITION_ENTER },\n exit: { ...OUT, translateY: DISTANCE, transition: TRANSITION_EXIT }\n};\n\nexport const varZoomInDown = {\n initial: { ...OUT, translateY: -DISTANCE },\n animate: { ...IN, translateY: 0, transition: TRANSITION_ENTER },\n exit: { ...OUT, translateY: -DISTANCE, transition: TRANSITION_EXIT }\n};\n\nexport const varZoomInLeft = {\n initial: { ...OUT, translateX: -DISTANCE },\n animate: { ...IN, translateX: 0, transition: TRANSITION_ENTER },\n exit: { ...OUT, translateX: -DISTANCE, transition: TRANSITION_EXIT }\n};\n\nexport const varZoomInRight = {\n initial: { ...OUT, translateX: DISTANCE },\n animate: { ...IN, translateX: 0, transition: TRANSITION_ENTER },\n exit: { ...OUT, translateX: DISTANCE, transition: TRANSITION_EXIT }\n};\n","// ----------------------------------------------------------------------\n\nconst DISTANCE = 720;\nconst IN = { scale: 1, opacity: 1 };\nconst OUT = { scale: 0, opacity: 0 };\n\nconst TRANSITION_ENTER = {\n duration: 0.64,\n ease: [0.43, 0.13, 0.23, 0.96]\n};\n\nexport const varZoomOut = {\n initial: { scale: 1 },\n animate: { scale: 0, transition: TRANSITION_ENTER }\n};\n\nexport const varZoomOutUp = {\n initial: IN,\n animate: { ...OUT, translateY: -DISTANCE, transition: TRANSITION_ENTER }\n};\n\nexport const varZoomOutDown = {\n initial: IN,\n animate: { ...OUT, translateY: DISTANCE, transition: TRANSITION_ENTER }\n};\n\nexport const varZoomOutLeft = {\n initial: IN,\n animate: { ...OUT, translateX: -DISTANCE, transition: TRANSITION_ENTER }\n};\n\nexport const varZoomOutRight = {\n initial: IN,\n animate: { ...OUT, translateX: DISTANCE, transition: TRANSITION_ENTER }\n};\n","import {\n varBounceOut,\n varBounceOutUp,\n varBounceOutDown,\n varBounceOutLeft,\n varBounceOutRight\n} from './BounceOut';\n\n// ----------------------------------------------------------------------\n\nconst TRANSITION_ENTER = {\n duration: 0.72,\n ease: [0.43, 0.13, 0.23, 0.96]\n};\n\nconst TRANSITION_EXIT = {\n duration: 0.48,\n ease: [0.43, 0.13, 0.23, 0.96]\n};\n\nexport const varBounceIn = {\n animate: {\n scale: [0.3, 1.1, 0.9, 1.03, 0.97, 1],\n opacity: [0, 1, 1, 1, 1, 1],\n transition: TRANSITION_ENTER\n },\n exit: varBounceOut.animate\n};\n\nexport const varBounceInUp = {\n animate: {\n y: [720, -24, 12, -4, 0],\n scaleY: [4, 0.9, 0.95, 0.985, 1],\n opacity: [0, 1, 1, 1, 1],\n transition: { ...TRANSITION_ENTER }\n },\n exit: { ...varBounceOutDown.animate, transition: TRANSITION_EXIT }\n};\n\nexport const varBounceInDown = {\n animate: {\n y: [-720, 24, -12, 4, 0],\n scaleY: [4, 0.9, 0.95, 0.985, 1],\n opacity: [0, 1, 1, 1, 1],\n transition: TRANSITION_ENTER\n },\n exit: { ...varBounceOutUp.animate, transition: TRANSITION_EXIT }\n};\n\nexport const varBounceInLeft = {\n animate: {\n x: [-720, 24, -12, 4, 0],\n scaleX: [3, 1, 0.98, 0.995, 1],\n opacity: [0, 1, 1, 1, 1],\n transition: TRANSITION_ENTER\n },\n exit: { ...varBounceOutLeft.animate, transition: TRANSITION_EXIT }\n};\n\nexport const varBounceInRight = {\n animate: {\n x: [720, -24, 12, -4, 0],\n scaleX: [3, 1, 0.98, 0.995, 1],\n opacity: [0, 1, 1, 1, 1],\n transition: TRANSITION_ENTER\n },\n exit: { ...varBounceOutRight.animate, transition: TRANSITION_EXIT }\n};\n","// ----------------------------------------------------------------------\n\nexport const varBounceOut = {\n animate: {\n scale: [0.9, 1.1, 0.3],\n opacity: [1, 1, 0]\n }\n};\n\nexport const varBounceOutUp = {\n animate: {\n y: [-12, 24, -720],\n scaleY: [0.985, 0.9, 3],\n opacity: [1, 1, 0]\n }\n};\n\nexport const varBounceOutDown = {\n animate: {\n y: [12, -24, 720],\n scaleY: [0.985, 0.9, 3],\n opacity: [1, 1, 0]\n }\n};\n\nexport const varBounceOutLeft = {\n animate: {\n x: [0, 24, -720],\n scaleX: [1, 0.9, 2],\n opacity: [1, 1, 0]\n }\n};\n\nexport const varBounceOutRight = {\n animate: {\n x: [0, -24, 720],\n scaleX: [1, 0.9, 2],\n opacity: [1, 1, 0]\n }\n};\n","import { motion } from 'framer-motion';\n// material\nimport { Box, BoxProps } from '@mui/material';\n//\nimport { varWrapEnter } from './variants';\n\n// ----------------------------------------------------------------------\n\ninterface MotionContainerProps extends BoxProps {\n initial?: boolean | string;\n open?: boolean;\n}\n\nexport default function MotionContainer({ open, children, ...other }: MotionContainerProps) {\n return (\n \n {children}\n \n );\n}\n","import { motion } from 'framer-motion';\n// material\nimport { Box, BoxProps } from '@mui/material';\n//\nimport { varSmallClick, varMediumClick } from './variants';\n\n// ----------------------------------------------------------------------\n\ninterface ButtonAnimateProps extends BoxProps {\n mediumClick?: boolean;\n}\n\nexport default function ButtonAnimate({\n mediumClick = false,\n children,\n sx,\n ...other\n}: ButtonAnimateProps) {\n return (\n \n {children}\n \n );\n}\n","import { formatEther } from '@ethersproject/units';\nimport { useState, useEffect } from 'react';\nimport { useMoralis, useWeb3ExecuteFunction } from 'react-moralis';\nimport { DataBox } from 'types/nftTypes';\nimport contractConfig from '../contracts/config';\n\nconst { mysteryBox } = contractConfig;\n\nexport default function useMysteryBoxDetails(id: number) {\n const { isAuthenticated, isWeb3Enabled } = useMoralis();\n const { data, error, fetch, isFetching, isLoading } = useWeb3ExecuteFunction({\n abi: mysteryBox.abi,\n contractAddress: mysteryBox.address,\n functionName: mysteryBox.functions.mysteryBoxDetails,\n params: {\n _mysteryBoxId: [id]\n }\n });\n\n useEffect(() => {\n if (isAuthenticated && isWeb3Enabled) {\n fetch();\n }\n }, [fetch, isAuthenticated, isWeb3Enabled]);\n\n useEffect(() => {\n if (error) console.log('error', error);\n }, [error]);\n\n const [box, setBox] = useState();\n\n function dataToBox(dataBox: DataBox, id: number) {\n if (dataBox) {\n const box: DataBox = {\n id,\n name: dataBox.name,\n priceNative: Number(formatEther(dataBox.priceNative)),\n priceNativeDesc: Number(formatEther(dataBox.priceNativeDesc)),\n priceTVC: Number(formatEther(dataBox.priceTVC)),\n priceTVCDesc: Number(formatEther(dataBox.priceTVCDesc)),\n priceNativeBN: dataBox.priceNative,\n priceNativeDescBN: dataBox.priceNativeDesc,\n priceTVCBN: dataBox.priceTVC,\n priceTVCDescBN: dataBox.priceTVCDesc,\n arrayFreqs: dataBox.arrayFreqs.map((freq: any) => formatEther(freq)),\n stock: Number(dataBox.stock)\n };\n return box;\n }\n }\n\n useEffect(() => {\n if (data) {\n setBox(dataToBox(data as DataBox, id));\n }\n }, [data, id]);\n\n return {\n box,\n error,\n fetch,\n isFetching,\n isLoading\n };\n}\n","import { useState, useEffect } from 'react';\nimport { useChain, useMoralis } from 'react-moralis';\nimport { DataBox } from 'types/nftTypes';\nimport useMysteryBoxDetails from './useMysteryBoxDetails';\n\nexport default function useAllMysteryBoxDetails() {\n const { chainId } = useChain();\n const { isAuthenticated } = useMoralis();\n\n const {\n box: boxBasic,\n error: errorBasic,\n fetch: fetchBasic,\n isFetching: isFetchingBasic,\n isLoading: isLoadingBasic\n } = useMysteryBoxDetails(1);\n\n const {\n box: boxCommon,\n error: errorCommon,\n fetch: fetchCommon,\n isFetching: isFetchingCommon,\n isLoading: isLoadingCommon\n } = useMysteryBoxDetails(2);\n\n const {\n box: boxPremium,\n error: errorPremium,\n fetch: fetchPremium,\n isFetching: isFetchingPremium,\n isLoading: isLoadingPremium\n } = useMysteryBoxDetails(3);\n\n const [basic, setBasic] = useState();\n const [common, setCommon] = useState();\n const [premium, setPremium] = useState();\n\n const getAllBoxes = () => {\n fetchBasic();\n fetchCommon();\n fetchPremium();\n };\n\n useEffect(() => {\n const deployChainId = process.env.REACT_APP_CHAIN_ID;\n if (isAuthenticated && deployChainId && chainId === deployChainId) {\n getAllBoxes();\n } else {\n setBasic(undefined);\n setCommon(undefined);\n setPremium(undefined);\n }\n }, [chainId, isAuthenticated]);\n\n useEffect(() => {\n if (boxBasic) setBasic(boxBasic);\n if (boxCommon) setCommon(boxCommon);\n if (boxPremium) setPremium(boxPremium);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [boxBasic, boxCommon, boxPremium]);\n\n return {\n getAllBoxes,\n basic,\n common,\n premium,\n error: errorBasic || errorCommon || errorPremium,\n isFetching: isFetchingBasic || isFetchingCommon || isFetchingPremium,\n isLoading: isLoadingBasic || isLoadingCommon || isLoadingPremium\n };\n}\n"],"sourceRoot":""}