{"version":3,"file":"js/84167-8b46d046d8c4c0f38f49.js","mappings":"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","sources":["webpack://StravaModern/./node_modules/@strava/icons/BadgesMulticolorProSmall.js","webpack://StravaModern/./node_modules/@strava/icons/BadgesMulticolorSummitSmall.js","webpack://StravaModern/./node_modules/@strava/icons/BadgesMulticolorSuperuserSmall.js","webpack://StravaModern/./node_modules/@strava/icons/BadgesMulticolorVerifiedSmall.js","webpack://StravaModern/./node_modules/@strava/icons/NavigationProfileHighlightedMedium.js","webpack://StravaModern/./node_modules/@strava/ui/Avatar/styles.scss?af32","webpack://StravaModern/./node_modules/@strava/ui/Avatar/index.js","webpack://StravaModern/./node_modules/escape-html/index.js","webpack://StravaModern/./node_modules/interweave/esm/index.js"],"sourcesContent":["import * as React from 'react';\nimport PropTypes from 'prop-types';\n\nconst SvgBadgesMulticolorProSmall = React.forwardRef(\n ({ color, size, title, titleId, ...props }, ref) => (\n \n {title ? {title} : null}\n \n \n \n \n \n \n )\n);\nSvgBadgesMulticolorProSmall.defaultProps = {\n color: 'currentColor',\n size: 24,\n title: undefined,\n titleId: undefined\n};\nSvgBadgesMulticolorProSmall.propTypes = {\n color: PropTypes.string,\n size: PropTypes.number,\n title: PropTypes.string,\n titleId: PropTypes.string\n};\nexport default SvgBadgesMulticolorProSmall;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\n\nconst SvgBadgesMulticolorSummitSmall = React.forwardRef(\n ({ color, size, title, titleId, ...props }, ref) => (\n \n {title ? {title} : null}\n \n \n \n \n \n \n )\n);\nSvgBadgesMulticolorSummitSmall.defaultProps = {\n color: 'currentColor',\n size: 24,\n title: undefined,\n titleId: undefined\n};\nSvgBadgesMulticolorSummitSmall.propTypes = {\n color: PropTypes.string,\n size: PropTypes.number,\n title: PropTypes.string,\n titleId: PropTypes.string\n};\nexport default SvgBadgesMulticolorSummitSmall;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\n\nconst SvgBadgesMulticolorSuperuserSmall = React.forwardRef(\n ({ color, size, title, titleId, ...props }, ref) => (\n \n {title ? {title} : null}\n \n \n \n \n \n \n )\n);\nSvgBadgesMulticolorSuperuserSmall.defaultProps = {\n color: 'currentColor',\n size: 24,\n title: undefined,\n titleId: undefined\n};\nSvgBadgesMulticolorSuperuserSmall.propTypes = {\n color: PropTypes.string,\n size: PropTypes.number,\n title: PropTypes.string,\n titleId: PropTypes.string\n};\nexport default SvgBadgesMulticolorSuperuserSmall;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\n\nconst SvgBadgesMulticolorVerifiedSmall = React.forwardRef(\n ({ color, size, title, titleId, ...props }, ref) => (\n \n {title ? {title} : null}\n \n \n \n \n \n )\n);\nSvgBadgesMulticolorVerifiedSmall.defaultProps = {\n color: 'currentColor',\n size: 24,\n title: undefined,\n titleId: undefined\n};\nSvgBadgesMulticolorVerifiedSmall.propTypes = {\n color: PropTypes.string,\n size: PropTypes.number,\n title: PropTypes.string,\n titleId: PropTypes.string\n};\nexport default SvgBadgesMulticolorVerifiedSmall;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\n\nconst SvgNavigationProfileHighlightedMedium = React.forwardRef(\n ({ color, size, title, titleId, ...props }, ref) => (\n \n {title ? {title} : null}\n \n \n )\n);\nSvgNavigationProfileHighlightedMedium.defaultProps = {\n color: 'currentColor',\n size: 32,\n title: undefined,\n titleId: undefined\n};\nSvgNavigationProfileHighlightedMedium.propTypes = {\n color: PropTypes.string,\n size: PropTypes.number,\n title: PropTypes.string,\n titleId: PropTypes.string\n};\nexport default SvgNavigationProfileHighlightedMedium;\n","// extracted by mini-css-extract-plugin\nexport default {\"avatar\":\"Avatar--avatar--0cH8u\",\"img-wrapper\":\"Avatar--img-wrapper--uEKlj\",\"imgWrapper\":\"Avatar--img-wrapper--uEKlj\",\"badge\":\"Avatar--badge--dPtDC\",\"athlete\":\"Avatar--athlete--sA9o6\",\"xsmall\":\"Avatar--xsmall--pBfF6\",\"small\":\"Avatar--small--UyvKr\",\"large\":\"Avatar--large--+f+X2\",\"xlarge\":\"Avatar--xlarge--CUpYU\",\"club\":\"Avatar--club--wlZQJ\"};","import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport AvatarFallback from '@strava/icons/NavigationProfileHighlightedMedium';\n\nimport EmployeeBadge from '@strava/icons/BadgesMulticolorSuperuserSmall';\nimport SubscriberBadge from '@strava/icons/BadgesMulticolorSummitSmall';\nimport ProBadge from '@strava/icons/BadgesMulticolorProSmall';\nimport VerifiedBadge from '@strava/icons/BadgesMulticolorVerifiedSmall';\n\nimport styles from './styles.scss';\n\nconst Img = ({ src, alt, title, fallback }) => {\n const [children, setChildren] = useState(null);\n\n useEffect(() => {\n let image = new Image();\n image.onload = () => {\n setChildren({alt});\n };\n image.onerror = () => {\n setChildren(fallback);\n };\n image.src = src;\n return () => {\n image = null;\n };\n }, [src, alt, title, fallback]);\n\n return children;\n};\n\nImg.propTypes = {\n src: PropTypes.string.isRequired,\n alt: PropTypes.string.isRequired,\n title: PropTypes.string.isRequired,\n fallback: PropTypes.node\n};\n\nImg.defaultProps = {\n fallback: null\n};\n\nfunction getBadge(badge) {\n switch (badge) {\n case 'ambassador':\n return ;\n case 'employee':\n return ;\n case 'subscriber':\n case 'premium':\n return ;\n case 'pro':\n return ;\n case 'verified':\n return ;\n default:\n return null;\n }\n}\n/**\n * Prop Deprecation Warning: We are slowly deprecating the `name` prop in favor of the `title` prop\n * so that the React props match up to the element's attribute.\n * */\nconst Avatar = ({\n name,\n alt,\n title,\n type,\n src,\n size,\n badge,\n href,\n className: classNameProp,\n ...otherProps\n}) => {\n const classNames = [styles.avatar, styles[type]];\n if (styles[size]) {\n classNames.push(styles[size]);\n }\n if (classNameProp) {\n classNames.push(classNameProp);\n }\n\n // TODO: uncomment when existing Avatar usage is refactored. Otherwise, there will be a lot of warning in the console.\n // if (name || process.env.NODE_ENV !== 'production') {\n // console.warn(\n // '[Prop Deprecation Warning] Deprecating the `name` prop in favor of the `title`.'\n // );\n // }\n\n const children = (\n <>\n {badge &&
{getBadge(badge)}
}\n
\n : null}\n />\n
\n \n );\n\n if (href) {\n return (\n \n {children}\n \n );\n }\n\n return (\n
\n {children}\n
\n );\n};\n\nAvatar.propTypes = {\n name: PropTypes.string,\n alt: PropTypes.string,\n title: PropTypes.string,\n href: PropTypes.string,\n src: PropTypes.string.isRequired,\n type: PropTypes.oneOf(['athlete', 'club']).isRequired,\n size: PropTypes.oneOf(['xsmall', 'small', 'default', 'large', 'xlarge']),\n badge: PropTypes.oneOf([\n '', // in some cases active has member_type as empty string for default users\n 'ambassador',\n 'employee',\n 'subscriber',\n 'premium', // legacy name referring to 'subscriber', used in active\n 'pro',\n 'verified'\n ]),\n className: PropTypes.string\n};\n\nAvatar.defaultProps = {\n name: null,\n href: null,\n alt: '',\n title: null,\n size: null,\n badge: null,\n className: null\n};\n\nexport default Avatar;\n","/*!\n * escape-html\n * Copyright(c) 2012-2013 TJ Holowaychuk\n * Copyright(c) 2015 Andreas Lubbe\n * Copyright(c) 2015 Tiancheng \"Timothy\" Gu\n * MIT Licensed\n */\n\n'use strict';\n\n/**\n * Module variables.\n * @private\n */\n\nvar matchHtmlRegExp = /[\"'&<>]/;\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = escapeHtml;\n\n/**\n * Escape special characters in the given string of html.\n *\n * @param {string} string The string to escape for inserting into HTML\n * @return {string}\n * @public\n */\n\nfunction escapeHtml(string) {\n var str = '' + string;\n var match = matchHtmlRegExp.exec(str);\n\n if (!match) {\n return str;\n }\n\n var escape;\n var html = '';\n var index = 0;\n var lastIndex = 0;\n\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34: // \"\n escape = '"';\n break;\n case 38: // &\n escape = '&';\n break;\n case 39: // '\n escape = ''';\n break;\n case 60: // <\n escape = '<';\n break;\n case 62: // >\n escape = '>';\n break;\n default:\n continue;\n }\n\n if (lastIndex !== index) {\n html += str.substring(lastIndex, index);\n }\n\n lastIndex = index + 1;\n html += escape;\n }\n\n return lastIndex !== index\n ? html + str.substring(lastIndex, index)\n : html;\n}\n","function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _extends2() { _extends2 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends2.apply(this, arguments); }\n\n// Generated with Packemon: https://packemon.dev\n// Platform: browser, Support: stable, Format: esm\nimport React from 'react';\nimport escapeHtml from 'escape-html';\n\nfunction _extends() {\n _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\n return _extends.apply(this, arguments);\n}\n\nfunction Element(_ref) {\n var _ref$attributes = _ref.attributes,\n attributes = _ref$attributes === void 0 ? {} : _ref$attributes,\n className = _ref.className,\n _ref$children = _ref.children,\n children = _ref$children === void 0 ? null : _ref$children,\n _ref$selfClose = _ref.selfClose,\n selfClose = _ref$selfClose === void 0 ? false : _ref$selfClose,\n tagName = _ref.tagName;\n var Tag = tagName;\n return selfClose ? /*#__PURE__*/React.createElement(Tag, _extends({\n className: className\n }, attributes)) : /*#__PURE__*/React.createElement(Tag, _extends({\n className: className\n }, attributes), children);\n}\n\nvar Filter = /*#__PURE__*/function () {\n function Filter() {}\n\n var _proto = Filter.prototype;\n\n /**\n * Filter and clean an HTML attribute value.\n */\n _proto.attribute = function attribute(name, value) {\n return value;\n }\n /**\n * Filter and clean an HTML node.\n */\n ;\n\n _proto.node = function node(name, _node) {\n return _node;\n };\n\n return Filter;\n}();\n/* eslint-disable no-bitwise, no-magic-numbers, sort-keys */\n// https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Content_categories\n\n\nvar TYPE_FLOW = 1;\nvar TYPE_SECTION = 1 << 1;\nvar TYPE_HEADING = 1 << 2;\nvar TYPE_PHRASING = 1 << 3;\nvar TYPE_EMBEDDED = 1 << 4;\nvar TYPE_INTERACTIVE = 1 << 5;\nvar TYPE_PALPABLE = 1 << 6; // https://developer.mozilla.org/en-US/docs/Web/HTML/Element\n\nvar tagConfigs = {\n a: {\n content: TYPE_FLOW | TYPE_PHRASING,\n self: false,\n type: TYPE_FLOW | TYPE_PHRASING | TYPE_INTERACTIVE | TYPE_PALPABLE\n },\n address: {\n invalid: ['h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'address', 'article', 'aside', 'section', 'div', 'header', 'footer'],\n self: false\n },\n audio: {\n children: ['track', 'source']\n },\n br: {\n type: TYPE_FLOW | TYPE_PHRASING,\n void: true\n },\n body: {\n content: TYPE_FLOW | TYPE_SECTION | TYPE_HEADING | TYPE_PHRASING | TYPE_EMBEDDED | TYPE_INTERACTIVE | TYPE_PALPABLE\n },\n button: {\n content: TYPE_PHRASING,\n type: TYPE_FLOW | TYPE_PHRASING | TYPE_INTERACTIVE | TYPE_PALPABLE\n },\n caption: {\n content: TYPE_FLOW,\n parent: ['table']\n },\n col: {\n parent: ['colgroup'],\n void: true\n },\n colgroup: {\n children: ['col'],\n parent: ['table']\n },\n details: {\n children: ['summary'],\n type: TYPE_FLOW | TYPE_INTERACTIVE | TYPE_PALPABLE\n },\n dd: {\n content: TYPE_FLOW,\n parent: ['dl']\n },\n dl: {\n children: ['dt', 'dd'],\n type: TYPE_FLOW\n },\n dt: {\n content: TYPE_FLOW,\n invalid: ['footer', 'header'],\n parent: ['dl']\n },\n figcaption: {\n content: TYPE_FLOW,\n parent: ['figure']\n },\n footer: {\n invalid: ['footer', 'header']\n },\n header: {\n invalid: ['footer', 'header']\n },\n hr: {\n type: TYPE_FLOW,\n void: true\n },\n img: {\n void: true\n },\n li: {\n content: TYPE_FLOW,\n parent: ['ul', 'ol', 'menu']\n },\n main: {\n self: false\n },\n ol: {\n children: ['li'],\n type: TYPE_FLOW\n },\n picture: {\n children: ['source', 'img'],\n type: TYPE_FLOW | TYPE_PHRASING | TYPE_EMBEDDED\n },\n rb: {\n parent: ['ruby', 'rtc']\n },\n rp: {\n parent: ['ruby', 'rtc']\n },\n rt: {\n content: TYPE_PHRASING,\n parent: ['ruby', 'rtc']\n },\n rtc: {\n content: TYPE_PHRASING,\n parent: ['ruby']\n },\n ruby: {\n children: ['rb', 'rp', 'rt', 'rtc']\n },\n source: {\n parent: ['audio', 'video', 'picture'],\n void: true\n },\n summary: {\n content: TYPE_PHRASING,\n parent: ['details']\n },\n table: {\n children: ['caption', 'colgroup', 'thead', 'tbody', 'tfoot', 'tr'],\n type: TYPE_FLOW\n },\n tbody: {\n parent: ['table'],\n children: ['tr']\n },\n td: {\n content: TYPE_FLOW,\n parent: ['tr']\n },\n tfoot: {\n parent: ['table'],\n children: ['tr']\n },\n th: {\n content: TYPE_FLOW,\n parent: ['tr']\n },\n thead: {\n parent: ['table'],\n children: ['tr']\n },\n tr: {\n parent: ['table', 'tbody', 'thead', 'tfoot'],\n children: ['th', 'td']\n },\n track: {\n parent: ['audio', 'video'],\n void: true\n },\n ul: {\n children: ['li'],\n type: TYPE_FLOW\n },\n video: {\n children: ['track', 'source']\n },\n wbr: {\n type: TYPE_FLOW | TYPE_PHRASING,\n void: true\n }\n};\n\nfunction createConfigBuilder(config) {\n return function (tagName) {\n tagConfigs[tagName] = _extends2({}, config, tagConfigs[tagName]);\n };\n}\n\n['address', 'main', 'div', 'figure', 'p', 'pre'].forEach(createConfigBuilder({\n content: TYPE_FLOW,\n type: TYPE_FLOW | TYPE_PALPABLE\n}));\n['abbr', 'b', 'bdi', 'bdo', 'cite', 'code', 'data', 'dfn', 'em', 'i', 'kbd', 'mark', 'q', 'ruby', 'samp', 'strong', 'sub', 'sup', 'time', 'u', 'var'].forEach(createConfigBuilder({\n content: TYPE_PHRASING,\n type: TYPE_FLOW | TYPE_PHRASING | TYPE_PALPABLE\n}));\n['p', 'pre'].forEach(createConfigBuilder({\n content: TYPE_PHRASING,\n type: TYPE_FLOW | TYPE_PALPABLE\n}));\n['s', 'small', 'span', 'del', 'ins'].forEach(createConfigBuilder({\n content: TYPE_PHRASING,\n type: TYPE_FLOW | TYPE_PHRASING\n}));\n['article', 'aside', 'footer', 'header', 'nav', 'section', 'blockquote'].forEach(createConfigBuilder({\n content: TYPE_FLOW,\n type: TYPE_FLOW | TYPE_SECTION | TYPE_PALPABLE\n}));\n['h1', 'h2', 'h3', 'h4', 'h5', 'h6'].forEach(createConfigBuilder({\n content: TYPE_PHRASING,\n type: TYPE_FLOW | TYPE_HEADING | TYPE_PALPABLE\n}));\n['audio', 'canvas', 'iframe', 'img', 'video'].forEach(createConfigBuilder({\n type: TYPE_FLOW | TYPE_PHRASING | TYPE_EMBEDDED | TYPE_PALPABLE\n})); // Disable this map from being modified\n\nvar TAGS = Object.freeze(tagConfigs); // Tags that should never be allowed, even if the allow list is disabled\n\nvar BANNED_TAG_LIST = ['applet', 'base', 'body', 'command', 'embed', 'frame', 'frameset', 'head', 'html', 'link', 'meta', 'noscript', 'object', 'script', 'style', 'title'];\nvar ALLOWED_TAG_LIST = Object.keys(TAGS).filter(function (tag) {\n return tag !== 'canvas' && tag !== 'iframe';\n}); // Filters apply to HTML attributes\n\nvar FILTER_ALLOW = 1;\nvar FILTER_DENY = 2;\nvar FILTER_CAST_NUMBER = 3;\nvar FILTER_CAST_BOOL = 4;\nvar FILTER_NO_CAST = 5; // Attributes not listed here will be denied\n// https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes\n\nvar ATTRIBUTES = Object.freeze({\n alt: FILTER_ALLOW,\n cite: FILTER_ALLOW,\n class: FILTER_ALLOW,\n colspan: FILTER_CAST_NUMBER,\n controls: FILTER_CAST_BOOL,\n datetime: FILTER_ALLOW,\n default: FILTER_CAST_BOOL,\n disabled: FILTER_CAST_BOOL,\n dir: FILTER_ALLOW,\n height: FILTER_ALLOW,\n href: FILTER_ALLOW,\n id: FILTER_ALLOW,\n kind: FILTER_ALLOW,\n label: FILTER_ALLOW,\n lang: FILTER_ALLOW,\n loading: FILTER_ALLOW,\n loop: FILTER_CAST_BOOL,\n media: FILTER_ALLOW,\n muted: FILTER_CAST_BOOL,\n poster: FILTER_ALLOW,\n role: FILTER_ALLOW,\n rowspan: FILTER_CAST_NUMBER,\n scope: FILTER_ALLOW,\n sizes: FILTER_ALLOW,\n span: FILTER_CAST_NUMBER,\n start: FILTER_CAST_NUMBER,\n style: FILTER_NO_CAST,\n src: FILTER_ALLOW,\n srclang: FILTER_ALLOW,\n srcset: FILTER_ALLOW,\n target: FILTER_ALLOW,\n title: FILTER_ALLOW,\n type: FILTER_ALLOW,\n width: FILTER_ALLOW\n}); // Attributes to camel case for React props\n\nvar ATTRIBUTES_TO_PROPS = Object.freeze({\n class: 'className',\n colspan: 'colSpan',\n datetime: 'dateTime',\n rowspan: 'rowSpan',\n srclang: 'srcLang',\n srcset: 'srcSet'\n});\nvar INVALID_STYLES = /(url|image|image-set)\\(/i;\n\nvar StyleFilter = /*#__PURE__*/function (_Filter) {\n _inheritsLoose(StyleFilter, _Filter);\n\n function StyleFilter() {\n return _Filter.apply(this, arguments) || this;\n }\n\n var _proto2 = StyleFilter.prototype;\n\n _proto2.attribute = function attribute(name, value) {\n if (name === 'style') {\n Object.keys(value).forEach(function (key) {\n if (String(value[key]).match(INVALID_STYLES)) {\n // eslint-disable-next-line no-param-reassign\n delete value[key];\n }\n });\n }\n\n return value;\n };\n\n return StyleFilter;\n}(Filter);\n/* eslint-disable no-bitwise, no-cond-assign, complexity */\n\n\nvar ELEMENT_NODE = 1;\nvar TEXT_NODE = 3;\nvar INVALID_ROOTS = /^<(!doctype|(html|head|body)(\\s|>))/i;\nvar ALLOWED_ATTRS = /^(aria\\x2D|data\\x2D|[0-9A-Z_a-z\\u017F\\u212A]+:)/i;\nvar OPEN_TOKEN = /{{{(\\w+)\\/?}}}/;\n\nfunction createDocument() {\n // Maybe SSR? Just do nothing instead of crashing!\n if (typeof window === 'undefined' || typeof document === 'undefined') {\n return undefined;\n }\n\n return document.implementation.createHTMLDocument('Interweave');\n}\n\nvar Parser = /*#__PURE__*/function () {\n function Parser(markup, props, matchers, filters) {\n if (props === void 0) {\n props = {};\n }\n\n if (matchers === void 0) {\n matchers = [];\n }\n\n if (filters === void 0) {\n filters = [];\n }\n\n this.allowed = void 0;\n this.banned = void 0;\n this.blocked = void 0;\n this.container = void 0;\n this.content = [];\n this.props = void 0;\n this.matchers = void 0;\n this.filters = void 0;\n this.keyIndex = void 0;\n\n if (process.env.NODE_ENV !== \"production\") {\n if (markup && typeof markup !== 'string') {\n throw new TypeError('Interweave parser requires a valid string.');\n }\n }\n\n this.props = props;\n this.matchers = matchers;\n this.filters = [].concat(filters, [new StyleFilter()]);\n this.keyIndex = -1;\n this.container = this.createContainer(markup || '');\n this.allowed = new Set(props.allowList || ALLOWED_TAG_LIST);\n this.banned = new Set(BANNED_TAG_LIST);\n this.blocked = new Set(props.blockList);\n }\n /**\n * Loop through and apply all registered attribute filters.\n */\n\n\n var _proto3 = Parser.prototype;\n\n _proto3.applyAttributeFilters = function applyAttributeFilters(name, value) {\n return this.filters.reduce(function (nextValue, filter) {\n return nextValue !== null && typeof filter.attribute === 'function' ? filter.attribute(name, nextValue) : nextValue;\n }, value);\n }\n /**\n * Loop through and apply all registered node filters.\n */\n ;\n\n _proto3.applyNodeFilters = function applyNodeFilters(name, node) {\n // Allow null to be returned\n return this.filters.reduce(function (nextNode, filter) {\n return nextNode !== null && typeof filter.node === 'function' ? filter.node(name, nextNode) : nextNode;\n }, node);\n }\n /**\n * Loop through and apply all registered matchers to the string.\n * If a match is found, create a React element, and build a new array.\n * This array allows React to interpolate and render accordingly.\n */\n ;\n\n _proto3.applyMatchers = function applyMatchers(string, parentConfig) {\n var _this = this;\n\n var elements = {};\n var props = this.props;\n var matchedString = string;\n var elementIndex = 0;\n var parts = null;\n this.matchers.forEach(function (matcher) {\n var tagName = matcher.asTag().toLowerCase();\n\n var config = _this.getTagConfig(tagName); // Skip matchers that have been disabled from props or are not supported\n\n\n if (props[matcher.inverseName] || !_this.isTagAllowed(tagName)) {\n return;\n } // Skip matchers in which the child cannot be rendered\n\n\n if (!_this.canRenderChild(parentConfig, config)) {\n return;\n } // Continuously trigger the matcher until no matches are found\n\n\n var tokenizedString = '';\n\n while (matchedString && (parts = matcher.match(matchedString))) {\n var _parts = parts,\n index = _parts.index,\n length = _parts.length,\n _match = _parts.match,\n valid = _parts.valid,\n isVoid = _parts.void,\n partProps = _objectWithoutPropertiesLoose(_parts, [\"index\", \"length\", \"match\", \"valid\", \"void\"]);\n\n var tokenName = matcher.propName + elementIndex; // Piece together a new string with interpolated tokens\n\n if (index > 0) {\n tokenizedString += matchedString.slice(0, index);\n }\n\n if (valid) {\n tokenizedString += isVoid ? \"{{{\" + tokenName + \"/}}}\" : \"{{{\" + tokenName + \"}}}\" + _match + \"{{{/\" + tokenName + \"}}}\";\n _this.keyIndex += 1;\n elementIndex += 1;\n elements[tokenName] = {\n children: _match,\n matcher: matcher,\n props: _extends2({}, props, partProps, {\n key: _this.keyIndex\n })\n };\n } else {\n tokenizedString += _match;\n } // Reduce the string being matched against,\n // otherwise we end up in an infinite loop!\n\n\n if (matcher.greedy) {\n matchedString = tokenizedString + matchedString.slice(index + length);\n tokenizedString = '';\n } else {\n // eslint-disable-next-line unicorn/explicit-length-check\n matchedString = matchedString.slice(index + (length || _match.length));\n }\n } // Update the matched string with the tokenized string,\n // so that the next matcher can apply to it.\n\n\n if (!matcher.greedy) {\n matchedString = tokenizedString + matchedString;\n }\n });\n\n if (elementIndex === 0) {\n return string;\n }\n\n return this.replaceTokens(matchedString, elements);\n }\n /**\n * Determine whether the child can be rendered within the parent.\n */\n ;\n\n _proto3.canRenderChild = function canRenderChild(parentConfig, childConfig) {\n if (!parentConfig.tagName || !childConfig.tagName) {\n return false;\n } // No children\n\n\n if (parentConfig.void) {\n return false;\n } // Valid children\n\n\n if (parentConfig.children.length > 0) {\n return parentConfig.children.includes(childConfig.tagName);\n }\n\n if (parentConfig.invalid.length > 0 && parentConfig.invalid.includes(childConfig.tagName)) {\n return false;\n } // Valid parent\n\n\n if (childConfig.parent.length > 0) {\n return childConfig.parent.includes(parentConfig.tagName);\n } // Self nesting\n\n\n if (!parentConfig.self && parentConfig.tagName === childConfig.tagName) {\n return false;\n } // Content category type\n\n\n return Boolean(parentConfig && parentConfig.content & childConfig.type);\n }\n /**\n * Convert line breaks in a string to HTML `
` tags.\n * If the string contains HTML, we should not convert anything,\n * as line breaks should be handled by `
`s in the markup itself.\n */\n ;\n\n _proto3.convertLineBreaks = function convertLineBreaks(markup) {\n var _this$props = this.props,\n noHtml = _this$props.noHtml,\n disableLineBreaks = _this$props.disableLineBreaks;\n\n if (noHtml || disableLineBreaks || markup.match(/<((?:\\/[ a-z]+)|(?:[ a-z]+\\/))>/gi)) {\n return markup;\n } // Replace carriage returns\n\n\n var nextMarkup = markup.replace(/\\r\\n/g, '\\n'); // Replace long line feeds\n\n nextMarkup = nextMarkup.replace(/\\n{3,}/g, '\\n\\n\\n'); // Replace line feeds with `
`s\n\n nextMarkup = nextMarkup.replace(/\\n/g, '
');\n return nextMarkup;\n }\n /**\n * Create a detached HTML document that allows for easy HTML\n * parsing while not triggering scripts or loading external\n * resources.\n */\n ;\n\n _proto3.createContainer = function createContainer(markup) {\n var factory = typeof global !== 'undefined' && global.INTERWEAVE_SSR_POLYFILL || createDocument;\n var doc = factory();\n\n if (!doc) {\n return undefined;\n }\n\n var tag = this.props.containerTagName || 'body';\n var el = tag === 'body' || tag === 'fragment' ? doc.body : doc.createElement(tag);\n\n if (markup.match(INVALID_ROOTS)) {\n if (process.env.NODE_ENV !== \"production\") {\n throw new Error('HTML documents as Interweave content are not supported.');\n }\n } else {\n el.innerHTML = this.convertLineBreaks(this.props.escapeHtml ? escapeHtml(markup) : markup);\n }\n\n return el;\n }\n /**\n * Convert an elements attribute map to an object map.\n * Returns null if no attributes are defined.\n */\n ;\n\n _proto3.extractAttributes = function extractAttributes(node) {\n var _this2 = this;\n\n var allowAttributes = this.props.allowAttributes;\n var attributes = {};\n var count = 0;\n\n if (node.nodeType !== ELEMENT_NODE || !node.attributes) {\n return null;\n }\n\n Array.from(node.attributes).forEach(function (attr) {\n var name = attr.name,\n value = attr.value;\n var newName = name.toLowerCase();\n var filter = ATTRIBUTES[newName] || ATTRIBUTES[name]; // Verify the node is safe from attacks\n\n if (!_this2.isSafe(node)) {\n return;\n } // Do not allow denied attributes, excluding ARIA attributes\n // Do not allow events or XSS injections\n\n\n if (!newName.match(ALLOWED_ATTRS)) {\n if (!allowAttributes && (!filter || filter === FILTER_DENY) || newName.startsWith('on') || value.replace(/(\\s|\\0|�([9AD]);)/, '').match(/(javascript|vbscript|livescript|xss):/i)) {\n return;\n }\n } // Apply attribute filters\n\n\n var newValue = newName === 'style' ? _this2.extractStyleAttribute(node) : value; // Cast to boolean\n\n if (filter === FILTER_CAST_BOOL) {\n newValue = true; // Cast to number\n } else if (filter === FILTER_CAST_NUMBER) {\n newValue = Number.parseFloat(String(newValue)); // Cast to string\n } else if (filter !== FILTER_NO_CAST) {\n newValue = String(newValue);\n }\n\n attributes[ATTRIBUTES_TO_PROPS[newName] || newName] = _this2.applyAttributeFilters(newName, newValue);\n count += 1;\n });\n\n if (count === 0) {\n return null;\n }\n\n return attributes;\n }\n /**\n * Extract the style attribute as an object and remove values that allow for attack vectors.\n */\n ;\n\n _proto3.extractStyleAttribute = function extractStyleAttribute(node) {\n var styles = {};\n Array.from(node.style).forEach(function (key) {\n var value = node.style[key];\n\n if (typeof value === 'string' || typeof value === 'number') {\n styles[key.replace(/-([a-z])/g, function (match, letter) {\n return letter.toUpperCase();\n })] = value;\n }\n });\n return styles;\n }\n /**\n * Return configuration for a specific tag.\n */\n ;\n\n _proto3.getTagConfig = function getTagConfig(tagName) {\n var common = {\n children: [],\n content: 0,\n invalid: [],\n parent: [],\n self: true,\n tagName: '',\n type: 0,\n void: false\n }; // Only spread when a tag config exists,\n // otherwise we use the empty `tagName`\n // for parent config inheritance.\n\n if (TAGS[tagName]) {\n return _extends2({}, common, TAGS[tagName], {\n tagName: tagName\n });\n }\n\n return common;\n }\n /**\n * Verify that a node is safe from XSS and injection attacks.\n */\n ;\n\n _proto3.isSafe = function isSafe(node) {\n // URLs should only support HTTP, email and phone numbers\n if (typeof HTMLAnchorElement !== 'undefined' && node instanceof HTMLAnchorElement) {\n var href = node.getAttribute('href'); // Fragment protocols start with about:\n // So let's just allow them\n\n if (href && href.charAt(0) === '#') {\n return true;\n }\n\n var protocol = node.protocol.toLowerCase();\n return protocol === ':' || protocol === 'http:' || protocol === 'https:' || protocol === 'mailto:' || protocol === 'tel:';\n }\n\n return true;\n }\n /**\n * Verify that an HTML tag is allowed to render.\n */\n ;\n\n _proto3.isTagAllowed = function isTagAllowed(tagName) {\n if (this.banned.has(tagName) || this.blocked.has(tagName)) {\n return false;\n }\n\n return this.props.allowElements || this.allowed.has(tagName);\n }\n /**\n * Parse the markup by injecting it into a detached document,\n * while looping over all child nodes and generating an\n * array to interpolate into JSX.\n */\n ;\n\n _proto3.parse = function parse() {\n if (!this.container) {\n return [];\n }\n\n return this.parseNode(this.container, this.getTagConfig(this.container.nodeName.toLowerCase()));\n }\n /**\n * Loop over the nodes children and generate a\n * list of text nodes and React elements.\n */\n ;\n\n _proto3.parseNode = function parseNode(parentNode, parentConfig) {\n var _this3 = this;\n\n var _this$props2 = this.props,\n noHtml = _this$props2.noHtml,\n noHtmlExceptMatchers = _this$props2.noHtmlExceptMatchers,\n allowElements = _this$props2.allowElements,\n transform = _this$props2.transform,\n transformOnlyAllowList = _this$props2.transformOnlyAllowList;\n var content = [];\n var mergedText = '';\n Array.from(parentNode.childNodes).forEach(function (node) {\n // Create React elements from HTML elements\n if (node.nodeType === ELEMENT_NODE) {\n var tagName = node.nodeName.toLowerCase();\n\n var config = _this3.getTagConfig(tagName); // Persist any previous text\n\n\n if (mergedText) {\n content.push(mergedText);\n mergedText = '';\n } // Apply node filters first\n\n\n var nextNode = _this3.applyNodeFilters(tagName, node);\n\n if (!nextNode) {\n return;\n } // Apply transformation second\n\n\n var children;\n\n if (transform && !(transformOnlyAllowList && !_this3.isTagAllowed(tagName))) {\n _this3.keyIndex += 1;\n var key = _this3.keyIndex; // Must occur after key is set\n\n children = _this3.parseNode(nextNode, config);\n var transformed = transform(nextNode, children, config);\n\n if (transformed === null) {\n return;\n } else if (typeof transformed !== 'undefined') {\n content.push( /*#__PURE__*/React.cloneElement(transformed, {\n key: key\n }));\n return;\n } // Reset as we're not using the transformation\n\n\n _this3.keyIndex = key - 1;\n } // Never allow these tags (except via a transformer)\n\n\n if (_this3.banned.has(tagName)) {\n return;\n } // Only render when the following criteria is met:\n // - HTML has not been disabled\n // - Tag is allowed\n // - Child is valid within the parent\n\n\n if (!(noHtml || noHtmlExceptMatchers && tagName !== 'br') && _this3.isTagAllowed(tagName) && (allowElements || _this3.canRenderChild(parentConfig, config))) {\n _this3.keyIndex += 1; // Build the props as it makes it easier to test\n\n var attributes = _this3.extractAttributes(nextNode);\n\n var elementProps = {\n tagName: tagName\n };\n\n if (attributes) {\n elementProps.attributes = attributes;\n }\n\n if (config.void) {\n elementProps.selfClose = config.void;\n }\n\n content.push( /*#__PURE__*/React.createElement(Element, _extends2({}, elementProps, {\n key: _this3.keyIndex\n }), children || _this3.parseNode(nextNode, config))); // Render the children of the current element only.\n // Important: If the current element is not allowed,\n // use the parent element for the next scope.\n } else {\n content = content.concat(_this3.parseNode(nextNode, config.tagName ? config : parentConfig));\n } // Apply matchers if a text node\n\n } else if (node.nodeType === TEXT_NODE) {\n var text = noHtml && !noHtmlExceptMatchers ? node.textContent : _this3.applyMatchers(node.textContent || '', parentConfig);\n\n if (Array.isArray(text)) {\n content = content.concat(text);\n } else {\n mergedText += text;\n }\n }\n });\n\n if (mergedText) {\n content.push(mergedText);\n }\n\n return content;\n }\n /**\n * Deconstruct the string into an array, by replacing custom tokens with React elements,\n * so that React can render it correctly.\n */\n ;\n\n _proto3.replaceTokens = function replaceTokens(tokenizedString, elements) {\n if (!tokenizedString.includes('{{{')) {\n return tokenizedString;\n }\n\n var nodes = [];\n var text = tokenizedString;\n var open = null; // Find an open token tag\n\n while (open = text.match(OPEN_TOKEN)) {\n var _open = open,\n _match2 = _open[0],\n tokenName = _open[1];\n var startIndex = open.index;\n\n var isVoid = _match2.includes('/');\n\n if (process.env.NODE_ENV !== \"production\") {\n if (!elements[tokenName]) {\n throw new Error(\"Token \\\"\" + tokenName + \"\\\" found but no matching element to replace with.\");\n }\n } // Extract the previous non-token text\n\n\n if (startIndex > 0) {\n nodes.push(text.slice(0, startIndex)); // Reduce text so that the closing tag will be found after the opening\n\n text = text.slice(startIndex);\n }\n\n var _elements$tokenName = elements[tokenName],\n children = _elements$tokenName.children,\n matcher = _elements$tokenName.matcher,\n elementProps = _elements$tokenName.props;\n var endIndex = void 0; // Use tag as-is if void\n\n if (isVoid) {\n endIndex = _match2.length;\n nodes.push(matcher.createElement(children, elementProps)); // Find the closing tag if not void\n } else {\n var close = text.match(new RegExp(\"{{{/\" + tokenName + \"}}}\"));\n\n if (process.env.NODE_ENV !== \"production\") {\n if (!close) {\n throw new Error(\"Closing token missing for interpolated element \\\"\" + tokenName + \"\\\".\");\n }\n }\n\n endIndex = close.index + close[0].length;\n nodes.push(matcher.createElement(this.replaceTokens(text.slice(_match2.length, close.index), elements), elementProps));\n } // Reduce text for the next interation\n\n\n text = text.slice(endIndex);\n } // Extra the remaining text\n\n\n if (text.length > 0) {\n nodes.push(text);\n } // Reduce to a string if possible\n\n\n if (nodes.length === 0) {\n return '';\n } else if (nodes.length === 1 && typeof nodes[0] === 'string') {\n return nodes[0];\n }\n\n return nodes;\n };\n\n return Parser;\n}();\n/* eslint-disable react/jsx-fragments */\n\n\nfunction Markup(props) {\n var attributes = props.attributes,\n className = props.className,\n containerTagName = props.containerTagName,\n content = props.content,\n emptyContent = props.emptyContent,\n parsedContent = props.parsedContent,\n tagName = props.tagName;\n var tag = containerTagName || tagName || 'span';\n var noWrap = tag === 'fragment' ? true : props.noWrap;\n var mainContent;\n\n if (parsedContent) {\n mainContent = parsedContent;\n } else {\n var markup = new Parser(content || '', props).parse();\n\n if (markup.length > 0) {\n mainContent = markup;\n }\n }\n\n if (!mainContent) {\n mainContent = emptyContent;\n }\n\n if (noWrap) {\n // eslint-disable-next-line react/jsx-no-useless-fragment\n return /*#__PURE__*/React.createElement(React.Fragment, null, mainContent);\n }\n\n return /*#__PURE__*/React.createElement(Element, {\n attributes: attributes,\n className: className,\n tagName: tag\n }, mainContent);\n}\n\nfunction Interweave(props) {\n var attributes = props.attributes,\n className = props.className,\n _props$content = props.content,\n content = _props$content === void 0 ? '' : _props$content,\n _props$disableFilters = props.disableFilters,\n disableFilters = _props$disableFilters === void 0 ? false : _props$disableFilters,\n _props$disableMatcher = props.disableMatchers,\n disableMatchers = _props$disableMatcher === void 0 ? false : _props$disableMatcher,\n _props$emptyContent = props.emptyContent,\n emptyContent = _props$emptyContent === void 0 ? null : _props$emptyContent,\n _props$filters = props.filters,\n filters = _props$filters === void 0 ? [] : _props$filters,\n _props$matchers = props.matchers,\n matchers = _props$matchers === void 0 ? [] : _props$matchers,\n _props$onAfterParse = props.onAfterParse,\n onAfterParse = _props$onAfterParse === void 0 ? null : _props$onAfterParse,\n _props$onBeforeParse = props.onBeforeParse,\n onBeforeParse = _props$onBeforeParse === void 0 ? null : _props$onBeforeParse,\n _props$tagName = props.tagName,\n tagName = _props$tagName === void 0 ? 'span' : _props$tagName,\n _props$noWrap = props.noWrap,\n noWrap = _props$noWrap === void 0 ? false : _props$noWrap,\n parserProps = _objectWithoutPropertiesLoose(props, [\"attributes\", \"className\", \"content\", \"disableFilters\", \"disableMatchers\", \"emptyContent\", \"filters\", \"matchers\", \"onAfterParse\", \"onBeforeParse\", \"tagName\", \"noWrap\"]);\n\n var allMatchers = disableMatchers ? [] : matchers;\n var allFilters = disableFilters ? [] : filters;\n var beforeCallbacks = onBeforeParse ? [onBeforeParse] : [];\n var afterCallbacks = onAfterParse ? [onAfterParse] : []; // Inherit callbacks from matchers\n\n allMatchers.forEach(function (matcher) {\n if (matcher.onBeforeParse) {\n beforeCallbacks.push(matcher.onBeforeParse.bind(matcher));\n }\n\n if (matcher.onAfterParse) {\n afterCallbacks.push(matcher.onAfterParse.bind(matcher));\n }\n }); // Trigger before callbacks\n\n var markup = beforeCallbacks.reduce(function (string, callback) {\n var nextString = callback(string, props);\n\n if (process.env.NODE_ENV !== \"production\") {\n if (typeof nextString !== 'string') {\n throw new TypeError('Interweave `onBeforeParse` must return a valid HTML string.');\n }\n }\n\n return nextString;\n }, content || ''); // Parse the markup\n\n var parser = new Parser(markup, parserProps, allMatchers, allFilters); // Trigger after callbacks\n\n var nodes = afterCallbacks.reduce(function (parserNodes, callback) {\n var nextNodes = callback(parserNodes, props);\n\n if (process.env.NODE_ENV !== \"production\") {\n if (!Array.isArray(nextNodes)) {\n throw new TypeError('Interweave `onAfterParse` must return an array of strings and React elements.');\n }\n }\n\n return nextNodes;\n }, parser.parse());\n return /*#__PURE__*/React.createElement(Markup, {\n attributes: attributes,\n className: className,\n containerTagName: props.containerTagName,\n emptyContent: emptyContent,\n tagName: tagName,\n noWrap: noWrap,\n parsedContent: nodes.length === 0 ? undefined : nodes\n });\n}\n/**\n * Trigger the actual pattern match and package the matched\n * response through a callback.\n */\n\n\nfunction match(string, pattern, callback, isVoid) {\n if (isVoid === void 0) {\n isVoid = false;\n }\n\n var matches = string.match(pattern instanceof RegExp ? pattern : new RegExp(pattern, 'i'));\n\n if (!matches) {\n return null;\n }\n\n return _extends2({\n match: matches[0],\n void: isVoid\n }, callback(matches), {\n index: matches.index,\n length: matches[0].length,\n valid: true\n });\n}\n\nvar Matcher = /*#__PURE__*/function () {\n function Matcher(name, options, factory) {\n this.greedy = false;\n this.options = void 0;\n this.propName = void 0;\n this.inverseName = void 0;\n this.factory = void 0;\n\n if (process.env.NODE_ENV !== \"production\") {\n if (!name || name.toLowerCase() === 'html') {\n throw new Error(\"The matcher name \\\"\" + name + \"\\\" is not allowed.\");\n }\n } // @ts-expect-error\n\n\n this.options = _extends2({}, options);\n this.propName = name;\n this.inverseName = \"no\" + (name.charAt(0).toUpperCase() + name.slice(1));\n this.factory = factory || null;\n }\n /**\n * Attempts to create a React element using a custom user provided factory,\n * or the default matcher factory.\n */\n\n\n var _proto4 = Matcher.prototype;\n\n _proto4.createElement = function createElement(children, props) {\n var element = this.factory ? /*#__PURE__*/React.createElement(this.factory, props, children) : this.replaceWith(children, props);\n\n if (process.env.NODE_ENV !== \"production\") {\n if (typeof element !== 'string' && ! /*#__PURE__*/React.isValidElement(element)) {\n throw new Error(\"Invalid React element created from \" + this.constructor.name + \".\");\n }\n }\n\n return element;\n }\n /**\n * Trigger the actual pattern match and package the matched\n * response through a callback.\n */\n ;\n\n _proto4.doMatch = function doMatch(string, pattern, callback, isVoid) {\n if (isVoid === void 0) {\n isVoid = false;\n }\n\n return match(string, pattern, callback, isVoid);\n }\n /**\n * Callback triggered before parsing.\n */\n ;\n\n _proto4.onBeforeParse = function onBeforeParse(content, props) {\n return content;\n }\n /**\n * Callback triggered after parsing.\n */\n ;\n\n _proto4.onAfterParse = function onAfterParse(content, props) {\n return content;\n }\n /**\n * Replace the match with a React element based on the matched token and optional props.\n */\n ;\n\n return Matcher;\n}();\n/**\n * @copyright 2016-2019, Miles Johnson\n * @license https://opensource.org/licenses/MIT\n */\n\n\nexport default Interweave;\nexport { ALLOWED_TAG_LIST, ATTRIBUTES, ATTRIBUTES_TO_PROPS, BANNED_TAG_LIST, Element, FILTER_ALLOW, FILTER_CAST_BOOL, FILTER_CAST_NUMBER, FILTER_DENY, FILTER_NO_CAST, Filter, Markup, Matcher, Parser, TAGS, TYPE_EMBEDDED, TYPE_FLOW, TYPE_HEADING, TYPE_INTERACTIVE, TYPE_PALPABLE, TYPE_PHRASING, TYPE_SECTION, match };\n//# sourceMappingURL=index.js.map\n"],"names":["SvgBadgesMulticolorProSmall","React","ref","color","size","title","titleId","props","xmlns","viewBox","fill","width","height","id","fillRule","d","defaultProps","undefined","propTypes","PropTypes","SvgBadgesMulticolorSummitSmall","SvgBadgesMulticolorSuperuserSmall","SvgBadgesMulticolorVerifiedSmall","SvgNavigationProfileHighlightedMedium","Img","src","alt","fallback","useState","children","setChildren","useEffect","image","Image","onload","onerror","Avatar","name","type","badge","href","classNameProp","className","otherProps","classNames","styles","avatar","push","getBadge","imgWrapper","join","isRequired","matchHtmlRegExp","module","exports","string","escape","str","match","exec","html","index","lastIndex","length","charCodeAt","substring","_objectWithoutPropertiesLoose","source","excluded","key","i","target","sourceKeys","Object","keys","indexOf","_setPrototypeOf","o","p","setPrototypeOf","__proto__","_extends2","assign","arguments","prototype","hasOwnProperty","call","apply","this","_extends","Element","_ref","_ref$attributes","attributes","_ref$children","_ref$selfClose","selfClose","Tag","tagName","Filter","_proto","attribute","value","node","_node","tagConfigs","a","content","TYPE_FLOW","self","address","invalid","audio","br","void","body","button","caption","parent","col","colgroup","details","dd","dl","dt","figcaption","footer","header","hr","img","li","main","ol","picture","rb","rp","rt","rtc","ruby","summary","table","tbody","td","tfoot","th","thead","tr","track","ul","video","wbr","createConfigBuilder","config","forEach","TAGS","freeze","BANNED_TAG_LIST","ALLOWED_TAG_LIST","filter","tag","ATTRIBUTES","cite","class","colspan","controls","datetime","default","disabled","dir","kind","label","lang","loading","loop","media","muted","poster","role","rowspan","scope","sizes","span","start","style","srclang","srcset","ATTRIBUTES_TO_PROPS","INVALID_STYLES","StyleFilter","_Filter","subClass","superClass","create","constructor","String","INVALID_ROOTS","ALLOWED_ATTRS","OPEN_TOKEN","createDocument","window","document","implementation","createHTMLDocument","Parser","markup","matchers","filters","allowed","banned","blocked","container","keyIndex","concat","createContainer","Set","allowList","blockList","_proto3","applyAttributeFilters","reduce","nextValue","applyNodeFilters","nextNode","applyMatchers","parentConfig","_this","elements","matchedString","elementIndex","parts","matcher","asTag","toLowerCase","getTagConfig","inverseName","isTagAllowed","canRenderChild","tokenizedString","_parts","_match","valid","isVoid","partProps","tokenName","propName","slice","greedy","replaceTokens","childConfig","includes","Boolean","convertLineBreaks","_this$props","noHtml","disableLineBreaks","nextMarkup","replace","doc","g","INTERWEAVE_SSR_POLYFILL","containerTagName","el","createElement","innerHTML","escapeHtml","extractAttributes","_this2","allowAttributes","count","nodeType","Array","from","attr","newName","isSafe","startsWith","newValue","extractStyleAttribute","Number","parseFloat","letter","toUpperCase","common","HTMLAnchorElement","getAttribute","charAt","protocol","has","allowElements","parse","parseNode","nodeName","parentNode","_this3","_this$props2","noHtmlExceptMatchers","transform","transformOnlyAllowList","mergedText","childNodes","transformed","elementProps","text","textContent","isArray","nodes","open","_open","_match2","startIndex","_elements$tokenName","endIndex","close","RegExp","Markup","mainContent","emptyContent","parsedContent","noWrap"],"sourceRoot":""}