{"version":3,"sources":["webpack:///./src/components/SEO.js","webpack:///./src/components/Panel.js","webpack:///./src/utils/helpers.js","webpack:///./src/components/Bio.js","webpack:///./src/assets/profile-pic.jpg","webpack:///./i18n.js","webpack:///./src/assets/video-okuliare-pre-afriku.mp4","webpack:///./src/components/Video.js","webpack:///./src/utils/whitelist.js","webpack:///./src/utils/i18n.js","webpack:///./src/templates/blog-post.js"],"names":["SEO","meta","image","title","description","slug","lang","query","render","data","siteMetadata","site","metaDescription","metaImage","siteUrl","url","htmlAttributes","titleTemplate","name","content","property","social","twitter","concat","defaultProps","Panel","children","style","fontSize","border","borderRadius","padding","background","wordBreak","formatReadingTime","minutes","cups","Math","round","Array","E","fill","join","formatPostDate","date","Date","prototype","toLocaleDateString","args","day","month","year","filter","Boolean","Bio","display","marginBottom","rhythm","src","profilePic","alt","marginRight","width","height","maxWidth","React","Component","module","exports","supportedLanguages","en","ru","tr","es","ko","sv","it","id","pl","ja","fr","he","hu","vi","th","my","sk","te","uk","bg","cs","de","nl","nb","fa","ar","sr","Video","videoSrc","className","controls","autoplay","muted","playsinline","OkuliarePreAfriku","video","type","codeToLanguage","code","replace","systemFont","Translations","this","props","translations","languageLink","editUrl","readerTranslations","hasRussianTranslation","indexOf","fontFamily","length","to","map","l","i","Fragment","key","href","target","rel","BlogPostTemplate","post","markdownRemark","siteTitle","get","pageContext","previous","next","translatedLinks","fields","langKey","html","matches","match","forEach","whitelist","replaceAnchorLinksByLanguage","link","translatedLink","RegExp","slice","sort","a","b","loadFontsForCode","rawSlug","targetLang","createLanguageLink","enSlug","encodeURIComponent","Layout","location","frontmatter","spoiler","color","scale","marginTop","timeToRead","dangerouslySetInnerHTML","__html","margin","boxShadow","textDecoration","flexWrap","justifyContent","listStyle","pageQuery"],"mappings":"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","file":"component---src-templates-blog-post-js-d662a936a9f9218090e7.js","sourcesContent":["import React from 'react';\nimport Helmet from 'react-helmet';\nimport PropTypes from 'prop-types';\nimport { StaticQuery, graphql } from 'gatsby';\n\nconst query = graphql`\n query GetSiteMetadata {\n site {\n siteMetadata {\n title\n author\n description\n siteUrl\n social {\n twitter\n }\n }\n }\n }\n`;\n\nfunction SEO({ meta, image, title, description, slug, lang = 'en' }) {\n return (\n {\n const { siteMetadata } = data.site;\n const metaDescription = description || siteMetadata.description;\n const metaImage = image ? `${siteMetadata.siteUrl}/${image}` : null;\n const url = `${siteMetadata.siteUrl}${slug}`;\n return (\n \n );\n }}\n />\n );\n}\n\nSEO.defaultProps = {\n meta: [],\n title: '',\n slug: '',\n};\n\nSEO.propTypes = {\n description: PropTypes.string,\n image: PropTypes.string,\n meta: PropTypes.array,\n slug: PropTypes.string,\n title: PropTypes.string.isRequired,\n};\n\nexport default SEO;\n","import React from 'react';\n\nfunction Panel({ children, style = {} }) {\n return (\n \n {children}\n

\n );\n}\n\nexport default Panel;\n","export function formatReadingTime(minutes) {\n let cups = Math.round(minutes / 5);\n let bowls = 0;\n if (cups > 5) {\n return `${new Array(Math.round(cups / Math.E))\n .fill('🍱')\n .join('')} ${minutes} min read`;\n } else {\n return `${new Array(cups || 1).fill('☕️').join('')} ${minutes} min read`;\n }\n}\n\n// `lang` is optional and will default to the current user agent locale\nexport function formatPostDate(date, lang) {\n if (typeof Date.prototype.toLocaleDateString !== 'function') {\n return date;\n }\n\n date = new Date(date);\n const args = [\n lang,\n { day: 'numeric', month: 'long', year: 'numeric' },\n ].filter(Boolean);\n return date.toLocaleDateString(...args);\n}\n","import React from 'react';\nimport profilePic from '../assets/profile-pic.jpg';\nimport { rhythm } from '../utils/typography';\n\nclass Bio extends React.Component {\n render() {\n return (\n \n \n

\n MUDr. Blandína Lipková, PhD. Súkromná očná ambulancia v Žiline
\n speaks: 🇸🇰 🇬🇧 🇩🇪 🇮🇹\n

\n \n );\n }\n}\n\nexport default Bio;\n","module.exports = __webpack_public_path__ + \"static/profile-pic-d4e48c4f20b43431ac5a44309a623748.jpg\";","// Please keep keys lowercase!\nexports.supportedLanguages = {\n en: 'English',\n ru: 'Русский',\n tr: 'Türkçe',\n es: 'Español',\n ko: '한국어',\n sv: 'Svenska',\n it: 'Italiano',\n id: 'Bahasa Indonesia',\n 'pt-br': 'Português do Brasil',\n pl: 'Polski',\n 'zh-hant': '繁體中文',\n 'zh-hans': '简体中文',\n ja: '日本語',\n fr: 'Français',\n he: 'עברית',\n hu: 'Magyar',\n vi: 'Tiếng Việt',\n th: 'ไทย',\n my: 'မြန်မာဘာသာ',\n sk: 'Slovenčina',\n te: 'తెలుగు',\n uk: 'Українська',\n bg: 'Български',\n cs: 'Čeština',\n de: 'Deutsch',\n nl: 'Nederlands',\n nb: 'Norsk',\n fa: 'فارسی',\n ar: 'العربية',\n sr: 'srpski',\n};\n","module.exports = __webpack_public_path__ + \"static/video-okuliare-pre-afriku-e694954b43c94fb4fd53f251e015a3cc.mp4\";","// https://www.gatsbyjs.com/docs/how-to/images-and-media/working-with-video/\n\nimport React from 'react';\nimport OkuliarePreAfriku from '../assets/video-okuliare-pre-afriku.mp4';\n\nconst Video = ({ videoSrc, ...props }) => {\n const video = (videoSrc) => {\n if (videoSrc === 'video-okuliare-pre-afriku.mp4') {\n return OkuliarePreAfriku;\n }\n return null;\n };\n\n return (\n
\n \n
\n );\n};\nexport default Video;\n","// Please keep keys lowercase!\nexport default {\n 'https://reactjs.org': {\n 'pt-br': 'https://pt-br.reactjs.org',\n // other languages...\n },\n // other links...\n};\n","import { supportedLanguages } from './../../i18n';\nimport whitelist from './whitelist';\n\n// This is kind of a mess for some languages.\n// Try to be as short as possible.\n// Make sure you use a real code (e.g. \"ja\", not \"jp\").\n// Some resources:\n// http://www.rfc-editor.org/rfc/bcp/bcp47.txt\n// https://www.w3.org/International/articles/language-tags/\n// https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry\n// https://discuss.httparchive.org/t/what-are-the-invalid-uses-of-the-lang-attribute/1022\n\nexport const codeToLanguage = (code) =>\n supportedLanguages[code].replace(/ /g, ' ' /* nbsp */);\n\nexport const loadFontsForCode = (code) => {\n switch (code) {\n case 'ru':\n case 'bg':\n import('../fonts/fonts-shared.cyrillic.css');\n import('../fonts/fonts-post.cyrillic.css');\n break;\n case 'uk':\n import('../fonts/fonts-shared.cyrillic.css');\n import('../fonts/fonts-post.cyrillic.css');\n import('../fonts/fonts-shared.latin-ext.css');\n import('../fonts/fonts-post.latin-ext.css');\n break;\n case 'cs':\n case 'da':\n case 'de':\n case 'es':\n case 'fi':\n case 'fr':\n case 'he':\n case 'hu':\n case 'it':\n case 'nl':\n case 'no':\n case 'pl':\n case 'pt-br':\n case 'sk':\n case 'sr':\n case 'sq':\n case 'sv':\n case 'tr':\n import('../fonts/fonts-shared.latin-ext.css');\n import('../fonts/fonts-post.latin-ext.css');\n break;\n case 'vi':\n import('../fonts/fonts-shared.vietnamese.css');\n import('../fonts/fonts-post.vietnamese.css');\n break;\n case 'fa':\n import('../fonts/fonts-post.persian.css');\n break;\n case 'ar':\n import('../fonts/fonts-post.arabic.css');\n break;\n default:\n break;\n }\n};\n\n// TODO: the curried signature is weird.\nexport const createLanguageLink = (slug, lang) => {\n const rawSlug = slug.replace(`${lang}/`, '');\n\n return (targetLang) =>\n targetLang === 'en' ? rawSlug : `${targetLang}${rawSlug}`;\n};\n\nexport const replaceAnchorLinksByLanguage = (html, code) => {\n // Match any link using https://regexr.com/4airl\n const matches = html.match(/https?:\\/\\/(www)?[^\\/\\s)\"?]+/gm);\n\n // Return same html if no matches were found\n // or code isn't supported\n if (!matches || !supportedLanguages[code]) {\n return html;\n }\n\n matches.forEach((url) => {\n // Replace to locale url if and only if exists in whitelist\n // and has code registered\n if (whitelist[url] && whitelist[url][code]) {\n html = html.replace(url, whitelist[url][code]);\n }\n });\n\n return html;\n};\n","import React from 'react';\nimport { Link, graphql } from 'gatsby';\nimport get from 'lodash/get';\n\nimport '../fonts/fonts-post.css';\nimport '../fonts/fonts-shared.latin-ext.css';\nimport '../fonts/fonts-post.latin-ext.css';\n\nimport Bio from '../components/Bio';\nimport Layout from '../components/Layout';\nimport SEO from '../components/SEO';\n// import Signup from '../components/Signup';\nimport Panel from '../components/Panel';\nimport Video from '../components/Video';\n\nimport { formatPostDate, formatReadingTime } from '../utils/helpers';\nimport { rhythm, scale } from '../utils/typography';\nimport {\n codeToLanguage,\n createLanguageLink,\n loadFontsForCode,\n replaceAnchorLinksByLanguage,\n} from '../utils/i18n';\n\nconst GITHUB_USERNAME = 'pavoltravnik';\nconst GITHUB_REPO_NAME = 'ophthamed.sk';\nconst systemFont = `system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\",\n \"Roboto\", \"Oxygen\", \"Ubuntu\", \"Cantarell\", \"Fira Sans\",\n \"Droid Sans\", \"Helvetica Neue\", sans-serif`;\n\nclass Translations extends React.Component {\n render() {\n let { translations, lang, languageLink, editUrl } = this.props;\n\n let readerTranslations = translations.filter((lang) => lang !== 'ru');\n let hasRussianTranslation = translations.indexOf('ru') !== -1;\n\n return (\n
\n \n {translations.length > 0 && (\n \n {hasRussianTranslation && (\n \n Originally written in:{' '}\n {'en' === lang ? (\n {codeToLanguage('en')}\n ) : (\n English\n )}\n {' • '}\n {'ru' === lang ? (\n Русский (авторский перевод)\n ) : (\n \n Русский (авторский перевод)\n \n )}\n
\n
\n
\n )}\n Translated by readers into: \n {readerTranslations.map((l, i) => (\n \n {l === lang ? (\n {codeToLanguage(l)}\n ) : (\n {codeToLanguage(l)}\n )}\n {i === readerTranslations.length - 1 ? '' : ' • '}\n \n ))}\n
\n )}\n {lang !== 'en' && (\n <>\n
\n
\n {lang !== 'ru' && (\n <>\n Read the original\n {' • '}\n \n Improve this translation\n \n {' • '}\n \n )}\n View all translated posts{' '}\n \n )}\n
\n
\n );\n }\n}\n\nclass BlogPostTemplate extends React.Component {\n render() {\n const post = this.props.data.markdownRemark;\n const siteTitle = get(this.props, 'data.site.siteMetadata.title');\n let {\n previous,\n next,\n slug,\n translations,\n translatedLinks,\n } = this.props.pageContext;\n const lang = post.fields.langKey;\n\n // Replace original links with translated when available.\n let html = post.html;\n\n // Replace original anchor links by lang when available in whitelist\n // see utils/whitelist.js\n html = replaceAnchorLinksByLanguage(html, lang);\n\n translatedLinks.forEach((link) => {\n // jeez\n function escapeRegExp(str) {\n return str.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n }\n let translatedLink = '/' + lang + link;\n html = html.replace(\n new RegExp('\"' + escapeRegExp(link) + '\"', 'g'),\n '\"' + translatedLink + '\"'\n );\n });\n\n translations = translations.slice();\n translations.sort((a, b) => {\n return codeToLanguage(a) < codeToLanguage(b) ? -1 : 1;\n });\n\n loadFontsForCode(lang);\n // TODO: this curried function is annoying\n const languageLink = createLanguageLink(slug, lang);\n const enSlug = languageLink('en');\n const editUrl = `https://github.com/${GITHUB_USERNAME}/${GITHUB_REPO_NAME}/edit/master/src/pages/${enSlug.slice(\n 1,\n enSlug.length - 1\n )}/index${lang === 'en' ? '' : '.' + lang}.md`;\n const discussUrl = `https://mobile.twitter.com/search?q=${encodeURIComponent(\n `https://ophthamed.sk${enSlug}`\n )}`;\n\n return (\n \n \n
\n
\n
\n

\n {post.frontmatter.title}\n

\n \n {formatPostDate(post.frontmatter.date, lang)}\n {` • ${formatReadingTime(post.timeToRead)}`}\n

\n {translations.length > 0 && (\n \n )}\n
\n
\n {post.frontmatter.videoSrc && (\n
\n
\n \n
\n );\n }\n}\n\nexport default BlogPostTemplate;\n\nexport const pageQuery = graphql`\n query BlogPostBySlug($slug: String!) {\n site {\n siteMetadata {\n title\n author\n }\n }\n markdownRemark(fields: { slug: { eq: $slug } }) {\n id\n html\n timeToRead\n frontmatter {\n title\n date(formatString: \"MMMM DD, YYYY\")\n spoiler\n cta\n videoSrc\n }\n fields {\n slug\n langKey\n }\n }\n }\n`;\n"],"sourceRoot":""}