{"version":3,"file":"15538c8b723674dc52605fdfb7ba3b061fa1c862-5d7cb1a7501447ebd1f6.js","mappings":"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","sources":["webpack://reduct-dot-video/./node_modules/gatsby/dist/internal-plugins/bundle-optimisations/polyfills/object-assign.js","webpack://reduct-dot-video/./node_modules/react-helmet/es/Helmet.js","webpack://reduct-dot-video/./src/constants/navigation/navItems.js","webpack://reduct-dot-video/./src/components/NavAccordion.js","webpack://reduct-dot-video/./src/components/NavDrawer.js","webpack://reduct-dot-video/./src/components/NavBar/NavBar.js","webpack://reduct-dot-video/./src/assets/images/logos/reduct-white-logo-nav.svg","webpack://reduct-dot-video/./src/assets/images/mobile-bar-white.svg","webpack://reduct-dot-video/./src/assets/images/mobile-bar-blue.svg","webpack://reduct-dot-video/./src/assets/images/down-caret.svg","webpack://reduct-dot-video/./src/components/Header.js","webpack://reduct-dot-video/./src/components/Footer.js","webpack://reduct-dot-video/./src/assets/images/reduct-logo-dark.svg","webpack://reduct-dot-video/./src/assets/images/close-outline.svg","webpack://reduct-dot-video/./src/assets/images/hand-pointer.svg","webpack://reduct-dot-video/./src/components/Banner/Timer.js","webpack://reduct-dot-video/./src/components/Banner/Banner.js","webpack://reduct-dot-video/./src/components/SEO/OpenGraph.jsx","webpack://reduct-dot-video/./src/components/SEO/TwitterCard.jsx","webpack://reduct-dot-video/./src/components/SEO/index.js","webpack://reduct-dot-video/./src/components/Layout.js","webpack://reduct-dot-video/./src/components/Link.js","webpack://reduct-dot-video/./src/components/Modal.js","webpack://reduct-dot-video/./src/components/ReductVideoSignUpButton.js","webpack://reduct-dot-video/./src/components/GoogleSignupButton.js","webpack://reduct-dot-video/./src/components/TryIt.js","webpack://reduct-dot-video/./src/context/FlagsContext.js","webpack://reduct-dot-video/./src/context/SignUpModalContext.js","webpack://reduct-dot-video/./src/utils/CalendarlyPopup.js","webpack://reduct-dot-video/./src/utils/api.js","webpack://reduct-dot-video/./src/utils/validateEmail.js","webpack://reduct-dot-video/./node_modules/react-fast-compare/index.js","webpack://reduct-dot-video/./node_modules/react-side-effect/lib/index.js","webpack://reduct-dot-video/./src/assets/images/close-blue.svg","webpack://reduct-dot-video/./src/assets/images/logo-with-bg.png","webpack://reduct-dot-video/./src/assets/images/reduct-logo.svg","webpack://reduct-dot-video/./node_modules/@iconify/react/dist/iconify.mjs"],"sourcesContent":["\"use strict\";\n\nmodule.exports = Object.assign;\n//# sourceMappingURL=object-assign.js.map","import PropTypes from 'prop-types';\nimport withSideEffect from 'react-side-effect';\nimport isEqual from 'react-fast-compare';\nimport React from 'react';\nimport objectAssign from 'object-assign';\n\nvar ATTRIBUTE_NAMES = {\n BODY: \"bodyAttributes\",\n HTML: \"htmlAttributes\",\n TITLE: \"titleAttributes\"\n};\n\nvar TAG_NAMES = {\n BASE: \"base\",\n BODY: \"body\",\n HEAD: \"head\",\n HTML: \"html\",\n LINK: \"link\",\n META: \"meta\",\n NOSCRIPT: \"noscript\",\n SCRIPT: \"script\",\n STYLE: \"style\",\n TITLE: \"title\"\n};\n\nvar VALID_TAG_NAMES = Object.keys(TAG_NAMES).map(function (name) {\n return TAG_NAMES[name];\n});\n\nvar TAG_PROPERTIES = {\n CHARSET: \"charset\",\n CSS_TEXT: \"cssText\",\n HREF: \"href\",\n HTTPEQUIV: \"http-equiv\",\n INNER_HTML: \"innerHTML\",\n ITEM_PROP: \"itemprop\",\n NAME: \"name\",\n PROPERTY: \"property\",\n REL: \"rel\",\n SRC: \"src\",\n TARGET: \"target\"\n};\n\nvar REACT_TAG_MAP = {\n accesskey: \"accessKey\",\n charset: \"charSet\",\n class: \"className\",\n contenteditable: \"contentEditable\",\n contextmenu: \"contextMenu\",\n \"http-equiv\": \"httpEquiv\",\n itemprop: \"itemProp\",\n tabindex: \"tabIndex\"\n};\n\nvar HELMET_PROPS = {\n DEFAULT_TITLE: \"defaultTitle\",\n DEFER: \"defer\",\n ENCODE_SPECIAL_CHARACTERS: \"encodeSpecialCharacters\",\n ON_CHANGE_CLIENT_STATE: \"onChangeClientState\",\n TITLE_TEMPLATE: \"titleTemplate\"\n};\n\nvar HTML_TAG_MAP = Object.keys(REACT_TAG_MAP).reduce(function (obj, key) {\n obj[REACT_TAG_MAP[key]] = key;\n return obj;\n}, {});\n\nvar SELF_CLOSING_TAGS = [TAG_NAMES.NOSCRIPT, TAG_NAMES.SCRIPT, TAG_NAMES.STYLE];\n\nvar HELMET_ATTRIBUTE = \"data-react-helmet\";\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\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\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar inherits = function (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\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};\n\nvar objectWithoutProperties = function (obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n};\n\nvar possibleConstructorReturn = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n};\n\nvar encodeSpecialCharacters = function encodeSpecialCharacters(str) {\n var encode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n if (encode === false) {\n return String(str);\n }\n\n return String(str).replace(/&/g, \"&\").replace(//g, \">\").replace(/\"/g, \""\").replace(/'/g, \"'\");\n};\n\nvar getTitleFromPropsList = function getTitleFromPropsList(propsList) {\n var innermostTitle = getInnermostProperty(propsList, TAG_NAMES.TITLE);\n var innermostTemplate = getInnermostProperty(propsList, HELMET_PROPS.TITLE_TEMPLATE);\n\n if (innermostTemplate && innermostTitle) {\n // use function arg to avoid need to escape $ characters\n return innermostTemplate.replace(/%s/g, function () {\n return Array.isArray(innermostTitle) ? innermostTitle.join(\"\") : innermostTitle;\n });\n }\n\n var innermostDefaultTitle = getInnermostProperty(propsList, HELMET_PROPS.DEFAULT_TITLE);\n\n return innermostTitle || innermostDefaultTitle || undefined;\n};\n\nvar getOnChangeClientState = function getOnChangeClientState(propsList) {\n return getInnermostProperty(propsList, HELMET_PROPS.ON_CHANGE_CLIENT_STATE) || function () {};\n};\n\nvar getAttributesFromPropsList = function getAttributesFromPropsList(tagType, propsList) {\n return propsList.filter(function (props) {\n return typeof props[tagType] !== \"undefined\";\n }).map(function (props) {\n return props[tagType];\n }).reduce(function (tagAttrs, current) {\n return _extends({}, tagAttrs, current);\n }, {});\n};\n\nvar getBaseTagFromPropsList = function getBaseTagFromPropsList(primaryAttributes, propsList) {\n return propsList.filter(function (props) {\n return typeof props[TAG_NAMES.BASE] !== \"undefined\";\n }).map(function (props) {\n return props[TAG_NAMES.BASE];\n }).reverse().reduce(function (innermostBaseTag, tag) {\n if (!innermostBaseTag.length) {\n var keys = Object.keys(tag);\n\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var lowerCaseAttributeKey = attributeKey.toLowerCase();\n\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && tag[lowerCaseAttributeKey]) {\n return innermostBaseTag.concat(tag);\n }\n }\n }\n\n return innermostBaseTag;\n }, []);\n};\n\nvar getTagsFromPropsList = function getTagsFromPropsList(tagName, primaryAttributes, propsList) {\n // Calculate list of tags, giving priority innermost component (end of the propslist)\n var approvedSeenTags = {};\n\n return propsList.filter(function (props) {\n if (Array.isArray(props[tagName])) {\n return true;\n }\n if (typeof props[tagName] !== \"undefined\") {\n warn(\"Helmet: \" + tagName + \" should be of type \\\"Array\\\". Instead found type \\\"\" + _typeof(props[tagName]) + \"\\\"\");\n }\n return false;\n }).map(function (props) {\n return props[tagName];\n }).reverse().reduce(function (approvedTags, instanceTags) {\n var instanceSeenTags = {};\n\n instanceTags.filter(function (tag) {\n var primaryAttributeKey = void 0;\n var keys = Object.keys(tag);\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var lowerCaseAttributeKey = attributeKey.toLowerCase();\n\n // Special rule with link tags, since rel and href are both primary tags, rel takes priority\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && !(primaryAttributeKey === TAG_PROPERTIES.REL && tag[primaryAttributeKey].toLowerCase() === \"canonical\") && !(lowerCaseAttributeKey === TAG_PROPERTIES.REL && tag[lowerCaseAttributeKey].toLowerCase() === \"stylesheet\")) {\n primaryAttributeKey = lowerCaseAttributeKey;\n }\n // Special case for innerHTML which doesn't work lowercased\n if (primaryAttributes.indexOf(attributeKey) !== -1 && (attributeKey === TAG_PROPERTIES.INNER_HTML || attributeKey === TAG_PROPERTIES.CSS_TEXT || attributeKey === TAG_PROPERTIES.ITEM_PROP)) {\n primaryAttributeKey = attributeKey;\n }\n }\n\n if (!primaryAttributeKey || !tag[primaryAttributeKey]) {\n return false;\n }\n\n var value = tag[primaryAttributeKey].toLowerCase();\n\n if (!approvedSeenTags[primaryAttributeKey]) {\n approvedSeenTags[primaryAttributeKey] = {};\n }\n\n if (!instanceSeenTags[primaryAttributeKey]) {\n instanceSeenTags[primaryAttributeKey] = {};\n }\n\n if (!approvedSeenTags[primaryAttributeKey][value]) {\n instanceSeenTags[primaryAttributeKey][value] = true;\n return true;\n }\n\n return false;\n }).reverse().forEach(function (tag) {\n return approvedTags.push(tag);\n });\n\n // Update seen tags with tags from this instance\n var keys = Object.keys(instanceSeenTags);\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var tagUnion = objectAssign({}, approvedSeenTags[attributeKey], instanceSeenTags[attributeKey]);\n\n approvedSeenTags[attributeKey] = tagUnion;\n }\n\n return approvedTags;\n }, []).reverse();\n};\n\nvar getInnermostProperty = function getInnermostProperty(propsList, property) {\n for (var i = propsList.length - 1; i >= 0; i--) {\n var props = propsList[i];\n\n if (props.hasOwnProperty(property)) {\n return props[property];\n }\n }\n\n return null;\n};\n\nvar reducePropsToState = function reducePropsToState(propsList) {\n return {\n baseTag: getBaseTagFromPropsList([TAG_PROPERTIES.HREF, TAG_PROPERTIES.TARGET], propsList),\n bodyAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.BODY, propsList),\n defer: getInnermostProperty(propsList, HELMET_PROPS.DEFER),\n encode: getInnermostProperty(propsList, HELMET_PROPS.ENCODE_SPECIAL_CHARACTERS),\n htmlAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.HTML, propsList),\n linkTags: getTagsFromPropsList(TAG_NAMES.LINK, [TAG_PROPERTIES.REL, TAG_PROPERTIES.HREF], propsList),\n metaTags: getTagsFromPropsList(TAG_NAMES.META, [TAG_PROPERTIES.NAME, TAG_PROPERTIES.CHARSET, TAG_PROPERTIES.HTTPEQUIV, TAG_PROPERTIES.PROPERTY, TAG_PROPERTIES.ITEM_PROP], propsList),\n noscriptTags: getTagsFromPropsList(TAG_NAMES.NOSCRIPT, [TAG_PROPERTIES.INNER_HTML], propsList),\n onChangeClientState: getOnChangeClientState(propsList),\n scriptTags: getTagsFromPropsList(TAG_NAMES.SCRIPT, [TAG_PROPERTIES.SRC, TAG_PROPERTIES.INNER_HTML], propsList),\n styleTags: getTagsFromPropsList(TAG_NAMES.STYLE, [TAG_PROPERTIES.CSS_TEXT], propsList),\n title: getTitleFromPropsList(propsList),\n titleAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.TITLE, propsList)\n };\n};\n\nvar rafPolyfill = function () {\n var clock = Date.now();\n\n return function (callback) {\n var currentTime = Date.now();\n\n if (currentTime - clock > 16) {\n clock = currentTime;\n callback(currentTime);\n } else {\n setTimeout(function () {\n rafPolyfill(callback);\n }, 0);\n }\n };\n}();\n\nvar cafPolyfill = function cafPolyfill(id) {\n return clearTimeout(id);\n};\n\nvar requestAnimationFrame = typeof window !== \"undefined\" ? window.requestAnimationFrame && window.requestAnimationFrame.bind(window) || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || rafPolyfill : global.requestAnimationFrame || rafPolyfill;\n\nvar cancelAnimationFrame = typeof window !== \"undefined\" ? window.cancelAnimationFrame || window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || cafPolyfill : global.cancelAnimationFrame || cafPolyfill;\n\nvar warn = function warn(msg) {\n return console && typeof console.warn === \"function\" && console.warn(msg);\n};\n\nvar _helmetCallback = null;\n\nvar handleClientStateChange = function handleClientStateChange(newState) {\n if (_helmetCallback) {\n cancelAnimationFrame(_helmetCallback);\n }\n\n if (newState.defer) {\n _helmetCallback = requestAnimationFrame(function () {\n commitTagChanges(newState, function () {\n _helmetCallback = null;\n });\n });\n } else {\n commitTagChanges(newState);\n _helmetCallback = null;\n }\n};\n\nvar commitTagChanges = function commitTagChanges(newState, cb) {\n var baseTag = newState.baseTag,\n bodyAttributes = newState.bodyAttributes,\n htmlAttributes = newState.htmlAttributes,\n linkTags = newState.linkTags,\n metaTags = newState.metaTags,\n noscriptTags = newState.noscriptTags,\n onChangeClientState = newState.onChangeClientState,\n scriptTags = newState.scriptTags,\n styleTags = newState.styleTags,\n title = newState.title,\n titleAttributes = newState.titleAttributes;\n\n updateAttributes(TAG_NAMES.BODY, bodyAttributes);\n updateAttributes(TAG_NAMES.HTML, htmlAttributes);\n\n updateTitle(title, titleAttributes);\n\n var tagUpdates = {\n baseTag: updateTags(TAG_NAMES.BASE, baseTag),\n linkTags: updateTags(TAG_NAMES.LINK, linkTags),\n metaTags: updateTags(TAG_NAMES.META, metaTags),\n noscriptTags: updateTags(TAG_NAMES.NOSCRIPT, noscriptTags),\n scriptTags: updateTags(TAG_NAMES.SCRIPT, scriptTags),\n styleTags: updateTags(TAG_NAMES.STYLE, styleTags)\n };\n\n var addedTags = {};\n var removedTags = {};\n\n Object.keys(tagUpdates).forEach(function (tagType) {\n var _tagUpdates$tagType = tagUpdates[tagType],\n newTags = _tagUpdates$tagType.newTags,\n oldTags = _tagUpdates$tagType.oldTags;\n\n\n if (newTags.length) {\n addedTags[tagType] = newTags;\n }\n if (oldTags.length) {\n removedTags[tagType] = tagUpdates[tagType].oldTags;\n }\n });\n\n cb && cb();\n\n onChangeClientState(newState, addedTags, removedTags);\n};\n\nvar flattenArray = function flattenArray(possibleArray) {\n return Array.isArray(possibleArray) ? possibleArray.join(\"\") : possibleArray;\n};\n\nvar updateTitle = function updateTitle(title, attributes) {\n if (typeof title !== \"undefined\" && document.title !== title) {\n document.title = flattenArray(title);\n }\n\n updateAttributes(TAG_NAMES.TITLE, attributes);\n};\n\nvar updateAttributes = function updateAttributes(tagName, attributes) {\n var elementTag = document.getElementsByTagName(tagName)[0];\n\n if (!elementTag) {\n return;\n }\n\n var helmetAttributeString = elementTag.getAttribute(HELMET_ATTRIBUTE);\n var helmetAttributes = helmetAttributeString ? helmetAttributeString.split(\",\") : [];\n var attributesToRemove = [].concat(helmetAttributes);\n var attributeKeys = Object.keys(attributes);\n\n for (var i = 0; i < attributeKeys.length; i++) {\n var attribute = attributeKeys[i];\n var value = attributes[attribute] || \"\";\n\n if (elementTag.getAttribute(attribute) !== value) {\n elementTag.setAttribute(attribute, value);\n }\n\n if (helmetAttributes.indexOf(attribute) === -1) {\n helmetAttributes.push(attribute);\n }\n\n var indexToSave = attributesToRemove.indexOf(attribute);\n if (indexToSave !== -1) {\n attributesToRemove.splice(indexToSave, 1);\n }\n }\n\n for (var _i = attributesToRemove.length - 1; _i >= 0; _i--) {\n elementTag.removeAttribute(attributesToRemove[_i]);\n }\n\n if (helmetAttributes.length === attributesToRemove.length) {\n elementTag.removeAttribute(HELMET_ATTRIBUTE);\n } else if (elementTag.getAttribute(HELMET_ATTRIBUTE) !== attributeKeys.join(\",\")) {\n elementTag.setAttribute(HELMET_ATTRIBUTE, attributeKeys.join(\",\"));\n }\n};\n\nvar updateTags = function updateTags(type, tags) {\n var headElement = document.head || document.querySelector(TAG_NAMES.HEAD);\n var tagNodes = headElement.querySelectorAll(type + \"[\" + HELMET_ATTRIBUTE + \"]\");\n var oldTags = Array.prototype.slice.call(tagNodes);\n var newTags = [];\n var indexToDelete = void 0;\n\n if (tags && tags.length) {\n tags.forEach(function (tag) {\n var newElement = document.createElement(type);\n\n for (var attribute in tag) {\n if (tag.hasOwnProperty(attribute)) {\n if (attribute === TAG_PROPERTIES.INNER_HTML) {\n newElement.innerHTML = tag.innerHTML;\n } else if (attribute === TAG_PROPERTIES.CSS_TEXT) {\n if (newElement.styleSheet) {\n newElement.styleSheet.cssText = tag.cssText;\n } else {\n newElement.appendChild(document.createTextNode(tag.cssText));\n }\n } else {\n var value = typeof tag[attribute] === \"undefined\" ? \"\" : tag[attribute];\n newElement.setAttribute(attribute, value);\n }\n }\n }\n\n newElement.setAttribute(HELMET_ATTRIBUTE, \"true\");\n\n // Remove a duplicate tag from domTagstoRemove, so it isn't cleared.\n if (oldTags.some(function (existingTag, index) {\n indexToDelete = index;\n return newElement.isEqualNode(existingTag);\n })) {\n oldTags.splice(indexToDelete, 1);\n } else {\n newTags.push(newElement);\n }\n });\n }\n\n oldTags.forEach(function (tag) {\n return tag.parentNode.removeChild(tag);\n });\n newTags.forEach(function (tag) {\n return headElement.appendChild(tag);\n });\n\n return {\n oldTags: oldTags,\n newTags: newTags\n };\n};\n\nvar generateElementAttributesAsString = function generateElementAttributesAsString(attributes) {\n return Object.keys(attributes).reduce(function (str, key) {\n var attr = typeof attributes[key] !== \"undefined\" ? key + \"=\\\"\" + attributes[key] + \"\\\"\" : \"\" + key;\n return str ? str + \" \" + attr : attr;\n }, \"\");\n};\n\nvar generateTitleAsString = function generateTitleAsString(type, title, attributes, encode) {\n var attributeString = generateElementAttributesAsString(attributes);\n var flattenedTitle = flattenArray(title);\n return attributeString ? \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\" \" + attributeString + \">\" + encodeSpecialCharacters(flattenedTitle, encode) + \"\" : \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\">\" + encodeSpecialCharacters(flattenedTitle, encode) + \"\";\n};\n\nvar generateTagsAsString = function generateTagsAsString(type, tags, encode) {\n return tags.reduce(function (str, tag) {\n var attributeHtml = Object.keys(tag).filter(function (attribute) {\n return !(attribute === TAG_PROPERTIES.INNER_HTML || attribute === TAG_PROPERTIES.CSS_TEXT);\n }).reduce(function (string, attribute) {\n var attr = typeof tag[attribute] === \"undefined\" ? attribute : attribute + \"=\\\"\" + encodeSpecialCharacters(tag[attribute], encode) + \"\\\"\";\n return string ? string + \" \" + attr : attr;\n }, \"\");\n\n var tagContent = tag.innerHTML || tag.cssText || \"\";\n\n var isSelfClosing = SELF_CLOSING_TAGS.indexOf(type) === -1;\n\n return str + \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\" \" + attributeHtml + (isSelfClosing ? \"/>\" : \">\" + tagContent + \"\");\n }, \"\");\n};\n\nvar convertElementAttributestoReactProps = function convertElementAttributestoReactProps(attributes) {\n var initProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n return Object.keys(attributes).reduce(function (obj, key) {\n obj[REACT_TAG_MAP[key] || key] = attributes[key];\n return obj;\n }, initProps);\n};\n\nvar convertReactPropstoHtmlAttributes = function convertReactPropstoHtmlAttributes(props) {\n var initAttributes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n return Object.keys(props).reduce(function (obj, key) {\n obj[HTML_TAG_MAP[key] || key] = props[key];\n return obj;\n }, initAttributes);\n};\n\nvar generateTitleAsReactComponent = function generateTitleAsReactComponent(type, title, attributes) {\n var _initProps;\n\n // assigning into an array to define toString function on it\n var initProps = (_initProps = {\n key: title\n }, _initProps[HELMET_ATTRIBUTE] = true, _initProps);\n var props = convertElementAttributestoReactProps(attributes, initProps);\n\n return [React.createElement(TAG_NAMES.TITLE, props, title)];\n};\n\nvar generateTagsAsReactComponent = function generateTagsAsReactComponent(type, tags) {\n return tags.map(function (tag, i) {\n var _mappedTag;\n\n var mappedTag = (_mappedTag = {\n key: i\n }, _mappedTag[HELMET_ATTRIBUTE] = true, _mappedTag);\n\n Object.keys(tag).forEach(function (attribute) {\n var mappedAttribute = REACT_TAG_MAP[attribute] || attribute;\n\n if (mappedAttribute === TAG_PROPERTIES.INNER_HTML || mappedAttribute === TAG_PROPERTIES.CSS_TEXT) {\n var content = tag.innerHTML || tag.cssText;\n mappedTag.dangerouslySetInnerHTML = { __html: content };\n } else {\n mappedTag[mappedAttribute] = tag[attribute];\n }\n });\n\n return React.createElement(type, mappedTag);\n });\n};\n\nvar getMethodsForTag = function getMethodsForTag(type, tags, encode) {\n switch (type) {\n case TAG_NAMES.TITLE:\n return {\n toComponent: function toComponent() {\n return generateTitleAsReactComponent(type, tags.title, tags.titleAttributes, encode);\n },\n toString: function toString() {\n return generateTitleAsString(type, tags.title, tags.titleAttributes, encode);\n }\n };\n case ATTRIBUTE_NAMES.BODY:\n case ATTRIBUTE_NAMES.HTML:\n return {\n toComponent: function toComponent() {\n return convertElementAttributestoReactProps(tags);\n },\n toString: function toString() {\n return generateElementAttributesAsString(tags);\n }\n };\n default:\n return {\n toComponent: function toComponent() {\n return generateTagsAsReactComponent(type, tags);\n },\n toString: function toString() {\n return generateTagsAsString(type, tags, encode);\n }\n };\n }\n};\n\nvar mapStateOnServer = function mapStateOnServer(_ref) {\n var baseTag = _ref.baseTag,\n bodyAttributes = _ref.bodyAttributes,\n encode = _ref.encode,\n htmlAttributes = _ref.htmlAttributes,\n linkTags = _ref.linkTags,\n metaTags = _ref.metaTags,\n noscriptTags = _ref.noscriptTags,\n scriptTags = _ref.scriptTags,\n styleTags = _ref.styleTags,\n _ref$title = _ref.title,\n title = _ref$title === undefined ? \"\" : _ref$title,\n titleAttributes = _ref.titleAttributes;\n return {\n base: getMethodsForTag(TAG_NAMES.BASE, baseTag, encode),\n bodyAttributes: getMethodsForTag(ATTRIBUTE_NAMES.BODY, bodyAttributes, encode),\n htmlAttributes: getMethodsForTag(ATTRIBUTE_NAMES.HTML, htmlAttributes, encode),\n link: getMethodsForTag(TAG_NAMES.LINK, linkTags, encode),\n meta: getMethodsForTag(TAG_NAMES.META, metaTags, encode),\n noscript: getMethodsForTag(TAG_NAMES.NOSCRIPT, noscriptTags, encode),\n script: getMethodsForTag(TAG_NAMES.SCRIPT, scriptTags, encode),\n style: getMethodsForTag(TAG_NAMES.STYLE, styleTags, encode),\n title: getMethodsForTag(TAG_NAMES.TITLE, { title: title, titleAttributes: titleAttributes }, encode)\n };\n};\n\nvar Helmet = function Helmet(Component) {\n var _class, _temp;\n\n return _temp = _class = function (_React$Component) {\n inherits(HelmetWrapper, _React$Component);\n\n function HelmetWrapper() {\n classCallCheck(this, HelmetWrapper);\n return possibleConstructorReturn(this, _React$Component.apply(this, arguments));\n }\n\n HelmetWrapper.prototype.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {\n return !isEqual(this.props, nextProps);\n };\n\n HelmetWrapper.prototype.mapNestedChildrenToProps = function mapNestedChildrenToProps(child, nestedChildren) {\n if (!nestedChildren) {\n return null;\n }\n\n switch (child.type) {\n case TAG_NAMES.SCRIPT:\n case TAG_NAMES.NOSCRIPT:\n return {\n innerHTML: nestedChildren\n };\n\n case TAG_NAMES.STYLE:\n return {\n cssText: nestedChildren\n };\n }\n\n throw new Error(\"<\" + child.type + \" /> elements are self-closing and can not contain children. Refer to our API for more information.\");\n };\n\n HelmetWrapper.prototype.flattenArrayTypeChildren = function flattenArrayTypeChildren(_ref) {\n var _babelHelpers$extends;\n\n var child = _ref.child,\n arrayTypeChildren = _ref.arrayTypeChildren,\n newChildProps = _ref.newChildProps,\n nestedChildren = _ref.nestedChildren;\n\n return _extends({}, arrayTypeChildren, (_babelHelpers$extends = {}, _babelHelpers$extends[child.type] = [].concat(arrayTypeChildren[child.type] || [], [_extends({}, newChildProps, this.mapNestedChildrenToProps(child, nestedChildren))]), _babelHelpers$extends));\n };\n\n HelmetWrapper.prototype.mapObjectTypeChildren = function mapObjectTypeChildren(_ref2) {\n var _babelHelpers$extends2, _babelHelpers$extends3;\n\n var child = _ref2.child,\n newProps = _ref2.newProps,\n newChildProps = _ref2.newChildProps,\n nestedChildren = _ref2.nestedChildren;\n\n switch (child.type) {\n case TAG_NAMES.TITLE:\n return _extends({}, newProps, (_babelHelpers$extends2 = {}, _babelHelpers$extends2[child.type] = nestedChildren, _babelHelpers$extends2.titleAttributes = _extends({}, newChildProps), _babelHelpers$extends2));\n\n case TAG_NAMES.BODY:\n return _extends({}, newProps, {\n bodyAttributes: _extends({}, newChildProps)\n });\n\n case TAG_NAMES.HTML:\n return _extends({}, newProps, {\n htmlAttributes: _extends({}, newChildProps)\n });\n }\n\n return _extends({}, newProps, (_babelHelpers$extends3 = {}, _babelHelpers$extends3[child.type] = _extends({}, newChildProps), _babelHelpers$extends3));\n };\n\n HelmetWrapper.prototype.mapArrayTypeChildrenToProps = function mapArrayTypeChildrenToProps(arrayTypeChildren, newProps) {\n var newFlattenedProps = _extends({}, newProps);\n\n Object.keys(arrayTypeChildren).forEach(function (arrayChildName) {\n var _babelHelpers$extends4;\n\n newFlattenedProps = _extends({}, newFlattenedProps, (_babelHelpers$extends4 = {}, _babelHelpers$extends4[arrayChildName] = arrayTypeChildren[arrayChildName], _babelHelpers$extends4));\n });\n\n return newFlattenedProps;\n };\n\n HelmetWrapper.prototype.warnOnInvalidChildren = function warnOnInvalidChildren(child, nestedChildren) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!VALID_TAG_NAMES.some(function (name) {\n return child.type === name;\n })) {\n if (typeof child.type === \"function\") {\n return warn(\"You may be attempting to nest components within each other, which is not allowed. Refer to our API for more information.\");\n }\n\n return warn(\"Only elements types \" + VALID_TAG_NAMES.join(\", \") + \" are allowed. Helmet does not support rendering <\" + child.type + \"> elements. Refer to our API for more information.\");\n }\n\n if (nestedChildren && typeof nestedChildren !== \"string\" && (!Array.isArray(nestedChildren) || nestedChildren.some(function (nestedChild) {\n return typeof nestedChild !== \"string\";\n }))) {\n throw new Error(\"Helmet expects a string as a child of <\" + child.type + \">. Did you forget to wrap your children in braces? ( <\" + child.type + \">{``} ) Refer to our API for more information.\");\n }\n }\n\n return true;\n };\n\n HelmetWrapper.prototype.mapChildrenToProps = function mapChildrenToProps(children, newProps) {\n var _this2 = this;\n\n var arrayTypeChildren = {};\n\n React.Children.forEach(children, function (child) {\n if (!child || !child.props) {\n return;\n }\n\n var _child$props = child.props,\n nestedChildren = _child$props.children,\n childProps = objectWithoutProperties(_child$props, [\"children\"]);\n\n var newChildProps = convertReactPropstoHtmlAttributes(childProps);\n\n _this2.warnOnInvalidChildren(child, nestedChildren);\n\n switch (child.type) {\n case TAG_NAMES.LINK:\n case TAG_NAMES.META:\n case TAG_NAMES.NOSCRIPT:\n case TAG_NAMES.SCRIPT:\n case TAG_NAMES.STYLE:\n arrayTypeChildren = _this2.flattenArrayTypeChildren({\n child: child,\n arrayTypeChildren: arrayTypeChildren,\n newChildProps: newChildProps,\n nestedChildren: nestedChildren\n });\n break;\n\n default:\n newProps = _this2.mapObjectTypeChildren({\n child: child,\n newProps: newProps,\n newChildProps: newChildProps,\n nestedChildren: nestedChildren\n });\n break;\n }\n });\n\n newProps = this.mapArrayTypeChildrenToProps(arrayTypeChildren, newProps);\n return newProps;\n };\n\n HelmetWrapper.prototype.render = function render() {\n var _props = this.props,\n children = _props.children,\n props = objectWithoutProperties(_props, [\"children\"]);\n\n var newProps = _extends({}, props);\n\n if (children) {\n newProps = this.mapChildrenToProps(children, newProps);\n }\n\n return React.createElement(Component, newProps);\n };\n\n createClass(HelmetWrapper, null, [{\n key: \"canUseDOM\",\n\n\n // Component.peek comes from react-side-effect:\n // For testing, you may use a static peek() method available on the returned component.\n // It lets you get the current state without resetting the mounted instance stack.\n // Don’t use it for anything other than testing.\n\n /**\n * @param {Object} base: {\"target\": \"_blank\", \"href\": \"http://mysite.com/\"}\n * @param {Object} bodyAttributes: {\"className\": \"root\"}\n * @param {String} defaultTitle: \"Default Title\"\n * @param {Boolean} defer: true\n * @param {Boolean} encodeSpecialCharacters: true\n * @param {Object} htmlAttributes: {\"lang\": \"en\", \"amp\": undefined}\n * @param {Array} link: [{\"rel\": \"canonical\", \"href\": \"http://mysite.com/example\"}]\n * @param {Array} meta: [{\"name\": \"description\", \"content\": \"Test description\"}]\n * @param {Array} noscript: [{\"innerHTML\": \" console.log(newState)\"\n * @param {Array} script: [{\"type\": \"text/javascript\", \"src\": \"http://mysite.com/js/test.js\"}]\n * @param {Array} style: [{\"type\": \"text/css\", \"cssText\": \"div { display: block; color: blue; }\"}]\n * @param {String} title: \"Title\"\n * @param {Object} titleAttributes: {\"itemprop\": \"name\"}\n * @param {String} titleTemplate: \"MySite.com - %s\"\n */\n set: function set$$1(canUseDOM) {\n Component.canUseDOM = canUseDOM;\n }\n }]);\n return HelmetWrapper;\n }(React.Component), _class.propTypes = {\n base: PropTypes.object,\n bodyAttributes: PropTypes.object,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),\n defaultTitle: PropTypes.string,\n defer: PropTypes.bool,\n encodeSpecialCharacters: PropTypes.bool,\n htmlAttributes: PropTypes.object,\n link: PropTypes.arrayOf(PropTypes.object),\n meta: PropTypes.arrayOf(PropTypes.object),\n noscript: PropTypes.arrayOf(PropTypes.object),\n onChangeClientState: PropTypes.func,\n script: PropTypes.arrayOf(PropTypes.object),\n style: PropTypes.arrayOf(PropTypes.object),\n title: PropTypes.string,\n titleAttributes: PropTypes.object,\n titleTemplate: PropTypes.string\n }, _class.defaultProps = {\n defer: true,\n encodeSpecialCharacters: true\n }, _class.peek = Component.peek, _class.rewind = function () {\n var mappedState = Component.rewind();\n if (!mappedState) {\n // provide fallback if mappedState is undefined\n mappedState = mapStateOnServer({\n baseTag: [],\n bodyAttributes: {},\n encodeSpecialCharacters: true,\n htmlAttributes: {},\n linkTags: [],\n metaTags: [],\n noscriptTags: [],\n scriptTags: [],\n styleTags: [],\n title: \"\",\n titleAttributes: {}\n });\n }\n\n return mappedState;\n }, _temp;\n};\n\nvar NullComponent = function NullComponent() {\n return null;\n};\n\nvar HelmetSideEffects = withSideEffect(reducePropsToState, handleClientStateChange, mapStateOnServer)(NullComponent);\n\nvar HelmetExport = Helmet(HelmetSideEffects);\nHelmetExport.renderStatic = HelmetExport.rewind;\n\nexport default HelmetExport;\nexport { HelmetExport as Helmet };\n","export const NAV_ITEMS = [\n {\n title: 'Product',\n subNavItems: [\n {\n title: 'Overview',\n link: '/product',\n },\n {\n title: 'Transcription',\n link: '/transcribe',\n },\n {\n title: 'Translation',\n link: '/product/translation',\n },\n {\n title: 'Redaction',\n link: '/product/redaction',\n },\n {\n title: 'Text-based video editor',\n link: '/product/edit-video',\n },\n ],\n },\n {\n title: 'Who’s it for?',\n subNavItems: [\n {\n title: 'Public defense & legal',\n link: '/legal/',\n },\n {\n title: 'Qualitative research',\n link: '/research/',\n },\n {\n title: 'Film & production',\n link: '/filmmaking/',\n },\n {\n title: 'Marketing & content',\n link: '/marketing/',\n },\n {\n title: 'Education & training',\n link: '/education/',\n },\n ],\n },\n\n {\n widthClass: 'lg:w-12',\n title: 'Pricing',\n link: '/pricing/',\n },\n //experimenting by removing menu item 'company' to see if we can drive traffic to use cases\n // {\n // title: 'Company',\n // subNavItems: [\n // {\n // title: 'About us',\n // link: '/about-us/',\n // },\n // {\n // title: 'Blog',\n // link: '/blog/',\n // },\n // ],\n // },\n];\n\nexport default NAV_ITEMS;\n","import React, { useState } from 'react';\nimport DownCaret from 'assets/images/down-caret.svg';\n\nexport default function NavAccordion({ title, children }) {\n const [isOpen, setIsOpen] = useState(false);\n\n function toggle() {\n setIsOpen((isOpen) => !isOpen);\n }\n\n return (\n
\n
\n {title}\n
\n
{children}
\n
\n );\n}\n","import * as React from 'react';\n\nexport default function NavDrawer({\n open,\n onClose = () => {},\n children,\n style,\n enableOverlay = true,\n overlayColor = '#000',\n overlayOpacity = 0.4,\n zIndex = 100,\n duration = 300,\n className,\n}) {\n const idSuffix = (Math.random() + 1).toString(36).substring(7);\n\n const overlayStyles = {\n backgroundColor: `${overlayColor}`,\n opacity: `${overlayOpacity}`,\n zIndex: zIndex,\n };\n\n const drawerStyles = {\n zIndex: zIndex + 1,\n transitionDuration: `${duration}ms`,\n top: 0,\n right: 0,\n transform: 'translate3d(100%, 0, 0)',\n ...style,\n };\n\n return (\n
\n \n \n {children}\n \n {enableOverlay && (\n \n )}\n
\n );\n}\n","import React, { useState, useEffect, useRef, useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport Link from 'components/Link';\nimport ReductLogo from 'assets/images/reduct-logo.svg';\nimport ReductLogoWithoutText from 'assets/images/logos/reduct-white-logo-nav.svg';\n\nimport mobileBarBlue from 'assets/images/mobile-bar-blue.svg';\nimport mobileBarWhite from 'assets/images/mobile-bar-white.svg';\nimport CloseBlue from 'assets/images/close-blue.svg';\nimport DownCaret from 'assets/images/down-caret.svg';\n\nimport { NAV_ITEMS } from 'constants/navigation/navItems';\n\nimport NavAccordion from '../NavAccordion';\nimport NavDrawer from '../NavDrawer';\nimport ReductVideoSignUpButton from '../ReductVideoSignUpButton';\n\nimport { CalendlyPopup } from '../../utils/CalendarlyPopup';\nimport { FlagsContext } from '../../context/FlagsContext';\n\nconst signInHandler = (e) => {\n const host = window.location.hostname;\n if (host.endsWith('.distill.video')) {\n e.target.href = `https://dev.distill.video`;\n }\n};\n\nconst SubNavItems = ({ subItems }) => {\n return (\n
\n \n
\n );\n};\n\nSubNavItems.propTypes = {\n subItems: PropTypes.arrayOf(\n PropTypes.shape({\n link: PropTypes.string,\n badge: PropTypes.string,\n })\n ),\n};\n\nconst NavBar = ({ pageName = '' }) => {\n const headerRef = useRef(null);\n const [isMobileMenuOpen, setIsMobileMenuOpen] = useState(false);\n const [hasScrolled, setHasScrolled] = useState(false);\n const [isTranscriptionBenchmarkPage, setIsTranscriptionBenchmarkPage] =\n useState(false);\n\n const { isFreeTrialCtaDisabled } = useContext(FlagsContext);\n\n const scrollFunction = () => {\n if (!headerRef.current) return;\n\n const header = headerRef.current;\n const headerHeight = header.offsetHeight;\n\n if (document.documentElement.scrollTop <= headerHeight) {\n setHasScrolled(false);\n }\n\n if (document.documentElement.scrollTop > headerHeight) {\n if (!hasScrolled) setHasScrolled(true);\n }\n };\n\n useEffect(() => {\n const transcriptionBenchmarkPage = pageName.includes('benchmark');\n\n setIsTranscriptionBenchmarkPage(transcriptionBenchmarkPage);\n\n window.addEventListener('scroll', scrollFunction);\n return () => {\n window.removeEventListener('scroll', scrollFunction);\n };\n }, [pageName]);\n\n return (\n <>\n \n
\n \n \n \n \n
\n \n\n \n\n setIsMobileMenuOpen(true)}\n >\n \n \n
\n\n
\n \n \n );\n};\n\nfunction BookDemoButton() {\n return (\n \n );\n}\n\nBookDemoButton.propTypes = {};\n\nfunction SignUpButton({ small }) {\n return (\n (window.location.href = '/signup')}\n >\n Sign Up\n \n );\n}\n\nSignUpButton.propTypes = {\n small: PropTypes.boolean,\n};\n\nNavBar.propTypes = {\n pageName: PropTypes.string,\n};\n\nexport default NavBar;\n","export default \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTkzMiIgaGVpZ2h0PSIzNDciIHZpZXdCb3g9IjAgMCAxOTMyIDM0NyIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTY0OC4wMjQgMjg3LjM2QzY0OC4wMjQgMzExLjA1OCA2NTEuNDE0IDMyNi41NDIgNjU0LjMxNSAzMzguNjM1SDYxNS4xMzRDNjExLjc0NCAzMjcuOTkyIDYwOS4zMzIgMzEyLjAyIDYwOS4zMzIgMjg4LjgxMVYyNTkuMjk0QzYwOS4zMzIgMjEzLjMzMSA1ODQuNjU1IDE5NC40NzQgNTQwLjE0NCAxOTQuNDc0SDQ0OS42N1YzMzguNjM1SDQwOS41MVYxNi45MzM1SDU1OS40NzNDNjI1Ljc2IDE2LjkzMzUgNjU4LjE2MSA0OS44MjM5IDY1OC4xNjEgMTAxLjU4OEM2NTguMTYxIDE0NC42NDkgNjMxLjU0NSAxNzQuNjM5IDU5NS43NTQgMTgyLjg3QzYyNi4yMzIgMTkxLjU3MyA2NDguMDA3IDIwNi4wOTYgNjQ4LjAwNyAyNTMuNDkxVjI4Ny4zNkg2NDguMDI0Wk02MTYuMDk1IDEwNC45NzlDNjE2LjA5NSA2Ny43MTk2IDU5Ny4yMjEgNDkuMzUxNiA1NTUuMTM4IDQ5LjM1MTZINDQ5LjY3VjE2NC40ODVINTU0LjY0OUM1OTkuNjUgMTY0LjQ4NSA2MTYuMDk1IDE0MS43NDggNjE2LjA5NSAxMDQuOTc5WiIgZmlsbD0iI0Y3RjNFRiIvPgo8cGF0aCBkPSJNODg2LjA4IDI2NC4xMzVIOTIxLjM5OUM5MTYuNTU4IDMwMC45MDUgODg4LjUwOCAzNDYuMzc4IDgwOC4xODggMzQ2LjM3OEM3MjQuOTg0IDM0Ni4zNzggNjg4LjIxNCAyOTAuMjYyIDY4OC4yMTQgMjE3LjIxMkM2ODguMjE0IDE0NS4xMjMgNzI3Ljg4NSA4OS4wMDY1IDgwOC4xODggODkuMDA2NUM4ODAuNzUgODkuMDA2NSA5MjEuODcxIDEzOC44MzEgOTIxLjg3MSAyMDkuNDdDOTIxLjg3MSAyMTUuNzYxIDkyMS44NzEgMjIwLjYwMiA5MjAuOTEgMjI2LjQwNEg3MjYuNDM1QzcyOS4zMzYgMjkyLjY5MSA3NjEuMjY1IDMxNi44NzggODA5LjYzOSAzMTYuODc4Qzg1Ny4wNTIgMzE2Ljg3OCA4NzguODI3IDI5NC42MTQgODg2LjA4IDI2NC4xMzVaTTcyNy40MTMgMTk3LjM3Nkg4ODQuMTU3Qzg4Mi4yMTcgMTQxLjczMiA4NTMuNjc4IDExOC41MjQgODA4LjY5NCAxMTguNTI0Qzc2Mi43MTUgMTE4LjUyNCA3MzIuNzI2IDE0MC4yOTkgNzI3LjQxMyAxOTcuMzc2WiIgZmlsbD0iI0Y3RjNFRiIvPgo8cGF0aCBkPSJNMTIwMC41MSAwVjMzOC42MzZIMTE2MS44VjI5Mi4yMDJDMTE0NS4zNiAzMjYuNTQzIDExMTQuODggMzQ2LjM3OCAxMDcwLjM3IDM0Ni4zNzhDOTk0LjQxNSAzNDYuMzc4IDk1OS41ODUgMjkxLjcxMyA5NTkuNTg1IDIxNy43MDFDOTU5LjU4NSAxNDMuMiA5OTQuNDE1IDg5LjAyMzQgMTA3MC4zNyA4OS4wMjM0QzExMTQuODggODkuMDIzNCAxMTQ1LjM2IDEwOC4zNyAxMTYxLjggMTQyLjcyOFYwSDEyMDAuNTFaTTExNjEuODIgMjE3LjcwMUMxMTYxLjgyIDE0OS40OTEgMTEyOS40IDEyMC40NjMgMTA3OC4xMyAxMjAuNDYzQzEwMjIuOTcgMTIwLjQ2MyA5OTguNzg0IDE1Mi4zOTIgOTk4Ljc4NCAyMTcuNzAxQzk5OC43ODQgMjgyLjUyIDEwMjIuOTcgMzE0LjkzOCAxMDc4LjEzIDMxNC45MzhDMTEyOS40IDMxNC45MzggMTE2MS44MiAyODUuOTEgMTE2MS44MiAyMTcuNzAxWiIgZmlsbD0iI0Y3RjNFRiIvPgo8cGF0aCBkPSJNMTQ2Ni41OSA5Ni43NDg4VjMzOC42MzdIMTQyNy45VjI3Ny4xOTFDMTQxMy40IDMyMC4yNTIgMTM4NC44NCAzNDYuMzYyIDEzMzcuOTIgMzQ2LjM2MkMxMjc2Ljk2IDM0Ni4zNjIgMTI0OS4zOCAzMTQuNDMzIDEyNDkuMzggMjUxLjA2NFY5Ni43MzE5SDEyODguMDlWMjQ2LjY5NUMxMjg4LjA5IDMwMC40IDEzMTEuNzkgMzE0LjQxNiAxMzQ5LjA1IDMxNC40MTZDMTM5OS4zNiAzMTQuNDE2IDE0MjcuOSAyNjkuNDMyIDE0MjcuOSAxODkuMTI5Vjk2Ljc0ODhIMTQ2Ni41OVoiIGZpbGw9IiNGN0YzRUYiLz4KPHBhdGggZD0iTTE2MjguMTkgODkuMDA2NUMxNzAwLjc1IDg5LjAwNjUgMTczNy4wMyAxMjkuMTY3IDE3NDAuOTEgMTg1LjI4M0gxNzA0LjYzQzE2OTguODMgMTQ1LjYxMiAxNjc0LjY0IDEyMC40NjMgMTYyOS42NCAxMjAuNDYzQzE1NzguMzYgMTIwLjQ2MyAxNTQ2LjQzIDE0OC4wNDEgMTU0Ni40MyAyMTcuNzAxQzE1NDYuNDMgMjg3Ljg1IDE1NzcuNCAzMTQuOTM4IDE2MjguMTkgMzE0LjkzOEMxNjc3LjA1IDMxNC45MzggMTcwMi4yIDI4Ny4zNjEgMTcwNy4wNCAyNDYuMjRIMTc0My44MUMxNzQwLjkxIDMwMS44NjYgMTcwMS43MyAzNDYuMzc4IDE2MjguMTkgMzQ2LjM3OEMxNTQ4Ljg1IDM0Ni4zNzggMTUwNy4yNCAyOTEuNzEzIDE1MDcuMjQgMjE3LjcwMUMxNTA3LjI0IDE0My42ODkgMTU0OS44MiA4OS4wMDY1IDE2MjguMTkgODkuMDA2NVoiIGZpbGw9IiNGN0YzRUYiLz4KPHBhdGggZD0iTTE4MTMuNDggMjgyLjA0OVYxMjcuMjI4SDE3NjcuNTFWMTA1LjQ3TDE4MTYuODUgOTMuMzc2M0wxODMxLjM2IDQzLjA2MjRIMTg1Mi4xNVY5Ni43NjY1SDE5MzJWMTI3LjI0NUgxODUyLjE3VjMwNy4xOThIMTkyOS4wOFYzMzguNjM4SDE4NzJDMTgyNS41NyAzMzguNjM4IDE4MTMuNDggMzIwLjc0MiAxODEzLjQ4IDI4Mi4wNDlaIiBmaWxsPSIjRjdGM0VGIi8+CjxwYXRoIGQ9Ik0zMjIuNjI2IDEyNC43MTlIMjE1LjM4NFYzMzguNTg5SDMyMi42MjZWMTI0LjcxOVoiIGZpbGw9IiNGN0YzRUYiLz4KPHBhdGggZD0iTTAuOTA1NzYyIDIzMS4zNDlDMC45MDU3NjIgMjkwLjU3MSAwLjkwNTc2MiAzMzguNTkxIDAuOTA1NzYyIDMzOC41OTFDNjAuMTI3MyAzMzguNTkxIDEwOC4xNDggMjkwLjU5MSAxMDguMTQ4IDIzMS4zNDlWMTI0LjEyN0gwLjkwNTc2MlYyMzEuMzQ5WiIgZmlsbD0iI0Y3RjNFRiIvPgo8cGF0aCBkPSJNMjE1LjM1MSAyMzEuMzQ5SDEwOS4wNzJWMzM4LjU5SDIxNS4zNTFWMjMxLjM0OVoiIGZpbGw9IiNGN0YzRUYiLz4KPHBhdGggZD0iTTIxNS40MDIgMTYuODgyMkgxMDguMTZIMC45MTg0NTdWMTI0LjEyNEgxMDguMTZIMjE1LjQwMkMyNzQuNjI0IDEyNC4xMjQgMzIyLjY0NCA3Ni4xMjQzIDMyMi42NDQgMTYuODgyMkgyMTUuNDAyWiIgZmlsbD0iI0Y3RjNFRiIvPgo8L3N2Zz4K\"","export default \"data:image/svg+xml;base64,Cjxzdmcgd2lkdGg9IjIxIiBoZWlnaHQ9IjE2IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIHN0cm9rZT0iI0Y3RjNFRiIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIGQ9Ik0xIDFoMTlNMSA4aDE5TTEgMTVoMTkiLz48L3N2Zz4=\"","export default \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjEiIGhlaWdodD0iMTYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggc3Ryb2tlPSIjM0M0NUFCIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgZD0iTTEgMWgxOU0xIDhoMTlNMSAxNWgxOSIvPjwvc3ZnPg==\"","export default \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOSIgaGVpZ2h0PSI3IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0xIDEuMjE5bDMuNTM2IDMuNTM1TDguMDcgMS4yMiIgc3Ryb2tlPSIjM0M0NUFCIiBzdHJva2Utd2lkdGg9IjIiLz48L3N2Zz4=\"","import React from 'react';\n\nimport NavBar from './NavBar/NavBar';\nimport PropTypes from 'prop-types';\n\nconst Header = ({ pageName }) => ;\n\nHeader.propTypes = {\n pageName: PropTypes.string,\n};\n\nexport default Header;\n","import React from 'react';\n\nimport Link from 'components/Link';\n\nimport Logo from 'assets/images/reduct-logo-dark.svg';\n\nimport { Icon } from '@iconify/react';\n\nconst Footer = () => {\n return (\n
\n
\n
\n
\n
    \n
    Product
    \n
  • \n Product features\n
  • \n
  • \n Integrations\n
  • \n
  • \n Multicam\n
  • \n
  • \n Redaction\n
  • \n
  • \n Translation\n
  • \n
  • \n Transcription\n
  • \n
  • \n Text-based video editor\n
  • \n
  • \n Transcript summarizer\n
  • \n
  • \n Help center\n
  • \n
\n
\n
\n
    \n
    Who’s it for?
    \n
  • \n Public defense & legal\n
  • \n
  • \n Qualitative research\n
  • \n
  • \n \n Filmmaking & production\n \n
  • \n
  • \n Marketing & content\n
  • \n
  • \n Education & training\n
  • \n
\n
\n
\n
    \n
    Company
    \n
  • \n Our story\n
  • \n
  • \n Blog\n
  • \n
  • \n Case studies\n
  • \n
  • \n Newsroom\n
  • \n
  • \n \n Terms\n \n
  • \n
  • \n \n {' '}\n Privacy policy\n \n
  • \n
  • \n Acceptable use policy\n
  • \n
\n
\n
\n
    \n
    Learn more
    \n
  • \n Plans & pricing\n
  • \n
  • \n Enterprise\n
  • \n
  • \n Security\n
  • \n
  • \n Contact sales\n
  • \n
  • \n Transcription benchmark\n
  • \n
\n \n
\n
\n
    \n
    Compare (Reduct)
    \n
  • \n Vs JusticeText\n
  • \n
  • \n Vs Rev\n
  • \n
  • \n Vs Dovetail\n
  • \n
  • \n Vs Condens\n
  • \n
  • \n Vs EnjoyHQ\n
  • \n
\n
\n
\n\n
\n
\n
\n {' '}\n \n \n \n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n
\n
\n
\n );\n};\n\nexport default Footer;\n","export default \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjM0IiBoZWlnaHQ9IjI1IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0xMzEuODU0IDkuMjAydjcuNDkzaC03LjQ5M3Y3LjczNGgxNS4yMjdWOS4yMDJoLTcuNzM0eiIgZmlsbD0iIzM1MzUzNSIvPjxwYXRoIGQ9Ik0xMzEuODU4IDEuMjI2aC0xNS40NzJ2MjMuMmE3LjczMyA3LjczMyAwIDAwNy43MzQtNy43MzRWOC45Nmg3LjczOGE3LjczNiA3LjczNiAwIDAwNy43MzQtNy43MzRsLTcuNzM0LS4wMDF6TTE0LjkwOCA3LjU4M2MwLTIuNjg2LTEuMzYtNC4wMS00LjM5NC00LjAxaC03LjZ2OC4zaDcuNTY2YzMuMjQzIDAgNC40MjktMS42MzkgNC40MjktNC4yODloLS4wMDF6bTIuMyAxMy4xNDdhMTQuNTYzIDE0LjU2MyAwIDAwLjQ1NSAzLjdoLTIuODI1YTEyLjE5MiAxMi4xOTIgMCAwMS0uNDE4LTMuNTkydi0yLjEzMmMwLTMuMzEyLTEuNzgtNC42NzItNC45ODYtNC42NzJIMi45MTN2MTAuMzkySC4wMThWMS4yMzdoMTAuODFjNC43NzcgMCA3LjExNCAyLjM3MSA3LjExNCA2LjFhNS43NDkgNS43NDkgMCAwMS00LjUgNS44NThjMi4yLjYyNyAzLjc2NiAxLjY3NCAzLjc2NiA1LjA5MXYyLjQ0NHpNMjMuNjYgMTQuMjQ1aDExLjNjLS4xNC00LjAxLTIuMi01LjY4NC01LjQ0LTUuNjg0LTMuMzEyIDAtNS40NzQgMS41NjktNS44NTcgNS42ODRoLS4wMDJ6bTExLjQ0IDQuODEyaDIuNTQ1Yy0uMzQ4IDIuNjUtMi4zNzEgNS45MjctOC4xNiA1LjkyNy02IDAtOC42NDYtNC4wNDUtOC42NDYtOS4zMSAwLTUuMiAyLjg1OS05LjI0IDguNjQ3LTkuMjQgNS4yMyAwIDguMTk0IDMuNTkyIDguMTk0IDguNjgzLjAxMi40MDctLjAxLjgxNi0uMDcgMS4yMkgyMy41OTNjLjIwOSA0Ljc3NyAyLjUxIDYuNTIgNiA2LjUyIDMuNDE3IDAgNC45ODYtMS42IDUuNTA5LTMuOE01NC40ODYgMTUuNzEzYzAtNC45MTYtMi4zMzUtNy4wMDgtNi4wMzItNy4wMDgtMy45NzYgMC01LjcyIDIuMy01LjcyIDcuMDA4IDAgNC42NzMgMS43NDUgNy4wMDkgNS43MiA3LjAwOSAzLjcgMCA2LjAzMi0yLjA5MyA2LjAzMi03LjAxem0yLjc5LTE1Ljd2MjQuNDE0aC0yLjc5di0zLjM0OGE2Ljc2OSA2Ljc2OSAwIDAxLTYuNTkgMy45MDZjLTUuNDc1IDAtNy45ODUtMy45NC03Ljk4NS05LjI3NiAwLTUuMzcgMi41MS05LjI3NSA3Ljk4NS05LjI3NSAzLjIwOCAwIDUuNCAxLjM5NSA2LjU5IDMuODdWLjAxM2gyLjc5ek03Ni4yMSA2Ljk5MXYxNy40MzVoLTIuNzg4di00LjQyOGMtMS4wNDYgMy4xLTMuMSA0Ljk4Ni02LjQ4NyA0Ljk4Ni00LjM5NCAwLTYuMzgxLTIuMy02LjM4MS02Ljg2OVY2Ljk5MWgyLjc5djEwLjgxYzAgMy44NyAxLjcwOCA0Ljg4MSA0LjM5NCA0Ljg4MSAzLjYyNSAwIDUuNjg0LTMuMjQzIDUuNjg0LTkuMDN2LTYuNjZoMi43ODl6TTg4LjEgNi40MzhjNS4yMyAwIDcuODQ3IDIuODk0IDguMTI2IDYuOTRIOTMuNjFhNC45OTQgNC45OTQgMCAwMC01LjQtNC42NzRjLTMuNyAwLTYgMS45ODctNiA3LjAxIDAgNS4wNTYgMi4yMzIgNy4wMDcgNS44OTMgNy4wMDcgMy41MjIgMCA1LjMzNS0xLjk4NiA1LjY4NC00Ljk1aDIuNjQ3Yy0uMjEgNC4wMS0zLjAzNCA3LjIxNi04LjMzNCA3LjIxNi01LjcxOCAwLTguNzE3LTMuOTQtOC43MTctOS4yNzQgMC01LjMzNSAzLjA2OC05LjI3NSA4LjcxNy05LjI3NXpNMTAxLjIxMiAyMC4zNDZWOS4xODdoLTMuMzEzVjcuNjE4bDMuNTU2LS44NzIgMS4wNDYtMy42MjZoMS41djMuODcxaDUuNzUzdjIuMmgtNS43NTNWMjIuMTZoNS41NDR2Mi4yNjdoLTQuMTE1Yy0zLjM0NyAwLTQuMjE5LTEuMjktNC4yMTktNC4wOE0xNjcuMTczIDEuMjMzbC04LjM2OCAyMy4xODdoLTQuMTg0bC04LjQtMjMuMTg3aDMuMDMzbDYuNDg2IDE3Ljg4OGEzNC43ODYgMzQuNzg2IDAgMDExLjAxMSAzLjA2OGMuMjc5LTEuMDEyLjYyOC0yLjA1Ny45NzYtMy4wNjhsNi41MjEtMTcuODg4aDIuOTI1ek0xNzAuMDMzIDYuOTg2aDIuNzg5VjI0LjQyaC0yLjc4OVY2Ljk4NnptLS4zODQtNS43NTRoMy41OTF2Mi44OTRoLTMuNTkxVjEuMjMyek0xOTAuNjM5IDE1LjcwM2MwLTQuOTE2LTIuMzM2LTcuMDA4LTYuMDMyLTcuMDA4LTMuOTc2IDAtNS43MTkgMi4zLTUuNzE5IDcuMDA4IDAgNC42NzMgMS43NDQgNy4wMDggNS43MTkgNy4wMDggMy43IDAgNi4wMzItMi4wOTIgNi4wMzItNy4wMDh6bTIuNzg5LTE1LjY5VjI0LjQyaC0yLjc4OXYtMy4zNDhhNi43NjggNi43NjggMCAwMS02LjU5IDMuOWMtNS40NzUgMC03Ljk4NS0zLjk0LTcuOTg1LTkuMjc1IDAtNS4zNyAyLjUxLTkuMjc1IDcuOTg1LTkuMjc1IDMuMjA3IDAgNS40IDEuMzk1IDYuNTkgMy44N1YuMDE0aDIuNzg5ek0xOTkuMzU4IDE0LjIzOWgxMS4zYy0uMTQtNC4wMS0yLjItNS42ODQtNS40NC01LjY4NC0zLjMxMiAwLTUuNDc0IDEuNTY5LTUuODU3IDUuNjg0aC0uMDAzem0xMS40NCA0LjgxMmgyLjU0NGMtLjM0OSAyLjY1LTIuMzcxIDUuOTI3LTguMTU5IDUuOTI3LTYgMC04LjY0Ni00LjA0NS04LjY0Ni05LjMxIDAtNS4yIDIuODU4LTkuMjQgOC42NDYtOS4yNCA1LjIzIDAgOC4xOTQgMy41OTIgOC4xOTQgOC42ODMuMDEyLjQwOC0uMDExLjgxNi0uMDY5IDEuMjJoLTE0LjAyYy4yMDkgNC43NzcgMi41MTEgNi41MiA2IDYuNTIgMy40MTcgMCA0Ljk4Ni0xLjYgNS41MDktMy44TTIyNC4zNTYgMjIuNzEyYzMuOTQgMCA1LjkyNy0yLjEyNyA1LjkyNy03LjAxIDAtNC45MTQtMS45ODctNy4wMDctNS45MjctNy4wMDctMy45NCAwLTUuOTYyIDIuMDkzLTUuOTYyIDcuMDA4IDAgNC44ODIgMi4wMjIgNy4wMDkgNS45NjIgNy4wMDl6bS04Ljc4Ni03LjA0NGMwLTUuMiAyLjg5NC05LjI0IDguNzg2LTkuMjQgNS44NTcgMCA4Ljc1MiA0LjA4IDguNzUyIDkuMjQgMCA1LjIzLTIuODk1IDkuMzA5LTguNzUyIDkuMzA5LTUuODkzIDAtOC43ODYtNC4wNDQtOC43ODYtOS4zMXoiIGZpbGw9IiMzNTM1MzUiLz48L3N2Zz4=\"","export default \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjUiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEyIDIuNDk1Yy01Ljg1IDAtMTAuNSA0LjY1LTEwLjUgMTAuNXM0LjY1IDEwLjUgMTAuNSAxMC41IDEwLjUtNC42NSAxMC41LTEwLjUtNC42NS0xMC41LTEwLjUtMTAuNXptMCAxOS41Yy00Ljk1IDAtOS00LjA1LTktOXM0LjA1LTkgOS05IDkgNC4wNSA5IDktNC4wNSA5LTkgOXoiIGZpbGw9IiNmZmYiLz48cGF0aCBkPSJNMTYuMDUgMTguMjQ1TDEyIDE0LjE5NWwtNC4wNSA0LjA1LTEuMi0xLjIgNC4wNS00LjA1LTQuMDUtNC4wNSAxLjItMS4yIDQuMDUgNC4wNSA0LjA1LTQuMDUgMS4yIDEuMi00LjA1IDQuMDUgNC4wNSA0LjA1LTEuMiAxLjJ6IiBmaWxsPSIjZmZmIi8+PC9zdmc+\"","export default __webpack_public_path__ + \"static/hand-pointer-877d3f209637d18a03da6942db5c6e1a.svg\";","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\n\nconst nSecondInMiliseconds = 1000;\nconst nMillisecondsInDay = 86400000;\n\nexport const convertAndCalcTimeDiff = (date, time, timeZoneOffset) => {\n const defaultDate = new Date(`${date} ${time} GMT`).toUTCString();\n const utcMilliseconds = new Date(defaultDate).getTime();\n\n return utcMilliseconds - timeZoneOffset * 60 * 1000 - Date.now();\n};\n\nconst convertMilisecondsToHour = (miliseconds) => {\n if (miliseconds < 0) return '00H : 00M : 00S';\n\n const [hour, minute, second] = new Date(miliseconds)\n .toISOString()\n .slice(11, -5)\n .split(':');\n\n if (miliseconds > nMillisecondsInDay) {\n const day = Math.floor(miliseconds / nMillisecondsInDay);\n\n return `${day.toString().padStart(2, 0)}D : ${hour}H : ${minute}M`;\n }\n\n return `${hour}H : ${minute}M : ${second}S`;\n};\n\nconst CountdownTimer = ({ date, time, timeZoneOffset = 0 }) => {\n let interval;\n const [timerCount, setTimerCount] = useState(\n convertAndCalcTimeDiff(date, time, timeZoneOffset)\n );\n\n useEffect(() => {\n if (interval) {\n clearInterval(interval);\n }\n\n interval = setInterval(() => {\n if (timerCount === 0 && interval) {\n clearInterval(interval);\n }\n\n setTimerCount(\n (currentTimerCount) => currentTimerCount - nSecondInMiliseconds\n );\n }, nSecondInMiliseconds);\n\n return () => clearInterval(interval);\n }, []);\n\n return (\n \n );\n};\n\nCountdownTimer.propTypes = {\n date: PropTypes.string.isRequired,\n time: PropTypes.string.isRequired,\n timeZoneOffset: PropTypes.string,\n};\n\nexport default CountdownTimer;\n","/* eslint-disable react/no-danger */\nimport React, { useEffect, useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { graphql, useStaticQuery } from 'gatsby';\n\nimport close from 'assets/images/close-outline.svg';\nimport handPointer from 'assets/images/hand-pointer.svg';\n\nimport Timer, { convertAndCalcTimeDiff } from './Timer';\n\nconst DEFAULT_TIMEZOME = 'UTC';\n\nconst getCurrentDate = (timeZone) => {\n const [fullDate, time] = new Date()\n .toLocaleString('en-US', { timeZone: timeZone || DEFAULT_TIMEZOME })\n .split(',');\n\n const [month, date, year] = fullDate.split('/');\n const [hours24, minutes] = time.split(':');\n const isPM = time.includes('PM');\n let hours = hours24;\n\n if (Number(hours) === 12) hours = '00';\n if (isPM) hours = Number(hours) + 12;\n\n return {\n currentDate: `${year}/${month.padStart(2, 0)}/${date.padStart(2, 0)}`,\n currentTime: `${hours}:${minutes}`,\n };\n};\n\nconst getDisplayEvent = (events) => {\n const displayEvent = events.find((event) => {\n const { endDate, endTime } = event.node;\n const { currentDate, currentTime } = getCurrentDate(event.node.timeZone);\n\n if (endDate === currentDate) {\n return endTime > currentTime;\n }\n\n if (endDate < currentDate) {\n return false;\n }\n\n return true;\n });\n\n return displayEvent || {};\n};\n\nconst getEventStartDateTime = (dateStr, time) => {\n const [, month, date] = dateStr.split('/');\n const [hour, min] = time.split(':');\n const isBeforeNoon = Number(hour) <= 12;\n\n const hourValue = isBeforeNoon ? hour : Number(hour) - 12;\n const minValue = Number(min) ? `:${min}` : '';\n const meridiem = isBeforeNoon && Number(hour) !== 12 ? 'am' : 'pm';\n\n const timeStr = `${hourValue}${minValue}${meridiem}`;\n\n return `${month}/${date} ${timeStr}`;\n};\n\nconst EventTime = ({ highlightTime = false, children = null }) => {\n return (\n \n {children}\n \n );\n};\n\nEventTime.propTypes = {\n highlightTime: PropTypes.bool,\n children: PropTypes.element,\n};\n\nfunction BannerDescription({ event, onClose }) {\n return (\n
\n
\n \n

\n {!event.hideTime && (\n \n \n {getEventStartDateTime(event.startDate, event.startTime)} PST\n \n \n )}\n \n

\n
\n {}}\n >\n \"close\"\n \n
\n );\n}\n\nBannerDescription.propTypes = {\n onClose: PropTypes.func,\n event: PropTypes.shape({\n description: PropTypes.string,\n startDate: PropTypes.string,\n startTime: PropTypes.string,\n highlightTime: PropTypes.bool,\n hideTime: PropTypes.bool,\n }),\n};\n\nconst Banner = ({ onClose }) => {\n const {\n allEventsYaml: { edges: events },\n } = useStaticQuery(graphql`\n query MyQuery {\n allEventsYaml(sort: { endDate: ASC }) {\n edges {\n node {\n id\n startDate\n startTime\n endDate\n endTime\n ctaLink\n timeZone\n hideTime\n timezoneOffset\n highlightTime\n description\n }\n }\n }\n }\n `);\n\n const eventData = useMemo(() => getDisplayEvent(events), []);\n const event = eventData.node || {};\n const [timeDiff, setTimeDiff] = useState(\n convertAndCalcTimeDiff(event.endDate, event.endTime)\n );\n\n useEffect(() => {\n let interval = null;\n\n if (event.endDate) {\n interval = setInterval(() => {\n const diff = convertAndCalcTimeDiff(\n event.endDate,\n event.endTime,\n event.timezoneOffset\n );\n\n setTimeDiff(diff);\n\n if (diff <= 0) clearInterval(interval);\n }, 1000);\n }\n\n return () => clearInterval(interval);\n }, []);\n\n if (!event.startDate || timeDiff <= 0) return null;\n\n return (\n
\n
\n
\n \n \n
\n\n
\n \n Save your spot\n \n
\n
\n
\n );\n};\n\nBanner.propTypes = {\n onClose: PropTypes.func,\n};\n\nexport default Banner;\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport { Helmet } from 'react-helmet';\n\nconst OpenGraph = ({\n url,\n name,\n type,\n title,\n description,\n image,\n width = '1200px',\n height = '630px',\n locale,\n}) => (\n \n {name && }\n \n \n \n \n \n \n {width && }\n {height && }\n \n);\n\nexport default OpenGraph;\n\nOpenGraph.propTypes = {\n url: PropTypes.string.isRequired,\n locale: PropTypes.string.isRequired,\n type: PropTypes.string,\n title: PropTypes.string.isRequired,\n description: PropTypes.string.isRequired,\n image: PropTypes.string.isRequired,\n name: PropTypes.string,\n width: PropTypes.string,\n height: PropTypes.string,\n};\n","import PropTypes from 'prop-types'\nimport React from 'react'\nimport { Helmet } from 'react-helmet'\n\nconst TwitterCard = ({ type, username, title, description, image }) => (\n \n {username && }\n \n \n \n \n \n)\n\nexport default TwitterCard\n\nTwitterCard.propTypes = {\n type: PropTypes.string,\n username: PropTypes.string,\n title: PropTypes.string.isRequired,\n description: PropTypes.string.isRequired,\n image: PropTypes.string.isRequired,\n}","import React from 'react';\nimport { Helmet } from 'react-helmet';\nimport PropTypes from 'prop-types';\nimport { useStaticQuery, graphql, Script, ScriptStrategy } from 'gatsby';\n\nimport OpenGraph from './OpenGraph';\nimport TwitterCard from './TwitterCard';\n\nconst query = graphql`\n query SEO {\n site {\n buildTime(formatString: \"YYYY-MM-DD\")\n siteMetadata {\n siteUrl\n defaultTitle: title\n defaultDescription: description\n defaultTwitterCardType: twitterCardType\n defaultBanner: image {\n src\n }\n defaultKeywords: keywords\n siteLanguage\n ogLanguage\n ogTitle\n ogDescription\n author {\n name\n url\n }\n twitter\n facebook\n }\n }\n }\n`;\n\nconst SEO = ({\n title,\n description,\n metaImage,\n twitterCardType,\n path,\n article = false,\n datePublished,\n dateModified,\n author: pageAuthor,\n keywords,\n}) => {\n const { site } = useStaticQuery(query);\n\n const {\n buildTime,\n siteMetadata: {\n siteUrl,\n defaultTitle,\n defaultDescription,\n defaultKeywords,\n defaultBanner,\n siteLanguage,\n ogLanguage,\n author: defaultAuthor,\n twitter,\n defaultTwitterCardType,\n facebook,\n },\n } = site;\n\n const siteKeywords = keywords\n ? keywords.join(' ')\n : defaultKeywords.join(' ');\n\n const generateUrl = (url, route) => {\n if (route.charAt(route.length - 1) === '/') {\n return `${url}${route || ''}`;\n }\n\n return `${url}${route || ''}/`;\n };\n\n const seo = {\n title: title || defaultTitle,\n description: description || defaultDescription,\n image: `${siteUrl}${(metaImage && metaImage.src) || defaultBanner.src}`,\n url: generateUrl(siteUrl, path),\n keywords: siteKeywords,\n };\n\n const author = pageAuthor ? { name: pageAuthor } : defaultAuthor;\n\n const schemaOrgWebPage = {\n '@context': 'http://schema.org',\n '@type': 'WebPage',\n url: siteUrl,\n inLanguage: siteLanguage,\n mainEntityOfPage: siteUrl,\n description: defaultDescription,\n name: defaultTitle,\n author: {\n '@type': 'Organization',\n name: author.name,\n },\n copyrightHolder: {\n '@type': 'Organization',\n name: author.name,\n },\n creator: {\n '@type': 'Organization',\n name: author.name,\n },\n publisher: {\n '@type': 'Organization',\n name: defaultTitle,\n logo: {\n '@type': 'ImageObject',\n url: `${siteUrl}${defaultBanner.src}`,\n },\n },\n datePublished,\n dateModified: buildTime,\n image: {\n '@type': 'ImageObject',\n url: seo.image,\n },\n };\n\n let schemaArticle = null;\n\n if (article) {\n schemaArticle = {\n '@context': 'http://schema.org',\n '@type': 'Article',\n author: {\n '@type': 'Person',\n name: author.name,\n },\n creator: {\n '@type': 'Person',\n name: author.name,\n },\n publisher: {\n '@type': 'Organization',\n name: defaultTitle,\n logo: {\n '@type': 'ImageObject',\n url: `${siteUrl}${defaultBanner.src}`,\n },\n },\n headline: seo.title,\n datePublished,\n dateModified,\n description: seo.description,\n inLanguage: siteLanguage,\n url: seo.url,\n name: seo.title,\n image: {\n '@type': 'ImageObject',\n url: seo.image,\n },\n mainEntityOfPage: seo.url,\n };\n }\n\n const schemaData = article ? schemaArticle : schemaOrgWebPage;\n\n return (\n <>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default SEO;\n\nSEO.propTypes = {\n title: PropTypes.string,\n description: PropTypes.string,\n datePublished: PropTypes.instanceOf(Date),\n dateModified: PropTypes.instanceOf(Date),\n metaImage: PropTypes.shape({ src: PropTypes.string }),\n path: PropTypes.string,\n article: PropTypes.bool,\n twitterCardType: PropTypes.node,\n keywords: PropTypes.string,\n author: PropTypes.string,\n};\n","import React, { useEffect, useState } from 'react';\nimport { Script, ScriptStrategy } from 'gatsby';\nimport PropTypes from 'prop-types';\nimport { Helmet } from 'react-helmet';\nimport 'assets/stylesheets/main.scss';\nimport Header from 'components/Header';\nimport Footer from 'components/Footer';\nimport Banner from 'components/Banner/Banner';\nimport { isFirefox } from 'utils/browserDetector';\nimport SEO from './SEO';\nimport {\n SignUpModalContext,\n SignUpModalContextProvider,\n} from '../context/SignUpModalContext';\nimport Modal from './Modal';\nimport TryIt from './TryIt';\nimport { FlagsContextProvider } from '../context/FlagsContext';\nimport DefaultFeaturedImg from '../assets/images/logo-with-bg.png';\n\nexport const ApiOnly = ({ children }) => {\n return (\n <>\n \n Reduct.Video\n \n {children}\n \n );\n};\n\nconst Layout = ({\n children,\n headerClass,\n pageName,\n article,\n title,\n description,\n author,\n datePublished,\n dateModified,\n hero,\n path,\n}) => {\n const pagePath = path || `/${pageName}`;\n const metaImage = {\n src: hero || DefaultFeaturedImg,\n };\n\n const [closeBanner, setCloseBanner] = useState(false);\n\n const handleCloseBanner = () => {\n setCloseBanner(true);\n };\n\n const PopupModal = ({\n modalState,\n setModalState,\n startEmail,\n ctaPlacement,\n }) =>\n modalState ? (\n setModalState(!modalState)}>\n
\n
\n \n
\n
\n
\n ) : null;\n\n return (\n <>\n \n \n {title ? `${title}` : 'Reduct.Video'}\n \n {\n const linkEle = document.createElement('link');\n linkEle.rel = 'stylesheet';\n linkEle.type = 'text/css';\n linkEle.href =\n 'https://assets.calendly.com/assets/external/widget.css';\n document.getElementsByTagName('head')[0].appendChild(linkEle);\n window.calendlyLoaded = true;\n }}\n />\n \n \n
\n {/* \n Using context.consumer to get the values from SignUpModalContext as\n we can't access the values in the same level as that of the context\n provider\n */}\n \n {({ modalState, setModalState, startEmail, ctaPlacement }) => (\n \n )}\n \n {!closeBanner && }\n
\n
{children}
\n
\n
\n
\n
\n \n );\n};\n\nLayout.propTypes = {\n children: PropTypes.node.isRequired,\n headerClass: PropTypes.string,\n pageName: PropTypes.string,\n article: PropTypes.bool,\n title: PropTypes.string,\n description: PropTypes.string,\n author: PropTypes.string,\n datePublished: PropTypes.instanceOf(Date),\n dateModified: PropTypes.instanceOf(Date),\n hero: PropTypes.string,\n path: PropTypes.string,\n};\n\nexport default Layout;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { Link } from 'gatsby';\n\nconst getUTMQueriesFromPath = (searchStr) => {\n const [, queries] = searchStr.split('?');\n\n let utmQueries = '';\n const queriesArr = queries.split('&');\n\n queriesArr.forEach((query) => {\n const [key, value] = query.split('=');\n const delimiter = utmQueries.length ? '&' : '?';\n\n if (key.includes('utm_')) utmQueries += `${delimiter}${key}=${value}`;\n });\n\n return utmQueries;\n};\n\nconst getPath = (path) => {\n let pathname = path;\n if (typeof window !== 'undefined' && window?.location?.search) {\n const pathQueries = getUTMQueriesFromPath(window.location.search);\n pathname = `${path}${pathQueries}`;\n }\n\n return pathname;\n};\n\nconst CustomLink = ({\n to = '',\n target = '_blank',\n rel = 'noreferrer',\n ...rest\n}) => {\n const linkPath = getPath(to);\n\n const isInternalLink = linkPath.startsWith('/');\n\n if (isInternalLink) {\n return ;\n }\n\n return (\n \n {rest.children}\n \n );\n};\n\nCustomLink.propTypes = {\n to: PropTypes.string,\n rest: PropTypes.shape({}),\n target: PropTypes.string,\n rel: PropTypes.string,\n};\n\nexport default CustomLink;\n","import React, { useEffect, useRef } from 'react';\nimport PropTypes from 'prop-types';\n\nconst Modal = ({ children, closeHandler, ctaModal = false }) => {\n const userBtnContainer = useRef('');\n\n useEffect(() => {\n document.body.style.overflow = 'hidden';\n return () => {\n document.body.style.overflow = 'unset';\n };\n }, []);\n\n return (\n {}}\n tabIndex={0}\n onClick={(e) => {\n if (e.target !== userBtnContainer.current) {\n return;\n }\n closeHandler();\n }}\n >\n \n {children}\n \n \n );\n};\n\nModal.propTypes = {\n children: PropTypes.node.isRequired,\n closeHandler: PropTypes.func.isRequired,\n ctaModal: PropTypes.bool,\n};\n\nexport default Modal;\n","import React, { useContext } from 'react';\nimport { FlagsContext } from '../context/FlagsContext';\nimport { SignUpModalContext } from '../context/SignUpModalContext';\nimport { CalendlyPopup } from '../utils/CalendarlyPopup';\n\nconst SignUpButtonForNavBar = ({ className, isFreeTrialCtaDisabled }) => {\n const { modalState, setModalState, setCtaPlacement } =\n useContext(SignUpModalContext);\n\n const handleClick = () => {\n if (isFreeTrialCtaDisabled) {\n CalendlyPopup();\n return;\n }\n\n setCtaPlacement('nav');\n setModalState(!modalState);\n };\n\n return (\n \n {isFreeTrialCtaDisabled ? 'Talk to sales →' : 'Try it now →'}\n \n );\n};\n\nconst CTAForLandingPages = ({ className, text, isFreeTrialCtaDisabled }) => {\n const { modalState, setModalState } = useContext(SignUpModalContext);\n\n const handleClick = () => {\n if (isFreeTrialCtaDisabled) {\n CalendlyPopup();\n return;\n }\n\n setModalState(!modalState);\n };\n\n return (\n \n {isFreeTrialCtaDisabled ? 'Talk to sales →' : `${text} →`}\n \n );\n};\n\nconst CTAForPricingPage = ({ isFreeTrialCtaDisabled }) => {\n const { modalState, setModalState } = useContext(SignUpModalContext);\n\n const handleClick = () => {\n if (isFreeTrialCtaDisabled) {\n CalendlyPopup();\n return;\n }\n\n setModalState(!modalState);\n };\n\n return (\n \n {isFreeTrialCtaDisabled ? 'Book a demo →' : 'Start a free trial →'}\n \n );\n};\n\nconst SignUpButtonForMobileMenu = ({ className, isFreeTrialCtaDisabled }) => {\n const { modalState, setModalState, setCtaPlacement } =\n useContext(SignUpModalContext);\n\n const handleClick = () => {\n if (isFreeTrialCtaDisabled) {\n CalendlyPopup();\n return;\n }\n setCtaPlacement('mobilemenu');\n setModalState(!modalState);\n };\n\n return (\n \n {isFreeTrialCtaDisabled ? 'Talk to sales →' : 'Try it now →'}\n \n );\n};\n\nconst ReductVideoSignUpButton = ({\n text = 'Try it now',\n navBar = false,\n mobileMenu = false,\n className = 'btn-dark-blue',\n page = '',\n}) => {\n const { isFreeTrialCtaDisabled } = useContext(FlagsContext);\n\n if (navBar) {\n return (\n \n );\n } else if (mobileMenu) {\n return (\n \n );\n } else if (page === 'pricing') {\n return (\n \n );\n } else {\n return (\n \n );\n }\n};\n\nexport default ReductVideoSignUpButton;\n","import React, { useState, useCallback, useEffect, useMemo } from 'react';\nimport reductFetch, { getUTMInfo } from '../utils/api';\n\nconst clientId =\n '593448999239-cpru81t0foumbbsakimnusduhm88ph6a.apps.googleusercontent.com';\n\nconst GoogleButton = React.memo(({ onGoogleSignUp }) => {\n const loadGoogle = () => {\n window.google.accounts.id.initialize({\n client_id: clientId,\n callback: onGoogleSignUp,\n ux_mode: 'popup',\n auto_prompt: false,\n });\n window.google.accounts.id.renderButton(\n document.getElementById('google-button'),\n {\n type: 'standard',\n size: 'large',\n text: 'signup_with',\n width: 270,\n logo_alignment: 'center',\n }\n );\n };\n\n useEffect(() => {\n if (document.readyState === 'complete') {\n loadGoogle();\n return;\n }\n window.addEventListener('load', loadGoogle);\n return () => window.removeEventListener('load', loadGoogle);\n }, [loadGoogle]);\n\n return (\n \n );\n});\n\nexport const GoogleSignUpButton = ({ setError, ctaPlacement }) => {\n const onGoogleSignUp = useCallback(async (data) => {\n const isProd = window.location.hostname.endsWith('reduct.video');\n\n const URL = isProd\n ? 'https://app.reduct.video/'\n : 'https://dev.distill.video/';\n\n const API_URL = URL + 'google-auth';\n\n const res = await reductFetch(API_URL, {\n method: 'POST',\n credentials: 'include',\n body: JSON.stringify({\n google_token: data.credential,\n accepted_tos: Math.floor(new Date().getTime() / 1000),\n tracking: getUTMInfo(),\n }),\n });\n\n if (!res.ok) {\n // e.g. 429, Too Many Requests\n setError('Google Authentication Failed.');\n console.error('Google Sign-up Failed', res.status);\n return;\n }\n const resJSON = await res.json();\n const { success, error, user } = resJSON;\n\n if (!success) {\n if (error === 'require_sign_in') {\n setError('Requires SSO. Please use email.');\n } else {\n setError('Google Authentication Failed.');\n console.error('Google Authentication Failed', resJSON);\n }\n return;\n }\n\n //Trigger signup tags when google signup is successful\n window.dataLayer.push({\n event: 'reduct_google_signup',\n email: user,\n ctaPlacement: ctaPlacement,\n });\n\n // Success! Redirect to the app\n window.location = URL;\n }, []);\n\n return ;\n};\n","import React, { useEffect, useState, useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport validateEmail from 'utils/validateEmail';\nimport { submitSignupForm } from 'utils/api';\nimport { GoogleSignUpButton } from './GoogleSignupButton';\n\nconst InputModal = ({\n modalTitle,\n setModalStep,\n email,\n setEmail,\n error,\n setError,\n ctaPlacement,\n}) => {\n const onChange = useCallback(\n (e) => {\n setEmail(e.target.value);\n setError('');\n },\n [setEmail, setError]\n );\n\n const onEmailSubmit = async (e) => {\n e.preventDefault();\n\n if (validateEmail(email)) {\n submitSignupForm(email);\n\n // Trigger signup tags when form signup is submited\n window.dataLayer.push({\n event: 'reduct_form_signup',\n email: email,\n ctaPlacement: ctaPlacement,\n });\n\n setModalStep(2);\n } else {\n setError('Please enter a valid email.');\n }\n };\n\n const terms = (\n \n \n \n Terms and Conditions\n \n {' '}\n and{' '}\n \n \n {' '}\n Privacy Policy\n \n \n \n );\n\n return (\n
\n
\n
\n {modalTitle || 'Try Reduct for free'}\n
\n
\n \n
\n
\n\n
\n or\n \n \n Create Account\n \n\n
\n By continuing, you agree to the {terms} of Reduct, Inc.\n
\n\n {error && (\n \n {error}\n
\n )}\n \n
\n );\n};\n\nconst VertificationModal = ({ email }) => (\n
\n
\n Verify your email\n
\n
\n To get started, check the email we sent to{' '}\n {email}.\n
\n
\n If you mistyped your email, sign up for a new account.\n
\n
\n);\n\nexport const TryIt = ({ modalTitle, startEmail, ctaPlacement }) => {\n const [email, setEmail] = useState(startEmail || '');\n const [error, setError] = useState('');\n const [modalStep, setModalStep] = useState(1);\n\n useEffect(() => {\n // default email from URL, attempt to auto submit\n const email = new URLSearchParams(window.location.search).get('email');\n if (email) {\n setEmail(email);\n if (validateEmail(email)) {\n submitSignupForm(email);\n setModalStep(2);\n } else {\n setError('Please enter a valid email.');\n }\n }\n }, []);\n\n return (\n <>\n {modalStep === 1 && (\n \n )}\n {modalStep === 2 && }\n \n );\n};\n\nTryIt.propTypes = {\n content: PropTypes.string,\n};\n\nexport default TryIt;\n","import React, { createContext } from 'react';\nimport PropTypes from 'prop-types';\n\nexport const FlagsContext = createContext();\n\nexport const FlagsContextProvider = ({ children }) => {\n let isFreeTrialCtaDisabled = false;\n\n return (\n \n {children}\n \n );\n};\n\nFlagsContextProvider.propTypes = {\n children: PropTypes.node.isRequired,\n};\n","import React, { createContext, useState } from 'react';\n\nexport const SignUpModalContext = createContext();\n\nexport const SignUpModalContextProvider = ({ children }) => {\n const [modalState, setModalState] = useState(false);\n const [startEmail, setStartEmail] = useState('');\n const [ctaPlacement, setCtaPlacement] = useState('');\n\n return (\n \n {children}\n \n );\n};\n","import { navigate } from 'gatsby';\n\nexport const CalendlyPopup = () => {\n if (typeof window !== 'undefined' && window.Calendly) {\n const pathname = window.location.pathname || '/';\n\n window.Calendly.initPopupWidget({\n url: `https://calendly.com/reduct-schedule-a-demo/demo?utm_source=${pathname}&utm_medium=sales_cta`,\n });\n const calendlyContainer = document.getElementsByClassName(\n 'calendly-popup-content'\n )[0];\n\n document.addEventListener('click', function (event) {\n if (\n !calendlyContainer.contains(event.target) &&\n (event.target.className === 'calendly-close-overlay' ||\n event.target.className === 'calendly-popup-close') &&\n (window.location.href.endsWith('contact-sales') ||\n window.location.href.endsWith('request-demo'))\n ) {\n navigate('/');\n }\n });\n\n return false;\n }\n};\n","export function reductFetch(url, args) {\n args = args || {};\n\n // We send a custom header\n const headers = args.headers || {};\n headers['X-Using-Reduct-Fetch'] = 'true';\n\n args.headers = headers;\n\n return window.fetch(url, args);\n}\n\nexport const getUTMInfo = () => {\n const out = {};\n\n const currentUrl = window.location.href;\n\n const path = window.location.pathname.split('?')[0];\n out.utm_path = path;\n\n if (currentUrl.includes('utm')) {\n const params = new URLSearchParams(document.location.search);\n\n const utm_source = params.get('utm_source');\n if (utm_source) {\n out.utm_source = utm_source;\n }\n\n const utm_medium = params.get('utm_medium');\n if (utm_medium) {\n out.utm_medium = utm_medium;\n }\n\n const utm_campaign = params.get('utm_campaign');\n if (utm_campaign) {\n out.utm_campaign = utm_campaign;\n }\n\n const utm_content = params.get('utm_content');\n if (utm_content) {\n out.utm_content = utm_content;\n }\n\n const utm_term = params.get('utm_term');\n if (utm_term) {\n out.utm_term = utm_term;\n }\n }\n\n return out;\n};\n\nexport const submitSignupForm = async (email) => {\n const isProd = window.location.hostname.endsWith('reduct.video');\n\n const URL = isProd\n ? 'https://app.reduct.video/send-invite'\n : 'https://dev.distill.video/send-invite';\n\n reductFetch(URL, {\n method: 'POST',\n body: JSON.stringify({\n email: email,\n accepted_tos: Math.floor(new Date().getTime() / 1000),\n tracking: getUTMInfo(),\n }),\n });\n};\n\nexport function loadReductApiScript() {\n return new Promise((res, rej) => {\n const script = document.createElement('script');\n script.type = 'text/javascript';\n script.async = true;\n script.src = 'https://app.reduct.video/api.js';\n\n script.addEventListener('load', () => {\n res('Success.');\n });\n\n script.addEventListener('error', () => {\n rej({\n message: 'Error loading script.',\n });\n });\n\n document.head.appendChild(script);\n });\n}\n\nexport async function waitForScriptLoad(interval = 1000) {\n return new Promise((res, _) => {\n const timer = setInterval(() => {\n if (window.Reduct.getSharePlayerFromManifest) {\n clearInterval(timer);\n res();\n }\n }, interval);\n });\n}\n\nexport default reductFetch;\n","export default (email) => {\n return /^[a-zA-Z0-9.!#$%&'*+\\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/.test(\n email\n );\n};\n","/* global Map:readonly, Set:readonly, ArrayBuffer:readonly */\n\nvar hasElementType = typeof Element !== 'undefined';\nvar hasMap = typeof Map === 'function';\nvar hasSet = typeof Set === 'function';\nvar hasArrayBuffer = typeof ArrayBuffer === 'function' && !!ArrayBuffer.isView;\n\n// Note: We **don't** need `envHasBigInt64Array` in fde es6/index.js\n\nfunction equal(a, b) {\n // START: fast-deep-equal es6/index.js 3.1.3\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n // START: Modifications:\n // 1. Extra `has &&` helpers in initial condition allow es6 code\n // to co-exist with es5.\n // 2. Replace `for of` with es5 compliant iteration using `for`.\n // Basically, take:\n //\n // ```js\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // ```\n //\n // ... and convert to:\n //\n // ```js\n // it = a.entries();\n // while (!(i = it.next()).done)\n // if (!b.has(i.value[0])) return false;\n // ```\n //\n // **Note**: `i` access switches to `i.value`.\n var it;\n if (hasMap && (a instanceof Map) && (b instanceof Map)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!equal(i.value[1], b.get(i.value[0]))) return false;\n return true;\n }\n\n if (hasSet && (a instanceof Set) && (b instanceof Set)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n return true;\n }\n // END: Modifications\n\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (a[i] !== b[i]) return false;\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n // START: Modifications:\n // Apply guards for `Object.create(null)` handling. See:\n // - https://github.com/FormidableLabs/react-fast-compare/issues/64\n // - https://github.com/epoberezkin/fast-deep-equal/issues/49\n if (a.valueOf !== Object.prototype.valueOf && typeof a.valueOf === 'function' && typeof b.valueOf === 'function') return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString && typeof a.toString === 'function' && typeof b.toString === 'function') return a.toString() === b.toString();\n // END: Modifications\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n // END: fast-deep-equal\n\n // START: react-fast-compare\n // custom handling for DOM elements\n if (hasElementType && a instanceof Element) return false;\n\n // custom handling for React/Preact\n for (i = length; i-- !== 0;) {\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n\n continue;\n }\n\n // all other properties should be traversed as usual\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n }\n // END: react-fast-compare\n\n // START: fast-deep-equal\n return true;\n }\n\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if (((error.message || '').match(/stack|recursion/i))) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n};\n","'use strict';\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar React = require('react');\nvar React__default = _interopDefault(React);\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction withSideEffect(reducePropsToState, handleStateChangeOnClient, mapStateOnServer) {\n if (typeof reducePropsToState !== 'function') {\n throw new Error('Expected reducePropsToState to be a function.');\n }\n\n if (typeof handleStateChangeOnClient !== 'function') {\n throw new Error('Expected handleStateChangeOnClient to be a function.');\n }\n\n if (typeof mapStateOnServer !== 'undefined' && typeof mapStateOnServer !== 'function') {\n throw new Error('Expected mapStateOnServer to either be undefined or a function.');\n }\n\n function getDisplayName(WrappedComponent) {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n }\n\n return function wrap(WrappedComponent) {\n if (typeof WrappedComponent !== 'function') {\n throw new Error('Expected WrappedComponent to be a React component.');\n }\n\n var mountedInstances = [];\n var state;\n\n function emitChange() {\n state = reducePropsToState(mountedInstances.map(function (instance) {\n return instance.props;\n }));\n\n if (SideEffect.canUseDOM) {\n handleStateChangeOnClient(state);\n } else if (mapStateOnServer) {\n state = mapStateOnServer(state);\n }\n }\n\n var SideEffect =\n /*#__PURE__*/\n function (_PureComponent) {\n _inheritsLoose(SideEffect, _PureComponent);\n\n function SideEffect() {\n return _PureComponent.apply(this, arguments) || this;\n }\n\n // Try to use displayName of wrapped component\n // Expose canUseDOM so tests can monkeypatch it\n SideEffect.peek = function peek() {\n return state;\n };\n\n SideEffect.rewind = function rewind() {\n if (SideEffect.canUseDOM) {\n throw new Error('You may only call rewind() on the server. Call peek() to read the current state.');\n }\n\n var recordedState = state;\n state = undefined;\n mountedInstances = [];\n return recordedState;\n };\n\n var _proto = SideEffect.prototype;\n\n _proto.UNSAFE_componentWillMount = function UNSAFE_componentWillMount() {\n mountedInstances.push(this);\n emitChange();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n emitChange();\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n var index = mountedInstances.indexOf(this);\n mountedInstances.splice(index, 1);\n emitChange();\n };\n\n _proto.render = function render() {\n return React__default.createElement(WrappedComponent, this.props);\n };\n\n return SideEffect;\n }(React.PureComponent);\n\n _defineProperty(SideEffect, \"displayName\", \"SideEffect(\" + getDisplayName(WrappedComponent) + \")\");\n\n _defineProperty(SideEffect, \"canUseDOM\", canUseDOM);\n\n return SideEffect;\n };\n}\n\nmodule.exports = withSideEffect;\n","export default \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTciIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggc3Ryb2tlPSIjM0M0NUFCIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgZD0iTTEuNDg4IDEuNTc1TDE0LjkyNCAxNS4wMU0xNC44NDggMS40MTRMMS40MTMgMTQuODQ5Ii8+PC9zdmc+\"","export default __webpack_public_path__ + \"static/logo-with-bg-23c79805667c01f9d853cb0b53dd0c1c.png\";","export default \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgwIiBoZWlnaHQ9IjM3IiB2aWV3Qm94PSIwIDAgMTgwIDM3IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8cGF0aCBkPSJNNjUuMDE5MiAyNi4yNDk2QzY1LjAxOTIgMjguMzY4MyA2NS4zMjIzIDI5Ljc1MjYgNjUuNTgxNyAzMC44MzM4SDYyLjA3ODdDNjEuNzc1NiAyOS44ODIzIDYxLjU2IDI4LjQ1NDMgNjEuNTYgMjYuMzc5M1YyMy43NDA0QzYxLjU2IDE5LjYzMTMgNTkuMzUzOSAxNy45NDU0IDU1LjM3NDQgMTcuOTQ1NEg0Ny4yODU3VjMwLjgzMzhINDMuNjk1M1YyLjA3MjY5SDU3LjEwMjVDNjMuMDI4NyAyLjA3MjY5IDY1LjkyNTUgNS4wMTMxOSA2NS45MjU1IDkuNjQxMDlDNjUuOTI1NSAxMy40OTA5IDYzLjU0NiAxNi4xNzIgNjAuMzQ2MSAxNi45MDc5QzYzLjA3MDkgMTcuNjg2IDY1LjAxNzcgMTguOTg0MyA2NS4wMTc3IDIzLjIyMTdWMjYuMjQ5Nkg2NS4wMTkyWk02Mi4xNjQ3IDkuOTQ0MTlDNjIuMTY0NyA2LjYxMzEzIDYwLjQ3NzMgNC45NzA5NyA1Ni43MTQ5IDQuOTcwOTdINDcuMjg1N1YxNS4yNjQySDU2LjY3MTJDNjAuNjk0NCAxNS4yNjQyIDYyLjE2NDcgMTMuMjMxNSA2Mi4xNjQ3IDkuOTQ0MTlaIiBmaWxsPSIjM0M0NUFCIi8+CjxwYXRoIGQ9Ik04Ni4zMDIxIDI0LjE3MzFIODkuNDU5N0M4OS4wMjY5IDI3LjQ2MDUgODYuNTE5MiAzMS41MjU5IDc5LjMzODMgMzEuNTI1OUM3MS44OTk2IDMxLjUyNTkgNjguNjEyMyAyNi41MDkgNjguNjEyMyAxOS45NzhDNjguNjEyMyAxMy41MzMxIDcyLjE1OSA4LjUxNjExIDc5LjMzODMgOC41MTYxMUM4NS44MjU1IDguNTE2MTEgODkuNTAxOSAxMi45NzA2IDg5LjUwMTkgMTkuMjg1OUM4OS41MDE5IDE5Ljg0ODQgODkuNTAxOSAyMC4yODExIDg5LjQxNiAyMC43OTk5SDcyLjAyOTNDNzIuMjg4NyAyNi43MjYxIDc1LjE0MzIgMjguODg4NSA3OS40NjggMjguODg4NUM4My43MDY5IDI4Ljg4ODUgODUuNjUzNiAyNi44OTggODYuMzAyMSAyNC4xNzMxWk03Mi4xMTY4IDE4LjIwNDdIODYuMTMwMkM4NS45NTY3IDEzLjIzIDgzLjQwNTMgMTEuMTU1IDc5LjM4MzYgMTEuMTU1Qzc1LjI3MjkgMTEuMTU1IDcyLjU5MTggMTMuMTAxOCA3Mi4xMTY4IDE4LjIwNDdaIiBmaWxsPSIjM0M0NUFCIi8+CjxwYXRoIGQ9Ik0xMTQuNDEzIDAuNTU4NjU1VjMwLjgzMzdIMTEwLjk1M1YyNi42ODI0QzEwOS40ODIgMjkuNzUyNiAxMDYuNzU4IDMxLjUyNTkgMTAyLjc3OCAzMS41MjU5Qzk1Ljk4NzggMzEuNTI1OSA5Mi44NzM4IDI2LjYzODYgOTIuODczOCAyMC4wMjE4QzkyLjg3MzggMTMuMzYxMSA5NS45ODc4IDguNTE3NjEgMTAyLjc3OCA4LjUxNzYxQzEwNi43NTggOC41MTc2MSAxMDkuNDgyIDEwLjI0NzIgMTEwLjk1MyAxMy4zMTg5VjAuNTU4NjU1SDExNC40MTNaTTExMC45NTQgMjAuMDIxOEMxMTAuOTU0IDEzLjkyMzYgMTA4LjA1NiAxMS4zMjg0IDEwMy40NzIgMTEuMzI4NEM5OC41NDA3IDExLjMyODQgOTYuMzc4MyAxNC4xODMgOTYuMzc4MyAyMC4wMjE4Qzk2LjM3ODMgMjUuODE2OCA5OC41NDA3IDI4LjcxNTEgMTAzLjQ3MiAyOC43MTUxQzEwOC4wNTYgMjguNzE1MSAxMTAuOTU0IDI2LjExOTkgMTEwLjk1NCAyMC4wMjE4WiIgZmlsbD0iIzNDNDVBQiIvPgo8cGF0aCBkPSJNMTM4LjIwMiA5LjIwODNWMzAuODMzOEgxMzQuNzQzVjI1LjM0MDNDMTMzLjQ0NiAyOS4xOTAxIDEzMC44OTMgMzEuNTI0NCAxMjYuNjk4IDMxLjUyNDRDMTIxLjI0OCAzMS41MjQ0IDExOC43ODMgMjguNjY5OSAxMTguNzgzIDIzLjAwNDVWOS4yMDY3OUgxMjIuMjQ0VjIyLjYxNEMxMjIuMjQ0IDI3LjQxNTMgMTI0LjM2MiAyOC42Njg0IDEyNy42OTMgMjguNjY4NEMxMzIuMTkxIDI4LjY2ODQgMTM0Ljc0MyAyNC42NDY3IDEzNC43NDMgMTcuNDY3M1Y5LjIwODNIMTM4LjIwMloiIGZpbGw9IiMzQzQ1QUIiLz4KPHBhdGggZD0iTTE1Mi42NDkgOC41MTYxMUMxNTkuMTM2IDguNTE2MTEgMTYyLjM4IDEyLjEwNjUgMTYyLjcyNiAxNy4xMjM1SDE1OS40ODNDMTU4Ljk2NCAxMy41NzY4IDE1Ni44MDIgMTEuMzI4NCAxNTIuNzc4IDExLjMyODRDMTQ4LjE5NCAxMS4zMjg0IDE0NS4zNCAxMy43OTM5IDE0NS4zNCAyMC4wMjE4QzE0NS4zNCAyNi4yOTMzIDE0OC4xMDggMjguNzE1MSAxNTIuNjQ5IDI4LjcxNTFDMTU3LjAxNyAyOC43MTUxIDE1OS4yNjYgMjYuMjQ5NiAxNTkuNjk4IDIyLjU3MzJIMTYyLjk4NkMxNjIuNzI2IDI3LjU0NjQgMTU5LjIyMyAzMS41MjU5IDE1Mi42NDkgMzEuNTI1OUMxNDUuNTU1IDMxLjUyNTkgMTQxLjgzNSAyNi42Mzg2IDE0MS44MzUgMjAuMDIxOEMxNDEuODM1IDEzLjQwNDkgMTQ1LjY0MyA4LjUxNjExIDE1Mi42NDkgOC41MTYxMVoiIGZpbGw9IiMzQzQ1QUIiLz4KPHBhdGggZD0iTTE2OS4yMTQgMjUuNzc0OFYxMS45MzM0SDE2NS4xMDVWOS45ODgxTDE2OS41MTYgOC45MDY5TDE3MC44MTMgNC40MDg2OUgxNzIuNjcyVjkuMjFIMTc5LjgxVjExLjkzNDlIMTcyLjY3M1YyOC4wMjMySDE3OS41NVYzMC44MzRIMTc0LjQ0N0MxNzAuMjk1IDMwLjgzNCAxNjkuMjE0IDI5LjIzNDEgMTY5LjIxNCAyNS43NzQ4WiIgZmlsbD0iIzNDNDVBQiIvPgo8cGF0aCBkPSJNMjYuMDIwNiAxMS42NTU4SDAuNjg0NTdWMzYuOTkxOUgyNi4wMjA2VjExLjY1NThaIiBmaWxsPSIjRkZFMkNDIi8+CjxwYXRoIGQ9Ik0zNS42MDc4IDExLjcwOTFIMjYuMDJWMzAuODI5N0gzNS42MDc4VjExLjcwOTFaIiBmaWxsPSIjM0M0NUFCIi8+CjxwYXRoIGQ9Ik02Ljg0NTQ2IDIxLjI0MkM2Ljg0NTQ2IDI2LjUzNjYgNi44NDU0NiAzMC44Mjk3IDYuODQ1NDYgMzAuODI5N0MxMi4xNCAzMC44Mjk3IDE2LjQzMzIgMjYuNTM4NCAxNi40MzMyIDIxLjI0MlYxMS42NTYxSDYuODQ1NDZWMjEuMjQyWiIgZmlsbD0iIzVBOTBGNiIvPgo8cGF0aCBkPSJNMjYuMDE3NiAyMS4yNDE5SDE2LjUxNTlWMzAuODI5NkgyNi4wMTc2VjIxLjI0MTlaIiBmaWxsPSIjNUE5MEY2Ii8+CjxwYXRoIGQ9Ik0yNi4wMjE5IDIuMDY4MDVIMTYuNDM0Mkg2Ljg0NjQ0VjExLjY1NThIMTYuNDM0MkgyNi4wMjE5QzMxLjMxNjUgMTEuNjU1OCAzNS42MDk3IDcuMzY0NDcgMzUuNjA5NyAyLjA2ODA1SDI2LjAyMTlaIiBmaWxsPSIjM0M0NUFCIi8+Cjwvc3ZnPgo=\"","import React from 'react';\n\nconst matchName = /^[a-z0-9]+(-[a-z0-9]+)*$/;\nconst iconDefaults = Object.freeze({\n left: 0,\n top: 0,\n width: 16,\n height: 16,\n rotate: 0,\n vFlip: false,\n hFlip: false\n});\nfunction fullIcon(data) {\n return { ...iconDefaults, ...data };\n}\n\nconst stringToIcon = (value, validate, allowSimpleName, provider = \"\") => {\n const colonSeparated = value.split(\":\");\n if (value.slice(0, 1) === \"@\") {\n if (colonSeparated.length < 2 || colonSeparated.length > 3) {\n return null;\n }\n provider = colonSeparated.shift().slice(1);\n }\n if (colonSeparated.length > 3 || !colonSeparated.length) {\n return null;\n }\n if (colonSeparated.length > 1) {\n const name2 = colonSeparated.pop();\n const prefix = colonSeparated.pop();\n const result = {\n provider: colonSeparated.length > 0 ? colonSeparated[0] : provider,\n prefix,\n name: name2\n };\n return validate && !validateIcon(result) ? null : result;\n }\n const name = colonSeparated[0];\n const dashSeparated = name.split(\"-\");\n if (dashSeparated.length > 1) {\n const result = {\n provider,\n prefix: dashSeparated.shift(),\n name: dashSeparated.join(\"-\")\n };\n return validate && !validateIcon(result) ? null : result;\n }\n if (allowSimpleName && provider === \"\") {\n const result = {\n provider,\n prefix: \"\",\n name\n };\n return validate && !validateIcon(result, allowSimpleName) ? null : result;\n }\n return null;\n};\nconst validateIcon = (icon, allowSimpleName) => {\n if (!icon) {\n return false;\n }\n return !!((icon.provider === \"\" || icon.provider.match(matchName)) && (allowSimpleName && icon.prefix === \"\" || icon.prefix.match(matchName)) && icon.name.match(matchName));\n};\n\nfunction mergeIconData(icon, alias) {\n const result = { ...icon };\n for (const key in iconDefaults) {\n const prop = key;\n if (alias[prop] !== void 0) {\n const value = alias[prop];\n if (result[prop] === void 0) {\n result[prop] = value;\n continue;\n }\n switch (prop) {\n case \"rotate\":\n result[prop] = (result[prop] + value) % 4;\n break;\n case \"hFlip\":\n case \"vFlip\":\n result[prop] = value !== result[prop];\n break;\n default:\n result[prop] = value;\n }\n }\n }\n return result;\n}\n\nfunction getIconData$1(data, name, full = false) {\n function getIcon(name2, iteration) {\n if (data.icons[name2] !== void 0) {\n return Object.assign({}, data.icons[name2]);\n }\n if (iteration > 5) {\n return null;\n }\n const aliases = data.aliases;\n if (aliases && aliases[name2] !== void 0) {\n const item = aliases[name2];\n const result2 = getIcon(item.parent, iteration + 1);\n if (result2) {\n return mergeIconData(result2, item);\n }\n return result2;\n }\n const chars = data.chars;\n if (!iteration && chars && chars[name2] !== void 0) {\n return getIcon(chars[name2], iteration + 1);\n }\n return null;\n }\n const result = getIcon(name, 0);\n if (result) {\n for (const key in iconDefaults) {\n if (result[key] === void 0 && data[key] !== void 0) {\n result[key] = data[key];\n }\n }\n }\n return result && full ? fullIcon(result) : result;\n}\n\nfunction isVariation(item) {\n for (const key in iconDefaults) {\n if (item[key] !== void 0) {\n return true;\n }\n }\n return false;\n}\nfunction parseIconSet(data, callback, options) {\n options = options || {};\n const names = [];\n if (typeof data !== \"object\" || typeof data.icons !== \"object\") {\n return names;\n }\n if (data.not_found instanceof Array) {\n data.not_found.forEach((name) => {\n callback(name, null);\n names.push(name);\n });\n }\n const icons = data.icons;\n Object.keys(icons).forEach((name) => {\n const iconData = getIconData$1(data, name, true);\n if (iconData) {\n callback(name, iconData);\n names.push(name);\n }\n });\n const parseAliases = options.aliases || \"all\";\n if (parseAliases !== \"none\" && typeof data.aliases === \"object\") {\n const aliases = data.aliases;\n Object.keys(aliases).forEach((name) => {\n if (parseAliases === \"variations\" && isVariation(aliases[name])) {\n return;\n }\n const iconData = getIconData$1(data, name, true);\n if (iconData) {\n callback(name, iconData);\n names.push(name);\n }\n });\n }\n return names;\n}\n\nconst optionalProperties = {\n provider: \"string\",\n aliases: \"object\",\n not_found: \"object\"\n};\nfor (const prop in iconDefaults) {\n optionalProperties[prop] = typeof iconDefaults[prop];\n}\nfunction quicklyValidateIconSet(obj) {\n if (typeof obj !== \"object\" || obj === null) {\n return null;\n }\n const data = obj;\n if (typeof data.prefix !== \"string\" || !obj.icons || typeof obj.icons !== \"object\") {\n return null;\n }\n for (const prop in optionalProperties) {\n if (obj[prop] !== void 0 && typeof obj[prop] !== optionalProperties[prop]) {\n return null;\n }\n }\n const icons = data.icons;\n for (const name in icons) {\n const icon = icons[name];\n if (!name.match(matchName) || typeof icon.body !== \"string\") {\n return null;\n }\n for (const prop in iconDefaults) {\n if (icon[prop] !== void 0 && typeof icon[prop] !== typeof iconDefaults[prop]) {\n return null;\n }\n }\n }\n const aliases = data.aliases;\n if (aliases) {\n for (const name in aliases) {\n const icon = aliases[name];\n const parent = icon.parent;\n if (!name.match(matchName) || typeof parent !== \"string\" || !icons[parent] && !aliases[parent]) {\n return null;\n }\n for (const prop in iconDefaults) {\n if (icon[prop] !== void 0 && typeof icon[prop] !== typeof iconDefaults[prop]) {\n return null;\n }\n }\n }\n }\n return data;\n}\n\nconst storageVersion = 1;\nlet storage$1 = /* @__PURE__ */ Object.create(null);\ntry {\n const w = window || self;\n if (w && w._iconifyStorage.version === storageVersion) {\n storage$1 = w._iconifyStorage.storage;\n }\n} catch (err) {\n}\nfunction shareStorage() {\n try {\n const w = window || self;\n if (w && !w._iconifyStorage) {\n w._iconifyStorage = {\n version: storageVersion,\n storage: storage$1\n };\n }\n } catch (err) {\n }\n}\nfunction newStorage(provider, prefix) {\n return {\n provider,\n prefix,\n icons: /* @__PURE__ */ Object.create(null),\n missing: /* @__PURE__ */ Object.create(null)\n };\n}\nfunction getStorage(provider, prefix) {\n if (storage$1[provider] === void 0) {\n storage$1[provider] = /* @__PURE__ */ Object.create(null);\n }\n const providerStorage = storage$1[provider];\n if (providerStorage[prefix] === void 0) {\n providerStorage[prefix] = newStorage(provider, prefix);\n }\n return providerStorage[prefix];\n}\nfunction addIconSet(storage2, data) {\n if (!quicklyValidateIconSet(data)) {\n return [];\n }\n const t = Date.now();\n return parseIconSet(data, (name, icon) => {\n if (icon) {\n storage2.icons[name] = icon;\n } else {\n storage2.missing[name] = t;\n }\n });\n}\nfunction addIconToStorage(storage2, name, icon) {\n try {\n if (typeof icon.body === \"string\") {\n storage2.icons[name] = Object.freeze(fullIcon(icon));\n return true;\n }\n } catch (err) {\n }\n return false;\n}\nfunction getIconFromStorage(storage2, name) {\n const value = storage2.icons[name];\n return value === void 0 ? null : value;\n}\nfunction listIcons(provider, prefix) {\n let allIcons = [];\n let providers;\n if (typeof provider === \"string\") {\n providers = [provider];\n } else {\n providers = Object.keys(storage$1);\n }\n providers.forEach((provider2) => {\n let prefixes;\n if (typeof provider2 === \"string\" && typeof prefix === \"string\") {\n prefixes = [prefix];\n } else {\n prefixes = storage$1[provider2] === void 0 ? [] : Object.keys(storage$1[provider2]);\n }\n prefixes.forEach((prefix2) => {\n const storage2 = getStorage(provider2, prefix2);\n const icons = Object.keys(storage2.icons).map((name) => (provider2 !== \"\" ? \"@\" + provider2 + \":\" : \"\") + prefix2 + \":\" + name);\n allIcons = allIcons.concat(icons);\n });\n });\n return allIcons;\n}\n\nlet simpleNames = false;\nfunction allowSimpleNames(allow) {\n if (typeof allow === \"boolean\") {\n simpleNames = allow;\n }\n return simpleNames;\n}\nfunction getIconData(name) {\n const icon = typeof name === \"string\" ? stringToIcon(name, true, simpleNames) : name;\n return icon ? getIconFromStorage(getStorage(icon.provider, icon.prefix), icon.name) : null;\n}\nfunction addIcon(name, data) {\n const icon = stringToIcon(name, true, simpleNames);\n if (!icon) {\n return false;\n }\n const storage = getStorage(icon.provider, icon.prefix);\n return addIconToStorage(storage, icon.name, data);\n}\nfunction addCollection(data, provider) {\n if (typeof data !== \"object\") {\n return false;\n }\n if (typeof provider !== \"string\") {\n provider = typeof data.provider === \"string\" ? data.provider : \"\";\n }\n if (simpleNames && provider === \"\" && (typeof data.prefix !== \"string\" || data.prefix === \"\")) {\n let added = false;\n if (quicklyValidateIconSet(data)) {\n data.prefix = \"\";\n parseIconSet(data, (name, icon) => {\n if (icon && addIcon(name, icon)) {\n added = true;\n }\n });\n }\n return added;\n }\n if (typeof data.prefix !== \"string\" || !validateIcon({\n provider,\n prefix: data.prefix,\n name: \"a\"\n })) {\n return false;\n }\n const storage = getStorage(provider, data.prefix);\n return !!addIconSet(storage, data);\n}\nfunction iconExists(name) {\n return getIconData(name) !== null;\n}\nfunction getIcon(name) {\n const result = getIconData(name);\n return result ? { ...result } : null;\n}\n\nconst defaults = Object.freeze({\n inline: false,\n width: null,\n height: null,\n hAlign: \"center\",\n vAlign: \"middle\",\n slice: false,\n hFlip: false,\n vFlip: false,\n rotate: 0\n});\nfunction mergeCustomisations(defaults2, item) {\n const result = {};\n for (const key in defaults2) {\n const attr = key;\n result[attr] = defaults2[attr];\n if (item[attr] === void 0) {\n continue;\n }\n const value = item[attr];\n switch (attr) {\n case \"inline\":\n case \"slice\":\n if (typeof value === \"boolean\") {\n result[attr] = value;\n }\n break;\n case \"hFlip\":\n case \"vFlip\":\n if (value === true) {\n result[attr] = !result[attr];\n }\n break;\n case \"hAlign\":\n case \"vAlign\":\n if (typeof value === \"string\" && value !== \"\") {\n result[attr] = value;\n }\n break;\n case \"width\":\n case \"height\":\n if (typeof value === \"string\" && value !== \"\" || typeof value === \"number\" && value || value === null) {\n result[attr] = value;\n }\n break;\n case \"rotate\":\n if (typeof value === \"number\") {\n result[attr] += value;\n }\n break;\n }\n }\n return result;\n}\n\nconst unitsSplit = /(-?[0-9.]*[0-9]+[0-9.]*)/g;\nconst unitsTest = /^-?[0-9.]*[0-9]+[0-9.]*$/g;\nfunction calculateSize(size, ratio, precision) {\n if (ratio === 1) {\n return size;\n }\n precision = precision === void 0 ? 100 : precision;\n if (typeof size === \"number\") {\n return Math.ceil(size * ratio * precision) / precision;\n }\n if (typeof size !== \"string\") {\n return size;\n }\n const oldParts = size.split(unitsSplit);\n if (oldParts === null || !oldParts.length) {\n return size;\n }\n const newParts = [];\n let code = oldParts.shift();\n let isNumber = unitsTest.test(code);\n while (true) {\n if (isNumber) {\n const num = parseFloat(code);\n if (isNaN(num)) {\n newParts.push(code);\n } else {\n newParts.push(Math.ceil(num * ratio * precision) / precision);\n }\n } else {\n newParts.push(code);\n }\n code = oldParts.shift();\n if (code === void 0) {\n return newParts.join(\"\");\n }\n isNumber = !isNumber;\n }\n}\n\nfunction preserveAspectRatio(props) {\n let result = \"\";\n switch (props.hAlign) {\n case \"left\":\n result += \"xMin\";\n break;\n case \"right\":\n result += \"xMax\";\n break;\n default:\n result += \"xMid\";\n }\n switch (props.vAlign) {\n case \"top\":\n result += \"YMin\";\n break;\n case \"bottom\":\n result += \"YMax\";\n break;\n default:\n result += \"YMid\";\n }\n result += props.slice ? \" slice\" : \" meet\";\n return result;\n}\nfunction iconToSVG(icon, customisations) {\n const box = {\n left: icon.left,\n top: icon.top,\n width: icon.width,\n height: icon.height\n };\n let body = icon.body;\n [icon, customisations].forEach((props) => {\n const transformations = [];\n const hFlip = props.hFlip;\n const vFlip = props.vFlip;\n let rotation = props.rotate;\n if (hFlip) {\n if (vFlip) {\n rotation += 2;\n } else {\n transformations.push(\"translate(\" + (box.width + box.left).toString() + \" \" + (0 - box.top).toString() + \")\");\n transformations.push(\"scale(-1 1)\");\n box.top = box.left = 0;\n }\n } else if (vFlip) {\n transformations.push(\"translate(\" + (0 - box.left).toString() + \" \" + (box.height + box.top).toString() + \")\");\n transformations.push(\"scale(1 -1)\");\n box.top = box.left = 0;\n }\n let tempValue;\n if (rotation < 0) {\n rotation -= Math.floor(rotation / 4) * 4;\n }\n rotation = rotation % 4;\n switch (rotation) {\n case 1:\n tempValue = box.height / 2 + box.top;\n transformations.unshift(\"rotate(90 \" + tempValue.toString() + \" \" + tempValue.toString() + \")\");\n break;\n case 2:\n transformations.unshift(\"rotate(180 \" + (box.width / 2 + box.left).toString() + \" \" + (box.height / 2 + box.top).toString() + \")\");\n break;\n case 3:\n tempValue = box.width / 2 + box.left;\n transformations.unshift(\"rotate(-90 \" + tempValue.toString() + \" \" + tempValue.toString() + \")\");\n break;\n }\n if (rotation % 2 === 1) {\n if (box.left !== 0 || box.top !== 0) {\n tempValue = box.left;\n box.left = box.top;\n box.top = tempValue;\n }\n if (box.width !== box.height) {\n tempValue = box.width;\n box.width = box.height;\n box.height = tempValue;\n }\n }\n if (transformations.length) {\n body = '' + body + \"\";\n }\n });\n let width, height;\n if (customisations.width === null && customisations.height === null) {\n height = \"1em\";\n width = calculateSize(height, box.width / box.height);\n } else if (customisations.width !== null && customisations.height !== null) {\n width = customisations.width;\n height = customisations.height;\n } else if (customisations.height !== null) {\n height = customisations.height;\n width = calculateSize(height, box.width / box.height);\n } else {\n width = customisations.width;\n height = calculateSize(width, box.height / box.width);\n }\n if (width === \"auto\") {\n width = box.width;\n }\n if (height === \"auto\") {\n height = box.height;\n }\n width = typeof width === \"string\" ? width : width.toString() + \"\";\n height = typeof height === \"string\" ? height : height.toString() + \"\";\n const result = {\n attributes: {\n width,\n height,\n preserveAspectRatio: preserveAspectRatio(customisations),\n viewBox: box.left.toString() + \" \" + box.top.toString() + \" \" + box.width.toString() + \" \" + box.height.toString()\n },\n body\n };\n if (customisations.inline) {\n result.inline = true;\n }\n return result;\n}\n\nfunction buildIcon(icon, customisations) {\n return iconToSVG(fullIcon(icon), customisations ? mergeCustomisations(defaults, customisations) : defaults);\n}\n\nconst regex = /\\sid=\"(\\S+)\"/g;\nconst randomPrefix = \"IconifyId\" + Date.now().toString(16) + (Math.random() * 16777216 | 0).toString(16);\nlet counter = 0;\nfunction replaceIDs(body, prefix = randomPrefix) {\n const ids = [];\n let match;\n while (match = regex.exec(body)) {\n ids.push(match[1]);\n }\n if (!ids.length) {\n return body;\n }\n ids.forEach((id) => {\n const newID = typeof prefix === \"function\" ? prefix(id) : prefix + (counter++).toString();\n const escapedID = id.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n body = body.replace(new RegExp('([#;\"])(' + escapedID + ')([\")]|\\\\.[a-z])', \"g\"), \"$1\" + newID + \"$3\");\n });\n return body;\n}\n\nconst storage = /* @__PURE__ */ Object.create(null);\nfunction setAPIModule(provider, item) {\n storage[provider] = item;\n}\nfunction getAPIModule(provider) {\n return storage[provider] || storage[\"\"];\n}\n\nfunction createAPIConfig(source) {\n let resources;\n if (typeof source.resources === \"string\") {\n resources = [source.resources];\n } else {\n resources = source.resources;\n if (!(resources instanceof Array) || !resources.length) {\n return null;\n }\n }\n const result = {\n resources,\n path: source.path === void 0 ? \"/\" : source.path,\n maxURL: source.maxURL ? source.maxURL : 500,\n rotate: source.rotate ? source.rotate : 750,\n timeout: source.timeout ? source.timeout : 5e3,\n random: source.random === true,\n index: source.index ? source.index : 0,\n dataAfterTimeout: source.dataAfterTimeout !== false\n };\n return result;\n}\nconst configStorage = /* @__PURE__ */ Object.create(null);\nconst fallBackAPISources = [\n \"https://api.simplesvg.com\",\n \"https://api.unisvg.com\"\n];\nconst fallBackAPI = [];\nwhile (fallBackAPISources.length > 0) {\n if (fallBackAPISources.length === 1) {\n fallBackAPI.push(fallBackAPISources.shift());\n } else {\n if (Math.random() > 0.5) {\n fallBackAPI.push(fallBackAPISources.shift());\n } else {\n fallBackAPI.push(fallBackAPISources.pop());\n }\n }\n}\nconfigStorage[\"\"] = createAPIConfig({\n resources: [\"https://api.iconify.design\"].concat(fallBackAPI)\n});\nfunction addAPIProvider(provider, customConfig) {\n const config = createAPIConfig(customConfig);\n if (config === null) {\n return false;\n }\n configStorage[provider] = config;\n return true;\n}\nfunction getAPIConfig(provider) {\n return configStorage[provider];\n}\nfunction listAPIProviders() {\n return Object.keys(configStorage);\n}\n\nconst mergeParams = (base, params) => {\n let result = base, hasParams = result.indexOf(\"?\") !== -1;\n function paramToString(value) {\n switch (typeof value) {\n case \"boolean\":\n return value ? \"true\" : \"false\";\n case \"number\":\n return encodeURIComponent(value);\n case \"string\":\n return encodeURIComponent(value);\n default:\n throw new Error(\"Invalid parameter\");\n }\n }\n Object.keys(params).forEach((key) => {\n let value;\n try {\n value = paramToString(params[key]);\n } catch (err) {\n return;\n }\n result += (hasParams ? \"&\" : \"?\") + encodeURIComponent(key) + \"=\" + value;\n hasParams = true;\n });\n return result;\n};\n\nconst maxLengthCache = {};\nconst pathCache = {};\nconst detectFetch = () => {\n let callback;\n try {\n callback = fetch;\n if (typeof callback === \"function\") {\n return callback;\n }\n } catch (err) {\n }\n return null;\n};\nlet fetchModule = detectFetch();\nfunction setFetch(fetch2) {\n fetchModule = fetch2;\n}\nfunction getFetch() {\n return fetchModule;\n}\nfunction calculateMaxLength(provider, prefix) {\n const config = getAPIConfig(provider);\n if (!config) {\n return 0;\n }\n let result;\n if (!config.maxURL) {\n result = 0;\n } else {\n let maxHostLength = 0;\n config.resources.forEach((item) => {\n const host = item;\n maxHostLength = Math.max(maxHostLength, host.length);\n });\n const url = mergeParams(prefix + \".json\", {\n icons: \"\"\n });\n result = config.maxURL - maxHostLength - config.path.length - url.length;\n }\n const cacheKey = provider + \":\" + prefix;\n pathCache[provider] = config.path;\n maxLengthCache[cacheKey] = result;\n return result;\n}\nfunction shouldAbort(status) {\n return status === 404;\n}\nconst prepare = (provider, prefix, icons) => {\n const results = [];\n let maxLength = maxLengthCache[prefix];\n if (maxLength === void 0) {\n maxLength = calculateMaxLength(provider, prefix);\n }\n const type = \"icons\";\n let item = {\n type,\n provider,\n prefix,\n icons: []\n };\n let length = 0;\n icons.forEach((name, index) => {\n length += name.length + 1;\n if (length >= maxLength && index > 0) {\n results.push(item);\n item = {\n type,\n provider,\n prefix,\n icons: []\n };\n length = name.length;\n }\n item.icons.push(name);\n });\n results.push(item);\n return results;\n};\nfunction getPath(provider) {\n if (typeof provider === \"string\") {\n if (pathCache[provider] === void 0) {\n const config = getAPIConfig(provider);\n if (!config) {\n return \"/\";\n }\n pathCache[provider] = config.path;\n }\n return pathCache[provider];\n }\n return \"/\";\n}\nconst send = (host, params, callback) => {\n if (!fetchModule) {\n callback(\"abort\", 424);\n return;\n }\n let path = getPath(params.provider);\n switch (params.type) {\n case \"icons\": {\n const prefix = params.prefix;\n const icons = params.icons;\n const iconsList = icons.join(\",\");\n path += mergeParams(prefix + \".json\", {\n icons: iconsList\n });\n break;\n }\n case \"custom\": {\n const uri = params.uri;\n path += uri.slice(0, 1) === \"/\" ? uri.slice(1) : uri;\n break;\n }\n default:\n callback(\"abort\", 400);\n return;\n }\n let defaultError = 503;\n fetchModule(host + path).then((response) => {\n const status = response.status;\n if (status !== 200) {\n setTimeout(() => {\n callback(shouldAbort(status) ? \"abort\" : \"next\", status);\n });\n return;\n }\n defaultError = 501;\n return response.json();\n }).then((data) => {\n if (typeof data !== \"object\" || data === null) {\n setTimeout(() => {\n callback(\"next\", defaultError);\n });\n return;\n }\n setTimeout(() => {\n callback(\"success\", data);\n });\n }).catch(() => {\n callback(\"next\", defaultError);\n });\n};\nconst fetchAPIModule = {\n prepare,\n send\n};\n\nfunction sortIcons(icons) {\n const result = {\n loaded: [],\n missing: [],\n pending: []\n };\n const storage = /* @__PURE__ */ Object.create(null);\n icons.sort((a, b) => {\n if (a.provider !== b.provider) {\n return a.provider.localeCompare(b.provider);\n }\n if (a.prefix !== b.prefix) {\n return a.prefix.localeCompare(b.prefix);\n }\n return a.name.localeCompare(b.name);\n });\n let lastIcon = {\n provider: \"\",\n prefix: \"\",\n name: \"\"\n };\n icons.forEach((icon) => {\n if (lastIcon.name === icon.name && lastIcon.prefix === icon.prefix && lastIcon.provider === icon.provider) {\n return;\n }\n lastIcon = icon;\n const provider = icon.provider;\n const prefix = icon.prefix;\n const name = icon.name;\n if (storage[provider] === void 0) {\n storage[provider] = /* @__PURE__ */ Object.create(null);\n }\n const providerStorage = storage[provider];\n if (providerStorage[prefix] === void 0) {\n providerStorage[prefix] = getStorage(provider, prefix);\n }\n const localStorage = providerStorage[prefix];\n let list;\n if (localStorage.icons[name] !== void 0) {\n list = result.loaded;\n } else if (prefix === \"\" || localStorage.missing[name] !== void 0) {\n list = result.missing;\n } else {\n list = result.pending;\n }\n const item = {\n provider,\n prefix,\n name\n };\n list.push(item);\n });\n return result;\n}\n\nconst callbacks = /* @__PURE__ */ Object.create(null);\nconst pendingUpdates = /* @__PURE__ */ Object.create(null);\nfunction removeCallback(sources, id) {\n sources.forEach((source) => {\n const provider = source.provider;\n if (callbacks[provider] === void 0) {\n return;\n }\n const providerCallbacks = callbacks[provider];\n const prefix = source.prefix;\n const items = providerCallbacks[prefix];\n if (items) {\n providerCallbacks[prefix] = items.filter((row) => row.id !== id);\n }\n });\n}\nfunction updateCallbacks(provider, prefix) {\n if (pendingUpdates[provider] === void 0) {\n pendingUpdates[provider] = /* @__PURE__ */ Object.create(null);\n }\n const providerPendingUpdates = pendingUpdates[provider];\n if (!providerPendingUpdates[prefix]) {\n providerPendingUpdates[prefix] = true;\n setTimeout(() => {\n providerPendingUpdates[prefix] = false;\n if (callbacks[provider] === void 0 || callbacks[provider][prefix] === void 0) {\n return;\n }\n const items = callbacks[provider][prefix].slice(0);\n if (!items.length) {\n return;\n }\n const storage = getStorage(provider, prefix);\n let hasPending = false;\n items.forEach((item) => {\n const icons = item.icons;\n const oldLength = icons.pending.length;\n icons.pending = icons.pending.filter((icon) => {\n if (icon.prefix !== prefix) {\n return true;\n }\n const name = icon.name;\n if (storage.icons[name] !== void 0) {\n icons.loaded.push({\n provider,\n prefix,\n name\n });\n } else if (storage.missing[name] !== void 0) {\n icons.missing.push({\n provider,\n prefix,\n name\n });\n } else {\n hasPending = true;\n return true;\n }\n return false;\n });\n if (icons.pending.length !== oldLength) {\n if (!hasPending) {\n removeCallback([\n {\n provider,\n prefix\n }\n ], item.id);\n }\n item.callback(icons.loaded.slice(0), icons.missing.slice(0), icons.pending.slice(0), item.abort);\n }\n });\n });\n }\n}\nlet idCounter = 0;\nfunction storeCallback(callback, icons, pendingSources) {\n const id = idCounter++;\n const abort = removeCallback.bind(null, pendingSources, id);\n if (!icons.pending.length) {\n return abort;\n }\n const item = {\n id,\n icons,\n callback,\n abort\n };\n pendingSources.forEach((source) => {\n const provider = source.provider;\n const prefix = source.prefix;\n if (callbacks[provider] === void 0) {\n callbacks[provider] = /* @__PURE__ */ Object.create(null);\n }\n const providerCallbacks = callbacks[provider];\n if (providerCallbacks[prefix] === void 0) {\n providerCallbacks[prefix] = [];\n }\n providerCallbacks[prefix].push(item);\n });\n return abort;\n}\n\nfunction listToIcons(list, validate = true, simpleNames = false) {\n const result = [];\n list.forEach((item) => {\n const icon = typeof item === \"string\" ? stringToIcon(item, false, simpleNames) : item;\n if (!validate || validateIcon(icon, simpleNames)) {\n result.push({\n provider: icon.provider,\n prefix: icon.prefix,\n name: icon.name\n });\n }\n });\n return result;\n}\n\n// src/config.ts\nvar defaultConfig = {\n resources: [],\n index: 0,\n timeout: 2e3,\n rotate: 750,\n random: false,\n dataAfterTimeout: false\n};\n\n// src/query.ts\nfunction sendQuery(config, payload, query, done) {\n const resourcesCount = config.resources.length;\n const startIndex = config.random ? Math.floor(Math.random() * resourcesCount) : config.index;\n let resources;\n if (config.random) {\n let list = config.resources.slice(0);\n resources = [];\n while (list.length > 1) {\n const nextIndex = Math.floor(Math.random() * list.length);\n resources.push(list[nextIndex]);\n list = list.slice(0, nextIndex).concat(list.slice(nextIndex + 1));\n }\n resources = resources.concat(list);\n } else {\n resources = config.resources.slice(startIndex).concat(config.resources.slice(0, startIndex));\n }\n const startTime = Date.now();\n let status = \"pending\";\n let queriesSent = 0;\n let lastError;\n let timer = null;\n let queue = [];\n let doneCallbacks = [];\n if (typeof done === \"function\") {\n doneCallbacks.push(done);\n }\n function resetTimer() {\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n }\n function abort() {\n if (status === \"pending\") {\n status = \"aborted\";\n }\n resetTimer();\n queue.forEach((item) => {\n if (item.status === \"pending\") {\n item.status = \"aborted\";\n }\n });\n queue = [];\n }\n function subscribe(callback, overwrite) {\n if (overwrite) {\n doneCallbacks = [];\n }\n if (typeof callback === \"function\") {\n doneCallbacks.push(callback);\n }\n }\n function getQueryStatus() {\n return {\n startTime,\n payload,\n status,\n queriesSent,\n queriesPending: queue.length,\n subscribe,\n abort\n };\n }\n function failQuery() {\n status = \"failed\";\n doneCallbacks.forEach((callback) => {\n callback(void 0, lastError);\n });\n }\n function clearQueue() {\n queue.forEach((item) => {\n if (item.status === \"pending\") {\n item.status = \"aborted\";\n }\n });\n queue = [];\n }\n function moduleResponse(item, response, data) {\n const isError = response !== \"success\";\n queue = queue.filter((queued) => queued !== item);\n switch (status) {\n case \"pending\":\n break;\n case \"failed\":\n if (isError || !config.dataAfterTimeout) {\n return;\n }\n break;\n default:\n return;\n }\n if (response === \"abort\") {\n lastError = data;\n failQuery();\n return;\n }\n if (isError) {\n lastError = data;\n if (!queue.length) {\n if (!resources.length) {\n failQuery();\n } else {\n execNext();\n }\n }\n return;\n }\n resetTimer();\n clearQueue();\n if (!config.random) {\n const index = config.resources.indexOf(item.resource);\n if (index !== -1 && index !== config.index) {\n config.index = index;\n }\n }\n status = \"completed\";\n doneCallbacks.forEach((callback) => {\n callback(data);\n });\n }\n function execNext() {\n if (status !== \"pending\") {\n return;\n }\n resetTimer();\n const resource = resources.shift();\n if (resource === void 0) {\n if (queue.length) {\n timer = setTimeout(() => {\n resetTimer();\n if (status === \"pending\") {\n clearQueue();\n failQuery();\n }\n }, config.timeout);\n return;\n }\n failQuery();\n return;\n }\n const item = {\n status: \"pending\",\n resource,\n callback: (status2, data) => {\n moduleResponse(item, status2, data);\n }\n };\n queue.push(item);\n queriesSent++;\n timer = setTimeout(execNext, config.rotate);\n query(resource, payload, item.callback);\n }\n setTimeout(execNext);\n return getQueryStatus;\n}\n\n// src/index.ts\nfunction setConfig(config) {\n if (typeof config !== \"object\" || typeof config.resources !== \"object\" || !(config.resources instanceof Array) || !config.resources.length) {\n throw new Error(\"Invalid Reduncancy configuration\");\n }\n const newConfig = /* @__PURE__ */ Object.create(null);\n let key;\n for (key in defaultConfig) {\n if (config[key] !== void 0) {\n newConfig[key] = config[key];\n } else {\n newConfig[key] = defaultConfig[key];\n }\n }\n return newConfig;\n}\nfunction initRedundancy(cfg) {\n const config = setConfig(cfg);\n let queries = [];\n function cleanup() {\n queries = queries.filter((item) => item().status === \"pending\");\n }\n function query(payload, queryCallback, doneCallback) {\n const query2 = sendQuery(config, payload, queryCallback, (data, error) => {\n cleanup();\n if (doneCallback) {\n doneCallback(data, error);\n }\n });\n queries.push(query2);\n return query2;\n }\n function find(callback) {\n const result = queries.find((value) => {\n return callback(value);\n });\n return result !== void 0 ? result : null;\n }\n const instance = {\n query,\n find,\n setIndex: (index) => {\n config.index = index;\n },\n getIndex: () => config.index,\n cleanup\n };\n return instance;\n}\n\nfunction emptyCallback$1() {\n}\nconst redundancyCache = /* @__PURE__ */ Object.create(null);\nfunction getRedundancyCache(provider) {\n if (redundancyCache[provider] === void 0) {\n const config = getAPIConfig(provider);\n if (!config) {\n return;\n }\n const redundancy = initRedundancy(config);\n const cachedReundancy = {\n config,\n redundancy\n };\n redundancyCache[provider] = cachedReundancy;\n }\n return redundancyCache[provider];\n}\nfunction sendAPIQuery(target, query, callback) {\n let redundancy;\n let send;\n if (typeof target === \"string\") {\n const api = getAPIModule(target);\n if (!api) {\n callback(void 0, 424);\n return emptyCallback$1;\n }\n send = api.send;\n const cached = getRedundancyCache(target);\n if (cached) {\n redundancy = cached.redundancy;\n }\n } else {\n const config = createAPIConfig(target);\n if (config) {\n redundancy = initRedundancy(config);\n const moduleKey = target.resources ? target.resources[0] : \"\";\n const api = getAPIModule(moduleKey);\n if (api) {\n send = api.send;\n }\n }\n }\n if (!redundancy || !send) {\n callback(void 0, 424);\n return emptyCallback$1;\n }\n return redundancy.query(query, send, callback)().abort;\n}\n\nconst cache = {};\n\nfunction emptyCallback() {\n}\nconst pendingIcons = /* @__PURE__ */ Object.create(null);\nconst iconsToLoad = /* @__PURE__ */ Object.create(null);\nconst loaderFlags = /* @__PURE__ */ Object.create(null);\nconst queueFlags = /* @__PURE__ */ Object.create(null);\nfunction loadedNewIcons(provider, prefix) {\n if (loaderFlags[provider] === void 0) {\n loaderFlags[provider] = /* @__PURE__ */ Object.create(null);\n }\n const providerLoaderFlags = loaderFlags[provider];\n if (!providerLoaderFlags[prefix]) {\n providerLoaderFlags[prefix] = true;\n setTimeout(() => {\n providerLoaderFlags[prefix] = false;\n updateCallbacks(provider, prefix);\n });\n }\n}\nconst errorsCache = /* @__PURE__ */ Object.create(null);\nfunction loadNewIcons(provider, prefix, icons) {\n function err() {\n const key = (provider === \"\" ? \"\" : \"@\" + provider + \":\") + prefix;\n const time = Math.floor(Date.now() / 6e4);\n if (errorsCache[key] < time) {\n errorsCache[key] = time;\n console.error('Unable to retrieve icons for \"' + key + '\" because API is not configured properly.');\n }\n }\n if (iconsToLoad[provider] === void 0) {\n iconsToLoad[provider] = /* @__PURE__ */ Object.create(null);\n }\n const providerIconsToLoad = iconsToLoad[provider];\n if (queueFlags[provider] === void 0) {\n queueFlags[provider] = /* @__PURE__ */ Object.create(null);\n }\n const providerQueueFlags = queueFlags[provider];\n if (pendingIcons[provider] === void 0) {\n pendingIcons[provider] = /* @__PURE__ */ Object.create(null);\n }\n const providerPendingIcons = pendingIcons[provider];\n if (providerIconsToLoad[prefix] === void 0) {\n providerIconsToLoad[prefix] = icons;\n } else {\n providerIconsToLoad[prefix] = providerIconsToLoad[prefix].concat(icons).sort();\n }\n if (!providerQueueFlags[prefix]) {\n providerQueueFlags[prefix] = true;\n setTimeout(() => {\n providerQueueFlags[prefix] = false;\n const icons2 = providerIconsToLoad[prefix];\n delete providerIconsToLoad[prefix];\n const api = getAPIModule(provider);\n if (!api) {\n err();\n return;\n }\n const params = api.prepare(provider, prefix, icons2);\n params.forEach((item) => {\n sendAPIQuery(provider, item, (data, error) => {\n const storage = getStorage(provider, prefix);\n if (typeof data !== \"object\") {\n if (error !== 404) {\n return;\n }\n const t = Date.now();\n item.icons.forEach((name) => {\n storage.missing[name] = t;\n });\n } else {\n try {\n const parsed = addIconSet(storage, data);\n if (!parsed.length) {\n return;\n }\n const pending = providerPendingIcons[prefix];\n parsed.forEach((name) => {\n delete pending[name];\n });\n if (cache.store) {\n cache.store(provider, data);\n }\n } catch (err2) {\n console.error(err2);\n }\n }\n loadedNewIcons(provider, prefix);\n });\n });\n });\n }\n}\nconst loadIcons = (icons, callback) => {\n const cleanedIcons = listToIcons(icons, true, allowSimpleNames());\n const sortedIcons = sortIcons(cleanedIcons);\n if (!sortedIcons.pending.length) {\n let callCallback = true;\n if (callback) {\n setTimeout(() => {\n if (callCallback) {\n callback(sortedIcons.loaded, sortedIcons.missing, sortedIcons.pending, emptyCallback);\n }\n });\n }\n return () => {\n callCallback = false;\n };\n }\n const newIcons = /* @__PURE__ */ Object.create(null);\n const sources = [];\n let lastProvider, lastPrefix;\n sortedIcons.pending.forEach((icon) => {\n const provider = icon.provider;\n const prefix = icon.prefix;\n if (prefix === lastPrefix && provider === lastProvider) {\n return;\n }\n lastProvider = provider;\n lastPrefix = prefix;\n sources.push({\n provider,\n prefix\n });\n if (pendingIcons[provider] === void 0) {\n pendingIcons[provider] = /* @__PURE__ */ Object.create(null);\n }\n const providerPendingIcons = pendingIcons[provider];\n if (providerPendingIcons[prefix] === void 0) {\n providerPendingIcons[prefix] = /* @__PURE__ */ Object.create(null);\n }\n if (newIcons[provider] === void 0) {\n newIcons[provider] = /* @__PURE__ */ Object.create(null);\n }\n const providerNewIcons = newIcons[provider];\n if (providerNewIcons[prefix] === void 0) {\n providerNewIcons[prefix] = [];\n }\n });\n const time = Date.now();\n sortedIcons.pending.forEach((icon) => {\n const provider = icon.provider;\n const prefix = icon.prefix;\n const name = icon.name;\n const pendingQueue = pendingIcons[provider][prefix];\n if (pendingQueue[name] === void 0) {\n pendingQueue[name] = time;\n newIcons[provider][prefix].push(name);\n }\n });\n sources.forEach((source) => {\n const provider = source.provider;\n const prefix = source.prefix;\n if (newIcons[provider][prefix].length) {\n loadNewIcons(provider, prefix, newIcons[provider][prefix]);\n }\n });\n return callback ? storeCallback(callback, sortedIcons, sources) : emptyCallback;\n};\nconst loadIcon = (icon) => {\n return new Promise((fulfill, reject) => {\n const iconObj = typeof icon === \"string\" ? stringToIcon(icon) : icon;\n loadIcons([iconObj || icon], (loaded) => {\n if (loaded.length && iconObj) {\n const storage = getStorage(iconObj.provider, iconObj.prefix);\n const data = getIconFromStorage(storage, iconObj.name);\n if (data) {\n fulfill(data);\n return;\n }\n }\n reject(icon);\n });\n });\n};\n\nconst cacheVersion = \"iconify2\";\nconst cachePrefix = \"iconify\";\nconst countKey = cachePrefix + \"-count\";\nconst versionKey = cachePrefix + \"-version\";\nconst hour = 36e5;\nconst cacheExpiration = 168;\nconst config = {\n local: true,\n session: true\n};\nlet loaded = false;\nconst count = {\n local: 0,\n session: 0\n};\nconst emptyList = {\n local: [],\n session: []\n};\nlet _window = typeof window === \"undefined\" ? {} : window;\nfunction getGlobal(key) {\n const attr = key + \"Storage\";\n try {\n if (_window && _window[attr] && typeof _window[attr].length === \"number\") {\n return _window[attr];\n }\n } catch (err) {\n }\n config[key] = false;\n return null;\n}\nfunction setCount(storage, key, value) {\n try {\n storage.setItem(countKey, value.toString());\n count[key] = value;\n return true;\n } catch (err) {\n return false;\n }\n}\nfunction getCount(storage) {\n const count2 = storage.getItem(countKey);\n if (count2) {\n const total = parseInt(count2);\n return total ? total : 0;\n }\n return 0;\n}\nfunction initCache(storage, key) {\n try {\n storage.setItem(versionKey, cacheVersion);\n } catch (err) {\n }\n setCount(storage, key, 0);\n}\nfunction destroyCache(storage) {\n try {\n const total = getCount(storage);\n for (let i = 0; i < total; i++) {\n storage.removeItem(cachePrefix + i.toString());\n }\n } catch (err) {\n }\n}\nconst loadCache = () => {\n if (loaded) {\n return;\n }\n loaded = true;\n const minTime = Math.floor(Date.now() / hour) - cacheExpiration;\n function load(key) {\n const func = getGlobal(key);\n if (!func) {\n return;\n }\n const getItem = (index) => {\n const name = cachePrefix + index.toString();\n const item = func.getItem(name);\n if (typeof item !== \"string\") {\n return false;\n }\n let valid = true;\n try {\n const data = JSON.parse(item);\n if (typeof data !== \"object\" || typeof data.cached !== \"number\" || data.cached < minTime || typeof data.provider !== \"string\" || typeof data.data !== \"object\" || typeof data.data.prefix !== \"string\") {\n valid = false;\n } else {\n const provider = data.provider;\n const prefix = data.data.prefix;\n const storage = getStorage(provider, prefix);\n valid = addIconSet(storage, data.data).length > 0;\n }\n } catch (err) {\n valid = false;\n }\n if (!valid) {\n func.removeItem(name);\n }\n return valid;\n };\n try {\n const version = func.getItem(versionKey);\n if (version !== cacheVersion) {\n if (version) {\n destroyCache(func);\n }\n initCache(func, key);\n return;\n }\n let total = getCount(func);\n for (let i = total - 1; i >= 0; i--) {\n if (!getItem(i)) {\n if (i === total - 1) {\n total--;\n } else {\n emptyList[key].push(i);\n }\n }\n }\n setCount(func, key, total);\n } catch (err) {\n }\n }\n for (const key in config) {\n load(key);\n }\n};\nconst storeCache = (provider, data) => {\n if (!loaded) {\n loadCache();\n }\n function store(key) {\n if (!config[key]) {\n return false;\n }\n const func = getGlobal(key);\n if (!func) {\n return false;\n }\n let index = emptyList[key].shift();\n if (index === void 0) {\n index = count[key];\n if (!setCount(func, key, index + 1)) {\n return false;\n }\n }\n try {\n const item = {\n cached: Math.floor(Date.now() / hour),\n provider,\n data\n };\n func.setItem(cachePrefix + index.toString(), JSON.stringify(item));\n } catch (err) {\n return false;\n }\n return true;\n }\n if (!Object.keys(data.icons).length) {\n return;\n }\n if (data.not_found) {\n data = Object.assign({}, data);\n delete data.not_found;\n }\n if (!store(\"local\")) {\n store(\"session\");\n }\n};\n\nfunction toggleBrowserCache(storage, value) {\n switch (storage) {\n case \"local\":\n case \"session\":\n config[storage] = value;\n break;\n case \"all\":\n for (const key in config) {\n config[key] = value;\n }\n break;\n }\n}\n\nconst separator = /[\\s,]+/;\nfunction flipFromString(custom, flip) {\n flip.split(separator).forEach((str) => {\n const value = str.trim();\n switch (value) {\n case \"horizontal\":\n custom.hFlip = true;\n break;\n case \"vertical\":\n custom.vFlip = true;\n break;\n }\n });\n}\nfunction alignmentFromString(custom, align) {\n align.split(separator).forEach((str) => {\n const value = str.trim();\n switch (value) {\n case \"left\":\n case \"center\":\n case \"right\":\n custom.hAlign = value;\n break;\n case \"top\":\n case \"middle\":\n case \"bottom\":\n custom.vAlign = value;\n break;\n case \"slice\":\n case \"crop\":\n custom.slice = true;\n break;\n case \"meet\":\n custom.slice = false;\n }\n });\n}\n\nfunction rotateFromString(value, defaultValue = 0) {\n const units = value.replace(/^-?[0-9.]*/, \"\");\n function cleanup(value2) {\n while (value2 < 0) {\n value2 += 4;\n }\n return value2 % 4;\n }\n if (units === \"\") {\n const num = parseInt(value);\n return isNaN(num) ? 0 : cleanup(num);\n } else if (units !== value) {\n let split = 0;\n switch (units) {\n case \"%\":\n split = 25;\n break;\n case \"deg\":\n split = 90;\n }\n if (split) {\n let num = parseFloat(value.slice(0, value.length - units.length));\n if (isNaN(num)) {\n return 0;\n }\n num = num / split;\n return num % 1 === 0 ? cleanup(num) : 0;\n }\n }\n return defaultValue;\n}\n\n/**\n * Default SVG attributes\n */\nconst svgDefaults = {\n 'xmlns': 'http://www.w3.org/2000/svg',\n 'xmlnsXlink': 'http://www.w3.org/1999/xlink',\n 'aria-hidden': true,\n 'role': 'img',\n 'style': {}, // Include style if it isn't set to add verticalAlign later\n};\n/**\n * Default values for customisations for inline icon\n */\nconst inlineDefaults = { ...defaults, inline: true };\n/**\n * Render icon\n */\nconst render = (\n// Icon must be validated before calling this function\nicon, \n// Partial properties\nprops, \n// True if icon should have vertical-align added\ninline, \n// Optional reference for SVG, extracted by React.forwardRef()\nref) => {\n // Get default properties\n const defaultProps = inline ? inlineDefaults : defaults;\n // Get all customisations\n const customisations = mergeCustomisations(defaultProps, props);\n // Create style\n const style = typeof props.style === 'object' && props.style !== null\n ? props.style\n : {};\n // Create SVG component properties\n const componentProps = { ...svgDefaults, ref, style };\n // Get element properties\n for (let key in props) {\n const value = props[key];\n if (value === void 0) {\n continue;\n }\n switch (key) {\n // Properties to ignore\n case 'icon':\n case 'style':\n case 'children':\n case 'onLoad':\n case '_ref':\n case '_inline':\n break;\n // Boolean attributes\n case 'inline':\n case 'hFlip':\n case 'vFlip':\n customisations[key] =\n value === true || value === 'true' || value === 1;\n break;\n // Flip as string: 'horizontal,vertical'\n case 'flip':\n if (typeof value === 'string') {\n flipFromString(customisations, value);\n }\n break;\n // Alignment as string\n case 'align':\n if (typeof value === 'string') {\n alignmentFromString(customisations, value);\n }\n break;\n // Color: copy to style\n case 'color':\n style.color = value;\n break;\n // Rotation as string\n case 'rotate':\n if (typeof value === 'string') {\n customisations[key] = rotateFromString(value);\n }\n else if (typeof value === 'number') {\n customisations[key] = value;\n }\n break;\n // Remove aria-hidden\n case 'ariaHidden':\n case 'aria-hidden':\n if (value !== true && value !== 'true') {\n delete componentProps['aria-hidden'];\n }\n break;\n // Copy missing property if it does not exist in customisations\n default:\n if (defaultProps[key] === void 0) {\n componentProps[key] = value;\n }\n }\n }\n // Generate icon\n const item = iconToSVG(icon, customisations);\n // Counter for ids based on \"id\" property to render icons consistently on server and client\n let localCounter = 0;\n let id = props.id;\n if (typeof id === 'string') {\n // Convert '-' to '_' to avoid errors in animations\n id = id.replace(/-/g, '_');\n }\n // Add icon stuff\n componentProps.dangerouslySetInnerHTML = {\n __html: replaceIDs(item.body, id ? () => id + 'ID' + localCounter++ : 'iconifyReact'),\n };\n for (let key in item.attributes) {\n componentProps[key] = item.attributes[key];\n }\n if (item.inline && style.verticalAlign === void 0) {\n style.verticalAlign = '-0.125em';\n }\n return React.createElement('svg', componentProps);\n};\n\n/**\n * Enable cache\n */\nfunction enableCache(storage) {\n toggleBrowserCache(storage, true);\n}\n/**\n * Disable cache\n */\nfunction disableCache(storage) {\n toggleBrowserCache(storage, false);\n}\n/**\n * Initialise stuff\n */\n// Enable short names\nallowSimpleNames(true);\n// Set API module\nsetAPIModule('', fetchAPIModule);\n/**\n * Browser stuff\n */\nif (typeof document !== 'undefined' && typeof window !== 'undefined') {\n // Set cache and load existing cache\n cache.store = storeCache;\n loadCache();\n const _window = window;\n // Load icons from global \"IconifyPreload\"\n if (_window.IconifyPreload !== void 0) {\n const preload = _window.IconifyPreload;\n const err = 'Invalid IconifyPreload syntax.';\n if (typeof preload === 'object' && preload !== null) {\n (preload instanceof Array ? preload : [preload]).forEach((item) => {\n try {\n if (\n // Check if item is an object and not null/array\n typeof item !== 'object' ||\n item === null ||\n item instanceof Array ||\n // Check for 'icons' and 'prefix'\n typeof item.icons !== 'object' ||\n typeof item.prefix !== 'string' ||\n // Add icon set\n !addCollection(item)) {\n console.error(err);\n }\n }\n catch (e) {\n console.error(err);\n }\n });\n }\n }\n // Set API from global \"IconifyProviders\"\n if (_window.IconifyProviders !== void 0) {\n const providers = _window.IconifyProviders;\n if (typeof providers === 'object' && providers !== null) {\n for (let key in providers) {\n const err = 'IconifyProviders[' + key + '] is invalid.';\n try {\n const value = providers[key];\n if (typeof value !== 'object' ||\n !value ||\n value.resources === void 0) {\n continue;\n }\n if (!addAPIProvider(key, value)) {\n console.error(err);\n }\n }\n catch (e) {\n console.error(err);\n }\n }\n }\n }\n}\nclass IconComponent extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n // Render placeholder before component is mounted\n icon: null,\n };\n }\n /**\n * Abort loading icon\n */\n _abortLoading() {\n if (this._loading) {\n this._loading.abort();\n this._loading = null;\n }\n }\n /**\n * Update state\n */\n _setData(icon) {\n if (this.state.icon !== icon) {\n this.setState({\n icon,\n });\n }\n }\n /**\n * Check if icon should be loaded\n */\n _checkIcon(changed) {\n const state = this.state;\n const icon = this.props.icon;\n // Icon is an object\n if (typeof icon === 'object' &&\n icon !== null &&\n typeof icon.body === 'string') {\n // Stop loading\n this._icon = '';\n this._abortLoading();\n if (changed || state.icon === null) {\n // Set data if it was changed\n this._setData({\n data: fullIcon(icon),\n });\n }\n return;\n }\n // Invalid icon?\n let iconName;\n if (typeof icon !== 'string' ||\n (iconName = stringToIcon(icon, false, true)) === null) {\n this._abortLoading();\n this._setData(null);\n return;\n }\n // Load icon\n const data = getIconData(iconName);\n if (data === null) {\n // Icon needs to be loaded\n if (!this._loading || this._loading.name !== icon) {\n // New icon to load\n this._abortLoading();\n this._icon = '';\n this._setData(null);\n this._loading = {\n name: icon,\n abort: loadIcons([iconName], this._checkIcon.bind(this, false)),\n };\n }\n return;\n }\n // Icon data is available\n if (this._icon !== icon || state.icon === null) {\n // New icon or icon has been loaded\n this._abortLoading();\n this._icon = icon;\n // Add classes\n const classes = ['iconify'];\n if (iconName.prefix !== '') {\n classes.push('iconify--' + iconName.prefix);\n }\n if (iconName.provider !== '') {\n classes.push('iconify--' + iconName.provider);\n }\n // Set data\n this._setData({\n data,\n classes,\n });\n if (this.props.onLoad) {\n this.props.onLoad(icon);\n }\n }\n }\n /**\n * Component mounted\n */\n componentDidMount() {\n this._checkIcon(false);\n }\n /**\n * Component updated\n */\n componentDidUpdate(oldProps) {\n if (oldProps.icon !== this.props.icon) {\n this._checkIcon(true);\n }\n }\n /**\n * Abort loading\n */\n componentWillUnmount() {\n this._abortLoading();\n }\n /**\n * Render\n */\n render() {\n const props = this.props;\n const icon = this.state.icon;\n if (icon === null) {\n // Render placeholder\n return props.children\n ? props.children\n : React.createElement('span', {});\n }\n // Add classes\n let newProps = props;\n if (icon.classes) {\n newProps = {\n ...props,\n className: (typeof props.className === 'string'\n ? props.className + ' '\n : '') + icon.classes.join(' '),\n };\n }\n // Render icon\n return render(icon.data, newProps, props._inline, props._ref);\n }\n}\n/**\n * Block icon\n *\n * @param props - Component properties\n */\nconst Icon = React.forwardRef(function Icon(props, ref) {\n const newProps = {\n ...props,\n _ref: ref,\n _inline: false,\n };\n return React.createElement(IconComponent, newProps);\n});\n/**\n * Inline icon (has negative verticalAlign that makes it behave like icon font)\n *\n * @param props - Component properties\n */\nconst InlineIcon = React.forwardRef(function InlineIcon(props, ref) {\n const newProps = { ...props, _ref: ref, _inline: true };\n return React.createElement(IconComponent, newProps);\n});\n/**\n * Internal API\n */\nconst _api = {\n getAPIConfig,\n setAPIModule,\n sendAPIQuery,\n setFetch,\n getFetch,\n listAPIProviders,\n mergeParams,\n};\n\nexport { Icon, InlineIcon, _api, addAPIProvider, addCollection, addIcon, buildIcon, calculateSize, disableCache, enableCache, getIcon, iconExists, listIcons, loadIcon, loadIcons, replaceIDs, shareStorage };\n"],"names":["module","exports","Object","assign","clock","Component","_class","_temp","ATTRIBUTE_NAMES","TAG_NAMES","BASE","BODY","HEAD","HTML","LINK","META","NOSCRIPT","SCRIPT","STYLE","TITLE","TAG_PROPERTIES","keys","map","name","REACT_TAG_MAP","accesskey","charset","class","contenteditable","contextmenu","itemprop","tabindex","HELMET_PROPS","HTML_TAG_MAP","reduce","obj","key","SELF_CLOSING_TAGS","HELMET_ATTRIBUTE","_typeof","Symbol","iterator","constructor","prototype","createClass","defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","defineProperty","Constructor","protoProps","staticProps","_extends","arguments","source","hasOwnProperty","call","objectWithoutProperties","indexOf","encodeSpecialCharacters","str","undefined","String","replace","getTitleFromPropsList","propsList","innermostTitle","getInnermostProperty","innermostTemplate","Array","isArray","join","innermostDefaultTitle","getOnChangeClientState","getAttributesFromPropsList","tagType","filter","tagAttrs","current","getBaseTagFromPropsList","primaryAttributes","reverse","innermostBaseTag","tag","lowerCaseAttributeKey","toLowerCase","concat","getTagsFromPropsList","tagName","approvedSeenTags","warn","approvedTags","instanceTags","instanceSeenTags","primaryAttributeKey","attributeKey","value","forEach","push","tagUnion","property","rafPolyfill","Date","now","callback","currentTime","setTimeout","cafPolyfill","id","clearTimeout","requestAnimationFrame","window","bind","webkitRequestAnimationFrame","mozRequestAnimationFrame","g","cancelAnimationFrame","webkitCancelAnimationFrame","mozCancelAnimationFrame","msg","console","_helmetCallback","commitTagChanges","newState","cb","baseTag","bodyAttributes","htmlAttributes","linkTags","metaTags","noscriptTags","onChangeClientState","scriptTags","styleTags","title","titleAttributes","updateAttributes","updateTitle","tagUpdates","updateTags","addedTags","removedTags","_tagUpdates$tagType","newTags","oldTags","flattenArray","possibleArray","attributes","document","elementTag","getElementsByTagName","helmetAttributeString","getAttribute","helmetAttributes","split","attributesToRemove","attributeKeys","attribute","setAttribute","indexToSave","splice","_i","removeAttribute","type","tags","headElement","head","querySelector","tagNodes","querySelectorAll","slice","indexToDelete","newElement","createElement","innerHTML","styleSheet","cssText","appendChild","createTextNode","some","existingTag","index","isEqualNode","parentNode","removeChild","generateElementAttributesAsString","attr","convertElementAttributestoReactProps","initProps","getMethodsForTag","encode","toComponent","_initProps","toString","attributeString","flattenedTitle","generateTitleAsString","_mappedTag","mappedTag","mappedAttribute","content","dangerouslySetInnerHTML","__html","generateTagsAsReactComponent","attributeHtml","string","tagContent","isSelfClosing","generateTagsAsString","mapStateOnServer","_ref","_ref$title","base","link","meta","noscript","script","style","HelmetSideEffects","defer","HelmetExport","_React$Component","HelmetWrapper","instance","TypeError","classCallCheck","this","self","ReferenceError","possibleConstructorReturn","apply","subClass","superClass","create","setPrototypeOf","__proto__","inherits","shouldComponentUpdate","nextProps","mapNestedChildrenToProps","child","nestedChildren","Error","flattenArrayTypeChildren","_babelHelpers$extends","arrayTypeChildren","newChildProps","mapObjectTypeChildren","_ref2","_babelHelpers$extends2","_babelHelpers$extends3","newProps","mapArrayTypeChildrenToProps","newFlattenedProps","arrayChildName","_babelHelpers$extends4","warnOnInvalidChildren","mapChildrenToProps","children","_this2","_child$props","initAttributes","convertReactPropstoHtmlAttributes","render","_props","set","canUseDOM","propTypes","defaultTitle","titleTemplate","defaultProps","peek","rewind","mappedState","renderStatic","NAV_ITEMS","subNavItems","widthClass","NavAccordion","isOpen","setIsOpen","useState","React","className","onClick","NavDrawer","open","onClose","enableOverlay","overlayColor","overlayOpacity","zIndex","duration","idSuffix","Math","random","substring","overlayStyles","backgroundColor","opacity","drawerStyles","transitionDuration","top","right","transform","onChange","checked","role","htmlFor","signInHandler","e","location","hostname","endsWith","href","SubNavItems","subItems","subItem","Link","to","badge","pageName","headerRef","useRef","isMobileMenuOpen","setIsMobileMenuOpen","hasScrolled","setHasScrolled","isTranscriptionBenchmarkPage","setIsTranscriptionBenchmarkPage","isFreeTrialCtaDisabled","useContext","FlagsContext","scrollFunction","headerHeight","offsetHeight","documentElement","scrollTop","useEffect","transcriptionBenchmarkPage","includes","addEventListener","removeEventListener","ref","src","ReductLogo","alt","ReductVideoSignUpButton","mobileMenu","loading","item","hasSubNavs","activeClassName","CalendlyPopup","navBar","CloseBlue","NavBar","Footer","rel","Icon","icon","height","nMillisecondsInDay","convertAndCalcTimeDiff","date","time","timeZoneOffset","defaultDate","toUTCString","getTime","interval","timerCount","setTimerCount","clearInterval","setInterval","currentTimerCount","miliseconds","hour","minute","second","toISOString","floor","padStart","convertMilisecondsToHour","getDisplayEvent","events","find","event","endDate","endTime","node","currentDate","timeZone","fullDate","toLocaleString","month","year","hours24","minutes","isPM","hours","Number","getCurrentDate","EventTime","highlightTime","BannerDescription","handPointer","hideTime","getEventStartDateTime","dateStr","min","isBeforeNoon","startDate","startTime","description","tabIndex","onKeyPress","close","_ref3","allEventsYaml","edges","useStaticQuery","useMemo","timeDiff","setTimeDiff","diff","timezoneOffset","Timer","ctaLink","url","image","width","locale","Helmet","username","metaImage","twitterCardType","path","article","datePublished","dateModified","author","pageAuthor","keywords","site","buildTime","siteMetadata","siteUrl","defaultDescription","defaultKeywords","defaultBanner","siteLanguage","ogLanguage","defaultAuthor","twitter","defaultTwitterCardType","facebook","siteKeywords","seo","route","charAt","generateUrl","schemaOrgWebPage","inLanguage","mainEntityOfPage","copyrightHolder","creator","publisher","logo","schemaArticle","headline","schemaData","lang","prefix","JSON","stringify","Script","strategy","ScriptStrategy","postHydrate","OpenGraph","TwitterCard","ApiOnly","headerClass","hero","pagePath","DefaultFeaturedImg","closeBanner","setCloseBanner","PopupModal","modalState","setModalState","startEmail","ctaPlacement","Modal","ctaModal","closeHandler","TryIt","modalTitle","SEO","idle","onLoad","linkEle","calendlyLoaded","SignUpModalContextProvider","FlagsContextProvider","SignUpModalContext","Consumer","_ref4","Banner","handleCloseBanner","Header","rest","linkPath","_window","_window$location","pathname","search","searchStr","queries","utmQueries","query","delimiter","getUTMQueriesFromPath","getPath","startsWith","userBtnContainer","body","overflow","SignUpButtonForNavBar","setCtaPlacement","handleClick","CTAForLandingPages","text","CTAForPricingPage","SignUpButtonForMobileMenu","_ref5","page","GoogleButton","onGoogleSignUp","loadGoogle","google","accounts","initialize","client_id","ux_mode","auto_prompt","renderButton","getElementById","size","logo_alignment","readyState","margin","display","flexDirection","alignItems","GoogleSignUpButton","setError","useCallback","async","URL","API_URL","res","reductFetch","method","credentials","google_token","data","credential","accepted_tos","tracking","getUTMInfo","ok","error","status","resJSON","json","success","user","dataLayer","email","InputModal","setModalStep","setEmail","terms","placeholder","autoFocus","disabled","preventDefault","validateEmail","submitSignupForm","color","fontSize","fontWeight","VertificationModal","modalStep","URLSearchParams","get","createContext","Provider","setStartEmail","Calendly","initPopupWidget","calendlyContainer","getElementsByClassName","contains","navigate","args","headers","fetch","out","currentUrl","utm_path","params","utm_source","utm_medium","utm_campaign","utm_content","utm_term","loadReductApiScript","Promise","rej","message","waitForScriptLoad","_","timer","Reduct","getSharePlayerFromManifest","test","hasElementType","Element","hasMap","Map","hasSet","Set","hasArrayBuffer","ArrayBuffer","isView","equal","a","b","it","entries","next","done","has","RegExp","flags","valueOf","$$typeof","match","ex","React__default","_defineProperty","reducePropsToState","handleStateChangeOnClient","WrappedComponent","state","mountedInstances","emitChange","SideEffect","_PureComponent","recordedState","_proto","UNSAFE_componentWillMount","componentDidUpdate","componentWillUnmount","PureComponent","displayName","getDisplayName","matchName","iconDefaults","freeze","left","rotate","vFlip","hFlip","fullIcon","stringToIcon","validate","allowSimpleName","provider","colonSeparated","shift","name2","pop","result","validateIcon","dashSeparated","getIconData$1","full","getIcon","iteration","icons","aliases","result2","parent","alias","prop","mergeIconData","chars","parseIconSet","options","names","not_found","iconData","parseAliases","isVariation","optionalProperties","quicklyValidateIconSet","storage$1","w","_iconifyStorage","version","storage","err","getStorage","providerStorage","missing","newStorage","addIconSet","storage2","t","getIconFromStorage","simpleNames","allowSimpleNames","allow","getIconData","addIcon","addIconToStorage","defaults","inline","hAlign","vAlign","mergeCustomisations","defaults2","unitsSplit","unitsTest","calculateSize","ratio","precision","ceil","oldParts","newParts","code","isNumber","num","parseFloat","isNaN","preserveAspectRatio","iconToSVG","customisations","box","transformations","tempValue","rotation","unshift","viewBox","regex","randomPrefix","counter","replaceIDs","ids","exec","newID","escapedID","setAPIModule","getAPIModule","createAPIConfig","resources","maxURL","timeout","dataAfterTimeout","configStorage","fallBackAPISources","fallBackAPI","addAPIProvider","customConfig","config","getAPIConfig","mergeParams","hasParams","encodeURIComponent","paramToString","maxLengthCache","pathCache","fetchModule","detectFetch","fetchAPIModule","prepare","results","maxLength","maxHostLength","host","max","cacheKey","calculateMaxLength","send","iconsList","uri","defaultError","then","response","shouldAbort","catch","callbacks","pendingUpdates","removeCallback","sources","providerCallbacks","items","row","idCounter","defaultConfig","sendQuery","payload","resourcesCount","startIndex","list","nextIndex","lastError","queriesSent","queue","doneCallbacks","resetTimer","abort","subscribe","overwrite","failQuery","clearQueue","execNext","resource","status2","isError","queued","moduleResponse","queriesPending","initRedundancy","cfg","newConfig","setConfig","cleanup","queryCallback","doneCallback","query2","setIndex","getIndex","emptyCallback$1","redundancyCache","sendAPIQuery","redundancy","api","cached","cachedReundancy","getRedundancyCache","cache","emptyCallback","pendingIcons","iconsToLoad","loaderFlags","queueFlags","loadedNewIcons","providerLoaderFlags","providerPendingUpdates","hasPending","oldLength","pending","loaded","updateCallbacks","errorsCache","loadNewIcons","providerIconsToLoad","providerQueueFlags","providerPendingIcons","sort","icons2","parsed","store","err2","loadIcons","cleanedIcons","listToIcons","sortedIcons","localeCompare","lastIcon","localStorage","sortIcons","callCallback","newIcons","lastProvider","lastPrefix","providerNewIcons","pendingQueue","pendingSources","storeCallback","cacheVersion","cachePrefix","countKey","versionKey","local","session","count","emptyList","getGlobal","setCount","setItem","getCount","count2","getItem","total","parseInt","loadCache","minTime","load","func","valid","parse","removeItem","destroyCache","initCache","storeCache","separator","flipFromString","custom","flip","trim","alignmentFromString","align","rotateFromString","defaultValue","units","value2","svgDefaults","inlineDefaults","IconifyPreload","preload","added","addCollection","IconifyProviders","providers","IconComponent","super","_abortLoading","_loading","_setData","setState","_checkIcon","changed","_icon","iconName","classes","componentDidMount","oldProps","componentProps","localCounter","verticalAlign","_inline"],"sourceRoot":""}