{"version":3,"sources":["webpack:///./src/templates/tutorial.js","webpack:///./src/utils/createCanonicalUrl.js","webpack:///./src/utils/toCommaSeparatedList.js","webpack:///./src/templates/components/NavigationFooter/NavigationFooter.js","webpack:///./node_modules/gatsby/node_modules/core-js/modules/es.string.link.js","webpack:///./node_modules/gatsby-plugin-google-analytics/index.js","webpack:///./src/components/FeedbackForm/index.js","webpack:///./src/components/MarkdownPage/MarkdownPage.js","webpack:///./node_modules/gatsby/node_modules/core-js/modules/es.function.name.js","webpack:///./src/components/FeedbackForm/FeedbackForm.js","webpack:///./src/components/MarkdownPage/index.js","webpack:///./src/templates/components/NavigationFooter/index.js"],"names":["pageQuery","Tutorial","data","location","enableScrollSync","createLink","createLinkTutorial","markdownRemark","sectionList","sectionListTutorial","titlePostfix","slug","urlRoot","replace","addString","list","string","push","key","length","toCommaSeparatedList","array","renderCallback","map","forEach","item","index","NavigationFooter","next","prev","css","background","colors","dark","color","white","paddingTop","paddingBottom","type","halign","media","between","paddingRight","basis","SecondaryLabel","PrimaryLink","to","id","title","textAlign","propTypes","PropTypes","shape","isRequired","children","updatedUrl","pathname","display","borderColor","subtle","transition","fontSize","borderBottomWidth","borderBottomStyle","lessThan","size","brand","fonts","small","$","createHTML","target","proto","forced","forcedStringHTMLMethod","link","url","this","_interopRequireDefault","require","exports","__esModule","OutboundLink","trackCustomEvent","_ref","category","action","label","value","_ref$nonInteraction","nonInteraction","transport","hitCallback","_ref$callbackTimeout","callbackTimeout","window","ga","trackingEventOptions","eventCategory","eventAction","eventLabel","eventValue","callback","opt_timeout","called","raceCallback","setTimeout","createFunctionWithTimeout","_extends2","_objectWithoutPropertiesLoose2","_react","_propTypes","props","rest","default","createElement","onClick","e","redirect","button","altKey","ctrlKey","metaKey","shiftKey","defaultPrevented","toLowerCase","href","document","number","func","FeedbackForm","getPageById","templateFile","sectionItems","section","items","flattenedSectionItems","concat","apply","linkId","find","MarkdownPage","authors","date","ogDescription","hasAuthors","titlePrefix","frontmatter","direction","grow","shrink","width","flex","position","zIndex","scrollMarginTop","header","ogType","canonicalUrl","createCanonicalUrl","fields","sharedStyles","articleLayout","container","marginTop","lineHeight","author","name","content","markdown","dangerouslySetInnerHTML","__html","html","path","whiteSpace","marginRight","editLink","sidebar","defaultActiveSection","findSectionForPath","DESCRIPTORS","defineProperty","f","FunctionPrototype","Function","prototype","FunctionPrototypeToString","toString","nameRE","configurable","get","call","match","error","useState","feedbackGiven","setFeedbackGiven","feedbackButton","marginLeft","aria-label","preventDefault","transform","focusable","xmlns","viewBox","d"],"mappings":"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","file":"component---src-templates-tutorial-js-0dd493454040b26faff4.js","sourcesContent":["/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * @emails react-core\n */\n\nimport MarkdownPage from 'components/MarkdownPage';\nimport React from 'react';\nimport {graphql} from 'gatsby';\nimport Layout from 'components/Layout';\nimport {createLinkTutorial} from 'utils/createLink';\nimport {sectionListTutorial} from 'utils/sectionList';\n\nconst Tutorial = ({data, location}) => {\n return (\n \n \n \n );\n};\n\nexport const pageQuery = graphql`\n query TemplateTutorialMarkdown($slug: String!) {\n markdownRemark(fields: {slug: {eq: $slug}}) {\n html\n frontmatter {\n title\n next\n prev\n }\n fields {\n path\n slug\n }\n }\n }\n`;\n\nexport default Tutorial;\n","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * @emails react-core\n * @flow\n */\n\nimport {urlRoot} from 'site-constants';\n\nexport default (slug: string): string | null =>\n slug == null ? null : `${urlRoot}/${slug.replace(/^\\//, '')}`;\n","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * @emails react-core\n * @flow\n */\n\nimport React from 'react';\n\nimport type {Node} from 'react';\n\nconst addString = (list: Array, string: string) =>\n list.push({string});\n\nconst toCommaSeparatedList = (\n array: Array,\n renderCallback: Function,\n): Array => {\n if (array.length <= 1) {\n return array.map(renderCallback);\n }\n\n const list = [];\n\n array.forEach((item, index) => {\n if (index === array.length - 1) {\n addString(list, array.length === 2 ? ' and ' : ', and ');\n list.push(renderCallback(item, index));\n } else if (index > 0) {\n addString(list, ', ');\n list.push(renderCallback(item, index));\n } else {\n list.push(renderCallback(item, index));\n }\n });\n\n return list;\n};\n\nexport default toCommaSeparatedList;\n","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * @emails react-core\n */\n\nimport Container from 'components/Container';\nimport Flex from 'components/Flex';\nimport {Link} from 'gatsby';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport {colors, fonts, media} from 'theme';\n\nconst NavigationFooter = ({next, prev, location}) => {\n return (\n \n \n \n \n {prev && (\n \n Previous article\n \n \n {prev.title}\n \n \n \n )}\n \n {next && (\n \n \n Next article\n \n \n {next.title}\n \n \n \n \n )}\n \n \n \n );\n};\n\nNavigationFooter.propTypes = {\n next: PropTypes.shape({\n id: PropTypes.string.isRequired,\n title: PropTypes.string.isRequired,\n }),\n prev: PropTypes.shape({\n id: PropTypes.string.isRequired,\n title: PropTypes.string.isRequired,\n }),\n};\n\nexport default NavigationFooter;\n\nconst PrimaryLink = ({children, to, location}) => {\n // quick fix\n // TODO: replace this with better method of getting correct full url\n const updatedUrl =\n (location && location.pathname.replace(/\\/[^/]+\\.html/, '/' + to)) || to;\n return (\n \n {children}\n \n );\n};\n\nconst SecondaryLabel = ({children}) => (\n \n {children}\n \n);\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.link` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.link\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('link') }, {\n link: function link(url) {\n return createHTML(this, 'a', 'href', url);\n }\n});\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.OutboundLink = OutboundLink;\nexports.trackCustomEvent = trackCustomEvent;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutPropertiesLoose\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar createFunctionWithTimeout = function createFunctionWithTimeout(callback, opt_timeout) {\n if (opt_timeout === void 0) {\n opt_timeout = 1000;\n }\n\n var called = false;\n\n var raceCallback = function raceCallback() {\n if (!called) {\n called = true;\n callback();\n }\n };\n\n setTimeout(raceCallback, opt_timeout);\n return raceCallback;\n};\n\nfunction OutboundLink(props) {\n var eventCategory = props.eventCategory,\n eventAction = props.eventAction,\n eventLabel = props.eventLabel,\n eventValue = props.eventValue,\n rest = (0, _objectWithoutPropertiesLoose2.default)(props, [\"eventCategory\", \"eventAction\", \"eventLabel\", \"eventValue\"]);\n return /*#__PURE__*/_react.default.createElement(\"a\", (0, _extends2.default)({}, rest, {\n onClick: function onClick(e) {\n if (typeof props.onClick === \"function\") {\n props.onClick(e);\n }\n\n var redirect = true;\n\n if (e.button !== 0 || e.altKey || e.ctrlKey || e.metaKey || e.shiftKey || e.defaultPrevented) {\n redirect = false;\n }\n\n if (props.target && props.target.toLowerCase() !== \"_self\") {\n redirect = false;\n }\n\n if (window.ga) {\n window.ga(\"send\", \"event\", {\n eventCategory: eventCategory || \"Outbound Link\",\n eventAction: eventAction || \"click\",\n eventLabel: eventLabel || props.href,\n eventValue: eventValue,\n transport: redirect ? \"beacon\" : \"\",\n hitCallback: function hitCallback() {\n if (redirect) {\n document.location = props.href;\n }\n }\n });\n } else {\n if (redirect) {\n document.location = props.href;\n }\n }\n\n return false;\n }\n }));\n}\n\nOutboundLink.propTypes = {\n href: _propTypes.default.string,\n target: _propTypes.default.string,\n eventCategory: _propTypes.default.string,\n eventAction: _propTypes.default.string,\n eventLabel: _propTypes.default.string,\n eventValue: _propTypes.default.number,\n onClick: _propTypes.default.func\n};\n/**\n * This allows the user to create custom events within their Gatsby projects.\n *\n * @param {import('gatsby-plugin-google-analytics').CustomEventArgs} args\n * @see https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#events\n */\n\nfunction trackCustomEvent(_ref) {\n var category = _ref.category,\n action = _ref.action,\n label = _ref.label,\n value = _ref.value,\n _ref$nonInteraction = _ref.nonInteraction,\n nonInteraction = _ref$nonInteraction === void 0 ? false : _ref$nonInteraction,\n transport = _ref.transport,\n hitCallback = _ref.hitCallback,\n _ref$callbackTimeout = _ref.callbackTimeout,\n callbackTimeout = _ref$callbackTimeout === void 0 ? 1000 : _ref$callbackTimeout;\n\n if (typeof window !== \"undefined\" && window.ga) {\n var trackingEventOptions = {\n eventCategory: category,\n eventAction: action,\n eventLabel: label,\n eventValue: value,\n nonInteraction: nonInteraction,\n transport: transport\n };\n\n if (hitCallback && typeof hitCallback === \"function\") {\n trackingEventOptions.hitCallback = createFunctionWithTimeout(hitCallback, callbackTimeout);\n }\n\n window.ga(\"send\", \"event\", trackingEventOptions);\n }\n}","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * @emails react-core\n */\n\nimport FeedbackForm from './FeedbackForm';\n\nexport default FeedbackForm;\n","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * @emails react-core\n * @flow\n */\n\nimport Container from 'components/Container';\nimport Flex from 'components/Flex';\nimport MarkdownHeader from 'components/MarkdownHeader';\nimport NavigationFooter from 'templates/components/NavigationFooter';\n// $FlowFixMe Update Flow\nimport React from 'react';\nimport StickyResponsiveSidebar from 'components/StickyResponsiveSidebar';\nimport TitleAndMetaTags from 'components/TitleAndMetaTags';\nimport FeedbackForm from 'components/FeedbackForm';\nimport findSectionForPath from 'utils/findSectionForPath';\nimport toCommaSeparatedList from 'utils/toCommaSeparatedList';\nimport createCanonicalUrl from 'utils/createCanonicalUrl';\nimport {sharedStyles, colors, media, fonts} from 'theme';\n\nimport type {Node} from 'types';\n\ntype Props = {\n authors: Array,\n createLink: Function, // TODO: Add better flow type once we Flow-type createLink\n date?: string,\n enableScrollSync?: boolean,\n ogDescription: string,\n location: Location,\n markdownRemark: Node,\n sectionList: Array, // TODO: Add better flow type once we have the Section component\n titlePostfix: string,\n};\n\nconst getPageById = (sectionList: Array, templateFile: ?string) => {\n if (!templateFile) {\n return null;\n }\n\n const sectionItems = sectionList.map(section => section.items);\n const flattenedSectionItems = [].concat.apply([], sectionItems);\n const linkId = templateFile.replace('.html', '');\n\n return flattenedSectionItems.find(item => item.id === linkId);\n};\n\nconst MarkdownPage = ({\n authors = [],\n createLink,\n date,\n enableScrollSync,\n ogDescription,\n location,\n markdownRemark,\n sectionList,\n titlePostfix = '',\n}: Props) => {\n const hasAuthors = authors.length > 0;\n const titlePrefix = markdownRemark.frontmatter.title || '';\n\n const prev = getPageById(sectionList, markdownRemark.frontmatter.prev);\n const next = getPageById(sectionList, markdownRemark.frontmatter.next);\n\n return (\n \n \n \n \n \n \n \n\n {(date || hasAuthors) && (\n \n {date}{' '}\n {hasAuthors && (\n \n by{' '}\n {toCommaSeparatedList(authors, author => (\n \n {author.frontmatter.name}\n \n ))}\n \n )}\n \n )}\n\n \n \n\n {markdownRemark.fields.path && (\n \n \n \n \n \n Edit this page\n \n \n )}\n \n \n\n \n \n \n \n \n \n\n {(next || prev) && (\n \n )}\n \n );\n};\n\nexport default MarkdownPage;\n","var DESCRIPTORS = require('../internals/descriptors');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar FunctionPrototype = Function.prototype;\nvar FunctionPrototypeToString = FunctionPrototype.toString;\nvar nameRE = /^\\s*function ([^ (]*)/;\nvar NAME = 'name';\n\n// Function instances `.name` property\n// https://tc39.github.io/ecma262/#sec-function-instances-name\nif (DESCRIPTORS && !(NAME in FunctionPrototype)) {\n defineProperty(FunctionPrototype, NAME, {\n configurable: true,\n get: function () {\n try {\n return FunctionPrototypeToString.call(this).match(nameRE)[1];\n } catch (error) {\n return '';\n }\n }\n });\n}\n","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * @emails react-core\n * @flow\n */\n\n// $FlowExpectedError\nimport React, {useState} from 'react';\nimport {trackCustomEvent} from 'gatsby-plugin-google-analytics';\nimport {sharedStyles} from 'theme';\n\nconst FeedbackForm = () => {\n const [feedbackGiven, setFeedbackGiven] = useState(false);\n\n if (feedbackGiven) {\n return 'Thanks for letting us know!';\n } else {\n return (\n \n Is this page useful?\n {\n e.preventDefault();\n trackCustomEvent({\n category: 'Feedback Button',\n action: 'feedback',\n label: window.location.pathname,\n value: 1,\n });\n setFeedbackGiven(true);\n }}>\n \n \n \n \n {\n e.preventDefault();\n trackCustomEvent({\n category: 'Feedback Button',\n action: 'feedback',\n label: window.location.pathname,\n value: 0,\n });\n setFeedbackGiven(true);\n }}>\n \n \n \n \n \n );\n }\n};\n\nexport default FeedbackForm;\n","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * @emails react-core\n */\n\nimport MarkdownPage from './MarkdownPage';\n\nexport default MarkdownPage;\n","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * @emails react-core\n */\n\nimport NavigationFooter from './NavigationFooter';\n\nexport default NavigationFooter;\n"],"sourceRoot":""}