{"version":3,"sources":["webpack:///./node_modules/keymirror/index.js","webpack:///../../src/util/unprefixDraftId.ts","webpack:///./node_modules/jsonp/index.js","webpack:///./node_modules/gatsby-image/index.js","webpack:///../../src/util/resolveReferences.ts","webpack:///./node_modules/@sanity/block-content-to-hyperscript/lib/serializers.js","webpack:///./node_modules/@sanity/block-content-to-react/lib/targets/dom.js","webpack:///./node_modules/@sanity/block-content-to-hyperscript/internals.js","webpack:///../src/index.ts","webpack:///./node_modules/url-parse/index.js","webpack:///./node_modules/@sanity/generate-help-url/index.js","webpack:///./node_modules/debug/src/browser.js","webpack:///./node_modules/requires-port/index.js","webpack:///./node_modules/@sanity/block-content-to-hyperscript/lib/getImageUrl.js","webpack:///./node_modules/@sanity/block-content-to-hyperscript/lib/blocksToNodes.js","webpack:///./node_modules/react-vimeo/lib/Spinner.js","webpack:///./node_modules/react-vimeo/lib/Vimeo.js","webpack:///./node_modules/react-vimeo/lib/Play-Button.js","webpack:///../../src/images/getGatsbyImageProps.ts","webpack:///./node_modules/@sanity/block-content-to-hyperscript/lib/mergeSerializers.js","webpack:///./node_modules/get-video-id/dist/get-video-id.esm.js","webpack:///./src/components/Table.js","webpack:///./src/components/CTA.js","webpack:///./src/components/portableText.js","webpack:///./src/components/Figure.js","webpack:///./node_modules/@sanity/block-content-to-hyperscript/lib/internals.js","webpack:///./node_modules/gatsby-source-sanity/index.js","webpack:///./node_modules/@sanity/block-content-to-hyperscript/lib/buildMarksTree.js","webpack:///./node_modules/debug/node_modules/ms/index.js","webpack:///./node_modules/debug/src/debug.js","webpack:///./src/images/graph.png","webpack:///./node_modules/querystringify/index.js","webpack:///./node_modules/@sanity/block-content-to-react/lib/BlockContent.js","webpack:///./src/components/table.module.css","webpack:///./node_modules/@sanity/block-content-to-hyperscript/lib/nestLists.js","webpack:///./node_modules/@sanity/block-content-to-hyperscript/lib/generateKeys.js","webpack:///./src/components/CTA.module.css"],"names":["module","exports","obj","key","ret","Object","Array","isArray","Error","hasOwnProperty","unprefixDraftId","id","replace","debug","url","opts","fn","script","timer","prefix","name","count","param","timeout","enc","encodeURIComponent","target","document","getElementsByTagName","head","setTimeout","cleanup","parentNode","removeChild","window","noop","clearTimeout","data","indexOf","createElement","src","insertBefore","_interopRequireDefault","require","__esModule","default","io","_assertThisInitialized2","_inheritsLoose2","_objectWithoutPropertiesLoose2","_extends2","_react","_propTypes","convertProps","props","convertedProps","resolutions","sizes","critical","fixed","fluid","loading","groupByMedia","concat","matchesMedia","_ref","media","isBrowser","matchMedia","matches","getImageCacheKey","_ref2","srcData","getCurrentSrcData","currentData","some","image","hasArtDirectionSupport","foundMedia","findIndex","noMedia","imageCache","create","inImageCache","cacheKey","hasNativeLazyLoadSupport","HTMLImageElement","prototype","hasIOSupport","IntersectionObserver","listeners","WeakMap","generateImageSources","imageVariants","map","_ref3","srcSet","srcSetWebp","Fragment","type","withMedia","without","forEach","variant","push","generateTracedSVGSources","_ref4","tracedSVG","generateBase64Sources","_ref5","base64","generateNoscriptSource","_ref6","isWebp","listenToIntersections","el","cb","observer","entries","entry","has","get","isIntersecting","intersectionRatio","unobserve","delete","rootMargin","observe","set","noscriptImg","title","alt","width","height","crossOrigin","draggable","join","Placeholder","forwardRef","ref","generateSources","spreadProps","ariaHidden","baseImage","Img","length","style","onLoad","onError","otherProps","position","top","left","objectFit","objectPosition","propTypes","object","func","Image","_React$Component","_this","call","this","seenBefore","isCritical","addNoScript","fadeIn","useIOSupport","isVisible","state","imgLoaded","imgCached","isHydrated","imageRef","createRef","placeholderRef","handleImageLoaded","bind","handleRef","_proto","componentDidMount","setState","onStartLoad","wasCached","img","current","complete","componentWillUnmount","cleanUpListeners","_this2","imageInCache","currentSrc","render","_convertProps","className","_convertProps$style","_convertProps$imgStyl","imgStyle","_convertProps$placeho","placeholderStyle","placeholderClassName","backgroundColor","durationFadeIn","Tag","itemProp","shouldReveal","shouldFadeIn","imageStyle","opacity","transition","bgColor","delayHideStyle","transitionDelay","imagePlaceholderStyle","placeholderImageProps","overflow","maxWidth","maxHeight","JSON","stringify","paddingBottom","aspectRatio","bottom","right","dangerouslySetInnerHTML","__html","divStyle","display","Component","defaultProps","fixedObject","shape","number","isRequired","string","srcWebp","fluidObject","requireFixedOrFluid","originalPropTypes","propName","componentName","_PropTypes$checkPropT","checkPropTypes","oneOfType","arrayOf","bool","oneOf","_default","unprefixDraftId_1","defaultResolveOptions","maxDepth","overlayDrafts","resolveReferences","context","options","currentDepth","createNodeId","getNode","resolveOptions","__assign","item","node","keys","reduce","acc","isGatsbyRef","endsWith","isRawDataField","startsWith","targetKey","slice","value","resolveGatsbyReference","objectAssign","getImageUrl","h","serializerOpts","serializeOptions","useDashedStyles","RawMarkSerializer","tag","children","defaultSerializers","types","block","test","asset","isInline","marks","strong","em","code","underline","textDecoration","link","href","mark","list","listItem","serializers","blockType","_type","serializer","span","_props$node","markType","console","warn","markFallback","hardBreak","container","text","undefined","empty","serializeSpan","index","child","i","serializeNode","serializedNode","_key","React","_getSerializers","getSerializers","renderProps","nestMarks","pkgName","getGatsbyImageProps_1","getFluidGatsbyImage","getFixedGatsbyImage","resolveReferences_1","required","qs","controlOrWhitespace","CRHTLF","slashes","port","protocolre","windowsDriveLetter","trimLeft","str","toString","rules","address","isSpecial","protocol","NaN","ignore","hash","query","lolcation","loc","location","global","self","finaldestination","Url","unescape","pathname","scheme","extractProtocol","rest","match","exec","toLowerCase","forwardSlashes","otherSlashes","slashesCount","parser","relative","extracted","parse","instruction","instructions","lastIndexOf","charAt","base","path","split","last","unshift","up","splice","resolve","host","hostname","username","password","auth","decodeURIComponent","origin","part","pop","char","ins","result","slug","load","r","storage","e","process","DEBUG","log","Function","apply","arguments","formatArgs","args","useColors","namespace","humanize","diff","c","color","lastC","save","namespaces","removeItem","documentElement","WebkitAppearance","firebug","exception","table","navigator","userAgent","parseInt","RegExp","$1","chrome","local","localStorage","localstorage","colors","formatters","j","v","err","message","enable","generateHelpUrl","urlBuilder","materializeError","projectId","dataset","imageOptions","params","getQueryString","buildMarksTree","nestLists","generateKeys","mergeSerializers","optionProps","defaults","isListItem","properties","rawBlocks","blocks","keyedBlocks","listNestMode","siblings","level","serializeListItem","findListItemIndex","isSpan","blockProps","serializeBlock","renderContainerOnSingleChild","Boolean","nodes","containerProps","defineProperty","_createClass","defineProperties","descriptor","enumerable","configurable","writable","Constructor","protoProps","staticProps","_react2","_classCallCheck","instance","TypeError","_possibleConstructorReturn","ReferenceError","_class","__proto__","getPrototypeOf","subClass","superClass","constructor","setPrototypeOf","_inherits","viewBox","xmlns","d","displayName","_propTypes2","_keymirror2","_jsonp2","_debug2","_PlayButton2","_Spinner2","playerEvents","cueChange","ended","loaded","pause","play","progress","seeked","textTrackChange","timeUpdate","volumeChange","capitalize","toUpperCase","substring","getFuncForEvent","event","post","method","player","playerOrigin","contentWindow","postMessage","_temp","_len","imageLoaded","showingVideo","autoplay","thumb","addMessageListener","_context","addEventListener","onMessage","onReady","_player","playVideo","preventDefault","getIframeUrl","videoId","getIframeUrlQuery","playerOptions","fetchVimeoData","res","thumbnail_large","renderImage","backgroundImage","playButton","cloneElement","onClick","renderIframe","embedVideoStyle","frameBorder","renderLoading","loadingElement","nextProps","_context2","removeEventListener","element","onCueChange","onEnded","onLoaded","onPause","onPlay","onProgress","onSeeked","onTextTrackChanged","onTimeUpdate","onVolumeChange","version","ImageFormat","parseUrl","DEFAULT_FIXED_WIDTH","DEFAULT_FLUID_MAX_WIDTH","idPattern","sizeMultipliersFixed","sizeMultipliersFluid","getBasicImageProps","_id","_a","assetId","dimensions","extension","_b","num","metadata","stub","buildImageUrl","convertToFormat","toFormat","parsed","isConvertedToTarget","fm","isOriginal","__rest","newQuery","isWebP","isConverted","includes","lqip","desiredAspectRatio","forceConvert","srcSets","scale","Math","round","filter","currentWidth","resolution","currentHeight","imgUrl","webpUrl","baseUrl","webp","outputHeight","baseSrc","_typeof","Symbol","iterator","userSerializers","stripParameters","shortcodeString","youtube","youtubeString","string_","shortcode","shortsUrl","parameterv","inlinev","parameterwebp","eformat","embedreg","attrreg","livereg","_slicedToArray","arr","_arrayWithHoles","_i","_s","_e","_arr","_n","_d","next","done","_iterableToArrayLimit","o","minLen","_arrayLikeToArray","n","from","_unsupportedIterableToArray","_nonIterableRest","len","arr2","vimeo","vimeoString","array","_string_$split","_string_$split3","eventMatches","vimeoPipe","vine","videopress","urlString","idRegex","microsoftStream","tiktok","basicParsed","dailymotion","shortParsed","dynamicParsed","input","getSrc","trim","service","Table","tableTitle","tableDesc","row","styles","tableContainer","heading","tableHeadingRow","cells","cell","CTA","registerPath","setRegisterPath","useState","appBase","getAppBase","useEffect","generateTrackingPath","ctaTitle","ctaDesc","mainGetStarted","gsImgBox","Graph","role","gsCopy","getStarted","mainImage","fluidProps","clientConfig","sanity","caption","cta","getVideoId","Vimeo","PortableText","BasePortableText","assign","_blocksToNodes","blocksToNodes","renderNode","defaultMarks","sortMarksByOccurences","spans","markOccurences","occurences","siblingIndex","sibling","sortByOccurence","sortMarks","sort","markA","markB","aOccurences","bOccurences","aDefaultPos","bDefaultPos","markDefs","sortedMarks","rootNode","nodeStack","marksNeeded","pos","markKey","currentNode","findLastParentNode","find","def","lines","line","s","m","plural","ms","floor","ceil","val","String","parseFloat","isNaN","long","fmtShort","prevTime","createDebug","enabled","curr","Date","prev","coerce","format","formatter","logFn","charCodeAt","abs","selectColor","init","stack","disable","names","skips","substr","decode","encode","pairs","PropTypes","internals","_require","SanityBlockContent","customSerializers","isListBlock","blockMatchesList","listFromBlock","lastChild","findListMatching","matching","filterOnType","currentList","mode","tree","newList","lastListItem","newLastChild","_match","checksum","strlen"],"mappings":"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","file":"0a55b0343f086fa8a10f347a02ae92dc9f88a97e-51cf679dd32aef583584.js","sourcesContent":["/**\n * Copyright 2013-2014 Facebook, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\n\"use strict\";\n\n/**\n * Constructs an enumeration with keys equal to their value.\n *\n * For example:\n *\n * var COLORS = keyMirror({blue: null, red: null});\n * var myColor = COLORS.blue;\n * var isColorValid = !!COLORS[myColor];\n *\n * The last line could not be performed if the values of the generated enum were\n * not equal to their keys.\n *\n * Input: {key1: val1, key2: val2}\n * Output: {key1: key1, key2: key2}\n *\n * @param {object} obj\n * @return {object}\n */\nvar keyMirror = function (obj) {\n var ret = {};\n var key;\n if (!(obj instanceof Object && !Array.isArray(obj))) {\n throw new Error('keyMirror(...): Argument must be an object.');\n }\n for (key in obj) {\n if (!obj.hasOwnProperty(key)) {\n continue;\n }\n ret[key] = key;\n }\n return ret;\n};\nmodule.exports = keyMirror;",null,"/**\n * Module dependencies\n */\n\nvar debug = require('debug')('jsonp');\n\n/**\n * Module exports.\n */\n\nmodule.exports = jsonp;\n\n/**\n * Callback index.\n */\n\nvar count = 0;\n\n/**\n * Noop function.\n */\n\nfunction noop() {}\n\n/**\n * JSONP handler\n *\n * Options:\n * - param {String} qs parameter (`callback`)\n * - prefix {String} qs parameter (`__jp`)\n * - name {String} qs parameter (`prefix` + incr)\n * - timeout {Number} how long after a timeout error is emitted (`60000`)\n *\n * @param {String} url\n * @param {Object|Function} optional options / callback\n * @param {Function} optional callback\n */\n\nfunction jsonp(url, opts, fn) {\n if ('function' == typeof opts) {\n fn = opts;\n opts = {};\n }\n if (!opts) opts = {};\n var prefix = opts.prefix || '__jp';\n\n // use the callback name that was passed if one was provided.\n // otherwise generate a unique name by incrementing our counter.\n var id = opts.name || prefix + count++;\n var param = opts.param || 'callback';\n var timeout = null != opts.timeout ? opts.timeout : 60000;\n var enc = encodeURIComponent;\n var target = document.getElementsByTagName('script')[0] || document.head;\n var script;\n var timer;\n if (timeout) {\n timer = setTimeout(function () {\n cleanup();\n if (fn) fn(new Error('Timeout'));\n }, timeout);\n }\n function cleanup() {\n if (script.parentNode) script.parentNode.removeChild(script);\n window[id] = noop;\n if (timer) clearTimeout(timer);\n }\n function cancel() {\n if (window[id]) {\n cleanup();\n }\n }\n window[id] = function (data) {\n debug('jsonp got', data);\n cleanup();\n if (fn) fn(null, data);\n };\n\n // add qs component\n url += (~url.indexOf('?') ? '&' : '?') + param + '=' + enc(id);\n url = url.replace('?&', '?');\n debug('jsonp req \"%s\"', url);\n\n // create script\n script = document.createElement('script');\n script.src = url;\n target.parentNode.insertBefore(script, target);\n return cancel;\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutPropertiesLoose\"));\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar logDeprecationNotice = function logDeprecationNotice(prop, replacement) {\n if (process.env.NODE_ENV === \"production\") {\n return;\n }\n\n console.log(\"\\n The \\\"\" + prop + \"\\\" prop is now deprecated and will be removed in the next major version\\n of \\\"gatsby-image\\\".\\n \");\n\n if (replacement) {\n console.log(\"Please use \" + replacement + \" instead of \\\"\" + prop + \"\\\".\");\n }\n}; // Handle legacy props during their deprecation phase\n\n\nvar convertProps = function convertProps(props) {\n var convertedProps = (0, _extends2.default)({}, props);\n var resolutions = convertedProps.resolutions,\n sizes = convertedProps.sizes,\n critical = convertedProps.critical;\n\n if (resolutions) {\n convertedProps.fixed = resolutions;\n logDeprecationNotice(\"resolutions\", \"the gatsby-image v2 prop \\\"fixed\\\"\");\n delete convertedProps.resolutions;\n }\n\n if (sizes) {\n convertedProps.fluid = sizes;\n logDeprecationNotice(\"sizes\", \"the gatsby-image v2 prop \\\"fluid\\\"\");\n delete convertedProps.sizes;\n }\n\n if (critical) {\n logDeprecationNotice(\"critical\", \"the native \\\"loading\\\" attribute\");\n convertedProps.loading = \"eager\";\n } // convert fluid & fixed to arrays so we only have to work with arrays\n\n\n if (convertedProps.fluid) {\n convertedProps.fluid = groupByMedia([].concat(convertedProps.fluid));\n }\n\n if (convertedProps.fixed) {\n convertedProps.fixed = groupByMedia([].concat(convertedProps.fixed));\n }\n\n return convertedProps;\n};\n/**\n * Checks if fluid or fixed are art-direction arrays.\n *\n * @param currentData {{media?: string}[]} The props to check for images.\n * @return {boolean}\n */\n\n\nvar hasArtDirectionSupport = function hasArtDirectionSupport(currentData) {\n return !!currentData && Array.isArray(currentData) && currentData.some(function (image) {\n return typeof image.media !== \"undefined\";\n });\n};\n/**\n * Tries to detect if a media query matches the current viewport.\n * @property media {{media?: string}} A media query string.\n * @return {boolean}\n */\n\n\nvar matchesMedia = function matchesMedia(_ref) {\n var media = _ref.media;\n return media ? isBrowser && !!window.matchMedia(media).matches : false;\n};\n/**\n * Find the source of an image to use as a key in the image cache.\n * Use `the first image in either `fixed` or `fluid`\n * @param {{fluid: {src: string, media?: string}[], fixed: {src: string, media?: string}[]}} args\n * @return {string?} Returns image src or undefined it not given.\n */\n\n\nvar getImageCacheKey = function getImageCacheKey(_ref2) {\n var fluid = _ref2.fluid,\n fixed = _ref2.fixed;\n var srcData = getCurrentSrcData(fluid || fixed || []);\n return srcData && srcData.src;\n};\n/**\n * Returns the current src - Preferably with art-direction support.\n * @param currentData {{media?: string}[], maxWidth?: Number, maxHeight?: Number} The fluid or fixed image array.\n * @return {{src: string, media?: string, maxWidth?: Number, maxHeight?: Number}}\n */\n\n\nvar getCurrentSrcData = function getCurrentSrcData(currentData) {\n if (isBrowser && hasArtDirectionSupport(currentData)) {\n // Do we have an image for the current Viewport?\n var foundMedia = currentData.findIndex(matchesMedia);\n\n if (foundMedia !== -1) {\n return currentData[foundMedia];\n } // No media matches, select first element without a media condition\n\n\n var noMedia = currentData.findIndex(function (image) {\n return typeof image.media === \"undefined\";\n });\n\n if (noMedia !== -1) {\n return currentData[noMedia];\n }\n } // Else return the first image.\n\n\n return currentData[0];\n}; // Cache if we've seen an image before so we don't bother with\n// lazy-loading & fading in on subsequent mounts.\n\n\nvar imageCache = Object.create({});\n\nvar inImageCache = function inImageCache(props) {\n var convertedProps = convertProps(props);\n var cacheKey = getImageCacheKey(convertedProps);\n return imageCache[cacheKey] || false;\n};\n\nvar activateCacheForImage = function activateCacheForImage(props) {\n var convertedProps = convertProps(props);\n var cacheKey = getImageCacheKey(convertedProps);\n\n if (cacheKey) {\n imageCache[cacheKey] = true;\n }\n}; // Native lazy-loading support: https://addyosmani.com/blog/lazy-loading/\n\n\nvar hasNativeLazyLoadSupport = typeof HTMLImageElement !== \"undefined\" && \"loading\" in HTMLImageElement.prototype;\nvar isBrowser = typeof window !== \"undefined\";\nvar hasIOSupport = isBrowser && window.IntersectionObserver;\nvar io;\nvar listeners = new WeakMap();\n\nfunction getIO() {\n if (typeof io === \"undefined\" && typeof window !== \"undefined\" && window.IntersectionObserver) {\n io = new window.IntersectionObserver(function (entries) {\n entries.forEach(function (entry) {\n if (listeners.has(entry.target)) {\n var cb = listeners.get(entry.target); // Edge doesn't currently support isIntersecting, so also test for an intersectionRatio > 0\n\n if (entry.isIntersecting || entry.intersectionRatio > 0) {\n io.unobserve(entry.target);\n listeners.delete(entry.target);\n cb();\n }\n }\n });\n }, {\n rootMargin: \"200px\"\n });\n }\n\n return io;\n}\n\nfunction generateImageSources(imageVariants) {\n return imageVariants.map(function (_ref3) {\n var src = _ref3.src,\n srcSet = _ref3.srcSet,\n srcSetWebp = _ref3.srcSetWebp,\n media = _ref3.media,\n sizes = _ref3.sizes;\n return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, {\n key: src\n }, srcSetWebp && /*#__PURE__*/_react.default.createElement(\"source\", {\n type: \"image/webp\",\n media: media,\n srcSet: srcSetWebp,\n sizes: sizes\n }), srcSet && /*#__PURE__*/_react.default.createElement(\"source\", {\n media: media,\n srcSet: srcSet,\n sizes: sizes\n }));\n });\n} // Return an array ordered by elements having a media prop, does not use\n// native sort, as a stable sort is not guaranteed by all browsers/versions\n\n\nfunction groupByMedia(imageVariants) {\n var withMedia = [];\n var without = [];\n imageVariants.forEach(function (variant) {\n return (variant.media ? withMedia : without).push(variant);\n });\n\n if (without.length > 1 && process.env.NODE_ENV !== \"production\") {\n console.warn(\"We've found \" + without.length + \" sources without a media property. They might be ignored by the browser, see: https://www.gatsbyjs.org/packages/gatsby-image/#art-directing-multiple-images\");\n }\n\n return [].concat(withMedia, without);\n}\n\nfunction generateTracedSVGSources(imageVariants) {\n return imageVariants.map(function (_ref4) {\n var src = _ref4.src,\n media = _ref4.media,\n tracedSVG = _ref4.tracedSVG;\n return /*#__PURE__*/_react.default.createElement(\"source\", {\n key: src,\n media: media,\n srcSet: tracedSVG\n });\n });\n}\n\nfunction generateBase64Sources(imageVariants) {\n return imageVariants.map(function (_ref5) {\n var src = _ref5.src,\n media = _ref5.media,\n base64 = _ref5.base64;\n return /*#__PURE__*/_react.default.createElement(\"source\", {\n key: src,\n media: media,\n srcSet: base64\n });\n });\n}\n\nfunction generateNoscriptSource(_ref6, isWebp) {\n var srcSet = _ref6.srcSet,\n srcSetWebp = _ref6.srcSetWebp,\n media = _ref6.media,\n sizes = _ref6.sizes;\n var src = isWebp ? srcSetWebp : srcSet;\n var mediaAttr = media ? \"media=\\\"\" + media + \"\\\" \" : \"\";\n var typeAttr = isWebp ? \"type='image/webp' \" : \"\";\n var sizesAttr = sizes ? \"sizes=\\\"\" + sizes + \"\\\" \" : \"\";\n return \"\";\n}\n\nfunction generateNoscriptSources(imageVariants) {\n return imageVariants.map(function (variant) {\n return (variant.srcSetWebp ? generateNoscriptSource(variant, true) : \"\") + generateNoscriptSource(variant);\n }).join(\"\");\n}\n\nvar listenToIntersections = function listenToIntersections(el, cb) {\n var observer = getIO();\n\n if (observer) {\n observer.observe(el);\n listeners.set(el, cb);\n }\n\n return function () {\n observer.unobserve(el);\n listeners.delete(el);\n };\n};\n\nvar noscriptImg = function noscriptImg(props) {\n // Check if prop exists before adding each attribute to the string output below to prevent\n // HTML validation issues caused by empty values like width=\"\" and height=\"\"\n var src = props.src ? \"src=\\\"\" + props.src + \"\\\" \" : \"src=\\\"\\\" \"; // required attribute\n\n var sizes = props.sizes ? \"sizes=\\\"\" + props.sizes + \"\\\" \" : \"\";\n var srcSet = props.srcSet ? \"srcset=\\\"\" + props.srcSet + \"\\\" \" : \"\";\n var title = props.title ? \"title=\\\"\" + props.title + \"\\\" \" : \"\";\n var alt = props.alt ? \"alt=\\\"\" + props.alt + \"\\\" \" : \"alt=\\\"\\\" \"; // required attribute\n\n var width = props.width ? \"width=\\\"\" + props.width + \"\\\" \" : \"\";\n var height = props.height ? \"height=\\\"\" + props.height + \"\\\" \" : \"\";\n var crossOrigin = props.crossOrigin ? \"crossorigin=\\\"\" + props.crossOrigin + \"\\\" \" : \"\";\n var loading = props.loading ? \"loading=\\\"\" + props.loading + \"\\\" \" : \"\";\n var draggable = props.draggable ? \"draggable=\\\"\" + props.draggable + \"\\\" \" : \"\";\n var sources = generateNoscriptSources(props.imageVariants);\n return \"\" + sources + \"\";\n}; // Earlier versions of gatsby-image during the 2.x cycle did not wrap\n// the `Img` component in a `picture` element. This maintains compatibility\n// until a breaking change can be introduced in the next major release\n\n\nvar Placeholder = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {\n var src = props.src,\n imageVariants = props.imageVariants,\n generateSources = props.generateSources,\n spreadProps = props.spreadProps,\n ariaHidden = props.ariaHidden;\n\n var baseImage = /*#__PURE__*/_react.default.createElement(Img, (0, _extends2.default)({\n ref: ref,\n src: src\n }, spreadProps, {\n ariaHidden: ariaHidden\n }));\n\n return imageVariants.length > 1 ? /*#__PURE__*/_react.default.createElement(\"picture\", null, generateSources(imageVariants), baseImage) : baseImage;\n});\n\nvar Img = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {\n var sizes = props.sizes,\n srcSet = props.srcSet,\n src = props.src,\n style = props.style,\n onLoad = props.onLoad,\n onError = props.onError,\n loading = props.loading,\n draggable = props.draggable,\n ariaHidden = props.ariaHidden,\n otherProps = (0, _objectWithoutPropertiesLoose2.default)(props, [\"sizes\", \"srcSet\", \"src\", \"style\", \"onLoad\", \"onError\", \"loading\", \"draggable\", \"ariaHidden\"]);\n return /*#__PURE__*/_react.default.createElement(\"img\", (0, _extends2.default)({\n \"aria-hidden\": ariaHidden,\n sizes: sizes,\n srcSet: srcSet,\n src: src\n }, otherProps, {\n onLoad: onLoad,\n onError: onError,\n ref: ref,\n loading: loading,\n draggable: draggable,\n style: (0, _extends2.default)({\n position: \"absolute\",\n top: 0,\n left: 0,\n width: \"100%\",\n height: \"100%\",\n objectFit: \"cover\",\n objectPosition: \"center\"\n }, style)\n }));\n});\n\nImg.propTypes = {\n style: _propTypes.default.object,\n onError: _propTypes.default.func,\n onLoad: _propTypes.default.func\n};\n\nvar Image = /*#__PURE__*/function (_React$Component) {\n (0, _inheritsLoose2.default)(Image, _React$Component);\n\n function Image(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this; // If this image has already been loaded before then we can assume it's\n // already in the browser cache so it's cheap to just show directly.\n\n _this.seenBefore = isBrowser && inImageCache(props);\n _this.isCritical = props.loading === \"eager\" || props.critical;\n _this.addNoScript = !(_this.isCritical && !props.fadeIn);\n _this.useIOSupport = !hasNativeLazyLoadSupport && hasIOSupport && !_this.isCritical && !_this.seenBefore;\n var isVisible = _this.isCritical || isBrowser && (hasNativeLazyLoadSupport || !_this.useIOSupport);\n _this.state = {\n isVisible: isVisible,\n imgLoaded: false,\n imgCached: false,\n fadeIn: !_this.seenBefore && props.fadeIn,\n isHydrated: false\n };\n _this.imageRef = /*#__PURE__*/_react.default.createRef();\n _this.placeholderRef = props.placeholderRef || /*#__PURE__*/_react.default.createRef();\n _this.handleImageLoaded = _this.handleImageLoaded.bind((0, _assertThisInitialized2.default)(_this));\n _this.handleRef = _this.handleRef.bind((0, _assertThisInitialized2.default)(_this));\n return _this;\n }\n\n var _proto = Image.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.setState({\n isHydrated: isBrowser\n });\n\n if (this.state.isVisible && typeof this.props.onStartLoad === \"function\") {\n this.props.onStartLoad({\n wasCached: inImageCache(this.props)\n });\n }\n\n if (this.isCritical) {\n var img = this.imageRef.current;\n\n if (img && img.complete) {\n this.handleImageLoaded();\n }\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this.cleanUpListeners) {\n this.cleanUpListeners();\n }\n } // Specific to IntersectionObserver based lazy-load support\n ;\n\n _proto.handleRef = function handleRef(ref) {\n var _this2 = this;\n\n if (this.useIOSupport && ref) {\n this.cleanUpListeners = listenToIntersections(ref, function () {\n var imageInCache = inImageCache(_this2.props);\n\n if (!_this2.state.isVisible && typeof _this2.props.onStartLoad === \"function\") {\n _this2.props.onStartLoad({\n wasCached: imageInCache\n });\n } // imgCached and imgLoaded must update after isVisible,\n // Once isVisible is true, imageRef becomes accessible, which imgCached needs access to.\n // imgLoaded and imgCached are in a 2nd setState call to be changed together,\n // avoiding initiating unnecessary animation frames from style changes.\n\n\n _this2.setState({\n isVisible: true\n }, function () {\n _this2.setState({\n imgLoaded: imageInCache,\n // `currentSrc` should be a string, but can be `undefined` in IE,\n // !! operator validates the value is not undefined/null/\"\"\n // for lazyloaded components this might be null\n // TODO fix imgCached behaviour as it's now false when it's lazyloaded\n imgCached: !!(_this2.imageRef.current && _this2.imageRef.current.currentSrc)\n });\n });\n });\n }\n };\n\n _proto.handleImageLoaded = function handleImageLoaded() {\n activateCacheForImage(this.props);\n this.setState({\n imgLoaded: true\n });\n\n if (this.props.onLoad) {\n this.props.onLoad();\n }\n };\n\n _proto.render = function render() {\n var _convertProps = convertProps(this.props),\n title = _convertProps.title,\n alt = _convertProps.alt,\n className = _convertProps.className,\n _convertProps$style = _convertProps.style,\n style = _convertProps$style === void 0 ? {} : _convertProps$style,\n _convertProps$imgStyl = _convertProps.imgStyle,\n imgStyle = _convertProps$imgStyl === void 0 ? {} : _convertProps$imgStyl,\n _convertProps$placeho = _convertProps.placeholderStyle,\n placeholderStyle = _convertProps$placeho === void 0 ? {} : _convertProps$placeho,\n placeholderClassName = _convertProps.placeholderClassName,\n fluid = _convertProps.fluid,\n fixed = _convertProps.fixed,\n backgroundColor = _convertProps.backgroundColor,\n durationFadeIn = _convertProps.durationFadeIn,\n Tag = _convertProps.Tag,\n itemProp = _convertProps.itemProp,\n loading = _convertProps.loading,\n draggable = _convertProps.draggable;\n\n var imageVariants = fluid || fixed; // Abort early if missing image data (#25371)\n\n if (!imageVariants) {\n return null;\n }\n\n var shouldReveal = this.state.fadeIn === false || this.state.imgLoaded;\n var shouldFadeIn = this.state.fadeIn === true && !this.state.imgCached;\n var imageStyle = (0, _extends2.default)({\n opacity: shouldReveal ? 1 : 0,\n transition: shouldFadeIn ? \"opacity \" + durationFadeIn + \"ms\" : \"none\"\n }, imgStyle);\n var bgColor = typeof backgroundColor === \"boolean\" ? \"lightgray\" : backgroundColor;\n var delayHideStyle = {\n transitionDelay: durationFadeIn + \"ms\"\n };\n var imagePlaceholderStyle = (0, _extends2.default)({\n opacity: this.state.imgLoaded ? 0 : 1\n }, shouldFadeIn && delayHideStyle, imgStyle, placeholderStyle);\n var placeholderImageProps = {\n title: title,\n alt: !this.state.isVisible ? alt : \"\",\n style: imagePlaceholderStyle,\n className: placeholderClassName,\n itemProp: itemProp\n }; // Initial client render state needs to match SSR until hydration finishes.\n // Once hydration completes, render again to update to the correct image.\n // `imageVariants` is always an Array type at this point due to `convertProps()`\n\n var image = !this.state.isHydrated ? imageVariants[0] : getCurrentSrcData(imageVariants);\n\n if (fluid) {\n return /*#__PURE__*/_react.default.createElement(Tag, {\n className: (className ? className : \"\") + \" gatsby-image-wrapper\",\n style: (0, _extends2.default)({\n position: \"relative\",\n overflow: \"hidden\",\n maxWidth: image.maxWidth ? image.maxWidth + \"px\" : null,\n maxHeight: image.maxHeight ? image.maxHeight + \"px\" : null\n }, style),\n ref: this.handleRef,\n key: \"fluid-\" + JSON.stringify(image.srcSet)\n }, /*#__PURE__*/_react.default.createElement(Tag, {\n \"aria-hidden\": true,\n style: {\n width: \"100%\",\n paddingBottom: 100 / image.aspectRatio + \"%\"\n }\n }), bgColor && /*#__PURE__*/_react.default.createElement(Tag, {\n \"aria-hidden\": true,\n title: title,\n style: (0, _extends2.default)({\n backgroundColor: bgColor,\n position: \"absolute\",\n top: 0,\n bottom: 0,\n opacity: !this.state.imgLoaded ? 1 : 0,\n right: 0,\n left: 0\n }, shouldFadeIn && delayHideStyle)\n }), image.base64 && /*#__PURE__*/_react.default.createElement(Placeholder, {\n ariaHidden: true,\n ref: this.placeholderRef,\n src: image.base64,\n spreadProps: placeholderImageProps,\n imageVariants: imageVariants,\n generateSources: generateBase64Sources\n }), image.tracedSVG && /*#__PURE__*/_react.default.createElement(Placeholder, {\n ariaHidden: true,\n ref: this.placeholderRef,\n src: image.tracedSVG,\n spreadProps: placeholderImageProps,\n imageVariants: imageVariants,\n generateSources: generateTracedSVGSources\n }), this.state.isVisible && /*#__PURE__*/_react.default.createElement(\"picture\", null, generateImageSources(imageVariants), /*#__PURE__*/_react.default.createElement(Img, {\n alt: alt,\n title: title,\n sizes: image.sizes,\n src: image.src,\n crossOrigin: this.props.crossOrigin,\n srcSet: image.srcSet,\n style: imageStyle,\n ref: this.imageRef,\n onLoad: this.handleImageLoaded,\n onError: this.props.onError,\n itemProp: itemProp,\n loading: loading,\n draggable: draggable\n })), this.addNoScript && /*#__PURE__*/_react.default.createElement(\"noscript\", {\n dangerouslySetInnerHTML: {\n __html: noscriptImg((0, _extends2.default)({\n alt: alt,\n title: title,\n loading: loading\n }, image, {\n imageVariants: imageVariants\n }))\n }\n }));\n }\n\n if (fixed) {\n var divStyle = (0, _extends2.default)({\n position: \"relative\",\n overflow: \"hidden\",\n display: \"inline-block\",\n width: image.width,\n height: image.height\n }, style);\n\n if (style.display === \"inherit\") {\n delete divStyle.display;\n }\n\n return /*#__PURE__*/_react.default.createElement(Tag, {\n className: (className ? className : \"\") + \" gatsby-image-wrapper\",\n style: divStyle,\n ref: this.handleRef,\n key: \"fixed-\" + JSON.stringify(image.srcSet)\n }, bgColor && /*#__PURE__*/_react.default.createElement(Tag, {\n \"aria-hidden\": true,\n title: title,\n style: (0, _extends2.default)({\n backgroundColor: bgColor,\n width: image.width,\n opacity: !this.state.imgLoaded ? 1 : 0,\n height: image.height\n }, shouldFadeIn && delayHideStyle)\n }), image.base64 && /*#__PURE__*/_react.default.createElement(Placeholder, {\n ariaHidden: true,\n ref: this.placeholderRef,\n src: image.base64,\n spreadProps: placeholderImageProps,\n imageVariants: imageVariants,\n generateSources: generateBase64Sources\n }), image.tracedSVG && /*#__PURE__*/_react.default.createElement(Placeholder, {\n ariaHidden: true,\n ref: this.placeholderRef,\n src: image.tracedSVG,\n spreadProps: placeholderImageProps,\n imageVariants: imageVariants,\n generateSources: generateTracedSVGSources\n }), this.state.isVisible && /*#__PURE__*/_react.default.createElement(\"picture\", null, generateImageSources(imageVariants), /*#__PURE__*/_react.default.createElement(Img, {\n alt: alt,\n title: title,\n width: image.width,\n height: image.height,\n sizes: image.sizes,\n src: image.src,\n crossOrigin: this.props.crossOrigin,\n srcSet: image.srcSet,\n style: imageStyle,\n ref: this.imageRef,\n onLoad: this.handleImageLoaded,\n onError: this.props.onError,\n itemProp: itemProp,\n loading: loading,\n draggable: draggable\n })), this.addNoScript && /*#__PURE__*/_react.default.createElement(\"noscript\", {\n dangerouslySetInnerHTML: {\n __html: noscriptImg((0, _extends2.default)({\n alt: alt,\n title: title,\n loading: loading\n }, image, {\n imageVariants: imageVariants\n }))\n }\n }));\n }\n\n return null;\n };\n\n return Image;\n}(_react.default.Component);\n\nImage.defaultProps = {\n fadeIn: true,\n durationFadeIn: 500,\n alt: \"\",\n Tag: \"div\",\n // We set it to `lazy` by default because it's best to default to a performant\n // setting and let the user \"opt out\" to `eager`\n loading: \"lazy\"\n};\n\nvar fixedObject = _propTypes.default.shape({\n width: _propTypes.default.number.isRequired,\n height: _propTypes.default.number.isRequired,\n src: _propTypes.default.string.isRequired,\n srcSet: _propTypes.default.string.isRequired,\n base64: _propTypes.default.string,\n tracedSVG: _propTypes.default.string,\n srcWebp: _propTypes.default.string,\n srcSetWebp: _propTypes.default.string,\n media: _propTypes.default.string\n});\n\nvar fluidObject = _propTypes.default.shape({\n aspectRatio: _propTypes.default.number.isRequired,\n src: _propTypes.default.string.isRequired,\n srcSet: _propTypes.default.string.isRequired,\n sizes: _propTypes.default.string.isRequired,\n base64: _propTypes.default.string,\n tracedSVG: _propTypes.default.string,\n srcWebp: _propTypes.default.string,\n srcSetWebp: _propTypes.default.string,\n media: _propTypes.default.string,\n maxWidth: _propTypes.default.number,\n maxHeight: _propTypes.default.number\n});\n\nfunction requireFixedOrFluid(originalPropTypes) {\n return function (props, propName, componentName) {\n var _PropTypes$checkPropT;\n\n if (!props.fixed && !props.fluid) {\n throw new Error(\"The prop `fluid` or `fixed` is marked as required in `\" + componentName + \"`, but their values are both `undefined`.\");\n }\n\n _propTypes.default.checkPropTypes((_PropTypes$checkPropT = {}, _PropTypes$checkPropT[propName] = originalPropTypes, _PropTypes$checkPropT), props, \"prop\", componentName);\n };\n} // If you modify these propTypes, please don't forget to update following files as well:\n// https://github.com/gatsbyjs/gatsby/blob/master/packages/gatsby-image/index.d.ts\n// https://github.com/gatsbyjs/gatsby/blob/master/packages/gatsby-image/README.md#gatsby-image-props\n// https://github.com/gatsbyjs/gatsby/blob/master/docs/docs/gatsby-image.md#gatsby-image-props\n\n\nImage.propTypes = {\n resolutions: fixedObject,\n sizes: fluidObject,\n fixed: requireFixedOrFluid(_propTypes.default.oneOfType([fixedObject, _propTypes.default.arrayOf(fixedObject)])),\n fluid: requireFixedOrFluid(_propTypes.default.oneOfType([fluidObject, _propTypes.default.arrayOf(fluidObject)])),\n fadeIn: _propTypes.default.bool,\n durationFadeIn: _propTypes.default.number,\n title: _propTypes.default.string,\n alt: _propTypes.default.string,\n className: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.object]),\n // Support Glamor's css prop.\n critical: _propTypes.default.bool,\n crossOrigin: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.bool]),\n style: _propTypes.default.object,\n imgStyle: _propTypes.default.object,\n placeholderStyle: _propTypes.default.object,\n placeholderClassName: _propTypes.default.string,\n backgroundColor: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.bool]),\n onLoad: _propTypes.default.func,\n onError: _propTypes.default.func,\n onStartLoad: _propTypes.default.func,\n Tag: _propTypes.default.string,\n itemProp: _propTypes.default.string,\n loading: _propTypes.default.oneOf([\"auto\", \"lazy\", \"eager\"]),\n draggable: _propTypes.default.bool\n};\nvar _default = Image;\nexports.default = _default;",null,"\"use strict\";\n\nvar objectAssign = require('object-assign');\nvar getImageUrl = require('./getImageUrl');\nmodule.exports = function (h, serializerOpts) {\n var serializeOptions = serializerOpts || {\n useDashedStyles: false // Low-level block serializer\n };\n function BlockSerializer(props) {\n var node = props.node,\n serializers = props.serializers,\n options = props.options,\n isInline = props.isInline,\n children = props.children;\n var blockType = node._type;\n var serializer = serializers.types[blockType];\n if (!serializer) {\n throw new Error(\"Unknown block type \\\"\".concat(blockType, \"\\\", please specify a serializer for it in the `serializers.types` prop\"));\n }\n return h(serializer, {\n node: node,\n options: options,\n isInline: isInline\n }, children);\n } // Low-level span serializer\n\n function SpanSerializer(props) {\n var _props$node = props.node,\n mark = _props$node.mark,\n children = _props$node.children;\n var isPlain = typeof mark === 'string';\n var markType = isPlain ? mark : mark._type;\n var serializer = props.serializers.marks[markType];\n if (!serializer) {\n // @todo Revert back to throwing errors?\n // eslint-disable-next-line no-console\n console.warn(\"Unknown mark type \\\"\".concat(markType, \"\\\", please specify a serializer for it in the `serializers.marks` prop\"));\n return h(props.serializers.markFallback, null, children);\n }\n return h(serializer, props.node, children);\n } // Low-level list serializer\n\n function ListSerializer(props) {\n var tag = props.type === 'bullet' ? 'ul' : 'ol';\n return h(tag, null, props.children);\n } // Low-level list item serializer\n\n function ListItemSerializer(props) {\n var children = !props.node.style || props.node.style === 'normal' ?\n // Don't wrap plain text in paragraphs inside of a list item\n props.children :\n // But wrap any other style in whatever the block serializer says to use\n h(props.serializers.types.block, props, props.children);\n return h('li', null, children);\n } // Renderer of an actual block of type `block`. Confusing, we know.\n\n function BlockTypeSerializer(props) {\n var style = props.node.style || 'normal';\n if (/^h\\d/.test(style)) {\n return h(style, null, props.children);\n }\n return style === 'blockquote' ? h('blockquote', null, props.children) : h('p', null, props.children);\n } // Serializers for things that can be directly attributed to a tag without any props\n // We use partial application to do this, passing the tag name as the first argument\n\n function RawMarkSerializer(tag, props) {\n return h(tag, null, props.children);\n }\n function UnderlineSerializer(props) {\n var style = serializeOptions.useDashedStyles ? {\n 'text-decoration': 'underline'\n } : {\n textDecoration: 'underline'\n };\n return h('span', {\n style: style\n }, props.children);\n }\n function StrikeThroughSerializer(props) {\n return h('del', null, props.children);\n }\n function LinkSerializer(props) {\n return h('a', {\n href: props.mark.href\n }, props.children);\n }\n function ImageSerializer(props) {\n if (!props.node.asset) {\n return null;\n }\n var img = h('img', {\n src: getImageUrl(props)\n });\n return props.isInline ? img : h('figure', null, img);\n } // Serializer that recursively calls itself, producing a hyperscript tree of spans\n\n function serializeSpan(span, serializers, index, options) {\n if (span === '\\n' && serializers.hardBreak) {\n return h(serializers.hardBreak, {\n key: \"hb-\".concat(index)\n });\n }\n if (typeof span === 'string') {\n return serializers.text ? h(serializers.text, {\n key: \"text-\".concat(index)\n }, span) : span;\n }\n var children;\n if (span.children) {\n children = {\n children: span.children.map(function (child, i) {\n return options.serializeNode(child, i, span.children, true);\n })\n };\n }\n var serializedNode = objectAssign({}, span, children);\n return h(serializers.span, {\n key: span._key || \"span-\".concat(index),\n node: serializedNode,\n serializers: serializers\n });\n }\n var HardBreakSerializer = function HardBreakSerializer() {\n return h('br');\n };\n var defaultMarkSerializers = {\n strong: RawMarkSerializer.bind(null, 'strong'),\n em: RawMarkSerializer.bind(null, 'em'),\n code: RawMarkSerializer.bind(null, 'code'),\n underline: UnderlineSerializer,\n 'strike-through': StrikeThroughSerializer,\n link: LinkSerializer\n };\n var defaultSerializers = {\n // Common overrides\n types: {\n block: BlockTypeSerializer,\n image: ImageSerializer\n },\n marks: defaultMarkSerializers,\n // Less common overrides\n list: ListSerializer,\n listItem: ListItemSerializer,\n block: BlockSerializer,\n span: SpanSerializer,\n hardBreak: HardBreakSerializer,\n // Container element\n container: 'div',\n // When we can't resolve the mark properly, use this renderer as the container\n markFallback: 'span',\n // Allow overriding text renderer, but leave undefined to just use plain strings by default\n text: undefined,\n // Empty nodes (React uses null, hyperscript with empty strings)\n empty: ''\n };\n return {\n defaultSerializers: defaultSerializers,\n serializeSpan: serializeSpan\n };\n};","'use strict';\n\nvar React = require('react');\nvar _require = require('@sanity/block-content-to-hyperscript/internals'),\n getSerializers = _require.getSerializers;\nvar renderNode = React.createElement;\nvar _getSerializers = getSerializers(renderNode),\n defaultSerializers = _getSerializers.defaultSerializers,\n serializeSpan = _getSerializers.serializeSpan;\nmodule.exports = {\n serializeSpan: serializeSpan,\n serializers: defaultSerializers,\n renderProps: {\n nestMarks: true\n }\n};","module.exports = require('./lib/internals');",null,"'use strict';\n\nvar required = require('requires-port'),\n qs = require('querystringify'),\n controlOrWhitespace = /^[\\x00-\\x20\\u00a0\\u1680\\u2000-\\u200a\\u2028\\u2029\\u202f\\u205f\\u3000\\ufeff]+/,\n CRHTLF = /[\\n\\r\\t]/g,\n slashes = /^[A-Za-z][A-Za-z0-9+-.]*:\\/\\//,\n port = /:\\d+$/,\n protocolre = /^([a-z][a-z0-9.+-]*:)?(\\/\\/)?([\\\\/]+)?([\\S\\s]*)/i,\n windowsDriveLetter = /^[a-zA-Z]:/;\n\n/**\n * Remove control characters and whitespace from the beginning of a string.\n *\n * @param {Object|String} str String to trim.\n * @returns {String} A new string representing `str` stripped of control\n * characters and whitespace from its beginning.\n * @public\n */\nfunction trimLeft(str) {\n return (str ? str : '').toString().replace(controlOrWhitespace, '');\n}\n\n/**\n * These are the parse rules for the URL parser, it informs the parser\n * about:\n *\n * 0. The char it Needs to parse, if it's a string it should be done using\n * indexOf, RegExp using exec and NaN means set as current value.\n * 1. The property we should set when parsing this value.\n * 2. Indication if it's backwards or forward parsing, when set as number it's\n * the value of extra chars that should be split off.\n * 3. Inherit from location if non existing in the parser.\n * 4. `toLowerCase` the resulting value.\n */\nvar rules = [['#', 'hash'],\n// Extract from the back.\n['?', 'query'],\n// Extract from the back.\nfunction sanitize(address, url) {\n // Sanitize what is left of the address\n return isSpecial(url.protocol) ? address.replace(/\\\\/g, '/') : address;\n}, ['/', 'pathname'],\n// Extract from the back.\n['@', 'auth', 1],\n// Extract from the front.\n[NaN, 'host', undefined, 1, 1],\n// Set left over value.\n[/:(\\d*)$/, 'port', undefined, 1],\n// RegExp the back.\n[NaN, 'hostname', undefined, 1, 1] // Set left over.\n];\n\n/**\n * These properties should not be copied or inherited from. This is only needed\n * for all non blob URL's as a blob URL does not include a hash, only the\n * origin.\n *\n * @type {Object}\n * @private\n */\nvar ignore = {\n hash: 1,\n query: 1\n};\n\n/**\n * The location object differs when your code is loaded through a normal page,\n * Worker or through a worker using a blob. And with the blobble begins the\n * trouble as the location object will contain the URL of the blob, not the\n * location of the page where our code is loaded in. The actual origin is\n * encoded in the `pathname` so we can thankfully generate a good \"default\"\n * location from it so we can generate proper relative URL's again.\n *\n * @param {Object|String} loc Optional default location object.\n * @returns {Object} lolcation object.\n * @public\n */\nfunction lolcation(loc) {\n var globalVar;\n if (typeof window !== 'undefined') globalVar = window;else if (typeof global !== 'undefined') globalVar = global;else if (typeof self !== 'undefined') globalVar = self;else globalVar = {};\n var location = globalVar.location || {};\n loc = loc || location;\n var finaldestination = {},\n type = typeof loc,\n key;\n if ('blob:' === loc.protocol) {\n finaldestination = new Url(unescape(loc.pathname), {});\n } else if ('string' === type) {\n finaldestination = new Url(loc, {});\n for (key in ignore) delete finaldestination[key];\n } else if ('object' === type) {\n for (key in loc) {\n if (key in ignore) continue;\n finaldestination[key] = loc[key];\n }\n if (finaldestination.slashes === undefined) {\n finaldestination.slashes = slashes.test(loc.href);\n }\n }\n return finaldestination;\n}\n\n/**\n * Check whether a protocol scheme is special.\n *\n * @param {String} The protocol scheme of the URL\n * @return {Boolean} `true` if the protocol scheme is special, else `false`\n * @private\n */\nfunction isSpecial(scheme) {\n return scheme === 'file:' || scheme === 'ftp:' || scheme === 'http:' || scheme === 'https:' || scheme === 'ws:' || scheme === 'wss:';\n}\n\n/**\n * @typedef ProtocolExtract\n * @type Object\n * @property {String} protocol Protocol matched in the URL, in lowercase.\n * @property {Boolean} slashes `true` if protocol is followed by \"//\", else `false`.\n * @property {String} rest Rest of the URL that is not part of the protocol.\n */\n\n/**\n * Extract protocol information from a URL with/without double slash (\"//\").\n *\n * @param {String} address URL we want to extract from.\n * @param {Object} location\n * @return {ProtocolExtract} Extracted information.\n * @private\n */\nfunction extractProtocol(address, location) {\n address = trimLeft(address);\n address = address.replace(CRHTLF, '');\n location = location || {};\n var match = protocolre.exec(address);\n var protocol = match[1] ? match[1].toLowerCase() : '';\n var forwardSlashes = !!match[2];\n var otherSlashes = !!match[3];\n var slashesCount = 0;\n var rest;\n if (forwardSlashes) {\n if (otherSlashes) {\n rest = match[2] + match[3] + match[4];\n slashesCount = match[2].length + match[3].length;\n } else {\n rest = match[2] + match[4];\n slashesCount = match[2].length;\n }\n } else {\n if (otherSlashes) {\n rest = match[3] + match[4];\n slashesCount = match[3].length;\n } else {\n rest = match[4];\n }\n }\n if (protocol === 'file:') {\n if (slashesCount >= 2) {\n rest = rest.slice(2);\n }\n } else if (isSpecial(protocol)) {\n rest = match[4];\n } else if (protocol) {\n if (forwardSlashes) {\n rest = rest.slice(2);\n }\n } else if (slashesCount >= 2 && isSpecial(location.protocol)) {\n rest = match[4];\n }\n return {\n protocol: protocol,\n slashes: forwardSlashes || isSpecial(protocol),\n slashesCount: slashesCount,\n rest: rest\n };\n}\n\n/**\n * Resolve a relative URL pathname against a base URL pathname.\n *\n * @param {String} relative Pathname of the relative URL.\n * @param {String} base Pathname of the base URL.\n * @return {String} Resolved pathname.\n * @private\n */\nfunction resolve(relative, base) {\n if (relative === '') return base;\n var path = (base || '/').split('/').slice(0, -1).concat(relative.split('/')),\n i = path.length,\n last = path[i - 1],\n unshift = false,\n up = 0;\n while (i--) {\n if (path[i] === '.') {\n path.splice(i, 1);\n } else if (path[i] === '..') {\n path.splice(i, 1);\n up++;\n } else if (up) {\n if (i === 0) unshift = true;\n path.splice(i, 1);\n up--;\n }\n }\n if (unshift) path.unshift('');\n if (last === '.' || last === '..') path.push('');\n return path.join('/');\n}\n\n/**\n * The actual URL instance. Instead of returning an object we've opted-in to\n * create an actual constructor as it's much more memory efficient and\n * faster and it pleases my OCD.\n *\n * It is worth noting that we should not use `URL` as class name to prevent\n * clashes with the global URL instance that got introduced in browsers.\n *\n * @constructor\n * @param {String} address URL we want to parse.\n * @param {Object|String} [location] Location defaults for relative paths.\n * @param {Boolean|Function} [parser] Parser for the query string.\n * @private\n */\nfunction Url(address, location, parser) {\n address = trimLeft(address);\n address = address.replace(CRHTLF, '');\n if (!(this instanceof Url)) {\n return new Url(address, location, parser);\n }\n var relative,\n extracted,\n parse,\n instruction,\n index,\n key,\n instructions = rules.slice(),\n type = typeof location,\n url = this,\n i = 0;\n\n //\n // The following if statements allows this module two have compatibility with\n // 2 different API:\n //\n // 1. Node.js's `url.parse` api which accepts a URL, boolean as arguments\n // where the boolean indicates that the query string should also be parsed.\n //\n // 2. The `URL` interface of the browser which accepts a URL, object as\n // arguments. The supplied object will be used as default values / fall-back\n // for relative paths.\n //\n if ('object' !== type && 'string' !== type) {\n parser = location;\n location = null;\n }\n if (parser && 'function' !== typeof parser) parser = qs.parse;\n location = lolcation(location);\n\n //\n // Extract protocol information before running the instructions.\n //\n extracted = extractProtocol(address || '', location);\n relative = !extracted.protocol && !extracted.slashes;\n url.slashes = extracted.slashes || relative && location.slashes;\n url.protocol = extracted.protocol || location.protocol || '';\n address = extracted.rest;\n\n //\n // When the authority component is absent the URL starts with a path\n // component.\n //\n if (extracted.protocol === 'file:' && (extracted.slashesCount !== 2 || windowsDriveLetter.test(address)) || !extracted.slashes && (extracted.protocol || extracted.slashesCount < 2 || !isSpecial(url.protocol))) {\n instructions[3] = [/(.*)/, 'pathname'];\n }\n for (; i < instructions.length; i++) {\n instruction = instructions[i];\n if (typeof instruction === 'function') {\n address = instruction(address, url);\n continue;\n }\n parse = instruction[0];\n key = instruction[1];\n if (parse !== parse) {\n url[key] = address;\n } else if ('string' === typeof parse) {\n index = parse === '@' ? address.lastIndexOf(parse) : address.indexOf(parse);\n if (~index) {\n if ('number' === typeof instruction[2]) {\n url[key] = address.slice(0, index);\n address = address.slice(index + instruction[2]);\n } else {\n url[key] = address.slice(index);\n address = address.slice(0, index);\n }\n }\n } else if (index = parse.exec(address)) {\n url[key] = index[1];\n address = address.slice(0, index.index);\n }\n url[key] = url[key] || (relative && instruction[3] ? location[key] || '' : '');\n\n //\n // Hostname, host and protocol should be lowercased so they can be used to\n // create a proper `origin`.\n //\n if (instruction[4]) url[key] = url[key].toLowerCase();\n }\n\n //\n // Also parse the supplied query string in to an object. If we're supplied\n // with a custom parser as function use that instead of the default build-in\n // parser.\n //\n if (parser) url.query = parser(url.query);\n\n //\n // If the URL is relative, resolve the pathname against the base URL.\n //\n if (relative && location.slashes && url.pathname.charAt(0) !== '/' && (url.pathname !== '' || location.pathname !== '')) {\n url.pathname = resolve(url.pathname, location.pathname);\n }\n\n //\n // Default to a / for pathname if none exists. This normalizes the URL\n // to always have a /\n //\n if (url.pathname.charAt(0) !== '/' && isSpecial(url.protocol)) {\n url.pathname = '/' + url.pathname;\n }\n\n //\n // We should not add port numbers if they are already the default port number\n // for a given protocol. As the host also contains the port number we're going\n // override it with the hostname which contains no port number.\n //\n if (!required(url.port, url.protocol)) {\n url.host = url.hostname;\n url.port = '';\n }\n\n //\n // Parse down the `auth` for the username and password.\n //\n url.username = url.password = '';\n if (url.auth) {\n index = url.auth.indexOf(':');\n if (~index) {\n url.username = url.auth.slice(0, index);\n url.username = encodeURIComponent(decodeURIComponent(url.username));\n url.password = url.auth.slice(index + 1);\n url.password = encodeURIComponent(decodeURIComponent(url.password));\n } else {\n url.username = encodeURIComponent(decodeURIComponent(url.auth));\n }\n url.auth = url.password ? url.username + ':' + url.password : url.username;\n }\n url.origin = url.protocol !== 'file:' && isSpecial(url.protocol) && url.host ? url.protocol + '//' + url.host : 'null';\n\n //\n // The href is just the compiled result.\n //\n url.href = url.toString();\n}\n\n/**\n * This is convenience method for changing properties in the URL instance to\n * insure that they all propagate correctly.\n *\n * @param {String} part Property we need to adjust.\n * @param {Mixed} value The newly assigned value.\n * @param {Boolean|Function} fn When setting the query, it will be the function\n * used to parse the query.\n * When setting the protocol, double slash will be\n * removed from the final url if it is true.\n * @returns {URL} URL instance for chaining.\n * @public\n */\nfunction set(part, value, fn) {\n var url = this;\n switch (part) {\n case 'query':\n if ('string' === typeof value && value.length) {\n value = (fn || qs.parse)(value);\n }\n url[part] = value;\n break;\n case 'port':\n url[part] = value;\n if (!required(value, url.protocol)) {\n url.host = url.hostname;\n url[part] = '';\n } else if (value) {\n url.host = url.hostname + ':' + value;\n }\n break;\n case 'hostname':\n url[part] = value;\n if (url.port) value += ':' + url.port;\n url.host = value;\n break;\n case 'host':\n url[part] = value;\n if (port.test(value)) {\n value = value.split(':');\n url.port = value.pop();\n url.hostname = value.join(':');\n } else {\n url.hostname = value;\n url.port = '';\n }\n break;\n case 'protocol':\n url.protocol = value.toLowerCase();\n url.slashes = !fn;\n break;\n case 'pathname':\n case 'hash':\n if (value) {\n var char = part === 'pathname' ? '/' : '#';\n url[part] = value.charAt(0) !== char ? char + value : value;\n } else {\n url[part] = value;\n }\n break;\n case 'username':\n case 'password':\n url[part] = encodeURIComponent(value);\n break;\n case 'auth':\n var index = value.indexOf(':');\n if (~index) {\n url.username = value.slice(0, index);\n url.username = encodeURIComponent(decodeURIComponent(url.username));\n url.password = value.slice(index + 1);\n url.password = encodeURIComponent(decodeURIComponent(url.password));\n } else {\n url.username = encodeURIComponent(decodeURIComponent(value));\n }\n }\n for (var i = 0; i < rules.length; i++) {\n var ins = rules[i];\n if (ins[4]) url[ins[1]] = url[ins[1]].toLowerCase();\n }\n url.auth = url.password ? url.username + ':' + url.password : url.username;\n url.origin = url.protocol !== 'file:' && isSpecial(url.protocol) && url.host ? url.protocol + '//' + url.host : 'null';\n url.href = url.toString();\n return url;\n}\n\n/**\n * Transform the properties back in to a valid and full URL string.\n *\n * @param {Function} stringify Optional query stringify function.\n * @returns {String} Compiled version of the URL.\n * @public\n */\nfunction toString(stringify) {\n if (!stringify || 'function' !== typeof stringify) stringify = qs.stringify;\n var query,\n url = this,\n host = url.host,\n protocol = url.protocol;\n if (protocol && protocol.charAt(protocol.length - 1) !== ':') protocol += ':';\n var result = protocol + (url.protocol && url.slashes || isSpecial(url.protocol) ? '//' : '');\n if (url.username) {\n result += url.username;\n if (url.password) result += ':' + url.password;\n result += '@';\n } else if (url.password) {\n result += ':' + url.password;\n result += '@';\n } else if (url.protocol !== 'file:' && isSpecial(url.protocol) && !host && url.pathname !== '/') {\n //\n // Add back the empty userinfo, otherwise the original invalid URL\n // might be transformed into a valid one with `url.pathname` as host.\n //\n result += '@';\n }\n\n //\n // Trailing colon is removed from `url.host` when it is parsed. If it still\n // ends with a colon, then add back the trailing colon that was removed. This\n // prevents an invalid URL from being transformed into a valid one.\n //\n if (host[host.length - 1] === ':' || port.test(url.hostname) && !url.port) {\n host += ':';\n }\n result += host + url.pathname;\n query = 'object' === typeof url.query ? stringify(url.query) : url.query;\n if (query) result += '?' !== query.charAt(0) ? '?' + query : query;\n if (url.hash) result += url.hash;\n return result;\n}\nUrl.prototype = {\n set: set,\n toString: toString\n};\n\n//\n// Expose the URL parser and some additional properties that might be useful for\n// others or testing.\n//\nUrl.extractProtocol = extractProtocol;\nUrl.location = lolcation;\nUrl.trimLeft = trimLeft;\nUrl.qs = qs;\nmodule.exports = Url;","var baseUrl = 'https://docs.sanity.io/help/';\nmodule.exports = function generateHelpUrl(slug) {\n return baseUrl + slug;\n};","/**\n * This is the web browser implementation of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = require('./debug');\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = 'undefined' != typeof chrome && 'undefined' != typeof chrome.storage ? chrome.storage.local : localstorage();\n\n/**\n * Colors.\n */\n\nexports.colors = ['lightseagreen', 'forestgreen', 'goldenrod', 'dodgerblue', 'darkorchid', 'crimson'];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\nfunction useColors() {\n // NB: In an Electron preload script, document will be defined but not fully\n // initialized. Since we know we're in Chrome, we'll just detect this case\n // explicitly\n if (typeof window !== 'undefined' && window.process && window.process.type === 'renderer') {\n return true;\n }\n\n // is webkit? http://stackoverflow.com/a/16459606/376773\n // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n return typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance ||\n // is firebug? http://stackoverflow.com/a/398120/376773\n typeof window !== 'undefined' && window.console && (window.console.firebug || window.console.exception && window.console.table) ||\n // is firefox >= v31?\n // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31 ||\n // double check webkit in userAgent just in case we are in a worker\n typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/);\n}\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nexports.formatters.j = function (v) {\n try {\n return JSON.stringify(v);\n } catch (err) {\n return '[UnexpectedJSONParseError]: ' + err.message;\n }\n};\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n var useColors = this.useColors;\n args[0] = (useColors ? '%c' : '') + this.namespace + (useColors ? ' %c' : ' ') + args[0] + (useColors ? '%c ' : ' ') + '+' + exports.humanize(this.diff);\n if (!useColors) return;\n var c = 'color: ' + this.color;\n args.splice(1, 0, c, 'color: inherit');\n\n // the final \"%c\" is somewhat tricky, because there could be other\n // arguments passed either before or after the %c, so we need to\n // figure out the correct index to insert the CSS into\n var index = 0;\n var lastC = 0;\n args[0].replace(/%[a-zA-Z%]/g, function (match) {\n if ('%%' === match) return;\n index++;\n if ('%c' === match) {\n // we only are interested in the *last* %c\n // (the user may have provided their own)\n lastC = index;\n }\n });\n args.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.log()` when available.\n * No-op when `console.log` is not a \"function\".\n *\n * @api public\n */\n\nfunction log() {\n // this hackery is required for IE8/9, where\n // the `console.log` function doesn't have 'apply'\n return 'object' === typeof console && console.log && Function.prototype.apply.call(console.log, console, arguments);\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\n\nfunction save(namespaces) {\n try {\n if (null == namespaces) {\n exports.storage.removeItem('debug');\n } else {\n exports.storage.debug = namespaces;\n }\n } catch (e) {}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n var r;\n try {\n r = exports.storage.debug;\n } catch (e) {}\n\n // If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n if (!r && typeof process !== 'undefined' && 'env' in process) {\n r = process.env.DEBUG;\n }\n return r;\n}\n\n/**\n * Enable namespaces listed in `localStorage.debug` initially.\n */\n\nexports.enable(load());\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n try {\n return window.localStorage;\n } catch (e) {}\n}","'use strict';\n\n/**\n * Check if we're required to add a port number.\n *\n * @see https://url.spec.whatwg.org/#default-port\n * @param {Number|String} port Port number we need to check\n * @param {String} protocol Protocol we need to check against.\n * @returns {Boolean} Is it a default port for the given protocol\n * @api private\n */\nmodule.exports = function required(port, protocol) {\n protocol = protocol.split(':')[0];\n port = +port;\n if (!port) return false;\n switch (protocol) {\n case 'http':\n case 'ws':\n return port !== 80;\n case 'https':\n case 'wss':\n return port !== 443;\n case 'ftp':\n return port !== 21;\n case 'gopher':\n return port !== 70;\n case 'file':\n return false;\n }\n return port !== 0;\n};","\"use strict\";\n\nvar generateHelpUrl = require('@sanity/generate-help-url');\nvar urlBuilder = require('@sanity/image-url');\nvar objectAssign = require('object-assign');\nvar enc = encodeURIComponent;\nvar materializeError = \"You must either:\\n - Pass `projectId` and `dataset` to the block renderer\\n - Materialize images to include the `url` field.\\n\\nFor more information, see \".concat(generateHelpUrl('block-content-image-materializing'));\nvar getQueryString = function getQueryString(options) {\n var query = options.imageOptions;\n var keys = Object.keys(query);\n if (!keys.length) {\n return '';\n }\n var params = keys.map(function (key) {\n return \"\".concat(enc(key), \"=\").concat(enc(query[key]));\n });\n return \"?\".concat(params.join('&'));\n};\nvar buildUrl = function buildUrl(props) {\n var node = props.node,\n options = props.options;\n var projectId = options.projectId,\n dataset = options.dataset;\n var asset = node.asset;\n if (!asset) {\n throw new Error('Image does not have required `asset` property');\n }\n if (asset.url) {\n return asset.url + getQueryString(options);\n }\n if (!projectId || !dataset) {\n throw new Error(materializeError);\n }\n var ref = asset._ref;\n if (!ref) {\n throw new Error('Invalid image reference in block, no `_ref` found on `asset`');\n }\n return urlBuilder(objectAssign({\n projectId: projectId,\n dataset: dataset\n }, options.imageOptions || {})).image(node).toString();\n};\nmodule.exports = buildUrl;","\"use strict\";\n\nvar objectAssign = require('object-assign');\nvar buildMarksTree = require('./buildMarksTree');\nvar nestLists = require('./nestLists');\nvar generateKeys = require('./generateKeys');\nvar mergeSerializers = require('./mergeSerializers'); // Properties to extract from props and pass to serializers as options\n\nvar optionProps = ['projectId', 'dataset', 'imageOptions'];\nvar isDefined = function isDefined(val) {\n return typeof val !== 'undefined';\n};\nvar defaults = {\n imageOptions: {}\n};\nfunction blocksToNodes(h, properties, defaultSerializers, serializeSpan) {\n var props = objectAssign({}, defaults, properties);\n var rawBlocks = Array.isArray(props.blocks) ? props.blocks : [props.blocks];\n var keyedBlocks = generateKeys(rawBlocks);\n var blocks = nestLists(keyedBlocks, props.listNestMode);\n var serializers = mergeSerializers(defaultSerializers, props.serializers || {});\n var options = optionProps.reduce(function (opts, key) {\n var value = props[key];\n if (isDefined(value)) {\n opts[key] = value;\n }\n return opts;\n }, {});\n function serializeNode(node, index, siblings, isInline) {\n if (isList(node)) {\n return serializeList(node);\n }\n if (isListItem(node)) {\n return serializeListItem(node, findListItemIndex(node, siblings));\n }\n if (isSpan(node)) {\n return serializeSpan(node, serializers, index, {\n serializeNode: serializeNode\n });\n }\n return serializeBlock(node, index, isInline);\n }\n function findListItemIndex(node, siblings) {\n var index = 0;\n for (var i = 0; i < siblings.length; i++) {\n if (siblings[i] === node) {\n return index;\n }\n if (!isListItem(siblings[i])) {\n continue;\n }\n index++;\n }\n return index;\n }\n function serializeBlock(block, index, isInline) {\n var tree = buildMarksTree(block);\n var children = tree.map(function (node, i, siblings) {\n return serializeNode(node, i, siblings, true);\n });\n var blockProps = {\n key: block._key || \"block-\".concat(index),\n node: block,\n isInline: isInline,\n serializers: serializers,\n options: options\n };\n return h(serializers.block, blockProps, children);\n }\n function serializeListItem(block, index) {\n var key = block._key;\n var tree = buildMarksTree(block);\n var children = tree.map(serializeNode);\n return h(serializers.listItem, {\n node: block,\n serializers: serializers,\n index: index,\n key: key,\n options: options\n }, children);\n }\n function serializeList(list) {\n var type = list.listItem;\n var level = list.level;\n var key = list._key;\n var children = list.children.map(serializeNode);\n return h(serializers.list, {\n key: key,\n level: level,\n type: type,\n options: options\n }, children);\n } // Default to false, so `undefined` will evaluate to the default here\n\n var renderContainerOnSingleChild = Boolean(props.renderContainerOnSingleChild);\n var nodes = blocks.map(serializeNode);\n if (renderContainerOnSingleChild || nodes.length > 1) {\n var containerProps = props.className ? {\n className: props.className\n } : {};\n return h(serializers.container, containerProps, nodes);\n }\n if (nodes[0]) {\n return nodes[0];\n }\n return typeof serializers.empty === 'function' ? h(serializers.empty) : serializers.empty;\n}\nfunction isList(block) {\n return block._type === 'list' && block.listItem;\n}\nfunction isListItem(block) {\n return block._type === 'block' && block.listItem;\n}\nfunction isSpan(block) {\n return typeof block === 'string' || block.marks || block._type === 'span';\n}\nmodule.exports = blocksToNodes;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\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);\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\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} /* eslint-disable max-len */\n\n/*\n * React component for Vimeo Loading Spinner created and rendered.\n * SVG Path is used for creating the spinner.\n */\nvar _class = function (_React$Component) {\n _inherits(_class, _React$Component);\n function _class() {\n _classCallCheck(this, _class);\n return _possibleConstructorReturn(this, (_class.__proto__ || Object.getPrototypeOf(_class)).apply(this, arguments));\n }\n _createClass(_class, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement('div', {\n className: 'vimeo-loading'\n }, _react2.default.createElement('svg', {\n height: '32',\n viewBox: '0 0 32 32',\n width: '32',\n xmlns: 'http://www.w3.org/2000/svg'\n }, _react2.default.createElement('path', {\n d: 'M16 0 A16 16 0 0 0 16 32 A16 16 0 0 0 16 0 M16 4 A12 12 0 0 1 16 28 A12 12 0 0 1 16 4',\n opacity: '.25'\n }), _react2.default.createElement('path', {\n d: 'M16 0 A16 16 0 0 1 32 16 L28 16 A12 12 0 0 0 16 4z'\n })));\n }\n }]);\n return _class;\n}(_react2.default.Component);\n_class.displayName = 'Spinner';\nexports.default = _class;\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\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 _propTypes = require('prop-types');\nvar _propTypes2 = _interopRequireDefault(_propTypes);\nvar _react = require('react');\nvar _react2 = _interopRequireDefault(_react);\nvar _keymirror = require('keymirror');\nvar _keymirror2 = _interopRequireDefault(_keymirror);\nvar _jsonp = require('jsonp');\nvar _jsonp2 = _interopRequireDefault(_jsonp);\nvar _debug = require('debug');\nvar _debug2 = _interopRequireDefault(_debug);\nvar _PlayButton = require('./Play-Button');\nvar _PlayButton2 = _interopRequireDefault(_PlayButton);\nvar _Spinner = require('./Spinner');\nvar _Spinner2 = _interopRequireDefault(_Spinner);\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\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}\nvar debug = (0, _debug2.default)('vimeo:player');\nvar noop = function noop() {};\nvar playerEvents = (0, _keymirror2.default)({\n cueChange: null,\n ended: null,\n loaded: null,\n pause: null,\n play: null,\n progress: null,\n seeked: null,\n textTrackChange: null,\n timeUpdate: null,\n volumeChange: null\n});\nfunction capitalize() {\n var str = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n return str.charAt(0).toUpperCase() + str.substring(1);\n}\nfunction getFuncForEvent(event, props) {\n return props['on' + capitalize(event)] || function () {};\n}\nfunction post(method, value, player, playerOrigin) {\n try {\n player.contentWindow.postMessage({\n method: method,\n value: value\n }, playerOrigin);\n } catch (err) {\n return err;\n }\n return null;\n}\nvar _class = function (_React$Component) {\n _inherits(_class, _React$Component);\n function _class() {\n var _ref;\n var _temp, _this, _ret;\n _classCallCheck(this, _class);\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = _class.__proto__ || Object.getPrototypeOf(_class)).call.apply(_ref, [this].concat(args))), _this), _this.state = {\n imageLoaded: false,\n playerOrigin: '*',\n showingVideo: _this.props.autoplay,\n thumb: null\n }, _this.addMessageListener = function () {\n var _context;\n var addEventListener = typeof window !== 'undefined' ? (_context = window).addEventListener.bind(_context) : noop;\n addEventListener('message', _this.onMessage);\n }, _this.onError = function (err) {\n if (_this.props.onError) {\n _this.props.onError(err);\n }\n throw err;\n }, _this.onMessage = function (_ref2) {\n var origin = _ref2.origin,\n data = _ref2.data;\n var onReady = _this.props.onReady;\n var playerOrigin = _this.state.playerOrigin;\n if (playerOrigin === '*') {\n _this.setState({\n playerOrigin: origin\n });\n }\n\n // Handle messages from the vimeo player only\n if (!/^https?:\\/\\/player.vimeo.com/.test(origin)) {\n return false;\n }\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (err) {\n debug('error parsing message', err);\n data = {\n event: ''\n };\n }\n }\n if (data.event === 'ready') {\n debug('player ready');\n _this.onReady(_this._player, playerOrigin === '*' ? origin : playerOrigin);\n return onReady(data);\n }\n if (!data.event) {\n // we get messages when the first event callbacks are added to the frame\n return;\n }\n debug('firing event: ', data.event);\n getFuncForEvent(data.event, _this.props)(data);\n }, _this.onReady = function (player, playerOrigin) {\n Object.keys(playerEvents).forEach(function (event) {\n var err = post('addEventListener', event.toLowerCase(), player, playerOrigin);\n if (err) {\n _this.onError(err);\n }\n });\n }, _this.playVideo = function (e) {\n e.preventDefault();\n _this.setState({\n showingVideo: true\n });\n }, _this.getIframeUrl = function () {\n var videoId = _this.props.videoId;\n var query = _this.getIframeUrlQuery();\n return '//player.vimeo.com/video/' + videoId + '?' + query;\n }, _this.getIframeUrlQuery = function () {\n var str = [];\n Object.keys(_this.props.playerOptions).forEach(function (key) {\n str.push(key + '=' + _this.props.playerOptions[key]);\n });\n return str.join('&');\n }, _this.fetchVimeoData = function () {\n if (_this.state.imageLoaded) {\n return;\n }\n var id = _this.props.videoId;\n (0, _jsonp2.default)('//vimeo.com/api/v2/video/' + id + '.json', {\n prefix: 'vimeo'\n }, function (err, res) {\n if (err) {\n debug('jsonp err: ', err.message);\n _this.onError(err);\n }\n debug('jsonp response', res);\n _this.setState({\n thumb: res[0].thumbnail_large,\n imageLoaded: true\n });\n });\n }, _this.renderImage = function () {\n if (_this.state.showingVideo || !_this.state.imageLoaded) {\n return;\n }\n var style = {\n backgroundImage: 'url(' + _this.state.thumb + ')',\n display: !_this.state.showingVideo ? 'block' : 'none',\n height: '100%',\n width: '100%'\n };\n var playButton = _this.props.playButton ? (0, _react.cloneElement)(_this.props.playButton, {\n onClick: _this.playVideo\n }) : _react2.default.createElement(_PlayButton2.default, {\n onClick: _this.playVideo\n });\n return _react2.default.createElement('div', {\n className: 'vimeo-image',\n style: style\n }, playButton);\n }, _this.renderIframe = function () {\n if (!_this.state.showingVideo) {\n return;\n }\n _this.addMessageListener();\n var embedVideoStyle = {\n display: _this.state.showingVideo ? 'block' : 'none',\n height: '100%',\n width: '100%'\n };\n return _react2.default.createElement('div', {\n className: 'vimeo-embed',\n style: embedVideoStyle\n }, _react2.default.createElement('iframe', {\n frameBorder: '0',\n ref: function ref(el) {\n _this._player = el;\n },\n src: _this.getIframeUrl()\n }));\n }, _this.renderLoading = function (imageLoaded, loadingElement) {\n if (imageLoaded) {\n return;\n }\n if (loadingElement) {\n return loadingElement;\n }\n return _react2.default.createElement(_Spinner2.default, null);\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n _createClass(_class, [{\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(nextProps) {\n if (nextProps.videoId !== this.props.videoId) {\n this.setState({\n thumb: null,\n imageLoaded: false,\n showingVideo: false\n });\n }\n }\n }, {\n key: 'componentDidMount',\n value: function componentDidMount() {\n this.fetchVimeoData();\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate() {\n this.fetchVimeoData();\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n var _context2;\n var removeEventListener = typeof window !== 'undefined' ? (_context2 = window).removeEventListener.bind(_context2) : noop;\n removeEventListener('message', this.onMessage);\n }\n }, {\n key: 'render',\n value: function render() {\n return _react2.default.createElement('div', {\n className: this.props.className\n }, this.renderLoading(this.state.imageLoaded, this.props.loading), this.renderImage(), this.renderIframe());\n }\n }]);\n return _class;\n}(_react2.default.Component);\n_class.displayName = 'Vimeo';\n_class.propTypes = {\n autoplay: _propTypes2.default.bool,\n className: _propTypes2.default.string,\n loading: _propTypes2.default.element,\n playButton: _propTypes2.default.node,\n playerOptions: _propTypes2.default.object,\n videoId: _propTypes2.default.string.isRequired,\n // event callbacks\n onCueChange: _propTypes2.default.func,\n onEnded: _propTypes2.default.func,\n onError: _propTypes2.default.func,\n onLoaded: _propTypes2.default.func,\n onPause: _propTypes2.default.func,\n onPlay: _propTypes2.default.func,\n onProgress: _propTypes2.default.func,\n onReady: _propTypes2.default.func,\n onSeeked: _propTypes2.default.func,\n onTextTrackChanged: _propTypes2.default.func,\n onTimeUpdate: _propTypes2.default.func,\n onVolumeChange: _propTypes2.default.func\n};\n_class.defaultProps = function () {\n var defaults = Object.keys(playerEvents).concat(['ready']).reduce(function (defaults, event) {\n defaults['on' + capitalize(event)] = noop;\n return defaults;\n }, {});\n defaults.className = 'vimeo';\n defaults.playerOptions = {\n autoplay: 1\n };\n defaults.autoplay = false;\n return defaults;\n}();\nexports.default = _class;\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\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 _propTypes = require('prop-types');\nvar _propTypes2 = _interopRequireDefault(_propTypes);\nvar _react = require('react');\nvar _react2 = _interopRequireDefault(_react);\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\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} /* eslint-disable max-len */\n\nvar _class = function (_React$Component) {\n _inherits(_class, _React$Component);\n function _class() {\n _classCallCheck(this, _class);\n return _possibleConstructorReturn(this, (_class.__proto__ || Object.getPrototypeOf(_class)).apply(this, arguments));\n }\n _createClass(_class, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement('button', {\n className: 'vimeo-play-button',\n onClick: this.props.onClick,\n type: 'button'\n }, _react2.default.createElement('svg', {\n version: '1.1',\n viewBox: '0 0 100 100',\n xmlns: 'http://www.w3.org/2000/svg'\n }, _react2.default.createElement('path', {\n d: 'M79.674,53.719c2.59-2.046,2.59-5.392,0-7.437L22.566,1.053C19.977-0.993,18,0.035,18,3.335v93.331c0,3.3,1.977,4.326,4.566,2.281L79.674,53.719z'\n })));\n }\n }]);\n return _class;\n}(_react2.default.Component);\n_class.displayName = 'PlayButton';\n_class.propTypes = {\n onClick: _propTypes2.default.func\n};\nexports.default = _class;\nmodule.exports = exports['default'];",null,"\"use strict\";\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n return _typeof(obj);\n}\nvar objectAssign = require('object-assign');\nvar isDefined = function isDefined(val) {\n return typeof val !== 'undefined';\n}; // Recursively merge/replace default serializers with user-specified serializers\n\nmodule.exports = function mergeSerializers(defaultSerializers, userSerializers) {\n return Object.keys(defaultSerializers).reduce(function (acc, key) {\n var type = _typeof(defaultSerializers[key]);\n if (type === 'function') {\n acc[key] = isDefined(userSerializers[key]) ? userSerializers[key] : defaultSerializers[key];\n } else if (type === 'object') {\n acc[key] = objectAssign({}, defaultSerializers[key], userSerializers[key]);\n } else {\n acc[key] = typeof userSerializers[key] === 'undefined' ? defaultSerializers[key] : userSerializers[key];\n }\n return acc;\n }, {});\n};","/*! get-video-id v3.7.0 | @license MIT © Michael Wuergler | https://github.com/radiovisual/get-video-id */\n/**\n * Strip away any remaining parameters following `?` or `/` or '&' for YouTube shortcode strings.\n *\n * @note this function is not meant to work with url strings containing a protocol like https://\n * @param {String} shortcodeString - the parameter string\n * @returns {String}\n */\nfunction stripParameters(shortcodeString) {\n // Split parameters or split folder separator\n if (shortcodeString.includes('?')) {\n shortcodeString = shortcodeString.split('?')[0];\n }\n if (shortcodeString.includes('/')) {\n shortcodeString = shortcodeString.split('/')[0];\n }\n if (shortcodeString.includes('&')) {\n shortcodeString = shortcodeString.split('&')[0];\n }\n return shortcodeString;\n}\n/**\n * Get the Youtube Video id.\n * @param {string} youtubeStr - the url from which you want to extract the id\n * @returns {string|undefined}\n */\n\nfunction youtube(youtubeString) {\n var string_ = youtubeString; // Remove time hash at the end of the string\n\n string_ = string_.replace(/#t=.*$/, ''); // Strip the leading protocol\n\n string_ = string_.replace(/^https?:\\/\\//, ''); // Shortcode\n\n var shortcode = /youtube:\\/\\/|youtu\\.be\\/|y2u\\.be\\//g;\n if (shortcode.test(string_)) {\n var shortcodeid = string_.split(shortcode)[1];\n return stripParameters(shortcodeid);\n } // Shorts\n\n var shortsUrl = /\\/shorts\\//g;\n if (shortsUrl.test(string_)) {\n return stripParameters(string_.split(shortsUrl)[1]);\n } // V= or vi=\n\n var parameterv = /v=|vi=/g;\n if (parameterv.test(string_)) {\n var array = string_.split(parameterv);\n return stripParameters(array[1].split('&')[0]);\n } // /v/ or /vi/ or /watch/\n\n var inlinev = /\\/v\\/|\\/vi\\/|\\/watch\\//g;\n if (inlinev.test(string_)) {\n var inlineid = string_.split(inlinev)[1];\n return stripParameters(inlineid);\n } // Format an_webp\n\n var parameterwebp = /\\/an_webp\\//g;\n if (parameterwebp.test(string_)) {\n var webp = string_.split(parameterwebp)[1];\n return stripParameters(webp);\n } // /e/\n\n var eformat = /\\/e\\//g;\n if (eformat.test(string_)) {\n var estring = string_.split(eformat)[1];\n return stripParameters(estring);\n } // Embed\n\n var embedreg = /\\/embed\\//g;\n if (embedreg.test(string_)) {\n var embedid = string_.split(embedreg)[1];\n return stripParameters(embedid);\n } // ignore /user/username pattern\n\n var usernamereg = /\\/user\\/([a-zA-Z\\d]*)$/g;\n if (usernamereg.test(string_)) {\n return undefined;\n } // User\n\n var userreg = /\\/user\\/(?!.*videos)/g;\n if (userreg.test(string_)) {\n var elements = string_.split('/');\n return stripParameters(elements.pop());\n } // Attribution_link\n\n var attrreg = /\\/attribution_link\\?.*v%3D([^%&]*)(%26|&|$)/;\n if (attrreg.test(string_)) {\n return stripParameters(string_.match(attrreg)[1]);\n } // Live\n\n var livereg = /\\/live\\//g;\n if (livereg.test(string_)) {\n var liveid = string_.split(livereg)[1];\n return stripParameters(liveid);\n }\n return undefined;\n}\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\nfunction _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _s, _e;\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n}\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\n/**\n * Get the vimeo id.\n *\n * @param {String} vimeoString the url from which you want to extract the id\n * @returns {String|undefined}\n */\nfunction vimeo(vimeoString) {\n var string_ = vimeoString;\n if (string_.includes('#')) {\n var _string_$split = string_.split('#');\n var _string_$split2 = _slicedToArray(_string_$split, 1);\n string_ = _string_$split2[0];\n }\n if (string_.includes('?') && !string_.includes('clip_id=')) {\n var _string_$split3 = string_.split('?');\n var _string_$split4 = _slicedToArray(_string_$split3, 1);\n string_ = _string_$split4[0];\n }\n var id;\n var array;\n var event = /https?:\\/\\/vimeo\\.com\\/event\\/(\\d+)$/;\n var eventMatches = event.exec(string_);\n if (eventMatches && eventMatches[1]) {\n return eventMatches[1];\n }\n var primary = /https?:\\/\\/vimeo\\.com\\/(\\d+)/;\n var matches = primary.exec(string_);\n if (matches && matches[1]) {\n return matches[1];\n }\n var vimeoPipe = ['https?://player.vimeo.com/video/[0-9]+$', 'https?://vimeo.com/channels', 'groups', 'album'].join('|');\n var vimeoRegex = new RegExp(vimeoPipe, 'gim');\n if (vimeoRegex.test(string_)) {\n array = string_.split('/');\n if (array && array.length > 0) {\n id = array.pop();\n }\n } else if (/clip_id=/gim.test(string_)) {\n array = string_.split('clip_id=');\n if (array && array.length > 0) {\n var _array$1$split = array[1].split('&');\n var _array$1$split2 = _slicedToArray(_array$1$split, 1);\n id = _array$1$split2[0];\n }\n }\n return id;\n}\n\n/**\n * Get the vine id.\n * @param {string} string_ - the url from which you want to extract the id\n * @returns {string|undefined}\n */\nfunction vine(string_) {\n var regex = /https:\\/\\/vine\\.co\\/v\\/([a-zA-Z\\d]*)\\/?/;\n var matches = regex.exec(string_);\n if (matches && matches.length > 1) {\n return matches[1];\n }\n return undefined;\n}\n\n/**\n * Get the VideoPress id.\n * @param {string} urlString - the url from which you want to extract the id\n * @returns {string|undefined}\n */\nfunction videopress(urlString) {\n var idRegex;\n if (urlString.includes('embed')) {\n idRegex = /embed\\/(\\w{8})/;\n return urlString.match(idRegex)[1];\n }\n idRegex = /\\/v\\/(\\w{8})/;\n var matches = urlString.match(idRegex);\n if (matches && matches.length > 0) {\n return matches[1];\n }\n return undefined;\n}\n\n/**\n * Get the Microsoft Stream id.\n * @param {string} urlString - the url from which you want to extract the id\n * @returns {string|undefined}\n */\nfunction microsoftStream(urlString) {\n var regex = urlString.includes('embed') ? /https:\\/\\/web\\.microsoftstream\\.com\\/embed\\/video\\/([a-zA-Z\\d-]*)\\/?/ : /https:\\/\\/web\\.microsoftstream\\.com\\/video\\/([a-zA-Z\\d-]*)\\/?/;\n var matches = regex.exec(urlString);\n if (matches && matches.length > 1) {\n return matches[1];\n }\n return undefined;\n}\n\n/**\n * Get the tiktok id.\n * @param {string} urlString - the url from which you want to extract the id\n * @returns {string|undefined}\n */\nfunction tiktok(urlString) {\n // Parse basic url and embeds\n var basicReg = /tiktok\\.com(.*)\\/video\\/(\\d+)/gm;\n var basicParsed = basicReg.exec(urlString);\n if (basicParsed && basicParsed.length > 2) {\n return basicParsed[2];\n }\n return undefined;\n}\n\n/**\n * Get the dailymotion id.\n * @param {string} urlString - the url from which you want to extract the id\n * @returns {string|undefined}\n */\nfunction dailymotion(urlString) {\n // Parse basic url and embeds\n var basicReg = /dailymotion\\.com(.*)(video)\\/([a-zA-Z\\d]+)/gm;\n var basicParsed = basicReg.exec(urlString);\n if (basicParsed) {\n return basicParsed[3];\n } // Parse shortlink\n\n var shortRegex = /dai\\.ly\\/([a-zA-Z\\d]+)/gm;\n var shortParsed = shortRegex.exec(urlString);\n if (shortParsed && shortParsed.length > 1) {\n return shortParsed[1];\n } // Dynamic link\n\n var dynamicRegex = /dailymotion\\.com(.*)video=([a-zA-Z\\d]+)/gm;\n var dynamicParsed = dynamicRegex.exec(urlString);\n if (dynamicParsed && dynamicParsed.length > 2) {\n return dynamicParsed[2];\n }\n return undefined;\n}\n\n/**\n * Get the value assigned to a \"src\" attribute in a string, or undefined.\n * @param {String} input\n * @returns {String|undefined}\n */\nfunction getSrc(input) {\n if (typeof input !== 'string') {\n throw new TypeError('getSrc expected a string');\n }\n var srcRegEx = /src=\"(.*?)\"/gm;\n var matches = srcRegEx.exec(input);\n if (matches && matches.length >= 2) {\n return matches[1];\n }\n return undefined;\n}\n\n/**\n * Get the id and service from a video url.\n * @param {String} urlString - the url from which you want to extract the id\n * @returns {Object}\n */\n\nfunction getVideoId(urlString) {\n if (typeof urlString !== 'string') {\n throw new TypeError('get-video-id expects a string');\n }\n var string_ = urlString;\n if (/