-
Notifications
You must be signed in to change notification settings - Fork 0
/
component---src-templates-post-js-d96018858431de674b31.js.map
1 lines (1 loc) · 26.4 KB
/
component---src-templates-post-js-d96018858431de674b31.js.map
1
{"version":3,"sources":["webpack:///./node_modules/gatsby-plugin-disqus/utils.js","webpack:///./src/templates/post.js","webpack:///./node_modules/gatsby-plugin-disqus/index.js","webpack:///./node_modules/gatsby-plugin-disqus/components/Disqus.js","webpack:///./node_modules/gatsby-plugin-disqus/components/CommentCount.js"],"names":["_interopRequireDefault","require","exports","__esModule","insertScript","src","id","parent","script","window","document","createElement","async","appendChild","removeScript","getElementById","removeChild","debounce","func","wait","runOnFirstCall","timeout","context","this","args","arguments","deferredExecution","apply","callNow","clearTimeout","setTimeout","isReactElement","shallowComparison","currentProps","nextProps","_iterator","Set","Object","keys","_isArray","Array","isArray","_i","Symbol","iterator","_ref","length","next","done","value","name","_react","element","default","isValidElement","some","AuthorAndDate","styled","p","TitleContainer","div","Title","h1","copiedAnimation","keyframes","CopiedMessage","copyAnimMs","BannerContainer","CreditBadge","CategoryList","list","isSmall","style","fontSize","map","category","i","lowerCaseCat","toLowerCase","key","display","marginRight","marginBottom","className","to","Post","data","site","mdx","pageContext","prev","pathname","location","siteUrl","siteMetadata","useState","copyAnim","setCopyAnim","timerRef","useRef","disqusConfig","identifier","fields","title","frontmatter","useWhitePageWrapper","role","aria-label","href","onClick","current","textArea","slug","replace","position","body","focus","select","execCommand","err","console","error","static","date","banner","sizes","childImageSharp","alt","keywords","join","photographer","photographerUrl","categories","config","pageQuery","_Disqus","Disqus","_CommentCount","CommentCount","_default","_extends2","_objectWithoutPropertiesLoose2","_inheritsLoose2","_propTypes","_utils","_React$Component","props","_this","call","shortname","GATSBY_DISQUS_SHORTNAME","url","_proto","prototype","componentDidMount","cleanInstance","loadInstance","shouldComponentUpdate","componentDidUpdate","disqus_config","page","DISQUS","reset","undefined","thread","hasChildNodes","firstChild","render","_this$props","__source","fileName","lineNumber","__self","Component","propTypes","shape","string","queueResetCount","DISQUSWIDGETS","getCount","placeholder","defaultProps"],"mappings":"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","file":"component---src-templates-post-js-d96018858431de674b31.js","sourcesContent":["\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.insertScript = insertScript;\nexports.removeScript = removeScript;\nexports.debounce = debounce;\nexports.isReactElement = isReactElement;\nexports.shallowComparison = shallowComparison;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction insertScript(src, id, parent) {\n var script = window.document.createElement('script');\n script.async = true;\n script.src = src;\n script.id = id;\n parent.appendChild(script);\n return script;\n}\n\nfunction removeScript(id, parent) {\n var script = window.document.getElementById(id);\n\n if (script) {\n parent.removeChild(script);\n }\n}\n\nfunction debounce(func, wait, runOnFirstCall) {\n var timeout;\n return function () {\n var context = this;\n var args = arguments;\n\n var deferredExecution = function deferredExecution() {\n timeout = null;\n\n if (!runOnFirstCall) {\n func.apply(context, args);\n }\n };\n\n var callNow = runOnFirstCall && !timeout;\n window.clearTimeout(timeout);\n timeout = setTimeout(deferredExecution, wait);\n\n if (callNow) {\n func.apply(context, args);\n }\n };\n}\n\nfunction isReactElement(element) {\n if (_react.default.isValidElement(element)) {\n return true;\n } else if (Array.isArray(element)) {\n return element.some(function (value) {\n return _react.default.isValidElement(value);\n });\n }\n\n return false;\n}\n\nfunction shallowComparison(currentProps, nextProps) {\n // Perform a comparison of all props, excluding React Elements, to prevent unnecessary updates\n var propNames = new Set(Object.keys(currentProps), Object.keys(nextProps));\n\n for (var _iterator = propNames, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {\n var _ref;\n\n if (_isArray) {\n if (_i >= _iterator.length) break;\n _ref = _iterator[_i++];\n } else {\n _i = _iterator.next();\n if (_i.done) break;\n _ref = _i.value;\n }\n\n var name = _ref;\n if (currentProps[name] !== nextProps[name] && !isReactElement(currentProps[name])) return true;\n }\n\n return false;\n}","import React, { useState, useRef } from 'react';\nimport { graphql } from 'gatsby';\nimport styled, { keyframes } from 'styled-components';\nimport Img from 'gatsby-image';\nimport { MDXRenderer } from 'gatsby-plugin-mdx';\nimport { Disqus } from 'gatsby-plugin-disqus';\n\nimport Layout from '../components/Layout';\nimport Link from '../components/Layout/mdx/Link';\n\nconst AuthorAndDate = styled.p`\n text-align: right;\n align-self: flex-end;\n margin: 0;\n flex-shrink: 0;\n`;\n\nconst TitleContainer = styled.div`\n display: flex;\n position: relative;\n\n flex-flow: row wrap;\n justify-content: space-between;\n border-bottom: 1px solid rgba(0, 0, 0, 0.15);\n padding-bottom: 22px;\n margin-bottom: 1.5rem;\n`;\n\nconst Title = styled.h1`\n border-bottom: 0;\n padding: 0;\n margin: 0;\n margin-right: 25px;\n min-width: 250px;\n\n &:hover {\n cursor: pointer;\n }\n`;\n\nconst copiedAnimation = keyframes`\n 0% {\n opacity: 0;\n }\n 25% {\n opacity: 1;\n }\n 75% {\n opacity: 1;\n }\n 100% {\n opacity: 0;\n }\n`;\n\nconst CopiedMessage = styled.div`\n display: block;\n position: absolute;\n background: rgba(0, 0, 0, 0.7);\n border-radius: 6px;\n padding: 5px 25px;\n font-size: 16px;\n color: white;\n font-weight: 700;\n transform: translate(-50%, -50%);\n top: 50%;\n left: 50%;\n animation: ${copiedAnimation}\n ${({ copyAnimMs }) => `${copyAnimMs}ms`} ease-in;\n`;\n\nconst BannerContainer = styled.div`\n position: relative;\n`;\n\nconst CreditBadge = styled.div`\n position: absolute;\n bottom: 0;\n right: 0;\n display: block;\n margin: 0 15px 15px 0;\n background: rgba(0, 0, 0, 0.3);\n padding: 5px 10px;\n font-size: 12px;\n color: white;\n border: 1px solid rgba(50, 0, 0, 0.5);\n border-radius: 6px;\n transition: transform 75ms ease-in-out;\n\n &:hover {\n cursor: pointer;\n transform: scale(1.04);\n }\n`;\n\nexport const CategoryList = ({ list, isSmall }) =>\n list && list.length ? (\n <div style={{ ...(isSmall ? { fontSize: '14px' } : {}) }}>\n Tags:{' '}\n {list.map((category, i) => {\n const lowerCaseCat = category.toLowerCase();\n return (\n <div\n key={lowerCaseCat}\n style={{\n display: 'inline-block',\n marginRight: '5px',\n marginBottom: '15px',\n }}\n >\n <Link\n className=\"category-link\"\n to={`categories/${lowerCaseCat}`}\n >\n {category}\n </Link>\n {i < list.length - 1 ? ', ' : ''}\n </div>\n );\n })}\n </div>\n ) : null;\n\nexport default function Post({\n data: { site, mdx },\n pageContext: { next, prev },\n location: { pathname },\n}) {\n const { siteUrl } = site.siteMetadata;\n const [copyAnim, setCopyAnim] = useState(false);\n const copyAnimMs = 1300;\n const timerRef = useRef(null);\n const startCopyAnim = () => {\n if (timerRef.current) {\n setCopyAnim(false);\n clearTimeout(timerRef.current);\n }\n\n setCopyAnim(true);\n timerRef.current = setTimeout(\n () => setCopyAnim(false),\n copyAnimMs,\n );\n };\n\n const copyToClipboard = () => {\n startCopyAnim();\n const textArea = document.createElement('textarea');\n textArea.value = `${siteUrl}/${mdx.frontmatter.slug}`.replace(\n '//',\n '/',\n );\n textArea.style.position = 'fixed';\n document.body.appendChild(textArea);\n textArea.focus();\n textArea.select();\n\n try {\n document.execCommand('copy');\n } catch (err) {\n console.error('Fallback: Oops, unable to copy', err);\n }\n\n document.body.removeChild(textArea);\n };\n\n const disqusConfig = {\n identifier: mdx.fields.id,\n title: mdx.frontmatter.title,\n };\n return (\n <Layout\n pathname={pathname}\n site={site}\n frontmatter={mdx.frontmatter}\n useWhitePageWrapper\n >\n <TitleContainer>\n {copyAnim ? (\n <CopiedMessage copyAnimMs={copyAnimMs}>\n Copied Post URL to Clipboard!\n </CopiedMessage>\n ) : null}\n <Title>\n <a\n role=\"button\"\n aria-label=\"Copy Post URI to Clipboard\"\n href=\"#\"\n onClick={copyToClipboard}\n >\n {mdx.frontmatter.title}\n </a>\n </Title>\n <AuthorAndDate>\n {!mdx.fields.static ? (\n <em>{mdx.frontmatter.date}</em>\n ) : null}\n </AuthorAndDate>\n </TitleContainer>\n\n {mdx.frontmatter.banner && (\n <BannerContainer>\n <Img\n sizes={mdx.frontmatter.banner.childImageSharp.sizes}\n alt={site.siteMetadata.keywords.join(', ')}\n />\n {mdx.frontmatter.photographer && (\n <Link to={mdx.frontmatter.photographerUrl}>\n <CreditBadge>\n Photo by {mdx.frontmatter.photographer}\n </CreditBadge>\n </Link>\n )}\n </BannerContainer>\n )}\n\n <MDXRenderer>{mdx.body}</MDXRenderer>\n\n <div>\n <CategoryList list={mdx.fields.categories} />\n <hr />\n {!mdx.fields.static ? (\n <>\n <Disqus config={disqusConfig} />\n <hr />\n {prev && (\n <span>\n Previous:{' '}\n <Link to={`/${prev.fields.slug}`}>\n {prev.fields.title}\n </Link>\n </span>\n )}\n {next && prev && ' | '}\n {next && (\n <span>\n Next:{' '}\n <Link to={`/${next.fields.slug}`}>\n {next.fields.title}\n </Link>\n </span>\n )}\n </>\n ) : null}\n </div>\n </Layout>\n );\n}\n\nexport const pageQuery = graphql`\n query($id: String!) {\n site {\n ...site\n siteMetadata {\n siteUrl\n }\n }\n mdx(fields: { id: { eq: $id } }) {\n frontmatter {\n title\n author\n photographer\n photographerUrl\n date(formatString: \"MMMM DD, YYYY\")\n banner {\n childImageSharp {\n sizes(maxWidth: 720) {\n ...GatsbyImageSharpSizes\n }\n }\n }\n slug\n }\n fields {\n id\n static\n categories\n keywords\n }\n body\n }\n }\n`;\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _Disqus = _interopRequireDefault(require(\"./components/Disqus\"));\n\nexports.Disqus = _Disqus.default;\n\nvar _CommentCount = _interopRequireDefault(require(\"./components/CommentCount\"));\n\nexports.CommentCount = _CommentCount.default;\nvar _default = _Disqus.default;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutPropertiesLoose\"));\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _utils = require(\"../utils\");\n\nvar _jsxFileName = \"/Users/brettstevenson/Desktop/Folder/gatsby-plugin-workspace/gatsby-plugin-disqus/src/components/Disqus.jsx\";\n\nvar Disqus =\n/*#__PURE__*/\nfunction (_React$Component) {\n (0, _inheritsLoose2.default)(Disqus, _React$Component);\n\n function Disqus(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this;\n _this.shortname = typeof GATSBY_DISQUS_SHORTNAME !== \"undefined\" && GATSBY_DISQUS_SHORTNAME !== '' ? GATSBY_DISQUS_SHORTNAME : '';\n\n if (props.config) {\n _this.config = props.config;\n } else {\n _this.config = {\n identifier: props.identifier,\n url: props.url,\n title: props.title\n };\n }\n\n return _this;\n }\n\n var _proto = Disqus.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n if (typeof window !== 'undefined' && window.document && this.shortname) {\n this.cleanInstance();\n }\n\n this.loadInstance();\n };\n\n _proto.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {\n if (this.props === nextProps) return false;\n return (0, _utils.shallowComparison)(this.props, nextProps);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n this.loadInstance();\n };\n\n _proto.loadInstance = function loadInstance() {\n if (typeof window !== 'undefined' && window.document && this.shortname) {\n var component = this;\n var config = this.config;\n\n window.disqus_config = function () {\n this.page.identifier = config.identifier;\n this.page.title = config.title;\n this.page.url = config.url;\n };\n\n (0, _utils.insertScript)(\"https://\" + this.shortname + \".disqus.com/embed.js\", 'disqus-embed-script', window.document.body);\n }\n };\n\n _proto.cleanInstance = function cleanInstance() {\n (0, _utils.removeScript)('disqus-embed-script', window.document.body);\n\n if (window && window.DISQUS) {\n window.DISQUS.reset();\n }\n\n try {\n delete window.DISQUS;\n } catch (error) {\n window.DISQUS = undefined;\n }\n\n var thread = window.document.getElementById('disqus_thread');\n\n if (thread) {\n while (thread.hasChildNodes()) {\n thread.removeChild(thread.firstChild);\n }\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n config = _this$props.config,\n props = (0, _objectWithoutPropertiesLoose2.default)(_this$props, [\"config\"]);\n return _react.default.createElement(\"div\", (0, _extends2.default)({\n id: \"disqus_thread\"\n }, props, {\n __source: {\n fileName: _jsxFileName,\n lineNumber: 73\n },\n __self: this\n }));\n };\n\n return Disqus;\n}(_react.default.Component);\n\nexports.default = Disqus;\nDisqus.propTypes = {\n config: _propTypes.default.shape({\n /*\n * Tells the Disqus service how to identify the current page. \n * When the Disqus embed is loaded, the identifier is used to look up \n * the correct thread. \n */\n identifier: _propTypes.default.string,\n\n /*\n * Tells the Disqus service the title of the current page.\n * This is used when creating the thread on Disqus.\n */\n title: _propTypes.default.string,\n\n /*\n * Tells the Disqus service the URL of the current page.\n * This URL is used when a thread is created so that Disqus knows which\n * page a thread belongs to.\n * (If undefined, Disqus will use the global.location.href)\n */\n url: _propTypes.default.string\n }),\n identifier: _propTypes.default.string,\n title: _propTypes.default.string,\n url: _propTypes.default.string\n};","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutPropertiesLoose\"));\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _utils = require(\"../utils\");\n\nvar _jsxFileName = \"/Users/brettstevenson/Desktop/Folder/gatsby-plugin-workspace/gatsby-plugin-disqus/src/components/CommentCount.jsx\";\nvar queueResetCount = (0, _utils.debounce)(function () {\n if (window.DISQUSWIDGETS) {\n window.DISQUSWIDGETS.getCount({\n reset: true\n });\n }\n}, 300, false);\n\nvar CommentCount =\n/*#__PURE__*/\nfunction (_React$Component) {\n (0, _inheritsLoose2.default)(CommentCount, _React$Component);\n\n function CommentCount(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this;\n _this.shortname = typeof GATSBY_DISQUS_SHORTNAME !== \"undefined\" && GATSBY_DISQUS_SHORTNAME !== '' ? GATSBY_DISQUS_SHORTNAME : '';\n return _this;\n }\n\n var _proto = CommentCount.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.loadInstance();\n };\n\n _proto.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {\n if (this.props === nextProps) return false;\n return (0, _utils.shallowComparison)(this.props, nextProps);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n this.loadInstance();\n };\n\n _proto.loadInstance = function loadInstance() {\n if (window.document.getElementById('dsq-count-scr')) {\n queueResetCount();\n } else {\n (0, _utils.insertScript)(\"https://\" + this.shortname + \".disqus.com/count.js\", 'dsq-count-scr', window.document.body);\n }\n };\n\n _proto.cleanInstance = function cleanInstance() {\n (0, _utils.removeScript)('dsq-count-scr', window.document.body);\n window.DISQUSWIDGETS = undefined;\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n config = _this$props.config,\n placeholder = _this$props.placeholder,\n props = (0, _objectWithoutPropertiesLoose2.default)(_this$props, [\"config\", \"placeholder\"]);\n return _react.default.createElement(\"span\", (0, _extends2.default)({\n className: \"disqus-comment-count\",\n \"data-disqus-identifier\": config.identifier,\n \"data-disqus-url\": config.url\n }, props, {\n __source: {\n fileName: _jsxFileName,\n lineNumber: 49\n },\n __self: this\n }), placeholder);\n };\n\n return CommentCount;\n}(_react.default.Component);\n\nexports.default = CommentCount;\nCommentCount.defaultProps = {\n placeholder: '...'\n};\nCommentCount.propTypes = {\n config: _propTypes.default.shape({\n /*\n * Tells the Disqus service how to identify the current page. \n * When the Disqus embed is loaded, the identifier is used to look up \n * the correct thread. \n */\n identifier: _propTypes.default.string,\n\n /*\n * Tells the Disqus service the title of the current page.\n * This is used when creating the thread on Disqus.\n */\n title: _propTypes.default.string,\n\n /*\n * Tells the Disqus service the URL of the current page.\n * This URL is used when a thread is created so that Disqus knows which\n * page a thread belongs to.\n * (If undefined, Disqus will use the global.location.href)\n */\n url: _propTypes.default.string\n }),\n\n /*\n * This is the text that will be used as a placeholder prior to \n * loading the response.\n */\n placeholder: _propTypes.default.string\n};"],"sourceRoot":""}