{"version":3,"file":"static/js/745.912b518f.chunk.js","mappings":"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","sources":["logged_out/components/navigation/NavBar.js","shared/components/WaveBorder.js","logged_out/components/footer/Footer.js","shared/components/ColoredButton.js","logged_out/components/cookies/CookieRulesDialog.js","logged_out/components/cookies/fetchIpData.js","logged_out/components/cookies/CookieConsent.js","shared/functions/toMarkdown.js","shared/components/DisplayMarkdown.js","logged_out/components/blog/tutorialsList.js","logged_out/components/documentation/docsList.js","shared/components/DialogTitleWithCloseIcon.js","shared/components/FormDialog.js","shared/components/HighlightedInformation.js","shared/components/VisibilityPasswordTextField.js","logged_out/components/register_login/RegisterDialog.js","logged_out/components/register_login/TermsOfServiceDialog.js","logged_out/components/register_login/LoginDialog.js","logged_out/components/register_login/ChangePasswordDialog.js","shared/components/ModalBackdrop.js","logged_out/components/register_login/DialogSelector.js","logged_out/components/blog/BlogCard.js","logged_out/components/blog/Blog.js","logged_out/components/blog/BlogPost.js","shared/components/ZoomImage.js","logged_out/components/home/HeadSection.js","logged_out/components/home/calculateSpacing.js","logged_out/components/home/FeatureCard.js","shared/functions/useWidth.js","logged_out/components/home/FeatureSection.js","logged_out/components/home/PriceCard.js","shared/components/CountrySelector.js","logged_out/components/home/PricingSection.js","logged_out/components/home/Home.js","logged_out/components/purchase/PurchaseCompleted.js","logged_out/components/documentation/DocPage.js","logged_out/components/documentation/FeaturedTutorials.js","logged_out/components/documentation/Documentation.js","logged_out/components/register_login/TermsOfService.js","logged_out/components/purchase/CheckboxTOS.js","logged_out/components/purchase/Api.js","logged_out/components/purchase/CheckboxPaddle.js","logged_out/components/purchase/PurchaseFormPaddle.js","logged_out/components/purchase/PurchasePaddle.js","logged_out/components/Routing.js","logged_out/components/Main.js","shared/components/ButtonCircularProgress.js","shared/components/NavigationDrawer.js","shared/components/PropsRoute.js","shared/functions/smoothScrollTop.js","shared/functions/useDisplayPrice.js","shared/functions/useLocationBlocker.js"],"sourcesContent":["import BookIcon from \"@mui/icons-material/Book\";\nimport HomeIcon from \"@mui/icons-material/Home\";\nimport HowToRegIcon from \"@mui/icons-material/HowToReg\";\nimport MenuIcon from \"@mui/icons-material/Menu\";\nimport MonetizationOnIcon from \"@mui/icons-material/MonetizationOn\";\nimport VideoCameraBackIcon from \"@mui/icons-material/VideoCameraBack\";\nimport {\n AppBar,\n Button,\n Hidden,\n IconButton,\n Toolbar,\n Typography,\n} from \"@mui/material\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport PropTypes from \"prop-types\";\nimport React, { memo } from \"react\";\nimport { HashLink as Link } from \"react-router-hash-link\";\nimport NavigationDrawer from \"../../../shared/components/NavigationDrawer\";\nimport classNames from \"classnames\";\n\nconst styles = (theme) => ({\n appBar: {\n boxShadow: theme.shadows[6],\n backgroundColor: theme.palette.common.white,\n },\n toolbar: {\n display: \"flex\",\n justifyContent: \"space-between\",\n },\n menuButtonText: {\n fontSize: theme.typography.body1.fontSize,\n fontWeight: theme.typography.h6.fontWeight,\n },\n brandText: {\n fontWeight: 400,\n },\n noDecoration: {\n textDecoration: \"none !important\",\n },\n isActive: {\n borderBottom: \"2px solid \" + theme.palette.primary.main,\n },\n});\n\nfunction NavBar(props) {\n const {\n classes,\n //openRegisterDialog,\n //openLoginDialog,\n handleMobileDrawerOpen,\n handleMobileDrawerClose,\n mobileDrawerOpen,\n selectedTab,\n setSelectedTab,\n } = props;\n const menuItems = [\n {\n link: \"/#\",\n name: \"Home\",\n onClick: () => setSelectedTab(\"Home\"),\n icon: ,\n textMd: ,\n //hideMd: true,\n },\n {\n link: \"/#pricing\",\n onClick: () => setSelectedTab(\"Pricing\"),\n name: \"Pricing\",\n icon: ,\n },\n {\n link: \"/tutorials\",\n name: \"Tutorials\",\n icon: ,\n },\n {\n name: \"Documentation\",\n link: \"/docs\",\n icon: ,\n },\n // {\n // name: \"Register\",\n // onClick: openRegisterDialog,\n // icon: \n // },\n // {\n // name: \"Login\",\n // onClick: openLoginDialog,\n // icon: ,\n // },\n {\n link: \"/dashboard\",\n name: \"Login\",\n icon: ,\n },\n ];\n return (\n
\n \n \n
\n \n \n \n \n \n
\n
\n \n \n \n \n \n \n {menuItems.map((element) => {\n if (element.hideMd) {\n return \"\";\n }\n if (element.link) {\n return (\n {\n element.onClick && element.onClick();\n handleMobileDrawerClose();\n }}\n >\n \n {element.textMd ?? element.name}\n \n \n );\n }\n return (\n \n {element.name}\n \n );\n })}\n \n
\n
\n
\n \n
\n );\n}\n\nNavBar.propTypes = {\n classes: PropTypes.object.isRequired,\n handleMobileDrawerOpen: PropTypes.func,\n handleMobileDrawerClose: PropTypes.func,\n mobileDrawerOpen: PropTypes.bool,\n selectedTab: PropTypes.string,\n openRegisterDialog: PropTypes.func.isRequired,\n openLoginDialog: PropTypes.func.isRequired,\n};\n\nexport default withStyles(styles, { withTheme: true })(memo(NavBar));\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport withStyles from '@mui/styles/withStyles';\n\nconst styles = {\n waves: {\n position: \"relative\",\n width: \"100%\",\n marginBottom: -7,\n height: \"7vw\",\n minHeight: \"7vw\"\n },\n \"@keyframes moveForever\": {\n from: { transform: \"translate3d(-90px, 0, 0)\" },\n to: { transform: \"translate3d(85px, 0, 0)\" }\n },\n parallax: {\n \"& > use\": {\n animation: \"$moveForever 4s cubic-bezier(0.62, 0.5, 0.38, 0.5) infinite\",\n animationDelay: props => `-${props.animationNegativeDelay}s`\n }\n }\n};\n\n/**\n * https://codepen.io/csspoints/pen/WNeOEqd\n */\nfunction WaveBorder(props) {\n const id = String(Math.random());\n const {\n className,\n lowerColor,\n upperColor,\n classes,\n animationNegativeDelay,\n ...rest\n } = props;\n return (\n
\n \n \n \n \n \n \n \n \n
\n );\n}\n\nWaveBorder.propTypes = {\n lowerColor: PropTypes.string.isRequired,\n upperColor: PropTypes.string.isRequired,\n classes: PropTypes.object.isRequired,\n animationNegativeDelay: PropTypes.number.isRequired\n};\n\nexport default withStyles(styles)(WaveBorder);\n","import MailIcon from \"@mui/icons-material/Mail\";\nimport { Box, Grid, IconButton, Typography } from \"@mui/material\";\nimport useMediaQuery from \"@mui/material/useMediaQuery\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport PropTypes from \"prop-types\";\nimport React from \"react\";\nimport WaveBorder from \"../../../shared/components/WaveBorder\";\n\nconst styles = (theme) => ({\n footerInner: {\n backgroundColor: theme.palette.common.darkBlack,\n paddingTop: theme.spacing(8),\n paddingLeft: theme.spacing(2),\n paddingRight: theme.spacing(2),\n paddingBottom: theme.spacing(6),\n [theme.breakpoints.up(\"sm\")]: {\n paddingTop: theme.spacing(10),\n paddingLeft: theme.spacing(16),\n paddingRight: theme.spacing(16),\n paddingBottom: theme.spacing(10),\n },\n [theme.breakpoints.up(\"md\")]: {\n paddingTop: theme.spacing(10),\n paddingLeft: theme.spacing(10),\n paddingRight: theme.spacing(10),\n paddingBottom: theme.spacing(10),\n },\n },\n brandText: {\n fontWeight: 400,\n color: theme.palette.common.white,\n },\n footerLinks: {\n marginTop: theme.spacing(2.5),\n marginBot: theme.spacing(1.5),\n color: theme.palette.common.white,\n },\n infoIcon: {\n color: `${theme.palette.common.white} !important`,\n backgroundColor: \"#33383b !important\",\n },\n socialIcon: {\n fill: theme.palette.common.white,\n backgroundColor: \"#33383b\",\n borderRadius: theme.shape.borderRadius,\n \"&:hover\": {\n backgroundColor: theme.palette.primary.light,\n },\n },\n link: {\n cursor: \"Pointer\",\n color: theme.palette.common.white,\n transition: theme.transitions.create([\"color\"], {\n duration: theme.transitions.duration.shortest,\n easing: theme.transitions.easing.easeIn,\n }),\n \"&:hover\": {\n color: theme.palette.primary.light,\n },\n },\n whiteBg: {\n backgroundColor: theme.palette.common.white,\n },\n});\n\nconst infos = [\n // {\n // icon: ,\n // description: \"+1 555 123456\",\n // },\n {\n icon: ,\n description: \"info@lmscloud.io\",\n },\n];\n\nconst socialIcons = [\n {\n icon: (\n \n GitHub\n \n \n ),\n label: \"Github\",\n href: \"https://github.com/lmscloud-io\",\n },\n {\n icon: (\n \n Youtube\n \n \n ),\n label: \"Youtube\",\n href: \"https://www.youtube.com/@LMSCloud\",\n },\n {\n icon: (\n \n LinkedIn\n \n \n ),\n label: \"LinkedIn\",\n href: \"https://www.linkedin.com/company/lmscloud\",\n },\n {\n icon: (\n \n Twitter\n \n \n ),\n label: \"Twitter\",\n href: \"https://twitter.com/LMSCloud\",\n },\n];\n\nfunction Footer(props) {\n const { classes, theme } = props;\n const isWidthUpMd = useMediaQuery(theme.breakpoints.up(\"md\"));\n\n return (\n
\n \n
\n \n \n \n MDLCode brought to you by{\" \"}\n \n LMSCloud\n \n :\n \n \n
\n {infos.map((info, index) => (\n \n \n \n {info.icon}\n \n \n \n \n {info.description}\n \n \n \n ))}\n
\n
\n
\n \n \n About LMSCloud\n \n \n LMSCloud provides cloud solutions to help Learning Management\n System developers and administrators\n \n \n {socialIcons.map((socialIcon, index) => (\n \n \n {socialIcon.icon}\n \n \n ))}\n \n \n
\n
\n
\n );\n}\n\nFooter.propTypes = {\n theme: PropTypes.object.isRequired,\n classes: PropTypes.object.isRequired,\n};\n\nexport default withStyles(styles, { withTheme: true })(Footer);\n","import React, { memo } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { Button, createTheme, ThemeProvider, StyledEngineProvider, adaptV4Theme } from \"@mui/material\";\n\nfunction ColoredButton(props) {\n const { color, children, theme } = props;\n const buttonTheme = createTheme(adaptV4Theme({\n ...theme,\n palette: {\n primary: {\n main: color\n }\n }\n }));\n const buttonProps = (({ color, theme, children, ...o }) => o)(props);\n return (\n \n \n \n \n \n );\n}\n\nColoredButton.propTypes = {\n color: PropTypes.string.isRequired\n};\n\nexport default memo(ColoredButton);\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport {\n Dialog,\n DialogTitle,\n DialogContent,\n DialogActions,\n Typography,\n} from \"@mui/material\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport ArrowBackIcon from \"@mui/icons-material/ArrowBack\";\nimport ColoredButton from \"../../../shared/components/ColoredButton\";\n\nconst styles = (theme) => ({\n dialogActions: {\n justifyContent: \"flex-start\",\n paddingTop: theme.spacing(2),\n paddingBottom: theme.spacing(2),\n paddingRight: theme.spacing(2),\n },\n dialog: {\n zIndex: 1400,\n },\n backIcon: {\n marginRight: theme.spacing(1),\n },\n});\n\nfunction CookieRulesDialog(props) {\n const { classes, onClose, open, theme } = props;\n return (\n \n Our Cookie Policy\n \n \n What Are Cookies\n \n \n As is common practice with almost all professional websites this site\n uses cookies, which are tiny files that are downloaded to your\n computer, to improve your experience. This page describes what\n information they gather, how we use it and why we sometimes need to\n store these cookies. We will also share how you can prevent these\n cookies from being stored however this may downgrade or\n 'break' certain elements of the sites functionality. For\n more general information on cookies see the Wikipedia article on HTTP\n Cookies.\n \n \n How We Use Cookies\n \n \n We use cookies for a variety of reasons detailed below. Unfortunately\n in most cases there are no industry standard options for disabling\n cookies without completely disabling the functionality and features\n they add to this site. It is recommended that you leave on all cookies\n if you are not sure whether you need them or not in case they are used\n to provide a service that you use.\n \n \n Disabling Cookies\n \n \n You can prevent the setting of cookies by adjusting the settings on\n your browser (see your browser Help for how to do this). Be aware that\n disabling cookies will affect the functionality of this and many other\n websites that you visit. Disabling cookies will usually result in also\n disabling certain functionality and features of the this site.\n Therefore it is recommended that you do not disable cookies.\n \n \n The Cookies We Set\n \n Account related cookies:\n \n If you create an account with us then we will use cookies for the\n management of the signup process and general administration. These\n cookies will usually be deleted when you log out however in some cases\n they may remain afterwards to remember your site preferences when\n logged out. We use cookies to remember that you accepted this message.\n \n Login related cookies:\n \n We use cookies when you are logged in so that we can remember this\n fact. This prevents you from having to log in every single time you\n visit a new page. These cookies are typically removed or cleared when\n you log out to ensure that you can only access restricted features and\n areas when logged in.\n \n Site preferences cookies:\n \n In order to provide you with a great experience on this site we\n provide the functionality to set your preferences for how this site\n runs when you use it. In order to remember your preferences we need to\n set cookies so that this information can be called whenever you\n interact with a page is affected by your preferences.\n \n \n Third Party Cookies:\n \n \n In some special cases we also use cookies provided by trusted third\n parties. The following section details which third party cookies you\n might encounter through this site.\n \n \n Third party analytics are used to track and measure usage of this site\n so that we can continue to produce engaging content. These cookies may\n track things such as how long you spend on the site or pages you visit\n which helps us to understand how we can improve the site for you.\n \n \n We use Paddle.com and Stripe for payment processing. These providers\n use cookies to remember who you are and to enable us to process\n payments without storing any credit card information on our servers.\n \n \n We use AWS for user authentication. AWS uses cookies to remember who\n you are and to enable us to authenticate you.\n \n \n More Information\n \n \n Hopefully that has clarified things for you and as was previously\n mentioned if there is something that you aren't sure whether you\n need or not it's usually safer to leave cookies enabled in case\n it does interact with one of the features you use on our site.\n \n \n However if you are still looking for more information then you can\n contact us by sending an email to info@lmscloud.io\n \n \n \n \n \n Back\n \n \n \n );\n}\n\nCookieRulesDialog.propTypes = {\n classes: PropTypes.object.isRequired,\n onClose: PropTypes.func.isRequired,\n open: PropTypes.bool.isRequired,\n theme: PropTypes.object.isRequired,\n};\n\nexport default withStyles(styles, { withTheme: true })(CookieRulesDialog);\n","const fetchIpData = new Promise((resolve, reject) => {\n const ajax = new XMLHttpRequest();\n if (window.location.href.includes(\"localhost\")) {\n /**\n * Resolve with dummydata, GET call will be rejected,\n * since ipinfos server is configured that way\n */\n resolve({ data: { country: \"DE\" } });\n return;\n }\n ajax.open(\"GET\", \"https://ipinfo.io/json\");\n ajax.onload = () => {\n const response = JSON.parse(ajax.responseText);\n if (response) {\n resolve(response);\n } else {\n reject();\n }\n };\n ajax.onerror = reject;\n ajax.send();\n});\n\nexport default fetchIpData;\n","import React, { Fragment, useState, useCallback, useEffect } from \"react\";\nimport PropTypes from \"prop-types\";\nimport Cookies from \"js-cookie\";\nimport { Snackbar, Button, Typography, Box } from \"@mui/material\";\nimport withStyles from '@mui/styles/withStyles';\nimport fetchIpData from \"./fetchIpData\";\n\nconst styles = (theme) => ({\n snackbarContent: {\n borderBottomLeftRadius: 0,\n borderBottomRightRadius: 0,\n paddingLeft: theme.spacing(3),\n paddingRight: theme.spacing(3),\n },\n});\n\nconst europeanCountryCodes = [\n \"AT\",\n \"BE\",\n \"BG\",\n \"CY\",\n \"CZ\",\n \"DE\",\n \"DK\",\n \"EE\",\n \"ES\",\n \"FI\",\n \"FR\",\n \"GB\",\n \"GR\",\n \"HR\",\n \"HU\",\n \"IE\",\n \"IT\",\n \"LT\",\n \"LU\",\n \"LV\",\n \"MT\",\n \"NL\",\n \"PO\",\n \"PT\",\n \"RO\",\n \"SE\",\n \"SI\",\n \"SK\",\n];\n\nfunction CookieConsent(props) {\n const { classes, handleCookieRulesDialogOpen } = props;\n const [isVisible, setIsVisible] = useState(false);\n\n const openOnEuCountry = useCallback(() => {\n fetchIpData\n .then((data) => {\n if (\n data &&\n data.country &&\n !europeanCountryCodes.includes(data.country)\n ) {\n setIsVisible(false);\n } else {\n setIsVisible(true);\n }\n })\n .catch(() => {\n setIsVisible(true);\n });\n }, [setIsVisible]);\n\n /**\n * Set a persistent cookie\n */\n const onAccept = useCallback(() => {\n Cookies.set(\"remember-cookie-snackbar\", \"\", {\n expires: 365,\n });\n setIsVisible(false);\n }, [setIsVisible]);\n\n useEffect(() => {\n if (Cookies.get(\"remember-cookie-snackbar\") === undefined) {\n openOnEuCountry();\n }\n }, [openOnEuCountry]);\n\n return (\n \n We use cookies to ensure you get the best experience on our website.{\" \"}\n \n }\n action={\n \n \n \n \n \n \n }\n />\n );\n}\n\nCookieConsent.propTypes = {\n handleCookieRulesDialogOpen: PropTypes.func.isRequired,\n};\n\nexport default withStyles(styles, { withTheme: true })(CookieConsent);\n","import React from \"react\";\nimport Markdown from \"react-markdown\";\nimport { HashLink } from \"react-router-hash-link\";\nimport { Prism as SyntaxHighlighter } from \"react-syntax-highlighter\";\n//import { atelierForestLight as dark } from \"react-syntax-highlighter/dist/esm/styles/hljs\";\nimport { a11yDark as dark } from \"react-syntax-highlighter/dist/esm/styles/prism\";\nimport ReactPlayer from \"react-player/lazy\";\n\nfunction isYoutubeLink(href) {\n return href.match(/^(https?:\\/\\/)?(www\\.)?(youtube\\.com|youtu\\.?be)\\/.+$/gi);\n}\n\nfunction prepareLocalRoute(href, baseHref) {\n if (href.startsWith(\"#\")) return href;\n if (\n (href.endsWith(\".md\") || href.match(/\\.md#/)) &&\n (!href.includes(\"/\") || href.startsWith(\"../\"))\n ) {\n return (!href.includes(\"/\") ? baseHref + href : href).replace(\n /\\.md($|#)/,\n (m, m1) => m1 ?? \"\"\n );\n }\n return null;\n}\n\nfunction replaceImgSrc(html) {\n return html\n .replace(\n `https://raw.githubusercontent.com/lmscloud-io/mdlcode-docs/main/docs/media/`,\n `${process.env.PUBLIC_URL}/images/docs/`\n )\n .replace(\n `https://raw.githubusercontent.com/lmscloud-io/mdlcode-docs/main/tutorials/media/`,\n `${process.env.PUBLIC_URL}/images/tutorials/`\n );\n}\n\nexport function toMarkdown({ children, baseHref, key, extraComponents }) {\n return (\n \n ) : (\n \n {children}\n \n );\n },\n\n h2(props) {\n const id = props.children.join(\"\").replace(/\\s/g, \"-\").toLowerCase();\n return

{props.children}

;\n },\n\n a(props) {\n const { children, node, href, ...rest } = props;\n if (isYoutubeLink(href)) {\n return (\n
\n \n
\n );\n }\n const newhref = prepareLocalRoute(href, baseHref);\n if (newhref) {\n return (\n \n {props.children}\n \n );\n }\n rest.className = ((rest.className ?? \"\") + \" external-link\").trim();\n return (\n <>\n \n {props.children}\n \n {typeof props.children[0] === \"string\" && (\n \n )}\n \n );\n },\n\n img(props) {\n const { node, src, ...rest } = props;\n let newsrc = replaceImgSrc(src);\n // eslint-disable-next-line jsx-a11y/alt-text\n return ;\n },\n\n ...(extraComponents ?? {}),\n }}\n >\n );\n}\n\nexport function prepareMarkdownHtml(html, baseHref, idx, history) {\n // Process clicks on the local links\n const contentClickHandler = (e) => {\n const targetLink = e.target.closest(\"a\");\n if (!targetLink) return;\n const newhref = prepareLocalRoute(\n targetLink.getAttribute(\"href\"),\n baseHref\n );\n if (newhref) {\n e.preventDefault();\n history.push(newhref);\n }\n };\n\n return (\n \n );\n}\n","import withStyles from \"@mui/styles/withStyles\";\nimport PropTypes from \"prop-types\";\n//import { atelierForestLight as dark } from \"react-syntax-highlighter/dist/esm/styles/hljs\";\nimport { toMarkdown, prepareMarkdownHtml } from \"../functions/toMarkdown\";\nimport { useHistory } from \"react-router\";\n\nconst styles = (theme) => ({});\n\nconst isHTML = (str) => {\n // See https://spec.commonmark.org/0.30/#html-blocks\n //< or , or the string />.\n return (\n !!str.match(/^<(a|p|h\\d|div|img|ul|hr|table)[ >]/gi) || // TODO all of them\n str.match(/^/gi)\n );\n};\n\nfunction DisplayMarkdown({\n children,\n baseHref = \"\",\n className,\n extraComponents,\n}) {\n const blocks = children.split(/\\n{2,}/);\n const parsedBlocks = [];\n const history = useHistory();\n\n for (let i = 0; i < blocks.length; i++) {\n const block = blocks[i];\n const ishtml = isHTML(block);\n if (\n parsedBlocks.length > 0 &&\n parsedBlocks[parsedBlocks.length - 1].ishtml === ishtml\n ) {\n parsedBlocks[parsedBlocks.length - 1].blocks += \"\\n\\n\" + block;\n } else {\n parsedBlocks.push({ ishtml, blocks: block });\n }\n }\n\n return (\n
\n {parsedBlocks.map((block, idx) => {\n const { ishtml, blocks } = block;\n if (ishtml) {\n return prepareMarkdownHtml(blocks, baseHref, idx, history);\n } else {\n return toMarkdown({\n children: blocks,\n baseHref,\n key: idx,\n extraComponents,\n });\n }\n })}\n
\n );\n}\n\nDisplayMarkdown.propTypes = {\n classes: PropTypes.object.isRequired,\n};\n\nexport default withStyles(styles, { withTheme: true })(DisplayMarkdown);\n","import React from \"react\";\nimport tutorials from \"../../../assets/tutorials.json\";\nimport DisplayMarkdown from \"../../../shared/components/DisplayMarkdown\";\n\nconst posts = Object.keys(tutorials).map((key, idx) => {\n const fulltext = tutorials[key];\n // First line of tutorial string is the title, second is the date, third is a snippet, the rest is content\n const lines = fulltext.split(\"\\n\");\n const tutorial = {\n id: idx + 1,\n src: `${process.env.PUBLIC_URL}/images/tutorials/cover/${key}.png`,\n title: lines[0].replace(/^#/g, \"\").trim(),\n // convert date to unix timestamp\n date: parseInt(new Date(lines[1]).getTime() / 1000),\n snippet: lines[2].replace(/^>/g, \"\").trim(),\n };\n\n let markdown = lines\n .slice(3)\n .join(\"\\n\")\n .trim()\n .replace(/\\n---\\n[^\\0]*$/g, \"\\n\");\n tutorial.content = () => (\n \n {markdown}\n \n );\n\n // let title = tutorial.title.toLowerCase();\n // /* Remove unwanted characters, only accept alphanumeric and space */\n // title = title.replace(/[^A-Za-z0-9 ]/g, \"\");\n // /* Replace multi spaces with a single space */\n // title = title.replace(/\\s{2,}/g, \" \");\n // /* Replace space with a '-' symbol */\n // title = title.replace(/\\s/g, \"-\");\n\n let title = key;\n tutorial.url = `/tutorials/${title}`;\n tutorial.params = `?id=${tutorial.id}`;\n tutorial.name = key;\n\n return tutorial;\n});\n\nexport default posts;\n","import pages from \"../../../assets/docs.json\";\nimport DisplayMarkdown from \"../../../shared/components/DisplayMarkdown\";\n\nconst docs = Object.keys(pages).map((key, idx) => {\n let markdown = pages[key].replace(/\\n---\\n[^\\0]*$/g, \"\\n\"); // Strip out footer that links to the main docs page\n const content = ({ extraComponents } = {}) => (\n \n {markdown}\n \n );\n return {\n id: idx + 1,\n filename: key,\n content,\n };\n});\nexport default docs;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { IconButton, DialogTitle, Typography, Box } from \"@mui/material\";\nimport withTheme from '@mui/styles/withTheme';\nimport CloseIcon from \"@mui/icons-material/Close\";\n\nfunction DialogTitleWithCloseIcon(props) {\n const {\n theme,\n paddingBottom,\n onClose,\n disabled,\n title,\n disablePadding\n } = props;\n return (\n \n \n {title}\n \n \n \n \n \n );\n}\n\nDialogTitleWithCloseIcon.propTypes = {\n theme: PropTypes.object,\n paddingBottom: PropTypes.number,\n onClose: PropTypes.func,\n disabled: PropTypes.bool,\n title: PropTypes.string,\n disablePadding: PropTypes.bool\n};\n\nexport default withTheme(DialogTitleWithCloseIcon);\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { Dialog, DialogContent, Box } from \"@mui/material\";\nimport withStyles from '@mui/styles/withStyles';\nimport DialogTitleWithCloseIcon from \"./DialogTitleWithCloseIcon\";\n\nconst styles = theme => ({\n dialogPaper: {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n paddingBottom: theme.spacing(3),\n maxWidth: 420\n },\n actions: {\n marginTop: theme.spacing(2)\n },\n dialogPaperScrollPaper: {\n maxHeight: \"none\"\n },\n dialogContent: {\n paddingTop: 0,\n paddingBottom: 0\n }\n});\n\n/**\n * A Wrapper around the Dialog component to create centered\n * Login, Register or other Dialogs.\n */\nfunction FormDialog(props) {\n const {\n classes,\n open,\n onClose,\n loading,\n headline,\n onFormSubmit,\n content,\n actions,\n hideBackdrop\n } = props;\n return (\n \n \n \n
\n
{content}
\n \n {actions}\n \n
\n
\n \n );\n}\n\nFormDialog.propTypes = {\n classes: PropTypes.object.isRequired,\n open: PropTypes.bool.isRequired,\n onClose: PropTypes.func.isRequired,\n headline: PropTypes.string.isRequired,\n loading: PropTypes.bool.isRequired,\n onFormSubmit: PropTypes.func.isRequired,\n content: PropTypes.element.isRequired,\n actions: PropTypes.element.isRequired,\n hideBackdrop: PropTypes.bool.isRequired\n};\n\nexport default withStyles(styles, { withTheme: true })(FormDialog);\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport classNames from \"classnames\";\nimport { Typography } from \"@mui/material\";\n\nimport withStyles from '@mui/styles/withStyles';\n\nconst styles = theme => ({\n main: {\n backgroundColor: theme.palette.warning.light,\n border: `${theme.border.borderWidth}px solid ${theme.palette.warning.main}`,\n padding: theme.spacing(2),\n borderRadius: theme.shape.borderRadius\n }\n});\n\nfunction HighlighedInformation(props) {\n const { className, children, classes } = props;\n return (\n
\n {children}\n
\n );\n}\n\nHighlighedInformation.propTypes = {\n classes: PropTypes.object.isRequired,\n children: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n PropTypes.array\n ]).isRequired,\n className: PropTypes.string\n};\n\nexport default withStyles(styles, { withTheme: true })(HighlighedInformation);\n","import React from \"react\";\nimport { TextField, InputAdornment, IconButton } from \"@mui/material\";\nimport VisibilityIcon from \"@mui/icons-material/Visibility\";\nimport VisibilityOffIcon from \"@mui/icons-material/VisibilityOff\";\n\nfunction VisibilityPasswordTextField(props) {\n const { isVisible, onVisibilityChange, ...rest } = props;\n return (\n \n {\n onVisibilityChange(!isVisible);\n }}\n onMouseDown={(event) => {\n event.preventDefault();\n }}\n size=\"large\">\n {isVisible ? : }\n \n \n ),\n }}\n >\n );\n}\n\nexport default VisibilityPasswordTextField;\n","import React, { useState, useCallback, useRef, Fragment } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { FormHelperText, TextField, Button, Checkbox, Typography, FormControlLabel } from \"@mui/material\";\nimport withStyles from '@mui/styles/withStyles';\nimport FormDialog from \"../../../shared/components/FormDialog\";\nimport HighlightedInformation from \"../../../shared/components/HighlightedInformation\";\nimport ButtonCircularProgress from \"../../../shared/components/ButtonCircularProgress\";\nimport VisibilityPasswordTextField from \"../../../shared/components/VisibilityPasswordTextField\";\n\nconst styles = (theme) => ({\n link: {\n transition: theme.transitions.create([\"background-color\"], {\n duration: theme.transitions.duration.complex,\n easing: theme.transitions.easing.easeInOut,\n }),\n cursor: \"pointer\",\n color: theme.palette.primary.main,\n \"&:enabled:hover\": {\n color: theme.palette.primary.dark,\n },\n \"&:enabled:focus\": {\n color: theme.palette.primary.dark,\n },\n },\n});\n\nfunction RegisterDialog(props) {\n const { setStatus, theme, onClose, openTermsDialog, status, classes } = props;\n const [isLoading, setIsLoading] = useState(false);\n const [hasTermsOfServiceError, setHasTermsOfServiceError] = useState(false);\n const [isPasswordVisible, setIsPasswordVisible] = useState(false);\n const registerTermsCheckbox = useRef();\n const registerPassword = useRef();\n const registerPasswordRepeat = useRef();\n\n const register = useCallback(() => {\n if (!registerTermsCheckbox.current.checked) {\n setHasTermsOfServiceError(true);\n return;\n }\n if (\n registerPassword.current.value !== registerPasswordRepeat.current.value\n ) {\n setStatus(\"passwordsDontMatch\");\n return;\n }\n setStatus(null);\n setIsLoading(true);\n setTimeout(() => {\n setIsLoading(false);\n }, 1500);\n }, [\n setIsLoading,\n setStatus,\n setHasTermsOfServiceError,\n registerPassword,\n registerPasswordRepeat,\n registerTermsCheckbox,\n ]);\n\n return (\n {\n e.preventDefault();\n register();\n }}\n hideBackdrop\n hasCloseIcon\n content={\n \n {\n if (status === \"invalidEmail\") {\n setStatus(null);\n }\n }}\n FormHelperTextProps={{ error: true }}\n />\n {\n if (\n status === \"passwordTooShort\" ||\n status === \"passwordsDontMatch\"\n ) {\n setStatus(null);\n }\n }}\n helperText={(() => {\n if (status === \"passwordTooShort\") {\n return \"Create a password at least 6 characters long.\";\n }\n if (status === \"passwordsDontMatch\") {\n return \"Your passwords dont match.\";\n }\n return null;\n })()}\n FormHelperTextProps={{ error: true }}\n isVisible={isPasswordVisible}\n onVisibilityChange={setIsPasswordVisible}\n />\n {\n if (\n status === \"passwordTooShort\" ||\n status === \"passwordsDontMatch\"\n ) {\n setStatus(null);\n }\n }}\n helperText={(() => {\n if (status === \"passwordTooShort\") {\n return \"Create a password at least 6 characters long.\";\n }\n if (status === \"passwordsDontMatch\") {\n return \"Your passwords dont match.\";\n }\n })()}\n FormHelperTextProps={{ error: true }}\n isVisible={isPasswordVisible}\n onVisibilityChange={setIsPasswordVisible}\n />\n {\n setHasTermsOfServiceError(false);\n }}\n />\n }\n label={\n \n I agree to the\n {\n // For screenreaders listen to space and enter events\n if (\n (!isLoading && event.keyCode === 13) ||\n event.keyCode === 32\n ) {\n openTermsDialog();\n }\n }}\n >\n {\" \"}\n terms of service\n \n \n }\n />\n {hasTermsOfServiceError && (\n \n In order to create an account, you have to accept our terms of\n service.\n \n )}\n {status === \"accountCreated\" ? (\n \n We have created your account. Please click on the link in the\n email we have sent to you before logging in.\n \n ) : (\n \n Registration is disabled until we go live.\n \n )}\n \n }\n actions={\n \n Register\n {isLoading && }\n \n }\n />\n );\n}\n\nRegisterDialog.propTypes = {\n theme: PropTypes.object.isRequired,\n onClose: PropTypes.func.isRequired,\n openTermsDialog: PropTypes.func.isRequired,\n status: PropTypes.string,\n setStatus: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired,\n};\n\nexport default withStyles(styles, { withTheme: true })(RegisterDialog);\n","import ArrowBackIcon from \"@mui/icons-material/ArrowBack\";\nimport {\n Dialog,\n DialogActions,\n DialogContent,\n DialogTitle,\n} from \"@mui/material\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport PropTypes from \"prop-types\";\nimport React from \"react\";\nimport TOS from \"../../../assets/tos.json\";\nimport ColoredButton from \"../../../shared/components/ColoredButton\";\nimport DisplayMarkdown from \"../../../shared/components/DisplayMarkdown\";\n\nconst styles = (theme) => ({\n termsConditionsListitem: {\n marginLeft: theme.spacing(3),\n marginTop: theme.spacing(1),\n },\n dialogActions: {\n justifyContent: \"flex-start\",\n paddingTop: theme.spacing(2),\n paddingBottom: theme.spacing(2),\n paddingRight: theme.spacing(2),\n },\n backIcon: {\n marginRight: theme.spacing(1),\n },\n});\n\nfunction TermsOfServiceDialog(props) {\n const { classes, onClose, theme } = props;\n let tosText = TOS.text;\n // remove the first line from tosText\n tosText = tosText.substring(tosText.indexOf(\"\\n\") + 1);\n\n return (\n \n Terms of Service\n \n {tosText}\n \n \n \n \n Back\n \n \n \n );\n}\n\nTermsOfServiceDialog.propTypes = {\n classes: PropTypes.object.isRequired,\n onClose: PropTypes.func.isRequired,\n theme: PropTypes.object.isRequired,\n};\n\nexport default withStyles(styles, { withTheme: true })(TermsOfServiceDialog);\n","import React, { useState, useCallback, useRef, Fragment } from \"react\";\nimport PropTypes from \"prop-types\";\nimport classNames from \"classnames\";\nimport { withRouter } from \"react-router-dom\";\nimport { TextField, Button, Checkbox, Typography, FormControlLabel } from \"@mui/material\";\nimport withStyles from '@mui/styles/withStyles';\nimport FormDialog from \"../../../shared/components/FormDialog\";\nimport HighlightedInformation from \"../../../shared/components/HighlightedInformation\";\nimport ButtonCircularProgress from \"../../../shared/components/ButtonCircularProgress\";\nimport VisibilityPasswordTextField from \"../../../shared/components/VisibilityPasswordTextField\";\n\nconst styles = (theme) => ({\n forgotPassword: {\n marginTop: theme.spacing(2),\n color: theme.palette.primary.main,\n cursor: \"pointer\",\n \"&:enabled:hover\": {\n color: theme.palette.primary.dark,\n },\n \"&:enabled:focus\": {\n color: theme.palette.primary.dark,\n },\n },\n disabledText: {\n cursor: \"auto\",\n color: theme.palette.text.disabled,\n },\n formControlLabel: {\n marginRight: 0,\n },\n});\n\nfunction LoginDialog(props) {\n const {\n setStatus,\n history,\n classes,\n onClose,\n openChangePasswordDialog,\n status,\n } = props;\n const [isLoading, setIsLoading] = useState(false);\n const [isPasswordVisible, setIsPasswordVisible] = useState(false);\n const loginEmail = useRef();\n const loginPassword = useRef();\n\n const login = useCallback(() => {\n setIsLoading(true);\n setStatus(null);\n if (loginEmail.current.value !== \"test@web.com\") {\n setTimeout(() => {\n setStatus(\"invalidEmail\");\n setIsLoading(false);\n }, 1500);\n } else if (loginPassword.current.value !== \"HaRzwc\") {\n setTimeout(() => {\n setStatus(\"invalidPassword\");\n setIsLoading(false);\n }, 1500);\n } else {\n setTimeout(() => {\n history.push(\"/c/dashboard\");\n }, 150);\n }\n }, [setIsLoading, loginEmail, loginPassword, history, setStatus]);\n\n return (\n \n {\n e.preventDefault();\n login();\n }}\n hideBackdrop\n headline=\"Login\"\n content={\n \n {\n if (status === \"invalidEmail\") {\n setStatus(null);\n }\n }}\n helperText={\n status === \"invalidEmail\" &&\n \"This email address isn't associated with an account.\"\n }\n FormHelperTextProps={{ error: true }}\n />\n {\n if (status === \"invalidPassword\") {\n setStatus(null);\n }\n }}\n helperText={\n status === \"invalidPassword\" ? (\n \n Incorrect password. Try again, or click on{\" \"}\n "Forgot Password?" to reset it.\n \n ) : (\n \"\"\n )\n }\n FormHelperTextProps={{ error: true }}\n onVisibilityChange={setIsPasswordVisible}\n isVisible={isPasswordVisible}\n />\n }\n label={Remember me}\n />\n {status === \"verificationEmailSend\" ? (\n \n We have send instructions on how to reset your password to your\n email address\n \n ) : (\n \n Email is: test@web.com\n
\n Password is: HaRzwc\n
\n )}\n
\n }\n actions={\n \n \n Login\n {isLoading && }\n \n {\n // For screenreaders listen to space and enter events\n if (\n (!isLoading && event.keyCode === 13) ||\n event.keyCode === 32\n ) {\n openChangePasswordDialog();\n }\n }}\n >\n Forgot Password?\n \n \n }\n />\n
\n );\n}\n\nLoginDialog.propTypes = {\n classes: PropTypes.object.isRequired,\n onClose: PropTypes.func.isRequired,\n setStatus: PropTypes.func.isRequired,\n openChangePasswordDialog: PropTypes.func.isRequired,\n history: PropTypes.object.isRequired,\n status: PropTypes.string,\n};\n\nexport default withRouter(withStyles(styles)(LoginDialog));\n","import React, { useState, useCallback } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { TextField, Dialog, DialogContent, DialogActions, Button, Typography } from \"@mui/material\";\nimport withStyles from '@mui/styles/withStyles';\nimport ButtonCircularProgress from \"../../../shared/components/ButtonCircularProgress\";\n\nconst styles = (theme) => ({\n dialogContent: {\n paddingTop: theme.spacing(2),\n },\n dialogActions: {\n paddingTop: theme.spacing(2),\n paddingBottom: theme.spacing(2),\n paddingRight: theme.spacing(2),\n },\n});\n\nfunction ChangePassword(props) {\n const { onClose, classes, setLoginStatus } = props;\n const [isLoading, setIsLoading] = useState(false);\n\n const sendPasswordEmail = useCallback(() => {\n setIsLoading(true);\n setTimeout(() => {\n setLoginStatus(\"verificationEmailSend\");\n setIsLoading(false);\n onClose();\n }, 1500);\n }, [setIsLoading, setLoginStatus, onClose]);\n\n return (\n \n {\n e.preventDefault();\n sendPasswordEmail();\n }}\n >\n \n \n Enter your email address below and we will send you instructions on\n how to reset your password.\n \n \n \n \n \n \n Reset password\n {isLoading && }\n \n \n \n \n );\n}\n\nChangePassword.propTypes = {\n onClose: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired,\n theme: PropTypes.object.isRequired,\n setLoginStatus: PropTypes.func.isRequired,\n};\n\nexport default withStyles(styles, { withTheme: true })(ChangePassword);\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { Backdrop } from \"@mui/material\";\n\nimport withStyles from '@mui/styles/withStyles';\n\nconst styles = {\n backdrop: {\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n zIndex: 1200,\n position: \"fixed\",\n touchAction: \"none\",\n backgroundColor: \"rgba(0, 0, 0, 0.5)\"\n }\n};\n\nfunction ModalBackdrop(props) {\n const { classes, open } = props;\n return ;\n}\n\nModalBackdrop.propTypes = {\n classes: PropTypes.object.isRequired,\n open: PropTypes.bool.isRequired\n};\n\nexport default withStyles(styles)(ModalBackdrop);\n","import React, { useState, useCallback, Fragment } from \"react\";\nimport PropTypes from \"prop-types\";\nimport RegisterDialog from \"./RegisterDialog\";\nimport TermsOfServiceDialog from \"./TermsOfServiceDialog\";\nimport LoginDialog from \"./LoginDialog\";\nimport ChangePasswordDialog from \"./ChangePasswordDialog\";\nimport ModalBackdrop from \"../../../shared/components/ModalBackdrop\";\n\nfunction DialogSelector(props) {\n const {\n dialogOpen,\n openTermsDialog,\n //openRegisterDialog,\n openLoginDialog,\n openChangePasswordDialog,\n onClose,\n } = props;\n const [loginStatus, setLoginStatus] = useState(null);\n const [registerStatus, setRegisterStatus] = useState(null);\n\n const _onClose = useCallback(() => {\n setLoginStatus(null);\n setRegisterStatus(null);\n onClose();\n }, [onClose, setLoginStatus, setRegisterStatus]);\n\n const printDialog = useCallback(() => {\n switch (dialogOpen) {\n case \"register\":\n return (\n \n );\n case \"termsOfService\":\n return ;\n case \"login\":\n return (\n \n );\n case \"changePassword\":\n return (\n \n );\n default:\n }\n }, [\n dialogOpen,\n openChangePasswordDialog,\n openLoginDialog,\n //openRegisterDialog,\n openTermsDialog,\n _onClose,\n loginStatus,\n registerStatus,\n setLoginStatus,\n setRegisterStatus,\n ]);\n\n return (\n \n {dialogOpen && }\n {printDialog()}\n \n );\n}\n\nDialogSelector.propTypes = {\n dialogOpen: PropTypes.string,\n openLoginDialog: PropTypes.func.isRequired,\n onClose: PropTypes.func.isRequired,\n openTermsDialog: PropTypes.func.isRequired,\n openRegisterDialog: PropTypes.func.isRequired,\n openChangePasswordDialog: PropTypes.func.isRequired,\n};\n\nexport default DialogSelector;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { Link } from \"react-router-dom\";\nimport format from \"date-fns/format\";\nimport classNames from \"classnames\";\nimport { Typography, Card, Box } from \"@mui/material\";\n\nimport withStyles from \"@mui/styles/withStyles\";\n\nconst styles = (theme) => ({\n img: {\n width: \"100%\",\n height: \"auto\",\n marginBottom: 8,\n },\n card: {\n boxShadow: theme.shadows[2],\n },\n noDecoration: {\n textDecoration: \"none !important\",\n },\n title: {\n transition: theme.transitions.create([\"background-color\"], {\n duration: theme.transitions.duration.complex,\n easing: theme.transitions.easing.easeInOut,\n }),\n cursor: \"pointer\",\n color: theme.palette.secondary.main,\n \"&:hover\": {\n color: theme.palette.secondary.dark,\n },\n \"&:active\": {\n color: theme.palette.primary.dark,\n },\n },\n link: {\n transition: theme.transitions.create([\"background-color\"], {\n duration: theme.transitions.duration.complex,\n easing: theme.transitions.easing.easeInOut,\n }),\n cursor: \"pointer\",\n color: theme.palette.primary.main,\n \"&:hover\": {\n color: theme.palette.primary.dark,\n },\n },\n showFocus: {\n \"&:focus span\": {\n color: theme.palette.secondary.dark,\n },\n },\n});\n\nfunction BlogCard(props) {\n const { classes, url, src, date, title, snippet } = props;\n\n return (\n \n {src && (\n \n \"\"\n \n )}\n \n {date && (\n \n {format(new Date(date * 1000), \"PPP\", {\n awareOfUnicodeTokens: true,\n })}\n \n )}\n \n \n {title}\n \n \n \n {snippet}\n \n read more...\n \n \n \n \n );\n}\n\nBlogCard.propTypes = {\n classes: PropTypes.object.isRequired,\n url: PropTypes.string.isRequired,\n title: PropTypes.string.isRequired,\n snippet: PropTypes.string.isRequired,\n src: PropTypes.string,\n};\n\nexport default withStyles(styles, { withTheme: true })(BlogCard);\n","import React, { useEffect } from \"react\";\nimport PropTypes from \"prop-types\";\nimport classNames from \"classnames\";\nimport { Grid, Box } from \"@mui/material\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport BlogCard from \"./BlogCard\";\nimport useMediaQuery from \"@mui/material/useMediaQuery\";\n\nconst styles = (theme) => ({\n blogContentWrapper: {\n marginLeft: theme.spacing(1),\n marginRight: theme.spacing(1),\n [theme.breakpoints.up(\"sm\")]: {\n marginLeft: theme.spacing(4),\n marginRight: theme.spacing(4),\n },\n maxWidth: 1280,\n width: \"100%\",\n },\n wrapper: {\n minHeight: \"60vh\",\n },\n noDecoration: {\n textDecoration: \"none !important\",\n }\n});\n\nfunction getVerticalBlogPosts(isWidthUpSm, isWidthUpMd, blogPosts) {\n const gridRows = [[], [], []];\n let rows;\n let xs;\n if (isWidthUpMd) {\n rows = 3;\n xs = 4;\n } else if (isWidthUpSm) {\n rows = 2;\n xs = 6;\n } else {\n rows = 1;\n xs = 12;\n }\n blogPosts.forEach((blogPost, index) => {\n gridRows[index % rows].push(\n \n \n \n \n \n );\n });\n return gridRows.map((element, index) => (\n \n {element}\n \n ));\n}\n\nfunction Blog(props) {\n const { classes, blogPosts, selectBlog, theme } = props;\n\n const isWidthUpSm = useMediaQuery(theme.breakpoints.up(\"sm\"));\n const isWidthUpMd = useMediaQuery(theme.breakpoints.up(\"md\"));\n\n useEffect(() => {\n selectBlog();\n }, [selectBlog]);\n\n return (\n \n
\n \n {getVerticalBlogPosts(isWidthUpSm, isWidthUpMd, blogPosts)}\n \n
\n \n );\n}\n\nBlog.propTypes = {\n selectBlog: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired,\n blogPosts: PropTypes.arrayOf(PropTypes.object),\n};\n\nexport default withStyles(styles, { withTheme: true })(Blog);\n","import React, { useEffect } from \"react\";\nimport PropTypes from \"prop-types\";\nimport classNames from \"classnames\";\nimport format from \"date-fns/format\";\nimport { Grid, Typography, Box } from \"@mui/material\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport BlogCard from \"./BlogCard\";\n//import ShareButton from \"../../../shared/components/ShareButton\";\n//import ZoomImage from \"../../../shared/components/ZoomImage\";\nimport smoothScrollTop from \"../../../shared/functions/smoothScrollTop\";\nimport { Helmet } from \"react-helmet\";\n\nconst styles = (theme) => ({\n blogContentWrapper: {\n marginLeft: theme.spacing(1),\n marginRight: theme.spacing(1),\n [theme.breakpoints.up(\"sm\")]: {\n marginLeft: theme.spacing(4),\n marginRight: theme.spacing(4),\n },\n maxWidth: 1280,\n },\n wrapper: {\n minHeight: \"60vh\",\n },\n img: {\n width: \"100%\",\n height: \"auto\",\n },\n card: {\n marginLeft: 0,\n marginRight: 0,\n [theme.breakpoints.up(\"md\")]: {\n boxShadow: theme.shadows[4],\n paddingLeft: theme.spacing(3),\n paddingRight: theme.spacing(3),\n paddingBottom: theme.spacing(2),\n paddingTop: theme.spacing(2),\n },\n },\n});\n\nfunction BlogPost(props) {\n const {\n classes,\n date,\n title,\n src,\n content,\n otherArticles,\n selectBlog,\n path,\n snippet,\n } = props;\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const meta = {\n title: title + \" - MDLCode\",\n description: snippet,\n url: \"https://mdlcode.dev\" + path,\n image: src,\n domain: \"mdlcode.dev\",\n };\n\n useEffect(() => {\n smoothScrollTop();\n }, []);\n\n useEffect(() => {\n selectBlog();\n }, [selectBlog]);\n\n return (\n \n \n \n {meta.title}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n 0 ? 9 : 12}>\n
\n \n {title}\n \n \n {format(new Date(date * 1000), \"PPP\", {\n awareOfUnicodeTokens: true,\n })}\n \n {/* */}\n {content && content()}\n {/* \n \n {[\"Facebook\", \"Twitter\", \"Reddit\", \"Tumblr\"].map(\n (type, index) => (\n \n \n \n )\n )}\n \n */}\n
\n
\n {otherArticles && otherArticles.length > 0 && (\n \n \n Other articles\n \n\n {otherArticles.map((blogPost) => (\n \n \n \n ))}\n \n )}\n
\n
\n \n );\n}\n\nBlogPost.propTypes = {\n classes: PropTypes.object.isRequired,\n title: PropTypes.string.isRequired,\n date: PropTypes.number.isRequired,\n src: PropTypes.string.isRequired,\n otherArticles: PropTypes.arrayOf(PropTypes.object).isRequired,\n};\n\nexport default withStyles(styles, { withTheme: true })(BlogPost);\n","import React, { Fragment, useState, useCallback, useEffect } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { Portal, Backdrop } from \"@mui/material\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport ScrollbarSize from \"@mui/material/Tabs/ScrollbarSize\";\nimport classNames from \"classnames\";\n\nconst styles = (theme) => ({\n backdrop: {\n zIndex: theme.zIndex.modal,\n backgroundColor: \"rgba(0, 0, 0, 0.8)\",\n },\n portalImgWrapper: {\n position: \"fixed\",\n top: \"0\",\n left: \"0\",\n width: \"100%\",\n height: \"100%\",\n zIndex: theme.zIndex.modal,\n cursor: \"pointer\",\n },\n portalImgInnerWrapper: {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n width: \"100%\",\n height: \"100%\",\n paddingLeft: theme.spacing(1),\n paddingRight: theme.spacing(1),\n paddingTop: theme.spacing(1),\n paddingBottom: theme.spacing(1),\n },\n portalImg: {\n objectFit: \"contain\",\n maxWidth: \"100%\",\n maxHeight: \"100%\",\n },\n zoomedOutImage: {\n cursor: \"pointer\",\n },\n});\n\nfunction ZoomImage(props) {\n const { alt, src, zoomedImgProps, classes, className, ...rest } = props;\n const [zoomedIn, setZoomedIn] = useState(false);\n const [scrollbarSize, setScrollbarSize] = useState(null);\n\n const zoomIn = useCallback(() => {\n setZoomedIn(true);\n }, [setZoomedIn]);\n\n const zoomOut = useCallback(() => {\n setZoomedIn(false);\n }, [setZoomedIn]);\n\n useEffect(() => {\n if (zoomedIn) {\n document.body.style.overflow = \"hidden\";\n document.body.style.paddingRight = `${scrollbarSize}px`;\n document.querySelector(\n \"header\"\n ).style.paddingRight = `${scrollbarSize}px`;\n } else {\n document.body.style.overflow = \"auto\";\n document.body.style.paddingRight = \"0px\";\n document.querySelector(\"header\").style.paddingRight = \"0px\";\n }\n }, [zoomedIn, scrollbarSize]);\n\n return (\n \n \n {zoomedIn && (\n \n
\n
\n
\n \n
\n
\n \n )}\n \n \n );\n}\n\nZoomImage.propTypes = {\n classes: PropTypes.object.isRequired,\n alt: PropTypes.string.isRequired,\n src: PropTypes.string.isRequired,\n theme: PropTypes.object.isRequired,\n zoomedImgProps: PropTypes.object,\n className: PropTypes.string,\n};\n\nexport default withStyles(styles, { withTheme: true })(ZoomImage);\n","import React, { Fragment } from \"react\";\nimport PropTypes from \"prop-types\";\nimport classNames from \"classnames\";\nimport { Grid, Typography, Card, Button, Hidden, Box } from \"@mui/material\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport WaveBorder from \"../../../shared/components/WaveBorder\";\nimport ZoomImage from \"../../../shared/components/ZoomImage\";\nimport useMediaQuery from \"@mui/material/useMediaQuery\";\n\nconst styles = (theme) => ({\n extraLargeButtonLabel: {\n fontSize: theme.typography.body1.fontSize,\n [theme.breakpoints.up(\"sm\")]: {\n fontSize: theme.typography.h6.fontSize,\n },\n },\n extraLargeButton: {\n paddingTop: theme.spacing(1.5),\n paddingBottom: theme.spacing(1.5),\n [theme.breakpoints.up(\"xs\")]: {\n paddingTop: theme.spacing(1),\n paddingBottom: theme.spacing(1),\n },\n [theme.breakpoints.up(\"lg\")]: {\n paddingTop: theme.spacing(2),\n paddingBottom: theme.spacing(2),\n },\n },\n card: {\n boxShadow: theme.shadows[4],\n marginLeft: theme.spacing(2),\n marginRight: theme.spacing(2),\n [theme.breakpoints.up(\"xs\")]: {\n paddingTop: theme.spacing(3),\n paddingBottom: theme.spacing(3),\n },\n [theme.breakpoints.up(\"sm\")]: {\n paddingTop: theme.spacing(5),\n paddingBottom: theme.spacing(5),\n paddingLeft: theme.spacing(4),\n paddingRight: theme.spacing(4),\n },\n [theme.breakpoints.up(\"md\")]: {\n paddingTop: theme.spacing(5.5),\n paddingBottom: theme.spacing(5.5),\n paddingLeft: theme.spacing(5),\n paddingRight: theme.spacing(5),\n },\n [theme.breakpoints.up(\"lg\")]: {\n paddingTop: theme.spacing(6),\n paddingBottom: theme.spacing(6),\n paddingLeft: theme.spacing(6),\n paddingRight: theme.spacing(6),\n },\n [theme.breakpoints.down(\"xl\")]: {\n width: \"auto\",\n },\n },\n wrapper: {\n position: \"relative\",\n backgroundColor: theme.palette.secondary.main,\n paddingBottom: theme.spacing(2),\n },\n image: {\n maxWidth: \"100%\",\n verticalAlign: \"middle\",\n borderRadius: theme.shape.borderRadius,\n boxShadow: theme.shadows[4],\n },\n container: {\n marginTop: theme.spacing(6),\n marginBottom: theme.spacing(12),\n [theme.breakpoints.down(\"lg\")]: {\n marginBottom: theme.spacing(9),\n },\n [theme.breakpoints.down(\"md\")]: {\n marginBottom: theme.spacing(6),\n },\n [theme.breakpoints.down(\"md\")]: {\n marginBottom: theme.spacing(3),\n },\n },\n containerFix: {\n [theme.breakpoints.up(\"md\")]: {\n maxWidth: \"none !important\",\n },\n },\n waveBorder: {\n paddingTop: theme.spacing(4),\n },\n});\n\nfunction HeadSection(props) {\n const { classes, theme } = props;\n const isWidthUpLg = useMediaQuery(theme.breakpoints.up(\"lg\"));\n\n return (\n \n
\n
\n \n \n
\n \n \n \n \n \n MDLCode - VSCode extension for Moodle™ development\n \n \n
\n \n \n Code navigation, new entities wizard, integrated\n script execution directly from the editor\n \n \n \n Find on VSCode Marketplace\n \n
\n
\n \n \n \n \n \n \n \n
\n \n
\n
\n
\n \n
\n );\n}\n\nHeadSection.propTypes = {\n classes: PropTypes.object,\n theme: PropTypes.object,\n};\n\nexport default withStyles(styles, { withTheme: true })(HeadSection);\n","function calculateSpacing(width, theme) {\n const currentWidth = theme[\"breakpoints\"][\"values\"][width];\n if (currentWidth >= theme[\"breakpoints\"][\"values\"][\"lg\"]) {\n return 10;\n }\n if (currentWidth >= theme[\"breakpoints\"][\"values\"][\"md\"]) {\n return 8;\n }\n if (currentWidth >= theme[\"breakpoints\"][\"values\"][\"sm\"]) {\n return 6;\n }\n return 4;\n}\n\nexport default calculateSpacing;\n","import React, { Fragment } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { Typography } from \"@mui/material\";\n\nimport withStyles from \"@mui/styles/withStyles\";\n\nconst styles = (theme) => ({\n iconWrapper: {\n borderRadius: theme.shape.borderRadius,\n textAlign: \"center\",\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n marginBottom: theme.spacing(3),\n padding: theme.spacing(1) * 1.5,\n },\n});\n\nfunction shadeColor(hex, percent) {\n const f = parseInt(hex.slice(1), 16);\n\n const t = percent < 0 ? 0 : 255;\n\n const p = percent < 0 ? percent * -1 : percent;\n\n const R = f >> 16;\n\n const G = (f >> 8) & 0x00ff;\n\n const B = f & 0x0000ff;\n return `#${(\n 0x1000000 +\n (Math.round((t - R) * p) + R) * 0x10000 +\n (Math.round((t - G) * p) + G) * 0x100 +\n (Math.round((t - B) * p) + B)\n )\n .toString(16)\n .slice(1)}`;\n}\n\nfunction FeatureCard(props) {\n const { classes, Icon, color, headline, text } = props;\n return (\n \n \n {Icon}\n \n \n {headline}\n \n \n {text}\n \n \n );\n}\n\nFeatureCard.propTypes = {\n classes: PropTypes.object.isRequired,\n Icon: PropTypes.element.isRequired,\n color: PropTypes.string.isRequired,\n headline: PropTypes.string.isRequired,\n text: PropTypes.string.isRequired,\n};\n\nexport default withStyles(styles, { withTheme: true })(FeatureCard);\n","import { useTheme } from \"@mui/material/styles\";\nimport useMediaQuery from \"@mui/material/useMediaQuery\";\n\n/**\n * Be careful using this hook. It only works because the number of\n * breakpoints in theme is static. It will break once you change the number of\n * breakpoints. See https://reactjs.org/docs/hooks-rules.html#only-call-hooks-at-the-top-level\n */\nfunction useWidth() {\n const theme = useTheme();\n const keys = [...theme.breakpoints.keys].reverse();\n return (\n keys.reduce((output, key) => {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const matches = useMediaQuery(theme.breakpoints.up(key));\n return !output && matches ? key : output;\n }, null) || \"xs\"\n );\n}\n\nexport default useWidth;\n","import React from \"react\";\nimport { Grid, Typography } from \"@mui/material\";\nimport AutoFixHighIcon from '@mui/icons-material/AutoFixHigh';\nimport ListIcon from \"@mui/icons-material/List\";\nimport SubdirectoryArrowRightIcon from '@mui/icons-material/SubdirectoryArrowRight';\nimport CancelIcon from \"@mui/icons-material/Cancel\";\nimport CheckIcon from '@mui/icons-material/Check';\nimport ArchiveIcon from '@mui/icons-material/Archive';\nimport DirectionsRunIcon from '@mui/icons-material/DirectionsRun';\nimport CreateIcon from '@mui/icons-material/Create';\nimport BoltIcon from '@mui/icons-material/Bolt';\n\nimport calculateSpacing from \"./calculateSpacing\";\nimport useMediaQuery from \"@mui/material/useMediaQuery\";\nimport { withTheme } from \"@mui/styles\";\nimport FeatureCard from \"./FeatureCard\";\nimport useWidth from \"../../../shared/functions/useWidth\";\n\nconst iconSize = 30;\n\nconst features = [\n {\n color: \"#00C853\",\n headline: \"Plugin navigation\",\n text: \"View all plugins organised by type in a tree structure. Switch between all plugins and add-ons only.\",\n icon: ,\n mdDelay: \"0\",\n smDelay: \"0\",\n },\n {\n color: \"#6200EA\",\n headline: \"Go to definition\",\n text: \"Lookup language strings, database tables, callbacks, templates, Web Services, JavaScript modules, and other Moodle™ elements from PHP, JS, and Mustache files\",\n icon: ,\n mdDelay: \"200\",\n smDelay: \"200\",\n },\n {\n color: \"#0091EA\",\n headline: \"Plugin generation\",\n text: \"Generate structure and minimum required files for any Moodle™ plugin type\",\n icon: ,\n mdDelay: \"400\",\n smDelay: \"0\",\n },\n {\n color: \"#d50000\",\n headline: \"File templates\",\n text: \"Create common files in a single click, such as db/install.php, access.php, version.php, etc.\",\n icon: ,\n mdDelay: \"0\",\n smDelay: \"200\",\n },\n {\n color: \"#DD2C00\",\n headline: \"Wizard\",\n text: \"Wizard for generating Web Services, capabilities, strings, etc.\",\n icon: ,\n mdDelay: \"200\",\n smDelay: \"0\",\n },\n {\n color: \"#64DD17\",\n headline: \"Script execution\",\n text: \"Execute CLI scripts, scheduled tasks and Web Services integrated in the editor\",\n icon: ,\n mdDelay: \"400\",\n smDelay: \"200\",\n },\n {\n color: \"#304FFE\",\n headline: \"Plugin installation\",\n text: \"Simple installation of plugins from the Moodle™ plugins directory, GitHub, or a local ZIP file\",\n icon: ,\n mdDelay: \"0\",\n smDelay: \"0\",\n },\n {\n color: \"#C51162\",\n headline: \"Diagnostics\",\n text: \"Identification of mistyped references to Moodle™ elements. Diagnostics for various issues with quick fixes.\",\n icon: ,\n mdDelay: \"200\",\n smDelay: \"200\",\n },\n {\n color: \"#00B8D4\",\n headline: \"Autocomplete\",\n text: \"Autocomplete for callbacks and Behat steps\",\n icon: ,\n mdDelay: \"400\",\n smDelay: \"0\",\n },\n];\n\nfunction FeatureSection(props) {\n const { theme } = props;\n const width = useWidth();\n const isWidthUpMd = useMediaQuery(theme.breakpoints.up(\"md\"));\n\n return (\n
\n
\n \n Features\n \n
\n \n {features.map((element) => (\n \n \n \n ))}\n \n
\n
\n
\n );\n}\n\nFeatureSection.propTypes = {};\n\nexport default withTheme(FeatureSection);\n","import CheckIcon from \"@mui/icons-material/Check\";\nimport { Box, Button, Typography } from \"@mui/material\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport PropTypes from \"prop-types\";\nimport React from \"react\";\nimport { useHistory } from \"react-router-dom\";\n\nconst styles = (theme) => ({\n card: {\n paddingTop: theme.spacing(6),\n paddingBottom: theme.spacing(6),\n paddingLeft: theme.spacing(4),\n paddingRight: theme.spacing(4),\n marginTop: theme.spacing(2),\n border: `3px solid ${theme.palette.primary.dark}`,\n borderRadius: theme.shape.borderRadius * 2,\n },\n cardHightlighted: {\n paddingTop: theme.spacing(8),\n paddingBottom: theme.spacing(4),\n paddingLeft: theme.spacing(4),\n paddingRight: theme.spacing(4),\n border: `3px solid ${theme.palette.primary.dark}`,\n borderRadius: theme.shape.borderRadius * 2,\n backgroundColor: theme.palette.primary.main,\n [theme.breakpoints.down(\"sm\")]: {\n marginTop: theme.spacing(2),\n },\n },\n title: {\n color: theme.palette.primary.main,\n },\n});\n\nfunction PriceCard(props) {\n const { classes, theme, title, pricing, features, highlighted, buttonUrl } =\n props;\n const history = useHistory();\n return (\n
\n \n \n {title}\n \n \n \n {pricing}\n \n {features.map((feature, index) => (\n \n \n \n \n {feature}\n \n \n \n ))}\n {buttonUrl && (\n \n history.push(buttonUrl)}\n >\n Purchase\n \n \n )}\n
\n );\n}\n\nPriceCard.propTypes = {\n classes: PropTypes.object.isRequired,\n theme: PropTypes.object.isRequired,\n title: PropTypes.string.isRequired,\n pricing: PropTypes.oneOfType([PropTypes.node, PropTypes.string]).isRequired,\n highlighted: PropTypes.bool,\n};\n\nexport default withStyles(styles, { withTheme: true })(PriceCard);\n","import React from \"react\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Box, MenuItem, Select, TextField } from \"@mui/material\";\nimport { useDisplayPrice } from \"../functions/useDisplayPrice\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport {\n countryRequiresPostcode,\n loadPrices,\n selectUserCountry,\n setPostcode,\n setUserCountry,\n} from \"../reducers/Pricing\";\nconst allCountries = require(\"./paddle_countries.json\");\n\nconst styles = (theme) => ({\n formlabel: {\n fontSize: \"0.93rem\",\n },\n price: {\n fontSize: \"1.5rem\",\n },\n});\n\nconst CountrySelector = ({ onChange, extended, isCommercial, classes }) => {\n const dispatch = useDispatch();\n\n const onCountryChange = (event) => {\n dispatch(loadPrices(event.target.value));\n dispatch(setUserCountry(event.target.value));\n onChange && onChange(event.target.value);\n };\n\n const userCountry = useSelector(selectUserCountry);\n const { basePrice, baseCurrency, currency, taxRate } = useDisplayPrice({\n isCommercial,\n });\n const countryInfo = allCountries.data.find((c) => c.code === userCountry);\n const requiresPostcode = countryRequiresPostcode(userCountry);\n // const priceUsdPers = useDisplayPrice({ country: \"US\" }).price;\n // const priceUsdComm = useDisplayPrice({\n // country: \"US\",\n // isCommercial: true,\n // }).price;\n\n const postCodeChanged = (e) => {\n dispatch(setPostcode(e.target.value));\n dispatch(loadPrices(userCountry, e.target.value));\n };\n\n return (\n <>\n \n
\n \n
\n {!extended && (\n Currency: {currency}\n )}\n \n {extended && requiresPostcode && (\n \n \n \n )}\n {extended && (\n \n Customers in {countryInfo?.name ?? userCountry} will be charged\n in {currency}\n {currency !== baseCurrency && (\n \n {\" \"}\n at the exchange rate in effect at the time of payment. The base\n price is {basePrice} {baseCurrency}\n {isCommercial ? \" / year,seat\" : \" / year\"}\n \n )}\n .\n {taxRate > 0 && (\n <>\n
\n Price includes {Math.round(taxRate * 100) / 100}% tax.\n \n )}\n
\n )}\n \n );\n};\n\nexport default withStyles(styles, { withTheme: true })(CountrySelector);\n","import React, { useEffect } from \"react\";\nimport classNames from \"classnames\";\nimport { Grid, Typography } from \"@mui/material\";\nimport { withStyles } from \"@mui/styles\";\nimport PriceCard from \"./PriceCard\";\nimport calculateSpacing from \"./calculateSpacing\";\nimport useMediaQuery from \"@mui/material/useMediaQuery\";\nimport useWidth from \"../../../shared/functions/useWidth\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport {\n loadCountry,\n loadPrices,\n selectCountry,\n} from \"../../../shared/reducers/Pricing\";\nimport CountrySelector from \"../../../shared/components/CountrySelector\";\nimport { useDisplayPrice } from \"../../../shared/functions/useDisplayPrice\";\n\nconst styles = (theme) => ({\n containerFix: {\n [theme.breakpoints.down(\"lg\")]: {\n paddingLeft: theme.spacing(6),\n paddingRight: theme.spacing(6),\n },\n [theme.breakpoints.down(\"md\")]: {\n paddingLeft: theme.spacing(4),\n paddingRight: theme.spacing(4),\n },\n [theme.breakpoints.down(\"sm\")]: {\n paddingLeft: theme.spacing(2),\n paddingRight: theme.spacing(2),\n },\n overflow: \"hidden\",\n paddingTop: theme.spacing(1),\n paddingBottom: theme.spacing(1),\n },\n cardWrapper: {\n [theme.breakpoints.down(\"sm\")]: {\n marginLeft: \"auto\",\n marginRight: \"auto\",\n maxWidth: 340,\n },\n },\n cardWrapperHighlighted: {\n [theme.breakpoints.down(\"sm\")]: {\n marginLeft: \"auto\",\n marginRight: \"auto\",\n maxWidth: 360,\n },\n },\n});\n\nfunction PricingSection(props) {\n const { classes, theme } = props;\n const width = useWidth();\n const isWidthUpMd = useMediaQuery(theme.breakpoints.up(\"md\"));\n const commonFeatures = [\n \"Plugins explorer\",\n '\"Go to definition\" navigation',\n \"CLI script execution\",\n \"Plugin installation\",\n \"Behat autocomplete\",\n ];\n const freeFeatures = [...commonFeatures, \"Basic wizard options\"];\n const personalFeatures = [\n ...commonFeatures,\n \"All wizard options\",\n \"Advanced plugin generator\",\n '\"Go to reference\" navigation',\n \"Callback autocomplete\",\n \"Common file templates\",\n \"Web Service execution\",\n ];\n const commercialFeatures = [...personalFeatures, \"Seat management\"];\n\n const dispatch = useDispatch();\n const country = useSelector(selectCountry);\n useEffect(() => {\n dispatch(loadCountry());\n dispatch(loadPrices(\"US\"));\n }, [dispatch]);\n useEffect(() => {\n if (country !== \"US\" && country) dispatch(loadPrices(country));\n }, [dispatch, country]);\n //console.log(\"-2-country\", country);\n\n return (\n
\n \n Pricing\n \n\n
\n \n \n Free}\n features={freeFeatures}\n />\n \n \n \n {useDisplayPrice({ isCommercial: false }).price}\n / year\n \n }\n features={personalFeatures}\n buttonUrl=\"/purchase\"\n />\n \n \n \n {useDisplayPrice({ isCommercial: true }).price}\n / year, seat\n \n }\n features={commercialFeatures}\n buttonUrl=\"/purchase#commercial\"\n />\n \n \n \n
\n
\n );\n}\n\nPricingSection.propTypes = {};\n\nexport default withStyles(styles, { withTheme: true })(PricingSection);\n","import React, { Fragment, useEffect } from \"react\";\nimport PropTypes from \"prop-types\";\nimport HeadSection from \"./HeadSection\";\nimport FeatureSection from \"./FeatureSection\";\nimport PricingSection from \"./PricingSection\";\n\nfunction Home(props) {\n const { selectHome } = props;\n useEffect(() => {\n selectHome();\n }, [selectHome]);\n return (\n \n \n \n \n \n );\n}\n\nHome.propTypes = {\n selectHome: PropTypes.func.isRequired\n};\n\nexport default Home;\n","import { Typography } from \"@mui/material\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport PropTypes from \"prop-types\";\nimport React from \"react\";\nimport { useLocation } from \"react-router\";\nimport { Link } from \"react-router-dom\";\n\nconst styles = (theme) => ({});\n\nfunction PurchaseCompleted({ classes, theme }) {\n const { search } = useLocation();\n const urlParams = new URLSearchParams(search);\n const isInvoice = urlParams.get(\"invoice\");\n return (\n
\n \n Thank you\n \n {isInvoice && (\n

\n Our representative will contact you shortly and send you an invoice\n with bank details.\n

\n )}\n {!isInvoice && (\n <>\n

\n Your purchase is completed. You can find your license key{\" \"}\n in your email. In order to activate your license key, please\n follow the instructions in the email.\n

\n

\n Your can also see your license key in your{\" \"}\n \n MDLCode Dashboard\n \n . To login for the first time click \"Request New Password\".\n

\n

\n If you do not receive the email, check your spam folder. If\n you think that you may have mistyped the email address, send us a\n message to info@lmscloud.io\n

\n \n )}\n
\n );\n}\n\nPurchaseCompleted.propTypes = {\n classes: PropTypes.object.isRequired,\n};\n\nexport default withStyles(styles, { withTheme: true })(PurchaseCompleted);\n","import PropTypes from \"prop-types\";\nimport React, { useEffect, useState } from \"react\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Box, Grid, Hidden, ListItem } from \"@mui/material\";\nimport classNames from \"classnames\";\nimport { HashLink } from \"react-router-hash-link\";\n\nconst styles = (theme) => ({\n docsContentWrapper: {\n marginLeft: theme.spacing(1),\n marginRight: theme.spacing(1),\n [theme.breakpoints.up(\"sm\")]: {\n marginLeft: theme.spacing(4),\n marginRight: theme.spacing(4),\n },\n maxWidth: 1280,\n },\n wrapper: {\n minHeight: \"60vh\",\n },\n card: {\n marginLeft: 0,\n marginRight: 0,\n [theme.breakpoints.up(\"md\")]: {\n boxShadow: theme.shadows[4],\n paddingLeft: theme.spacing(3),\n paddingRight: theme.spacing(3),\n paddingBottom: theme.spacing(2),\n paddingTop: theme.spacing(2),\n },\n },\n tocWrapper: {\n fontSize: \"0.875rem\",\n },\n});\n\nfunction DocPage({\n classes,\n theme,\n filename,\n content,\n selectDocumentation,\n docsPages,\n blogPosts,\n extraContents,\n}) {\n useEffect(() => {\n selectDocumentation();\n }, [selectDocumentation]);\n\n const [toc, setToc] = useState(null);\n const [orderedPages, setOrderedPages] = useState([]);\n\n useEffect(() => {\n if (docsPages && !toc) {\n const tocPage = docsPages.find((page) => page.filename === \"toc\");\n if (tocPage) {\n const pages = [];\n const newToc = tocPage.content({\n extraComponents: {\n li(props) {\n const { children, node, ordered, ...rest } = props;\n if (\n children[0] &&\n children[0].type &&\n children[0].props &&\n children[0].type.name === \"a\"\n ) {\n const isCurrent = children[0].props.href === filename + \".md\";\n rest.className = (\n (rest.className ?? \"\") + (isCurrent ? \" current\" : \"\")\n ).trim();\n pages.push({\n filename: children[0].props.href.replace(\".md\", \"\"),\n text: children[0].props.children[0],\n });\n }\n return {children};\n },\n },\n });\n setToc(newToc);\n setTimeout(() => setOrderedPages(pages), 500);\n }\n }\n }, [docsPages, toc, setToc, filename, setOrderedPages]);\n\n let nextPage = null;\n for (let i in orderedPages) {\n if (orderedPages[i].filename === filename) {\n nextPage = orderedPages[parseInt(i) + 1];\n break;\n }\n }\n\n return (\n \n \n \n \n
\n \n {toc}\n \n
\n
\n
\n \n
\n
\n {content()}\n {extraContents ?? \"\"}\n
\n {nextPage && (\n
\n \n Next topic:{\" \"}\n \n {nextPage.text}\n \n \n
\n )}{\" \"}\n
{toc}
\n
\n
\n
\n \n );\n}\n\nDocPage.propTypes = {\n classes: PropTypes.object.isRequired,\n};\n\nexport default withStyles(styles, { withTheme: true })(DocPage);\n","/* eslint-disable no-unused-vars */\nimport React from \"react\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport PropTypes from \"prop-types\";\nimport classNames from \"classnames\";\nimport { Grid, Box } from \"@mui/material\";\nimport useMediaQuery from \"@mui/material/useMediaQuery\";\nimport BlogCard from \"../blog/BlogCard\";\n\nconst recommended = [\"navigation\", \"writing\"];\nconst styles = (theme) => ({});\n\nfunction FeaturedTutorials({ blogPosts, classes }) {\n const posts = blogPosts.filter((post) => recommended.includes(post.name));\n return (\n \n
\n

Want a quick overview? Watch these short videos

\n \n {posts.map((blogPost) => (\n \n \n \n ))}\n \n
\n \n );\n}\n\nexport default withStyles(styles, { withTheme: true })(FeaturedTutorials);\n","import PropTypes from \"prop-types\";\nimport React, { useEffect, useState } from \"react\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport DocPage from \"./DocPage\";\nimport FeaturedTutorials from \"./FeaturedTutorials\";\n\nconst styles = (theme) => ({});\n\nfunction Documentation({\n classes,\n theme,\n selectDocumentation,\n docsPages,\n blogPosts,\n}) {\n const [readmePage, setReadmePage] = useState(null);\n useEffect(() => {\n if (docsPages) {\n docsPages.forEach((page) => {\n if (page.filename === \"README\") {\n setReadmePage(page);\n }\n });\n }\n }, [docsPages, setReadmePage]);\n\n useEffect(() => {\n selectDocumentation();\n }, [selectDocumentation]);\n\n return (\n <>\n {readmePage && (\n }\n >\n )}\n \n );\n}\n\nDocumentation.propTypes = {\n classes: PropTypes.object.isRequired,\n};\n\nexport default withStyles(styles, { withTheme: true })(Documentation);\n","import { Box } from \"@mui/material\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport classNames from \"classnames\";\nimport PropTypes from \"prop-types\";\nimport React from \"react\";\nimport TOS from \"../../../assets/tos.json\";\nimport DisplayMarkdown from \"../../../shared/components/DisplayMarkdown\";\n\nconst styles = (theme) => ({\n tosContentWrapper: {\n marginLeft: theme.spacing(1),\n marginRight: theme.spacing(1),\n [theme.breakpoints.up(\"sm\")]: {\n marginLeft: theme.spacing(4),\n marginRight: theme.spacing(4),\n },\n maxWidth: 1280,\n },\n wrapper: {\n minHeight: \"60vh\",\n },\n card: {\n marginLeft: 0,\n marginRight: 0,\n [theme.breakpoints.up(\"md\")]: {\n boxShadow: theme.shadows[4],\n paddingLeft: theme.spacing(3),\n paddingRight: theme.spacing(3),\n paddingBottom: theme.spacing(2),\n paddingTop: theme.spacing(2),\n },\n },\n});\n\nfunction TermsOfService({ classes, theme }) {\n let tosText = TOS.text;\n\n return (\n \n
\n
\n {tosText}\n
\n
\n \n );\n}\n\nTermsOfService.propTypes = {\n classes: PropTypes.object.isRequired,\n};\n\nexport default withStyles(styles, { withTheme: true })(TermsOfService);\n","import {\n Checkbox,\n FormControlLabel,\n FormHelperText,\n Typography,\n} from \"@mui/material\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport PropTypes from \"prop-types\";\nimport React from \"react\";\n\nconst styles = (theme) => ({\n link: {\n transition: theme.transitions.create([\"background-color\"], {\n duration: theme.transitions.duration.complex,\n easing: theme.transitions.easing.easeInOut,\n }),\n cursor: \"pointer\",\n color: theme.palette.primary.main,\n \"&:enabled:hover\": {\n color: theme.palette.primary.dark,\n },\n \"&:enabled:focus\": {\n color: theme.palette.primary.dark,\n },\n },\n});\n\nfunction CheckboxTOS({\n classes,\n theme,\n openTermsDialog,\n isLoading,\n registerTermsCheckbox,\n setHasTermsOfServiceError,\n hasTermsOfServiceError,\n}) {\n return (\n <>\n {\n setHasTermsOfServiceError(false);\n }}\n />\n }\n label={\n \n I agree to the\n {\n // For screenreaders listen to space and enter events\n if (\n (!isLoading && event.keyCode === 13) ||\n event.keyCode === 32\n ) {\n openTermsDialog();\n }\n }}\n >\n {\" \"}\n MDLCode terms of service\n \n .\n \n }\n />\n {hasTermsOfServiceError && (\n \n You have to accept terms of service.\n \n )}\n \n );\n}\n\nCheckboxTOS.propTypes = {\n classes: PropTypes.object.isRequired,\n};\n\nexport default withStyles(styles, { withTheme: true })(CheckboxTOS);\n","import axios from \"axios\";\n\nconst generateInvoice = async (data) => {\n try {\n const response = await axios.post(\n process.env.REACT_APP_API + \"/billing/get-invoice\",\n { ...data, returnurl: window.location.href }\n );\n if (response.data.status === \"success\" && response.data.url) {\n window.location.href = response.data.url;\n return;\n }\n return response.data.message;\n } catch (error) {\n return error.message;\n }\n};\n\nconst prepareCheckoutPaddle = async (data) => {\n let errorMessage = \"\";\n try {\n const response = await axios.post(\n process.env.REACT_APP_API + \"/billing/checkout\",\n { ...data }\n );\n if (response.data.status === \"success\" && response.data.customerid) {\n return {\n customerid: response.data.customerid,\n addressid: response.data.addressid,\n businessid: response.data.businessid,\n };\n }\n errorMessage = response.data.message;\n } catch (error) {\n errorMessage = `${error}`;\n }\n throw new Error(errorMessage);\n};\n\nexport { generateInvoice, prepareCheckoutPaddle };\n","import {\n Checkbox,\n FormControlLabel,\n FormHelperText,\n Typography,\n} from \"@mui/material\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport PropTypes from \"prop-types\";\nimport React from \"react\";\n\nconst styles = (theme) => ({\n link: {\n transition: theme.transitions.create([\"background-color\"], {\n duration: theme.transitions.duration.complex,\n easing: theme.transitions.easing.easeInOut,\n }),\n cursor: \"pointer\",\n color: theme.palette.primary.main,\n \"&:enabled:hover\": {\n color: theme.palette.primary.dark,\n },\n \"&:enabled:focus\": {\n color: theme.palette.primary.dark,\n },\n },\n});\n\nfunction CheckboxPaddle({\n classes,\n theme,\n isLoading,\n registerTermsCheckbox,\n setHasTermsOfServiceError,\n hasTermsOfServiceError,\n}) {\n const openTermsDialog = () => {\n window.open(\"https://www.paddle.com/legal/checkout-buyer-terms\", \"_blank\");\n };\n\n return (\n <>\n {\n setHasTermsOfServiceError(false);\n }}\n />\n }\n label={\n \n I agree to the\n {\n // For screenreaders listen to space and enter events\n if (\n (!isLoading && event.keyCode === 13) ||\n event.keyCode === 32\n ) {\n openTermsDialog();\n }\n }}\n >\n {\" \"}\n Paddle Checkout Buyer Terms and Conditions\n \n .\n \n }\n />\n {hasTermsOfServiceError && (\n \n You have to accept terms of service.\n \n )}\n \n );\n}\n\nCheckboxPaddle.propTypes = {\n classes: PropTypes.object.isRequired,\n};\n\nexport default withStyles(styles, { withTheme: true })(CheckboxPaddle);\n","/* eslint-disable no-unused-vars */\nimport {\n Alert,\n Box,\n Button,\n Grid,\n TextField,\n FormControlLabel,\n Checkbox,\n Accordion,\n AccordionSummary,\n AccordionDetails,\n Typography,\n RadioGroup,\n Radio,\n Link,\n} from \"@mui/material\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport React, { useState, useRef, useEffect } from \"react\";\nimport ButtonCircularProgress from \"../../../shared/components/ButtonCircularProgress\";\n// import { generateInvoice } from \"./Api\";\nimport CheckboxTOS from \"./CheckboxTOS\";\nimport ArrowDropDownIcon from \"@mui/icons-material/ArrowDropDown\";\nimport { useHistory, useLocation } from \"react-router\";\nimport { initializePaddle } from \"@paddle/paddle-js\";\nimport CountrySelector from \"../../../shared/components/CountrySelector\";\nimport { useDisplayPrice } from \"../../../shared/functions/useDisplayPrice\";\nimport {\n countryRequiresPostcode,\n initialisePaddleMy,\n selectCountry,\n selectPostcode,\n selectUserCountry,\n} from \"../../../shared/reducers/Pricing\";\nimport { useSelector } from \"react-redux\";\nimport { prepareCheckoutPaddle } from \"./Api\";\nimport CheckboxPaddle from \"./CheckboxPaddle\";\n\nconst styles = (theme) => ({\n formlabel: {\n fontSize: \"0.93rem\",\n },\n price: {\n fontSize: \"1.5rem\",\n },\n});\n\nconst defaultBilling = {\n address: {\n city: \"\",\n country: \"GB\",\n line1: \"\",\n line2: \"\",\n postal_code: \"\",\n state: \"\",\n },\n name: \"\",\n};\n\nconst PurchaseFormPaddle = ({ classes, openTermsDialog }) => {\n const [isCommercial, setIsCommercial] = useState(false);\n const [showFullAddress, setShowFullAddress] = useState(false);\n const [seats, setSeats] = useState(1);\n const [seatsError, setSeatsError] = useState(null);\n const [email, setEmail] = useState(\"\");\n const [emailError, setEmailError] = useState(null);\n const [orgName, setOrgName] = useState(\"\");\n const [orgNameError, setOrgNameError] = useState(null);\n const [firstname, setFirstname] = useState(\"\");\n const [firstnameError, setFirstnameError] = useState(null);\n const [lastname, setLastname] = useState(\"\");\n const [lastnameError, setLastnameError] = useState(null);\n const [loading, setLoading] = useState(false);\n const [submitError, setSubmitError] = useState(null);\n const registerTermsCheckbox = useRef();\n const registerPaddleCheckbox = useRef();\n const [hasTermsOfServiceError, setHasTermsOfServiceError] = useState(false);\n const [hasPaddleTermsError, setHasPaddleTermsError] = useState(false);\n const [invoiceme, setInvoiceme] = useState(false);\n const [billing, setBilling] = useState({});\n const [billing_errors, setBillingErrors] = useState({});\n let history = useHistory();\n\n const location = useLocation();\n useEffect(() => {\n if (location.hash === \"#commercial\") {\n setIsCommercial(true);\n }\n }, [location]);\n\n // useEffect(() => {\n // setPersCountry(country);\n // }, [country]);\n\n const country = useSelector(selectUserCountry);\n const postcode = useSelector(selectPostcode);\n if (country) {\n defaultBilling.address.country = country;\n }\n const validateEmail = (value) => {\n if (value.trim().length === 0) {\n setEmailError(\"Email is required\");\n } else if (!/\\S+@\\S+\\.\\S+/.test(value)) {\n setEmailError(\"Email is invalid\");\n } else {\n setEmailError(null);\n return true;\n }\n return false;\n };\n\n const subscriptionChanged = (event) => {\n setIsCommercial(event.target.value === \"commercial\");\n };\n\n const emailChanged = (event, doValidate = false) => {\n setEmail(`${event.target.value}`);\n doValidate && validateEmail(`${event.target.value}`);\n };\n\n const validateOrgName = (value) => {\n if (value.trim().length === 0) {\n setOrgNameError(\"Organisation name is required\");\n } else {\n setOrgNameError(null);\n return true;\n }\n return false;\n };\n\n const orgNameChanged = (event, doValidate = false) => {\n setOrgName(`${event.target.value}`);\n doValidate && validateOrgName(`${event.target.value}`);\n };\n\n const firstNameChanged = (event) => {\n setFirstname(`${event.target.value}`);\n setFirstnameError(null);\n };\n\n const lastNameChanged = (event) => {\n setLastname(`${event.target.value}`);\n setLastnameError(null);\n };\n\n const seatsChanged = (e) => {\n setSeats(parseFloat(e.target.value));\n };\n\n const validateName = (firstname, lastname) => {\n const fne = firstname.trim().length ? null : \"First name is required\";\n const lne = lastname.trim().length ? null : \"Last name is required\";\n setFirstnameError(fne);\n setLastnameError(lne);\n return fne === null && lne === null;\n };\n\n const billingFields = {\n first_line: \"Address line 1\",\n second_line: \"Address line 2\",\n city: \"City\",\n region: \"Region/state\",\n postal_code: \"Zip/Postal code\",\n tax_number: \"Tax ID number (for VAT/GST)\",\n };\n\n const validateBilling = () => {\n const billing_errors = {};\n if (isCommercial && invoiceme) {\n billing_errors[\"first_line\"] = billing[\"first_line\"]?.trim().length\n ? null\n : \"This field is required\";\n billing_errors[\"city\"] = billing[\"city\"]?.trim().length\n ? null\n : \"This field is required\";\n billing_errors[\"postal_code\"] = billing[\"postal_code\"]?.trim().length\n ? null\n : \"This field is required\";\n }\n setBillingErrors(billing_errors);\n return Object.values(billing_errors).every((v) => v === null);\n };\n\n const validateSeats = (seats) => {\n if (parseInt(seats) < 1) {\n setSeatsError(\"Must be at least 1 seat\");\n } else if (parseInt(seats) !== parseFloat(seats)) {\n setSeatsError(\"Must be a whole number\");\n } else {\n setSeatsError(null);\n return true;\n }\n return false;\n };\n\n const validateTOS = () => {\n let res = true;\n setHasTermsOfServiceError(false);\n setHasPaddleTermsError(false);\n if (!registerTermsCheckbox.current.checked) {\n setHasTermsOfServiceError(true);\n res = false;\n }\n if (!registerPaddleCheckbox.current.checked) {\n setHasPaddleTermsError(true);\n res = false;\n }\n return res;\n };\n\n const onSubmit = (e) => {\n e.preventDefault();\n let isValid = true;\n isValid = validateEmail(email) && isValid;\n isValid = validateName(firstname, lastname) && isValid;\n isValid = validateSeats(seats) && isValid;\n isValid = validateTOS() && isValid;\n isValid = (!isCommercial || validateOrgName(orgName)) && isValid;\n isValid =\n (!isCommercial ||\n (!invoiceme && !showFullAddress) ||\n validateBilling()) &&\n isValid;\n\n if (!isValid) {\n return;\n }\n\n const quantity = isCommercial ? seats : 1;\n const priceId = isCommercial\n ? process.env.REACT_APP_PADDLE_COMM\n : process.env.REACT_APP_PADDLE_PERS;\n let items = [{ priceId, quantity }];\n const requiresPostcode = countryRequiresPostcode(country);\n let data = {\n email,\n firstname,\n lastname,\n name: orgName,\n iscommercial: isCommercial ? 1 : 0,\n address: {\n country_code: country,\n postal_code: requiresPostcode ? postcode : \"\",\n },\n };\n if (isCommercial && (invoiceme || showFullAddress)) {\n data[\"tax_number\"] = billing[\"tax_number\"] ?? \"\";\n data.address[\"first_line\"] = billing[\"first_line\"] ?? \"\";\n data.address[\"second_line\"] = billing[\"second_line\"] ?? \"\";\n data.address[\"city\"] = billing[\"city\"] ?? \"\";\n data.address[\"region\"] = billing[\"region\"] ?? \"\";\n if ((billing[\"postal_code\"] ?? \"\").trim() !== \"\") {\n data.address[\"postal_code\"] = billing[\"postal_code\"];\n }\n }\n if (isCommercial && invoiceme) {\n data.invoice = items;\n }\n const settings = {\n successUrl: window.location.origin + \"/purchase/completed\",\n showAddDiscounts: true,\n locale: \"en\",\n displayMode: \"overlay\",\n allowLogout: false,\n showAddTaxId: isCommercial,\n };\n\n setLoading(true);\n setSubmitError(null);\n prepareCheckoutPaddle(data)\n .then((resp) => {\n const { customerid, addressid, businessid } = resp;\n if (isCommercial && invoiceme) {\n setLoading(false);\n history.push(\"/purchase/completed?invoice=1\");\n return;\n }\n initialisePaddleMy().then((Paddle) => {\n setLoading(false);\n const customer = {\n id: customerid,\n address: addressid\n ? { id: addressid }\n : { countryCode: country, postalCode: postcode },\n };\n if (addressid && businessid) {\n customer.business = { id: businessid };\n } else if (isCommercial) {\n customer.business = { name: orgName };\n if (showFullAddress) {\n customer.business.taxIdentifier = billing[\"tax_number\"];\n }\n }\n Paddle.Checkout.open({ items, customer, settings });\n });\n })\n .catch((error) => {\n setSubmitError(`${error}`);\n setLoading(false);\n });\n // const data = {\n // isCommercial,\n // email,\n // seats,\n // billing: isCommercial\n // ? billing.value\n // : {\n // /*address: { country: persCountry }*/\n // address: { country },\n // },\n // firstname,\n // lastname,\n // vat,\n // iseu: isEU > 0,\n // promocode: promocode ? true : false,\n // invoiceme,\n // };\n // setLoading(true);\n // setSubmitError(null);\n // generateInvoice(data).then((errorMessage) => {\n // // It will redirect on success\n // if (errorMessage) {\n // setSubmitError(errorMessage);\n // setLoading(false);\n // }\n // });\n };\n\n const displayPrice = useDisplayPrice({ isCommercial, seats }).price;\n const currency = useDisplayPrice({ isCommercial, seats }).currency;\n\n return (\n
\n {/* Subscription */}\n \n \n \n {/* Number of seats selector and price display */}\n \n \n {isCommercial && (\n \n )}\n \n \n
 
\n
\n {displayPrice}/ year\n
\n
\n
\n {/* Country */}\n \n {isCommercial && (\n \n \n \n )}\n {isCommercial &&

Contact details

}\n {/* E-mail */}\n \n \n \n {/* First and last name */}\n \n \n \n \n \n \n \n \n {isCommercial && !(showFullAddress || invoiceme) && (\n \n {\n e.preventDefault();\n setShowFullAddress(true);\n }}\n >\n Add billing address and tax number\n \n \n )}\n {isCommercial && (showFullAddress || invoiceme) && (\n <>\n

Billing details

\n {Object.keys(billingFields).map((field) => (\n \n \n \n ))}\n \n )}\n {/* {isCommercial && country && (\n <>\n \n

Billing details

\n \n {\n \n }\n \n \n \n )} */}\n {/* {addVat && (\n <>\n \n \n Note for the EU customers: Your price per seat will be calculated\n as{\" \"}\n {price1year > 0 ? (\n <>\n {\" \"}\n \n €\n {Math.round(\n process.env.REACT_APP_PRICE_COMMERCIAL_EU *\n (100 - process.env.REACT_APP_PRICE_COMMERCIAL_DISCOUNT)\n ) / 100}\n {\" \"}\n in the first year and{\" \"}\n €{process.env.REACT_APP_PRICE_COMMERCIAL_EU} / year on\n renewal\n \n ) : (\n <>\n €{process.env.REACT_APP_PRICE_COMMERCIAL_EU} / year\n \n )}\n . You will be asked to provide your VAT number and you will be\n responsible for paying the VAT as a Reverse Charge.\n LMSCloud is not registered for VAT in {countryLookup()} and can\n not collect VAT from the business customers at the moment.\n \n \n \n \n \n \n )} */}\n {/* {!isCommercial && country && (\n \n \n \n )} */}\n {isCommercial && (\n <>\n \n \n }>\n \n Are you not able to pay with the credit/debit card and prefer\n to make a bank trasfer?\n \n \n \n \n When you pay with the credit/debit card, your subscription is\n activated immediately and you will automatically receive the\n invoice and receipt by email. This is the preferred method of\n payment for MDLCode subscription. However, if you are not able\n to pay with the credit/debit card, we can offer you an option\n of paying by bank transfer. Please check the following\n checkbox, fill the rest of the form and submit it. Our\n representative will contact you shortly.\n \n {![\"USD\", \"GBP\", \"EUR\"].includes(currency) && (\n \n Bank payment is only possible in USD, GBP or EUR.\n \n )}\n \n setInvoiceme(e.target.checked)}\n />\n }\n label={\"Send me an invoice with bank details\"}\n />\n \n \n \n \n \n )}\n \n \n {submitError && (\n \n {submitError}\n \n )}\n \n {isCommercial && invoiceme ? \"Send me invoice\" : \"Go to checkout\"}{\" \"}\n {loading && }\n \n \n \n Once you complete the payment you will receive the license key by\n email.\n \n {\" \"}\n \n );\n};\n\nexport default withStyles(styles, { withTheme: true })(PurchaseFormPaddle);\n","import { Box, Card, Typography } from \"@mui/material\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport classNames from \"classnames\";\nimport PropTypes from \"prop-types\";\nimport React, { useEffect } from \"react\";\nimport { useDispatch } from \"react-redux\";\nimport { loadCountry } from \"../../../shared/reducers/Pricing\";\nimport PurchaseFormPaddle from \"./PurchaseFormPaddle\";\n\nconst styles = (theme) => ({\n purchaseContentWrapper: {\n marginLeft: theme.spacing(1),\n marginRight: theme.spacing(1),\n [theme.breakpoints.up(\"sm\")]: {\n marginLeft: theme.spacing(4),\n marginRight: theme.spacing(4),\n },\n maxWidth: 640,\n width: \"100%\",\n },\n wrapper: {\n minHeight: \"60vh\",\n },\n noDecoration: {\n textDecoration: \"none !important\",\n },\n});\n\nfunction PurchasePaddle({ classes, selectPurchase, openTermsDialog }) {\n useEffect(() => {\n selectPurchase();\n }, [selectPurchase]);\n\n const dispatch = useDispatch();\n useEffect(() => {\n dispatch(loadCountry());\n }, [dispatch]);\n // const country = useSelector(selectCountry);\n\n return (\n \n
\n \n \n \n Purchase MDLCode license\n \n \n \n \n \n \n
\n \n );\n}\n\nPurchasePaddle.propTypes = {\n selectPurchase: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired,\n};\n\nexport default withStyles(styles, { withTheme: true })(PurchasePaddle);\n","import PropTypes from \"prop-types\";\nimport React, { memo } from \"react\";\nimport { Switch } from \"react-router-dom\";\nimport PropsRoute from \"../../shared/components/PropsRoute\";\nimport useLocationBlocker from \"../../shared/functions/useLocationBlocker\";\nimport Blog from \"./blog/Blog\";\nimport BlogPost from \"./blog/BlogPost\";\nimport Home from \"./home/Home\";\nimport PurchaseCompleted from \"./purchase/PurchaseCompleted\";\nimport DocPage from \"./documentation/DocPage\";\nimport Documentation from \"./documentation/Documentation\";\nimport TermsOfService from \"./register_login/TermsOfService\";\nimport PurchasePaddle from \"./purchase/PurchasePaddle\";\n\nfunction Routing(props) {\n const {\n blogPosts,\n selectBlog,\n selectHome,\n selectPurchase,\n openTermsDialog,\n docsPages,\n selectDocumentation,\n } = props;\n useLocationBlocker();\n return (\n \n {blogPosts.map((post) => (\n blogPost.id !== post.id\n )}\n selectBlog={selectBlog}\n />\n ))}\n \n {docsPages.map((page) => (\n \n ))}\n \n \n \n \n \n \n );\n}\n\nRouting.propTypes = {\n blogposts: PropTypes.arrayOf(PropTypes.object),\n selectHome: PropTypes.func.isRequired,\n selectBlog: PropTypes.func.isRequired,\n selectPurchase: PropTypes.func.isRequired,\n};\n\nexport default memo(Routing);\n","import React, { memo, useState, useEffect, useCallback } from \"react\";\nimport PropTypes from \"prop-types\";\nimport AOS from \"aos/dist/aos\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport NavBar from \"./navigation/NavBar\";\nimport Footer from \"./footer/Footer\";\nimport \"aos/dist/aos.css\";\nimport CookieRulesDialog from \"./cookies/CookieRulesDialog\";\nimport CookieConsent from \"./cookies/CookieConsent\";\nimport tutorialsList from \"./blog/tutorialsList\";\nimport docsList from \"./documentation/docsList\";\nimport DialogSelector from \"./register_login/DialogSelector\";\nimport Routing from \"./Routing\";\nimport smoothScrollTop from \"../../shared/functions/smoothScrollTop\";\n\nAOS.init({ once: true });\n\nconst styles = (theme) => ({\n wrapper: {\n backgroundColor: theme.palette.common.white,\n overflowX: \"hidden\",\n },\n});\n\nfunction Main(props) {\n const { classes } = props;\n const [selectedTab, setSelectedTab] = useState(null);\n const [isMobileDrawerOpen, setIsMobileDrawerOpen] = useState(false);\n const [blogPosts, setBlogPosts] = useState([]);\n const [docsPages, setDocsPages] = useState([]);\n const [dialogOpen, setDialogOpen] = useState(null);\n const [isCookieRulesDialogOpen, setIsCookieRulesDialogOpen] = useState(false);\n\n const selectHome = useCallback(() => {\n smoothScrollTop();\n document.title = \"MDLCode - VSCode extension for Moodle™ development\";\n if (window.location.hash === \"#pricing\") {\n setSelectedTab(\"Pricing\");\n // } else if (window.location.hash === \"#tos\") {\n // console.log(\"tos\");\n // setDialogOpen(\"termsOfService\");\n } else {\n setSelectedTab(\"Home\");\n }\n }, [setSelectedTab]);\n\n const selectBlog = useCallback(() => {\n smoothScrollTop();\n document.title = \"MDLCode - Tutorials\";\n setSelectedTab(\"Tutorials\");\n }, [setSelectedTab]);\n\n const selectDocumentation = useCallback(() => {\n smoothScrollTop();\n document.title = \"MDLCode - Documentation\";\n setSelectedTab(\"Documentation\");\n }, [setSelectedTab]);\n\n const selectPurchase = useCallback(() => {\n smoothScrollTop();\n document.title = \"MDLCode - Purchase\";\n setSelectedTab(\"Purchase\");\n }, [setSelectedTab]);\n\n const openLoginDialog = useCallback(() => {\n setDialogOpen(\"login\");\n setIsMobileDrawerOpen(false);\n }, [setDialogOpen, setIsMobileDrawerOpen]);\n\n const closeDialog = useCallback(() => {\n setDialogOpen(null);\n }, [setDialogOpen]);\n\n const openRegisterDialog = useCallback(() => {\n setDialogOpen(\"register\");\n setIsMobileDrawerOpen(false);\n }, [setDialogOpen, setIsMobileDrawerOpen]);\n\n const openTermsDialog = useCallback(() => {\n setDialogOpen(\"termsOfService\");\n }, [setDialogOpen]);\n\n const handleMobileDrawerOpen = useCallback(() => {\n setIsMobileDrawerOpen(true);\n }, [setIsMobileDrawerOpen]);\n\n const handleMobileDrawerClose = useCallback(() => {\n setIsMobileDrawerOpen(false);\n }, [setIsMobileDrawerOpen]);\n\n const openChangePasswordDialog = useCallback(() => {\n setDialogOpen(\"changePassword\");\n }, [setDialogOpen]);\n\n const fetchBlogPosts = useCallback(() => {\n setBlogPosts(tutorialsList);\n }, [setBlogPosts]);\n\n const fetchDocPages = useCallback(() => {\n setDocsPages(docsList);\n }, [setDocsPages]);\n\n const handleCookieRulesDialogOpen = useCallback(() => {\n setIsCookieRulesDialogOpen(true);\n }, [setIsCookieRulesDialogOpen]);\n\n const handleCookieRulesDialogClose = useCallback(() => {\n setIsCookieRulesDialogOpen(false);\n }, [setIsCookieRulesDialogOpen]);\n\n useEffect(fetchBlogPosts, [fetchBlogPosts]);\n useEffect(fetchDocPages, [fetchDocPages]);\n\n return (\n
\n {!isCookieRulesDialogOpen && (\n \n )}\n \n \n \n \n
\n
\n );\n}\n\nMain.propTypes = {\n classes: PropTypes.object.isRequired,\n};\n\nexport default withStyles(styles, { withTheme: true })(memo(Main));\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { CircularProgress, Box } from \"@mui/material\";\n\nimport withStyles from '@mui/styles/withStyles';\n\nconst styles = theme => ({\n circularProgress: {\n color: theme.palette.secondary.main\n }\n});\n\nfunction ButtonCircularProgress(props) {\n const { size, classes } = props;\n return (\n \n \n \n );\n}\n\nButtonCircularProgress.propTypes = {\n size: PropTypes.number,\n classes: PropTypes.object.isRequired\n};\n\nexport default withStyles(styles, { withTheme: true })(ButtonCircularProgress);\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport {\n List,\n ListItem,\n ListItemIcon,\n ListItemText,\n Drawer,\n IconButton,\n Typography,\n Toolbar,\n ListItemButton,\n} from \"@mui/material\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport useMediaQuery from \"@mui/material/useMediaQuery\";\nimport { HashLink as Link } from \"react-router-hash-link\";\n\nconst styles = (theme) => ({\n closeIcon: {\n marginRight: theme.spacing(0.5),\n },\n headSection: {\n width: 200,\n },\n blackList: {\n backgroundColor: theme.palette.common.black,\n height: \"100%\",\n },\n noDecoration: {\n textDecoration: \"none !important\",\n },\n});\n\nfunction NavigationDrawer(props) {\n const { open, onClose, anchor, classes, menuItems, selectedItem, theme } =\n props;\n const isWidthUpSm = useMediaQuery(theme.breakpoints.up(\"sm\"));\n\n window.onresize = () => {\n if (isWidthUpSm && open) {\n onClose();\n }\n };\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n {menuItems.map((element) => {\n if (element.link) {\n return (\n {\n element.onClick && element.onClick();\n onClose && onClose();\n }}\n >\n \n {element.icon}\n \n {element.name}\n \n }\n />\n \n \n );\n }\n return (\n \n {element.icon}\n \n {element.name}\n \n }\n />\n \n );\n })}\n \n \n );\n}\n\nNavigationDrawer.propTypes = {\n anchor: PropTypes.string.isRequired,\n theme: PropTypes.object.isRequired,\n open: PropTypes.bool.isRequired,\n onClose: PropTypes.func.isRequired,\n menuItems: PropTypes.arrayOf(PropTypes.object).isRequired,\n classes: PropTypes.object.isRequired,\n selectedItem: PropTypes.string,\n};\n\nexport default withStyles(styles, { withTheme: true })(NavigationDrawer);\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { Route } from \"react-router-dom\";\n\nconst renderMergedProps = (component, ...rest) => {\n const finalProps = Object.assign({}, ...rest);\n return React.createElement(component, finalProps);\n};\n\n/**\n * Wrapper around the Router component, which makes it pass the properties\n * to it's child.\n * Taken from https://github.com/ReactTraining/react-router/issues/4105\n */\nconst PropsRoute = ({ component, ...rest }) => (\n renderMergedProps(component, routeProps, rest)}\n />\n);\n\nPropsRoute.propTypes = {\n component: PropTypes.oneOfType([PropTypes.elementType, PropTypes.node])\n};\n\nexport default PropsRoute;\n","/**\n * When called scrolls smooth to the top of the page.\n * globLastC prevents shaky animations when scrolling to\n * bottom while topscrolling.\n */\nlet globLastC = Infinity;\n\nfunction findPosition(obj) {\n var currenttop = 0;\n if (obj.offsetParent) {\n do {\n currenttop += obj.offsetTop;\n } while ((obj = obj.offsetParent));\n return [currenttop];\n }\n}\n\nfunction smoothScrollTopRec(finalY = 0) {\n const c = document.documentElement.scrollTop || document.body.scrollTop;\n if (c > finalY && globLastC > c) {\n globLastC = c;\n window.requestAnimationFrame(() => smoothScrollTopRec(finalY));\n window.scrollTo(0, Math.max(finalY, c - c / 8));\n } else {\n globLastC = Infinity;\n }\n}\n\nfunction smoothScrollTop() {\n /**\n * Normally this gets called from componentDidMount()\n * Not waiting a tiny fraction of time can lead\n * to shaky behaviour\n */\n let finalY = 0;\n if (window.location.hash && window.location.hash.startsWith(\"#\")) {\n const el = document.getElementById(window.location.hash.substring(1));\n if (el) {\n const [top] = findPosition(el);\n finalY = top ? Math.max(0, top - 50) : 0;\n }\n }\n setTimeout(() => {\n smoothScrollTopRec(finalY);\n }, 10);\n}\n\nexport default smoothScrollTop;\n","import { useSelector } from \"react-redux\";\nimport {\n getPriceKey,\n selectPostcode,\n selectPrices,\n selectUserCountry,\n} from \"../reducers/Pricing\";\n\nexport function useDisplayPrice({ isCommercial, seats }) {\n const prices = useSelector(selectPrices);\n let userCountry = useSelector(selectUserCountry);\n let postcode = useSelector(selectPostcode) ?? \"\";\n let baseCurrency = \"USD\";\n let basePrice = 0;\n let taxRate = null;\n const key = getPriceKey({\n country: userCountry,\n isCommercial,\n postcode,\n });\n const price = prices[key];\n const currency = price?.currencyCode ?? \"USD\";\n\n if (price && price.lineItems && price.lineItems[0]?.price) {\n baseCurrency = price.lineItems[0].price.unitPrice?.currencyCode ?? \"USD\";\n basePrice = parseInt(price.lineItems[0].price.unitPrice?.amount ?? 0) / 100;\n const priceOverrides = price.lineItems[0].price.unitPriceOverrides ?? [];\n for (const override of priceOverrides) {\n if (override.countryCodes.includes(userCountry)) {\n baseCurrency = override.unitPrice.currencyCode;\n basePrice = parseInt(override.unitPrice.amount) / 100;\n break;\n }\n }\n taxRate = price.lineItems[0].taxRate;\n }\n\n return {\n price: getPrice({ price, isCommercial, seats }),\n currency,\n country: userCountry,\n baseCurrency,\n basePrice,\n taxRate: taxRate ? taxRate * 100 : null,\n };\n}\n\nfunction getPrice({ price, isCommercial, seats }) {\n seats = !isCommercial || seats < 1 || !seats ? 1 : seats;\n const idx = isCommercial ? Math.min(10, seats) - 1 : 0;\n if (!price?.lineItems) {\n return (\n \"$\" +\n (\n (Math.round(\n isCommercial\n ? process.env.REACT_APP_PRICE_COMMERCIAL\n : process.env.REACT_APP_PRICE_PERSONAL\n ) *\n seats *\n 100) /\n 100\n ).toFixed(2)\n );\n }\n\n if (isCommercial && seats > 10) {\n // We do not poll from paddle api prices for over 10 seats, just calculate and format the price\n return guessFormattedPrice({\n total: (price.lineItems[9].totals.total * seats) / 10,\n currencyCode: price.currencyCode,\n item: price.lineItems[9],\n });\n } else {\n return price.lineItems[idx].formattedTotals.total;\n }\n}\n\nexport function guessFormattedPrice({ total, currencyCode, item }) {\n const amount = formatNumber(total / 100);\n if (item) {\n const formatted10 = item.formattedTotals.total;\n const selfformatted10 = formatNumber(item.totals.total / 100);\n const regex = new RegExp(\"^(.*)\" + escapeRegExp(selfformatted10) + \"(.*)$\");\n const match = formatted10.match(regex);\n if (match) {\n return match[1] + amount + match[2];\n }\n }\n return currencyCode + \" \" + amount;\n}\n\nfunction escapeRegExp(string) {\n return string.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\"); // $& means the whole matched string\n}\n\nfunction formatNumber(num) {\n // 2 decimals and comma for thousands\n return num.toFixed(2).replace(/\\d(?=(\\d{3})+\\.)/g, \"$&,\");\n}\n","import { useHistory } from \"react-router-dom\";\nimport { useEffect } from \"react\";\n\n\nconst useLocationBlocker = () => {\n /** \n * Prevents react-router from pushing the same\n * page to the history twice which leads to\n * multiple clicks on the back icon of the browser\n * being necessary to go back into the history.\n */\n const history = useHistory();\n useEffect(\n () =>\n history.block(\n (location, action) =>\n action !== \"PUSH\" ||\n getLocationId(location) !== getLocationId(history.location)\n ),\n [] // eslint-disable-line react-hooks/exhaustive-deps\n );\n}\n\nconst getLocationId = ({ pathname, search, hash }) => {\n return pathname + (search ? \"?\" + search : \"\") + (hash ? \"#\" + hash : \"\");\n}\n\nexport default useLocationBlocker;"],"names":["NavBar","props","classes","handleMobileDrawerOpen","handleMobileDrawerClose","mobileDrawerOpen","selectedTab","setSelectedTab","menuItems","link","name","onClick","icon","_jsx","HomeIcon","className","textMd","MonetizationOnIcon","VideoCameraBackIcon","BookIcon","HowToRegIcon","_jsxs","root","children","AppBar","position","appBar","Toolbar","toolbar","Typography","variant","brandText","color","display","Link","to","noDecoration","src","concat","process","alt","style","maxHeight","Hidden","mdUp","IconButton","menuButton","size","MenuIcon","mdDown","map","element","hideMd","Button","text","menuButtonText","classNames","_defineProperty","isActive","_element$textMd","NavigationDrawer","anchor","open","selectedItem","onClose","withStyles","theme","boxShadow","shadows","backgroundColor","palette","common","white","justifyContent","fontSize","typography","body1","fontWeight","h6","textDecoration","borderBottom","primary","main","withTheme","memo","waves","width","marginBottom","height","minHeight","from","transform","parallax","animation","animationDelay","animationNegativeDelay","id","String","Math","random","lowerColor","upperColor","rest","_objectWithoutProperties","_excluded","_objectSpread","background","xmlns","xlink","viewBox","preserveAspectRatio","shapeRendering","d","href","x","y","fill","infos","MailIcon","description","socialIcons","role","label","version","_footerInner","footerInner","darkBlack","paddingTop","spacing","paddingLeft","paddingRight","paddingBottom","breakpoints","up","footerLinks","marginTop","marginBot","infoIcon","socialIcon","borderRadius","shape","light","cursor","transition","transitions","create","duration","shortest","easing","easeIn","whiteBg","isWidthUpMd","useMediaQuery","WaveBorder","Grid","container","item","xs","md","lg","Box","mb","target","rel","info","index","mr","tabIndex","disabled","flexDirection","paragraph","length","ColoredButton","buttonTheme","createTheme","adaptV4Theme","buttonProps","_ref","StyledEngineProvider","injectFirst","ThemeProvider","dialogActions","dialog","zIndex","backIcon","marginRight","Dialog","scroll","DialogTitle","DialogContent","DialogActions","black","ArrowBackIcon","Promise","resolve","reject","ajax","XMLHttpRequest","window","location","includes","data","country","onload","response","JSON","parse","responseText","onerror","send","europeanCountryCodes","snackbarContent","borderBottomLeftRadius","borderBottomRightRadius","handleCookieRulesDialogOpen","_useState","useState","_useState2","_slicedToArray","isVisible","setIsVisible","openOnEuCountry","useCallback","fetchIpData","then","catch","onAccept","Cookies","set","expires","useEffect","undefined","get","Snackbar","message","action","Fragment","prepareLocalRoute","baseHref","startsWith","endsWith","match","replace","m","m1","replaceImgSrc","html","str","_ref$baseHref","extraComponents","blocks","split","parsedBlocks","history","useHistory","i","block","ishtml","push","idx","e","targetLink","closest","newhref","getAttribute","preventDefault","dangerouslySetInnerHTML","__html","prepareMarkdownHtml","key","Markdown","components","code","_aliases$match$","node","inline","exec","SyntaxHighlighter","dark","language","jsonc","bash","PreTag","h2","join","toLowerCase","a","_rest$className","_excluded2","isYoutubeLink","ReactPlayer","url","controls","HashLink","trim","_Fragment","img","_excluded3","newsrc","toMarkdown","Object","keys","tutorials","lines","tutorial","title","date","parseInt","Date","getTime","snippet","markdown","slice","content","DisplayMarkdown","params","docs","pages","filename","arguments","disablePadding","CloseIcon","dialogPaper","alignItems","maxWidth","actions","dialogPaperScrollPaper","dialogContent","loading","headline","onFormSubmit","hideBackdrop","disableEscapeKeyDown","paper","paperScrollPaper","DialogTitleWithCloseIcon","onSubmit","warning","border","borderWidth","padding","onVisibilityChange","TextField","type","InputProps","endAdornment","InputAdornment","onMouseDown","event","VisibilityIcon","VisibilityOffIcon","complex","easeInOut","setStatus","openTermsDialog","status","isLoading","setIsLoading","_useState3","_useState4","hasTermsOfServiceError","setHasTermsOfServiceError","_useState5","_useState6","isPasswordVisible","setIsPasswordVisible","registerTermsCheckbox","useRef","registerPassword","registerPasswordRepeat","register","current","checked","value","setTimeout","FormDialog","hasCloseIcon","margin","required","fullWidth","error","autoFocus","autoComplete","onChange","FormHelperTextProps","VisibilityPasswordTextField","inputRef","helperText","FormControlLabel","control","Checkbox","onKeyDown","keyCode","FormHelperText","HighlightedInformation","ButtonCircularProgress","termsConditionsListitem","marginLeft","tosText","TOS","substring","indexOf","withRouter","forgotPassword","disabledText","formControlLabel","openChangePasswordDialog","loginEmail","loginPassword","login","align","setLoginStatus","sendPasswordEmail","backdrop","top","left","right","bottom","touchAction","Backdrop","dialogOpen","openLoginDialog","loginStatus","registerStatus","setRegisterStatus","_onClose","printDialog","RegisterDialog","TermsOfServiceDialog","LoginDialog","ChangePasswordDialog","ModalBackdrop","card","secondary","showFocus","Card","p","format","awareOfUnicodeTokens","getVerticalBlogPosts","isWidthUpSm","blogPosts","rows","gridRows","forEach","blogPost","BlogCard","_blogContentWrapper","blogContentWrapper","wrapper","selectBlog","otherArticles","path","meta","image","domain","smoothScrollTop","Helmet","charSet","sizes","modal","portalImgWrapper","portalImgInnerWrapper","portalImg","objectFit","zoomedOutImage","zoomedImgProps","zoomedIn","setZoomedIn","scrollbarSize","setScrollbarSize","zoomIn","zoomOut","document","body","overflow","querySelector","ScrollbarSize","Portal","_extraLargeButton","_card","_container","extraLargeButtonLabel","extraLargeButton","down","verticalAlign","containerFix","waveBorder","isWidthUpLg","ZoomImage","currentWidth","shadeColor","hex","percent","f","t","R","G","B","round","toString","iconWrapper","textAlign","Icon","useTheme","_toConsumableArray","reverse","reduce","output","matches","iconSize","features","ListIcon","mdDelay","smDelay","SubdirectoryArrowRightIcon","CreateIcon","BoltIcon","AutoFixHighIcon","DirectionsRunIcon","ArchiveIcon","CancelIcon","CheckIcon","useWidth","calculateSpacing","FeatureCard","cardHightlighted","pricing","highlighted","buttonUrl","feature","ml","mt","allCountries","require","formlabel","price","_countryInfo$name","extended","isCommercial","dispatch","useDispatch","userCountry","useSelector","selectUserCountry","_useDisplayPrice","useDisplayPrice","basePrice","baseCurrency","currency","taxRate","countryInfo","find","c","requiresPostcode","countryRequiresPostcode","sx","minWidth","Select","labelId","loadPrices","setUserCountry","MenuItem","setPostcode","_containerFix","cardWrapper","cardWrapperHighlighted","commonFeatures","freeFeatures","personalFeatures","commercialFeatures","selectCountry","loadCountry","gridContainer","sm","PriceCard","CountrySelector","selectHome","HeadSection","FeatureSection","PricingSection","search","useLocation","isInvoice","URLSearchParams","_docsContentWrapper","docsContentWrapper","tocWrapper","selectDocumentation","docsPages","extraContents","toc","setToc","orderedPages","setOrderedPages","tocPage","page","newToc","li","ordered","isCurrent","ListItem","nextPage","pt","pr","pl","pb","recommended","posts","filter","post","readmePage","setReadmePage","DocPage","FeaturedTutorials","_tosContentWrapper","tosContentWrapper","prepareCheckoutPaddle","_ref2","_asyncToGenerator","_regeneratorRuntime","_callee2","errorMessage","_context2","prev","next","axios","sent","customerid","abrupt","addressid","businessid","t0","Error","stop","_x2","apply","defaultBilling","address","city","line1","line2","postal_code","state","setIsCommercial","showFullAddress","setShowFullAddress","seats","setSeats","_useState7","_useState8","seatsError","setSeatsError","_useState9","_useState10","email","setEmail","_useState11","_useState12","emailError","setEmailError","_useState13","_useState14","orgName","setOrgName","_useState15","_useState16","orgNameError","setOrgNameError","_useState17","_useState18","firstname","setFirstname","_useState19","_useState20","firstnameError","setFirstnameError","_useState21","_useState22","lastname","setLastname","_useState23","_useState24","lastnameError","setLastnameError","_useState25","_useState26","setLoading","_useState27","_useState28","submitError","setSubmitError","registerPaddleCheckbox","_useState29","_useState30","_useState31","_useState32","hasPaddleTermsError","setHasPaddleTermsError","_useState33","_useState34","invoiceme","setInvoiceme","_useState35","_useState36","billing","setBilling","_useState37","_useState38","billing_errors","setBillingErrors","hash","postcode","selectPostcode","validateEmail","test","emailChanged","doValidate","validateOrgName","orgNameChanged","billingFields","first_line","second_line","region","tax_number","displayPrice","RadioGroup","Radio","inputProps","inputMode","pattern","defaultValue","parseFloat","onBlur","field","_billing_errors$field","Accordion","AccordionSummary","expandIcon","ArrowDropDownIcon","AccordionDetails","CheckboxTOS","CheckboxPaddle","Alert","severity","isValid","fne","lne","validateName","validateSeats","res","validateTOS","_billing$first_line","_billing$city","_billing$postal_code","values","every","v","validateBilling","_billing$tax_number","_billing$first_line2","_billing$second_line","_billing$city2","_billing$region","_billing$postal_code2","items","priceId","quantity","iscommercial","country_code","invoice","settings","successUrl","origin","showAddDiscounts","locale","displayMode","allowLogout","showAddTaxId","resp","initialisePaddleMy","Paddle","customer","countryCode","postalCode","business","taxIdentifier","Checkout","_purchaseContentWrapp","purchaseContentWrapper","selectPurchase","PurchaseFormPaddle","Routing","useLocationBlocker","Switch","PropsRoute","component","BlogPost","exact","Blog","Documentation","PurchaseCompleted","PurchasePaddle","TermsOfService","Home","AOS","once","Main","isMobileDrawerOpen","setIsMobileDrawerOpen","setBlogPosts","setDocsPages","setDialogOpen","isCookieRulesDialogOpen","setIsCookieRulesDialogOpen","closeDialog","openRegisterDialog","fetchBlogPosts","tutorialsList","fetchDocPages","docsList","handleCookieRulesDialogClose","CookieConsent","DialogSelector","CookieRulesDialog","Footer","overflowX","circularProgress","CircularProgress","thickness","closeIcon","headSection","blackList","onresize","Drawer","disableGutters","ListItemIcon","List","ListItemButton","selected","disableRipple","disableTouchRipple","ListItemText","Route","render","routeProps","_len","Array","_key","finalProps","assign","React","renderMergedProps","globLastC","Infinity","smoothScrollTopRec","finalY","documentElement","scrollTop","requestAnimationFrame","scrollTo","max","el","getElementById","_findPosition","obj","currenttop","offsetParent","offsetTop","findPosition","_useSelector","_price$currencyCode","_price$lineItems$","prices","selectPrices","getPriceKey","currencyCode","lineItems","_price$lineItems$0$pr","_price$lineItems$0$pr2","_price$lineItems$0$pr3","_price$lineItems$0$pr4","_price$lineItems$0$pr5","unitPrice","amount","_step","priceOverrides","unitPriceOverrides","_iterator","_createForOfIteratorHelper","s","n","done","override","countryCodes","err","getPrice","min","guessFormattedPrice","total","totals","formattedTotals","toFixed","_ref3","formatNumber","formatted10","selfformatted10","regex","RegExp","num","getLocationId","pathname"],"sourceRoot":""}