-
Notifications
You must be signed in to change notification settings - Fork 0
/
component---src-templates-blog-post-js-cb28e3e400a2ad9977f2.js.map
1 lines (1 loc) · 28.9 KB
/
component---src-templates-blog-post-js-cb28e3e400a2ad9977f2.js.map
1
{"version":3,"sources":["webpack:///./node_modules/react-disqus-comments/build/main.js","webpack:///./node_modules/react-disqus-comments/build/components/DisqusThread.js","webpack:///./src/components/elements/hr/index.jsx","webpack:///./src/components/post-title/index.jsx","webpack:///./src/components/post-date/index.jsx","webpack:///./src/components/post-container/index.jsx","webpack:///./src/components/social-share/facebook-icon/index.jsx","webpack:///./src/components/social-share/twitter-icon/index.jsx","webpack:///./src/components/social-share/index.jsx","webpack:///./src/utils/share.js","webpack:///./src/components/sponsor-button/index.jsx","webpack:///./src/components/post-navigator/index.jsx","webpack:///./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack:///./src/components/disqus/index.jsx","webpack:///./src/components/utterances/index.jsx","webpack:///./src/templates/blog-post.js"],"names":["module","exports","Object","defineProperty","value","_extends","assign","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","_createClass","defineProperties","props","descriptor","enumerable","configurable","writable","Constructor","protoProps","staticProps","_react2","_interopRequireDefault","_propTypes2","obj","__esModule","default","_classCallCheck","instance","TypeError","_possibleConstructorReturn","self","ReferenceError","DISQUS_CONFIG","__disqusAdded","copyProps","context","onNewComment","language","rest","keys","indexOf","_objectWithoutProperties","prop","page","callbacks","DisqusThread","_React$Component","this","__proto__","getPrototypeOf","apply","subClass","superClass","create","constructor","setPrototypeOf","_inherits","loadDisqus","nextProps","nextState","identifier","_this2","reduce","memo","some","config","_defineProperty","createElement","id","child","disqus","document","parent","getElementsByTagName","async","type","src","shortname","appendChild","_this3","forEach","DISQUS","reset","reload","url","replace","window","disqus_config","addDisqusScript","Component","displayName","propTypes","string","isRequired","title","category_id","func","defaultProps","location","href","Hr","React","className","PostTitle","_ref","PostDate","date","PostContainer","html","dangerouslySetInnerHTML","__html","FacebookIcon","onClick","rel","aria-label","aria-hidden","xmlns","viewBox","d","TwitterIcon","SocialShare","text","author","e","preventDefault","FB","ui","method","mobile_iframe","quote","shareToFacebook","open","encodeURI","shareToTwitter","SponsorButton","sponsorId","alt","PostNavigator","pageContext","previous","next","Link","to","fields","slug","frontmatter","_assertThisInitialized","Disqus","_Component","_this","state","toasts","notifyAboutComment","bind","onSnackbarDismiss","_inheritsLoose","_proto","slice","setState","push","render","_this$props","post","shortName","siteUrl","ReactDisqusComments","Utterances","repo","rootElm","createRef","useEffect","isDarkTheme","Dom","THEME","DARK","utterances","utterancesConfig","branch","theme","label","crossorigin","configKey","setAttribute","current","ref","data","ScrollManager","markdownRemark","metaData","site","siteMetadata","comment","sponsor","disqusShortName","_post$frontmatter","postTitle","Layout","Head","description","excerpt","buyMeACoffeeId","Elements","Bio"],"mappings":"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","file":"component---src-templates-blog-post-js-cb28e3e400a2ad9977f2.js","sourcesContent":["'use strict';\n\nmodule.exports = require('./components/DisqusThread');","'use strict';\n\nrequire(\"core-js/modules/es.array.reduce.js\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n};\nvar _createClass = function () {\n function 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 return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nvar _react = require('react');\nvar _react2 = _interopRequireDefault(_react);\nvar _propTypes = require('prop-types');\nvar _propTypes2 = _interopRequireDefault(_propTypes);\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\nfunction _objectWithoutProperties(obj, keys) {\n var target = {};\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n return target;\n}\nvar DISQUS_CONFIG = ['shortname', 'identifier', 'title', 'url', 'category_id', 'onNewComment', 'language'];\nvar __disqusAdded = false;\nfunction copyProps(context, props) {\n var onNewComment = props.onNewComment,\n language = props.language,\n rest = _objectWithoutProperties(props, ['onNewComment', 'language']);\n for (var prop in rest) {\n context.page[prop] = rest[prop];\n }\n\n // Setting the language - if none is provided, the default one is used\n context.language = language;\n if (onNewComment) {\n context.callbacks = {\n onNewComment: [onNewComment]\n };\n }\n}\nvar DisqusThread = function (_React$Component) {\n _inherits(DisqusThread, _React$Component);\n function DisqusThread() {\n _classCallCheck(this, DisqusThread);\n return _possibleConstructorReturn(this, (DisqusThread.__proto__ || Object.getPrototypeOf(DisqusThread)).apply(this, arguments));\n }\n _createClass(DisqusThread, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n this.loadDisqus();\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate() {\n this.loadDisqus();\n }\n }, {\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate(nextProps, nextState) {\n return nextProps.identifier !== this.props.identifier;\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n var props = Object.keys(this.props).reduce(function (memo, key) {\n return DISQUS_CONFIG.some(function (config) {\n return config === key;\n }) ? memo : _extends({}, memo, _defineProperty({}, key, _this2.props[key]));\n }, {});\n return _react2.default.createElement('div', props, _react2.default.createElement('div', {\n id: 'disqus_thread'\n }));\n }\n }, {\n key: 'addDisqusScript',\n value: function addDisqusScript() {\n if (__disqusAdded) {\n return;\n }\n var child = this.disqus = document.createElement('script');\n var parent = document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0];\n child.async = true;\n child.type = 'text/javascript';\n child.src = '//' + this.props.shortname + '.disqus.com/embed.js';\n parent.appendChild(child);\n __disqusAdded = true;\n }\n }, {\n key: 'loadDisqus',\n value: function loadDisqus() {\n var _this3 = this;\n var props = {};\n\n // Extract Disqus props that were supplied to this component\n DISQUS_CONFIG.forEach(function (prop) {\n // prop \"shortname\" is only necessary for loading the script, not for the config itself\n if (prop !== 'shortname' && !!_this3.props[prop]) {\n props[prop] = _this3.props[prop];\n }\n });\n\n // If Disqus has already been added, reset it\n if (typeof DISQUS !== 'undefined') {\n DISQUS.reset({\n reload: true,\n config: function config() {\n copyProps(this, props);\n\n // Disqus needs hashbang URL, see https://help.disqus.com/customer/portal/articles/472107\n this.page.url = this.page.url.replace(/#/, '') + '#!newthread';\n }\n });\n } else {\n // Otherwise add Disqus to the page\n window.disqus_config = function () {\n copyProps(this, props);\n };\n this.addDisqusScript();\n }\n }\n }]);\n return DisqusThread;\n}(_react2.default.Component);\nDisqusThread.displayName = 'DisqusThread';\nDisqusThread.propTypes = {\n id: _propTypes2.default.string,\n /**\n * `shortname` tells the Disqus service your forum's shortname,\n * which is the unique identifier for your website as registered\n * on Disqus. If undefined , the Disqus embed will not load.\n */\n shortname: _propTypes2.default.string.isRequired,\n /**\n * `identifier` tells the Disqus service how to identify the\n * current page. When the Disqus embed is loaded, the identifier\n * is used to look up the correct thread. If disqus_identifier\n * is undefined, the page's URL will be used. The URL can be\n * unreliable, such as when renaming an article slug or changing\n * domains, so we recommend using your own unique way of\n * identifying a thread.\n */\n identifier: _propTypes2.default.string,\n /**\n * `title` tells the Disqus service the title of the current page.\n * This is used when creating the thread on Disqus for the first time.\n * If undefined, Disqus will use the <title> attribute of the page.\n * If that attribute could not be used, Disqus will use the URL of the page.\n */\n title: _propTypes2.default.string,\n /**\n * `url` tells the Disqus service the URL of the current page.\n * If undefined, Disqus will take the window.location.href.\n * This URL is used to look up or create a thread if disqus_identifier\n * is undefined. In addition, this URL is always saved when a thread is\n * being created so that Disqus knows what page a thread belongs to.\n */\n url: _propTypes2.default.string,\n /**\n * `category_id` tells the Disqus service the category to be used for\n * the current page. This is used when creating the thread on Disqus\n * for the first time.\n */\n category_id: _propTypes2.default.string,\n /**\n * `onNewComment` function accepts one parameter `comment` which is a\n * JavaScript object with comment `id` and `text`. This allows you to track\n * user comments and replies and run a script after a comment is posted.\n */\n onNewComment: _propTypes2.default.func,\n /**\n * `language` tells the Disqus service which language should be used.\n * Please refer to https://www.transifex.com/disqus/disqus/ on which languages can be used\n * If undefined, English is used as default one\n */\n language: _propTypes2.default.string\n};\nDisqusThread.defaultProps = {\n url: typeof window === 'undefined' ? null : window.location.href\n};\nexports.default = DisqusThread;","import React from 'react'\n\nimport './index.scss'\n\nexport const Hr = () => <hr className=\"custom-hr\" />\n","import React from 'react'\n\nexport const PostTitle = ({ title }) => <h1>{title}</h1>\n","import React from 'react'\n\nimport './index.scss'\n\nexport const PostDate = ({ date }) => {\n return <p className=\"post-date\">{date}</p>\n}\n","import React from 'react'\n\nexport const PostContainer = ({ html }) => (\n <div dangerouslySetInnerHTML={{ __html: html }} />\n)\n","import React from 'react'\n\nimport './index.scss'\n\nexport const FacebookIcon = ({ onClick }) => (\n <a\n className=\"resp-sharing-button__link\"\n href=\"#\"\n target=\"_blank\"\n rel=\"noopener\"\n aria-label=\"Share on Facebook\"\n onClick={onClick}\n >\n <div className=\"resp-sharing-button resp-sharing-button--facebook resp-sharing-button--large\">\n <div\n aria-hidden=\"true\"\n className=\"resp-sharing-button__icon resp-sharing-button__icon--solid\"\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <path d=\"M18.77 7.46H14.5v-1.9c0-.9.6-1.1 1-1.1h3V.5h-4.33C10.24.5 9.5 3.44 9.5 5.32v2.15h-3v4h3v12h5v-12h3.85l.42-4z\" />\n </svg>\n </div>\n <span className=\"service-label\">Share on Facebook</span>\n </div>\n </a>\n)\n","import React from 'react'\n\nimport './index.scss'\n\nexport const TwitterIcon = ({ onClick }) => (\n <a\n className=\"resp-sharing-button__link\"\n href=\"#\"\n rel=\"noopener\"\n aria-label=\"Share on Twitter\"\n onClick={onClick}\n >\n <div className=\"resp-sharing-button resp-sharing-button--twitter resp-sharing-button--large\">\n <div\n aria-hidden=\"true\"\n className=\"resp-sharing-button__icon resp-sharing-button__icon--solid\"\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <path d=\"M23.44 4.83c-.8.37-1.5.38-2.22.02.93-.56.98-.96 1.32-2.02-.88.52-1.86.9-2.9 1.1-.82-.88-2-1.43-3.3-1.43-2.5 0-4.55 2.04-4.55 4.54 0 .36.03.7.1 1.04-3.77-.2-7.12-2-9.36-4.75-.4.67-.6 1.45-.6 2.3 0 1.56.8 2.95 2 3.77-.74-.03-1.44-.23-2.05-.57v.06c0 2.2 1.56 4.03 3.64 4.44-.67.2-1.37.2-2.06.08.58 1.8 2.26 3.12 4.25 3.16C5.78 18.1 3.37 18.74 1 18.46c2 1.3 4.4 2.04 6.97 2.04 8.35 0 12.92-6.92 12.92-12.93 0-.2 0-.4-.02-.6.9-.63 1.96-1.22 2.56-2.14z\" />\n </svg>\n </div>\n <span className=\"service-label\">Share on Twitter</span>\n </div>\n </a>\n)\n","import React from 'react'\nimport { FacebookIcon } from './facebook-icon'\nimport { TwitterIcon } from './twitter-icon'\nimport { shareToTwitter, shareToFacebook } from '../../utils/share'\n\nimport './index.scss'\n\nexport const SocialShare = ({ title, author }) => {\n const text = `Recommend on \"${title}\" written by @${author}`\n\n const onClickTwitterIcon = e => {\n e.preventDefault()\n\n return shareToTwitter(window.location.href, text)\n }\n\n const onClickFacebookIcon = e => {\n e.preventDefault()\n return shareToFacebook(window.location.href, text)\n }\n\n return (\n <div className=\"social-share\">\n <FacebookIcon onClick={onClickFacebookIcon} />\n <TwitterIcon onClick={onClickTwitterIcon} />\n </div>\n )\n}\n","export const shareToFacebook = (href, text) => {\n window.FB.ui({\n method: 'share',\n mobile_iframe: true,\n href,\n quote: text,\n })\n}\n\nexport const shareToTwitter = (href, text) => {\n window.open(\n `https://twitter.com/share?url=${encodeURI(encodeURI(href))}&text=${text}`,\n 'sharer',\n 'toolbar=0,status=0,width=626,height=436'\n )\n}\n","import React from 'react'\n\nimport './index.scss'\n\nexport const SponsorButton = ({ sponsorId }) => (\n <div className=\"sponsor-button\">\n <a\n className=\"bmc-button\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href={`https://www.buymeacoffee.com/${sponsorId}`}\n >\n <img\n src=\"https://www.buymeacoffee.com/assets/img/BMC-btn-logo.svg\"\n alt=\"Buy me a coffee\"\n />\n <span>Buy me a coffee</span>\n </a>\n </div>\n)\n","import React from 'react'\nimport { Link } from 'gatsby'\n\nimport './index.scss'\n\nexport const PostNavigator = ({ pageContext }) => {\n const { previous, next } = pageContext\n\n return (\n <ul className=\"navigator\">\n <li>\n {previous && (\n <Link to={previous.fields.slug} rel=\"prev\">\n ← {previous.frontmatter.title}\n </Link>\n )}\n </li>\n <li>\n {next && (\n <Link to={next.fields.slug} rel=\"next\">\n {next.frontmatter.title} →\n </Link>\n )}\n </li>\n </ul>\n )\n}\n","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}","import React, { Component } from 'react'\nimport ReactDisqusComments from 'react-disqus-comments'\n\nexport class Disqus extends Component {\n constructor(props) {\n super(props)\n this.state = { toasts: [] }\n this.notifyAboutComment = this.notifyAboutComment.bind(this)\n this.onSnackbarDismiss = this.onSnackbarDismiss.bind(this)\n }\n\n onSnackbarDismiss() {\n const [, ...toasts] = this.state.toasts\n this.setState({ toasts })\n }\n\n notifyAboutComment() {\n const toasts = this.state.toasts.slice()\n toasts.push({ text: 'New comment available!!' })\n this.setState({ toasts })\n }\n\n render() {\n const { post, shortName, siteUrl, slug } = this.props\n const url = siteUrl + slug\n\n return (\n <ReactDisqusComments\n shortname={shortName}\n identifier={post.frontmatter.title}\n title={post.frontmatter.title}\n url={url}\n category_id={post.frontmatter.category_id}\n onNewComment={this.notifyAboutComment}\n />\n )\n }\n}\n","import React, { useEffect } from 'react'\n\nimport * as Dom from '../../utils/dom'\nimport { THEME } from '../../constants'\n\nconst src = 'https://utteranc.es/client.js'\nconst branch = 'master'\nconst DARK_THEME = 'photon-dark'\nconst LIGHT_THEME = 'github-light'\n\nexport const Utterances = ({ repo }) => {\n const rootElm = React.createRef()\n\n useEffect(() => {\n const isDarkTheme = Dom.hasClassOfBody(THEME.DARK)\n const utterances = document.createElement('script')\n const utterancesConfig = {\n src,\n repo,\n branch,\n theme: isDarkTheme ? DARK_THEME : LIGHT_THEME,\n label: 'comment',\n async: true,\n 'issue-term': 'pathname',\n crossorigin: 'anonymous',\n }\n\n Object.keys(utterancesConfig).forEach(configKey => {\n utterances.setAttribute(configKey, utterancesConfig[configKey])\n })\n rootElm.current.appendChild(utterances)\n }, [])\n\n return <div className=\"utterances\" ref={rootElm} />\n}\n","import React, { useEffect } from 'react'\nimport { graphql } from 'gatsby'\n\nimport * as Elements from '../components/elements'\nimport { Layout } from '../layout'\nimport { Head } from '../components/head'\nimport { PostTitle } from '../components/post-title'\nimport { PostDate } from '../components/post-date'\nimport { PostContainer } from '../components/post-container'\nimport { SocialShare } from '../components/social-share'\nimport { SponsorButton } from '../components/sponsor-button'\nimport { Bio } from '../components/bio'\nimport { PostNavigator } from '../components/post-navigator'\nimport { Disqus } from '../components/disqus'\nimport { Utterances } from '../components/utterances'\nimport * as ScrollManager from '../utils/scroll'\n\nimport '../styles/code.scss'\nimport 'katex/dist/katex.min.css'\n\nexport default ({ data, pageContext, location }) => {\n useEffect(() => {\n ScrollManager.init()\n return () => ScrollManager.destroy()\n }, [])\n\n const post = data.markdownRemark\n const metaData = data.site.siteMetadata\n const { title, comment, siteUrl, author, sponsor } = metaData\n const { disqusShortName, utterances } = comment\n const { title: postTitle, date } = post.frontmatter\n\n return (\n <Layout location={location} title={title}>\n <Head title={postTitle} description={post.excerpt} />\n <PostTitle title={postTitle} />\n <PostDate date={date} />\n <PostContainer html={post.html} />\n <SocialShare title={postTitle} author={author} />\n {!!sponsor.buyMeACoffeeId && (\n <SponsorButton sponsorId={sponsor.buyMeACoffeeId} />\n )}\n <Elements.Hr />\n <Bio />\n <PostNavigator pageContext={pageContext} />\n {!!disqusShortName && (\n <Disqus\n post={post}\n shortName={disqusShortName}\n siteUrl={siteUrl}\n slug={pageContext.slug}\n />\n )}\n {!!utterances && <Utterances repo={utterances} />}\n </Layout>\n )\n}\n\nexport const pageQuery = graphql`\n query BlogPostBySlug($slug: String!) {\n site {\n siteMetadata {\n title\n author\n siteUrl\n comment {\n disqusShortName\n utterances\n }\n sponsor {\n buyMeACoffeeId\n }\n }\n }\n markdownRemark(fields: { slug: { eq: $slug } }) {\n id\n excerpt(pruneLength: 280)\n html\n frontmatter {\n title\n date(formatString: \"MMMM DD, YYYY\") \n }\n }\n }\n`\n"],"sourceRoot":""}