{"version":3,"file":"component---src-templates-blog-post-blog-post-tsx-992692762437cc82d220.js","mappings":"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","sources":["webpack://gatsby-starter-default/./node_modules/classnames/index.js","webpack://gatsby-starter-default/./src/images/blog-placeholder.jpg","webpack://gatsby-starter-default/./src/components/BlogCard/BlogCard.tsx","webpack://gatsby-starter-default/./src/components/BlogCard/styled.tsx","webpack://gatsby-starter-default/./src/components/Tag/styled.tsx","webpack://gatsby-starter-default/./src/components/Tag/Tag.tsx","webpack://gatsby-starter-default/./src/components/TagsHeader/styled.tsx","webpack://gatsby-starter-default/./src/components/TagsHeader/TagsHeader.tsx","webpack://gatsby-starter-default/./node_modules/react-intersection-observer/react-intersection-observer.m.js","webpack://gatsby-starter-default/./node_modules/react-scroll-percentage/react-scroll-percentage.esm.js","webpack://gatsby-starter-default/./src/components/BlogSidebarSlider/styled.tsx","webpack://gatsby-starter-default/./src/components/BlogSidebarSlider/BlogSidebarSlider.tsx","webpack://gatsby-starter-default/./node_modules/react-share/es/utils/assert.js","webpack://gatsby-starter-default/./node_modules/react-cool-onclickoutside/dist/index.esm.js","webpack://gatsby-starter-default/./node_modules/react-share/es/utils/objectToGetParams.js","webpack://gatsby-starter-default/./node_modules/react-share/es/ShareButton.js","webpack://gatsby-starter-default/./node_modules/react-share/es/hocs/createShareButton.js","webpack://gatsby-starter-default/./node_modules/react-share/es/FacebookShareButton.js","webpack://gatsby-starter-default/./node_modules/react-share/es/hocs/createIcon.js","webpack://gatsby-starter-default/./node_modules/react-share/es/FacebookIcon.js","webpack://gatsby-starter-default/./node_modules/react-share/es/LinkedinShareButton.js","webpack://gatsby-starter-default/./node_modules/react-share/es/LinkedinIcon.js","webpack://gatsby-starter-default/./node_modules/react-share/es/RedditShareButton.js","webpack://gatsby-starter-default/./node_modules/react-share/es/RedditIcon.js","webpack://gatsby-starter-default/./node_modules/react-share/es/TelegramShareButton.js","webpack://gatsby-starter-default/./node_modules/react-share/es/TelegramIcon.js","webpack://gatsby-starter-default/./node_modules/react-share/es/TwitterShareButton.js","webpack://gatsby-starter-default/./node_modules/react-share/es/TwitterIcon.js","webpack://gatsby-starter-default/./src/components/ShareDropdown/styled.tsx","webpack://gatsby-starter-default/./src/components/ShareDropdown/ShareDropdown.tsx","webpack://gatsby-starter-default/./src/templates/BlogPost/styled.tsx","webpack://gatsby-starter-default/./src/templates/BlogPost/blog-post.tsx","webpack://gatsby-starter-default/./src/images/icons/facebook_blue.svg","webpack://gatsby-starter-default/./src/images/icons/linked-in_blue.svg","webpack://gatsby-starter-default/./src/images/icons/twitter_blue.svg","webpack://gatsby-starter-default/./src/images/blog/search.inline.svg"],"sourcesContent":["/*!\n Copyright (c) 2018 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n\n/* global define */\n(function () {\n 'use strict';\n\n var hasOwn = {}.hasOwnProperty;\n\n function classNames() {\n var classes = [];\n\n for (var i = 0; i < arguments.length; i++) {\n var arg = arguments[i];\n if (!arg) continue;\n var argType = typeof arg;\n\n if (argType === 'string' || argType === 'number') {\n classes.push(arg);\n } else if (Array.isArray(arg)) {\n if (arg.length) {\n var inner = classNames.apply(null, arg);\n\n if (inner) {\n classes.push(inner);\n }\n }\n } else if (argType === 'object') {\n if (arg.toString === Object.prototype.toString) {\n for (var key in arg) {\n if (hasOwn.call(arg, key) && arg[key]) {\n classes.push(key);\n }\n }\n } else {\n classes.push(arg.toString());\n }\n }\n }\n\n return classes.join(' ');\n }\n\n if (typeof module !== 'undefined' && module.exports) {\n classNames.default = classNames;\n module.exports = classNames;\n } else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n // register as 'classnames', consistent with npm package name\n define('classnames', [], function () {\n return classNames;\n });\n } else {\n window.classNames = classNames;\n }\n})();","export default __webpack_public_path__ + \"static/blog-placeholder-92d1aacb801e5681f81b67d3b54716c4.jpg\";","import React from 'react';\nimport Img, { FluidObject } from 'gatsby-image';\nimport { Link } from 'gatsby';\n\nimport { ROUTES } from 'constants/common';\nimport placeholderImage from 'images/blog-placeholder.jpg';\n\nimport Tag from 'components/Tag';\nimport {\n Title,\n Wrapper,\n Image,\n InfoWrapper,\n BottomWrapper,\n TagsWrapper,\n ImgWrapper,\n ExcerptWrapper,\n StyledButton,\n} from './styled';\n\ninterface Props {\n image?: {\n fluid: FluidObject;\n };\n title: string;\n slug: string;\n date: string;\n author: string;\n tags?: { id: string; name: string; slug: string }[];\n horizontal?: boolean;\n excerpt?: string;\n short?: boolean;\n}\n\nconst BlogCard = ({\n author,\n horizontal = false,\n image,\n title,\n date,\n slug,\n tags,\n excerpt,\n}: Props) => (\n \n \n \n {image ? (\n {title}\n ) : (\n \n )}\n \n \n \n {!!tags?.length && (\n \n {tags.map((tag) => (\n \n ))}\n \n )}\n \n {title}\n \n {horizontal && excerpt && (\n \n )}\n \n

by {author}

\n

{date}

\n
\n {horizontal && (\n \n Read more\n \n )}\n
\n
\n);\n\nexport default BlogCard;\n","import styled from 'styles/styled';\n\nimport { Button } from 'components/UI/Button';\n\nexport const Wrapper = styled.article<{ horizontal: boolean }>`\n background-color: rgba(0, 90, 160, 0.3);\n border-radius: 4px;\n display: flex;\n flex-direction: column;\n height: ${({ horizontal }) => (horizontal ? 'auto' : '100%')};\n overflow: hidden;\n\n @media ${({ theme }) => theme.devices.medium} {\n flex-direction: ${({ horizontal }) => (horizontal ? 'row' : 'column')};\n }\n`;\n\nexport const ImgWrapper = styled.div<{ horizontal: boolean }>`\n flex-basis: ${({ horizontal }) => (horizontal ? '50%' : 'auto')};\n flex-grow: 0;\n flex-shrink: 0;\n\n .gatsby-image-wrapper {\n height: ${({ horizontal }) => (horizontal ? '100%' : 'auto')};\n }\n`;\n\nexport const Image = styled.img`\n object-fit: cover;\n height: 100%;\n`;\n\nexport const Title = styled.h3`\n font-size: ${({ theme }) => theme.fontSize.smallBase};\n font-weight: ${({ theme }) => theme.fontWeight.bold};\n margin-bottom: 15px;\n\n @media ${({ theme }) => theme.devices.large} {\n font-size: ${({ theme }) => theme.fontSize.subtitleMobile};\n }\n`;\n\nexport const ExcerptWrapper = styled.div`\n color: ${({ theme }) => theme.palette.light};\n`;\n\nexport const StyledButton = styled(Button)`\n margin-top: 30px;\n padding: 10px 40px;\n text-transform: uppercase;\n`;\n\nexport const InfoWrapper = styled.div<{ horizontal: boolean }>`\n display: flex;\n flex-direction: column;\n flex-grow: 1;\n padding: 15px;\n\n @media ${({ theme }) => theme.devices.medium} {\n padding: ${({ horizontal }) => (horizontal ? '30px' : '15px')};\n }\n`;\n\nexport const BottomWrapper = styled.div`\n align-items: flex-end;\n display: flex;\n justify-content: space-between;\n flex-grow: 1;\n margin-top: 10px;\n\n p {\n color: ${({ theme }) => theme.palette.blogAccent};\n font-weight: 400;\n }\n`;\n\nexport const TagsWrapper = styled.ul`\n display: flex;\n flex-wrap: wrap;\n gap: 10px;\n margin: 10px 0 25px;\n`;\n","import styled from 'styles/styled';\n\nexport const TagLi = styled.li`\n border: 1px solid ${({ theme }) => theme.palette.blogAccent};\n color: ${({ theme }) => theme.palette.blogAccent};\n cursor: pointer;\n border-radius: 1em;\n line-height: 1;\n padding: 4px 10px;\n`;\n","import React from 'react';\nimport { navigate } from '@reach/router';\n\nimport { ROUTES } from 'constants/common';\n\nimport { TagLi } from './styled';\n\ninterface Props {\n name: string;\n slug: string;\n}\n\nconst Tag = ({ name, slug }: Props) => {\n return (\n navigate(`${ROUTES.blog}?tag=${slug}`)}>{name}\n );\n};\n\nexport default Tag;\n","import styled from 'styles/styled';\n\nexport const Wrapper = styled.div`\n margin: 0 auto 20px;\n max-width: ${({ theme }) => theme.dimensions.contentMaxWidthMedium}px;\n\n @media ${({ theme }) => theme.devices.medium} {\n display: flex;\n margin-bottom: 50px;\n }\n`;\n\nexport const TagsWrapper = styled.div`\n background-color: #012f5a;\n border-radius: 10px;\n line-height: 1.4;\n flex-grow: 1;\n padding: 15px 20px;\n`;\n\nexport const TagsList = styled.ul<{ searching: boolean }>`\n display: flex;\n flex-wrap: wrap;\n font-size: 18px;\n justify-content: space-between;\n justify-content: ${({ searching }) =>\n searching ? 'flex-start' : 'space-between'};\n max-height: 1.3em;\n overflow: hidden;\n`;\n\nexport const Tag = styled.li<{ active?: boolean }>`\n color: ${({ active, theme }) =>\n theme.palette[active ? 'light' : 'blogAccent']};\n cursor: pointer;\n font-size: inherit;\n font-weight: ${({ active }) => (active ? 700 : 400)};\n\n & + & {\n margin-left: 15px;\n }\n\n @media ${({ theme }) => theme.devices.large} {\n & + & {\n margin-left: 30px;\n }\n }\n`;\n\nexport const SearchWrapper = styled.div`\n margin-bottom: 20px;\n position: relative;\n\n svg {\n color: ${({ theme }) => theme.palette.blogAccent};\n height: 1em;\n pointer-events: none;\n position: absolute;\n right: 20px;\n top: 50%;\n transform: translateY(-50%);\n transition: ${({ theme }) => theme.ui.transition('color')};\n width: 1em;\n }\n\n @media ${({ theme }) => theme.devices.medium} {\n margin-left: 20px;\n margin-bottom: 0;\n order: 1;\n }\n`;\n\nexport const SearchInput = styled.input`\n background-color: transparent;\n border: 1px solid #005aa0;\n border-radius: 10px;\n color: ${({ theme }) => theme.palette.blogAccent};\n line-height: 1.4;\n min-width: 200px;\n transition: ${({ theme }) => theme.ui.transition('all')};\n padding: 15px 40px 15px 20px;\n width: 100%;\n\n &:focus {\n border-color: ${({ theme }) => theme.palette.light};\n color: ${({ theme }) => theme.palette.light};\n outline: none;\n\n &::placeholder {\n color: ${({ theme }) => theme.palette.light};\n }\n\n & + svg {\n color: ${({ theme }) => theme.palette.light};\n }\n }\n\n &::placeholder {\n color: ${({ theme }) => theme.palette.blogAccent};\n transition: ${({ theme }) => theme.ui.transition('color')};\n }\n`;\n","import React, { useState } from 'react';\nimport { useStaticQuery, graphql } from 'gatsby';\nimport { navigate, useLocation } from '@reach/router';\n\nimport { ROUTES } from 'constants/common';\nimport Search from 'images/blog/search.inline.svg';\n\nimport {\n SearchInput,\n SearchWrapper,\n Tag,\n TagsList,\n TagsWrapper,\n Wrapper,\n} from './styled';\n\ntype Tag = {\n count: number;\n id: string;\n name: string;\n slug: string;\n};\n\ntype TagsPayload = {\n allWpTag: {\n nodes: Tag[];\n };\n};\n\nconst TagsHeader = () => {\n const { pathname, search } = useLocation();\n const queryObj = new URLSearchParams(search);\n const tag = queryObj.get('tag');\n const [val, setVal] = useState('');\n const { allWpTag } = useStaticQuery(graphql`\n {\n allWpTag(\n sort: { fields: count, order: DESC }\n filter: { count: { gte: 1 } }\n ) {\n nodes {\n count\n id\n name\n slug\n }\n }\n }\n `);\n const tags = allWpTag.nodes.filter((t) => {\n if (t.slug === tag) {\n return false;\n }\n\n if (!val) {\n return true;\n }\n\n if (t.name.includes(val)) {\n return true;\n }\n\n return false;\n });\n const activeTag = allWpTag.nodes.find((t) => t.slug === tag);\n\n return (\n \n \n setVal(e.target.value)}\n value={val}\n />\n \n \n\n \n \n {activeTag && {activeTag.name}}\n {!val && (\n navigate(ROUTES.blog)}\n >\n newest\n \n )}\n {tags.map((t) => (\n {\n navigate(`${ROUTES.blog}?tag=${t.slug}`);\n setVal('');\n }}\n >\n {t.name}\n \n ))}\n \n \n \n );\n};\n\nexport default TagsHeader;\n","import { createElement, Component, useRef, useState, useCallback, useEffect } from 'react';\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nvar ObserverMap = new Map();\nvar RootIds = new WeakMap();\nvar rootId = 0;\n/**\r\n * Generate a unique ID for the root element\r\n * @param root\r\n */\n\nfunction getRootId(root) {\n if (!root) return '0';\n if (RootIds.has(root)) return RootIds.get(root);\n rootId += 1;\n RootIds.set(root, rootId.toString());\n return RootIds.get(root);\n}\n/**\r\n * Convert the options to a string Id, based on the values.\r\n * Ensures we can reuse the same observer when observing elements with the same options.\r\n * @param options\r\n */\n\n\nfunction optionsToId(options) {\n return Object.keys(options).sort().filter(function (key) {\n return options[key] !== undefined;\n }).map(function (key) {\n return key + \"_\" + (key === 'root' ? getRootId(options.root) : options[key]);\n }).toString();\n}\n\nfunction createObserver(options) {\n // Create a unique ID for this observer instance, based on the root, root margin and threshold.\n var id = optionsToId(options);\n var instance = ObserverMap.get(id);\n\n if (!instance) {\n // Create a map of elements this observer is going to observe. Each element has a list of callbacks that should be triggered, once it comes into view.\n var elements = new Map();\n var thresholds;\n var observer = new IntersectionObserver(function (entries) {\n entries.forEach(function (entry) {\n var _elements$get; // While it would be nice if you could just look at isIntersecting to determine if the component is inside the viewport, browsers can't agree on how to use it.\n // -Firefox ignores `threshold` when considering `isIntersecting`, so it will never be false again if `threshold` is > 0\n\n\n var inView = entry.isIntersecting && thresholds.some(function (threshold) {\n return entry.intersectionRatio >= threshold;\n }); // @ts-ignore support IntersectionObserver v2\n\n if (options.trackVisibility && typeof entry.isVisible === 'undefined') {\n // The browser doesn't support Intersection Observer v2, falling back to v1 behavior.\n // @ts-ignore\n entry.isVisible = inView;\n }\n\n (_elements$get = elements.get(entry.target)) == null ? void 0 : _elements$get.forEach(function (callback) {\n callback(inView, entry);\n });\n });\n }, options); // Ensure we have a valid thresholds array. If not, use the threshold from the options\n\n thresholds = observer.thresholds || (Array.isArray(options.threshold) ? options.threshold : [options.threshold || 0]);\n instance = {\n id: id,\n observer: observer,\n elements: elements\n };\n ObserverMap.set(id, instance);\n }\n\n return instance;\n}\n/**\r\n * @param element - DOM Element to observe\r\n * @param callback - Callback function to trigger when intersection status changes\r\n * @param options - Intersection Observer options\r\n * @return Function - Cleanup function that should be triggered to unregister the observer\r\n */\n\n\nfunction observe(element, callback, options) {\n if (options === void 0) {\n options = {};\n }\n\n if (!element) return function () {}; // An observer with the same options can be reused, so lets use this fact\n\n var _createObserver = createObserver(options),\n id = _createObserver.id,\n observer = _createObserver.observer,\n elements = _createObserver.elements; // Register the callback listener for this element\n\n\n var callbacks = elements.get(element) || [];\n\n if (!elements.has(element)) {\n elements.set(element, callbacks);\n }\n\n callbacks.push(callback);\n observer.observe(element);\n return function unobserve() {\n // Remove the callback from the callback list\n callbacks.splice(callbacks.indexOf(callback), 1);\n\n if (callbacks.length === 0) {\n // No more callback exists for element, so destroy it\n elements[\"delete\"](element);\n observer.unobserve(element);\n }\n\n if (elements.size === 0) {\n // No more elements are being observer by this instance, so destroy it\n observer.disconnect();\n ObserverMap[\"delete\"](id);\n }\n };\n}\n\nfunction isPlainChildren(props) {\n return typeof props.children !== 'function';\n}\n/**\r\n ## Render props\r\n\n To use the `` component, you pass it a function. It will be called\r\n whenever the state changes, with the new value of `inView`. In addition to the\r\n `inView` prop, children also receive a `ref` that should be set on the\r\n containing DOM element. This is the element that the IntersectionObserver will\r\n monitor.\r\n\n If you need it, you can also access the\r\n [`IntersectionObserverEntry`](https://developer.mozilla.org/en-US/docs/Web/API/IntersectionObserverEntry)\r\n on `entry`, giving you access to all the details about the current intersection\r\n state.\r\n\n ```jsx\r\n import { InView } from 'react-intersection-observer';\r\n\n const Component = () => (\r\n \r\n {({ inView, ref, entry }) => (\r\n
\r\n

{`Header inside viewport ${inView}.`}

\r\n
\r\n )}\r\n
\r\n );\r\n\n export default Component;\r\n ```\r\n\n ## Plain children\r\n\n You can pass any element to the ``, and it will handle creating the\r\n wrapping DOM element. Add a handler to the `onChange` method, and control the\r\n state in your own component. Any extra props you add to `` will be\r\n passed to the HTML element, allowing you set the `className`, `style`, etc.\r\n\n ```jsx\r\n import { InView } from 'react-intersection-observer';\r\n\n const Component = () => (\r\n console.log('Inview:', inView)}>\r\n

Plain children are always rendered. Use onChange to monitor state.

\r\n
\r\n );\r\n\n export default Component;\r\n ```\r\n */\n\n\nvar InView = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(InView, _React$Component);\n\n function InView(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this;\n _this.node = null;\n _this._unobserveCb = null;\n\n _this.handleNode = function (node) {\n if (_this.node) {\n // Clear the old observer, before we start observing a new element\n _this.unobserve();\n\n if (!node && !_this.props.triggerOnce && !_this.props.skip) {\n // Reset the state if we get a new node, and we aren't ignoring updates\n _this.setState({\n inView: !!_this.props.initialInView,\n entry: undefined\n });\n }\n }\n\n _this.node = node ? node : null;\n\n _this.observeNode();\n };\n\n _this.handleChange = function (inView, entry) {\n if (inView && _this.props.triggerOnce) {\n // If `triggerOnce` is true, we should stop observing the element.\n _this.unobserve();\n }\n\n if (!isPlainChildren(_this.props)) {\n // Store the current State, so we can pass it to the children in the next render update\n // There's no reason to update the state for plain children, since it's not used in the rendering.\n _this.setState({\n inView: inView,\n entry: entry\n });\n }\n\n if (_this.props.onChange) {\n // If the user is actively listening for onChange, always trigger it\n _this.props.onChange(inView, entry);\n }\n };\n\n _this.state = {\n inView: !!props.initialInView,\n entry: undefined\n };\n return _this;\n }\n\n var _proto = InView.prototype;\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n // If a IntersectionObserver option changed, reinit the observer\n if (prevProps.rootMargin !== this.props.rootMargin || prevProps.root !== this.props.root || prevProps.threshold !== this.props.threshold || prevProps.skip !== this.props.skip || prevProps.trackVisibility !== this.props.trackVisibility || prevProps.delay !== this.props.delay) {\n this.unobserve();\n this.observeNode();\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.unobserve();\n this.node = null;\n };\n\n _proto.observeNode = function observeNode() {\n if (!this.node || this.props.skip) return;\n var _this$props = this.props,\n threshold = _this$props.threshold,\n root = _this$props.root,\n rootMargin = _this$props.rootMargin,\n trackVisibility = _this$props.trackVisibility,\n delay = _this$props.delay;\n this._unobserveCb = observe(this.node, this.handleChange, {\n threshold: threshold,\n root: root,\n rootMargin: rootMargin,\n // @ts-ignore\n trackVisibility: trackVisibility,\n // @ts-ignore\n delay: delay\n });\n };\n\n _proto.unobserve = function unobserve() {\n if (this._unobserveCb) {\n this._unobserveCb();\n\n this._unobserveCb = null;\n }\n };\n\n _proto.render = function render() {\n if (!isPlainChildren(this.props)) {\n var _this$state = this.state,\n inView = _this$state.inView,\n entry = _this$state.entry;\n return this.props.children({\n inView: inView,\n entry: entry,\n ref: this.handleNode\n });\n }\n\n var _this$props2 = this.props,\n children = _this$props2.children,\n as = _this$props2.as,\n tag = _this$props2.tag,\n props = _objectWithoutPropertiesLoose(_this$props2, [\"children\", \"as\", \"tag\", \"triggerOnce\", \"threshold\", \"root\", \"rootMargin\", \"onChange\", \"skip\", \"trackVisibility\", \"delay\", \"initialInView\"]);\n\n return /*#__PURE__*/createElement(as || tag || 'div', _extends({\n ref: this.handleNode\n }, props), children);\n };\n\n return InView;\n}(Component);\n\nInView.displayName = 'InView';\nInView.defaultProps = {\n threshold: 0,\n triggerOnce: false,\n initialInView: false\n};\n/**\r\n * React Hooks make it easy to monitor the `inView` state of your components. Call\r\n * the `useInView` hook with the (optional) [options](#options) you need. It will\r\n * return an array containing a `ref`, the `inView` status and the current\r\n * [`entry`](https://developer.mozilla.org/en-US/docs/Web/API/IntersectionObserverEntry).\r\n * Assign the `ref` to the DOM element you want to monitor, and the hook will\r\n * report the status.\r\n *\r\n * @example\r\n * ```jsx\r\n * import React from 'react';\r\n * import { useInView } from 'react-intersection-observer';\r\n *\r\n * const Component = () => {\r\n * const { ref, inView, entry } = useInView({\r\n * threshold: 0,\r\n * });\r\n *\r\n * return (\r\n *
\r\n *

{`Header inside viewport ${inView}.`}

\r\n *
\r\n * );\r\n * };\r\n * ```\r\n */\n\nfunction useInView(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n threshold = _ref.threshold,\n delay = _ref.delay,\n trackVisibility = _ref.trackVisibility,\n rootMargin = _ref.rootMargin,\n root = _ref.root,\n triggerOnce = _ref.triggerOnce,\n skip = _ref.skip,\n initialInView = _ref.initialInView;\n\n var unobserve = useRef();\n\n var _React$useState = useState({\n inView: !!initialInView\n }),\n state = _React$useState[0],\n setState = _React$useState[1];\n\n var setRef = useCallback(function (node) {\n if (unobserve.current !== undefined) {\n unobserve.current();\n unobserve.current = undefined;\n } // Skip creating the observer\n\n\n if (skip) return;\n\n if (node) {\n unobserve.current = observe(node, function (inView, entry) {\n setState({\n inView: inView,\n entry: entry\n });\n\n if (entry.isIntersecting && triggerOnce && unobserve.current) {\n // If it should only trigger once, unobserve the element after it's inView\n unobserve.current();\n unobserve.current = undefined;\n }\n }, {\n root: root,\n rootMargin: rootMargin,\n threshold: threshold,\n // @ts-ignore\n trackVisibility: trackVisibility,\n // @ts-ignore\n delay: delay\n });\n }\n }, // We break the rule here, because we aren't including the actual `threshold` variable\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [// If the threshold is an array, convert it to a string so it won't change between renders.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n Array.isArray(threshold) ? threshold.toString() : threshold, root, rootMargin, triggerOnce, skip, trackVisibility, delay]);\n /* eslint-disable-next-line */\n\n useEffect(function () {\n if (!unobserve.current && state.entry && !triggerOnce && !skip) {\n // If we don't have a ref, then reset the state (unless the hook is set to only `triggerOnce` or `skip`)\n // This ensures we correctly reflect the current state - If you aren't observing anything, then nothing is inView\n setState({\n inView: !!initialInView\n });\n }\n });\n var result = [setRef, state.inView, state.entry]; // Support object destructuring, by adding the specific values.\n\n result.ref = result[0];\n result.inView = result[1];\n result.entry = result[2];\n return result;\n}\n\nexport default InView;\nexport { InView, observe, useInView };","import _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport { createElement, Component, useState, useEffect } from 'react';\nimport InView, { useInView } from 'react-intersection-observer';\n\nfunction calculateVerticalPercentage(bounds, threshold, root) {\n if (threshold === void 0) {\n threshold = 0;\n }\n\n if (root === void 0) {\n root = window;\n }\n\n if (!root) return 0;\n var vh = (root instanceof Element ? root.clientHeight : root.innerHeight) || 0;\n var offset = threshold * bounds.height;\n var percentage = (bounds.bottom - offset) / (vh + bounds.height - offset * 2);\n return 1 - Math.max(0, Math.min(1, percentage));\n}\n\nfunction calculateHorizontalPercentage(bounds, threshold, root) {\n if (threshold === void 0) {\n threshold = 0;\n }\n\n if (root === void 0) {\n root = window;\n }\n\n if (!root) return 0;\n var vw = (root instanceof Element ? root.clientWidth : root.innerWidth) || 0;\n var offset = threshold * bounds.width;\n var percentage = (bounds.right - offset) / (vw + bounds.width - offset * 2);\n return 1 - Math.max(0, Math.min(1, percentage));\n}\n\nfunction isPlainChildren(props) {\n return typeof props.children !== 'function';\n}\n/**\n * Monitors scroll, and triggers the children function with updated props\n *\n \n {({ref, percentage}) => (\n

{`${percentage}`}

\n )}\n
\n */\n\n\nvar ScrollPercentage = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(ScrollPercentage, _React$Component);\n\n function ScrollPercentage() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n percentage: 0,\n inView: false,\n entry: undefined\n });\n\n _defineProperty(_assertThisInitialized(_this), \"node\", undefined);\n\n _defineProperty(_assertThisInitialized(_this), \"monitoring\", false);\n\n _defineProperty(_assertThisInitialized(_this), \"handleScroll\", function () {\n if (!_this.node) return;\n\n var bounds = _this.node.getBoundingClientRect();\n\n var percentage = _this.props.horizontal ? calculateHorizontalPercentage(bounds, _this.props.threshold, _this.props.root) : calculateVerticalPercentage(bounds, _this.props.threshold, _this.props.root);\n\n if (percentage !== _this.state.percentage) {\n _this.setState({\n percentage: percentage\n });\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleInView\", function (inView, entry) {\n _this.node = entry.target;\n\n _this.setState({\n entry: entry,\n inView: inView\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleRenderProps\", function (_ref) {\n var ref = _ref.ref;\n var _this$state = _this.state,\n percentage = _this$state.percentage,\n entry = _this$state.entry,\n inView = _this$state.inView;\n\n if (!isPlainChildren(_this.props)) {\n return _this.props.children({\n percentage: percentage,\n entry: entry,\n inView: inView,\n ref: ref\n });\n }\n\n return null;\n });\n\n return _this;\n }\n\n var _proto = ScrollPercentage.prototype;\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n if (this.props.onChange && (prevState.percentage !== this.state.percentage || prevState.inView !== this.state.inView)) {\n this.props.onChange(this.state.percentage, this.state.entry);\n }\n\n if (prevProps.root !== this.props.root) {\n if (this.monitoring) {\n this.monitorScroll(false, prevProps.root);\n this.monitorScroll(this.state.inView);\n }\n }\n\n if (prevState.inView !== this.state.inView) {\n this.monitorScroll(this.state.inView, prevProps.root);\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.monitorScroll(false);\n };\n\n _proto.monitorScroll = function monitorScroll(enabled, target) {\n var root = target || this.props.root || window;\n\n if (enabled) {\n if (this.monitoring) return;\n root.addEventListener('scroll', this.handleScroll, {\n passive: true\n });\n root.addEventListener('resize', this.handleScroll);\n this.handleScroll();\n this.monitoring = true;\n } else {\n if (!this.monitoring) return;\n root.removeEventListener('scroll', this.handleScroll);\n root.removeEventListener('resize', this.handleScroll);\n this.monitoring = false;\n }\n };\n\n _proto.render = function render() {\n return createElement(InView, {\n onChange: this.handleInView\n }, !isPlainChildren(this.props) ? this.handleRenderProps : this.props.children);\n };\n\n return ScrollPercentage;\n}(Component);\n\n_defineProperty(ScrollPercentage, \"displayName\", 'ScrollPercentage');\n\n_defineProperty(ScrollPercentage, \"defaultProps\", {\n threshold: 0\n});\n/**\n * Create a hook that reports the percentage an element is scrolled into the viewport.\n * @param options {ScrollPercentageOptions}\n */\n\n\nfunction useScrollPercentage(options) {\n if (options === void 0) {\n options = {};\n }\n\n var _useInView = useInView(options),\n ref = _useInView[0],\n inView = _useInView[1],\n entry = _useInView[2];\n\n var _useState = useState(0),\n percentage = _useState[0],\n setPercentage = _useState[1];\n\n var target = entry && entry.target;\n useEffect(function () {\n var handleScroll = function handleScroll() {\n if (!target) return;\n var bounds = target.getBoundingClientRect();\n var percentage = options.horizontal ? calculateHorizontalPercentage(bounds, options.threshold, options.root) : calculateVerticalPercentage(bounds, options.threshold, options.root);\n setPercentage(percentage);\n };\n\n if (inView) {\n var root = options.root || window;\n root.addEventListener('scroll', handleScroll, {\n passive: true\n });\n root.addEventListener('resize', handleScroll);\n return function () {\n root.removeEventListener('scroll', handleScroll);\n root.removeEventListener('resize', handleScroll);\n };\n } // Trigger a scroll update, so we set the initial scroll percentage\n\n\n handleScroll();\n return;\n }, [inView, options.root, options.horizontal, options.threshold, target]);\n return [ref, percentage, entry];\n}\n\nexport default ScrollPercentage;\nexport { ScrollPercentage, useScrollPercentage };","import styled from 'styles/styled';\n\nexport const Wrapper = styled.div`\n & + & {\n margin-top: 30px;\n }\n`;\n\nexport const SliderHeader = styled.div`\n display: flex;\n justify-content: space-between;\n margin-bottom: 10px;\n`;\n\nexport const SliderTitle = styled.p`\n color: ${({ theme }) => theme.palette.blogAccent};\n flex-basis: 100%;\n flex-grow: 1;\n font-weight: 400;\n padding-right: 10px;\n text-transform: uppercase;\n`;\n\nexport const PaginationWrapper = styled.div`\n align-items: center;\n flex-basis: 0;\n display: flex;\n justify-content: center;\n flex-grow: 0;\n\n .swiper-pagination-bullet {\n background-color: transparent;\n border: 1px solid ${({ theme }) => theme.palette.blogAccent};\n opacity: 1;\n transition: ${({ theme }) => theme.ui.transition('background-color')};\n\n &.swiper-pagination-bullet-active {\n background-color: ${({ theme }) => theme.palette.blogAccent};\n }\n\n & + .swiper-pagination-bullet {\n margin-left: 10px;\n }\n }\n`;\n","import React from 'react';\nimport SwiperCore, { Pagination, EffectFade, Autoplay } from 'swiper';\nimport { Swiper, SwiperSlide } from 'swiper/react';\nimport 'swiper/css/bundle';\n\nimport { BlogTypes } from 'types';\n\nimport BlogCard from 'components/BlogCard';\n\nimport {\n PaginationWrapper,\n SliderHeader,\n SliderTitle,\n Wrapper,\n} from './styled';\n\ninterface Props {\n posts: BlogTypes.BlogPost[];\n title: string;\n}\n\nSwiperCore.use([Pagination, EffectFade, Autoplay]);\n\nconst BlogSidebarSlider = ({ posts, title }: Props) => {\n const id = title.toLowerCase().split(' ').join('_');\n\n return (\n \n \n {title}\n \n \n \n {posts.map((post) => (\n \n \n \n ))}\n \n \n );\n};\n\nexport default BlogSidebarSlider;\n","var __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n };\n\n return function (d, b) {\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\nvar AssertionError = function (_super) {\n __extends(AssertionError, _super);\n\n function AssertionError(message) {\n var _this = _super.call(this, message) || this;\n\n _this.name = 'AssertionError';\n return _this;\n }\n\n return AssertionError;\n}(Error);\n\nexport default function assert(value, message) {\n if (!value) {\n throw new AssertionError(message);\n }\n}","import { useState, useRef, useCallback, useEffect } from 'react';\n\nvar canUsePassiveEvents = function canUsePassiveEvents() {\n if (typeof window === \"undefined\" || typeof window.addEventListener !== \"function\") return false;\n var passive = false;\n var options = Object.defineProperty({}, \"passive\", {\n // eslint-disable-next-line getter-return\n get: function get() {\n passive = true;\n }\n });\n\n var noop = function noop() {\n return null;\n };\n\n window.addEventListener(\"test\", noop, options);\n window.removeEventListener(\"test\", noop, options);\n return passive;\n};\n\nvar DEFAULT_IGNORE_CLASS = \"ignore-onclickoutside\";\n\nvar hasIgnoreClass = function hasIgnoreClass(e, ignoreClass) {\n var el = e.target || e;\n\n while (el) {\n var _el$classList;\n\n if ((_el$classList = el.classList) != null && _el$classList.contains(ignoreClass)) return true;\n el = el.parentElement;\n }\n\n return false;\n};\n\nvar clickedOnScrollbar = function clickedOnScrollbar(e) {\n return document.documentElement.clientWidth <= e.clientX || document.documentElement.clientHeight <= e.clientY;\n};\n\nvar getEventOptions = function getEventOptions(type) {\n return type.includes(\"touch\") && canUsePassiveEvents() ? {\n passive: true\n } : false;\n};\n\nvar useOnclickOutside = function useOnclickOutside(callback, _temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n refsOpt = _ref.refs,\n disabled = _ref.disabled,\n _ref$eventTypes = _ref.eventTypes,\n eventTypes = _ref$eventTypes === void 0 ? [\"mousedown\", \"touchstart\"] : _ref$eventTypes,\n excludeScrollbar = _ref.excludeScrollbar,\n _ref$ignoreClass = _ref.ignoreClass,\n ignoreClass = _ref$ignoreClass === void 0 ? DEFAULT_IGNORE_CLASS : _ref$ignoreClass,\n _ref$detectIFrame = _ref.detectIFrame,\n detectIFrame = _ref$detectIFrame === void 0 ? true : _ref$detectIFrame;\n\n var _useState = useState([]),\n refsState = _useState[0],\n setRefsState = _useState[1];\n\n var callbackRef = useRef(callback);\n callbackRef.current = callback;\n var ref = useCallback(function (el) {\n return setRefsState(function (prevState) {\n return [].concat(prevState, [{\n current: el\n }]);\n });\n }, []);\n useEffect(function () {\n if (!(refsOpt != null && refsOpt.length) && !refsState.length) return;\n\n var getEls = function getEls() {\n var els = [];\n (refsOpt || refsState).forEach(function (_ref2) {\n var current = _ref2.current;\n return current && els.push(current);\n });\n return els;\n };\n\n var handler = function handler(e) {\n if (!hasIgnoreClass(e, ignoreClass) && !(excludeScrollbar && clickedOnScrollbar(e)) && getEls().every(function (el) {\n return !el.contains(e.target);\n })) callbackRef.current(e);\n };\n\n var blurHandler = function blurHandler(e) {\n return (// On firefox the iframe becomes document.activeElement in the next event loop\n setTimeout(function () {\n var _document = document,\n activeElement = _document.activeElement;\n if ((activeElement == null ? void 0 : activeElement.tagName) === \"IFRAME\" && !hasIgnoreClass(activeElement, ignoreClass) && !getEls().includes(activeElement)) callbackRef.current(e);\n }, 0)\n );\n };\n\n var removeEventListener = function removeEventListener() {\n eventTypes.forEach(function (type) {\n return (// @ts-expect-error\n document.removeEventListener(type, handler, getEventOptions(type))\n );\n });\n if (detectIFrame) window.removeEventListener(\"blur\", blurHandler);\n };\n\n if (disabled) {\n removeEventListener();\n return;\n }\n\n eventTypes.forEach(function (type) {\n return document.addEventListener(type, handler, getEventOptions(type));\n });\n if (detectIFrame) window.addEventListener(\"blur\", blurHandler); // eslint-disable-next-line consistent-return\n\n return function () {\n return removeEventListener();\n };\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [refsState, ignoreClass, excludeScrollbar, disabled, detectIFrame, // eslint-disable-next-line react-hooks/exhaustive-deps\n JSON.stringify(eventTypes)]);\n return ref;\n};\n\nexport default useOnclickOutside;\nexport { DEFAULT_IGNORE_CLASS };","export default function objectToGetParams(object) {\n var params = Object.entries(object).filter(function (_a) {\n var value = _a[1];\n return value !== undefined && value !== null;\n }).map(function (_a) {\n var key = _a[0],\n value = _a[1];\n return encodeURIComponent(key) + \"=\" + encodeURIComponent(String(value));\n });\n return params.length > 0 ? \"?\" + params.join('&') : '';\n}","var __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n };\n\n return function (d, b) {\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\nvar __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n};\n\nvar __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\nvar __generator = this && this.__generator || function (thisArg, body) {\n var _ = {\n label: 0,\n sent: function sent() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n\n while (_) {\n try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n\n case 7:\n op = _.ops.pop();\n\n _.trys.pop();\n\n continue;\n\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n\n if (t && _.label < t[2]) {\n _.label = t[2];\n\n _.ops.push(op);\n\n break;\n }\n\n if (t[2]) _.ops.pop();\n\n _.trys.pop();\n\n continue;\n }\n\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n }\n\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n};\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nimport React, { Component } from 'react';\nimport cx from 'classnames';\n\nvar isPromise = function isPromise(obj) {\n return !!obj && (typeof obj === 'object' || typeof obj === 'function') && typeof obj.then === 'function';\n};\n\nvar getBoxPositionOnWindowCenter = function getBoxPositionOnWindowCenter(width, height) {\n return {\n left: window.outerWidth / 2 + (window.screenX || window.screenLeft || 0) - width / 2,\n top: window.outerHeight / 2 + (window.screenY || window.screenTop || 0) - height / 2\n };\n};\n\nvar getBoxPositionOnScreenCenter = function getBoxPositionOnScreenCenter(width, height) {\n return {\n top: (window.screen.height - height) / 2,\n left: (window.screen.width - width) / 2\n };\n};\n\nfunction windowOpen(url, _a, onClose) {\n var height = _a.height,\n width = _a.width,\n configRest = __rest(_a, [\"height\", \"width\"]);\n\n var config = __assign({\n height: height,\n width: width,\n location: 'no',\n toolbar: 'no',\n status: 'no',\n directories: 'no',\n menubar: 'no',\n scrollbars: 'yes',\n resizable: 'no',\n centerscreen: 'yes',\n chrome: 'yes'\n }, configRest);\n\n var shareDialog = window.open(url, '', Object.keys(config).map(function (key) {\n return key + \"=\" + config[key];\n }).join(', '));\n\n if (onClose) {\n var interval_1 = window.setInterval(function () {\n try {\n if (shareDialog === null || shareDialog.closed) {\n window.clearInterval(interval_1);\n onClose(shareDialog);\n }\n } catch (e) {\n /* eslint-disable no-console */\n console.error(e);\n /* eslint-enable no-console */\n }\n }, 1000);\n }\n\n return shareDialog;\n}\n\nvar ShareButton = function (_super) {\n __extends(ShareButton, _super);\n\n function ShareButton() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.openShareDialog = function (link) {\n var _a = _this.props,\n onShareWindowClose = _a.onShareWindowClose,\n _b = _a.windowHeight,\n windowHeight = _b === void 0 ? 400 : _b,\n _c = _a.windowPosition,\n windowPosition = _c === void 0 ? 'windowCenter' : _c,\n _d = _a.windowWidth,\n windowWidth = _d === void 0 ? 550 : _d;\n\n var windowConfig = __assign({\n height: windowHeight,\n width: windowWidth\n }, windowPosition === 'windowCenter' ? getBoxPositionOnWindowCenter(windowWidth, windowHeight) : getBoxPositionOnScreenCenter(windowWidth, windowHeight));\n\n windowOpen(link, windowConfig, onShareWindowClose);\n };\n\n _this.handleClick = function (event) {\n return __awaiter(_this, void 0, void 0, function () {\n var _a, beforeOnClick, disabled, networkLink, onClick, url, openShareDialogOnClick, opts, link, returnVal;\n\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _a = this.props, beforeOnClick = _a.beforeOnClick, disabled = _a.disabled, networkLink = _a.networkLink, onClick = _a.onClick, url = _a.url, openShareDialogOnClick = _a.openShareDialogOnClick, opts = _a.opts;\n link = networkLink(url, opts);\n\n if (disabled) {\n return [2\n /*return*/\n ];\n }\n\n event.preventDefault();\n if (!beforeOnClick) return [3\n /*break*/\n , 2];\n returnVal = beforeOnClick();\n if (!isPromise(returnVal)) return [3\n /*break*/\n , 2];\n return [4\n /*yield*/\n , returnVal];\n\n case 1:\n _b.sent();\n\n _b.label = 2;\n\n case 2:\n if (openShareDialogOnClick) {\n this.openShareDialog(link);\n }\n\n if (onClick) {\n onClick(event, link);\n }\n\n return [2\n /*return*/\n ];\n }\n });\n });\n };\n\n return _this;\n }\n\n ShareButton.prototype.render = function () {\n var _a = this.props,\n beforeOnClick = _a.beforeOnClick,\n children = _a.children,\n className = _a.className,\n disabled = _a.disabled,\n disabledStyle = _a.disabledStyle,\n forwardedRef = _a.forwardedRef,\n networkLink = _a.networkLink,\n networkName = _a.networkName,\n onShareWindowClose = _a.onShareWindowClose,\n openShareDialogOnClick = _a.openShareDialogOnClick,\n opts = _a.opts,\n resetButtonStyle = _a.resetButtonStyle,\n style = _a.style,\n url = _a.url,\n windowHeight = _a.windowHeight,\n windowPosition = _a.windowPosition,\n windowWidth = _a.windowWidth,\n rest = __rest(_a, [\"beforeOnClick\", \"children\", \"className\", \"disabled\", \"disabledStyle\", \"forwardedRef\", \"networkLink\", \"networkName\", \"onShareWindowClose\", \"openShareDialogOnClick\", \"opts\", \"resetButtonStyle\", \"style\", \"url\", \"windowHeight\", \"windowPosition\", \"windowWidth\"]);\n\n var newClassName = cx('react-share__ShareButton', {\n 'react-share__ShareButton--disabled': !!disabled,\n disabled: !!disabled\n }, className);\n var newStyle = resetButtonStyle ? __assign(__assign({\n backgroundColor: 'transparent',\n border: 'none',\n padding: 0,\n font: 'inherit',\n color: 'inherit',\n cursor: 'pointer'\n }, style), disabled && disabledStyle) : __assign(__assign({}, style), disabled && disabledStyle);\n return React.createElement(\"button\", __assign({}, rest, {\n \"aria-label\": rest['aria-label'] || networkName,\n className: newClassName,\n onClick: this.handleClick,\n ref: forwardedRef,\n style: newStyle\n }), children);\n };\n\n ShareButton.defaultProps = {\n disabledStyle: {\n opacity: 0.6\n },\n openShareDialogOnClick: true,\n resetButtonStyle: true\n };\n return ShareButton;\n}(Component);\n\nexport default ShareButton;","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n};\n\nimport React, { forwardRef } from 'react';\nimport ShareButton from '../ShareButton';\n\nfunction createShareButton(networkName, link, optsMap, defaultProps) {\n function CreatedButton(props, ref) {\n var opts = optsMap(props);\n\n var passedProps = __assign({}, props); // remove keys from passed props that are passed as opts\n\n\n var optsKeys = Object.keys(opts);\n optsKeys.forEach(function (key) {\n delete passedProps[key];\n });\n return React.createElement(ShareButton, __assign({}, defaultProps, passedProps, {\n forwardedRef: ref,\n networkName: networkName,\n networkLink: link,\n opts: optsMap(props)\n }));\n }\n\n CreatedButton.displayName = \"ShareButton-\" + networkName;\n return forwardRef(CreatedButton);\n}\n\nexport default createShareButton;","import assert from './utils/assert';\nimport objectToGetParams from './utils/objectToGetParams';\nimport createShareButton from './hocs/createShareButton';\n\nfunction facebookLink(url, _a) {\n var quote = _a.quote,\n hashtag = _a.hashtag;\n assert(url, 'facebook.url');\n return 'https://www.facebook.com/sharer/sharer.php' + objectToGetParams({\n u: url,\n quote: quote,\n hashtag: hashtag\n });\n}\n\nvar FacebookShareButton = createShareButton('facebook', facebookLink, function (props) {\n return {\n quote: props.quote,\n hashtag: props.hashtag\n };\n}, {\n windowWidth: 550,\n windowHeight: 400\n});\nexport default FacebookShareButton;","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n};\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nimport React from 'react';\nexport default function createIcon(iconConfig) {\n var Icon = function Icon(_a) {\n var bgStyle = _a.bgStyle,\n borderRadius = _a.borderRadius,\n iconFillColor = _a.iconFillColor,\n round = _a.round,\n size = _a.size,\n rest = __rest(_a, [\"bgStyle\", \"borderRadius\", \"iconFillColor\", \"round\", \"size\"]);\n\n return React.createElement(\"svg\", __assign({\n viewBox: \"0 0 64 64\",\n width: size,\n height: size\n }, rest), round ? React.createElement(\"circle\", {\n cx: \"32\",\n cy: \"32\",\n r: \"31\",\n fill: iconConfig.color,\n style: bgStyle\n }) : React.createElement(\"rect\", {\n width: \"64\",\n height: \"64\",\n rx: borderRadius,\n ry: borderRadius,\n fill: iconConfig.color,\n style: bgStyle\n }), React.createElement(\"path\", {\n d: iconConfig.path,\n fill: iconFillColor\n }));\n };\n\n Icon.defaultProps = {\n bgStyle: {},\n borderRadius: 0,\n iconFillColor: 'white',\n size: 64\n };\n return Icon;\n}","import createIcon from './hocs/createIcon';\nvar FacebookIcon = createIcon({\n color: '#3b5998',\n networkName: 'facebook',\n path: 'M34.1,47V33.3h4.6l0.7-5.3h-5.3v-3.4c0-1.5,0.4-2.6,2.6-2.6l2.8,0v-4.8c-0.5-0.1-2.2-0.2-4.1-0.2 c-4.1,0-6.9,2.5-6.9,7V28H24v5.3h4.6V47H34.1z'\n});\nexport default FacebookIcon;","import assert from './utils/assert';\nimport objectToGetParams from './utils/objectToGetParams';\nimport createShareButton from './hocs/createShareButton';\n\nfunction linkedinLink(url, _a) {\n var title = _a.title,\n summary = _a.summary,\n source = _a.source;\n assert(url, 'linkedin.url');\n return 'https://linkedin.com/shareArticle' + objectToGetParams({\n url: url,\n mini: 'true',\n title: title,\n summary: summary,\n source: source\n });\n}\n\nvar LinkedinShareButton = createShareButton('linkedin', linkedinLink, function (_a) {\n var title = _a.title,\n summary = _a.summary,\n source = _a.source;\n return {\n title: title,\n summary: summary,\n source: source\n };\n}, {\n windowWidth: 750,\n windowHeight: 600\n});\nexport default LinkedinShareButton;","import createIcon from './hocs/createIcon';\nvar LinkedinIcon = createIcon({\n color: '#007fb1',\n networkName: 'linkedin',\n path: 'M20.4,44h5.4V26.6h-5.4V44z M23.1,18c-1.7,0-3.1,1.4-3.1,3.1c0,1.7,1.4,3.1,3.1,3.1 c1.7,0,3.1-1.4,3.1-3.1C26.2,19.4,24.8,18,23.1,18z M39.5,26.2c-2.6,0-4.4,1.4-5.1,2.8h-0.1v-2.4h-5.2V44h5.4v-8.6 c0-2.3,0.4-4.5,3.2-4.5c2.8,0,2.8,2.6,2.8,4.6V44H46v-9.5C46,29.8,45,26.2,39.5,26.2z'\n});\nexport default LinkedinIcon;","import assert from './utils/assert';\nimport objectToGetParams from './utils/objectToGetParams';\nimport createShareButton from './hocs/createShareButton';\n\nfunction redditLink(url, _a) {\n var title = _a.title;\n assert(url, 'reddit.url');\n return 'https://www.reddit.com/submit' + objectToGetParams({\n url: url,\n title: title\n });\n}\n\nvar RedditShareButton = createShareButton('reddit', redditLink, function (props) {\n return {\n title: props.title\n };\n}, {\n windowWidth: 660,\n windowHeight: 460,\n windowPosition: 'windowCenter'\n});\nexport default RedditShareButton;","import createIcon from './hocs/createIcon';\nvar RedditIcon = createIcon({\n color: '#ff4500',\n networkName: 'reddit',\n path: 'm 52.8165,31.942362 c 0,-2.4803 -2.0264,-4.4965 -4.5169,-4.4965 -1.2155,0 -2.3171,0.4862 -3.128,1.2682 -3.077,-2.0247 -7.2403,-3.3133 -11.8507,-3.4782 l 2.5211,-7.9373 6.8272,1.5997 -0.0102,0.0986 c 0,2.0281 1.6575,3.6771 3.6958,3.6771 2.0366,0 3.6924,-1.649 3.6924,-3.6771 0,-2.0281 -1.6575,-3.6788 -3.6924,-3.6788 -1.564,0 -2.8968,0.9758 -3.4357,2.3443 l -7.3593,-1.7255 c -0.3213,-0.0782 -0.6477,0.1071 -0.748,0.4233 L 32,25.212062 c -4.8246,0.0578 -9.1953,1.3566 -12.41,3.4425 -0.8058,-0.7446 -1.8751,-1.2104 -3.0583,-1.2104 -2.4905,0 -4.5152,2.0179 -4.5152,4.4982 0,1.649 0.9061,3.0787 2.2389,3.8607 -0.0884,0.4794 -0.1462,0.9639 -0.1462,1.4569 0,6.6487 8.1736,12.0581 18.2223,12.0581 10.0487,0 18.224,-5.4094 18.224,-12.0581 0,-0.4658 -0.0493,-0.9248 -0.1275,-1.377 1.4144,-0.7599 2.3885,-2.2304 2.3885,-3.9406 z m -29.2808,3.0872 c 0,-1.4756 1.207,-2.6775 2.6894,-2.6775 1.4824,0 2.6877,1.2019 2.6877,2.6775 0,1.4756 -1.2053,2.6758 -2.6877,2.6758 -1.4824,0 -2.6894,-1.2002 -2.6894,-2.6758 z m 15.4037,7.9373 c -1.3549,1.3481 -3.4816,2.0043 -6.5008,2.0043 l -0.0221,-0.0051 -0.0221,0.0051 c -3.0209,0 -5.1476,-0.6562 -6.5008,-2.0043 -0.2465,-0.2448 -0.2465,-0.6443 0,-0.8891 0.2465,-0.2465 0.6477,-0.2465 0.8942,0 1.105,1.0999 2.9393,1.6337 5.6066,1.6337 l 0.0221,0.0051 0.0221,-0.0051 c 2.6673,0 4.5016,-0.5355 5.6066,-1.6354 0.2465,-0.2465 0.6477,-0.2448 0.8942,0 0.2465,0.2465 0.2465,0.6443 0,0.8908 z m -0.3213,-5.2615 c -1.4824,0 -2.6877,-1.2002 -2.6877,-2.6758 0,-1.4756 1.2053,-2.6775 2.6877,-2.6775 1.4824,0 2.6877,1.2019 2.6877,2.6775 0,1.4756 -1.2053,2.6758 -2.6877,2.6758 z'\n});\nexport default RedditIcon;","import assert from './utils/assert';\nimport objectToGetParams from './utils/objectToGetParams';\nimport createShareButton from './hocs/createShareButton';\n\nfunction telegramLink(url, _a) {\n var title = _a.title;\n assert(url, 'telegram.url');\n return 'https://telegram.me/share/url' + objectToGetParams({\n url: url,\n text: title\n });\n}\n\nvar TelegramShareButton = createShareButton('telegram', telegramLink, function (props) {\n return {\n title: props.title\n };\n}, {\n windowWidth: 550,\n windowHeight: 400\n});\nexport default TelegramShareButton;","import createIcon from './hocs/createIcon';\nvar TelegramIcon = createIcon({\n color: '#37aee2',\n networkName: 'telegram',\n path: 'm45.90873,15.44335c-0.6901,-0.0281 -1.37668,0.14048 -1.96142,0.41265c-0.84989,0.32661 -8.63939,3.33986 -16.5237,6.39174c-3.9685,1.53296 -7.93349,3.06593 -10.98537,4.24067c-3.05012,1.1765 -5.34694,2.05098 -5.4681,2.09312c-0.80775,0.28096 -1.89996,0.63566 -2.82712,1.72788c-0.23354,0.27218 -0.46884,0.62161 -0.58825,1.10275c-0.11941,0.48114 -0.06673,1.09222 0.16682,1.5716c0.46533,0.96052 1.25376,1.35737 2.18443,1.71383c3.09051,0.99037 6.28638,1.93508 8.93263,2.8236c0.97632,3.44171 1.91401,6.89571 2.84116,10.34268c0.30554,0.69185 0.97105,0.94823 1.65764,0.95525l-0.00351,0.03512c0,0 0.53908,0.05268 1.06412,-0.07375c0.52679,-0.12292 1.18879,-0.42846 1.79109,-0.99212c0.662,-0.62161 2.45836,-2.38812 3.47683,-3.38552l7.6736,5.66477l0.06146,0.03512c0,0 0.84989,0.59703 2.09312,0.68132c0.62161,0.04214 1.4399,-0.07726 2.14229,-0.59176c0.70766,-0.51626 1.1765,-1.34683 1.396,-2.29506c0.65673,-2.86224 5.00979,-23.57745 5.75257,-27.00686l-0.02107,0.08077c0.51977,-1.93157 0.32837,-3.70159 -0.87096,-4.74991c-0.60054,-0.52152 -1.2924,-0.7498 -1.98425,-0.77965l0,0.00176zm-0.2072,3.29069c0.04741,0.0439 0.0439,0.0439 0.00351,0.04741c-0.01229,-0.00351 0.14048,0.2072 -0.15804,1.32576l-0.01229,0.04214l-0.00878,0.03863c-0.75858,3.50668 -5.15554,24.40802 -5.74203,26.96472c-0.08077,0.34417 -0.11414,0.31959 -0.09482,0.29852c-0.1756,-0.02634 -0.50045,-0.16506 -0.52679,-0.1756l-13.13468,-9.70175c4.4988,-4.33199 9.09945,-8.25307 13.744,-12.43229c0.8218,-0.41265 0.68483,-1.68573 -0.29852,-1.70681c-1.04305,0.24584 -1.92279,0.99564 -2.8798,1.47502c-5.49971,3.2626 -11.11882,6.13186 -16.55882,9.49279c-2.792,-0.97105 -5.57873,-1.77704 -8.15298,-2.57601c2.2336,-0.89555 4.00889,-1.55579 5.75608,-2.23009c3.05188,-1.1765 7.01687,-2.7042 10.98537,-4.24067c7.94051,-3.06944 15.92667,-6.16346 16.62028,-6.43037l0.05619,-0.02283l0.05268,-0.02283c0.19316,-0.0878 0.30378,-0.09658 0.35471,-0.10009c0,0 -0.01756,-0.05795 -0.00351,-0.04566l-0.00176,0zm-20.91715,22.0638l2.16687,1.60145c-0.93418,0.91311 -1.81743,1.77353 -2.45485,2.38812l0.28798,-3.98957'\n});\nexport default TelegramIcon;","import assert from './utils/assert';\nimport objectToGetParams from './utils/objectToGetParams';\nimport createShareButton from './hocs/createShareButton';\n\nfunction twitterLink(url, _a) {\n var title = _a.title,\n via = _a.via,\n _b = _a.hashtags,\n hashtags = _b === void 0 ? [] : _b,\n _c = _a.related,\n related = _c === void 0 ? [] : _c;\n assert(url, 'twitter.url');\n assert(Array.isArray(hashtags), 'twitter.hashtags is not an array');\n assert(Array.isArray(related), 'twitter.related is not an array');\n return 'https://twitter.com/share' + objectToGetParams({\n url: url,\n text: title,\n via: via,\n hashtags: hashtags.length > 0 ? hashtags.join(',') : undefined,\n related: related.length > 0 ? related.join(',') : undefined\n });\n}\n\nvar TwitterShareButton = createShareButton('twitter', twitterLink, function (props) {\n return {\n hashtags: props.hashtags,\n title: props.title,\n via: props.via,\n related: props.related\n };\n}, {\n windowWidth: 550,\n windowHeight: 400\n});\nexport default TwitterShareButton;","import createIcon from './hocs/createIcon';\nvar TwitterIcon = createIcon({\n color: '#00aced',\n networkName: 'twitter',\n path: 'M48,22.1c-1.2,0.5-2.4,0.9-3.8,1c1.4-0.8,2.4-2.1,2.9-3.6c-1.3,0.8-2.7,1.3-4.2,1.6 C41.7,19.8,40,19,38.2,19c-3.6,0-6.6,2.9-6.6,6.6c0,0.5,0.1,1,0.2,1.5c-5.5-0.3-10.3-2.9-13.5-6.9c-0.6,1-0.9,2.1-0.9,3.3 c0,2.3,1.2,4.3,2.9,5.5c-1.1,0-2.1-0.3-3-0.8c0,0,0,0.1,0,0.1c0,3.2,2.3,5.8,5.3,6.4c-0.6,0.1-1.1,0.2-1.7,0.2c-0.4,0-0.8,0-1.2-0.1 c0.8,2.6,3.3,4.5,6.1,4.6c-2.2,1.8-5.1,2.8-8.2,2.8c-0.5,0-1.1,0-1.6-0.1c2.9,1.9,6.4,2.9,10.1,2.9c12.1,0,18.7-10,18.7-18.7 c0-0.3,0-0.6,0-0.8C46,24.5,47.1,23.4,48,22.1z'\n});\nexport default TwitterIcon;","import styled from 'styles/styled';\n\nexport const ShareButton = styled.button`\n background-color: #005aa0;\n border-radius: 10px;\n color: ${({ theme }) => theme.palette.light};\n display: flex;\n align-items: center;\n padding: 8px 10px;\n\n .gatsby-image-wrapper {\n display: block;\n margin-right: 5px;\n }\n`;\n\nexport const ShareDropdownWrapper = styled.ul<{ isOpen: boolean }>`\n background-color: ${({ theme }) => theme.palette.blogAccent};\n border-radius: 10px;\n opacity: ${({ isOpen }) => (isOpen ? 1 : 0)};\n padding: 15px;\n pointer-events: ${({ isOpen }) => (isOpen ? 'all' : 'none')};\n position: absolute;\n right: 0;\n top: calc(100% + 10px);\n transition: ${({ theme }) => theme.ui.transition('opacity')};\n z-index: 1;\n\n &::before {\n bottom: 100%;\n border-bottom: 5px solid ${({ theme }) => theme.palette.blogAccent};\n border-left: 10px solid transparent;\n border-right: 10px solid transparent;\n content: '';\n height: 20px;\n left: calc(50% - 10px);\n position: absolute;\n width: 20px;\n }\n\n li + li {\n margin-top: 15px;\n }\n\n button {\n align-items: center;\n display: flex;\n }\n\n span {\n display: block;\n margin-left: 5px;\n }\n`;\n","import React, { useState } from 'react';\nimport { StaticImage } from 'gatsby-plugin-image';\nimport useOnclickOutside from 'react-cool-onclickoutside';\nimport {\n FacebookShareButton,\n FacebookIcon,\n TelegramShareButton,\n TelegramIcon,\n RedditIcon,\n RedditShareButton,\n TwitterIcon,\n TwitterShareButton,\n LinkedinIcon,\n LinkedinShareButton,\n} from 'react-share';\n\nimport { ShareButton, ShareDropdownWrapper } from './styled';\n\ninterface Props {\n url: string;\n}\n\nconst ShareDropdown = ({ url }: Props) => {\n const [open, setOpen] = useState(false);\n const ref = useOnclickOutside(() => {\n setOpen(false);\n });\n\n return (\n <>\n setOpen(!open)}>\n \n Share article\n \n setOpen(false)}\n ref={ref}\n >\n
  • \n \n \n Facebook\n \n
  • \n
  • \n \n \n LinkedIn\n \n
  • \n
  • \n \n \n Reddit\n \n
  • \n
  • \n \n \n Telegram\n \n
  • \n
  • \n \n \n Twitter\n \n
  • \n \n \n );\n};\n\nexport default ShareDropdown;\n","import styled from 'styles/styled';\nimport { Link } from 'gatsby';\n\nexport const PageWrapper = styled.div`\n max-width: ${({ theme }) => theme.dimensions.contentMaxWidthMedium}px;\n margin: 0 auto;\n padding: 0 20px;\n\n @media ${({ theme }) => theme.devices.large} {\n padding: 0;\n }\n`;\n\nexport const Grid = styled.div`\n @media ${({ theme }) => theme.devices.large} {\n display: grid;\n grid-template-columns: 1fr 300px;\n gap: 30px;\n }\n`;\n\nexport const Wrapper = styled.article`\n margin: 0 auto 30px;\n min-width: 0;\n max-width: ${({ theme }) => theme.dimensions.contentMaxWidthMedium}px;\n width: 100%;\n\n p {\n font-weight: 400;\n }\n\n > button {\n align-self: flex-start;\n\n p {\n font-size: ${({ theme }) => theme.fontSize.titleMobile};\n }\n }\n\n @media ${({ theme }) => theme.devices.large} {\n > button p {\n font-size: ${({ theme }) => theme.fontSize.title};\n line-height: normal;\n letter-spacing: normal;\n }\n }\n`;\n\nexport const ArticleContent = styled.div`\n h2,\n p,\n ul,\n em,\n table {\n margin: 0 auto;\n }\n\n h2 {\n font-size: ${({ theme }) => theme.fontSize.smallBase};\n font-weight: ${({ theme }) => theme.fontWeight.bold};\n margin: 30px auto 15px;\n }\n\n h3,\n h4 {\n color: ${({ theme }) => theme.palette.light};\n font-size: ${({ theme }) => theme.fontSize.titleMobile};\n font-weight: ${({ theme }) => theme.fontWeight.bold};\n margin: 30px auto 15px;\n }\n\n p,\n em {\n font-weight: ${({ theme }) => theme.fontWeight.light};\n margin-bottom: 15px;\n }\n\n a {\n font-size: inherit;\n text-decoration: underline;\n }\n\n em {\n font-style: italic;\n }\n\n ul {\n padding-left: 2em;\n margin: 15px auto;\n }\n\n li {\n font-weight: ${({ theme }) => theme.fontWeight.light};\n list-style-type: initial;\n }\n\n blockquote {\n font-style: italic;\n }\n\n figure {\n margin: 30px 0;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-self: center;\n max-width: 100%;\n\n > span {\n margin: 0 auto;\n }\n\n img {\n border-radius: 4px;\n height: auto;\n }\n\n figcaption {\n display: none;\n }\n }\n\n // Source:\n // https://avexdesigns.com/blog/responsive-youtube-embed\n .wp-block-embed__wrapper {\n position: relative;\n padding-bottom: 56.25%;\n padding-top: 30px;\n height: 0;\n overflow: hidden;\n }\n\n .wp-block-embed__wrapper iframe,\n .wp-block-embed__wrapper object,\n .wp-block-embed__wrapper embed {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n }\n\n .wp-block-embed {\n width: 100%;\n }\n\n @media ${({ theme }) => theme.devices.large} {\n h2 {\n font-size: ${({ theme }) => theme.fontSize.subtitleMobile};\n }\n\n p,\n em,\n li {\n font-size: ${({ theme }) => theme.fontSize.subtitleMobile};\n }\n\n figure {\n + figure {\n margin-top: 0;\n }\n\n figcaption {\n color: ${({ theme }) => theme.palette.light};\n display: initial;\n font-size: ${({ theme }) => theme.fontSize.base};\n margin-top: 10px;\n opacity: 0.6;\n }\n }\n }\n`;\n\nexport const BackWrapper = styled(Link)`\n align-items: center;\n display: flex;\n line-height: 1;\n\n span {\n border: 1px solid ${({ theme }) => theme.palette.blogAccent};\n border-radius: 50%;\n display: block;\n height: 1.5em;\n position: relative;\n width: 1.5em;\n\n &::before {\n border-left: 1px solid ${({ theme }) => theme.palette.blogAccent};\n border-top: 1px solid ${({ theme }) => theme.palette.blogAccent};\n bottom: 0.45em;\n content: '';\n left: 0.45em;\n position: absolute;\n right: 0.45em;\n top: 0.45em;\n transform: rotateZ(-45deg) translate(1px, 1px);\n }\n }\n\n p {\n color: ${({ theme }) => theme.palette.blogAccent};\n margin-left: 10px;\n text-transform: capitalize;\n }\n`;\n\nexport const Heading = styled.header`\n border-bottom: 1px solid ${({ theme }) => theme.palette.blogAccent};\n margin: 30px 0;\n`;\n\nexport const HeadingBottom = styled.div`\n align-items: flex-start;\n display: flex;\n justify-content: space-between;\n margin: 25px 0;\n`;\n\nexport const ShareWrapper = styled.div`\n position: relative;\n`;\n\nexport const Title = styled.h1`\n font-size: ${({ theme }) => theme.fontSize.titleDesktop};\n font-weight: ${({ theme }) => theme.fontWeight.bold};\n\n @media ${({ theme }) => theme.devices.large} {\n font-size: ${({ theme }) => theme.fontSize.titleDesktopBig};\n }\n`;\n\nexport const TagsWrapper = styled.ul`\n display: flex;\n flex-wrap: wrap;\n gap: 10px;\n`;\n\nexport const MetaWrapper = styled.div`\n margin-bottom: 30px;\n\n @media ${({ theme }) => theme.devices.medium} {\n align-items: center;\n display: flex;\n justify-content: space-between;\n }\n`;\n\nexport const AuthorWrapper = styled.div`\n align-items: center;\n display: flex;\n`;\n\nexport const AuthorAvatar = styled.div`\n border-radius: 50%;\n height: 70px;\n object-fit: contain;\n margin-right: 10px;\n width: 70px;\n`;\n\nexport const AuthorMeta = styled.div``;\n\nexport const AuthorName = styled.div`\n align-items: center;\n display: flex;\n font-size: 18px;\n font-weight: 700;\n margin-bottom: 5px;\n\n a {\n display: block;\n margin-left: 10px;\n }\n\n img {\n height: 1.5em;\n width: 1.5em;\n }\n`;\n\nexport const ArticleMeta = styled.div`\n display: flex;\n margin-top: 20px;\n\n @media ${({ theme }) => theme.devices.medium} {\n margin-top: 0;\n }\n`;\n\nexport const ArticleDate = styled.div`\n align-items: center;\n display: flex;\n\n .gatsby-image-wrapper {\n margin-right: 5px;\n }\n\n & + & {\n margin-left: 20px;\n }\n`;\n\nexport const FeaturedImgWrapper = styled.div`\n margin-bottom: 20px;\n\n @media ${({ theme }) => theme.devices.medium} {\n margin-bottom: 30px;\n }\n`;\n\nexport const ImgCaption = styled.div`\n font-style: italic;\n opacity: 0.5;\n margin-top: 10px;\n`;\n\nexport const RateWrapper = styled.div`\n border-bottom: 1px solid ${({ theme }) => theme.palette.blogAccent};\n margin: 50px 0;\n`;\n\nexport const OtherWrapper = styled.div`\n margin-bottom: 100px;\n margin-top: 50px;\n\n @media ${({ theme }) => theme.devices.medium} {\n display: flex;\n }\n`;\n\nexport const OtherLabel = styled.p`\n color: ${({ theme }) => theme.palette.blogAccent};\n font-size: 22px;\n margin-bottom: 10px;\n text-align: center;\n\n @media ${({ theme }) => theme.devices.medium} {\n text-align: left;\n }\n`;\n\nexport const OtherArticle = styled.div`\n & + & {\n margin-top: 30px;\n }\n\n @media ${({ theme }) => theme.devices.medium} {\n flex-basis: 50%;\n\n &:last-child {\n ${OtherLabel} {\n text-align: right;\n }\n }\n\n & + & {\n margin-left: 20px;\n margin-top: 0;\n }\n }\n`;\n\nexport const SideBar = styled.div`\n display: none;\n\n @media ${({ theme }) => theme.devices.large} {\n display: block;\n }\n`;\n","import React from 'react';\nimport { graphql } from 'gatsby';\nimport { GatsbyImage, StaticImage } from 'gatsby-plugin-image';\nimport { useLocation } from '@reach/router';\nimport { useScrollPercentage } from 'react-scroll-percentage';\n\nimport { theme } from 'styles/styled';\nimport homeBg from 'images/background/home-bg.jpg';\n\nimport { BlogTypes } from 'types';\nimport { ROUTES } from 'constants/common';\n\nimport SEO from 'components/SEO';\nimport Layout from 'components/Layout';\nimport BlogCard from 'components/BlogCard';\nimport BlogSidebarSlider from 'components/BlogSidebarSlider';\nimport ShareDropdown from 'components/ShareDropdown';\nimport Tag from 'components/Tag';\nimport TagsHeader from 'components/TagsHeader';\nimport FacebookIcon from 'images/icons/facebook_blue.svg';\nimport LinkedInIcon from 'images/icons/linked-in_blue.svg';\nimport TwitterIcon from 'images/icons/twitter_blue.svg';\n\nimport {\n ArticleContent,\n ArticleDate,\n BackWrapper,\n Heading,\n Grid,\n PageWrapper,\n OtherArticle,\n Title,\n Wrapper,\n RateWrapper,\n OtherWrapper,\n OtherLabel,\n TagsWrapper,\n MetaWrapper,\n AuthorWrapper,\n AuthorAvatar,\n AuthorMeta,\n AuthorName,\n ArticleMeta,\n HeadingBottom,\n SideBar,\n ShareWrapper,\n} from './styled';\n\nconst BlogSingle = ({ data, pageContext }: BlogTypes.BlogPosts) => {\n const { href } = useLocation();\n const post = data.mainPost.nodes[0];\n const prevPost = pageContext?.prev;\n const nextPost = pageContext?.next;\n const [ref, percentage] = useScrollPercentage();\n\n if (post.seo) {\n post.seo.opengraphUrl = `${ROUTES.blog}/${post.slug}`;\n }\n\n return (\n \n \n \n \n\n \n \n \n  \n

    Back

    \n
    \n \n {post.title}\n\n \n \n {post.tags.nodes.map((t) => (\n \n ))}\n \n\n \n \n \n \n \n\n \n \n \n \n \n \n \n

    {post.author.node.name}

    \n {post.author.node.seo.social.facebook && (\n \n \"Facebook\n \n )}\n {post.author.node.seo.social.linkedIn && (\n \n \"LinkedIn\n \n )}\n {post.author.node.seo.social.twitter && (\n \n \"Twitter\n \n )}\n
    \n

    {post.author.node.description}

    \n
    \n
    \n\n \n \n \n {pageContext?.readingTime.text}\n \n \n \n {post.date}\n \n \n
    \n\n {/* {post.featuredImage && (\n \n \n {post.featuredImage.node.caption && (\n \n )}\n \n )} */}\n \n\n \n\n \n {prevPost && (\n \n Previous\n \n \n )}\n {nextPost && (\n \n Next\n \n \n )}\n \n
    \n\n \n {pageContext && (\n \n )}\n {pageContext && (\n \n )}\n \n
    \n
    \n \n );\n};\n\nexport const query = graphql`\n query ($slug: String!) {\n mainPost: allWpPost(filter: { slug: { eq: $slug } }) {\n nodes {\n ...PostMetaData\n title\n date(formatString: \"DD.MM.YYYY\")\n content\n categories {\n nodes {\n name\n }\n }\n slug\n featuredImage {\n node {\n id\n caption\n localFile {\n childImageSharp {\n fluid(quality: 100) {\n ...GatsbyImageSharpFluid_withWebp\n }\n }\n }\n }\n }\n author {\n node {\n avatarImg {\n childImageSharp {\n gatsbyImageData(placeholder: BLURRED, width: 70)\n }\n }\n name\n description\n seo {\n social {\n facebook\n linkedIn\n twitter\n }\n }\n }\n }\n tags {\n nodes {\n id\n name\n slug\n }\n }\n }\n }\n }\n`;\n\nexport default BlogSingle;\n","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzNCAzNCI+PGRlZnMvPjxwYXRoIGZpbGw9IiMwMDVhYTAiIGQ9Ik0yMS40MSAxMS4zMmgtMS42Yy0xLjI1IDAtMS41LjYtMS41IDEuNDd2MS45M2gzbC0uNCAzLjAzaC0yLjZ2Ny43NUgxNS4ydi03Ljc1aC0yLjYxdi0zLjAzaDIuNlYxMi41YzAtMi42IDEuNTktNCAzLjktNCAxLjEgMCAyLjA1LjA4IDIuMzIuMTJ2Mi43ek0xNyAwYTE3IDE3IDAgMTAwIDM0IDE3IDE3IDAgMDAwLTM0eiIvPjwvc3ZnPg==\"","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzNCAzNCI+PGRlZnMvPjxwYXRoIGZpbGw9IiMwMDVhYTAiIGQ9Ik0yNS41IDI1LjQ4aC0zLjUydi01LjVjMC0xLjMyLS4wMy0zLjAxLTEuODMtMy4wMS0xLjg0IDAtMi4xMSAxLjQzLTIuMTEgMi45djUuNjFoLTMuNTJWMTQuMTVoMy4zN3YxLjU1aC4wNWEzLjcgMy43IDAgMDEzLjMzLTEuODNjMy41NyAwIDQuMjMgMi4zNSA0LjIzIDUuNHY2LjIxek0xMC41NCAxMi42YTIuMDQgMi4wNCAwIDExMC00LjA4IDIuMDQgMi4wNCAwIDAxMCA0LjA4em0xLjc3IDEyLjg4SDguNzhWMTQuMTVoMy41M3YxMS4zM3pNMTcgMGExNyAxNyAwIDEwMCAzNCAxNyAxNyAwIDAwMC0zNHoiLz48L3N2Zz4=\"","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzNCAzNCI+PGRlZnMvPjxwYXRoIGZpbGw9IiMwMDVhYTAiIGQ9Ik0yMy43NiAxMy41M2wuMDEuNDZjMCA0LjYtMy41IDkuOTItOS45MiA5LjkyLTEuOTcgMC0zLjgtLjU4LTUuMzUtMS41N2E3LjE0IDcuMTQgMCAwMDUuMTYtMS40NCAzLjQ5IDMuNDkgMCAwMS0zLjI1LTIuNDIgMy41NSAzLjU1IDAgMDAxLjU3LS4wN0EzLjQ5IDMuNDkgMCAwMTkuMTggMTV2LS4wNWMuNDcuMjYgMS4wMS40MiAxLjU4LjQ0YTMuNDkgMy40OSAwIDAxLTEuMDgtNC42NiA5LjkgOS45IDAgMDA3LjIgMy42NSAzLjQ5IDMuNDkgMCAwMTUuOTQtMy4xOGMuNzktLjE2IDEuNTQtLjQ1IDIuMjEtLjg1YTMuNSAzLjUgMCAwMS0xLjUzIDEuOTNjLjctLjA5IDEuMzctLjI3IDItLjU1YTcuMTMgNy4xMyAwIDAxLTEuNzQgMS44TTE3IDBhMTcgMTcgMCAxMDAgMzQgMTcgMTcgMCAwMDAtMzQiLz48L3N2Zz4=\"","var React = require('react');\n\nfunction SearchInline (props) {\n return React.createElement(\"svg\",props,[React.createElement(\"circle\",{\"cx\":\"8\",\"cy\":\"8\",\"r\":\"7\",\"stroke\":\"currentColor\",\"key\":0}),React.createElement(\"path\",{\"d\":\"M13.5 13L18 17.5\",\"stroke\":\"currentColor\",\"strokeLinecap\":\"round\",\"key\":1})]);\n}\n\nSearchInline.defaultProps = {\"viewBox\":\"0 0 19 18\",\"fill\":\"none\"};\n\nmodule.exports = SearchInline;\n\nSearchInline.default = SearchInline;\n"],"names":["hasOwn","hasOwnProperty","classNames","classes","i","arguments","length","arg","argType","push","Array","isArray","inner","apply","toString","Object","prototype","key","call","join","module","exports","default","author","horizontal","image","title","date","slug","tags","excerpt","Link","to","ROUTES","fluid","aspectRatio","alt","src","placeholderImage","map","tag","Tag","id","name","dangerouslySetInnerHTML","__html","Wrapper","styled","theme","devices","medium","ImgWrapper","Image","Title","fontSize","smallBase","fontWeight","bold","large","subtitleMobile","ExcerptWrapper","palette","light","StyledButton","Button","InfoWrapper","BottomWrapper","blogAccent","TagsWrapper","TagLi","onClick","navigate","dimensions","contentMaxWidthMedium","TagsList","searching","active","SearchWrapper","ui","transition","SearchInput","useLocation","pathname","search","URLSearchParams","get","useState","val","setVal","allWpTag","useStaticQuery","nodes","filter","t","includes","activeTag","find","placeholder","onChange","e","target","value","Boolean","_extends","assign","source","this","ObserverMap","Map","RootIds","WeakMap","rootId","optionsToId","options","keys","sort","undefined","root","has","set","observe","element","callback","_createObserver","instance","thresholds","elements","observer","IntersectionObserver","entries","forEach","entry","_elements$get","inView","isIntersecting","some","threshold","intersectionRatio","trackVisibility","isVisible","createObserver","callbacks","splice","indexOf","unobserve","size","disconnect","isPlainChildren","props","children","InView","_React$Component","subClass","superClass","_this","node","_unobserveCb","handleNode","triggerOnce","skip","setState","initialInView","observeNode","handleChange","state","create","constructor","__proto__","_proto","componentDidUpdate","prevProps","rootMargin","delay","componentWillUnmount","_this$props","render","_this$state","ref","_this$props2","as","excluded","sourceKeys","_objectWithoutPropertiesLoose","createElement","Component","displayName","defaultProps","calculateVerticalPercentage","bounds","window","vh","Element","clientHeight","innerHeight","offset","height","percentage","bottom","Math","max","min","calculateHorizontalPercentage","vw","clientWidth","innerWidth","width","right","ScrollPercentage","_len","args","_key","concat","getBoundingClientRect","_ref","prevState","monitoring","monitorScroll","enabled","addEventListener","handleScroll","passive","removeEventListener","handleInView","handleRenderProps","useScrollPercentage","_useInView","_temp","useRef","_React$useState","setRef","useCallback","current","useEffect","result","useInView","_useState","setPercentage","SliderHeader","SliderTitle","PaginationWrapper","SwiperCore","Pagination","EffectFade","Autoplay","_extendStatics","posts","toLowerCase","split","spaceBetween","slidesPerView","updateOnWindowResize","preventInteractionOnTransition","fadeEffect","crossFade","effect","pagination","clickable","el","type","autoplay","post","BlogCard","featuredImage","localFile","childImageSharp","short","hasIgnoreClass","ignoreClass","_el$classList","classList","contains","parentElement","getEventOptions","defineProperty","noop","canUsePassiveEvents","refsOpt","refs","disabled","_ref$eventTypes","eventTypes","excludeScrollbar","_ref$ignoreClass","_ref$detectIFrame","detectIFrame","refsState","setRefsState","callbackRef","getEls","els","_ref2","handler","document","documentElement","clientX","clientY","clickedOnScrollbar","every","blurHandler","setTimeout","activeElement","tagName","JSON","stringify","__extends","d","b","setPrototypeOf","p","__","AssertionError","_super","message","Error","assert","objectToGetParams","object","params","_a","encodeURIComponent","String","__assign","s","n","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","step","next","rejected","done","then","__generator","body","f","y","g","_","label","sent","trys","ops","verb","Symbol","iterator","v","op","TypeError","pop","__rest","getOwnPropertySymbols","propertyIsEnumerable","isPromise","obj","getBoxPositionOnWindowCenter","left","outerWidth","screenX","screenLeft","top","outerHeight","screenY","screenTop","getBoxPositionOnScreenCenter","screen","windowOpen","url","onClose","configRest","config","location","toolbar","status","directories","menubar","scrollbars","resizable","centerscreen","chrome","shareDialog","open","interval_1","setInterval","closed","clearInterval","console","error","ShareButton","openShareDialog","link","onShareWindowClose","_b","windowHeight","_c","windowPosition","_d","windowWidth","handleClick","event","beforeOnClick","networkLink","openShareDialogOnClick","opts","returnVal","preventDefault","className","disabledStyle","forwardedRef","networkName","resetButtonStyle","style","rest","newClassName","newStyle","backgroundColor","border","padding","font","color","cursor","opacity","optsMap","CreatedButton","passedProps","forwardRef","quote","hashtag","u","createIcon","iconConfig","Icon","bgStyle","borderRadius","iconFillColor","round","viewBox","cx","cy","r","fill","rx","ry","path","summary","mini","text","via","hashtags","related","ShareDropdownWrapper","isOpen","setOpen","useOnclickOutside","S","quality","PageWrapper","Grid","titleMobile","ArticleContent","base","BackWrapper","Heading","HeadingBottom","ShareWrapper","titleDesktop","titleDesktopBig","MetaWrapper","AuthorWrapper","AuthorAvatar","AuthorMeta","AuthorName","ArticleMeta","ArticleDate","RateWrapper","OtherWrapper","OtherLabel","OtherArticle","SideBar","data","pageContext","href","mainPost","prevPost","prev","nextPost","seo","opengraphUrl","Layout","backgroundImage","homeBg","sticky","SEO","metadata","TagsHeader","G","avatarImg","gatsbyImageData","social","facebook","linkedIn","twitter","description","readingTime","content","replace","recentPosts","similarPosts","React","SearchInline"],"sourceRoot":""}