{"version":3,"sources":["contexts/page-loader-context.module.css","pages/Home/home.module.css","components/Card/card.module.css","layout/Footer/footer.module.css","app.module.css","reportWebVitals.ts","serviceWorker.ts","layout/Snackbar/SnackbarWrapper.tsx","contexts/SnackbarContext.tsx","contexts/PageLoaderContext.tsx","pages/Home/Welcome.tsx","layout/Title/Title.tsx","components/Card/Card.tsx","pages/Home/Features.tsx","layout/Btn/Btn.tsx","pages/Home/Prices.tsx","pages/Home/Home.tsx","layout/Nav/Nav.tsx","layout/Footer/Footer.tsx","App.tsx","index.tsx","layout/Nav/nav.module.css","layout/Btn/btn.module.css"],"names":["module","exports","reportWebVitals","onPerfEntry","Function","then","getCLS","getFID","getFCP","getLCP","getTTFB","Boolean","window","location","hostname","match","SnackbarWrapper","type","message","open","setOpen","handleClose","Snackbar","anchorOrigin","vertical","horizontal","autoHideDuration","onClose","TransitionComponent","Slide","Alert","variant","severity","SnackbarContext","createContext","SnackbarContainer","children","useState","snack","setSnackInfo","Provider","value","PageLoaderContext","PageLoaderContainer","Drawer","anchor","transitionDuration","className","style","WelcomeDesign","join","Welcome","t","useTranslation","Title","positionClasses","position","size","Card","Features","Btn","to","externalLink","rest","typeClass","classes","href","FREE_PRODUCT_ID","Prices","useRest","results_per_page","products","getContent","productId","product","data","find","Catalog_Product__","price","Price","display","Home","Nav","navRef","useRef","isDesktop","useMediaQuery","useEffect","document","addEventListener","current","scrollY","classList","add","remove","ref","Footer","Page","path","App","i18nOpt","lng","getLocale","initImmediate","load","interpolation","escapeValue","react","useSuspense","run","i18n","use","Backend","initReactI18next","init","navigator","serviceWorker","ready","registration","unregister","catch","error","console"],"mappings":"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","file":"static/js/main.8da5a967.chunk.js","sourcesContent":["// extracted by mini-css-extract-plugin\nmodule.exports = {\"page-loader-context\":\"page-loader-context_page-loader-context__khC67\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"welcome\":\"home_welcome__2eePZ\",\"features\":\"home_features__2tFN_\",\"join\":\"home_join__24bR0\",\"product\":\"home_product__3GxqL\",\"prices\":\"home_prices__2UnaM\",\"mail-logo\":\"home_mail-logo__PBake\",\"mail-animation-right\":\"home_mail-animation-right__2nSva\",\"mail\":\"home_mail__1LNGl\",\"mail-animation-up\":\"home_mail-animation-up__2ytpF\",\"m1\":\"home_m1__3l05b\",\"m2\":\"home_m2__m-cHl\",\"m3\":\"home_m3__3iJPr\",\"m4\":\"home_m4__2Vv_s\",\"m5\":\"home_m5__1GMP2\",\"m6\":\"home_m6__1UfF4\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"card\":\"card_card__1PvOV\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"footer\":\"footer_footer__5IoHz\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"page\":\"app_page__2eoNV\"};","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","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n typeof window !== 'undefined' &&\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\nexport function register(config: any) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl: string, config: any) {\n navigator.serviceWorker\n .register(swUrl)\n .then((registration) => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch((error) => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl: string, config: any) {\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 (response.status === 404 || (contentType != null && contentType.indexOf('javascript') === -1)) {\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 React from 'react';\nimport { Slide, Snackbar } from '@material-ui/core';\nimport Alert, { Color } from '@material-ui/lab/Alert';\n\nexport type Snack = {\n open: boolean;\n setOpen: () => void;\n message: string;\n type: Color;\n};\n\ntype Props = Snack;\n\nexport const SnackbarWrapper = ({ type, message, open, setOpen }: Props) => {\n const handleClose = () => {\n setOpen();\n };\n\n return (\n \n \n {message}\n \n \n );\n};\n","import React, { createContext, useState } from 'react';\nimport { Color } from '@material-ui/lab/Alert';\nimport { SnackbarWrapper } from '../layout/Snackbar/SnackbarWrapper';\n\nexport const SnackbarContext = createContext((message: string, type: Color) => {\n //\n});\n\nexport const SnackbarContainer = ({ children }: any) => {\n const [snack, setSnackInfo] = useState<{\n message: string;\n type: Color;\n }>({ message: '', type: 'success' });\n const [open, setOpen] = useState(false);\n const handleClose = () => {\n setOpen(false);\n };\n const setSnack = (message: string, type: Color) => {\n setSnackInfo({ message, type });\n setOpen(true);\n };\n\n return (\n \n <>{children}\n \n \n );\n};\n","import React, { createContext, useState } from 'react';\nimport { Drawer } from '@material-ui/core';\nimport style from './page-loader-context.module.css';\n\nexport const PageLoaderContext = createContext((open: boolean) => {\n //\n});\n\nexport const PageLoaderContainer = ({ children }: any) => {\n const [open, setOpen] = useState(false);\n\n return (\n \n <>{children}\n \n
\n
\n
\n );\n};\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { AiOutlineMail, AiFillMail, BiMailSend } from 'react-icons/all';\nimport style from './home.module.css';\n\nexport const WelcomeDesign = () => {\n return (\n
\n \n \n \n \n \n \n \n
\n );\n};\n\nexport const Welcome = () => {\n const { t } = useTranslation();\n\n return (\n
\n

{t('mailbot')}

\n

{t('mailbot_catchphrase')}

\n
\n );\n};\n","import React, { ReactNode } from 'react';\n\ntype Props = {\n children: ReactNode;\n className?: string;\n position: 'left' | 'right' | 'center';\n size?: string;\n};\n\nexport const Title = ({ children, className, position, size }: Props) => {\n if (!size) {\n size = 'text-4xl';\n }\n\n let positionClasses;\n if (position === 'left') {\n positionClasses = 'pl-4 text-left';\n } else if (position === 'right') {\n positionClasses = 'text-right pr-4';\n } else {\n positionClasses = 'text-center';\n }\n return

{children}

;\n};\n","import React, { ReactNode } from 'react';\nimport style from './card.module.css';\n\ntype CardProps = {\n children: ReactNode;\n className?: string;\n};\nexport const Card = ({ children, className }: CardProps) => {\n return (\n
\n {children}\n
\n );\n};\n","import React from 'react';\nimport style from './home.module.css';\nimport { Title } from '../../layout/Title/Title';\nimport { useTranslation } from 'react-i18next';\nimport { AiFillApi, FaUserPlus, GrCloudComputer, GrServerCluster, MdDomain, MdUnsubscribe } from 'react-icons/all';\nimport { Card } from '../../components/Card/Card';\n\nexport const Features = () => {\n const { t } = useTranslation();\n\n return (\n
\n \n {t('features')}\n \n
\n \n <>\n \n
{t('features_api')}
\n \n
\n \n <>\n \n
{t('features_rep')}
\n \n
\n \n <>\n \n
{t('features_suppression')}
\n \n
\n \n <>\n \n
{t('features_distributed')}
\n \n
\n \n <>\n \n
{t('features_domain')}
\n \n
\n \n <>\n \n
{t('features_mta')}
\n \n
\n
\n
\n );\n};\n","import React, { ReactNode } from 'react';\nimport style from './btn.module.css';\nimport { Link } from 'react-router-dom';\n\ntype Props = {\n children: ReactNode;\n className?: string;\n type?: 'solid' | 'simple' | 'clean' | 'link';\n to?: string;\n externalLink?: string;\n onClick?: () => void;\n};\n\nexport const Btn = ({ children, type, className, to, externalLink, ...rest }: Props) => {\n const typeClass = type || 'simple';\n const classes = [style['mb-btn'], className, style[typeClass]].join(' ');\n if (to) {\n return (\n \n {children}\n \n );\n } else if (externalLink) {\n return (\n \n {children}\n \n );\n }\n return (\n \n );\n};\n","import React from 'react';\nimport style from './home.module.css';\nimport { Card } from '../../components/Card/Card';\nimport { useRest } from '@karpeleslab/react-klbfw-hooks';\nimport { Btn } from '../../layout/Btn/Btn';\nimport { useTranslation } from 'react-i18next';\nimport { Title } from '../../layout/Title/Title';\n\nconst FREE_PRODUCT_ID = 'cpr-wkpl7j-tshv-b7ra-vmbb-nlfcl7ly';\nconst STARTER_PRODUCT_ID = 'cpr-q4m4gz-jvin-cyvp-hkwr-aibbvc2q';\nconst PRO_PRODUCT_ID = 'cpr-lpisct-o3sj-hhfd-zayi-4hjdykz4';\n\nexport const Prices = () => {\n const { t } = useTranslation();\n\n const [products] = useRest('Catalog/Product:search', {\n results_per_page: 20,\n });\n\n const getContent = (productId: string) => {\n if (!products) {\n return <>;\n }\n const product = products.data.data.find((product: any) => product.Catalog_Product__ === productId);\n if (!product) {\n return <>;\n }\n\n const price = FREE_PRODUCT_ID === productId ? t('free') : product.Price.display;\n\n return (\n <>\n

{product['Basic.Name']}

\n
{product['Description.Short']}
\n
\n {price}\n
\n \n );\n };\n\n return (\n
\n \n {t('packages')}\n \n {!products ? (\n <>\n ) : (\n <>\n
\n {getContent(FREE_PRODUCT_ID)}\n {getContent(STARTER_PRODUCT_ID)}\n {getContent(PRO_PRODUCT_ID)}\n
\n \n )}\n
\n );\n};\n","import React from 'react';\nimport {Welcome, WelcomeDesign} from './Welcome';\nimport style from './home.module.css';\nimport { Features } from './Features';\nimport {Prices} from \"./Prices\";\n\nexport const Home = () => {\n return (\n
\n \n \n \n \n
JOIN
\n
\n );\n};\n","import React, { useEffect, useRef } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Btn } from '../Btn/Btn';\nimport style from './nav.module.css';\nimport { FaMailBulk } from 'react-icons/all';\nimport { useMediaQuery } from '@material-ui/core';\n\nexport const Nav = () => {\n const { t } = useTranslation();\n const navRef = useRef(null);\n const isDesktop = useMediaQuery('(min-width: 768px)');\n\n useEffect(() => {\n if (typeof window === 'undefined') {\n return;\n }\n document.addEventListener('scroll', () => {\n if (navRef && navRef.current) {\n if (window.scrollY > 0) {\n navRef.current.classList.add('fixed');\n navRef.current.classList.add(style['sticky']);\n navRef.current.classList.remove('absolute');\n } else {\n navRef.current.classList.add('absolute');\n navRef.current.classList.remove('fixed');\n navRef.current.classList.remove(style['sticky']);\n }\n }\n });\n }, []);\n\n return (\n
\n \n
\n );\n};\n","import React from 'react';\nimport style from './footer.module.css';\n\nexport const Footer = () => {\n return (\n
\n
\n Copyright © 2021 All Rights Reserved passion by Mailbot\n
\n
\n );\n};\n","import React from 'react';\nimport { RestContextContainer } from '@karpeleslab/klb-react-services';\nimport { SnackbarContainer } from './contexts/SnackbarContext';\nimport { PageLoaderContainer } from './contexts/PageLoaderContext';\nimport { Route, Switch } from 'react-router-dom';\nimport { Home } from './pages/Home/Home';\nimport { Nav } from './layout/Nav/Nav';\nimport { Footer } from './layout/Footer/Footer';\nimport style from './app.module.css';\n\nconst Page = (): JSX.Element => {\n return (\n <>\n