{"version":3,"file":"component---src-templates-blog-template-jsx-c9fa3d759e51ecfbd736.js","mappings":"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","sources":["webpack://cross-comm/./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","webpack://cross-comm/./node_modules/react-is/cjs/react-is.production.min.js","webpack://cross-comm/./node_modules/react-is/index.js","webpack://cross-comm/./src/components/Hero/HeroPortfolioBlogPost.jsx","webpack://cross-comm/./src/components/RichTextPostContentWrapper.jsx","webpack://cross-comm/./src/components/RichTextPost.jsx","webpack://cross-comm/./node_modules/react-share/es/utils/assert.js","webpack://cross-comm/./node_modules/react-share/es/utils/objectToGetParams.js","webpack://cross-comm/./node_modules/react-share/es/ShareButton.js","webpack://cross-comm/./node_modules/react-share/es/hocs/createShareButton.js","webpack://cross-comm/./node_modules/react-share/es/LinkedinShareButton.js","webpack://cross-comm/./node_modules/react-share/es/TwitterShareButton.js","webpack://cross-comm/./node_modules/react-share/es/FacebookShareButton.js","webpack://cross-comm/./src/components/BlogPost/Post.jsx","webpack://cross-comm/./node_modules/js-confetti/dist/es/index.js","webpack://cross-comm/./node_modules/react-google-recaptcha/lib/esm/recaptcha.js","webpack://cross-comm/./node_modules/react-async-script/lib/esm/async-script-loader.js","webpack://cross-comm/./node_modules/react-google-recaptcha/lib/esm/recaptcha-wrapper.js","webpack://cross-comm/./node_modules/react-google-recaptcha/lib/esm/index.js","webpack://cross-comm/./src/components/BlogPost/NewsletterForm.jsx","webpack://cross-comm/./src/components/BlogPost/ReadNext.jsx","webpack://cross-comm/./src/templates/BlogTemplate.jsx","webpack://cross-comm/./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"],"sourcesContent":["'use strict';\n\nvar reactIs = require('react-is');\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\n\n\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\n\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';\n\nvar b = \"function\" === typeof Symbol && Symbol.for,\n c = b ? Symbol.for(\"react.element\") : 60103,\n d = b ? Symbol.for(\"react.portal\") : 60106,\n e = b ? Symbol.for(\"react.fragment\") : 60107,\n f = b ? Symbol.for(\"react.strict_mode\") : 60108,\n g = b ? Symbol.for(\"react.profiler\") : 60114,\n h = b ? Symbol.for(\"react.provider\") : 60109,\n k = b ? Symbol.for(\"react.context\") : 60110,\n l = b ? Symbol.for(\"react.async_mode\") : 60111,\n m = b ? Symbol.for(\"react.concurrent_mode\") : 60111,\n n = b ? Symbol.for(\"react.forward_ref\") : 60112,\n p = b ? Symbol.for(\"react.suspense\") : 60113,\n q = b ? Symbol.for(\"react.suspense_list\") : 60120,\n r = b ? Symbol.for(\"react.memo\") : 60115,\n t = b ? Symbol.for(\"react.lazy\") : 60116,\n v = b ? Symbol.for(\"react.block\") : 60121,\n w = b ? Symbol.for(\"react.fundamental\") : 60117,\n x = b ? Symbol.for(\"react.responder\") : 60118,\n y = b ? Symbol.for(\"react.scope\") : 60119;\n\nfunction z(a) {\n if (\"object\" === typeof a && null !== a) {\n var u = a.$$typeof;\n\n switch (u) {\n case c:\n switch (a = a.type, a) {\n case l:\n case m:\n case e:\n case g:\n case f:\n case p:\n return a;\n\n default:\n switch (a = a && a.$$typeof, a) {\n case k:\n case n:\n case t:\n case r:\n case h:\n return a;\n\n default:\n return u;\n }\n\n }\n\n case d:\n return u;\n }\n }\n}\n\nfunction A(a) {\n return z(a) === m;\n}\n\nexports.AsyncMode = l;\nexports.ConcurrentMode = m;\nexports.ContextConsumer = k;\nexports.ContextProvider = h;\nexports.Element = c;\nexports.ForwardRef = n;\nexports.Fragment = e;\nexports.Lazy = t;\nexports.Memo = r;\nexports.Portal = d;\nexports.Profiler = g;\nexports.StrictMode = f;\nexports.Suspense = p;\n\nexports.isAsyncMode = function (a) {\n return A(a) || z(a) === l;\n};\n\nexports.isConcurrentMode = A;\n\nexports.isContextConsumer = function (a) {\n return z(a) === k;\n};\n\nexports.isContextProvider = function (a) {\n return z(a) === h;\n};\n\nexports.isElement = function (a) {\n return \"object\" === typeof a && null !== a && a.$$typeof === c;\n};\n\nexports.isForwardRef = function (a) {\n return z(a) === n;\n};\n\nexports.isFragment = function (a) {\n return z(a) === e;\n};\n\nexports.isLazy = function (a) {\n return z(a) === t;\n};\n\nexports.isMemo = function (a) {\n return z(a) === r;\n};\n\nexports.isPortal = function (a) {\n return z(a) === d;\n};\n\nexports.isProfiler = function (a) {\n return z(a) === g;\n};\n\nexports.isStrictMode = function (a) {\n return z(a) === f;\n};\n\nexports.isSuspense = function (a) {\n return z(a) === p;\n};\n\nexports.isValidElementType = function (a) {\n return \"string\" === typeof a || \"function\" === typeof a || a === e || a === m || a === g || a === f || a === p || a === q || \"object\" === typeof a && null !== a && (a.$$typeof === t || a.$$typeof === r || a.$$typeof === h || a.$$typeof === k || a.$$typeof === n || a.$$typeof === w || a.$$typeof === x || a.$$typeof === y || a.$$typeof === v);\n};\n\nexports.typeOf = z;","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}","import React from 'react';\nimport { GatsbyImage } from 'gatsby-plugin-image';\n\nimport CircleBackground from './CircleBackground';\n\nexport default function HeroPortfolioBlogPost({ image, title, subtitle }) {\n return (\n
\n \n {title ? (\n <>\n
\n {/* Any content here will be centered in the component */}\n
\n

{title}

\n {subtitle ?

{subtitle}

: null}\n
\n
\n
\n \n
\n \n ) : null}\n
\n );\n}\n","import React from 'react';\n\nexport default function RTEContentWrapper({ className, children }) {\n return (\n \n {children}\n \n );\n}\n","/* eslint-disable react/display-name */\nimport React from 'react';\nimport { BLOCKS } from '@contentful/rich-text-types';\nimport { renderRichText } from 'gatsby-source-contentful/rich-text';\nimport RichTextPostContentWrapper from './RichTextPostContentWrapper';\nimport QuoteSection from './Section/QuoteSection';\nimport MediaSection from './Section/MediaSection';\nimport LinkedImageSection from './Section/LinkedImageSection';\nimport DownloadFile from './Section/DownloadFile';\nimport { defaultOptions } from './RichText';\nimport BigBulletList from './BigBulletList';\n\nconst renderWithTag =\n (tagName, isVoidNode = false, includeWrapper = true) =>\n (node, children) =>\n includeWrapper ? (\n \n {React.createElement(tagName, null, !isVoidNode ? children : null)}\n \n ) : (\n React.createElement(tagName, null, !isVoidNode ? children : null)\n );\n\nexport default function RichTextPost({ content, isBlog }) {\n // Override the default options from RichText with custom renderNode rules:\n const options = {\n ...defaultOptions,\n renderNode: {\n ...defaultOptions.renderNode,\n [BLOCKS.PARAGRAPH]: renderWithTag('p'),\n [BLOCKS.HEADING_1]: renderWithTag('h1'),\n [BLOCKS.HEADING_2]: renderWithTag('h2'),\n [BLOCKS.HEADING_3]: renderWithTag('h3'),\n [BLOCKS.HEADING_4]: renderWithTag('h4'),\n [BLOCKS.HEADING_5]: renderWithTag('h5'),\n [BLOCKS.HEADING_6]: renderWithTag('h6'),\n [BLOCKS.OL_LIST]: renderWithTag('ol'),\n [BLOCKS.UL_LIST]: renderWithTag('ul'),\n [BLOCKS.LIST_ITEM]: renderWithTag('li', false, false),\n [BLOCKS.HR]: renderWithTag('hr', true),\n [BLOCKS.QUOTE]: renderWithTag('blockquote'),\n [BLOCKS.EMBEDDED_ASSET]: ({ data }) => (\n \n {defaultOptions.renderNode[BLOCKS.EMBEDDED_ASSET]({\n data: {\n ...data,\n target: {\n ...data.target,\n description: data.target.assetDescription,\n },\n },\n })}\n \n ),\n [BLOCKS.EMBEDDED_ENTRY]: ({ data }) => {\n switch (data.target?.__typename) {\n case 'ContentfulEmbeddedSnippet':\n case 'ContentfulCodeBlock':\n return (\n \n {defaultOptions.renderNode[BLOCKS.EMBEDDED_ENTRY]({\n data,\n })}\n \n );\n\n case 'ContentfulQuoteSection':\n return !isBlog ? (\n \n ) : (\n \n \n \n );\n\n case 'ContentfulMediaSection':\n return ;\n\n case 'ContentfulLinkedImageSection':\n return ;\n\n case 'ContentfulResourceLink':\n return !isBlog ? (\n \n ) : (\n \n \n \n );\n\n case 'ContentfulBulletList':\n return !isBlog ? (\n \n \n \n ) : null;\n\n default:\n return null;\n }\n },\n },\n };\n return (\n
\n {content ? renderRichText(content, options) : null}\n
\n );\n}\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 =\n/** @class */\nfunction (_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}","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 =\n/** @class */\nfunction (_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 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 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 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;","import { GatsbyImage } from 'gatsby-plugin-image';\nimport React, { useState } from 'react';\nimport {\n FacebookShareButton,\n LinkedinShareButton,\n TwitterShareButton,\n} from 'react-share';\nimport ContentWrapper from '../ContentWrapper';\nimport Icon from '../Icon';\nimport RichTextPost from '../RichTextPost';\nimport SectionContainer from '../SectionContainer';\n\nexport default function Post({ data, location }) {\n const [toggleFullBio, setToggleFullBio] = useState(false);\n\n return (\n
\n \n \n

{data.blogTitle}

\n
\n

Written by {data.authorDetails?.name}

\n

{data.publishedDate}

\n
\n
\n
\n

Share on:

\n
    \n
  • \n \n \n \n
  • \n
  • \n \n \n \n
  • \n
  • \n \n \n \n
  • \n
\n
\n
\n
\n \n \n \n
\n
\n

Share on:

\n
    \n
  • \n \n \n \n
  • \n
  • \n \n \n \n
  • \n
  • \n \n \n \n
  • \n
\n
\n
\n
\n \n
\n

{data.authorDetails?.name}

\n {data.authorDetails?.title ? (\n

{data.authorDetails?.title}

\n ) : null}\n
\n
\n {data.authorDetails?.description ? (\n <>\n {toggleFullBio ||\n data.authorDetails?.description.description.length < 158 ? (\n
\n

\n {data.authorDetails?.description.description}\n

\n {toggleFullBio ? (\n setToggleFullBio(!toggleFullBio)}\n >\n Read Less\n \n ) : null}\n
\n ) : (\n
\n

\n {data.authorDetails?.description.description\n .replace(/^(.{158}[^\\s]*).*/, '$1')\n .concat('...')}\n

\n setToggleFullBio(!toggleFullBio)}\n >\n Read More\n \n
\n )}\n \n ) : null}\n
\n
\n
\n
\n );\n}\n","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction normalizeComputedStyleValue(string) {\n // \"250px\" --> 250\n return +string.replace(/px/, '');\n}\n\nfunction fixDPR(canvas) {\n var dpr = window.devicePixelRatio;\n var computedStyles = getComputedStyle(canvas);\n var width = normalizeComputedStyleValue(computedStyles.getPropertyValue('width'));\n var height = normalizeComputedStyleValue(computedStyles.getPropertyValue('height'));\n canvas.setAttribute('width', (width * dpr).toString());\n canvas.setAttribute('height', (height * dpr).toString());\n}\n\nfunction generateRandomNumber(min, max) {\n var fractionDigits = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n var randomNumber = Math.random() * (max - min) + min;\n return Math.floor(randomNumber * Math.pow(10, fractionDigits)) / Math.pow(10, fractionDigits);\n}\n\nfunction generateRandomArrayElement(arr) {\n return arr[generateRandomNumber(0, arr.length)];\n}\n\nvar FREE_FALLING_OBJECT_ACCELERATION = 0.00125;\nvar MIN_DRAG_FORCE_COEFFICIENT = 0.0005;\nvar MAX_DRAG_FORCE_COEFFICIENT = 0.0009;\nvar ROTATION_SLOWDOWN_ACCELERATION = 0.00001;\nvar INITIAL_SHAPE_RADIUS = 6;\nvar INITIAL_EMOJI_SIZE = 80;\nvar MIN_INITIAL_CONFETTI_SPEED = 0.9;\nvar MAX_INITIAL_CONFETTI_SPEED = 1.7;\nvar MIN_FINAL_X_CONFETTI_SPEED = 0.2;\nvar MAX_FINAL_X_CONFETTI_SPEED = 0.6;\nvar MIN_INITIAL_ROTATION_SPEED = 0.03;\nvar MAX_INITIAL_ROTATION_SPEED = 0.07;\nvar MIN_CONFETTI_ANGLE = 15;\nvar MAX_CONFETTI_ANGLE = 82;\nvar MAX_CONFETTI_POSITION_SHIFT = 150;\nvar SHAPE_VISIBILITY_TRESHOLD = 100;\nvar DEFAULT_CONFETTI_NUMBER = 250;\nvar DEFAULT_EMOJIS_NUMBER = 40;\nvar DEFAULT_CONFETTI_COLORS = ['#fcf403', '#62fc03', '#f4fc03', '#03e7fc', '#03fca5', '#a503fc', '#fc03ad', '#fc03c2'];\n\nfunction getWindowWidthCoefficient(canvasWidth) {\n var HD_SCREEN_WIDTH = 1920;\n return Math.log(canvasWidth) / Math.log(HD_SCREEN_WIDTH);\n}\n\nvar ConfettiShape = /*#__PURE__*/function () {\n function ConfettiShape(args) {\n _classCallCheck(this, ConfettiShape);\n\n var initialPosition = args.initialPosition,\n direction = args.direction,\n confettiRadius = args.confettiRadius,\n confettiColors = args.confettiColors,\n emojis = args.emojis,\n emojiSize = args.emojiSize,\n canvasWidth = args.canvasWidth;\n var randomConfettiSpeed = generateRandomNumber(MIN_INITIAL_CONFETTI_SPEED, MAX_INITIAL_CONFETTI_SPEED, 3);\n var initialSpeed = randomConfettiSpeed * getWindowWidthCoefficient(canvasWidth);\n this.confettiSpeed = {\n x: initialSpeed,\n y: initialSpeed\n };\n this.finalConfettiSpeedX = generateRandomNumber(MIN_FINAL_X_CONFETTI_SPEED, MAX_FINAL_X_CONFETTI_SPEED, 3);\n this.rotationSpeed = emojis.length ? 0.01 : generateRandomNumber(MIN_INITIAL_ROTATION_SPEED, MAX_INITIAL_ROTATION_SPEED, 3) * getWindowWidthCoefficient(canvasWidth);\n this.dragForceCoefficient = generateRandomNumber(MIN_DRAG_FORCE_COEFFICIENT, MAX_DRAG_FORCE_COEFFICIENT, 6);\n this.radius = {\n x: confettiRadius,\n y: confettiRadius\n };\n this.initialRadius = confettiRadius;\n this.rotationAngle = direction === 'left' ? generateRandomNumber(0, 0.2, 3) : generateRandomNumber(-0.2, 0, 3);\n this.emojiSize = emojiSize;\n this.emojiRotationAngle = generateRandomNumber(0, 2 * Math.PI);\n this.radiusYUpdateDirection = 'down';\n var angle = direction === 'left' ? generateRandomNumber(MAX_CONFETTI_ANGLE, MIN_CONFETTI_ANGLE) * Math.PI / 180 : generateRandomNumber(-MIN_CONFETTI_ANGLE, -MAX_CONFETTI_ANGLE) * Math.PI / 180;\n this.absCos = Math.abs(Math.cos(angle));\n this.absSin = Math.abs(Math.sin(angle));\n var positionShift = generateRandomNumber(-MAX_CONFETTI_POSITION_SHIFT, 0);\n var shiftedInitialPosition = {\n x: initialPosition.x + (direction === 'left' ? -positionShift : positionShift) * this.absCos,\n y: initialPosition.y - positionShift * this.absSin\n };\n this.currentPosition = Object.assign({}, shiftedInitialPosition);\n this.initialPosition = Object.assign({}, shiftedInitialPosition);\n this.color = emojis.length ? null : generateRandomArrayElement(confettiColors);\n this.emoji = emojis.length ? generateRandomArrayElement(emojis) : null;\n this.createdAt = new Date().getTime();\n this.direction = direction;\n }\n\n _createClass(ConfettiShape, [{\n key: \"draw\",\n value: function draw(canvasContext) {\n var currentPosition = this.currentPosition,\n radius = this.radius,\n color = this.color,\n emoji = this.emoji,\n rotationAngle = this.rotationAngle,\n emojiRotationAngle = this.emojiRotationAngle,\n emojiSize = this.emojiSize;\n var dpr = window.devicePixelRatio;\n\n if (color) {\n canvasContext.fillStyle = color;\n canvasContext.beginPath();\n canvasContext.ellipse(currentPosition.x * dpr, currentPosition.y * dpr, radius.x * dpr, radius.y * dpr, rotationAngle, 0, 2 * Math.PI);\n canvasContext.fill();\n } else if (emoji) {\n canvasContext.font = \"\".concat(emojiSize, \"px serif\");\n canvasContext.save();\n canvasContext.translate(dpr * currentPosition.x, dpr * currentPosition.y);\n canvasContext.rotate(emojiRotationAngle);\n canvasContext.textAlign = 'center';\n canvasContext.fillText(emoji, 0, 0);\n canvasContext.restore();\n }\n }\n }, {\n key: \"updatePosition\",\n value: function updatePosition(iterationTimeDelta, currentTime) {\n var confettiSpeed = this.confettiSpeed,\n dragForceCoefficient = this.dragForceCoefficient,\n finalConfettiSpeedX = this.finalConfettiSpeedX,\n radiusYUpdateDirection = this.radiusYUpdateDirection,\n rotationSpeed = this.rotationSpeed,\n createdAt = this.createdAt,\n direction = this.direction;\n var timeDeltaSinceCreation = currentTime - createdAt;\n if (confettiSpeed.x > finalConfettiSpeedX) this.confettiSpeed.x -= dragForceCoefficient * iterationTimeDelta;\n this.currentPosition.x += confettiSpeed.x * (direction === 'left' ? -this.absCos : this.absCos) * iterationTimeDelta;\n this.currentPosition.y = this.initialPosition.y - confettiSpeed.y * this.absSin * timeDeltaSinceCreation + FREE_FALLING_OBJECT_ACCELERATION * Math.pow(timeDeltaSinceCreation, 2) / 2;\n this.rotationSpeed -= this.emoji ? 0.0001 : ROTATION_SLOWDOWN_ACCELERATION * iterationTimeDelta;\n if (this.rotationSpeed < 0) this.rotationSpeed = 0; // no need to update rotation radius for emoji\n\n if (this.emoji) {\n this.emojiRotationAngle += this.rotationSpeed * iterationTimeDelta % (2 * Math.PI);\n return;\n }\n\n if (radiusYUpdateDirection === 'down') {\n this.radius.y -= iterationTimeDelta * rotationSpeed;\n\n if (this.radius.y <= 0) {\n this.radius.y = 0;\n this.radiusYUpdateDirection = 'up';\n }\n } else {\n this.radius.y += iterationTimeDelta * rotationSpeed;\n\n if (this.radius.y >= this.initialRadius) {\n this.radius.y = this.initialRadius;\n this.radiusYUpdateDirection = 'down';\n }\n }\n }\n }, {\n key: \"getIsVisibleOnCanvas\",\n value: function getIsVisibleOnCanvas(canvasHeight) {\n return this.currentPosition.y < canvasHeight + SHAPE_VISIBILITY_TRESHOLD;\n }\n }]);\n\n return ConfettiShape;\n}();\n\nfunction createCanvas() {\n var canvas = document.createElement('canvas');\n canvas.style.position = 'fixed';\n canvas.style.width = '100%';\n canvas.style.height = '100%';\n canvas.style.top = '0';\n canvas.style.left = '0';\n canvas.style.zIndex = '1000';\n canvas.style.pointerEvents = 'none';\n document.body.appendChild(canvas);\n return canvas;\n}\n\nfunction normalizeConfettiConfig(confettiConfig) {\n var _confettiConfig$confe = confettiConfig.confettiRadius,\n confettiRadius = _confettiConfig$confe === void 0 ? INITIAL_SHAPE_RADIUS : _confettiConfig$confe,\n _confettiConfig$confe2 = confettiConfig.confettiNumber,\n confettiNumber = _confettiConfig$confe2 === void 0 ? confettiConfig.confettiesNumber || (confettiConfig.emojis ? DEFAULT_EMOJIS_NUMBER : DEFAULT_CONFETTI_NUMBER) : _confettiConfig$confe2,\n _confettiConfig$confe3 = confettiConfig.confettiColors,\n confettiColors = _confettiConfig$confe3 === void 0 ? DEFAULT_CONFETTI_COLORS : _confettiConfig$confe3,\n _confettiConfig$emoji = confettiConfig.emojis,\n emojis = _confettiConfig$emoji === void 0 ? confettiConfig.emojies || [] : _confettiConfig$emoji,\n _confettiConfig$emoji2 = confettiConfig.emojiSize,\n emojiSize = _confettiConfig$emoji2 === void 0 ? INITIAL_EMOJI_SIZE : _confettiConfig$emoji2; // deprecate wrong plural forms, used in early releases\n\n if (confettiConfig.emojies) console.error(\"emojies argument is deprecated, please use emojis instead\");\n if (confettiConfig.confettiesNumber) console.error(\"confettiesNumber argument is deprecated, please use confettiNumber instead\");\n return {\n confettiRadius: confettiRadius,\n confettiNumber: confettiNumber,\n confettiColors: confettiColors,\n emojis: emojis,\n emojiSize: emojiSize\n };\n}\n\nvar ConfettiBatch = /*#__PURE__*/function () {\n function ConfettiBatch(canvasContext) {\n var _this = this;\n\n _classCallCheck(this, ConfettiBatch);\n\n this.canvasContext = canvasContext;\n this.shapes = [];\n this.promise = new Promise(function (completionCallback) {\n return _this.resolvePromise = completionCallback;\n });\n }\n\n _createClass(ConfettiBatch, [{\n key: \"getBatchCompletePromise\",\n value: function getBatchCompletePromise() {\n return this.promise;\n }\n }, {\n key: \"addShapes\",\n value: function addShapes() {\n var _this$shapes;\n\n (_this$shapes = this.shapes).push.apply(_this$shapes, arguments);\n }\n }, {\n key: \"complete\",\n value: function complete() {\n var _a;\n\n if (this.shapes.length) {\n return false;\n }\n\n (_a = this.resolvePromise) === null || _a === void 0 ? void 0 : _a.call(this);\n return true;\n }\n }, {\n key: \"processShapes\",\n value: function processShapes(time, canvasHeight, cleanupInvisibleShapes) {\n var _this2 = this;\n\n var timeDelta = time.timeDelta,\n currentTime = time.currentTime;\n this.shapes = this.shapes.filter(function (shape) {\n // Render the shapes in this batch\n shape.updatePosition(timeDelta, currentTime);\n shape.draw(_this2.canvasContext); // Only cleanup the shapes if we're being asked to\n\n if (!cleanupInvisibleShapes) {\n return true;\n }\n\n return shape.getIsVisibleOnCanvas(canvasHeight);\n });\n }\n }]);\n\n return ConfettiBatch;\n}();\n\nvar JSConfetti = /*#__PURE__*/function () {\n function JSConfetti() {\n var jsConfettiConfig = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, JSConfetti);\n\n this.activeConfettiBatches = [];\n this.canvas = jsConfettiConfig.canvas || createCanvas();\n this.canvasContext = this.canvas.getContext('2d');\n this.requestAnimationFrameRequested = false;\n this.lastUpdated = new Date().getTime();\n this.iterationIndex = 0;\n this.loop = this.loop.bind(this);\n requestAnimationFrame(this.loop);\n }\n\n _createClass(JSConfetti, [{\n key: \"loop\",\n value: function loop() {\n this.requestAnimationFrameRequested = false;\n fixDPR(this.canvas);\n var currentTime = new Date().getTime();\n var timeDelta = currentTime - this.lastUpdated;\n var canvasHeight = this.canvas.offsetHeight;\n var cleanupInvisibleShapes = this.iterationIndex % 10 === 0;\n this.activeConfettiBatches = this.activeConfettiBatches.filter(function (batch) {\n batch.processShapes({\n timeDelta: timeDelta,\n currentTime: currentTime\n }, canvasHeight, cleanupInvisibleShapes); // Do not remove invisible shapes on every iteration\n\n if (!cleanupInvisibleShapes) {\n return true;\n }\n\n return !batch.complete();\n });\n this.iterationIndex++;\n this.queueAnimationFrameIfNeeded(currentTime);\n }\n }, {\n key: \"queueAnimationFrameIfNeeded\",\n value: function queueAnimationFrameIfNeeded(currentTime) {\n if (this.requestAnimationFrameRequested) {\n // We already have a pended animation frame, so there is no more work\n return;\n }\n\n if (this.activeConfettiBatches.length < 1) {\n // No shapes to animate, so don't queue another frame\n return;\n }\n\n this.requestAnimationFrameRequested = true; // Capture the last updated time for animation\n\n this.lastUpdated = currentTime || new Date().getTime();\n requestAnimationFrame(this.loop);\n }\n }, {\n key: \"addConfetti\",\n value: function addConfetti() {\n var confettiConfig = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var _normalizeConfettiCon = normalizeConfettiConfig(confettiConfig),\n confettiRadius = _normalizeConfettiCon.confettiRadius,\n confettiNumber = _normalizeConfettiCon.confettiNumber,\n confettiColors = _normalizeConfettiCon.confettiColors,\n emojis = _normalizeConfettiCon.emojis,\n emojiSize = _normalizeConfettiCon.emojiSize; // Use the bounding rect rather tahn the canvas width / height, because\n // .width / .height are unset until a layout pass has been completed. Upon\n // confetti being immediately queued on a page load, this hasn't happened so\n // the default of 300x150 will be returned, causing an improper source point\n // for the confetti animation.\n\n\n var canvasRect = this.canvas.getBoundingClientRect();\n var canvasWidth = canvasRect.width;\n var canvasHeight = canvasRect.height;\n var yPosition = canvasHeight * 5 / 7;\n var leftConfettiPosition = {\n x: 0,\n y: yPosition\n };\n var rightConfettiPosition = {\n x: canvasWidth,\n y: yPosition\n };\n var confettiGroup = new ConfettiBatch(this.canvasContext);\n\n for (var i = 0; i < confettiNumber / 2; i++) {\n var confettiOnTheRight = new ConfettiShape({\n initialPosition: leftConfettiPosition,\n direction: 'right',\n confettiRadius: confettiRadius,\n confettiColors: confettiColors,\n confettiNumber: confettiNumber,\n emojis: emojis,\n emojiSize: emojiSize,\n canvasWidth: canvasWidth\n });\n var confettiOnTheLeft = new ConfettiShape({\n initialPosition: rightConfettiPosition,\n direction: 'left',\n confettiRadius: confettiRadius,\n confettiColors: confettiColors,\n confettiNumber: confettiNumber,\n emojis: emojis,\n emojiSize: emojiSize,\n canvasWidth: canvasWidth\n });\n confettiGroup.addShapes(confettiOnTheRight, confettiOnTheLeft);\n }\n\n this.activeConfettiBatches.push(confettiGroup);\n this.queueAnimationFrameIfNeeded();\n return confettiGroup.getBatchCompletePromise();\n }\n }]);\n\n return JSConfetti;\n}();\n\nexport default JSConfetti;","function _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 _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\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nimport React from \"react\";\n\nvar ReCAPTCHA = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(ReCAPTCHA, _React$Component);\n\n function ReCAPTCHA() {\n var _this;\n\n _this = _React$Component.call(this) || this;\n _this.handleExpired = _this.handleExpired.bind(_assertThisInitialized(_this));\n _this.handleErrored = _this.handleErrored.bind(_assertThisInitialized(_this));\n _this.handleChange = _this.handleChange.bind(_assertThisInitialized(_this));\n _this.handleRecaptchaRef = _this.handleRecaptchaRef.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n var _proto = ReCAPTCHA.prototype;\n\n _proto.getValue = function getValue() {\n if (this.props.grecaptcha && this._widgetId !== undefined) {\n return this.props.grecaptcha.getResponse(this._widgetId);\n }\n\n return null;\n };\n\n _proto.getWidgetId = function getWidgetId() {\n if (this.props.grecaptcha && this._widgetId !== undefined) {\n return this._widgetId;\n }\n\n return null;\n };\n\n _proto.execute = function execute() {\n var grecaptcha = this.props.grecaptcha;\n\n if (grecaptcha && this._widgetId !== undefined) {\n return grecaptcha.execute(this._widgetId);\n } else {\n this._executeRequested = true;\n }\n };\n\n _proto.executeAsync = function executeAsync() {\n var _this2 = this;\n\n return new Promise(function (resolve, reject) {\n _this2.executionResolve = resolve;\n _this2.executionReject = reject;\n\n _this2.execute();\n });\n };\n\n _proto.reset = function reset() {\n if (this.props.grecaptcha && this._widgetId !== undefined) {\n this.props.grecaptcha.reset(this._widgetId);\n }\n };\n\n _proto.handleExpired = function handleExpired() {\n if (this.props.onExpired) {\n this.props.onExpired();\n } else {\n this.handleChange(null);\n }\n };\n\n _proto.handleErrored = function handleErrored() {\n if (this.props.onErrored) {\n this.props.onErrored();\n }\n\n if (this.executionReject) {\n this.executionReject();\n delete this.executionResolve;\n delete this.executionReject;\n }\n };\n\n _proto.handleChange = function handleChange(token) {\n if (this.props.onChange) {\n this.props.onChange(token);\n }\n\n if (this.executionResolve) {\n this.executionResolve(token);\n delete this.executionReject;\n delete this.executionResolve;\n }\n };\n\n _proto.explicitRender = function explicitRender() {\n if (this.props.grecaptcha && this.props.grecaptcha.render && this._widgetId === undefined) {\n var wrapper = document.createElement(\"div\");\n this._widgetId = this.props.grecaptcha.render(wrapper, {\n sitekey: this.props.sitekey,\n callback: this.handleChange,\n theme: this.props.theme,\n type: this.props.type,\n tabindex: this.props.tabindex,\n \"expired-callback\": this.handleExpired,\n \"error-callback\": this.handleErrored,\n size: this.props.size,\n stoken: this.props.stoken,\n hl: this.props.hl,\n badge: this.props.badge\n });\n this.captcha.appendChild(wrapper);\n }\n\n if (this._executeRequested && this.props.grecaptcha && this._widgetId !== undefined) {\n this._executeRequested = false;\n this.execute();\n }\n };\n\n _proto.componentDidMount = function componentDidMount() {\n this.explicitRender();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n this.explicitRender();\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this._widgetId !== undefined) {\n this.delayOfCaptchaIframeRemoving();\n this.reset();\n }\n };\n\n _proto.delayOfCaptchaIframeRemoving = function delayOfCaptchaIframeRemoving() {\n var temporaryNode = document.createElement(\"div\");\n document.body.appendChild(temporaryNode);\n temporaryNode.style.display = \"none\"; // move of the recaptcha to a temporary node\n\n while (this.captcha.firstChild) {\n temporaryNode.appendChild(this.captcha.firstChild);\n } // delete the temporary node after reset will be done\n\n\n setTimeout(function () {\n document.body.removeChild(temporaryNode);\n }, 5000);\n };\n\n _proto.handleRecaptchaRef = function handleRecaptchaRef(elem) {\n this.captcha = elem;\n };\n\n _proto.render = function render() {\n // consume properties owned by the reCATPCHA, pass the rest to the div so the user can style it.\n\n /* eslint-disable no-unused-vars */\n var _this$props = this.props,\n sitekey = _this$props.sitekey,\n onChange = _this$props.onChange,\n theme = _this$props.theme,\n type = _this$props.type,\n tabindex = _this$props.tabindex,\n onExpired = _this$props.onExpired,\n onErrored = _this$props.onErrored,\n size = _this$props.size,\n stoken = _this$props.stoken,\n grecaptcha = _this$props.grecaptcha,\n badge = _this$props.badge,\n hl = _this$props.hl,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"sitekey\", \"onChange\", \"theme\", \"type\", \"tabindex\", \"onExpired\", \"onErrored\", \"size\", \"stoken\", \"grecaptcha\", \"badge\", \"hl\"]);\n /* eslint-enable no-unused-vars */\n\n\n return React.createElement(\"div\", _extends({}, childProps, {\n ref: this.handleRecaptchaRef\n }));\n };\n\n return ReCAPTCHA;\n}(React.Component);\n\nexport { ReCAPTCHA as default };\nReCAPTCHA.displayName = \"ReCAPTCHA\";\nReCAPTCHA.defaultProps = {\n onChange: function onChange() {},\n theme: \"light\",\n type: \"image\",\n tabindex: 0,\n size: \"normal\",\n badge: \"bottomright\"\n};","function _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 _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\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nimport { Component, createElement, forwardRef } from \"react\";\nimport PropTypes from \"prop-types\";\nimport hoistStatics from \"hoist-non-react-statics\";\nvar SCRIPT_MAP = {}; // A counter used to generate a unique id for each component that uses the function\n\nvar idCount = 0;\nexport default function makeAsyncScript(getScriptURL, options) {\n options = options || {};\n return function wrapWithAsyncScript(WrappedComponent) {\n var wrappedComponentName = WrappedComponent.displayName || WrappedComponent.name || \"Component\";\n\n var AsyncScriptLoader = /*#__PURE__*/function (_Component) {\n _inheritsLoose(AsyncScriptLoader, _Component);\n\n function AsyncScriptLoader(props, context) {\n var _this;\n\n _this = _Component.call(this, props, context) || this;\n _this.state = {};\n _this.__scriptURL = \"\";\n return _this;\n }\n\n var _proto = AsyncScriptLoader.prototype;\n\n _proto.asyncScriptLoaderGetScriptLoaderID = function asyncScriptLoaderGetScriptLoaderID() {\n if (!this.__scriptLoaderID) {\n this.__scriptLoaderID = \"async-script-loader-\" + idCount++;\n }\n\n return this.__scriptLoaderID;\n };\n\n _proto.setupScriptURL = function setupScriptURL() {\n this.__scriptURL = typeof getScriptURL === \"function\" ? getScriptURL() : getScriptURL;\n return this.__scriptURL;\n };\n\n _proto.asyncScriptLoaderHandleLoad = function asyncScriptLoaderHandleLoad(state) {\n var _this2 = this; // use reacts setState callback to fire props.asyncScriptOnLoad with new state/entry\n\n\n this.setState(state, function () {\n return _this2.props.asyncScriptOnLoad && _this2.props.asyncScriptOnLoad(_this2.state);\n });\n };\n\n _proto.asyncScriptLoaderTriggerOnScriptLoaded = function asyncScriptLoaderTriggerOnScriptLoaded() {\n var mapEntry = SCRIPT_MAP[this.__scriptURL];\n\n if (!mapEntry || !mapEntry.loaded) {\n throw new Error(\"Script is not loaded.\");\n }\n\n for (var obsKey in mapEntry.observers) {\n mapEntry.observers[obsKey](mapEntry);\n }\n\n delete window[options.callbackName];\n };\n\n _proto.componentDidMount = function componentDidMount() {\n var _this3 = this;\n\n var scriptURL = this.setupScriptURL();\n var key = this.asyncScriptLoaderGetScriptLoaderID();\n var _options = options,\n globalName = _options.globalName,\n callbackName = _options.callbackName,\n scriptId = _options.scriptId; // check if global object already attached to window\n\n if (globalName && typeof window[globalName] !== \"undefined\") {\n SCRIPT_MAP[scriptURL] = {\n loaded: true,\n observers: {}\n };\n } // check if script loading already\n\n\n if (SCRIPT_MAP[scriptURL]) {\n var entry = SCRIPT_MAP[scriptURL]; // if loaded or errored then \"finish\"\n\n if (entry && (entry.loaded || entry.errored)) {\n this.asyncScriptLoaderHandleLoad(entry);\n return;\n } // if still loading then callback to observer queue\n\n\n entry.observers[key] = function (entry) {\n return _this3.asyncScriptLoaderHandleLoad(entry);\n };\n\n return;\n }\n /*\n * hasn't started loading\n * start the \"magic\"\n * setup script to load and observers\n */\n\n\n var observers = {};\n\n observers[key] = function (entry) {\n return _this3.asyncScriptLoaderHandleLoad(entry);\n };\n\n SCRIPT_MAP[scriptURL] = {\n loaded: false,\n observers: observers\n };\n var script = document.createElement(\"script\");\n script.src = scriptURL;\n script.async = true;\n\n for (var attribute in options.attributes) {\n script.setAttribute(attribute, options.attributes[attribute]);\n }\n\n if (scriptId) {\n script.id = scriptId;\n }\n\n var callObserverFuncAndRemoveObserver = function callObserverFuncAndRemoveObserver(func) {\n if (SCRIPT_MAP[scriptURL]) {\n var mapEntry = SCRIPT_MAP[scriptURL];\n var observersMap = mapEntry.observers;\n\n for (var obsKey in observersMap) {\n if (func(observersMap[obsKey])) {\n delete observersMap[obsKey];\n }\n }\n }\n };\n\n if (callbackName && typeof window !== \"undefined\") {\n window[callbackName] = function () {\n return _this3.asyncScriptLoaderTriggerOnScriptLoaded();\n };\n }\n\n script.onload = function () {\n var mapEntry = SCRIPT_MAP[scriptURL];\n\n if (mapEntry) {\n mapEntry.loaded = true;\n callObserverFuncAndRemoveObserver(function (observer) {\n if (callbackName) {\n return false;\n }\n\n observer(mapEntry);\n return true;\n });\n }\n };\n\n script.onerror = function () {\n var mapEntry = SCRIPT_MAP[scriptURL];\n\n if (mapEntry) {\n mapEntry.errored = true;\n callObserverFuncAndRemoveObserver(function (observer) {\n observer(mapEntry);\n return true;\n });\n }\n };\n\n document.body.appendChild(script);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n // Remove tag script\n var scriptURL = this.__scriptURL;\n\n if (options.removeOnUnmount === true) {\n var allScripts = document.getElementsByTagName(\"script\");\n\n for (var i = 0; i < allScripts.length; i += 1) {\n if (allScripts[i].src.indexOf(scriptURL) > -1) {\n if (allScripts[i].parentNode) {\n allScripts[i].parentNode.removeChild(allScripts[i]);\n }\n }\n }\n } // Clean the observer entry\n\n\n var mapEntry = SCRIPT_MAP[scriptURL];\n\n if (mapEntry) {\n delete mapEntry.observers[this.asyncScriptLoaderGetScriptLoaderID()];\n\n if (options.removeOnUnmount === true) {\n delete SCRIPT_MAP[scriptURL];\n }\n }\n };\n\n _proto.render = function render() {\n var globalName = options.globalName; // remove asyncScriptOnLoad from childProps\n\n var _this$props = this.props,\n asyncScriptOnLoad = _this$props.asyncScriptOnLoad,\n forwardedRef = _this$props.forwardedRef,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"asyncScriptOnLoad\", \"forwardedRef\"]); // eslint-disable-line no-unused-vars\n\n\n if (globalName && typeof window !== \"undefined\") {\n childProps[globalName] = typeof window[globalName] !== \"undefined\" ? window[globalName] : undefined;\n }\n\n childProps.ref = forwardedRef;\n return createElement(WrappedComponent, childProps);\n };\n\n return AsyncScriptLoader;\n }(Component); // Note the second param \"ref\" provided by React.forwardRef.\n // We can pass it along to AsyncScriptLoader as a regular prop, e.g. \"forwardedRef\"\n // And it can then be attached to the Component.\n\n\n var ForwardedComponent = forwardRef(function (props, ref) {\n return createElement(AsyncScriptLoader, _extends({}, props, {\n forwardedRef: ref\n }));\n });\n ForwardedComponent.displayName = \"AsyncScriptLoader(\" + wrappedComponentName + \")\";\n ForwardedComponent.propTypes = {\n asyncScriptOnLoad: PropTypes.func\n };\n return hoistStatics(ForwardedComponent, WrappedComponent);\n };\n}","import ReCAPTCHA from \"./recaptcha\";\nimport makeAsyncScriptLoader from \"react-async-script\";\nvar callbackName = \"onloadcallback\";\nvar globalName = \"grecaptcha\";\n\nfunction getOptions() {\n return typeof window !== \"undefined\" && window.recaptchaOptions || {};\n}\n\nfunction getURL() {\n var dynamicOptions = getOptions();\n var hostname = dynamicOptions.useRecaptchaNet ? \"recaptcha.net\" : \"www.google.com\";\n return \"https://\" + hostname + \"/recaptcha/api.js?onload=\" + callbackName + \"&render=explicit\";\n}\n\nexport default makeAsyncScriptLoader(getURL, {\n callbackName: callbackName,\n globalName: globalName\n})(ReCAPTCHA);","import RecaptchaWrapper from \"./recaptcha-wrapper\";\nimport ReCAPTCHA from \"./recaptcha\";\nexport default RecaptchaWrapper;\nexport { ReCAPTCHA };","import React, { useEffect, useState, useRef } from 'react';\nimport JSConfetti from 'js-confetti';\nimport ReCAPTCHA from 'react-google-recaptcha';\n\nimport ContentWrapper from '../ContentWrapper';\nimport LoadingIndicator from '../LoadingIndicator';\nimport SectionContainer from '../SectionContainer';\nimport { getUsersIp } from '../../utils/getUsersIp';\n\nconst Steps = {\n INIT: 'init',\n LOADING: 'loading',\n CAPTCHA: 'captcha',\n SUCCESS: 'success',\n ERROR: 'error',\n};\n\n/*\nThe NewsletterForm is a form that creates a new contact to GetResponse.\nTo prevent spam it uses Google Recaptcha V2 (The Robot Checkbox), which is shown after submitting\nthe form. If the checkbox fails it will automatically show the image challenge.\n\nThe actual work is done via an API call to a lambda function (\"crosscomm-website-newsletter-form-submission\")\nwhich will return a 200 if the submission validates the Captcha and successfully adds the user to the\nnewsletter via the GetResponse API (A 200 will be returned even if GetResponse throws an error that the user\nhas already subscribed).\n*/\nexport default function NewsletterForm() {\n const [email, setEmail] = useState('');\n const [step, setStep] = useState(Steps.INIT);\n const [jsConfetti, setJSConfetti] = useState(null);\n\n const captchaRef = useRef(null);\n const formRef = useRef(null);\n\n useEffect(() => {\n switch (step) {\n case Steps.LOADING:\n if (!jsConfetti) {\n setJSConfetti(new JSConfetti());\n }\n break;\n\n case Steps.SUCCESS:\n if (jsConfetti) {\n jsConfetti.addConfetti();\n }\n break;\n\n default:\n break;\n }\n }, [step, jsConfetti]);\n\n const onSubmit = (event) => {\n event.preventDefault();\n setStep(Steps.CAPTCHA);\n };\n\n const onSubmitCaptcha = async () => {\n const formEl = formRef.current;\n const formData = new FormData(formEl);\n const captchaResponse = captchaRef.current.getValue();\n\n setStep(Steps.LOADING);\n\n const response = await fetch(process.env.GATSBY_NEWSLETTER_SUBMISSION_URL, {\n method: 'POST',\n body: JSON.stringify({\n captchaResponse,\n email: formData.get('email'),\n ipAddress: getUsersIp(),\n }),\n headers: { 'Content-Type': 'application/json' },\n });\n\n if (response.status !== 200) {\n setStep(Steps.ERROR);\n return;\n }\n\n setStep(Steps.SUCCESS);\n };\n\n return (\n \n \n {step === Steps.SUCCESS ? (\n
\n

Thanks for signing up!

\n

\n Check your inbox ({email}) for our welcome email (along with our\n monthly newsletters!)\n

\n
\n ) : null}\n {step === Steps.ERROR ? (\n
\n

Error

\n

\n Something went wrong with your submission - please try again\n later.\n

\n
\n ) : null}\n {step === Steps.INIT ||\n step === Steps.LOADING ||\n step === Steps.CAPTCHA ? (\n
\n

Sign up for the newsletter

\n

\n If you want relevant updates occasionally, sign up for the private\n newsletter. Your email is never shared.\n

\n \n
\n setEmail(event.target.value)}\n required\n />\n \n
\n
\n \n
\n \n
\n ) : null}\n\n \n
\n \n );\n}\n","import React from 'react';\nimport PostCard from '../Card/PostCard';\nimport SectionContainer from '../SectionContainer';\n\nexport default function ReadNext({ data }) {\n return (\n \n
\n

What to read next

\n
\n {data.map((post) => (\n \n ))}\n
\n
\n
\n );\n}\n","import React, { useEffect } from 'react';\nimport { graphql } from 'gatsby';\n\nimport Seo from '../components/Seo';\nimport Post from '../components/BlogPost/Post';\nimport NewsletterForm from '../components/BlogPost/NewsletterForm';\nimport ReadNext from '../components/BlogPost/ReadNext';\nimport HeroPortfolioBlogPost from '../components/Hero/HeroPortfolioBlogPost';\nimport LayoutTemplate from './LayoutTemplate';\n\nexport default function BlogTemplate({ data, location }) {\n if (!data.blog) {\n return null;\n }\n\n const readNextCombined = data.readNext.nodes\n .concat(data.readNextAdditional.nodes)\n .slice(0, 2);\n\n useEffect(() => {\n window.scrollTo(0, 0);\n }, [data]);\n\n return (\n \n \n \n \n \n {readNextCombined.length ? : null}\n \n );\n}\n\nexport const query = graphql`\n query getBlog($slug: String!, $category: [String]!) {\n blog: contentfulBlogEntry(slug: { eq: $slug }) {\n id\n blogTitle\n slug\n heroImage {\n title\n description\n gatsbyImageData(layout: FULL_WIDTH, placeholder: BLURRED, quality: 100)\n file {\n url\n }\n }\n seoTitle\n seoKeywords\n category\n publishedDate(formatString: \"MMM Do YYYY\")\n cardSummaryText {\n cardSummaryText\n }\n cardImage {\n file {\n url\n }\n }\n content {\n raw\n references {\n ... on ContentfulAsset {\n contentful_id\n __typename\n title\n description\n gatsbyImageData(layout: FULL_WIDTH, placeholder: BLURRED)\n }\n ... on ContentfulResourceLink {\n contentful_id\n __typename\n id\n sys {\n contentType {\n sys {\n id\n }\n }\n }\n title\n downloadDescription: description\n button {\n id\n name\n buttonStyle\n text\n url\n }\n }\n ... on ContentfulEmbeddedSnippet {\n contentful_id\n __typename\n internalName\n embeddedCodeSnippet {\n embeddedCodeSnippet\n }\n }\n ... on ContentfulCodeBlock {\n contentful_id\n __typename\n title\n codeBlock {\n codeBlock\n }\n }\n ... on ContentfulQuoteSection {\n contentful_id\n __typename\n id\n sys {\n contentType {\n sys {\n id\n }\n }\n }\n backgroundColor\n quotes {\n id\n quote {\n quote\n }\n source\n link\n linkText\n }\n }\n }\n }\n authorDetails {\n name\n title\n description {\n description\n }\n image {\n gatsbyImageData(\n layout: CONSTRAINED\n placeholder: BLURRED\n cornerRadius: -1\n height: 70\n width: 70\n quality: 100\n )\n }\n }\n }\n readNext: allContentfulBlogEntry(\n filter: { category: { in: $category }, slug: { ne: $slug } }\n sort: { order: DESC, fields: publishedDate }\n limit: 2\n ) {\n nodes {\n sys {\n contentType {\n sys {\n id\n }\n }\n }\n id\n category\n title: blogTitle\n publishedDate(formatString: \"MMM Do YYYY\")\n slug\n cardSummaryText {\n cardSummaryText\n }\n heroImage {\n title\n description\n gatsbyImageData(layout: FULL_WIDTH, placeholder: BLURRED)\n }\n cardImage {\n title\n description\n gatsbyImageData(layout: FULL_WIDTH, placeholder: BLURRED)\n }\n }\n }\n readNextAdditional: allContentfulBlogEntry(\n filter: { category: { nin: $category }, slug: { ne: $slug } }\n sort: { order: DESC, fields: publishedDate }\n limit: 2\n ) {\n nodes {\n sys {\n contentType {\n sys {\n id\n }\n }\n }\n id\n category\n title: blogTitle\n publishedDate(formatString: \"MMM Do YYYY\")\n slug\n cardSummaryText {\n cardSummaryText\n }\n heroImage {\n title\n description\n gatsbyImageData(layout: FULL_WIDTH, placeholder: BLURRED)\n }\n cardImage {\n title\n description\n gatsbyImageData(layout: FULL_WIDTH, placeholder: BLURRED)\n }\n }\n }\n }\n`;\n","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}"],"names":["reactIs","REACT_STATICS","childContextTypes","contextType","contextTypes","defaultProps","displayName","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","propTypes","type","KNOWN_STATICS","name","length","prototype","caller","callee","arguments","arity","MEMO_STATICS","compare","TYPE_STATICS","getStatics","component","isMemo","ForwardRef","render","Memo","defineProperty","Object","getOwnPropertyNames","getOwnPropertySymbols","getOwnPropertyDescriptor","getPrototypeOf","objectPrototype","module","exports","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","keys","concat","targetStatics","sourceStatics","i","key","descriptor","e","b","Symbol","for","c","d","f","g","h","k","l","m","n","p","q","r","t","v","w","x","y","z","a","u","$$typeof","A","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Element","Fragment","Lazy","Portal","Profiler","StrictMode","Suspense","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","HeroPortfolioBlogPost","image","title","subtitle","className","G","style","gridArea","maxHeight","minHeight","alt","description","gatsbyImageData","RTEContentWrapper","children","renderWithTag","tagName","isVoidNode","includeWrapper","node","React","RichTextPost","content","isBlog","options","defaultOptions","renderNode","BLOCKS","data","target","assetDescription","__typename","QuoteSection","MediaSection","LinkedImageSection","DownloadFile","BigBulletList","items","listItems","bulletColor","useTwoColumns","renderRichText","_extendStatics","__extends","setPrototypeOf","__proto__","Array","hasOwnProperty","call","__","this","constructor","create","AssertionError","_super","message","_this","Error","assert","value","objectToGetParams","object","params","entries","filter","_a","map","encodeURIComponent","String","join","__assign","assign","s","apply","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","step","next","rejected","result","done","then","__generator","body","_","label","sent","trys","ops","verb","iterator","op","TypeError","pop","push","__rest","indexOf","propertyIsEnumerable","isPromise","obj","getBoxPositionOnWindowCenter","width","height","left","window","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","props","onShareWindowClose","_b","windowHeight","_c","windowPosition","_d","windowWidth","handleClick","event","beforeOnClick","disabled","networkLink","onClick","openShareDialogOnClick","opts","returnVal","preventDefault","disabledStyle","forwardedRef","networkName","resetButtonStyle","rest","newClassName","newStyle","backgroundColor","border","padding","font","color","cursor","ref","opacity","Component","optsMap","CreatedButton","passedProps","forEach","forwardRef","summary","source","mini","via","hashtags","related","isArray","text","undefined","quote","hashtag","Post","useState","toggleFullBio","setToggleFullBio","SectionContainer","ContentWrapper","blogTitle","authorDetails","publishedDate","href","Icon","icon","size","replace","_classCallCheck","instance","Constructor","_defineProperties","enumerable","configurable","writable","_createClass","protoProps","staticProps","normalizeComputedStyleValue","string","generateRandomNumber","min","max","fractionDigits","randomNumber","Math","random","floor","pow","generateRandomArrayElement","arr","DEFAULT_CONFETTI_COLORS","getWindowWidthCoefficient","canvasWidth","log","ConfettiShape","args","initialPosition","direction","confettiRadius","confettiColors","emojis","emojiSize","initialSpeed","confettiSpeed","finalConfettiSpeedX","rotationSpeed","dragForceCoefficient","radius","initialRadius","rotationAngle","emojiRotationAngle","PI","radiusYUpdateDirection","angle","absCos","abs","cos","absSin","sin","positionShift","shiftedInitialPosition","currentPosition","emoji","createdAt","Date","getTime","canvasContext","dpr","devicePixelRatio","fillStyle","beginPath","ellipse","fill","save","translate","rotate","textAlign","fillText","restore","iterationTimeDelta","currentTime","timeDeltaSinceCreation","canvasHeight","createCanvas","canvas","document","createElement","position","zIndex","pointerEvents","appendChild","normalizeConfettiConfig","confettiConfig","_confettiConfig$confe","_confettiConfig$confe2","confettiNumber","confettiesNumber","_confettiConfig$confe3","_confettiConfig$emoji","emojies","_confettiConfig$emoji2","ConfettiBatch","shapes","promise","completionCallback","resolvePromise","_this$shapes","time","cleanupInvisibleShapes","_this2","timeDelta","shape","updatePosition","draw","getIsVisibleOnCanvas","JSConfetti","jsConfettiConfig","activeConfettiBatches","getContext","requestAnimationFrameRequested","lastUpdated","iterationIndex","loop","bind","requestAnimationFrame","computedStyles","getComputedStyle","getPropertyValue","setAttribute","toString","offsetHeight","batch","processShapes","complete","queueAnimationFrameIfNeeded","_normalizeConfettiCon","canvasRect","getBoundingClientRect","yPosition","leftConfettiPosition","rightConfettiPosition","confettiGroup","confettiOnTheRight","confettiOnTheLeft","addShapes","getBatchCompletePromise","_extends","_assertThisInitialized","self","ReferenceError","ReCAPTCHA","_React$Component","subClass","superClass","handleExpired","handleErrored","handleChange","handleRecaptchaRef","_proto","getValue","grecaptcha","_widgetId","getResponse","getWidgetId","execute","_executeRequested","executeAsync","executionResolve","executionReject","reset","onExpired","onErrored","token","onChange","explicitRender","wrapper","sitekey","callback","theme","tabindex","stoken","hl","badge","captcha","componentDidMount","componentDidUpdate","componentWillUnmount","delayOfCaptchaIframeRemoving","temporaryNode","display","firstChild","setTimeout","removeChild","elem","_this$props","childProps","excluded","sourceKeys","_objectWithoutPropertiesLoose","SCRIPT_MAP","idCount","callbackName","getScriptURL","recaptchaOptions","useRecaptchaNet","globalName","WrappedComponent","wrappedComponentName","AsyncScriptLoader","_Component","context","state","__scriptURL","asyncScriptLoaderGetScriptLoaderID","__scriptLoaderID","setupScriptURL","asyncScriptLoaderHandleLoad","setState","asyncScriptOnLoad","asyncScriptLoaderTriggerOnScriptLoaded","mapEntry","loaded","obsKey","observers","_this3","scriptURL","_options","scriptId","entry","errored","script","attribute","src","async","attributes","id","callObserverFuncAndRemoveObserver","func","observersMap","onload","observer","onerror","removeOnUnmount","allScripts","getElementsByTagName","parentNode","ForwardedComponent","Steps","NewsletterForm","email","setEmail","setStep","jsConfetti","setJSConfetti","captchaRef","useRef","formRef","useEffect","addConfetti","onSubmitCaptcha","formEl","current","formData","FormData","captchaResponse","fetch","process","method","JSON","stringify","get","ipAddress","getUsersIp","headers","onSubmit","acceptCharset","placeholder","required","LoadingIndicator","ReadNext","post","PostCard","BlogTemplate","blog","readNextCombined","readNext","nodes","readNextAdditional","slice","scrollTo","LayoutTemplate","showNav","Seo","seoTitle","cardSummaryText","keywords","seoKeywords","pathname","cardImage","file","heroImage","isBlogPost","asyncGeneratorStep","gen","_next","_throw","arg","info","_asyncToGenerator","fn","err"],"sourceRoot":""}